背景技术
千兆无源光网络(Gigabit-capable Passive Optical Networks,简称为GPON)是一种新兴的技术,作为PON系列技术中架构最完备、标准内容最完整、应用前景广阔的下一代网络技术一直被普遍关注,它是下一代接入网的基础,是取代目前非对称数字用户环路(AsymmetricDigital Subscriber Line,简称为ADSL)接入技术的最佳方案。在未来的接入网络市场中,它具有巨大的商机和非常广阔的市场前景。GPON网络终端设备(Optical Network Unit,简称为ONU)是GPON套片的核心芯片之一。在GPON系统中,ONU是连接局端和用户的桥梁,在GPON系统中起着关键作用,它要求具有高带宽和质量安全(Quality of Service,简称为QOS)保证的全业务接入。其中,GEM帧的封装简单、高效和灵活,并且还具有强大的OAM(Operation,Administration & Maintenance)能力等特点。
GPON ONU芯片的以太网报文的探测和处理是一个非常重要的环节,它需要识别网络中形形色色的各种报文,针对不同的报文有不同的处理方式。然而,众所周知,互连网的发展速度且迅猛,经常会推出一些特殊结构的报文,这就对芯片报文探测和处理的灵活性提出了很高的要求,不但要满足目前功能和性能的需求,同时还要满足未来技术发展的需要。
目前,业界在以太网报文探测和处理方面有以下方法:
(1)硬件实现对已经知道的以太网报文特征字段进行解析和处理。这种处理方式根据目前已经知道的以太网报文的结构,提取该以太网报文的特征字段,比如:二层的MAC地址,虚拟局域网(Virtual Local Area Network,简称为VLAN),EtherType;三层的IP地址,IP协议;四层的TCP/UDP报文的相关信息。然后,根据这些特征字段进行报文的转发处理。
这种方式是采用硬件实现的,有一个致命的缺点,一旦有新报文出现或者报文有新的特征字段出现,这种报文的检测和处理方式不能满足要求。
(2)软件实现对以太网报文的检测和处理。一些厂家为了解决报文探测和处理的灵活性问题,采用CPU的架构来实现。该方法将报文输入给CPU,通过软件匹配模板来实现对报文任意位置的字段进行匹配提取,然后根据提取的信息对报文进行转发处理。
这种方式是采用软件来实现,虽然该方法使报文探测处理变得很灵活,但需要增加CPU,以及CPU的相关部件。同时,由于报文处理性能的要求达到10Gbits/s,一个CPU核很难完成报文的探测和处理,往往需要多个CPU核结构,无疑增加了成本、资源和功耗。
(3)使用三态内容寻址存储器(Ternary Content Addressable Memory,简称为TCAM)来实现以太网报文的检测和匹配。业界也有一些厂家采用TCAM来探测和匹配以太网报文的特殊字段。该方法可以通过外部CPU编程来检测以太网报文的任意字段,然后,根据匹配结果进行报文的转发处理。
这种采用TCAM来检测报文的方式可以做到灵活检测,但TCAM是一种特殊算法实现的硬件,普遍面积和功耗都比较大,一般都需要购买专门厂家的IP,导致成本比较高;另外,如果在终端芯片中采用TCAM,对终端产品的节能、环保及成本的要求有很大的影响。
综上所述,相关技术中没有一种高效、灵活处理报文的方法,导致报文的检测处理过程不灵活且成本较高。
发明内容
本发明提供了一种报文处理方法及装置,以至少解决相关技术中没有一种高效、灵活处理报文的方法,导致报文的检测处理过程不灵活且成本较高的问题。
根据本发明的一个方面,提供了一种报文处理方法,包括:根据收到的报文获取与所述报文对应的提取规则;按照所述提取规则对所述报文进行抽样提取;将抽样提取得到的数据与预置数据进行匹配,获取所述报文的处理规则。
优选地,将抽样提取得到的数据与预置数据进行匹配包括:根据所述抽样提取得到的数据进行哈希HASH运算得到HASH地址,将抽样提取得到的数据与所述HASH地址对应的预置数据进行匹配。
优选地,将所述抽样提取得到的所述数据进行哈希HASH运算得到HASH地址包括:将抽样提取得到的数据、所述报文对应的提取规则的编号和所述报文的UNI端口号进行哈希HASH运算,以获得HASH地址,其中,所述报文对应的提取规则是根据所述报文的UNI端口号获取的。
优选地,根据收到的报文获取与所述报文对应的提取规则包括:接收所述报文,并提取所述报文的UNI端口号;根据所述报文的UNI端口号获取所述报文对应的提取规则。
优选地,将抽样提取得到的数据与预置的抽样数据值进行匹配检测之后,还包括:如果所述匹配检测未通过,则按照缺省规则进行处理。
优选地,根据ACL规则表获取所述报文的处理规则,其中,按照所述ACL规则表中的规则指示对所述报文进行以下之一的处理:报文转发、报文丢弃、报文提交CPU处理。
优选地,报文转发操作至少包括以下之一:VLAN转换、优先级修改、给予报文新的GEMFLOW。
根据本发明的另一方面,提供了一种报文处理装置,包括:提取模块,用于根据收到的报文获取与所述报文对应的提取规则;采样模块,用于按照所述提取规则对所述报文进行抽样提取;匹配模块,用于将抽样提取得到的数据与预置数据进行匹配,获取所述报文的处理规则。
优选地,所述匹配模块包括:HASH运算单元,用于根据所述抽样提取得到的数据进行哈希HASH运算得到HASH地址,HASH匹配单元,用于将抽样提取得到的数据与所述HASH地址对应的预置数据进行匹配。
优选地,所述提取模块包括:接收单元,用于接收所述报文;提取单元,用于提取所述报文的UNI端口号;获取单元,用于根据所述报文的UNI端口号获取所述报文对应的提取规则。
本发明采用了如下方法:按照所述提取规则对所述报文进行抽样提取;将抽样提取得到的数据与预置数据进行匹配,获取所述报文的处理规则。本发明通过将提取到的数据与预置数据进行匹配,根据匹配结果获取处理规则,无需通过复杂的算法,也不用增加投资成本,解决了相关技术中没有一种高效、灵活处理报文的方法,导致报文的检测处理过程不灵活且成本较高的问题,进而提供了高效且灵活的报文处理方法,提升了系统性能,提高了用户体验。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
基于相关技术中没有一种高效、灵活处理报文的方法,导致报文的检测处理过程不灵活且成本较高的问题,本发明实施例提供了一种报文处理方法,该方法的流程如图1所示,,包括步骤S102至步骤S106:
步骤S102,根据收到的报文获取与报文对应的提取规则;
步骤S104,按照提取规则对报文进行抽样提取;
步骤S106,将抽样提取得到的数据与预置数据进行匹配,获取报文的处理规则。
本发明实施例采用了如下方法:按照提取规则对报文进行抽样提取;将抽样提取得到的数据与预置数据进行匹配,获取报文的处理规则。本实施例通过将提取到的数据与预置数据进行匹配,根据匹配结果获取处理规则,无需通过复杂的算法,也不用增加投资成本,解决了相关技术中没有一种高效、灵活处理报文的方法,导致报文的检测处理过程不灵活且成本较高的问题,进而提供了高效且灵活的报文处理方法,提升了系统性能,提高了用户体验。
在步骤S102实施的过程可以进行如下处理:(1)接收报文,并提取报文的UNI端口号;(2)根据报文的UNI端口号获取报文对应的提取规则。在实施时,可以用映射表或数据库的形式存放对应的规则。
下面对用映射表的形式存放规则的情况进行说明。终端根据报文的UNI端口号,去索引基于端口的提取规则映射表,获得多个存放提取规则的地址,例如,多个存放提取规则的地址可以是2个,可以是4个等。在获得提取规则地址后,根据获得的提取规则地址,去索引提取规则表,获得四个报文的提取规则。
其中,提取规则可以包括:(1)报文二层特征字段,源/目的MAC地址,VLAN,以太网类型(Ethertype)等。(2)报文三层特征字段,源/目的IP地址,TOS/TC,IP协议类型等。(3)报文四层特征字段,如:源端口号,目的端口号等。(4)PPPOE报文特征字段。(5)可以是上述这些特征字段,也可以是这些特征字段的组合。
在获得了提取规则后,按照提取到的规则对报文进行抽样提取。例如,当采样点为四个时,则根据获得的提取规则,去抽样报文数据,每次四个采样点,每次采样16bits数据,共计获得64bits抽样数据。
在得到抽样数据后,将抽样提取得到的数据与预置数据进行匹配。其中,匹配的过程可以是根据抽样提取得到的数据进行哈希(HASH)运算得到HASH地址,将抽样提取得到的数据与HASH地址对应的预置数据进行匹配。
通过HASH运算得到HASH地址的过程还可以包括:将抽样提取得到的数据、报文对应的提取规则的编号和报文的UNI端口号进行哈希HASH运算,以获得HASH地址,其中,报文对应的提取规则是根据报文的UNI端口号获取的。
在实施过程中,可以将获得的64bits抽样数据,与提取规则编号,UNI端口号一起做HASH运算,获得HASH地址,再根据HASH地址索引HASH配置表,获得预先设置的抽样值,将其与获得的64bits抽样数据进行比较,看是否匹配结果,并根据不同的匹配结果获得不同的处理规则。
如果匹配处理未通过,则按照缺省规则进行处理。例如,丢弃报文、提交CPU、转发报文等。
如果匹配检测通过,则根据HASH地址索引ACL规则表,获得报文的处理规则。其中,根据ACL规则表获取报文的处理规则,其中,按照ACL规则表中的规则指示对报文进行以下之一的处理:报文转发、报文丢弃、报文提交CPU处理。报文转发操作至少还可以包括VLAN转换、优先级修改、给予报文新的GEMFLOW中的一种或几种。
不同的匹配结果对应着不同的处理规则,使得本实施例的处理过程较为灵活,提升系统性能。
针对上述方法,本发明实施例还提供了一种报文处理装置,该装置的结构框图如图2所示,包括:提取模块10,用于根据收到的报文获取与报文对应的提取规则;采样模块20,与提取模块10耦合,用于按照提取规则对报文进行抽样提取;匹配模块30,与采样模块20耦合,用于将抽样提取得到的数据与预置数据进行匹配,获取报文的处理规则。
其中,匹配模块30可以包括图3所示的HASH运算单元302和HASH匹配单元304,其中,HASH运算单元302,用于根据抽样提取得到的数据进行哈希HASH运算得到HASH地址,HASH匹配单元304,与HASH运算单元302耦合,用于将抽样提取得到的数据与HASH地址对应的预置数据进行匹配。
在实施过程中,上述匹配模块30还可以用于将抽样提取得到的数据、报文对应的提取规则的编号和报文的UNI端口号进行哈希HASH运算,以获得HASH地址,其中,报文对应的提取规则是根据报文的UNI端口号获取的。
在图4所示的优选实施例中,提取模块10包括:接收单元102,用于接收报文;提取单元104,与接收单元102耦合,用于提取报文的UNI端口号;获取单元106,与提取单元104耦合,用于根据报文的UNI端口号获取报文对应的提取规则。
上述装置还用于执行以下操作:
(1)在匹配检测未通过的情况下,按照缺省规则进行处理。
(2)根据ACL规则表获取报文的处理规则,其中,按照ACL规则表中的规则指示对报文进行以下之一的处理:报文转发、报文丢弃、报文提交CPU处理。其中,报文转发操作至少包括以下之一:VLAN转换、优先级修改、给予报文新的GEMFLOW。
下面结合优选实施例及附图对上述实施方式进行说明。
优选实施例
本实施例所要解决的技术问题是:目前的网络终端设备,报文的识别和探测灵活性比较差,软件实现的性能不够,以及成本高,TCAM实现的面积、功耗和成本高的问题。实施例提供了一种灵活、带宽高,面积和功耗低的报文检测装置及方法。在本实施例中,装置模块的命名与上述实施例略有不同,当能实现与上述实施例相同的功能,其中,本实施例选择4个采样点。
本实施例可以实现的功能包括:提取128字节;支持最大16个采样点;支持最大256比特匹配;支持每个采样点16比特数据抽样;支持最大1024个ACL条目;支持最大256个提取规则。
在本实施例中,ONU报文灵活检测和处理的硬件装置如图5所示,包括:
A:上行提取规则模块;B,C,D,E:上行采样数据模块;F:下行提取规则模块;G,H,I,J:下行采样数据模块;K:HASH匹配模块;L:ACL规则处理模块。
从结构图5可以看出,这些模块的关系是:上行提取规则模块A根据当前报文的UNI端口号,查报文提取规则表获得该端口的提取规则,然后把提取规则中的采样点的窗口位置送给上行采样数据0,1,2,3(B,C,D,E)模块,分别获得四个抽样点的64bits数据,分四次把64bits数据送到HASH匹配模块K进行匹配,根据HASH匹配结果去ACL规则模块,获得报文的修改和转发规则。
图5右侧的下行报文的提取和处理与上行是相同的,唯一不同点是:下行是采用PORTID索引提取规则映射表。
上述装置在对数据进行处理的过程中,其流程可以如图6所示,包括步骤S602至步骤S616:
步骤S602,获得报文头数据和UNI端口号。从以太网报文中获取128字节的报文头数据,并缓存报文头数据,以及传送该报文的UNI端口号。
步骤S604,获取存放报文提取规则的地址。根据UNI端口号索引提取规则映射表,获得存放报文的提取规则地址,每个UNI端口号可以索引到四个提取规则地址。提取规则映射表存放的是报文的提取规则地址。
步骤S606,根据提取规则地址获得报文的提取规则。根据获得的四提取规则地址,索引提取规则表,获得报文的四个提取规则。提取规则表存放的是报文的提取规则。
步骤S608,根据提取规则提取报文数据。根据提取规则中四个提取窗口的起始地址,在数据包中提取四段16bits的数据,共计64bits。四个规则,需要提取四次,每次都是64bits。
步骤S610,产生HASH地址。将UNI端口号+提取规则编号+提取方向+提取的64bits数据,构成81bits位宽的数据,采用CRC16-X25算法生成,其表达式可以为CRC16-X25=1+x5+x12+x16,其中,x表示比特流数据,x的初始值取全为0。本领域技术人员可以将81bits位宽的数据进行输入,将81bits的数据进行HASH,得到10bits位宽的数据的HASH地址。
步骤S612,进行HASH匹配。根据得到的HASH地址,去索引四张HASH配置表,得到预先配置的值,将预先配置值的64bits数据,UNI端口号,提取规则号,提取方向与报文提取的64bits数据,UNI端口号,提取规则号,提取方向相比较,如果相等,则认为HASH匹配上了,如果不相等,则认为匹配失败,按缺省值进行转发。
步骤S614,获得提取规则匹配结果。在HASH匹配成功的情况下,可以从预先配置的HASH值中获得每个提取规则的匹配结果,即:级链规则和级链编号。
步骤S616,判断规则级链是否成功。根据级链规则和级链编号判断四个规则级链是否成功,如果成功,根据前面得到的HASH地址索引ACL规则表,得到报文的转发规则;如果不成功,按缺省规则转发。
在上述步骤S614及步骤S616的详细过程可以如图7所示,包括步骤S702至步骤S714:
步骤S702,获得提取规则1的级链规则和级链编号。同理,可以获得提取规则2、3、4的级链规则和级链编号。
步骤S704,判断级链是否成功。在级链成功的情况下,执行步骤S706,否则不进行后续步骤,该规则的级链终止后续操作。在该步骤判断的过程中,每个规则都在各自的级链中相应的执行该步骤。
步骤S706,根据生成的HASH地址索引ACL规则表。
步骤S708,获得ACL规则优先级、FLOWID和VLAN转换索引。在该步骤中,获得的ACL规则优先级可以用于步骤S710判断优先级使用。
步骤S710,根据ACL规则优先级选择FLOWID和VLAN转换索引。在该步骤中,将上述4个链路中获得的4个ACL规则优先级进行比较,选取ACL规则优先级最高的链路,根据该链路获得的ACL规则优先级、FLOWID和VLAN转换索引执行该步骤。
步骤S712,根据VLAN转换索引查找VLAN转换表。
步骤S714,获得ACL的VLAN转换结果。
在得到上述匹配结果后,可以将其应用到以下几个方面:根据配置的规则对报文进行过滤,有转发,丢弃,提交CPU三种方式;对报文进行的VLAN转换;对报文进行的优先级转换;得到报文的GEMFLOW。
采用上述灵活的报文检测处理装置及方法,可以灵活方便地抽样报文任意字段,可以和预先设置的规则进行比较和匹配,然后根据规则进行转发,灵活性高,使用方便简洁。与软件检测相比较,面积小、功耗低,成本也低;与TCAM检测相比较,同样,面积小、功耗低,成本也低。
从以上的描述中,可以看出,本发明实现了如下技术效果:
本发明实施例提供了一种灵活的报文处理方法及装置,它具有灵活和高效,纯硬件逻辑实现,功耗低的特点,带宽达到了XG-PON 10Gbits/s的标准的要求。与软件检测相比较,面积小、功耗低,成本也低;与TCAM检测相比较,同样,面积小、功耗低,成本也低。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。