报文处理方法和装置制造方法

文档序号:8005241阅读:139来源:国知局
报文处理方法和装置制造方法
【专利摘要】本发明公开了一种报文处理方法和装置,其中,该方法包括:在流水线架构的芯片解析报文之前,根据第一偏移值提取报文的第一字段信息;根据第一字段信息确定第一字段信息对应的指令;将该指令和该报文发送给该芯片处理。通过本发明,解决了流水线架构的芯片处理报文时需要执行多次流水线导致的转发性能下降的问题,提高了流水线架构的芯片的转发效率。
【专利说明】报文处理方法和装置

【技术领域】
[0001]本发明涉及通信领域,具体而言,涉及报文处理方法和装置。

【背景技术】
[0002]流水线架构的芯片是指按照预定的流水线顺序处理报文的一种芯片。在流水线架构的芯片的流水线中的各个引擎分工明确,如第一个引擎用于解析报文;第二个引擎用于查表;第三个引擎用于获取读表信息,做一些报文处理的决定;第四个引擎还可以用于继续查表;第五个引擎用于根据报文处理决定修改报文。
[0003]发明人在研究过程中发现,流水线架构的芯片架构存在下列缺陷:报文在第二个引擎查表结束之后,如果还需要根据查表得到的信息再解析获取报文内容查表,就无法在一个流程之后就将报文处理发送出去,还需要将报文再送到第一个引擎,再流水线执行一次。例如:
[0004]图1是根据相关技术的芯片处理报文的流程示意图,报文进入芯片后,首先进入引擎I (解析引擎)进行报文的解析,将整个处理流程需要的报文信息都提取出来。接下来依次就是查表引擎、读表决策引擎和报文修改引擎。针对这种芯片的处理流程,如果有一种报文在报文解析的流程中,需要先解析报文字段Messl,用Messl查表,然后用查表结果中的Addr获取报文的Mess2(Mess2的偏移是Addr),最后用Mess2再查另外一张表,得到报文的处理决策。在相关技术中报文常用的处理方法为:报文进入芯片,在引擎I处先把Messl取出,然后在后面的引擎用Messl进行查表,依次进入各个引擎,最后在引擎5处理完毕之后,环回。图2是根据相关技术的报文在芯片中环回处理的流程示意图,如图2所示,芯片将用Messl查表后得到的信息(包括Addr) —起带回引擎1,引擎I再解析报文,得到Mess2,然后查表,决策,修改、转发报文。这样报文就在芯片中走了两圈,花了两倍的时间,从而导致报文的转发性能大幅度的降低。
[0005]针对相关技术中流水线架构的芯片处理报文时需要执行多次流水线导致的转发性能下降的问题,目前尚未提出有效的解决方案。


【发明内容】

[0006]本发明提供了一种报文处理方法和装置,以至少解决流水线架构的芯片处理报文时需要执行多次流水线导致的转发性能下降的问题。
[0007]根据本发明的一个方面,提供了一种报文处理方法,包括:在流水线架构的芯片解析报文之前,根据第一偏移值,提取所述报文的第一字段信息;根据所述第一字段信息,确定所述第一字段信息对应的指令;将所述指令和所述报文发送给所述芯片处理。
[0008]优选地,在提取所述报文的所述第一字段信息之前,所述方法还包括:根据所述报文的类型,确定所述第一偏移值。
[0009]优选地,所述指令包括:第二偏移值信息,其中,所述第二偏移值信息用于指示所述报文的第二字段信息。
[0010]优选地,在所述芯片接收所述指令和所述报文之后,所述方法还包括:所述芯片根据所述第二偏移值信息,提取所述第二字段信息;所述芯片查找所述第二字段信息的结果;根据所述第二字段信息的结果,确定所述报文的转发策略。
[0011]优选地,所述指令包括:标识信息,其中,所述标识信息用于指示所述报文中特殊字段的息。
[0012]优选地,在所述芯片接收所述指令和所述报文之后,所述方法还包括:所述芯片根据所述标识信息确定所述特殊字段的状态;所述芯片根据特殊字段的状态,确定所述报文的第三偏移值信息,其中,所述第三偏移值信息用于所述芯片提取所述报文中的字段信息。
[0013]根据本发明的另一方面,还提供了一种报文处理装置,包括:提取模块,用于根据第一偏移值,提取所述报文的第一字段信息;第一确定模块,用于根据所述第一字段信息,确定所述第一字段信息对应的指令;发送模块,用于将所述指令和所述报文发送给流水架构的芯片的解析模块处理。
[0014]优选地,所述装置还包括:第二确定模块,用于根据所述报文的类型,确定所述第一偏移值。
[0015]优选地,所述指令包括:第二偏移值信息,其中,所述第二偏移值信息用于指示所述报文的第二字段信息。
[0016]优选地,所述指令包括:标识信息,其中,所述标识信息用于指示所述报文中特殊字段的息。
[0017]通过本发明,采用在流水线架构的芯片解析报文之前,根据第一偏移值提取报文的第一字段信息;根据第一字段信息确定第一字段信息对应的指令;将该指令和该报文发送给该芯片处理的方式,解决了流水线架构的芯片处理报文时需要执行多次流水线导致的转发性能下降的问题,提高了流水线架构的芯片的转发效率。

【专利附图】

【附图说明】
[0018]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0019]图1是根据相关技术的芯片处理报文的流程示意图;
[0020]图2是根据相关技术的报文在芯片中环回处理的流程示意图;
[0021]图3是根据本发明实施例的报文处理方法的流程示意图;
[0022]图4是根据本发明实施例的报文处理装置的结构框图;
[0023]图5是根据本发明实施例的报文处理装置的优选结构框图;
[0024]图6是根据本发明优选实施例的查表前置的方法的流程示意图;
[0025]图7是根据本发明优选实施例的报文处理的准备过程的流程示意图;
[0026]图8是根据本发明优选实施例的报文前置查表过程的流程示意图;
[0027]图9是根据本发明另一优选实施例的报文处理的准备过程的流程示意图;
[0028]图10是根据本发明另一优选实施例的报文前置查表过程的流程示意图。

【具体实施方式】
[0029]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0030]在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0031]本实施例提供了一种报文处理方法,图3是根据本发明实施例的报文处理方法的流程示意图,如图3所示,该流程包括如下步骤:
[0032]步骤S302,在流水线架构的芯片解析报文之前,根据第一偏移值提取报文的第一字段?目息;
[0033]步骤S304,根据第一字段信息确定第一字段信息对应的指令;
[0034]步骤S306,将该指令和该报文发送给该流水线架构的芯片处理。
[0035]通过上述步骤,在流水线架构的芯片解析报文之前,首先提取报文中的第一字段信息,并根据第一字段信息确定其对应的指令,在将该指令和报文发送给流水线架构的芯片处理时,芯片可以根据预先确定的指令对报文中需要环回处理的信息进行处理,从而使得报文不再需要通过环回处理就能获得该指令的结果,从而解决了流水线架构的芯片处理报文时需要执行多次流水线导致的转发性能下降的问题,提高了流水线架构的芯片的转发效率。
[0036]优选地,用于确定第一字段信息的第一偏移值可以根据需要环回处理才能得到的信息的不同而可以灵活设置,例如,可以在步骤S102之前,根据报文的类型确定该第一偏移值。
[0037]优选地,由于需要环回处理才能得到的信息的不同,对应的第一字段信息可以是不同的,则所得到的指令也可能不同。即在指令和需要环回处理才能得到的信息之间存在一个预定的对应关系。优选地,该指令可以是:第二偏移值信息,其中,该第二偏移值信息用于指示报文的第二字段信息。通过指示该报文的第二字段信息,使得芯片在处理该报文时可以根据第二偏移值提取需要环回处理才能再次提取到的第二字段信息,并根据该第二字段信息查找对应的结果,最终根据查找到的结果对报文进行处理,例如,确定报文的转发策略。
[0038]优选地,该指令还可以是:标识信息,其中,该标识信息用于指示报文中特殊字段的信息。例如,该特殊字段是cword字段,通过该标识信息可以指示该cword字段是否存在。在这种情况下,在芯片接收该标识信息指令和报文之后,芯片可以根据标识信息确定特殊字段的状态;并根据该特殊字段的状态,确定报文的第三偏移值信息,其中,第三偏移值信息用于芯片提取报文中的字段信息。而在现有技术的处理流程中,是通过一次环回处理确定cword字段的状态,通过第二次环回处理根据正确的偏移值信息对报文进行正常处理。由此可见,通过本优选实施方式解决了由于特殊字段的存在导致报文中的特殊字段之后的字段信息的偏移值信息变化的问题,提高了转发效率。
[0039]本实施例还提供了一种报文处理装置,该装置用于实现上述报文处理方法。同时需要说明的是,装置实施例中描述的装置对应于上述的方法实施例,其具体的实现过程在方法实施例中已经进行过详细说明,在此不再赘述。
[0040]图4是根据本发明实施例的报文处理装置的结构框图,如图4所示,该装置包括:提取模块42、第一确定模块44和发送模块46,其中,提取模块42,用于根据第一偏移值提取报文的第一字段信息;第一确定模块44耦合至提取模块42,用于根据第一字段信息确定第一字段信息对应的指令;发送模块46耦合至第一确定模块44,用于将指令和报文发送给流水架构的芯片的解析模块处理。
[0041]本发明的实施例中所涉及到的模块、单元可以通过软件的方式实现,也可以通过硬件的方式来实现。本实施例中的所描述的模块、单元也可以设置在处理器中,例如,可以描述为:一种处理器包括提取模块42、第一确定模块44和发送模块46。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,提取模块还可以被描述为“用于根据第一偏移值提取报文的第一字段信息的模块”。
[0042]需要说明的是,本实施例中提到的“第一确定模块”、“第二确定模块”等类似描述中的“第一”、“第二”等描述仅用于对该模块或者单元的标识,并不应理解为这些单元或者模块之间存在顺序方面的限定。
[0043]优选地,上述装置可以该芯片的预处理单元中,该预处理单元是为芯片预留的一个处理单元,通过对该处理单元的配置和编程,从而实现对送入该芯片的解析模块的报文的预处理。
[0044]图5是根据本发明实施例的报文处理装置的优选结构框图,如图5所示,优选地,该装置还包括:第二确定模块52耦合至提取模块42,用于根据报文的类型确定第一偏移值。
[0045]优选地,该指令包括:第二偏移值信息,其中,第二偏移值信息用于指示报文的第二字段?目息。
[0046]优选地,指令包括:标识信息,其中,标识信息用于指示报文中特殊字段的信息。
[0047]下面结合优选实施例进行描述和说明。
[0048]本优选实施例提供了一种芯片中的高效查表方法,通过该方法,可以使得需要环回处理的报文在芯片中跑一圈就能够处理完毕,从而提高了报文的处理性能。
[0049]如图1所示,由于目前通常使用的方法,需要报文在芯片中环回一圈,也就是处理两圈,自然该报文的处理性能相对于简单的报文会下降一倍多。
[0050]图6是根据本发明优选实施例的查表前置的方法的流程示意图,如图6所示,相对于图1所示的报文处理方法,本优选实施例在引擎I (解析引擎)之前添加了一个报文信息提取查表的过程,其中,该过程包括以下两个部分:
[0051]一、准备过程
[0052]图7是根据本发明优选实施例的报文处理的准备过程的流程示意图,如图7所示,该流程包括:
[0053]步骤1,驱动按照需要提取的信息对硬件进行配置参数,以便后续自动提取报文信息字段;
[0054]步骤2,微码在search编码引擎,编写查表指令,其中该查表指令分别对应于不同的报文字段。
[0055]二、报文前置查表过程
[0056]图8是根据本发明优选实施例的报文前置查表过程的流程示意图,如图8所示,该流程包括:
[0057]步骤I,报文到达芯片;
[0058]步骤2,硬件根据配置信息提取报文字段;
[0059]步骤3,硬件将提取出来的报文信息送到查表引擎,按照事先准备好的微码查表命令进行查表;
[0060]步骤4,等待查表完成之后,硬件将表结果和报文一起送到引擎I (解析引擎);
[0061]三、报文后续处理流程
[0062]报文后续的处理流程和目前已有处理方法基本一致,在此参考图2所示的流程进行说明。该流程包括:
[0063]步骤1,引擎I读取查表信息,得到需要提取的信息地址Addrl ;
[0064]步骤2,引擎I通过Addrl提取报文信息Messl ;
[0065]步骤3,使用Messl作为键值进行查表;
[0066]步骤4,根据查表结果做报文转发的决策;
[0067]步骤5,修改报文;
[0068]步骤6,将报文发送出去,结束报文处理的整个流程;
[0069]在上述步骤中,报文信息提取过程得到的结果是:MESS1。其过程为:设置MESSl字段相对报文头的偏移值,报文进入芯片之后,硬件会更加偏移值提取出MESSl ;得到MESSl之后,硬件会自动用MESSl作为键值去查表,查表获得的表结果中,会有一个偏移值addr。报文结束上面的查表之后,会到达引擎1,此时表结果也会到达引擎1,引擎I中读取偏移值addr,然后通过addr获取MESS2。通过该方案,可以通过硬件提取字段,报文在进入引擎I之前,就得出一些有用的信息,从而减少了环回处理的次数,提高了芯片处理复杂业务的速度。
[0070]需要说明的是,本优选实施例的方法适用于所有的芯片,
[0071]下面结合一个具体的实例对本发明进行说明。
[0072]本例使用一个虚拟专用局域网业务(Virtual Private Lan Service,简称为VPLS)的下行伪线(PW)报文来作例。PW报文可能携带了 4B的cword字段,也可能没有携带4B的cword字段,并且,是否携带该cword字段可以通过PW标签的属性确定。如果芯片想要得到VPLS报文的内部数据包的报文头信息,就必须先知道该报文是否携带了 cword字段,然后才能正确的取到内部数据包的报文头信息。
[0073]本实例的方案是这样的:
[0074]一、芯片的准备过程
[0075]图9是根据本发明另一优选实施例的报文处理的准备过程的流程示意图,如图9所示,该流程包括:
[0076]步骤1,驱动配置硬件,让硬件提取标签报文的最内层标签;
[0077]步骤2,微码在search编码引擎,使用最内层标签查标签表。
[0078]二、报文前置查表处理过程
[0079]图10是根据本发明另一优选实施例的报文前置查表过程的流程示意图,如图10所示,该流程包括:
[0080]步骤I,报文到达芯片;
[0081]步骤2,硬件提取出报文中的最内层标签;
[0082]步骤3,硬件将提取出来的最内层标签送到查表引擎,查找标签表;
[0083]步骤4,等待查表完成之后,硬件将标签表结果和报文一起送到引擎I ;
[0084]步骤4以后的处理流程与报文根相关技术的方案进行处理时的环回处理的过程是基本相同的,包括:
[0085]步骤5,引擎I区分出报文是否带有4B的Cword字段;
[0086]步骤6,根据是否带有cword字段判断后面报文的偏移;
[0087]步骤6以后的处理流程与相关技术的对应的处理流程相同,在此不再赘述。
[0088]可见,通过本发明实施例和优选实施例提供的方案,提出了一种高效的查表方法,使得需要环回处理的报文在芯片中跑一圈就处理完毕,提高了报文的处理性能。
[0089]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0090]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种报文处理方法,其特征在于包括:在流水线架构的芯片解析报文之前, 根据第一偏移值,提取所述报文的第一字段信息; 根据所述第一字段信息,确定所述第一字段信息对应的指令; 将所述指令和所述报文发送给所述芯片处理。
2.根据权利要求1所述的方法,其特征在于,在提取所述报文的所述第一字段信息之前,所述方法还包括: 根据所述报文的类型,确定所述第一偏移值。
3.根据权利要求1所述的方法,其特征在于,所述指令包括:第二偏移值信息,其中,所述第二偏移值信息用于指示所述报文的第二字段信息。
4.根据权利要求3所述的方法,其特征在于,在所述芯片接收所述指令和所述报文之后,所述方法还包括: 所述芯片根据所述第二偏移值信息,提取所述第二字段信息; 所述芯片查找所述第二字段信息的结果; 根据所述第二字段信息的结果,确定所述报文的转发策略。
5.根据权利要求1所述的方法,其特征在于,所述指令包括:标识信息,其中,所述标识信息用于指示所述报文中特殊字段的信息。
6.根据权利要求5所述的方法,其特征在于,在所述芯片接收所述指令和所述报文之后,所述方法还包括: 所述芯片根据所述标识信息确定所述特殊字段的状态; 所述芯片根据特殊字段的状态,确定所述报文的第三偏移值信息,其中,所述第三偏移值信息用于所述芯片提取所述报文中的字段信息。
7.一种报文处理装置,其特征在于包括: 提取模块,用于根据第一偏移值,提取所述报文的第一字段信息; 第一确定模块,用于根据所述第一字段信息,确定所述第一字段信息对应的指令; 发送模块,用于将所述指令和所述报文发送给流水架构的芯片的解析模块处理。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括: 第二确定模块,用于根据所述报文的类型,确定所述第一偏移值。
9.根据权利要求7所述的装置,其特征在于,所述指令包括:第二偏移值信息,其中,所述第二偏移值信息用于指示所述报文的第二字段信息。
10.根据权利要求7所述的装置,其特征在于,所述指令包括:标识信息,其中,所述标识信息用于指示所述报文中特殊字段的信息。
【文档编号】H04L12/701GK104426761SQ201310374710
【公开日】2015年3月18日 申请日期:2013年8月23日 优先权日:2013年8月23日
【发明者】顾霞 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1