CN116232894A - 一种报文处理方法、报文处理装置及存储介质 - Google Patents

一种报文处理方法、报文处理装置及存储介质 Download PDF

Info

Publication number
CN116232894A
CN116232894A CN202211522483.2A CN202211522483A CN116232894A CN 116232894 A CN116232894 A CN 116232894A CN 202211522483 A CN202211522483 A CN 202211522483A CN 116232894 A CN116232894 A CN 116232894A
Authority
CN
China
Prior art keywords
tcam
rule
message
processor
table item
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.)
Pending
Application number
CN202211522483.2A
Other languages
English (en)
Inventor
薛兆井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Armyfly Technology Co Ltd
Original Assignee
Beijing Armyfly Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Armyfly Technology Co Ltd filed Critical Beijing Armyfly Technology Co Ltd
Priority to CN202211522483.2A priority Critical patent/CN116232894A/zh
Publication of CN116232894A publication Critical patent/CN116232894A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0866Checking the configuration
    • H04L41/0873Checking configuration conflicts between network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例提供一种报文处理方法、报文处理装置及存储介质,属于网络通信技术领域。该报文处理方法针对包括处理器和TCAM的硬件处理结构,且应用于TCAM,包括:响应于来自处理器的基于以太网报文生成的关键字,从TCAM中查找与该关键字匹配的目标表项规则,其中TCAM基于对以太网报文的处理需求而被预先配置存储有至少一条表项规则,且每一表项规则包括用于表征该表项规则的优先级别及针对该表项规则对应的以太网报文的处理动作的指示字符;以及将目标表项规则对应的指示字符发送至处理器,以使得处理器根据所述指示字符确定并执行对以太网报文的处理动作。本发明实施例的报文处理方法能够简化查表步骤,提高报文处理效率,节省了SRAM的资源。

Description

一种报文处理方法、报文处理装置及存储介质
技术领域
本发明涉及网络通信技术领域,具体地涉及一种报文处理方法、报文处理装置及存储介质。
背景技术
随着以太网业务的高速发展,基于报文的业务流量越来越多,同时对于报文的信息安全和网络攻击也提出了相应的要求。因此,对于报文的安全处理也相应变得越来越重要。如图1所示,现有对于报文的安全处理采用三态内容寻址存储器(Ternary ContentAddressable Memory,TCAM)芯片、处理器和静态随机存取存储器(Static Random-AccessMemory,SRAM)。并且,对于报文的安全处理方式为:
首先,当处理器接收到以太网报文后,处理器从报文的报文头中提取需要查找的信息,并将所要查找的信息整理成与TCAM所存表项的格式一致的信息,生成关键字,这里称之为Key。
其次,所生成的Key作为TCAM芯片的输入数据,TCAM芯片基于所输入的Key与其所存的查找表中的所有表项规则进行对照,若有匹配的表项规则,则将该匹配的表项规则的所在地址作为输出,这里称之为Index。
再次,该Index作为SRAM的地址输入,SRAM根据所输入的Index查找该匹配的表项规则对应的执行动作,这里称之为Data。
最终,SRAM将查找得到的Data返回给处理器,完成查找操作。从而,处理器根据所返回的Data执行相应的处理动作,实现对于报文的安全处理。
从上述的处理方式可以看出,对于报文的处理方式实际上包括两次查找过程,第一次查找是TCAM基于输入的Key查找其所存表项规则中是否含有与Key相匹配的表项规则;第二次查找则是在查找到匹配的表项规则后,SRAM根据表项规则的地址查找对应的Data。因此,现有的报文处理方式中查找过程较为繁琐,影响处理器对于报文的转发效率,且占用SRAM的资源。
发明内容
本发明实施例的目的是提供一种报文处理方法、报文处理装置及存储介质用于至少部分地解决上述存在的技术问题。
为了实现上述目的,第一方面,本发明实施例提供一种报文处理方法,针对包括处理器和三态内容寻址存储器TCAM的硬件处理结构,且应用于所述TCAM,该报文处理方法包括:响应于来自所述处理器的基于以太网报文生成的关键字,从所述TCAM中查找与该关键字匹配的目标表项规则,其中所述TCAM基于对所述以太网报文的处理需求而被预先配置存储有至少一条表项规则,且每一表项规则包括用于表征该表项规则的优先级别及针对该表项规则对应的以太网报文的处理动作的指示字符;以及将所述目标表项规则对应的指示字符发送至所述处理器,以使得所述处理器根据所述指示字符确定并执行对所述以太网报文的处理动作。
可选的,所述从所述TCAM中查找与该关键字匹配的目标表项规则包括:若查找与所述关键字匹配的表项规则是唯一的,则确定所匹配到的表项规则为所述目标表项规则;若查找与所述关键字匹配的表项规则不唯一,则根据所匹配到的多个表项规则的指示字符所表征的优先级别,确定优先级别最高的表项规则为所述目标表项规则。
可选的,所述报文处理方法还包括:若基于所述关键字未能查找得到所述目标表项规则,则生成并向所述处理器发送缺省提示信息,使得所述处理器基于所述缺省提示信息确定并执行对所述以太网报文的处理动作。
可选的,所述指示字符包括:用于表征转发所述以太网报文的第一字符;和/或用于表征丢弃所述以太网报文的第二字符。
可选的,所述报文处理方法还包括:当针对所述TCAM新增表项规则时,判断所新增的表项规则与已存储的表项规则是否存在冲突,若是,则丢弃所新增的表项规则和/或上报新增失败的原因。
可选的,所述表项规则包括访问控制列表ACL或者路由。
第二方面,本发明实施例提供一种报文处理方法,用于包括处理器和TCAM的硬件处理结构,且所述报文处理方法应用于所述处理器,包括:将基于以太网报文生成的关键字传输至所述TCAM,以使得所述TCAM查找与该关键字匹配的目标表项规则,其中所述TCAM基于对所述以太网的处理需求而被预先配置存储有至少一条表项规则,且每一表项规则包括用于表征该表项规则的优先级别及针对该表项规则对应的以太网报文的处理动作的指示字符;以及接收所述TCAM发送的所述目标表项规则对应的指示字符,并根据所述指示字符确定并执行对所述以太网报文的处理动作。
可选的,所述报文处理方法还包括:接收所述TCAM发送的缺省提示信息,并基于所述缺省提示信息确定并执行对所述以太网报文的处理动作,其中所述缺省提示信息是在所述TCAM基于所述关键字未能查找得到所述目标表项规则时而生成的。
第三方面,本发明实施例提供一种报文处理装置,所述报文处理装置包括:存储器,其存储有能够在处理器上运行的程序;以及所述处理器,其被配置为执行所述程序时实现上述第一方面任一项应用于所述TCAM的报文处理方法或者第二方面任一项应用于所述处理器的报文处理方法。
第四方面,本发明实施例提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本申请上述第一方面任一项所述的应用于所述TCAM的报文处理方法或者第二方面所述的应用于所述处理器的报文处理方法。
上述技术方案中,TCAM所存的表项规则预先配置有表征报文处理动作的指示字符,进而在查找到目标表项规则后能够直接向处理器反馈该目标表项规则对应的指示字符,进而使得处理器基于该指示字符直接执行对应的处理动作。相比于现有技术来说,本发明实施例不需要二次查表,简化了查找步骤,提高对于报文的处理效率,同时节省了SRAM的资源。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1是现有技术的一种对于报文处理的硬件处理结构示意图;
图2是根据一示例性实施例示出的一种应用于TCAM的报文处理方法流程图;
图3是根据一示例性实施例示出的一种硬件处理结构示意图;
图4是根据一示例性实施例示出的一种关键字唯一的情况下匹配TCAM表项规则示意图;
图5是根据一示例性实施例示出的一种关键字不唯一的情况下匹配TCAM表项规则示意图;
图6是根据一示例性实施例示出的一种过滤设备和电脑连接示意图;
图7是根据一示例性实施例示出的一种基于关键字为MAC地址的TCAM表项规则示意图;
图8A是根据一示例性实施例示出的一种TCAM表项规则配置示意图;
图8B是根据一示例性实施例示出的一种基于缺省原则的TCAM表项规则配置示意图;
图9根据一示例性实施例示出的一种校验新增表项规则示意图;以及
图10是根据一示例性实施例示出的一种应用于处理器的报文处理方法流程图。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
首先,在此对本发明实施例中涉及到的部分用语作一下介绍说明,以便于本领域技术人员理解本发明技术方案。
1、三态内容寻址存储器(Ternary Content Addressable Memory,TCAM),主要用于快速查找ACL、路由等表项。TCAM中每个比特位有三种状态,除“0”和“1”外,还有一个“don’t care”状态,因此,称为“三态”。
2、关键字,其是由处理器从报文的报文头中提取信息并将该信息整理成与TCAM要求一致的数据格式而生成,主要用于从TCAM中查找表项规则。
实施例一
本发明实施例提供一种报文处理方法,该报文处理方法针对包括处理器和三态内容寻址存储器TCAM的硬件处理结构,且应用于所述TCAM,如图2所示,该报文处理方法包括步骤S210~步骤S220:
步骤S210,响应于来自所述处理器的基于以太网报文生成的关键字,从所述TCAM中查找与该关键字匹配的目标表项规则,其中所述TCAM基于对所述以太网报文的处理需求而被预先配置存储有至少一条表项规则,且每一表项规则包括用于表征该表项规则的优先级别及针对该表项规则对应的以太网报文的处理动作的指示字符。
步骤S220,将所述目标表项规则对应的指示字符发送至所述处理器,以使得所述处理器根据所述指示字符确定并执行对所述以太网报文的处理动作。
举例而言,如图3所示,本发明实施例的硬件处理结构包括处理器和TCAM,其中,处理器向TCAM发送关键字Key,TCAM则向处理器返回指示字符。也就是说本发明实施例仅利用处理器和TCAM的交互即可实现查表过程,而无需利用SRAM。其中,处理器可以为NPU类处理器或者FPGA。处理器用于接收以太网报文并生成关键字,而TCAM则用于基于关键字完成查表,进而处理器根据查表结果来执行对报文的处理动作。具体的,在以太网报文结构中,报文头是由若干个字段而组成,其中每个字段包含若干个bit位。而关键字Key则是从该报文头中提取所需字段并整理成TCAM所要求的数据格式而生成,即关键字Key的数据格式与TCAM中所存储的各个表项规则的数据格式是相同的。优选的,TCAM表项规则可以是访问控制列表ACL或者路由。例如,TCAM的中配置的各个表项规则是基于过滤特定的MAC地址的IP报文。那么,各个表项规则的数据格式为目的MAC+源MAC的格式。因此,当处理器接收以太网报文后,从报文的报文头中提取关于目的MAC和源MAC的字段,并将提取的字段整理成与TCAM要求的数据格式一致的目的MAC+源MAC的格式,进而生成关键字Key。若TCAM中所存的表项规则中与该关键字相同,即所存的目的MAC+源MAC与关键字包括的目的MAC+源MAC相同,则说明该表项规则为目标表项规则。这里需要说明的是,本发明中的关键字被配置为唯一的,其所包含的bit位不会配置有掩码“*”,有关于这点的介绍将在下面的实施方式中具体介绍。
图4为一种TCAM所存储的表项规则,如图4所示,TCAM被预先配置存储有6条表项规则,左侧第一列为表项规则序号,因此,四条表项规则分别为表项0、表项1、表项2、表项3、表项4和表项5。若基于以太网报文的报文头生成的关键字为10110010,则通过查表可知,表项4为与关键字相同的表项规则,因此,表项4则为目标表项规则。
承接上述说明,本发明实施例为了能够克服现有的多次查找的问题,针对预先配置的每条表项规则配置相应的指示字符,该指示字符用于表征表项规则的优先级别以及相应的针对以太网报文的处理动作。即,当查找到目标表项规则后,则获取该目标表项规则被预先配置的指示字符。本发明实施例中,处理器内部则预先配置针对不同指示字符对应的不同的处理动作的对照规则。当TCAM将获取的目标表项规则的指示字符发送至处理器时,处理器则基于预先配置的对照规则根据指示字符确定相应的处理动作,进而对报文执行所确定的处理动作。例如,如图4所示,若处理器内部配置的对照规则中指示字符“0”对应的处理的动作为“丢弃报文”,则当处理器接收到该指示字符“0”时,即执行对于以太网报文的丢弃动作。
通过上述步骤S210至步骤S220可以看出,本发明实施例的报文处理方法仅涉及一次查表,即基于关键字查找目标表项规则。因此,本发明实施例并不涉及如现有技术再需要根据目标表项规则的地址在SRAM中进行二次查表。并且,本发明实施例能够通过反馈目标表项规则的指示字符即可确定对于报文的转发动作,故而简化了查表步骤,有效提高了报文转发效率,且仅依靠TCAM和处理器之间的交互即可完成,无需占用SRAM的资源。
在一种优先的实施方式中,所述指示字符包括用于表征转发所述以太网报文的第一字符;和/或用于表征丢弃所述以太网报文的第二字符。
举例而言,还以上述图4为例,图4中的第二列则是针对每个表项规则的指示字符。例如,设第一字符为“1”,第二字符为“0”,进而可知图4中的表项0、表项1、表项3和表项5对应的处理动作为转发以太网报文。而表项2和表项4对应的处理动作为丢弃以太网报文。需要说明的是,本领域技术人员可以基于对报文处理的实际需求以及所配置的表项规则配置每条表项规则对应的指示字符。
在一种优选的实施方式中,所述从所述TCAM中查找与该关键字匹配的目标表项规则包括:若查找与所述关键字匹配的表项规则是唯一的,则确定所匹配到的表项规则为所述目标表项规则;若查找与所述关键字匹配的表项规则不唯一,则根据所匹配到的多个表项规则的指示字符所表征的优先级别,确定优先级别最高的表项规则为所述目标表项规则。
举例而言,TCAM是从CAM的基础上发展而来的,一般CAM存储的表项规则中每个bit位的状态只有两个,即“0”或者“1”,而TCAM中的表项规则中的每个bit位有三种状态,除了“0”和“1”外,还有一个“don’tcare”状态,因此称为三态。该状态时通过掩码“*”来实现的。如图5所示,图5是一种TCAM的查找表,其中,关键字Key中后三位bit位配置成掩码“*”,因此,基于该关键字Key所表征的信息实际上并不是唯一的。很明显基于这种不唯一的关键字可以匹配到图5中的表项4和表项5。而由于本发明实施例需要确定最终的目标表项而返回指示字符,如果出现多条匹配,且两条表项规则的指示字符相同,就无法确定目标表项规则。故而,为了确保精准匹配,本发明实施例中关键字Key中的bit位不会配置有掩码“*”,即所生成的关键字Key是唯一的。
(1)关于匹配唯一的情况。结合图4所示,关键字Key为10110010,基于该关键字遍历所有表项规则,其中只有表项4与关键字相同,即匹配的表项规则是唯一的,因此,确定表项4为目标表项规则。
(2)关于匹配不唯一的情况。如图6所示,图6给出了一个用于过滤报文的过滤设备,这里称之为Agate Filter,其主要的功能是用于实现TCAM过滤。为了便于描述和理解,这里将TCAM的bit信息设置为字节信息,即一个字节表示8个bit。
设用户的处理需求为期望电脑1和电脑2通信,电脑3和电脑4通信,其他信息流禁止通信。因此,基于电脑1、电脑2、电脑3和电脑4的MAC地址,所配置的TCAM的查找表如图7所示:
从图7中可以看出,TCAM的查找表配置了6条表项规则,其中表项0和表项1是匹配电脑1和电脑2通信的,所对应的指示字符设置为“1”。表项2和表项3是匹配电脑3和电脑4通信的,所对应的指示字符同样设置为“1”。表项4为匹配ARP广播类报文的,其不能隔离电脑1和电脑2以及电脑3和电脑4的通信,但是仅限制与广播报,因此,配置其对应的指示字符也设置为“1”。其他类型报文则直接过滤,因此其指示字符设置为“0”。因此,当关键字为电脑1的MAC地址+电脑2的MAC地址时,实际上会匹配到表项0和表项5。但是由于表项0预先配置的指示字符为“1”,表项5预先配置的指示字符“0”,由于字符“1”的优先级比字符“0”的优先级高,因此所最终确定的目标表项规则是规则0,即电脑1和电脑2能够正常通信。故而,对于该种处理需求的表项规则来说,当基于关键字所匹配到的表项规则不唯一时,即匹配到两条表项规则时,则通过比较两条表项规则的优先级大小,确定最终的目标表项规则。
在一种优选的实施方式中,该报文处理方法还包括:若基于所述关键字未能查找得到所述目标表项规则,则生成并向所述处理器发送缺省提示信息,使得所述处理器基于所述缺省提示信息确定并执行对所述以太网报文的处理动作。
举例而言,在该种实施方式中TCAM中的表项规则需要基于缺省原则而预先配置。首先介绍一下基于缺省规则配置表项规则的原理。在上述步骤S110中已提到,本发明实施例中的表项规则是基于对以太网报文的处理需求而预先配置,而缺省规则则是针对为了减少不期望匹配而设置的。具体的,例如TCAM中有两条表项规则,一条表项规则期望对应的处理动作为“通过”,另一条表项规则期望对应的处理工作为“过滤”,则最初的表项规则配置可如图8A所示:
在图8A中,表项0所表征的是期望所有报文类型为08-00的IP报文通过。表项1所表征的是期望目的MAC+源MAC为00-11-22-33-44-02和00-11-22-33-44-01且报文类型为08-00的IP报文过滤。但是如果两条规则同时配置在TCAM中,则会存在匹配表项1的同时也会匹配到表项0。而基于其优先级大小来确定目标表项规则,会存在与客户实际处理需求相悖的情况。因此,为了满足用户对于报文的处理需求,本发明实施例则基于缺省规则配置表项规则,即缺省没有匹配上的处理动作。例如,设缺省没有匹配到的处理动作为通过,然后对TCAM配置表项规则时仅配置处理动作为过滤的一条表项规则,进而得到如图8B所示的TCAM表项规则:
从图8B中可以看出,其仅保留一条表项规则,该表项规则对应的处理动作为过滤。也就是说,当匹配到该表项规则,即当IP报文的目的mac和源mac地址是00-11-22-33-44-02和00-11-22-33-44-01时,这种IP报文均为过滤。否则,当没有匹配到该表项规则时,则利用上述缺省规则,向处理器返回缺省提示信息,即表示没有匹配到TCAM中任何一条表项规则。处理器基于该缺省提示信息,对该报文执行转发动作。这样就可以达到只要IP报文(08-00类型)都执行为通过,除非是目的MAC和源MAC为00-11-22-33-44-02和00-11-22-33-44-01的IP报文。
因此,通过上述示例可以看出,当用户对报文的处理需求为希望对报文统一通过或者统一过滤,且仅针对特殊报文执行其他的处理动作时,则可以利用该缺省规则,将针对特殊处理要求的表项规则配置在TCAM中。这种配置方式的好处在于,由于TCAM的查找是对于所存储的表项规则全部执行匹配后才确定目标表项规则,若表项规则过多则会增加TCAM的查找负担,降低查找效率。而基于缺省原则来配置表项规则,TCAM仅配置特殊处理要求的表项规则,不仅能够减少不期望的匹配,而且减少TCAM查找负担,从而进一步提高对于报文的处理效率。
在一种优选的实施方式中,所述报文处理方法还包括:当针对所述TCAM新增表项规则时,判断所新增的表项规则与已存储的表项规则是否存在冲突,若是,则丢弃所新增的表项规则,并上报新增失败的原因。
举例而言,在对TCAM下发新增表项规则时,需要检查该新增表项规则是否与TCAM已存储的规则是否存在冲突。例如,在下发TCAM规则表项时在软件层次判断新增的表项规则是否与TCAM原始存储的表项规则存在匹配冲突。具体的,软件层次上可以预先配置有对应于TCAM查找表的影子表。当每次上电时需要从配置文件中读取TCAM表项规则然后下发给TCAM查找表,同时生成对应于TCAM查找表的影子表。其中,影子表和TCAM查找表中的表项规则是相同的。具体检查过程如图9所示:
首先,用户新增一条表项规则
Figure BDA0003971729320000111
其次,软件层次上对新增的上述表项规则进行判断,确定新增的该条表项规则与软件层次上保存的影子表中的表项规则是否存在冲突。
从图9中可以看出,硬件层次的TCAM查找表中的表项规则与软件层次上的影子表的表项规则相同。硬件层次上的TCAM查找表中存有6条表项规则,当用户需要新增一条表项规则时,此时软件层次上需要判断新增的表项规则和影子表里表项规则是否存在冲突。通过对比判断可以发现,新增的表项规则与影子表中表项0内容相同,但是对应的指示字符不同。即,新增的表项规则对应的指示字符为“0”,设对应的处理动作为丢弃,而影子表中的表项0的对应的指示字符为“1”,设处理动作则对应的是转发,显然,新增的表征规则与表项0内容相同,但是对应的处理动作时不相同的。这种情况下则表示新增的表项规则与表项0存在冲突。此时,则需要告知上层用户或者控制台表项规则新增失败并且告知新增失败的原因,例如告知与表项0存在冲突以及告知与表项0的指示字符存在冲突。
本实施方式中,通过对所要新增的表项规则预先校验,避免新增的表项规则与原始表项规则存在冲突,进而避免后续对以太网报文处理时出现混乱的情况,进一步确保报文处理的准确性和可靠性。
实施例二
本发明实施例还提供一种报文处理方法,用于包括处理器和TCAM的硬件处理结构,且所述报文处理方法应用于所述处理器,如图10所示,包括步骤S1010~步骤S1020:
步骤S1010,将基于以太网报文生成的关键字传输至所述TCAM,以使得所述TCAM查找与该关键字匹配的目标表项规则,其中所述TCAM基于对所述以太网的处理需求而被预先配置存储有至少一条表项规则,且每一表项规则包括用于表征该表项规则的优先级别及针对该表项规则对应的以太网报文的处理动作的指示字符。
步骤S1020,接收所述TCAM发送的所述目标表项规则对应的指示字符,并根据所述指示字符确定并执行对所述以太网报文的处理动作。
在一种优选的实施方式中,所述报文处理方法还包括:接收所述TCAM发送的缺省提示信息,并基于所述缺省提示信息确定并执行对所述以太网报文的处理动作,其中所述缺省提示信息是在所述TCAM基于所述关键字未能查找得到所述目标表项规则时而生成的。
本发明实施例的更多实施细节及有益效果可参考上述实施例,在此不再过多赘述。
综上,本发明提供的报文处理方法具有如下优势:
1)通过对表项规则配置指示字符,基于TCAM一次查表即可得到对于报文的处理动作,有效提升了查表速率并提高查表性能;
2)提高处理器对于以太网报文的转发效率;
3)无需占用SRAM,有效节省SRAM存储资源。
本发明实施例还提供一种报文处理装置,所述报文处理装置包括:存储器,其存储有能够在处理器上运行的程序;以及所述处理器,其被配置为执行所述程序时实现上述实施例一所述的报文处理方法或者实施例二所述的报文处理方法。
本发明实施例还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本申请上述实施例一所述的应用于所述TCAM的报文处理方法或者实施例二所述的应用于所述处理器的报文处理方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种报文处理方法,其特征在于,针对包括处理器和三态内容寻址存储器TCAM的硬件处理结构,且应用于所述TCAM,该报文处理方法包括:
响应于来自所述处理器的基于以太网报文生成的关键字,从所述TCAM中查找与该关键字匹配的目标表项规则,其中所述TCAM基于对所述以太网报文的处理需求而被预先配置存储有至少一条表项规则,且每一表项规则包括用于表征该表项规则的优先级别及针对该表项规则对应的以太网报文的处理动作的指示字符;以及
将所述目标表项规则对应的指示字符发送至所述处理器,以使得所述处理器根据所述指示字符确定并执行对所述以太网报文的处理动作。
2.根据权利要求1所述的报文处理方法,其特征在于,所述从所述TCAM中查找与该关键字匹配的目标表项规则包括:
若查找与所述关键字匹配的表项规则是唯一的,则确定所匹配到的表项规则为所述目标表项规则;
若查找与所述关键字匹配的表项规则不唯一,则根据所匹配到的多个表项规则的指示字符所表征的优先级别,确定优先级别最高的表项规则为所述目标表项规则。
3.根据权利要求1或2所述的报文处理方法,其特征在于,所述报文处理方法还包括:
若基于所述关键字未能查找得到所述目标表项规则,则生成并向所述处理器发送缺省提示信息,使得所述处理器基于所述缺省提示信息确定并执行对所述以太网报文的处理动作。
4.根据权利要求1所述的报文处理方法,其特征在于,所述指示字符包括:
用于表征转发所述以太网报文的第一字符;和/或
用于表征丢弃所述以太网报文的第二字符。
5.根据权利要求1所述的报文处理方法,其特征在于,所述报文处理方法还包括:
当针对所述TCAM新增表项规则时,判断所新增的表项规则与已存储的表项规则是否存在冲突,若是,则丢弃所新增的表项规则和/或上报新增失败的原因。
6.根据权利要求1所述的报文处理方法,其特征在于,所述表项规则包括访问控制列表ACL或者路由。
7.一种报文处理方法,其特征在于,用于包括处理器和TCAM的硬件处理结构,且所述报文处理方法应用于所述处理器,包括:
将基于以太网报文生成的关键字传输至所述TCAM,以使得所述TCAM查找与该关键字匹配的目标表项规则,其中所述TCAM基于对所述以太网的处理需求而被预先配置存储有至少一条表项规则,且每一表项规则包括用于表征该表项规则的优先级别及针对该表项规则对应的以太网报文的处理动作的指示字符;以及
接收所述TCAM发送的所述目标表项规则对应的指示字符,并根据所述指示字符确定并执行对所述以太网报文的处理动作。
8.根据权利要求7所述的报文处理方法,其特征在于,所述报文处理方法还包括:
接收所述TCAM发送的缺省提示信息,并基于所述缺省提示信息确定并执行对所述以太网报文的处理动作,其中所述缺省提示信息是在所述TCAM基于所述关键字未能查找得到所述目标表项规则时而生成的。
9.一种报文处理装置,其特征在于,所述报文处理装置包括:
存储器,其存储有能够在处理器上运行的程序;以及
所述处理器,其被配置为执行所述程序时实现上述权利要求1-6任一项应用于所述TCAM的报文处理方法或者权利要求7或8任一项应用于所述处理器的报文处理方法。
10.一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本申请上述权利要求1-6任一项所述的应用于所述TCAM的报文处理方法或者权利要求7或8所述的应用于所述处理器的报文处理方法。
CN202211522483.2A 2022-11-30 2022-11-30 一种报文处理方法、报文处理装置及存储介质 Pending CN116232894A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211522483.2A CN116232894A (zh) 2022-11-30 2022-11-30 一种报文处理方法、报文处理装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211522483.2A CN116232894A (zh) 2022-11-30 2022-11-30 一种报文处理方法、报文处理装置及存储介质

Publications (1)

Publication Number Publication Date
CN116232894A true CN116232894A (zh) 2023-06-06

Family

ID=86583141

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211522483.2A Pending CN116232894A (zh) 2022-11-30 2022-11-30 一种报文处理方法、报文处理装置及存储介质

Country Status (1)

Country Link
CN (1) CN116232894A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116962321A (zh) * 2023-09-18 2023-10-27 鹏城实验室 数据包传输方法、传输配置方法、装置、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116962321A (zh) * 2023-09-18 2023-10-27 鹏城实验室 数据包传输方法、传输配置方法、装置、设备及介质
CN116962321B (zh) * 2023-09-18 2024-01-09 鹏城实验室 数据包传输方法、传输配置方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
US10389633B2 (en) Hash-based address matching
US7571156B1 (en) Network device, storage medium and methods for incrementally updating a forwarding database
US7349382B2 (en) Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base
US9390134B2 (en) Regular expression matching method and system, and searching device
US7281085B1 (en) Method and device for virtualization of multiple data sets on same associative memory
CN108768866B (zh) 组播报文跨卡转发方法、装置、网络设备及可读存储介质
US6725216B2 (en) Partitioning search key thereby distributing table across multiple non-contiguous memory segments, memory banks or memory modules
CN111937360B (zh) 最长前缀匹配
US10635719B2 (en) Pattern matching machine with mapping table
US20160335296A1 (en) Memory System for Optimized Search Access
US6987683B2 (en) Magnitude comparator based content addressable memory for search and sorting
US9270636B2 (en) Neighbor lookup operations in a network node
WO2021135491A1 (zh) 流表的匹配方法及装置
CN106789859B (zh) 报文匹配方法及装置
US10423667B2 (en) Pattern matching machine
WO2021104393A1 (zh) 多规则流分类的实现方法、设备和存储介质
CN116232894A (zh) 一种报文处理方法、报文处理装置及存储介质
US9021098B1 (en) Allocation of interface identifiers within network device having multiple forwarding components
US10289384B2 (en) Methods, systems, and computer readable media for processing data containing type-length-value (TLV) elements
US6201755B1 (en) Method and system for storing and retrieving information in a communications node
US11768759B2 (en) Method and system for automated testing of web service APIs
US20170012874A1 (en) Software router and methods for looking up routing table and for updating routing entry of the software router
CN108664518A (zh) 一种实现查表处理的方法及装置
US11914540B2 (en) On-chip integrated circuit, data processing device, and data processing method
CN111353018B (zh) 基于深度包检测的数据处理方法、装置和网络设备

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