CN111181857A - 一种报文处理方法及装置、存储介质、光网络终端 - Google Patents
一种报文处理方法及装置、存储介质、光网络终端 Download PDFInfo
- Publication number
- CN111181857A CN111181857A CN201811333746.9A CN201811333746A CN111181857A CN 111181857 A CN111181857 A CN 111181857A CN 201811333746 A CN201811333746 A CN 201811333746A CN 111181857 A CN111181857 A CN 111181857A
- Authority
- CN
- China
- Prior art keywords
- message
- offset
- hash
- address
- rule
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
- H04Q11/0067—Provisions for optical access or distribution networks, e.g. Gigabit Ethernet Passive Optical Network (GE-PON), ATM-based Passive Optical Network (A-PON), PON-Ring
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种报文处理方法及装置、存储介质、光网络终端,所述方法包括:对报文进行解析,基于解析结果按照第一规则确定所述报文对应的扩展端口,所述扩展端口用于对所述报文进行分流;基于所述扩展端口对应的第二规则,确定所述报文对应的目标条目;利用所述目标条目对所述报文进行处理。
Description
技术领域
本发明涉及无源光网络(PON,Passive Optical Networks)技术领域,尤其涉及一种报文处理方法及装置、存储介质、光网络终端。
背景技术
千兆无源光网络(GPON,Gigabit-capable Passive Optical Networks)技术是PON系列技术中架构最完备、标准内容最完整的网络技术。目前,GPON大量使用于接入网,是取代非对称数字用户环路(ADSL,Asymmetric Digital Subscriber Line)接入技术的最佳方案。
GPON的光网络终端(ONU,Optical Network Unit)是GPON套片的核心芯片之一。对于ONU芯片而言,以太网报文的探测和处理是一个非常重要的环节,它需要识别网络中各式各样的报文,以及针对不同的报文有不同的处理方式。
随着业务的不断丰富,加上不同的报文有不同的处理方式,就会导致不同的报文提取的位置和内容可能不同,这使得各个端口对应的提取规则变得越来越多。
此外,芯片厂商对于报文处理的条目参数越来越重视,并将条目参数这个指标当成运营商采集的一个重要指标,存储条目参数的容量不断地扩大,单纯地使用随机存取存储器(RAM,Random-Access Memory)已经无法满足存储需求,必须使用片外双倍速率同步动态随机存储器(DDR,Double Data Rate)来存储条目参数。
再者,随着技术不断向前发展,性能不断提升,PON的类型不仅仅是GPON、以太网无源光网络(EPON,Ethernet Passive Optical Network),还可以是非对称XGPON、对称XGPON、XEPON。PON由1G向10G升级后,报文处理的条目参数在使用片外DDR时,还需要考虑DDR带宽是否充足,目前,全部的报文均使用同一个物理端口来访问DDR,由于报文的种类较多,因而这个物理端口下的规则数目就会较多,每个报文均需要对物理端口下的多个规则进行匹配,导致DDR的带宽较大。
发明内容
为解决上述技术问题,本发明实施例提供了一种报文处理方法及装置、存储介质、光网络终端。
一种报文处理方法,所述方法包括:
对报文进行解析,基于解析结果按照第一规则确定所述报文对应的扩展端口,所述扩展端口用于对所述报文进行分流;
基于所述扩展端口对应的第二规则,确定所述报文对应的目标条目;
利用所述目标条目对所述报文进行处理。
作为一种实现手段,所述对报文进行解析,基于解析结果按照第一规则确定所述报文对应的扩展端口,包括:
对报文的头部进行解析,得到所述报文的头部所包括的各个字段;
基于第一规则,确定所述报文的头部中各字段分别对应的自定义偏移量,其中,所述第一规则包括自定义偏移量与字段之间的对应关系;
基于所述报文对应的自定义偏移量,确定所述报文对应的扩展端口。
作为一种实现手段,所述基于所述报文对应的自定义偏移量,确定所述报文对应的扩展端口,包括:
基于所述报文对应的自定义偏移量,生成端口索引信息;
基于所述端口索引信息匹配出所述报文对应的扩展端口。
作为一种实现手段,所述方法还包括:
如果不存在与所述端口索引信息相匹配的扩展端口,则基于物理端口对应的第三规则,确定所述报文对应的目标条目;其中,所述物理端口对应的第三规则的数据大于所述扩展端口对应的第二规则的数目。
作为一种实现手段,所述方法还包括:
针对所述报文的头部中的各个字段,将所述字段中预设位置处的地址,作为与所述字段对应的自定义偏移量的自定义偏移地址。
作为一种实现手段,所述基于所述扩展端口对应的第二规则,确定所述报文对应的目标条目,包括:
基于所述扩展端口对应的第二规则,以及所述各自定义偏移量对应的自定义偏移地址,从所述报文中提取出目标数据;
基于所述目标数据,在哈希HASH列表的各HASH桶中查找目标条目。
作为一种实现手段,所述第二规则包括一个或多个待提取的目标数据对应的提取规则,所述提取规则包括:偏移地址、偏移地址的类型以及自定义偏移量的类型,其中,所述偏移地址的类型用于表示所述偏移地址为相对偏移地址或是绝对偏移地址;
所述基于所述扩展端口对应的第二规则,以及所述各自定义偏移量对应的自定义偏移地址,从所述报文中提取出目标数据,包括:
基于所述扩展端口对应的第二规则,确定待提取的目标数据对应的偏移地址;
如果所述待提取的目标数据对应的偏移地址为相对偏移地址,则确定所述相对偏移地址对应的自定义偏移量;
判断所述相对偏移地址对应的自定义偏移量,是否为所述报文对应的自定义偏移量;
如果所述相对偏移地址对应的自定义偏移量为所述报文对应的自定义偏移量,则基于所述自定义偏移量对应的自定义偏移地址以及所述相对偏移地址,计算绝对偏移地址,并基于所述绝对偏移地址从所述报文中提取出目标数据。
作为一种实现手段,所述方法还包括:
如果所述待提取的目标数据对应的偏移地址为绝对偏移地址,则基于所述绝对偏移地址从所述报文中提取出目标数据。
作为一种实现手段,所述基于所述目标数据,在哈希HASH列表的各HASH桶中查找目标条目,包括:
基于所述目标数据,计算HASH地址;
基于所述HASH地址以及配置信息,从所述HASH列表的各HASH桶中确定出有效的HASH桶,作为需要读取的HASH桶,其中,所述配置信息记录有各HASH地址与有效的HASH桶的对应关系;
从所述有效的HASH桶中读取与所述HASH地址对应的有效条目;
将所述目标数据与各个有效条目进行比较,确定出与所述目标数据相匹配的有效条目,作为所述目标条目。
一种报文处理装置,包括:
解析单元,用于对报文进行解析,基于解析结果按照第一规则确定所述报文对应的扩展端口,所述扩展端口用于对所述报文进行分流;
确定单元,用于基于所述扩展端口对应的第二规则,确定所述报文对应的目标条目;
处理单元,用于利用所述目标条目对所述报文进行处理。
作为一种实现手段,所述解析单元,用于对报文的头部进行解析,得到所述报文的头部所包括的各个字段;基于第一规则,确定所述报文的头部中各字段分别对应的自定义偏移量,其中,所述第一规则包括自定义偏移量与字段之间的对应关系;基于所述报文对应的自定义偏移量,确定所述报文对应的扩展端口。
作为一种实现手段,所述解析单元,还用于针对所述报文的头部中的各个字段,将所述字段中预设位置处的地址,作为与所述字段对应的自定义偏移量的自定义偏移地址。
作为一种实现手段,所述确定单元包括:
提取子单元,用于基于所述扩展端口对应的第二规则,以及所述各自定义偏移量对应的自定义偏移地址,从所述报文中提取出目标数据,所述第二规则用于提取目标数据;
查找子单元,用于基于所述目标数据,在HASH列表的各HASH桶中查找目标条目。
作为一种实现手段,所述查找子单元,用于基于所述目标数据,计算HASH地址;基于所述HASH地址以及配置信息,从所述HASH列表的各HASH桶中确定出有效的HASH桶,作为需要读取的HASH桶,其中,所述配置信息记录有各HASH地址与有效的HASH桶的对应关系;从所述有效的HASH桶中读取与所述HASH地址对应的有效条目;将所述目标数据与各个有效条目进行比较,确定出与所述目标数据相匹配的有效条目,作为所述目标条目。
一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述报文处理方法的步骤。
一种光网络终端,其特征在于,所述光网络终端包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现前述报文处理方法步骤。
本发明实施例的技术方案中,对报文进行解析,基于解析结果按照第一规则确定所述报文对应的扩展端口,所述扩展端口用于对所述报文进行分流;基于所述扩展端口对应的第二规则,确定所述报文对应的目标条目;利用所述目标条目对所述报文进行处理。采用本发明实施例的技术方案,引入了扩展端口的概念,不同类型的报文被分流到不同的扩展端口下,这样,一条报文只需要通过与其对应的扩展端口下的规则来从DDR中查找目标条目,相对于现有技术而言,无需通过物理端口下的多个规则来从DDR中查找目标条目,减少了从DDR中读取条目的次数,也即降低了DDR的带宽。
附图说明
附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为本发明实施例的报文处理方法的流程示意图一;
图2为本发明实施例的报文处理方法的流程示意图二;
图3为本发明实施例的包格式的示意图;
图4为本发明实施例的扩展端口的获取流程示意图;
图5为本发明实施例的绝对偏移量的获取流程示意图;
图6为本发明实施例的报文处理装置的结构组成示意图一;
图7为本发明实施例的报文处理装置的结构组成示意图二。
具体实施方式
为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。
ONU对报文进行处理的过程大致如下:
1)确定报文的数据提取规则。
这里,数据提取规则用于指示在报文的哪些位置提取数据。例如:在报文的第10个字节提取数据。
2)根据数据提取规则提取数据后,基于数据计算HASH地址。
3)基于HASH地址,在HASH列表的各HASH桶中查找目标条目。这里,HASH列表存储在ONU外部的DDR中。
ONU对报文进行处理的过程中,规则数、条目数、性能、HASH利用率这些因素是有相关性的。具体地,单个报文处理需要匹配的规则数增加,会引起条目的读取次数增加,进而引起DDR带宽增加,这里,DDR带宽是指访问DDR的速率;性能提升,也会引起DDR带宽增加;HASH桶数增加,也会引起DDR带宽增加。此外,如何在同样容量的情况下配置更多的条目进去,以及规则数本身占用的资源,也是需要考虑的因素。另外,如何更为方便地给软件(面向用户)提供配置接口,是用户体验的一个重要表现。
图1为本发明实施例的报文处理方法的流程示意图一,如图1所示,所述装报文处理方法包括以下步骤:
步骤101:对报文进行解析,基于解析结果按照第一规则确定所述报文对应的扩展端口,所述扩展端口用于对所述报文进行分流。
本发明实施例中,对报文的头部进行解析,得到所述报文的头部所包括的各个字段;基于第一规则,确定所述报文的头部中各字段分别对应的自定义偏移量,其中,所述第一规则包括自定义偏移量与字段之间的对应关系;基于所述报文对应的自定义偏移量,确定所述报文对应的扩展端口。
例如:第一规则中包括6组自定义偏移量与字段之间的对应关系,如下表1所示:
表1
假设:对报文的头部进行解析,得到所述报文的头部包括如下字段:字段1和字段3,基于表1,该报文对应的自定义偏移量为OFFSET 1和OFFSET 3。在一实施方式中,第一规则中的每个自定义偏移量通过一个比特位来表示,将报文对应的自定义偏移量设置为1,将其他的自定义偏移量设置为0,那么基于所述报文对应的自定义偏移量,可得出如下信息:101000,将这个信息作为端口索引信息,用于确定扩展端口,根据不同的端口索引信息可以匹配到不同的扩展端口。
本发明实施例中,不同类型的报文具有不同的头部,这样,不同类型的报文可以分流到不同的扩展端口下。如果不存在与所述端口索引信息相匹配的扩展端口,则基于物理端口对应的第三规则,确定所述报文对应的目标条目;其中,所述物理端口对应的第三规则的数据大于所述扩展端口对应的第二规则的数目。
上述方案中,在对报文进行解析时,针对所述报文的头部中的各个字段,将所述字段中预设位置处的地址,作为与所述字段对应的自定义偏移量的自定义偏移地址。
例如,在表1的基础上,增加字段与自定义偏移地址的对应关系,第一规则扩展成如下表2所示:
自定义偏移量 | 字段(头部) | 自定义偏移地址 |
OFFSET 1 | 字段1 | 字段1的尾地址(Adress1) |
OFFSET 2 | 字段2 | 字段2的首地址(Adress2) |
OFFSET 3 | 字段3 | 字段3的首地址(Adress3) |
OFFSET 4 | 字段4 | 字段4的首地址(Adress4) |
OFFSET 5 | 字段5 | 字段5的首地址(Adress5) |
OFFSET 6 | 字段6 | 字段6的首地址(Adress6) |
表2
假设:对报文的头部进行解析,得到所述报文的头部包括如下字段:字段1和字段3,基于表2,该报文对应的自定义偏移量为OFFSET 1和OFFSET 3,其中,OFFSET 1的自定义偏移地址为该报文中字段1的尾地址,OFFSET 2的自定义偏移地址为该报文中字段2的首地址。
步骤102:基于所述扩展端口对应的第二规则,确定所述报文对应的目标条目。
本发明实施例中,扩展端口下绑定有第二规则,基于所述扩展端口对应的第二规则,以及所述各自定义偏移量对应的自定义偏移地址,从所述报文中提取出目标数据,所述第二规则用于提取目标数据;基于所述目标数据,在HASH列表的各HASH桶中查找目标条目。
在一实施方式中,所述第二规则包括一个或多个待提取的目标数据对应的提取规则,所述提取规则包括:偏移地址、偏移地址的类型以及自定义偏移量的类型,其中,所述偏移地址的类型用于表示所述偏移地址为相对偏移地址或是绝对偏移地址;
基于此,基于所述扩展端口对应的第二规则,确定待提取的目标数据对应的偏移地址;如果所述待提取的目标数据对应的偏移地址为相对偏移地址,则确定所述相对偏移地址对应的自定义偏移量;判断所述相对偏移地址对应的自定义偏移量,是否为所述报文对应的自定义偏移量;如果所述相对偏移地址对应的自定义偏移量为所述报文对应的自定义偏移量,则基于所述自定义偏移量对应的自定义偏移地址以及所述相对偏移地址,计算绝对偏移地址,并基于所述绝对偏移地址从所述报文中提取出目标数据。
上述方案中,如果所述待提取的目标数据对应的偏移地址为绝对偏移地址,则基于所述绝对偏移地址从所述报文中提取出目标数据。
上述方案中,在HASH列表的各HASH桶中查找目标条目,可以通过以下方式实现:基于所述目标数据,计算HASH地址;基于所述HASH地址以及配置信息,从所述HASH列表的各HASH桶中确定出有效的HASH桶,作为需要读取的HASH桶,其中,所述配置信息记录有各HASH地址与有效的HASH桶的对应关系,所述有效的HASH桶是指:当在第一HASH桶的第一HASH地址内存储条目时,所述第一HASH桶为所述第一HASH地址的有效的HASH桶;从所述有效的HASH桶中读取与所述HASH地址对应的有效条目;将所述目标数据与各个有效条目进行比较,确定出与所述目标数据相匹配的有效条目,作为所述目标条目。
这里,在HASH处理的过程中新增预处理步骤,即:从HASH列表的各HASH桶中确定出有效的HASH桶,作为需要读取的HASH桶,基于HASH地址从所述有效的HASH桶中读取有效条目,使得报文整体对DDR的带宽需求降低。
步骤103:利用所述目标条目对所述报文进行处理。
本发明实施例中,引入了扩展端口的概念,不同类型的报文被分流到不同的扩展端口下,这样,一条报文只需要通过与其对应的扩展端口下的规则来从DDR中查找目标条目,相对于现有技术而言,无需通过物理端口下的多个规则来从DDR中查找目标条目,减少了从DDR中读取条目的次数,也即降低了DDR的带宽。此外,引入了自定义偏移量的概念,预先,根据以太网协议、传输控制协议/因特网互联协议(TCP/IP,Transmission ControlProtocol/Internet Protocol)等网络协议总结归纳出包格式(这里的包格式能够表示出第一规则,其中,第一规则包括自定义偏移量与字段之间的对应关系),以及配置扩展端口。对于某个特定的报文,可以基于包格式确定出自定义偏移量和各自定义偏移量对应的自定义偏移地址,基于自定义偏移量确定出扩展端口,从而将用户侧传输来的报文进行分类处理。基于扩展端口确定出第二规则(也即数据提取规则),然后,基于所述第二规则以及所述各自定义偏移量对应的自定义偏移地址,从所述报文中提取出目标数据,并进行HASH处理。这里,在HASH处理的过程中新增预处理步骤,即:从HASH列表的各HASH桶中确定出有效的HASH桶,作为需要读取的HASH桶,基于HASH地址从所述有效的HASH桶中读取有效条目,使得报文整体对DDR的带宽需求降低。再者,通过对预处理过程进行灵活配置可以变相地提升HASH利用率,优化规则总数,配置操作可以通过软件实现,方便用户操作。
图2为本发明实施例的报文处理方法的流程示意图二,如图2所示,所述装报文处理方法包括以下步骤:
步骤201:对报文进行解析,得到所述报文对应的自定义偏移信息,所述自定义偏移信息包括:所述报文对应的自定义偏移量、各自定义偏移量对应的自定义偏移地址。
本步骤具体包括:
1)对报文的头部进行解析,得到所述报文的头部所包括的各个字段;
2)基于预设对应关系,确定所述报文的头部中各字段分别对应的自定义偏移量,其中,所述预设对应关系为自定义偏移量与字段之间的对应关系;
3)针对所述报文的头部中的各个字段,将所述字段中预设位置处的地址,作为与所述字段对应的自定义偏移量的自定义偏移地址。
对于上述1),对报文的头部进行解析后,可以得到报文的头部所包括的各个字段。例如:对逻辑链路控制(LLC,Logic Link Control)+子网接入协议(SNAP,SubNetworkAccess Protocol)格式的dslite报文的头部进行解析后,可以得到如下字段:源IP(SIP,Source IP)、目的IP(DIP,Destination IP)、IP协议(IP Protocol),本发明实施例将上述三个字段统称为三元组。再例如:对以太网(ethernet)V2格式的ipv4的传输控制协议(TCP,Transmission Control Protocol)报文的头部进行解析后,可以得到如下字段:SIP、DIP、IP Protocol、源端口(Sport,Source port)、目的端口(Dport,Destination port),本发明实施例将上述五个字段统称为五元组。又例如:对普通LLC报文的头部进行解析后,可以得到如下字段:目的地址(DA,Destination,Address)。
对于上述2),预先,生成所述预设对应关系,其中,所述预设对应关系为自定义偏移量与字段之间的对应关系。这里,针对所述预设对应关系中的各个字段,将所述字段的头部或尾部对应的地址作为与所述字段对应的自定义偏移量的自定义偏移地址。
实际应用中,根据以太网协、TCP\IP协议以及RFC协议等现有协议的各种包格式,总结的包格式如图3所示。在图3中,(a)、(b)、(c)、(d)分别为总结出的四种包格式,其中,每种包格式都由多个字段组成。以下对图3中涉及到的自定义偏移量(OFFSET)与字段之间的对应关系进行如下说明:
L2_OFFSET:当报文的协议是EthernetV2时,该自定义偏移量对应lenth/type字段,自定义偏移地址指向lenth/type的头部位置。
L3_OFF SET_V4:当报文的协议是EthernetV2时,该自定义偏移量对应IPV4头字段,自定义偏移地址指向IPV4头的头部位置。这里,IPV4头包括:普通V4头,PPPOE封装的V4头,V4 in V6,PPPOE封装的V4 IN V6,V6 in V4,PPPOE封装的V4 IN V6。
L3_OFFSET_V6:当报文的协议是EthernetV2时,该自定义偏移量对应IPV6头字段,自定义偏移地址指向IPV6头的头部位置。IPV6头包括:普通V6头,PPPOE封装的V6头,V6 inV4,PPPOE封装的V6 IN V6,V4 in V6,PPPOE封装的V6 IN V4。
L3_OFFSET_V6_LAST:当报文的协议是EthernetV2时,该自定义偏移量对应IPV6最后一跳扩展头或者用户自定义的扩展头的字段,自定义偏移地址指向IPV6最后一跳扩展头或者用户自定义的扩展头的头部位置,如果IPV6只有一个扩展头,则指向第一个扩展头的位置。这里,扩展头包括:普通V6头,PPPOE封装的V6头,V6 in V4,PPPOE封装的V6 IN V4。
L4_OFFSET:当报文的协议是EthernetV2时,该自定义偏移量对应TCP/UDP头字段,自定义偏移地址指向TCP/UDP头的头部位置。
L5_OFFSET:当报文的协议是EthernetV2时,该自定义偏移量对应TCP有效载荷(payload)字段,自定义偏移地址指向TCP payload的头部位置。
对于上述3),根据以上总结到的包格式结合报文的头部所包括的各个字段,得到该报文的自定义偏移量以及各自定义偏移量对应的自定义偏移地址,这里,可以得到多个自定义偏移量以及相应的自定义偏移地址。
例如:对LLC+SNAP格式的dslite报文的头部进行解析后,可以得到如下字段:SIP、DIP、IP Protocol,其中,SIP对应的自定义偏移量为L2_OFFSET,DIP对应的自定义偏移量为L3_OFFSET_V4,IP Protocol对应的自定义偏移量为L3_OFFSET_V6。对于不同的报文,由于各个字段的位置可能不同,因而对于同一自定义偏移量对应的自定义偏移地址可能不同。
步骤202:基于所述报文对应的自定义偏移量,确定所述报文对应的数据提取规则。
本步骤具体包括:
1)基于所述报文对应的自定义偏移量,确定所述报文对应的扩展端口;
2)基于所述扩展端口,确定所述报文对应的数据提取规则。
对于上述1),基于所述报文对应的自定义偏移量以及所述预设对应关系中所包括的自定义偏移量,生成端口索引信息;
基于所述端口索引信息,确定所述报文对应的扩展端口。
例如:预设对应关系中所包括的自定义偏移量总用有6个,每个自定义偏移量通过一个比特位来表示,报文对应的自定义偏移量设置为1,其他的自定义偏移量设置为0。假如报文对应两个自定义偏移量,分别为6个自定义偏移量中的第一个和第三个,那么端口索引信息为101000;再例如,报文对应5个自定义偏移量,分别为6个自定义偏移量中的前5个,那么端口索引信息为111110。根据不同的端口索引信息可以匹配到不同的扩展端口。
对于上述2),基于所述扩展端口,确定规则编号;根据所述规则编号,获取数据提取规则,其中,所述数据提取规则包括一个或多个待提取的目标数据对应的提取规则,所述提取规则包括:偏移地址、偏移地址的类型以及自定义偏移量的类型,其中,所述偏移地址的类型用于表示所述偏移地址为相对偏移地址或是绝对偏移地址。
本发明实施例中,每个扩展端口下可以配置一个数据提取规则,也可以配置多个数据提取规则,以便适用业务种类繁多的需求。
本发明实施例中,数据提取规则包括一个或多个待提取的目标数据对应的提取规则,每个提取规则包括:偏移地址、偏移地址的类型、自定义偏移量的类型,例如:数据提取规则包括:提取规则1、提取规则2、提取规则3,其中,提取规则1包括:偏移地址1、偏移地址1的类型为相对偏移地址(即启动自定义偏移功能)、自定义偏移量的类型为L2_OFFSET;提取规则2包括:偏移地址2、偏移地址1的类型为绝对偏移地址(即不启动自定义偏移功能)、自定义偏移量的类型为L3_OFFSET_V4;提取规则3包括:偏移地址3、偏移地址3的类型为相对偏移地址(即启动自定义偏移功能)、自定义偏移量的类型为L4_OFFSET。
可见,每个自定义偏移功能对应一个开关,用来控制是否启该用自定义偏移功能,以便一个规则能够更好地适配各种情况。
步骤203:基于所述数据提取规则以及所述各自定义偏移量对应的自定义偏移地址,从所述报文中提取出目标数据。
本步骤具体包括:
1)基于所述数据提取规则,确定待提取的目标数据对应的偏移地址,其中,所述待提取的目标数据的个数为一个或多个;
2)如果所述待提取的目标数据对应的偏移地址为相对偏移地址,则确定所述相对偏移地址对应的自定义偏移量;
3)判断所述相对偏移地址对应的自定义偏移量,是否为所述报文对应的自定义偏移量;
4)如果所述相对偏移地址对应的自定义偏移量为所述报文对应的自定义偏移量,则基于所述自定义偏移量对应的自定义偏移地址以及所述相对偏移地址,计算绝对偏移地址,并基于所述绝对偏移地址从所述报文中提取出目标数据。
对于上述4),如果所述相对偏移地址对应的自定义偏移量,不是所述报文对应的自定义偏移量,则确定所述数据提取规则为无效规则。
对于上述2),如果所述待提取的目标数据对应的偏移地址为绝对偏移地址,则基于所述绝对偏移地址从所述报文中提取出目标数据。
本发明实施例中,如果在步骤102执行的过程中,不存在与所述端口索引信息相匹配的扩展端口,则基于物理端口对应的数据提取规则,从所述报文中提取出目标数据。
步骤204:基于所述目标数据,在哈希HASH列表的各HASH桶中查找目标条目,并利用所述目标条目对所述报文进行处理。
本步骤具体包括:
1)基于所述目标数据,计算HASH地址;
2)基于所述HASH地址,在HASH列表的各HASH桶中查找与所述HASH地址对应的目标条目;
3)利用所述目标条目对所述报文进行处理。
对于上述1),将所述目标数据以及所述规则编号作为key值输入HASH函数中,计算HASH地址。在一实时方式中,采用循环冗余校验(CRC,Cyclic Redundancy Check)算法计算HASH地址。
对于上述2),基于所述HASH地址以及预配置信息,从所述HASH列表的各HASH桶中确定出有效的HASH桶,作为需要读取的HASH桶,其中,所述预配置信息记录有各HASH地址与有效的HASH桶的对应关系;基于所述HASH地址从所述有效的HASH桶中读取有效条目,所述有效的HASH桶的个数为一个或多个;将所述目标数据与读取到的各个有效条目进行比较,确定出与所述目标数据相匹配的有效条目,作为与所述HASH地址对应的目标条目。
上述方案中,用户在一个HASH桶的一个HASH地址上写入条目时,这个HASH地址对应的这个HASH桶即为有效的HASH桶。例如:用户在HASH桶1的地址1上写入条目后,记录这个信息,表明与地址1对应的HASH桶1是有效的,反之,没有被记录的HASH桶则被视为无效的HASH桶。这样,在读取HASH桶时,可以只读取有效的HASH桶。
实际应用中,根据HASH地址执行如下预处理过程:确定需要读取几次DDR中的HASH桶。预处理过程主要基于预配置信息实现,当用户通过软件实现配置操作时,如果配置的是条目(如写入条目),则记录下具体配置的哪个HASH地址的哪个HASH桶,这样,在查找条目时,只要获取到HASH地址,就能够得知需要读取的有效的HASH桶,即确定出需要读几次DDR(一个有效的HASH桶对应读一次DDR),而不是需要每次都读取所有的HASH桶。
本发明实施例中,基于HASH地址在有效的HASH桶中读出有效条目后,将key值与有效条目依次进行比对,如果有条目与key值相匹配,则根据匹配的条目的动作、包修改、入队信息、限速信息等相关结果对报文进行处理。如果不存在与key值相匹配的条目,则对报文进行默认处理。
本发明实施例的技术方案,在业务种类复杂、大流量的情况下,大大降低了DDR带宽的占用率,使得ONU的报文处理功能(具体为流分类功能)能够更容易地提升到10G性能;并且,在出现HASH冲突时,通过对条目进行配置,能够更方便地解决HASH冲突。此外,通过软件配置优化了规则总数。
图4为本发明实施例的扩展端口的获取流程示意图,如图4所示,所述流程包括以下步骤:
步骤401:对报文进行分析,得到N个自定义偏移量。
步骤402:判断扩展端口是否与第i个自定义偏移量相匹配,是时,执行步骤403,否时,执行步骤404。
这里,1≤i≤N。初始时,设置i=1。
步骤403:判断i是否等于N,否时,执行i=i+1的赋值操作并执行步骤402,是时,执行步骤405。
步骤404:输出原始物理端口的信息。
步骤405:输出扩展端口的信息。
图5为本发明实施例的绝对偏移地址的获取流程示意图,如图5所示,所述流程包括以下步骤:
步骤501:从数据提取规则中获取N个待提取的目标数据对应的提取规则,所述提取规则包括:偏移地址、偏移地址的类型以及自定义偏移量的类型。
步骤502:针对第i个提取规则,判断偏移地址的类型是否为相对偏移地址,是时,执行步骤503,否时,执行步骤505。
步骤503:判断所述相对偏移地址对应的自定义偏移量,是否为所述报文对应的自定义偏移量,是时,执行步骤504,否时,执行步骤506。
步骤504:基于所述自定义偏移量对应的自定义偏移地址以及所述相对偏移地址,计算绝对偏移地址,执行步骤507。
步骤505:将所述偏移地址作为绝对偏移地址,执行步骤507。
步骤506:确定所述数据提取规则为无效规则,执行步骤507。
步骤507:针对第i个提取规则的绝对偏移地址处理完成,判断i是否等于N,否时,执行i=i+1的赋值操作并执行步骤502,是时,执行步骤508。
步骤508:与数据提取规则相关的所有绝对偏移地址处理完成。
以下结合具体应用示例对本发明实施例的技术方案作进一步描述。
应用示例一
本示例中,针对不同的报文格式(也即协议信息)得到不同的扩展端口,从而将报文分流,降低对DDR的带宽占用。
1)输入第一条报文流,分析为LLC+SNAP格式的dslite报文,对该报文进行解析,得到该报文的如下字段:SIP、DIP、IP Protocol,这些字段统称为三元组。
输入第二条报文流,分析为ethernetV2格式的ipv4的TCP报文,对该报文进行解析,得到该报文的如下字段:SIP、DIP、IP Protocol、Sport、Dprort,这些字段统称为五元组信息。
输入第三条报文流,分析为普通LLC报文,对该报文进行解析,得到该报文的如下字段:DA。
2)基于如图3所示的包格式(对应本发明实施例的预设对应关系),依次确定出与上述三条报文流的各个字段对应的三个扩展端口。
扩展端口1:第一条报文流的三个字段分别对应如下自定义偏移量:L2_OFFSET、L3_OFFSET_V4、L3_OFFSET_V6。扩展端口1与这组自定义偏移量匹配。
扩展端口2:第二条报文流的五个字段分别对应如下自定义偏移量:L2_OFFSET、L3_OFFSET_V4、L4_OFFSET、L5_OFFSET。扩展端口2与这组自定义偏移量匹配。
扩展端口3:第三条报文流的一个字段对应如下自定义偏移量:L2_OFFSET。扩展端口3与这个自定义偏移量匹配。
3)在扩展端口1下配置规则1,基于规则1计算绝对偏移地址,并提取数据。
在扩展端口2下配置规则2,基于规则2计算绝对偏移地址,并提取数据。
在扩展端口3下配置规则3,基于规则3计算绝对偏移地址,并提取数据。
4)在同一通路同时发送三条报文流,由于扩展端口的存在,每条报文流仅使用一个规则即可实现数据的提取。如果未有扩展端口实现分流,也即一个物理端口下需要配置三个规则,这种情况下,三条报文流中的每条报文流均会使用三个规则来提取数据。每个规则均需要执行一套访问DDR的逻辑(根据数据计算HASH地址,根据HASH地址访问DDR中的各HASH桶中的条目),因而通过对比可知使用扩展端口对DDR的带宽占用为之前的1/3。
应用示例二:
本示例中,通过HASH预处理来降低DDR带宽的占用率。
1)针对第一条报文流,计算得到该报文流对应条目的HASH地址为A,将该条目写入DDR中的某个HASH桶中,并记录地址A的HASH桶占用情况。例如:将条目写入DDR中的HASH桶a中,记录如下信息:地址A对应的HASH桶a为有效HASH桶(即HASH桶a被占用)。
针对第二条报文流,计算得到该报文流对应条目的HASH地址为B,将该条目写入DDR中的某个HASH桶中,并记录地址B的HASH桶占用情况。例如:将条目写入DDR中的HASH桶b中,记录如下信息:地址B对应的HASH桶b为有效HASH桶(即HASH桶b被占用)。
针对第三条报文流,计算得到该报文流对应条目的HASH地址为C,将该条目写入DDR中的某个HASH桶中,并记录地址C的HASH桶占用情况。例如:将条目写入DDR中的HASH桶c中,记录如下信息:地址C对应的HASH桶c为有效HASH桶(即HASH桶c被占用)。
2)发送这三条报文流,每条报文流根据与HASH地址相关的HASH桶占用情况,对DDR进行访问。以第一条报文流为例,第一条报文流计算得到的HASH地址为A,根据记录信息确定出与地址A对应有效HASH桶为HASH桶a,那么,就只访问DDR中的HASH桶a即可,无需访问其他的HASH桶,即每条报文流都只访问一次DDR空间。如果未启用HASH预处理,则每条报文流会访问DDR中所有的HASH桶,以DDR中包括4个HASH桶为例,通过对比可知使用HASH预处理对DDR的带宽占用为之前的1/4。
应用示例三:
本示例中,对规则进行了优化,以及方便用户实现配置操作。
1)输入第一条报文流,分析为ethernetV2格式的未标识(UTAG)的802.1X报文,对该报文进行解析,得到该报文的如下字段:type/lenth。
输入第二条报文流,分析为ethernetV2格式的单TAG的pppoe报文,对该报文进行解析,得到该报文的如下字段:type/lenth。
输入第三条报文流,分析为ethernetV2格式的双TAG的ipv4报文,对该报文进行解析,得到该报文的如下字段:type/lenth。
2)根据上述的三条报文流,虽然不同报文流中的type/lenth字段的绝对偏移地址不同,但是这三条报文流的自定义偏移量相同,所以可以使用相同的规则。
由于三条报文流可以共用一个规则,因而三条报文流可以共用一个扩展端口,在该扩展端口下配置一个规则,且针对该规则配置的自定义偏移量为L2_OFFSET。如此,软件不用关心是何种类型的报文,只需要考虑所要提取的目标数据在TAG字段之后即可。在一实时方式中,提取的是type/lenth数据,那么相对偏移地址为0,其中,每个偏移地址对应2字节的数据。
3)同时发送三条业务流,此时三条业务流匹配同一个规则。假如没有使用自定义偏移量的话,那么总共需要为三条业务流配置三个规则,对比之下,使用自定义偏移量节省了2个规则,每个规则均需要执行一套访问DDR的逻辑(根据数据计算HASH地址,根据HASH地址访问DDR中的各HASH桶中的条目),因而使得DDR带宽的占用是之前的1/3。
本发明实施例中,通过对自定义偏移量的设置,用户可以只关心需要提取的目标数据,目标数据前的数据的长度可以不用关心,这样配置起来也更为方便,维护时对于提取变量也更容易理解。
应用示例四:
本示例中,针对HASH冲突的情况进行处理。
在用于进行HASH计算的key值中将规则编号考虑进去。具体地,当前ONU工作时,由于新的业务不断申请,已经配置了5K个条目,当想配置第5K+1个条目时,软件发现该HASH地址的HASH桶(也即条目)已经全部写满,无法将新增报文流对应的条目添加进去。软件基于该报文流对应的扩展端口,重新建立一个新的规则编号,基于该规则编号重新计算HASH地址,将新增条目写入。当软件配置到8K个条目,再次出现HASH冲突无法写入的情况,再建立一个新的规则编号,基于新增规则编号添加该条目。
图6为本发明实施例的报文处理装置的结构组成示意图一,如图6所示,所述报文处理装置包括:
解析单元601,用于对报文进行解析,基于解析结果按照第一规则确定所述报文对应的扩展端口,所述扩展端口用于对所述报文进行分流;
确定单元602,用于基于所述扩展端口对应的第二规则,确定所述报文对应的目标条目;
处理单元603,用于利用所述目标条目对所述报文进行处理。
在一实施方式中,所述解析单元601,用于对报文的头部进行解析,得到所述报文的头部所包括的各个字段;基于第一规则,确定所述报文的头部中各字段分别对应的自定义偏移量,其中,所述第一规则包括自定义偏移量与字段之间的对应关系;基于所述报文对应的自定义偏移量,确定所述报文对应的扩展端口。
在一实施方式中,所述解析单元601,还用于针对所述报文的头部中的各个字段,将所述字段中预设位置处的地址,作为与所述字段对应的自定义偏移量的自定义偏移地址。
在一实施方式中,所述确定单元602包括:
提取子单元6021,用于基于所述扩展端口对应的第二规则,以及所述各自定义偏移量对应的自定义偏移地址,从所述报文中提取出目标数据,所述第二规则用于提取目标数据;
查找子单元6022,用于基于所述目标数据,在HASH列表的各HASH桶中查找目标条目。
在一实施方式中,所述查找子单元6022,用于基于所述目标数据,计算HASH地址;基于所述HASH地址以及配置信息,从所述HASH列表的各HASH桶中确定出有效的HASH桶,作为需要读取的HASH桶,其中,所述配置信息记录有各HASH地址与有效的HASH桶的对应关系;从所述有效的HASH桶中读取与所述HASH地址对应的有效条目;将所述目标数据与各个有效条目进行比较,确定出与所述目标数据相匹配的有效条目,作为所述目标条目。
本领域技术人员应当理解,图6所示的报文处理装置中的各模块的实现功能可参照前述报文处理方法的相关描述而理解。图6所示的报文处理装置中的各模块的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。
在实际应用中,所述报文处理装置中的各个单元所实现的功能,均可由位于报文处理装置中的中央处理器(CPU,Central Processing Unit)、或微处理器(MPU,MicroProcessor Unit)、或数字信号处理器(DSP,Digital Signal Processor)、或现场可编程门阵列(FPGA,Field Programmable Gate Array)等实现。
图7为本发明实施例的报文处理装置的结构组成示意图二,如图7所示,所述报文处理装置包括:报文分析模块701、规则获取模块702、数据提取模块703、HASH处理模块704、报文处理模块705,端口获取模块706,其中,图6中的解析单元601对应图7中的报文分析模块601、端口获取模块706和规则获取模块602,图6中的确定单元602对应图7中的数据提取模块703和HASH处理模块704,图6中的处理单元603对应图7中的报文处理模块705。
报文分析模块701,用于对报文进行解析,得到所述报文对应的自定义偏移信息,所述自定义偏移信息包括:所述报文对应的自定义偏移量、各自定义偏移量对应的自定义偏移地址;
规则获取模块702,用于基于所述报文对应的自定义偏移量,确定所述报文对应的数据提取规则;
数据提取模块703,用于基于所述数据提取规则以及所述各自定义偏移量对应的自定义偏移地址,从所述报文中提取出目标数据;
HASH处理模块704,用于基于所述目标数据,在HASH列表的各HASH桶中查找目标条目;
报文处理模块705,用于利用所述目标条目对所述报文进行处理。
本发明实施例中,所述装置还包括:端口获取模块706,用于基于所述报文对应的自定义偏移量,确定所述报文对应的扩展端口;
所述规则获取模块702,用于基于所述扩展端口,确定所述报文对应的数据提取规则。
通过图7可以看到各个模块之间的大致关系如下:报文从报文分析模块输入,分析得到自定义偏移信息(自定义偏移量和各自定义偏移量对应的自定义偏移地址);将获取到的自定义偏移信息送入端口获取模块,得到扩展端口;将扩展端口送入规则获取模块,得到相应的数据提取规则;将数据提取规则以及报文(包头数据)送入数据提取模块,得到需要比较的目标数据;将目标数据送入HASH计算模块进行HASH运算,得到HASH地址;将HASH地址送入HASH查找模块,用HASH地址索引出对应的有效条目,将目标数据与有效条目进行匹配,确定出相匹配的有效条目;将相匹配的有效条目送入报文处理模块对报文进行处理。这里,HASH计算模块和HASH查找模块统称为HASH处理模块。
在一实施方式中,所述报文分析模块701,包括:
解析子模块7011,用于对报文的头部进行解析,得到所述报文的头部所包括的各个字段;
确定子模块7012,用于基于预设对应关系,确定所述报文的头部中各字段分别对应的自定义偏移量,其中,所述预设对应关系为自定义偏移量与字段之间的对应关系;针对所述报文的头部中的各个字段,将所述字段中预设位置处的地址,作为与所述字段对应的自定义偏移量的自定义偏移地址。
在一实施方式中,所述端口获取模块706,用于基于所述报文对应的自定义偏移量以及所述预设对应关系中所包括的自定义偏移量,生成端口索引信息;基于所述端口索引信息,确定所述报文对应的扩展端口。
在一实施方式中,所述装置还包括:
预定义模块707,用于生成所述预设对应关系,其中,针对所述预设对应关系中的各个字段,将所述字段的头部或尾部对应的地址作为与所述字段对应的自定义偏移量的自定义偏移地址。
在一实施方式中,所述规则获取模块702,用于基于所述扩展端口,确定规则编号;根据所述规则编号,获取数据提取规则,其中,所述数据提取规则包括一个或多个待提取的目标数据对应的提取规则,所述提取规则包括:偏移地址、偏移地址的类型以及自定义偏移量的类型,其中,所述偏移地址的类型用于表示所述偏移地址为相对偏移地址或是绝对偏移地址。
在一实施方式中,所述数据提取模块703,包括:
第一确定子模块7031,用于基于所述数据提取规则,确定待提取的目标数据对应的偏移地址,其中,所述待提取的目标数据的个数为一个或多个;
第二确定子模块7032,用于如果所述待提取的目标数据对应的偏移地址为相对偏移地址,则确定所述相对偏移地址对应的自定义偏移量;
判断子模块7033,用于判断所述相对偏移地址对应的自定义偏移量,是否为所述报文对应的自定义偏移量;
计算子模块7034,用于如果所述相对偏移地址对应的自定义偏移量为所述报文对应的自定义偏移量,则基于所述自定义偏移量对应的自定义偏移地址以及所述相对偏移地址,计算绝对偏移地址;
提取子模块7035,用于基于所述绝对偏移地址从所述报文中提取出目标数据。
在一实施方式中,所述数据提取模块703,还包括:第三确定子模块7036,用于如果所述相对偏移地址对应的自定义偏移量,不是所述报文对应的自定义偏移量,则确定所述数据提取规则为无效规则。
在一实施方式中,所述提取子模块7035,还用于如果所述待提取的目标数据对应的偏移地址为绝对偏移地址,则基于所述绝对偏移地址从所述报文中提取出目标数据。
在一实施方式中,所述数据提取模块703,还用于如果不存在与所述端口索引信息相匹配的扩展端口,则基于物理端口对应的数据提取规则,从所述报文中提取出目标数据。
在一实施方式中,所述HASH处理模块704,用于基于所述目标数据,计算HASH地址;基于所述HASH地址,在HASH列表的各HASH桶中查找与所述HASH地址对应的目标条目。
在一实施方式中,所述HASH处理模块704,用于将所述目标数据以及所述规则编号作为key值输入HASH函数中,计算HASH地址。
在一实施方式中,所述HASH处理模块704,用于基于所述HASH地址以及预配置信息,从所述HASH列表的各HASH桶中确定出有效的HASH桶,作为需要读取的HASH桶,其中,所述预配置信息记录有各HASH地址与有效的HASH桶的对应关系,所述有效的HASH桶是指:当在第一HASH桶的第一HASH地址内存储条目时,所述第一HASH桶为所述第一HASH地址的有效的HASH桶;基于所述HASH地址从所述有效的HASH桶中读取有效条目,所述有效的HASH桶的个数为一个或多个;将所述目标数据与读取到的各个有效条目进行比较,确定出与所述目标数据相匹配的有效条目,作为与所述HASH地址对应的目标条目。
本领域技术人员应当理解,图7所示的报文处理装置中的各模块的实现功能可参照前述报文处理方法的相关描述而理解。图7所示的报文处理装置中的各模块的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。
在实际应用中,所述报文处理装置中的各个单元所实现的功能,均可由位于报文处理装置中的CPU、或MPU、或DSP、或FPGA等实现。
本发明实施例的报文处理装置,(1)对报文进行分析后得到自定义偏移量,并以此为基础获取扩展端口,将不同的报文根据不同的需求细分到不同的扩展端口下。基于扩展端口获取规则,比现有的基于物理端口获取规则数量上会少很多;每个报文需要处理的规则数减少,这样需要进行HASH运算的情况也变少了,需要查找的HASH条目也减少了,那么也就是访问DDR的次数减少,降低了对DDR带宽的占用。(2)在HASH条目查找前进行预处理,增加一个配置记录信息,从而避免查找时对无效条目的访问,如果没有这个预处理,那么有几个HASH桶,硬件就会访问几次DDR空间,而存在这个预处理,只是访问有效条目,只要HASH桶没有占满,那访问DDR的次数也会更少,即降低了对DDR带宽的占用。(3)引入自定义偏移量以及相对偏移量,可以方便地将需要提取的目标数据进行归类,比起现有的绝对偏移量的提取方式,可以节省更多的规则,节省规则一方面可以优化资源,更重要的是在查找时可以少查找一些规则,可以降低对DDR带宽的占用。(4)实际使用中,为了确认匹配数据的唯一性,需要加上规则编号,当发生HASH冲突时,由于是基于扩展端口获取规则,每个扩展端口下可以使用多个规则,那么可以在该扩展端口下再配置一个规则,基于新的规则把之前由于HASH冲突无法配置的条目配置进去,在同样资源的情况下提高了HASH桶的利用率,为HASH冲突提供了很好的解决方案。
本发明实施例还提供了一种光网络终端,包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现如下步骤:
对报文进行解析,基于解析结果按照第一规则确定所述报文对应的扩展端口,所述扩展端口用于对所述报文进行分流;
基于所述扩展端口对应的第二规则,确定所述报文对应的目标条目;
利用所述目标条目对所述报文进行处理。
在一实施方式中,所述计算机可执行指令被所述处理器执行时还实现如下步骤:
对报文的头部进行解析,得到所述报文的头部所包括的各个字段;
基于第一规则,确定所述报文的头部中各字段分别对应的自定义偏移量,其中,所述第一规则包括自定义偏移量与字段之间的对应关系;
基于所述报文对应的自定义偏移量,确定所述报文对应的扩展端口。
在一实施方式中,所述计算机可执行指令被所述处理器执行时还实现如下步骤:
针对所述报文的头部中的各个字段,将所述字段中预设位置处的地址,作为与所述字段对应的自定义偏移量的自定义偏移地址。
在一实施方式中,所述计算机可执行指令被所述处理器执行时还实现如下步骤:
基于所述扩展端口对应的第二规则,以及所述各自定义偏移量对应的自定义偏移地址,从所述报文中提取出目标数据,所述第二规则用于提取目标数据;
基于所述目标数据,在HASH列表的各HASH桶中查找目标条目。
在一实施方式中,所述第二规则包括一个或多个待提取的目标数据对应的提取规则,所述提取规则包括:偏移地址、偏移地址的类型以及自定义偏移量的类型,其中,所述偏移地址的类型用于表示所述偏移地址为相对偏移地址或是绝对偏移地址;
所述计算机可执行指令被所述处理器执行时还实现如下步骤:
基于所述扩展端口对应的第二规则,确定待提取的目标数据对应的偏移地址;
如果所述待提取的目标数据对应的偏移地址为相对偏移地址,则确定所述相对偏移地址对应的自定义偏移量;
判断所述相对偏移地址对应的自定义偏移量,是否为所述报文对应的自定义偏移量;
如果所述相对偏移地址对应的自定义偏移量为所述报文对应的自定义偏移量,则基于所述自定义偏移量对应的自定义偏移地址以及所述相对偏移地址,计算绝对偏移地址,并基于所述绝对偏移地址从所述报文中提取出目标数据。
在一实施方式中,所述计算机可执行指令被所述处理器执行时还实现如下步骤:
如果所述待提取的目标数据对应的偏移地址为绝对偏移地址,则基于所述绝对偏移地址从所述报文中提取出目标数据。
在一实施方式中,所述计算机可执行指令被所述处理器执行时还实现如下步骤:
基于所述目标数据,计算HASH地址;
基于所述HASH地址以及配置信息,从所述HASH列表的各HASH桶中确定出有效的HASH桶,作为需要读取的HASH桶,其中,所述配置信息记录有各HASH地址与有效的HASH桶的对应关系,所述有效的HASH桶是指:当在第一HASH桶的第一HASH地址内存储条目时,所述第一HASH桶为所述第一HASH地址的有效的HASH桶;
从所述有效的HASH桶中读取与所述HASH地址对应的有效条目;
将所述目标数据与各个有效条目进行比较,确定出与所述目标数据相匹配的有效条目,作为所述目标条目。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
相应地,本发明实施例还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的报文处理方法。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (16)
1.一种报文处理方法,其特征在于,所述方法包括:
对报文进行解析,基于解析结果按照第一规则确定所述报文对应的扩展端口,所述扩展端口用于对所述报文进行分流;
基于所述扩展端口对应的第二规则,确定所述报文对应的目标条目;
利用所述目标条目对所述报文进行处理。
2.根据权利要求1所述的报文处理方法,其特征在于,所述对报文进行解析,基于解析结果按照第一规则确定所述报文对应的扩展端口,包括:
对报文的头部进行解析,得到所述报文的头部所包括的各个字段;
基于第一规则,确定所述报文的头部中各字段分别对应的自定义偏移量,其中,所述第一规则包括自定义偏移量与字段之间的对应关系;
基于所述报文对应的自定义偏移量,确定所述报文对应的扩展端口。
3.根据权利要求2所述的报文处理方法,其特征在于,所述基于所述报文对应的自定义偏移量,确定所述报文对应的扩展端口,包括:
基于所述报文对应的自定义偏移量,生成端口索引信息;
基于所述端口索引信息匹配出所述报文对应的扩展端口。
4.根据权利要求3所述的报文处理方法,其特征在于,所述方法还包括:
如果不存在与所述端口索引信息相匹配的扩展端口,则基于物理端口对应的第三规则,确定所述报文对应的目标条目;其中,所述物理端口对应的第三规则的数据大于所述扩展端口对应的第二规则的数目。
5.根据权利要求2所述的报文处理方法,其特征在于,所述方法还包括:
针对所述报文的头部中的各个字段,将所述字段中预设位置处的地址,作为与所述字段对应的自定义偏移量的自定义偏移地址。
6.根据权利要求5所述的报文处理方法,其特征在于,所述基于所述扩展端口对应的第二规则,确定所述报文对应的目标条目,包括:
基于所述扩展端口对应的第二规则,以及所述各自定义偏移量对应的自定义偏移地址,从所述报文中提取出目标数据;
基于所述目标数据,在哈希HASH列表的各HASH桶中查找目标条目。
7.根据权利要求6所述的报文处理方法,其特征在于,所述第二规则包括一个或多个待提取的目标数据对应的提取规则,所述提取规则包括:偏移地址、偏移地址的类型以及自定义偏移量的类型,其中,所述偏移地址的类型用于表示所述偏移地址为相对偏移地址或是绝对偏移地址;
所述基于所述扩展端口对应的第二规则,以及所述各自定义偏移量对应的自定义偏移地址,从所述报文中提取出目标数据,包括:
基于所述扩展端口对应的第二规则,确定待提取的目标数据对应的偏移地址;
如果所述待提取的目标数据对应的偏移地址为相对偏移地址,则确定所述相对偏移地址对应的自定义偏移量;
判断所述相对偏移地址对应的自定义偏移量,是否为所述报文对应的自定义偏移量;
如果所述相对偏移地址对应的自定义偏移量为所述报文对应的自定义偏移量,则基于所述自定义偏移量对应的自定义偏移地址以及所述相对偏移地址,计算绝对偏移地址,并基于所述绝对偏移地址从所述报文中提取出目标数据。
8.根据权利要求7所述的报文处理方法,其特征在于,所述方法还包括:
如果所述待提取的目标数据对应的偏移地址为绝对偏移地址,则基于所述绝对偏移地址从所述报文中提取出目标数据。
9.根据权利要求6所述的报文处理方法,其特征在于,所述基于所述目标数据,在哈希HASH列表的各HASH桶中查找目标条目,包括:
基于所述目标数据,计算HASH地址;
基于所述HASH地址以及配置信息,从所述HASH列表的各HASH桶中确定出有效的HASH桶,作为需要读取的HASH桶,其中,所述配置信息记录有各HASH地址与有效的HASH桶的对应关系;
从所述有效的HASH桶中读取与所述HASH地址对应的有效条目;
将所述目标数据与各个有效条目进行比较,确定出与所述目标数据相匹配的有效条目,作为所述目标条目。
10.一种报文处理装置,其特征在于,所述装置包括:
解析单元,用于对报文进行解析,基于解析结果按照第一规则确定所述报文对应的扩展端口,所述扩展端口用于对所述报文进行分流;
确定单元,用于基于所述扩展端口对应的第二规则,确定所述报文对应的目标条目;
处理单元,用于利用所述目标条目对所述报文进行处理。
11.根据权利要求10所述的报文处理装置,其特征在于,所述解析单元,用于对报文的头部进行解析,得到所述报文的头部所包括的各个字段;基于第一规则,确定所述报文的头部中各字段分别对应的自定义偏移量,其中,所述第一规则包括自定义偏移量与字段之间的对应关系;基于所述报文对应的自定义偏移量,确定所述报文对应的扩展端口。
12.根据权利要求11所述的报文处理装置,其特征在于,所述解析单元,还用于针对所述报文的头部中的各个字段,将所述字段中预设位置处的地址,作为与所述字段对应的自定义偏移量的自定义偏移地址。
13.根据权利要求12所述的报文处理装置,其特征在于,所述确定单元包括:
提取子单元,用于基于所述扩展端口对应的第二规则,以及所述各自定义偏移量对应的自定义偏移地址,从所述报文中提取出目标数据,所述第二规则用于提取目标数据;
查找子单元,用于基于所述目标数据,在HASH列表的各HASH桶中查找目标条目。
14.根据权利要求13所述的报文处理装置,其特征在于,所述查找子单元,用于基于所述目标数据,计算HASH地址;基于所述HASH地址以及配置信息,从所述HASH列表的各HASH桶中确定出有效的HASH桶,作为需要读取的HASH桶,其中,所述配置信息记录有各HASH地址与有效的HASH桶的对应关系;从所述有效的HASH桶中读取与所述HASH地址对应的有效条目;将所述目标数据与各个有效条目进行比较,确定出与所述目标数据相匹配的有效条目,作为所述目标条目。
15.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至9任一项所述方法的步骤。
16.一种光网络终端,其特征在于,所述光网络终端包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现权利要求1-9任一项所述的方法步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811333746.9A CN111181857B (zh) | 2018-11-09 | 2018-11-09 | 一种报文处理方法及装置、存储介质、光网络终端 |
PCT/CN2019/098130 WO2020093737A1 (zh) | 2018-11-09 | 2019-07-29 | 一种报文处理方法及装置、存储介质、光网络终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811333746.9A CN111181857B (zh) | 2018-11-09 | 2018-11-09 | 一种报文处理方法及装置、存储介质、光网络终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111181857A true CN111181857A (zh) | 2020-05-19 |
CN111181857B CN111181857B (zh) | 2020-12-29 |
Family
ID=70612288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811333746.9A Active CN111181857B (zh) | 2018-11-09 | 2018-11-09 | 一种报文处理方法及装置、存储介质、光网络终端 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111181857B (zh) |
WO (1) | WO2020093737A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112491828A (zh) * | 2020-11-13 | 2021-03-12 | 北京金山云网络技术有限公司 | 报文分析方法、装置、服务器及存储介质 |
CN112822722A (zh) * | 2020-12-30 | 2021-05-18 | 联想未来通信科技(重庆)有限公司 | 一种数据报文的传输方法和装置 |
CN116600031A (zh) * | 2023-07-18 | 2023-08-15 | 无锡沐创集成电路设计有限公司 | 报文处理方法、装置、设备及存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113489593B (zh) * | 2021-06-30 | 2022-11-08 | 深圳前海微众银行股份有限公司 | Json报文的核对方法和json报文的核对装置 |
CN113595931B (zh) * | 2021-07-08 | 2024-01-16 | 杭州海康威视数字技术股份有限公司 | 一种报文处理方法、装置、设备及存储介质 |
CN114244916B (zh) * | 2021-11-19 | 2022-11-18 | 国网经济技术研究院有限公司 | 一种智能电子设备的端口识别方法、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101789904A (zh) * | 2010-02-04 | 2010-07-28 | 杭州华三通信技术有限公司 | 流量控制的方法及设备 |
CN102025593A (zh) * | 2009-09-21 | 2011-04-20 | 中国移动通信集团公司 | 分布式用户接入系统及方法 |
CN102143074A (zh) * | 2011-03-25 | 2011-08-03 | 中兴通讯股份有限公司 | 网络负荷的分担方法、系统及网络处理器 |
CN102474449A (zh) * | 2009-11-02 | 2012-05-23 | 马维尔国际贸易有限公司 | 基于虚拟接口的交换装置和方法 |
CN106357534A (zh) * | 2016-08-25 | 2017-01-25 | 江苏省未来网络创新研究院 | 一种基于sdn的流量监控系统及方法 |
CN107666627A (zh) * | 2016-07-28 | 2018-02-06 | 上海诺基亚贝尔股份有限公司 | 一种pon网络中数据转发控制方法及其装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101888324B (zh) * | 2009-05-15 | 2013-02-13 | 华为技术有限公司 | 无源光网络中的报文传输方法、装置和系统 |
CN102388566B (zh) * | 2011-09-26 | 2014-03-05 | 华为技术有限公司 | 转换终端设备的标识符的方法、装置和系统 |
CN105634985B (zh) * | 2016-01-21 | 2018-10-09 | 烽火通信科技股份有限公司 | 一种FTTdp多DSL端口ONU业务流的处理方法 |
-
2018
- 2018-11-09 CN CN201811333746.9A patent/CN111181857B/zh active Active
-
2019
- 2019-07-29 WO PCT/CN2019/098130 patent/WO2020093737A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025593A (zh) * | 2009-09-21 | 2011-04-20 | 中国移动通信集团公司 | 分布式用户接入系统及方法 |
CN102474449A (zh) * | 2009-11-02 | 2012-05-23 | 马维尔国际贸易有限公司 | 基于虚拟接口的交换装置和方法 |
CN101789904A (zh) * | 2010-02-04 | 2010-07-28 | 杭州华三通信技术有限公司 | 流量控制的方法及设备 |
CN102143074A (zh) * | 2011-03-25 | 2011-08-03 | 中兴通讯股份有限公司 | 网络负荷的分担方法、系统及网络处理器 |
CN107666627A (zh) * | 2016-07-28 | 2018-02-06 | 上海诺基亚贝尔股份有限公司 | 一种pon网络中数据转发控制方法及其装置 |
CN106357534A (zh) * | 2016-08-25 | 2017-01-25 | 江苏省未来网络创新研究院 | 一种基于sdn的流量监控系统及方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112491828A (zh) * | 2020-11-13 | 2021-03-12 | 北京金山云网络技术有限公司 | 报文分析方法、装置、服务器及存储介质 |
CN112822722A (zh) * | 2020-12-30 | 2021-05-18 | 联想未来通信科技(重庆)有限公司 | 一种数据报文的传输方法和装置 |
CN112822722B (zh) * | 2020-12-30 | 2022-09-23 | 联想未来通信科技(重庆)有限公司 | 一种数据报文的传输方法和装置 |
CN116600031A (zh) * | 2023-07-18 | 2023-08-15 | 无锡沐创集成电路设计有限公司 | 报文处理方法、装置、设备及存储介质 |
CN116600031B (zh) * | 2023-07-18 | 2023-10-31 | 无锡沐创集成电路设计有限公司 | 报文处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020093737A1 (zh) | 2020-05-14 |
CN111181857B (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111181857B (zh) | 一种报文处理方法及装置、存储介质、光网络终端 | |
CN109962832B (zh) | 报文处理的方法和装置 | |
US10148573B2 (en) | Packet processing method, node, and system | |
CN107113240B (zh) | 可扩展虚拟局域网报文发送方法、计算机设备和可读介质 | |
US6654701B2 (en) | Method and apparatus for measuring protocol performance in a data communication network | |
US10333845B2 (en) | Forwarding data packets | |
CN106878194B (zh) | 一种报文处理方法和装置 | |
US9882808B2 (en) | Packet processing method and apparatus | |
RU2608874C2 (ru) | Способ и устройство для модификации и переадресации сообщения в сети передачи данных | |
US20080198853A1 (en) | Apparatus for implementing actions based on packet classification and lookup results | |
US20140369363A1 (en) | Apparatus and Method for Uniquely Enumerating Paths in a Parse Tree | |
CN111510386B (zh) | 用于处理报文的方法和装置 | |
CN107580079B (zh) | 一种报文传输方法和装置 | |
CN112953949B (zh) | 一种网络报文的报文头处理方法、装置、设备及存储介质 | |
US20180367431A1 (en) | Heavy network flow detection method and software-defined networking switch | |
US20220045875A1 (en) | Multicast message processing method and apparatus, storage medium and processor | |
WO2024067336A1 (zh) | 报文处理方法、可编程网卡设备、物理服务器及存储介质 | |
US20220393908A1 (en) | Message Encapsulation Method and Apparatus, and Message Decapsulation Method and Apparatus | |
US20150256459A1 (en) | Packet processing method and apparatus | |
US20140101751A1 (en) | Hardware engine for high-capacity packet processing of network based data loss prevention appliance | |
EP2953302B1 (en) | Service packet processing method, apparatus and system | |
US20220070091A1 (en) | Open fronthaul network system | |
CN107070719B (zh) | 一种设备管理方法和装置 | |
TW201537918A (zh) | 用於靈活封包分類的方法和系統 | |
KR20060096012A (ko) | 데이터 패킷 변환 방법 및 장치와 기록 매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |