CN103905310A - 报文处理的方法及转发设备 - Google Patents
报文处理的方法及转发设备 Download PDFInfo
- Publication number
- CN103905310A CN103905310A CN201410111506.XA CN201410111506A CN103905310A CN 103905310 A CN103905310 A CN 103905310A CN 201410111506 A CN201410111506 A CN 201410111506A CN 103905310 A CN103905310 A CN 103905310A
- Authority
- CN
- China
- Prior art keywords
- instruction set
- message
- information
- processor
- search information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title abstract 2
- 238000003860 storage Methods 0.000 claims abstract description 56
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims description 49
- 230000008569 process Effects 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 241001672694 Citrus reticulata Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例提供了一种报文处理的方法及转发设备。该转发设备包括专用处理器、通用处理器、专用存储器和通用存储器,转发设备对报文进行处理时,首先由专用处理器获取第一匹配信息,查找专用存储器中的第一表以确定与第一匹配信息对应的搜索信息,进一步将报文和搜索信息发送至通用处理器,再由通用处理器以搜索信息为索引查找通用存储器中的第二表,确定对应的指令集并对报文进行处理。这样,转发设备在报文处理过程中所查找的流表的匹配信息和指令集分别存储在专用存储器和通用存储器中,能够合理地利用转发设备的专用存储器的存储空间来存储流表。
Description
技术领域
本发明实施例涉及通信领域,并且更具体地,涉及一种报文处理的方法及转发设备。
背景技术
一个转发设备由硬件和软件组成,如图1所示。
硬件通常包括多个端口,一个转发引擎和一个转发表存储模块。端口暴露在设备的外部,用于连接网络线缆,端口内部通过导线和转发引擎相连。转发引擎由一个或多个芯片组成,它接收来自各个端口的报文,根据报文的目的地址查找转发表,根据匹配的转发表项中记载的出端口,将报文从该端口发送出去。转发表存储模块通常为专用存储器,如内容寻址存储器(ContentAddressable Memory,CAM)或三态内容寻址存储器(Ternary ContentAddressable Memory,TCAM),它存储着一张或多张转发表,它可以是一个独立的芯片,也可以和转发引擎的芯片集成在一个芯片内。
软件至少包含一个配置管理模块、一个转发表管理模块和一个报文处理模块。配置管理模块通过写转发引擎上的寄存器改变硬件的工作状态和/或工作模式,比如开启/关闭一个端口、修改端口的速率。转发表管理模块用于向硬件上的转发表增加/删除转发表项,一旦表项被写入硬件上的转发表,转发引擎就能根据该表项的内容识别出具有相应特征的数据报文(即查表),并对这些报文执行相应的转发动作。该识别特征和执行转发动作的过程都是硬件独立完成的,没有软件的参与。软件仅仅通过修改硬件上的转发表控制硬件的转发行为。这种软件负责控制,硬件负责转发的架构被称为控制转发分离的架构,被当前的包转发设备普遍采用。有时候,转发设备端口收到的报文的目的就是转发设备自己,此时报文被硬件的转发引擎上送到软件的报文处理模块执行处理。有时候,转发设备也要向外发送报文,此时报文处理模块将生成的报文递交给硬件的转发引擎,最终由硬件将该报文发送出去。
当前SDN中的转发设备采用上述的控制转发分离的架构实现。在硬件上存储流表并实现查表转发功能。但是硬件流表的表项是定长的,而现实中表项的长度长短不一,参差不齐。
同一个流表的多个表项的长度可能会有很大的差别。例如某一个表项的指令中只包含一个动作,长度较小。而另一个表项的指令中可能会包含多个动作,长度较大。此时,若不按表项的最大长度定义流表,则将有一部分表项无法写入流表;若按表项的最大长度定义流表,则浪费大量的流表存储空间。专用存储器的空间由于功耗和成本的原因,一般不太大,而且设备一旦生产便无法扩展,如上述那样严重的浪费是不能接受的。
发明内容
本发明实施例提供一种报文处理的方法,能够合理地利用转发设备的专用存储器的存储空间来存储流表。
第一方面,提供了一种报文处理的方法,所述方法由转发设备执行,所述转发设备包括专用处理器、通用处理器、专用存储器和通用存储器,所述方法包括:所述专用处理器获取第一匹配信息;所述专用处理器根据所述第一匹配信息查找所述专用存储器中的第一表,确定与所述第一匹配信息对应的搜索信息;所述专用处理器将报文和所述搜索信息发送至所述通用处理器;所述通用处理器根据所述搜索信息查找所述通用存储器中的第二表,确定与所述搜索信息对应的第二指令集;所述通用处理器执行所述第二指令集,对所述报文进行第二处理。
结合第一方面,在第一种可能的实现方式中,所述专用处理器根据所述第一匹配信息查找所述专用存储器中的第一表,确定与所述第一匹配信息对应的搜索信息,包括:所述专用处理器根据所述第一匹配信息查找所述专用存储器中的第一表,确定与所述第一匹配信息对应的第一指令集和所述搜索信息;
所述专用处理器将报文和所述搜索信息发送至所述通用处理器,包括:所述专用处理器执行所述第一指令集,对所述报文进行第一处理;所述专用处理器将进行所述第一处理后的所述报文和所述搜索信息发送至所述通用处理器;
所述通用处理器执行所述第二指令集,对所述报文进行第二处理,包括:所述通用处理器执行所述第二指令集,对所述进行所述第一处理后的所述报文进行第二处理。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一指令集中的所有的指令的总长度小于预设阈值。
结合第一方面或者上述任一种可能的实现方式,在第三种可能的实现方式中,所述搜索信息包括索引信息。
结合第一方面或者上述任一种可能的实现方式,在第四种可能的实现方式中,所述专用存储器中还包括第三表,所述第三表包括第二匹配信息与第三指令集的对应关系。
第二方面,提供了一种转发设备,所述转发设备包括专用处理器、通用处理器、专用存储器和通用存储器:所述专用存储器,用于存储第一表,所述第一表包括第一匹配信息与搜索信息的对应关系;所述通用存储器,用于存储第二表,所述第二表包括所述搜索信息与第二指令集的对应关系;所述专用处理器,用于获取所述第一匹配信息,根据所述第一匹配信息查找所述专用存储器中的所述第一表,确定与所述第一匹配信息对应的所述搜索信息,并将报文和所述搜索信息发送至所述通用处理器;所述通用处理器,用于根据所述搜索信息查找所述通用存储器中的所述第二表,确定与所述搜索信息对应的所述第二指令集,并执行所述第二指令集,对所述报文进行第二处理。
结合第二方面,在第一种可能的实现方式中,所述专用处理器,还用于根据所述第一匹配信息查找所述专用存储器中的第一表,确定与所述第一匹配信息对应的第一指令集和所述搜索信息,执行所述第一指令集,对所述报文进行第一处理,并将进行所述第一处理后的所述报文和所述搜索信息发送至所述通用处理器;所述通用处理器,还用于执行所述第二指令集,对所述进行所述第一处理后的所述报文进行第二处理。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一指令集的长度小于预设阈值。
结合第二方面或者上述任一种可能的实现方式,在第三种可能的实现方式中,所述搜索信息包括索引信息。
结合第二方面或者上述任一种可能的实现方式,在第四种可能的实现方式中,所述专用存储器还用于存储第三表,所述第三表包括第二匹配信息与第三指令集的对应关系。
本发明实施例中,转发设备包括专用处理器、通用处理器、专用存储器和通用存储器,转发设备对报文进行处理时,首先由专用处理器获取匹配信息,查找专用存储器中的第一表以确定与匹配信息对应的搜索信息,进一步将报文和搜索信息发送至通用处理器,再由通用处理器以搜索信息为索引查找通用存储器中的第二表,确定对应的指令集并对报文进行处理。这样,转发设备在报文处理过程中所查找的流表的匹配信息和指令集分别存储在专用存储器和通用存储器中,能够合理地利用转发设备的专用存储器的存储空间来存储流表。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是转发设备的结构的示意图的一例。
图2是本发明一个实施例的报文转发的方法的流程图。
图3是本发明一个实施例的转发设备的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是现有技术中转发设备的结构的示意图的一例。图1所示的转发设备100包括硬件110和软件120。其中,硬件110部分包括多个端口101、一个转发引擎102和一个转发表存储模块103。软件120部分包括一个配置管理模块104、一个转发表管理模块105和一个报文处理模块106。
其中,转发表存储模块103为专用存储器,例如可以是CAM或者是TCAM。流表通常存储在该转发表存储模块103中。转发设备100在报文处理过程中,会查找存储在转发表存储模块103中的流表。
流表中会包含多个表项,一般来讲,多个表项中的各个表项的长度是不相等的。此时,流表存储在转发表存储模块103中时,硬件110需能够满足流表中表项的最大长度。也就是说,在硬件110中存储流表时,对硬件110的要求较高。
图2是本发明一个实施例的报文转发的方法的流程图。图2所示的方法200由转发设备执行,该转发设备包括专用处理器、通用处理器、专用存储器和通用存储器,该方法包括:
201,专用处理器获取第一匹配信息。
202,该专用处理器根据第一匹配信息查找专用存储器中的第一表,确定与该第一匹配信息对应的搜索信息。
203,该专用处理器将报文和该搜索信息发送至通用处理器。
204,通用处理器根据该搜索信息查找通用存储器中的第二表,确定与该搜索信息对应的第二指令集。
205,通用处理器执行该第二指令集,对报文进行第二处理。
本发明实施例中,转发设备包括专用处理器、通用处理器、专用存储器和通用存储器,转发设备对报文进行处理时,首先由专用处理器获取匹配信息,查找专用存储器中的第一表以确定与匹配信息对应的搜索信息,进一步将报文和搜索信息发送至通用处理器,再由通用处理器以搜索信息为索引查找通用存储器中的第二表,确定对应的指令集并对报文进行处理。这样,转发设备在报文处理过程中所查找的流表的匹配信息和指令集分别存储在专用存储器和通用存储器中,这样能够合理地利用专用存储器的存储空间。流表中包括多个表项,每一个表项都包括指令集,不同的指令集的长度差别比较大。现有技术中将流表存储在专用存储器中,专用存储器的存储空间需满足表项的最大长度。本发明实施例中,将表项的指令集存储在通用存储器中,能够减小在流表存储时对专用存储器的存储空间的要求。
本发明实施例中,转发设备可在接收报文之后获取第一匹配信息。例如,该第一匹配信息可以是该报文中的一个字段。
本发明实施例中,专用处理器可以是专用集成电路(Application SpecificIntegrated Circuit,ASIC)、网络处理器(Network Processor,NP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。专用处理器的处理逻辑被固化或半固化在芯片内部,因此只能执行功能单一的、特定的任务。
本发明实施例中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。例如,可以是x86、ARM、MIPS或PowerPC处理器。通用处理器广泛地存在于生活生产中,如个人计算机(Personal Computer,PC)、移动电话、平板电脑、智能家电、仪器仪表等,通用处理器的用途广泛、价格低廉、产量居大。并且,通用处理器的处理逻辑一般由软件所定义,理论上可执行任何任务。
本发明实施例中,专用存储器可以是指有特殊功能的存储器,例如可以是CAM或者TCAM,他们对查找有加速作用。专用存储器一般价格昂贵,直接焊接在电路板上,不容易进行扩展。
本发明实施例中,通用存储器可以是指存储软件指令和数据的存储器,由通用处理器控制和使用,例如可以是动态随机存取存储器(Random AccessMemory,DRAM)。通用存储器一般价格便宜,模块化程度高,电路板上通常预留内存扩展槽,较容易进行容量扩展。
专用存储器中的第一表可包括第一匹配信息与搜索信息之间的对应关系。在202中,专用处理器可根据第一匹配信息查找第一表,确定与第一匹配信息对应的搜索信息。
可选地,作为一个实施例,搜索信息可以是索引信息,例如可以是索引值。
通用存储器中的第二表可包括搜索信息与第二指令集(instructions)之间的对应关系。在204中,通用处理器可根据203中专用处理器所发送的搜索信息确定与第一匹配信息对应的第二指令集。该第二指令集中可包含至少一个报文处理的指令。
也可理解为,转发设备在报文处理过程中,先在202中查找硬件部分的专用存储器中的第一表,确定与第一匹配信息对应的搜索信息,再将所确定的搜索信息和报文一起上送至软件部分,进而在204中查找通用存储器中的第二表,确定与第一匹配信息对应的第二指令集,并执行该第二指令集对报文进行处理。
例如,假设专用存储器中的第一表如表一所示,通用存储器中的第二表如表二所示。
表一
第一匹配信息 | 搜索信息 |
匹配信息一 | 2 |
匹配信息二 | 3 |
匹配信息三 | 1 |
表二
搜索信息 | 第二指令集 |
1 | 指令一 |
2 | 指令二 |
3 | 指令三 |
假设转发设备接收到第一报文,获取第一匹配信息为匹配信息二。转发设备中的专用处理器以匹配信息二为索引查找专用存储器中的表一,确定与匹配信息二对应的搜索信息为索引值3。进一步专用处理器将第一报文和索引值3一起上送至通用处理器,并由通用处理器以索引值3为索引查找通用存储器中的表二,确定与匹配信息二对应的第二指令集为指令三。从而可执行该指令三对第一报文进行处理。
本发明实施例中,转发设备虽然在202和203分别由专用处理器查找专用存储器中的第一表和由通用处理器查找通用存储器中的第二表,但是在逻辑上来看,可以认为转发设备查找了一个逻辑流表来确定第二指令集。例如,对于表一所示的第一表和表二所示的第二表,可以认为转发设备中的逻辑流表为如下所示的表三。
表三
第一匹配信息 | 指令集 |
匹配信息一 | 指令二 |
匹配信息二 | 指令三 |
匹配信息三 | 指令一 |
也就是说,对于如表三所示的逻辑流表,转发设备可将如表一所示的第一表存储在专用存储器中,并将如表二所示的第二表存储在通用存储器中。
本发明实施例中,专用存储器中所存储的第一表包括第一匹配信息与搜索信息的对应关系,其中搜索信息的长度可以较小,这样对专用存储器的硬件要求较低。也就是说,对专用存储器的存储空间的要求较低。另一方面,转发设备分别由专用处理器查找专用存储器中的第一表和由通用处理器通用存储器中的第二表,能够合理地利用专用存储器的存储空间。
可选地,作为一个实施例,专用存储器中的第一表还可包括第一匹配信息与第一指令集的对应关系。在202中,该专用处理器根据第一匹配信息查找专用存储器中的第一表,确定与该第一匹配信息对应的第一指令集和搜索信息。在203中,该专用处理器执行该第一指令集,对报文进行第一处理。并将进行第一处理后的报文和搜索信息发送至通用处理器。在205中,通用处理器执行第二指令集,对进行第一处理后的报文进行第二处理。
也就是说,专用存储器中的第一表,包括第一匹配信息、第一指令集以及搜索信息三者之间的对应关系。其中第一指令集可包括至少一个报文处理的指令。
可以理解为,在转发设备的逻辑流表中,第一匹配信息对应的指令集包括第二指令集和第一指令集。本发明实施例将第一指令集存储在专用存储器中,将第二指令集存储在通用存储器中。
例如,专用存储器中的第一表可如表四所示。
表四
第一匹配信息 | 第一指令集 | 搜索信息 |
匹配信息一 | 指令四 | 2 |
匹配信息二 | 指令五 | 3 |
匹配信息三 | 指令六 | 1 |
假设转发设备接收到第二报文,获取第一匹配信息为匹配信息三。转发设备中的专用处理器以匹配信息三为索引查找专用存储器中的表四,确定与匹配信息三对应的第一指令集为指令六,同时确定与匹配信息三对应的搜索信息为索引值1。随后,该专用处理器执行该指令六对第二报文进行第一处理。进一步该专用处理器将进行第一处理后的第二报文和索引值1一起上送至通用处理器,该通用处理器以索引值1为索引查找通用存储器中的表二,确定与索引值1对应的第二指令集为指令一。从而可执行该指令一对进行第一处理后的第二报文进行第二处理。
此时,可以认为转发设备中的逻辑流表如表五所示。
表五
第一匹配信息 | 指令集 |
匹配信息一 | 指令四、指令二 |
匹配信息二 | 指令五、指令三 |
匹配信息三 | 指令六、指令一 |
也就是说,对于如表五所示的逻辑流表,转发设备可将如表四所示的第一表存储在专用存储器中,并将如表二所示的第二表存储在通用存储器中。
流表中包括多个表项,不同的表项中的指令集的长度差别比较大。本发明实施例将表项中长度较大的指令集的一部分指令存储在专用存储器中,并将该长度较大的指令集的其余指令存储在通用存储器中。这样,在流表存储过程中,能够减小对专用存储器的存储空间的要求。
应理解,本发明实施例中,第一指令集中可包括一个或多个动作(action),第二指令集中可包括一个或多个动作。
本发明实施例中,专用存储器中的第一表中,与第一匹配信息对应的第一指令集中的所有指令的总长度可以是小于预设阈值的。这里,预设阈值可以是非负数。例如,转发设备可以将与第一匹配信息对应的所有的指令集中长度小于预设阈值的指令作为第一指令集,并存储在专用存储器中;将与第一匹配信息对应的所有的指令中除去第一指令集之外的指令作为第二指令集,并存储在通用存储器中;并同时定义相同的搜索信息。这样,转发设备能够充分地利用专用存储器的存储空间。
或者,本发明实施例中,专用存储器中的第一表中,与第一匹配信息对应的第一指令集中的所有指令的个数可以是小于另一预设阈值的。这里,另一预设阈值可以是非负整数。本发明对此不作限定。
可以理解为,本发明实施例中,转发设备在对报文进行处理时,可先由专用处理器获取第一匹配信息,根据第一匹配信息查找专用存储器中的第一表,确定与第一匹配信息对应的第一指令集和/或搜索信息。
如果该专用处理器所确定的与第一匹配信息对应的仅有搜索信息,则将报文和搜索信息发送至通用处理器。再由通用处理器对报文进行处理。具体地,通用处理器根据搜索信息,查找通用存储器中的第二表,确定与搜索信息对应的第二指令集。进一步通用处理器执行该第二指令集对报文进行处理。这样便完成了对报文的处理。
如果该专用处理器所确定的与第一匹配信息对应的第一指令集和搜索信息,那么,专用处理器执行第一指令集对报文进行第一处理,并将进行第一处理后的报文和搜索信息发送至通用处理器。再由通用处理器对报文进行后续处理。具体地,通用处理器根据搜索信息,查找通用存储器中的第二表,确定与搜索信息对应的第二指令集。进一步通用处理器执行该第二指令集对进行第一处理后的报文进行第二处理。这样便完成了对报文的处理。
如果该专用处理器所确定的与第一匹配信息对应的仅有第一指令集,也可理解为搜索信息为空。此时,专用处理器执行第一指令集对报文进行处理。这样便完成了对报文的处理。并且,专用处理器不再将进行第一处理后的报文发送至通用处理器。
也就是说,本发明实施例中,转发设备在对报文进行处理时,可以是由转发设备中的专用处理器执行的,或者也可以是由转发设备中的通用处理器执行的,或者也可以是由转发设备中的专用处理器和通用处理器一起执行的。本发明对此不作限定。
应理解,本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。
可选地,作为另一个实施例,专用存储器中还可存储第三表,该第三表包括第二匹配信息与第三指令集的对应关系。
可理解,第三表是存储在专用存储器中的完整的流表。
例如,对于如表五所示的逻辑流表,可在专用存储器中存储如表六所示的第三表和如表七所示的第一表,在通用存储器中存储如表八所示的第二表。
表六
第二匹配信息 | 第三指令集 |
匹配信息一 | 指令四、指令二 |
表七
第一匹配信息 | 搜索信息 |
匹配信息二 | 3 |
匹配信息三 | 1 |
表八
搜索信息 | 第二指令集 |
1 | 指令六、指令一 |
3 | 指令五、指令三 |
或者,对于如表五所示的逻辑流表,可在专用存储器中存储如表六所示的第三表和如表九所示的第一表,在通用存储器中存储如表十所示的第二表。
表九
第一匹配信息 | 第一指令集 | 搜索信息 |
匹配信息二 | 指令六 | 3 |
匹配信息三 | 指令五 | 1 |
表十
搜索信息 | 第二指令集 |
1 | 指令一 |
3 | 指令三 |
可选地,转发设备可将服务等级高的表项存储在专用存储器的第三表中,将服务等级低的表项分别存储在专用存储器的第一表和通用存储器的第二表中。
具体地,转发设备在收到第三报文之后,可由专用处理器先查找专用存储器中的第三表,在第三表没有匹配的表项时,再查找专用存储器中的第一表以确定搜索信息,进一步再由通用处理器以搜索信息为索引查找通用存储器中的第二表。这样,可以优先执行第三表的表项中相应的第三指令集。
图3是本发明是一个实施例的转发设备的框图。图3所示的转发设备300包括专用处理器301、通用处理器302、专用存储器303和通用存储器304。
专用存储器303用于存储第一表,所述第一表包括第一匹配信息与搜索信息的对应关系。通用存储器304用于存储第二表,所述第二表包括所述搜索信息与第二指令集的对应关系。专用处理器301用于获取所述第一匹配信息,根据所述第一匹配信息查找专用存储器303中的所述第一表,确定与所述第一匹配信息对应的所述搜索信息,并将报文和所述搜索信息发送至通用处理器302。通用处理器302用于根据所述搜索信息查找通用存储器304中的所述第二表,确定与所述搜索信息对应的所述第二指令集,并执行所述第二指令集,对所述报文进行第二处理。
本发明实施例中,转发设备包括专用处理器、通用处理器、专用存储器和通用存储器,转发设备对报文进行处理时,首先由专用处理器获取匹配信息,查找专用存储器中的第一表以确定与匹配信息对应的搜索信息,进一步将报文和搜索信息发送至通用处理器,再由通用处理器以搜索信息为索引查找通用存储器中的第二表,确定对应的指令集并对报文进行处理。这样,转发设备在报文处理过程中所查找的流表的匹配信息和指令集分别存储在专用存储器和通用存储器中,能够合理地利用专用存储器的存储空间。
可选地,作为一个实施例,专用处理器301还用于根据所述第一匹配信息查找专用存储器303中的第一表,确定与所述第一匹配信息对应的第一指令集和所述搜索信息,执行所述第一指令集,对所述报文进行第一处理,并将进行所述第一处理后的所述报文和所述搜索信息发送至通用处理器302。通用处理器302还用于执行所述第二指令集,对所述进行所述第一处理后的所述报文进行第二处理。
可选地,作为另一个实施例,第一指令集中的所有指令的总长度小于预设阈值。这里,预设阈值可以是非负数。
可选地,作为另一个实施例,搜索信息包括索引信息。
可选地,作为另一个实施例,专用存储器303还用于存储第三表,所述第三表包括第二匹配信息与第三指令集的对应关系。
转发设备300能够实现图2的实施例中由转发设备实现的各个过程,为避免重复,这里不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种报文处理的方法,其特征在于,所述方法由转发设备执行,所述转发设备包括专用处理器、通用处理器、专用存储器和通用存储器,所述方法包括:
所述专用处理器获取第一匹配信息;
所述专用处理器根据所述第一匹配信息查找所述专用存储器中的第一表,确定与所述第一匹配信息对应的搜索信息;
所述专用处理器将报文和所述搜索信息发送至所述通用处理器;
所述通用处理器根据所述搜索信息查找所述通用存储器中的第二表,确定与所述搜索信息对应的第二指令集;
所述通用处理器执行所述第二指令集,对所述报文进行第二处理。
2.根据权利要求1所述的方法,其特征在于,
所述专用处理器根据所述第一匹配信息查找所述专用存储器中的第一表,确定与所述第一匹配信息对应的搜索信息,包括:
所述专用处理器根据所述第一匹配信息查找所述专用存储器中的第一表,确定与所述第一匹配信息对应的第一指令集和所述搜索信息;
所述专用处理器将报文和所述搜索信息发送至所述通用处理器,包括:
所述专用处理器执行所述第一指令集,对所述报文进行第一处理;
所述专用处理器将进行所述第一处理后的所述报文和所述搜索信息发送至所述通用处理器;
所述通用处理器执行所述第二指令集,对所述报文进行第二处理,包括:
所述通用处理器执行所述第二指令集,对所述进行所述第一处理后的所述报文进行第二处理。
3.根据权利要求2所述的方法,其特征在于,所述第一指令集中的所有的指令的总长度小于预设阈值。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述搜索信息包括索引信息。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述专用存储器中还包括第三表,所述第三表包括第二匹配信息与第三指令集的对应关系。
6.一种转发设备,其特征在于,所述转发设备包括专用处理器、通用处理器、专用存储器和通用存储器:
所述专用存储器,用于存储第一表,所述第一表包括第一匹配信息与搜索信息的对应关系;
所述通用存储器,用于存储第二表,所述第二表包括所述搜索信息与第二指令集的对应关系;
所述专用处理器,用于获取所述第一匹配信息,根据所述第一匹配信息查找所述专用存储器中的所述第一表,确定与所述第一匹配信息对应的所述搜索信息,并将报文和所述搜索信息发送至所述通用处理器;
所述通用处理器,用于根据所述搜索信息查找所述通用存储器中的所述第二表,确定与所述搜索信息对应的所述第二指令集,并执行所述第二指令集,对所述报文进行第二处理。
7.根据权利要求6所述的转发设备,其特征在于,
所述专用处理器,还用于根据所述第一匹配信息查找所述专用存储器中的第一表,确定与所述第一匹配信息对应的第一指令集和所述搜索信息,执行所述第一指令集,对所述报文进行第一处理,并将进行所述第一处理后的所述报文和所述搜索信息发送至所述通用处理器;
所述通用处理器,还用于执行所述第二指令集,对所述进行所述第一处理后的所述报文进行第二处理。
8.根据权利要求7所述的转发设备,其特征在于,所述第一指令集的长度小于预设阈值。
9.根据权利要求6至8任一项所述的转发设备,其特征在于,所述搜索信息包括索引信息。
10.根据权利要求6至9任一项所述的转发设备,其特征在于,所述专用存储器还用于存储第三表,所述第三表包括第二匹配信息与第三指令集的对应关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410111506.XA CN103905310B (zh) | 2014-03-24 | 2014-03-24 | 报文处理的方法及转发设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410111506.XA CN103905310B (zh) | 2014-03-24 | 2014-03-24 | 报文处理的方法及转发设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103905310A true CN103905310A (zh) | 2014-07-02 |
CN103905310B CN103905310B (zh) | 2017-04-19 |
Family
ID=50996466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410111506.XA Active CN103905310B (zh) | 2014-03-24 | 2014-03-24 | 报文处理的方法及转发设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103905310B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105376159A (zh) * | 2014-08-25 | 2016-03-02 | 深圳市中兴微电子技术有限公司 | 报文处理转发装置及方法 |
CN106559339A (zh) * | 2015-09-30 | 2017-04-05 | 华为技术有限公司 | 一种报文处理方法及装置 |
WO2017124330A1 (en) * | 2016-01-20 | 2017-07-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Advertising network resource sharing status in sdn |
CN108737217A (zh) * | 2018-06-01 | 2018-11-02 | 杭州迪普科技股份有限公司 | 一种抓包方法及装置 |
CN110825514A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 人工智能芯片以及用于人工智能芯片的指令执行方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070091893A1 (en) * | 2001-07-02 | 2007-04-26 | Hitachi, Ltd. | Packet forwarding apparatus with packet controlling functions |
CN101304322A (zh) * | 2008-06-30 | 2008-11-12 | 杭州华三通信技术有限公司 | 一种网络设备和报文转发方法 |
US20110153584A1 (en) * | 2007-12-29 | 2011-06-23 | Hangzhou H3C Technologies Co., Ltd. | Method, system, and engine dispatch for content search |
CN103560951A (zh) * | 2013-11-13 | 2014-02-05 | 华为技术有限公司 | 报文处理方法及物理转发设备 |
-
2014
- 2014-03-24 CN CN201410111506.XA patent/CN103905310B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070091893A1 (en) * | 2001-07-02 | 2007-04-26 | Hitachi, Ltd. | Packet forwarding apparatus with packet controlling functions |
US20110153584A1 (en) * | 2007-12-29 | 2011-06-23 | Hangzhou H3C Technologies Co., Ltd. | Method, system, and engine dispatch for content search |
CN101304322A (zh) * | 2008-06-30 | 2008-11-12 | 杭州华三通信技术有限公司 | 一种网络设备和报文转发方法 |
CN103560951A (zh) * | 2013-11-13 | 2014-02-05 | 华为技术有限公司 | 报文处理方法及物理转发设备 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105376159A (zh) * | 2014-08-25 | 2016-03-02 | 深圳市中兴微电子技术有限公司 | 报文处理转发装置及方法 |
WO2016029684A1 (zh) * | 2014-08-25 | 2016-03-03 | 深圳市中兴微电子技术有限公司 | 报文处理转发装置、方法和计算机存储介质 |
CN106559339B (zh) * | 2015-09-30 | 2019-02-19 | 华为技术有限公司 | 一种报文处理方法及装置 |
WO2017054439A1 (zh) * | 2015-09-30 | 2017-04-06 | 华为技术有限公司 | 一种报文处理方法及装置 |
CN106559339A (zh) * | 2015-09-30 | 2017-04-05 | 华为技术有限公司 | 一种报文处理方法及装置 |
US10630584B2 (en) | 2015-09-30 | 2020-04-21 | Huawei Technologies Co., Ltd. | Packet processing method and apparatus |
US11184281B2 (en) | 2015-09-30 | 2021-11-23 | Huawei Technologies Co., Ltd. | Packet processing method and apparatus |
WO2017124330A1 (en) * | 2016-01-20 | 2017-07-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Advertising network resource sharing status in sdn |
US11089102B2 (en) | 2016-01-20 | 2021-08-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Advertising network resource sharing status in SDN |
CN108737217A (zh) * | 2018-06-01 | 2018-11-02 | 杭州迪普科技股份有限公司 | 一种抓包方法及装置 |
CN108737217B (zh) * | 2018-06-01 | 2020-06-09 | 杭州迪普科技股份有限公司 | 一种抓包方法及装置 |
CN110825514A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 人工智能芯片以及用于人工智能芯片的指令执行方法 |
US11372673B2 (en) | 2018-08-10 | 2022-06-28 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Artificial intelligence chip and instruction execution method for artificial intelligence chip |
CN110825514B (zh) * | 2018-08-10 | 2023-05-23 | 昆仑芯(北京)科技有限公司 | 人工智能芯片以及用于人工智能芯片的指令执行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103905310B (zh) | 2017-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103905310A (zh) | 报文处理的方法及转发设备 | |
CN102866954B (zh) | 内存分配的方法及装置 | |
CN105630847A (zh) | 数据存储方法、数据查询方法、装置及系统 | |
CN105224444A (zh) | 日志生成方法及装置 | |
CN107506310A (zh) | 一种地址查找、关键字存储方法及设备 | |
US11860970B2 (en) | Method, circuit, and SOC for performing matrix multiplication operation | |
CN104965798A (zh) | 一种数据处理方法、相关设备以及系统 | |
CN104965676A (zh) | 一种随机存取存储器的访问方法、装置及控制芯片 | |
CN109902056A (zh) | 一种串行传输的方法、装置、设备及计算机可读存储介质 | |
CN104025520A (zh) | 查找表的创建方法、查询方法、控制器、转发设备和系统 | |
CN104461649A (zh) | 芯片兼容方法及装置 | |
CN105740405A (zh) | 存储数据的方法和装置 | |
CN101833513B (zh) | 一种数据帧的读取方法、装置 | |
CN106648568B (zh) | 在表格上添加复选框的方法和装置 | |
CN106649210B (zh) | 一种数据转换方法及装置 | |
CN103716056A (zh) | 数据压缩方法、数据解压缩方法和设备 | |
CN104572994A (zh) | 用于搜索数据的方法和装置 | |
CN104270287A (zh) | 一种报文乱序检测方法及装置 | |
CN103530253A (zh) | 集群多全局缓冲池系统、中心节点、计算节点及管理方法 | |
CN103368944B (zh) | 一种内存共享网络架构及其协议规范 | |
CN102682112B (zh) | 存储方法和装置 | |
CN104424329A (zh) | 压缩正则表达式的方法、匹配字符串的方法及装置 | |
CN112052040A (zh) | 处理方法、装置、计算机设备和存储介质 | |
CN102968382A (zh) | 一种空闲存储单元的查找方法及装置 | |
CN106796505A (zh) | 指令执行的方法及处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211228 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: xFusion Digital Technologies Co., Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |