报文处理的方法及转发设备的利记博彩app

文档序号:7799747阅读:131来源:国知局
报文处理的方法及转发设备的利记博彩app
【专利摘要】本发明实施例提供了一种报文处理的方法及转发设备。该转发设备包括专用处理器、通用处理器、专用存储器和通用存储器,转发设备对报文进行处理时,首先由专用处理器获取第一匹配信息,查找专用存储器中的第一表以确定与第一匹配信息对应的搜索信息,进一步将报文和搜索信息发送至通用处理器,再由通用处理器以搜索信息为索引查找通用存储器中的第二表,确定对应的指令集并对报文进行处理。这样,转发设备在报文处理过程中所查找的流表的匹配信息和指令集分别存储在专用存储器和通用存储器中,能够合理地利用转发设备的专用存储器的存储空间来存储流表。
【专利说明】报文处理的方法及转发设备
【技术领域】
[0001]本发明实施例涉及通信领域,并且更具体地,涉及一种报文处理的方法及转发设备。
【背景技术】
[0002]一个转发设备由硬件和软件组成,如图1所示。
[0003]硬件通常包括多个端口,一个转发引擎和一个转发表存储模块。端口暴露在设备的外部,用于连接网络线缆,端口内部通过导线和转发引擎相连。转发引擎由一个或多个芯片组成,它接收来自各个端口的报文,根据报文的目的地址查找转发表,根据匹配的转发表项中记载的出端口,将报文从该端口发送出去。转发表存储模块通常为专用存储器,如内容寻址存储器(Content Addressable Memory, CAM)或三态内容寻址存储器(TernaryContent Addressable Memory, TCAM),它存储着一张或多张转发表,它可以是一个独立的芯片,也可以和转发引擎的芯片集成在一个芯片内。
[0004]软件至少包含一个配置管理模块、一个转发表管理模块和一个报文处理模块。配置管理模块通过写转发引擎上的寄存器改变硬件的工作状态和/或工作模式,比如开启/关闭一个端口、修改端口的速率。转发表管理模块用于向硬件上的转发表增加/删除转发表项,一旦表项被写入硬件上的转发表,转发引擎就能根据该表项的内容识别出具有相应特征的数据报文(即查表),并对这些报文执行相应的转发动作。该识别特征和执行转发动作的过程都是硬件独立完成的,没有软件的参与。软件仅仅通过修改硬件上的转发表控制硬件的转发行为。这种软件负责控制,硬件负责转发的架构被称为控制转发分离的架构,被当前的包转发设备普遍采用。有时候,转发设备端口收到的报文的目的就是转发设备自己,此时报文被硬件的转发引擎上送到软件的报文处理模块执行处理。有时候,转发设备也要向外发送报文,此时报文处理模块将生成的报文递交给硬件的转发引擎,最终由硬件将该报文发送出去。
[0005]当前SDN中的转发设备采用上述的控制转发分离的架构实现。在硬件上存储流表并实现查表转发功能。但是硬件流表的表项是定长的,而现实中表项的长度长短不一,参差不齐。
[0006]同一个流表的多个表项的长度可能会有很大的差别。例如某一个表项的指令中只包含一个动作,长度较小。而另一个表项的指令中可能会包含多个动作,长度较大。此时,若不按表项的最大长度定义流表,则将有一部分表项无法写入流表;若按表项的最大长度定义流表,则浪费大量的流表存储空间。专用存储器的空间由于功耗和成本的原因,一般不太大,而且设备一旦生产便无法扩展,如上述那样严重的浪费是不能接受的。

【发明内容】

[0007]本发明实施例提供一种报文处理的方法,能够合理地利用转发设备的专用存储器的存储空间来存储流表。[0008]第一方面,提供了一种报文处理的方法,所述方法由转发设备执行,所述转发设备包括专用处理器、通用处理器、专用存储器和通用存储器,所述方法包括:所述专用处理器获取第一匹配信息;所述专用处理器根据所述第一匹配信息查找所述专用存储器中的第一表,确定与所述第一匹配信息对应的搜索信息;所述专用处理器将报文和所述搜索信息发送至所述通用处理器;所述通用处理器根据所述搜索信息查找所述通用存储器中的第二表,确定与所述搜索信息对应的第二指令集;所述通用处理器执行所述第二指令集,对所述报文进行第二处理。
[0009]结合第一方面,在第一种可能的实现方式中,所述专用处理器根据所述第一匹配信息查找所述专用存储器中的第一表,确定与所述第一匹配信息对应的搜索信息,包括:所述专用处理器根据所述第一匹配信息查找所述专用存储器中的第一表,确定与所述第一匹配信息对应的第一指令集和所述搜索信息;
[0010]所述专用处理器将报文和所述搜索信息发送至所述通用处理器,包括:所述专用处理器执行所述第一指令集,对所述报文进行第一处理;所述专用处理器将进行所述第一处理后的所述报文和所述搜索信息发送至所述通用处理器;
[0011]所述通用处理器执行所述第二指令集,对所述报文进行第二处理,包括:所述通用处理器执行所述第二指令集,对所述进行所述第一处理后的所述报文进行第二处理。
[0012]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一指令集中的所有的指令的总长度小于预设阈值。
[0013]结合第一方面或者上述任一种可能的实现方式,在第三种可能的实现方式中,所述搜索信息包括索引信息。
[0014]结合第一方面或者上述任一种可能的实现方式,在第四种可能的实现方式中,所述专用存储器中还包括第三表,所述第三表包括第二匹配信息与第三指令集的对应关系。
[0015]第二方面,提供了一种转发设备,所述转发设备包括专用处理器、通用处理器、专用存储器和通用存储器:所述专用存储器,用于存储第一表,所述第一表包括第一匹配信息与搜索信息的对应关系;所述通用存储器,用于存储第二表,所述第二表包括所述搜索信息与第二指令集的对应关系;所述专用处理器,用于获取所述第一匹配信息,根据所述第一匹配信息查找所述专用存储器中的所述第一表,确定与所述第一匹配信息对应的所述搜索信息,并将报文和所述搜索信息发送至所述通用处理器;所述通用处理器,用于根据所述搜索信息查找所述通用存储器中的所述第二表,确定与所述搜索信息对应的所述第二指令集,并执行所述第二指令集,对所述报文进行第二处理。
[0016]结合第二方面,在第一种可能的实现方式中,所述专用处理器,还用于根据所述第一匹配信息查找所述专用存储器中的第一表,确定与所述第一匹配信息对应的第一指令集和所述搜索信息,执行所述第一指令集,对所述报文进行第一处理,并将进行所述第一处理后的所述报文和所述搜索信息发送至所述通用处理器;所述通用处理器,还用于执行所述第二指令集,对所述进行所述第一处理后的所述报文进行第二处理。
[0017]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一指令集的长度小于预设阈值。
[0018]结合第二方面或者上述任一种可能的实现方式,在第三种可能的实现方式中,所述搜索信息包括索引信息。[0019]结合第二方面或者上述任一种可能的实现方式,在第四种可能的实现方式中,所述专用存储器还用于存储第三表,所述第三表包括第二匹配信息与第三指令集的对应关系O
[0020]本发明实施例中,转发设备包括专用处理器、通用处理器、专用存储器和通用存储器,转发设备对报文进行处理时,首先由专用处理器获取匹配信息,查找专用存储器中的第一表以确定与匹配信息对应的搜索信息,进一步将报文和搜索信息发送至通用处理器,再由通用处理器以搜索信息为索引查找通用存储器中的第二表,确定对应的指令集并对报文进行处理。这样,转发设备在报文处理过程中所查找的流表的匹配信息和指令集分别存储在专用存储器和通用存储器中,能够合理地利用转发设备的专用存储器的存储空间来存储流表。
【专利附图】

【附图说明】
[0021]为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022]图1是转发设备的结构的示意图的一例。
[0023]图2是本发明一个实施例的报文转发的方法的流程图。
[0024]图3是本发明一个实施例的转发设备的框图。
【具体实施方式】
[0025]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0026]图1是现有技术中转发设备的结构的示意图的一例。图1所示的转发设备100包括硬件110和软件120。其中,硬件110部分包括多个端口 101、一个转发引擎102和一个转发表存储模块103。软件120部分包括一个配置管理模块104、一个转发表管理模块105和一个报文处理模块106。
[0027]其中,转发表存储模块103为专用存储器,例如可以是CAM或者是TCAM。流表通常存储在该转发表存储模块103中。转发设备100在报文处理过程中,会查找存储在转发表存储模块103中的流表。
[0028]流表中会包含多个表项,一般来讲,多个表项中的各个表项的长度是不相等的。此时,流表存储在转发表存储模块103中时,硬件110需能够满足流表中表项的最大长度。也就是说,在硬件110中存储流表时,对硬件110的要求较高。
[0029]图2是本发明一个实施例的报文转发的方法的流程图。图2所示的方法200由转发设备执行,该转发设备包括专用处理器、通用处理器、专用存储器和通用存储器,该方法包括:
[0030]201,专用处理器获取第一匹配信息。[0031]202,该专用处理器根据第一匹配信息查找专用存储器中的第一表,确定与该第一匹配信息对应的搜索信息。
[0032]203,该专用处理器将报文和该搜索信息发送至通用处理器。
[0033]204,通用处理器根据该搜索信息查找通用存储器中的第二表,确定与该搜索信息对应的第二指令集。
[0034]205,通用处理器执行该第二指令集,对报文进行第二处理。
[0035]本发明实施例中,转发设备包括专用处理器、通用处理器、专用存储器和通用存储器,转发设备对报文进行处理时,首先由专用处理器获取匹配信息,查找专用存储器中的第一表以确定与匹配信息对应的搜索信息,进一步将报文和搜索信息发送至通用处理器,再由通用处理器以搜索信息为索引查找通用存储器中的第二表,确定对应的指令集并对报文进行处理。这样,转发设备在报文处理过程中所查找的流表的匹配信息和指令集分别存储在专用存储器和通用存储器中,这样能够合理地利用专用存储器的存储空间。流表中包括多个表项,每一个表项都包括指令集,不同的指令集的长度差别比较大。现有技术中将流表存储在专用存储器中,专用存储器的存储空间需满足表项的最大长度。本发明实施例中,将表项的指令集存储在通用存储器中,能够减小在流表存储时对专用存储器的存储空间的要求。
[0036]本发明实施例中,转发设备可在接收报文之后获取第一匹配信息。例如,该第一匹配信息可以是该报文中的一个字段。
[0037]本发明实施例中,专用处理器可以是专用集成电路(Application SpecificIntegrated Circuit, ASIC)、网络处理器(Network Processor, NP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。专用处理器的处理逻辑被固化或半固化在芯片内部,因此只能执行功能单一的、特定的任务。
[0038]本发明实施例中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。例如,可以是x86、ARM、MIPS或PowerPC处理器。通用处理器广泛地存在于生活生产中,如个人计算机(Personal Computer, PC)、移动电话、平板电脑、智能家电、仪器仪表等,通用处理器的用途广泛、价格低廉、产量居大。并且,通用处理器的处理逻辑一般由软件所定义,理论上可执行任何任务。
[0039]本发明实施例中,专用存储器可以是指有特殊功能的存储器,例如可以是CAM或者TCAM,他们对查找有加速作用。专用存储器一般价格昂贵,直接焊接在电路板上,不容易进行扩展。
[0040]本发明实施例中,通用存储器可以是指存储软件指令和数据的存储器,由通用处理器控制和使用,例如可以是动态随机存取存储器(Random Access Memory,DRAM)。通用存储器一般价格便宜,模块化程度高,电路板上通常预留内存扩展槽,较容易进行容量扩展。
[0041]专用存储器中的第一表可包括第一匹配信息与搜索信息之间的对应关系。在202中,专用处理器可根据第一匹配信息查找第一表,确定与第一匹配信息对应的搜索信息。
[0042]可选地,作为一个实施例,搜索信息可以是索引信息,例如可以是索引值。
[0043]通用存储器中的第二表可包括搜索信息与第二指令集(instructions)之间的对应关系。在204中,通用处理器可根据203中专用处理器所发送的搜索信息确定与第一匹配信息对应的第二指令集。该第二指令集中可包含至少一个报文处理的指令。
[0044]也可理解为,转发设备在报文处理过程中,先在202中查找硬件部分的专用存储器中的第一表,确定与第一匹配信息对应的搜索信息,再将所确定的搜索信息和报文一起上送至软件部分,进而在204中查找通用存储器中的第二表,确定与第一匹配信息对应的第二指令集,并执行该第二指令集对报文进行处理。
[0045]例如,假设专用存储器中的第一表如表一所示,通用存储器中的第二表如表二所
[0046]表一
[0047]
【权利要求】
1.一种报文处理的方法,其特征在于,所述方法由转发设备执行,所述转发设备包括专用处理器、通用处理器、专用存储器和通用存储器,所述方法包括: 所述专用处理器获取第一匹配信息; 所述专用处理器根据所述第一匹配信息查找所述专用存储器中的第一表,确定与所述第一匹配信息对应的搜索信息; 所述专用处理器将报文和所述搜索信息发送至所述通用处理器; 所述通用处理器根据所述搜索信息查找所述通用存储器中的第二表,确定与所述搜索信息对应的第二指令集; 所述通用处理器执行所述第二指令集,对所述报文进行第二处理。
2.根据权利要求1所述的方法,其特征在于, 所述专用处理器根据所述第一匹配信息查找所述专用存储器中的第一表,确定与所述第一匹配信息对应的搜索信息,包括: 所述专用处理器根据所述第一匹配信息查找所述专用存储器中的第一表,确定与所述第一匹配信息对应的第一指令集和所述搜索信息; 所述专用处理器将报文和所述搜索信息发送至所述通用处理器,包括: 所述专用处理器执行所述第 一指令集,对所述报文进行第一处理; 所述专用处理器将进行所述第一处理后的所述报文和所述搜索信息发送至所述通用处理器; 所述通用处理器执行所述第二指令集,对所述报文进行第二处理,包括: 所述通用处理器执行所述第二指令集,对所述进行所述第一处理后的所述报文进行第二处理。
3.根据权利要求2所述的方法,其特征在于,所述第一指令集中的所有的指令的总长度小于预设阈值。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述搜索信息包括索引信息。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述专用存储器中还包括第三表,所述第三表包括第二匹配信息与第三指令集的对应关系。
6.一种转发设备,其特征在于,所述转发设备包括专用处理器、通用处理器、专用存储器和通用存储器: 所述专用存储器,用于存储第一表,所述第一表包括第一匹配信息与搜索信息的对应关系; 所述通用存储器,用于存储第二表,所述第二表包括所述搜索信息与第二指令集的对应关系; 所述专用处理器,用于获取所述第一匹配信息,根据所述第一匹配信息查找所述专用存储器中的所述第一表,确定与所述第一匹配信息对应的所述搜索信息,并将报文和所述搜索信息发送至所述通用处理器; 所述通用处理器,用于根据所述搜索信息查找所述通用存储器中的所述第二表,确定与所述搜索信息对应的所述第二指令集,并执行所述第二指令集,对所述报文进行第二处理。
7.根据权利要求6所述的转发设备,其特征在于,所述专用处理器,还用于根据所述第一匹配信息查找所述专用存储器中的第一表,确定与所述第一匹配信息对应的第一指令集和所述搜索信息,执行所述第一指令集,对所述报文进行第一处理,并将进行所述第一处理后的所述报文和所述搜索信息发送至所述通用处理器; 所述通用处理器,还用于执行所述第二指令集,对所述进行所述第一处理后的所述报文进行第二处理。
8.根据权利要求7所述的转发设备,其特征在于,所述第一指令集的长度小于预设阈值。
9.根据权利要求6至8任一项所述的转发设备,其特征在于,所述搜索信息包括索引信息。
10.根据权利要求6至9任一项所述的转发设备,其特征在于,所述专用存储器还用于存储第三表,所述第三表包括第二匹配信息与第三指令集的对应关系。
【文档编号】H04L12/741GK103905310SQ201410111506
【公开日】2014年7月2日 申请日期:2014年3月24日 优先权日:2014年3月24日
【发明者】李岩 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1