CN109905322A - 一种报文匹配信息预处理的方法及装置 - Google Patents
一种报文匹配信息预处理的方法及装置 Download PDFInfo
- Publication number
- CN109905322A CN109905322A CN201910257084.XA CN201910257084A CN109905322A CN 109905322 A CN109905322 A CN 109905322A CN 201910257084 A CN201910257084 A CN 201910257084A CN 109905322 A CN109905322 A CN 109905322A
- Authority
- CN
- China
- Prior art keywords
- message
- associated data
- data
- multiple groups
- selector
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明揭示了一种报文匹配信息预处理的方法及装置,所述方法包括:根据数据报文的接收或发送端口号获得端口的端口属性,使用端口属性查找TCAM,取得第一关联数据,第一关联数据为多组报文信息选择器,使用多组报文信息选择器从数据报文中对应截取多段报文信息,将多段报文信息汇总成一查找键值,并将查找键值均分为多组,每组查找键值查找一次TCAM,得到多组第二关联数据,将多组第二关联数据合并形成新的关联数据。本发明充分考虑了数字逻辑设计的开销和网络报文匹配的可编程性,利于工程化。
Description
技术领域
本发明涉及一种报文信息提取技术,尤其是涉及一种报文匹配信息预处理的方法及装置。
背景技术
数据通信设备的转发引擎,是数据网络交换的主要部件。转发引擎内部需要有多种信息表,包括地址表(转发表)、策略表等。通过查询信息表,可以得到针对数据流的转发目的地、策略等信息。
对于包交换网络,当数据报文通过时,转发引擎会抽取数据报文中的数据报文头。报文头含有了转发地址等信息。转发引擎会使用这些信息产生Key(键值),用于索引信息表。如果信息表中有符合这个Key的条目,则取出其AD(关联数据)。关联数据中存储了这个数据报文应当进行的转发或策略行为。通过对报文应用这些预先设置的行为,转发引擎实现了对数据报文的交换(转发)或监管(策略)。
随着网络业务的发展,特别是软件定义网络(Software-Defined Networking,SDN)这种新型网络架构的诞生与部署,数据网络交换的信息表不再受限于固定解析得到的,如IP地址、MPLS(多协议标签交换,Multi-Protocol Label Switching)标枪等信息。甚至,连转发的报文本身都开始更快的进行修改、演绎与迭代。
同时,数据中心的升级换代,使得整体网络流量带宽越来越高,带宽越来越大。在这个条件下,使用专用集成电路技术设计的报文交换处理器是首选。但是,专用集成电路设计有着受限的数字逻辑级数、受限的内嵌静态随机存取存储器(Embedded Static Random-Access Memory,eSRAM)、受限的内嵌三态内容寻址存储器(Embedded Ternary ContentAddressable Memory,TCAM)多项设计约束。因而,ASIC实现的网络处理器一般都是固定功能的。
然而,SDN的兴起也使得ASIC的设计受到了极大的挑战。为了实现灵活可变的报文信息提取,一般不会限制报文信息是报文的哪些位置、取多长。虽然这样带来了报文信息提取的完全的灵活,但是从数字逻辑设计上讲,是全连接(Full mesh)的,会造成芯片后端布局布线的不可行问题。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种报文匹配信息预处理的方法及装置。
为实现上述目的,本发明提出如下技术方案:一种报文匹配信息预处理的方法,包括:
S1,根据数据报文的接收或发送端口号获得所述端口的端口属性;
S2,使用所述端口属性查找TCAM,取得第一关联数据,所述第一关联数据为多组报文信息选择器;
S3,使用所述多组报文信息选择器从数据报文中对应截取多段报文信息;
S4,将所述多段报文信息汇总成一查找键值,并将所述查找键值均分为多组,每组查找键值查找一次TCAM,得到多组第二关联数据,将多组所述第二关联数据合并形成新的关联数据,所述新的关联数据也为多组报文信息选择器。
优选地,S2中,使用所述端口属性在TCAM中通过一次或并行多次查找,取得所述第一关联数据。
优选地,所述报文信息选择器包括32位选择器、16位选择器、8位选择器和4位选择器。
优选地,所述32位选择器为8组8比特,所述16位选择器为10组9比特,所述8位选择器为24组10比特,所述4位选择器为8组11比特。
优选地,S3中,将数据报文的前n个字节对应映射到一组数据总线的前n个字节上。
优选地,所述n为576字节,所述数据总线的位宽为768字节。
优选地,所述S4还包括:将新的关联数据通过配置的方式写回数据总线。
优选地,所述新的关联数据可以继续作为下一次S3中处理所需的关联数据。
本发明还揭示了另外一种技术方案:一种报文匹配信息预处理的装置,包括:
第一查找单元,用于根据数据报文的接收或发送端口号获得所述端口的端口属性,使用所述端口属性查找TCAM,取得第一关联数据,所述第一关联数据为多组报文信息选择器;
查找操作单元,用于使用第一查找单元得到的所述多组报文信息,选择器从数据报文中对应截取多段报文信息,将所述多段报文信息汇总成一查找键值,并将所述查找键值均分为多组,每组查找键值查找一次TCAM,得到多组第二关联数据,将多组所述第二关联数据合并形成新的关联数据,所述新的关联数据也为多组报文信息选择器。
优选地,多个所述查找操作单元可串联。
本发明的有益效果是:在报文转发芯片自身硬件资源的稀缺条件下,本发明使用报文信息选择器选择固定的几个位置抓取报文信息,用于查找键值的信息组织,充分考虑了数字逻辑设计的开销和网络报文匹配的可编程性,利于工程化。
附图说明
图1是本发明方法的原理示意图;
图2是本发明方法的流程示意图;
图3是本发明装置的结构框图示意图;
图4是本发明装置另一实施例的结构框图示意图。
具体实施方式
下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
在报文转发芯片自身硬件资源的稀缺条件下,直接通过匹配报文内容,给出下一次匹配的偏移量和长度(Offset&Length),对硬件设计来讲,是不可行的。需要兼顾硬件设计开销才可以工程化。
本发明所揭示的一种报文匹配信息预处理的方法及装置,使用报文信息选择器选择固定的几个位置抓取报文信息,用于查找键值的信息组织,利于工程化。
结合图1和图2所示,本发明实施例所揭示的一种报文匹配信息预处理的方法,包括:
S1,根据数据报文的接收或发送端口号获得端口的端口属性。
具体地,数据报文从以太网端口上收到的时候,根据接收或发送端口号获取该端口的属性。该端口属性定义为MatchId0,数据位宽为64比特,用于第一阶段(即下述步骤S2)的匹配处理。
S2,使用端口属性查找TCAM,取得第一关联数据,第一关联数据为多组报文信息选择器。
具体地,使用上述端口属性MatchId0在深度为n的(TCAM Ternary ContentAddressable Memory,三进制三态内容寻址存储器)中,通过一次或者并行多次查找,取得第一关联数据,该第一关联数据用以进行第二阶段(即下述步骤S3)的报文查找处理。
第一关联数据为多组报文信息选择器,本实施例中,报文信息选择器包括32位选择器、16位选择器、8位选择器和4位选择器。具体为8组8比特的32位选择器(MUX32_SEL),10组9比特的16位选择器(MUX16_SEL),24组10比特的8位选择器(MUX8_SEL),8组11比特的4位选择器(MUX4_SEL)。
S3,使用多组报文信息选择器从数据报文中对应截取多段报文信息。
具体地,首先将收到的报文前n个字节对应映射到一组数据总线(BUS)的前n个字节上,如图1的①所示,本实施例中,将收到的报文前288*2=576字节,映射在一组位宽为384*2*8=6144比特(即768字节)的前288*2*8=4608比特(即576字节)的BUS上,为了描述方便,定义这组BUS为数据包PktVec。
上述8组8比特的MUX32_SEL,表达的是8组MUX(数据选择器,multiplexer)的配置。每一组32位选择器MUX32可以在上述PktVec中,截取32比特的数据,截取的起始位为PktVec的0比特、32比特、64比特……,相当于:从比特0开始,每32比特可以为一个起点。通过截取数据,可以得到MUX32{0..7}(即MUX320,MUX321,…,MUX327)总共8组输出,每组输出数据位宽是32比特。
10组9比特的MUX16_SEL,表达的是10组MUX的配置。每一组MUX16可以在上述PktVec中,截取16比特的数据,截取的起始位为PktVec的0比特、16比特、32比特……相当于:从比特0开始,每16比特可以为一个起点。通过截取数据,可以得到MUX16{0..9}总共10组输出。
24组10比特的MUX8_SEL,表达的是24组MUX的配置。每一组MUX8可以在上述PktVec中,截取8比特的数据,截取的起始位为PktVec的0比特、8比特、16比特……相当于:从比特0开始,每8比特可以为一个起点。通过截取数据,可以得到MUX8{0..23}总共24组输出。
8组11比特的MUX4_SEL,表达的是8组MUX的配置。每一组MUX4可以在上述PktVec中,截取4比特的数据,截取的起始位为PktVec的0比特、4比特、8比特……相当于:从比特0开始,每8比特可以为一个起点。通过截取数据,可以得到MUX4{0..7}总共8组输出。
S4,将多段报文信息汇总成一查找键值,并将查找键值均分为多组,每组查找键值查找一次TCAM,得到多组第二关联数据,将多组第二关联数据合并形成新的关联数据,所述新的关联数据也为多组报文信息选择器。
具体地,将上述S3中,多组32位选择器、16位选择器、8位选择器和4位选择器产生的输出,如图1中所示的⑤。汇总成640(32*8+16*10+8*24+4*8)比特的查找键值(Key)。
并将上述查找键值均分为多组,本实施例中,拆分为4组,每组查找键值为160比特,根据每组查找键值进行一次TCAM查找,如图1中所示的③,4次TCAM查找后,对应查找得到4个第二关联数据,如图1中所示的④,将这4个第二关联数据做合并操作,合并后得到最终的新的关联数据,这个新的关联数据可以通过配置的方式写回PktVec这组BUS,具体操作方式本发明不作赘述。
这个关联数据可以用来指示报文的处理方式,同时也可以作为指示下一次处理(即上述步骤S3)所需要的操作数据,本实施例中,与第一关联数据类似,这个关联数据为:
8组8比特的32位选择器,10组9比特的16位选择器,24组10比特的8位选择器,8组11比特的4位选择器。各个选择器中的配置与第一关联数据中的选择器配置不一样。
如图3所示,本发明实施例所揭示的一种报文匹配信息预处理的装置,包括:
第一查找单元,用于根据数据报文的接收或发送端口号获得所述端口的端口属性,使用端口属性查找TCAM,取得第一关联数据,第一关联数据为多组报文信息选择器;
查找操作单元,用于使用第一查找单元得到的多组报文信息,选择器从数据报文中对应截取多段报文信息,将多段报文信息汇总成一查找键值,并将查找键值均分为多组,每组查找键值查找一次TCAM,得到多组第二关联数据,将多组所述第二关联数据合并形成新的关联数据,新的关联数据也为多组报文信息选择器。
这里第一查找单元和查找操作单元的具体原理可参照上述方法中S1~S4的描述,这里不再赘述。
优选地,结合图4所示,多个查找操作单元可串联,即上一个查找操作单元输出的关联数据可以作为下一个查找操作单元查找的输入数据,完成更加复杂的应用。
本发明使用固定的几个位置抓取BUS上的信息用于查找Key的信息组织,以上述实施例为例,最多只需要log(2,1536)=11(向上取整)的逻辑级数。选择器MUX的总数量为8*32=256个192(即6144/32)选一,10*16=160个384(即6144/16)选一,24*8=192个768(即6144/8)选一,8*4=32个1536(即6144/4)选一。也就是说,最长路径为1536选一,需要11级逻辑级数。
在这个基础上,本发明充分考虑了数字逻辑设计开销和网络报文匹配可编程性,利于工程化。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
Claims (10)
1.一种报文匹配信息预处理的方法,其特征在于,包括:
S1,根据数据报文的接收或发送端口号获得所述端口的端口属性;
S2,使用所述端口属性查找TCAM,取得第一关联数据,所述第一关联数据为多组报文信息选择器;
S3,使用所述多组报文信息选择器从数据报文中对应截取多段报文信息;
S4,将所述多段报文信息汇总成一查找键值,并将所述查找键值均分为多组,每组查找键值查找一次TCAM,得到多组第二关联数据,将多组所述第二关联数据合并形成新的关联数据,所述新的关联数据也为多组报文信息选择器。
2.根据权利要求1所述的报文匹配信息预处理的方法,其特征在于,S2中,使用所述端口属性在TCAM中通过一次或并行多次查找,取得所述第一关联数据。
3.根据权利要求1所述的报文匹配信息预处理的方法,其特征在于,所述报文信息选择器包括32位选择器、16位选择器、8位选择器和4位选择器。
4.根据权利要求3所述的报文匹配信息预处理的方法,其特征在于,所述32位选择器为8组8比特,所述16位选择器为10组9比特,所述8位选择器为24组10比特,所述4位选择器为8组11比特。
5.根据权利要求1所述的报文匹配信息预处理的方法,其特征在于,S3中,将数据报文的前n个字节对应映射到一组数据总线的前n个字节上,n为大于1的自然数。
6.根据权利要求5所述的报文匹配信息预处理的方法,其特征在于,所述n为576字节,所述数据总线的位宽为768字节。
7.根据权利要求5所述的报文匹配信息预处理的方法,其特征在于,所述S4还包括:将新的关联数据通过配置的方式写回数据总线。
8.根据权利要求1所述的报文匹配信息预处理的方法,其特征在于,所述新的关联数据可以继续作为下一次S3中处理所需的关联数据。
9.一种报文匹配信息预处理的装置,其特征在于,包括:
第一查找单元,用于根据数据报文的接收或发送端口号获得所述端口的端口属性,使用所述端口属性查找TCAM,取得第一关联数据,所述第一关联数据为多组报文信息选择器;
查找操作单元,用于使用第一查找单元得到的所述多组报文信息,选择器从数据报文中对应截取多段报文信息,将所述多段报文信息汇总成一查找键值,并将所述查找键值均分为多组,每组查找键值查找一次TCAM,得到多组第二关联数据,将多组所述第二关联数据合并形成新的关联数据,所述新的关联数据也为多组报文信息选择器。
10.根据权利要求9所述的报文匹配信息预处理的方法,其特征在于,多个所述查找操作单元可串联。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910257084.XA CN109905322B (zh) | 2019-04-01 | 2019-04-01 | 一种报文匹配信息预处理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910257084.XA CN109905322B (zh) | 2019-04-01 | 2019-04-01 | 一种报文匹配信息预处理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109905322A true CN109905322A (zh) | 2019-06-18 |
CN109905322B CN109905322B (zh) | 2021-05-07 |
Family
ID=66955163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910257084.XA Active CN109905322B (zh) | 2019-04-01 | 2019-04-01 | 一种报文匹配信息预处理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109905322B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111885621A (zh) * | 2020-07-10 | 2020-11-03 | 深圳创维数字技术有限公司 | 无线报文抓取方法、系统、终端和存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242362A (zh) * | 2008-03-07 | 2008-08-13 | 华为技术有限公司 | 查找键值生成装置及方法 |
US20080263269A1 (en) * | 2007-04-18 | 2008-10-23 | Aviran Kadosh | Key selection device and process for content-addressable memory |
US7613755B1 (en) * | 2005-04-01 | 2009-11-03 | Netlogic Microsystems, Inc. | Signature searching system |
CN101692209A (zh) * | 2009-11-09 | 2010-04-07 | 盛科网络(苏州)有限公司 | 一种采用fpga内嵌sram仿真tcam的电路设计方法及装置 |
CN103473237A (zh) * | 2012-06-08 | 2013-12-25 | 苏州雄立科技有限公司 | 键值分组方法 |
CN103812774A (zh) * | 2012-11-09 | 2014-05-21 | 华为技术有限公司 | 基于tcam的策略配置方法、报文处理方法及相应装置 |
CN105376159A (zh) * | 2014-08-25 | 2016-03-02 | 深圳市中兴微电子技术有限公司 | 报文处理转发装置及方法 |
US9406381B2 (en) * | 2010-08-01 | 2016-08-02 | Gsi Technology Israel Ltd. | TCAM search unit including a distributor TCAM and DRAM and a method for dividing a database of TCAM rules |
CN107342948A (zh) * | 2017-06-09 | 2017-11-10 | 烽火通信科技股份有限公司 | 一种基于tcam的数据流识别处理装置、系统和方法 |
CN109194665A (zh) * | 2018-09-17 | 2019-01-11 | 盛科网络(苏州)有限公司 | 一种报文查找键值的生成方法及装置 |
-
2019
- 2019-04-01 CN CN201910257084.XA patent/CN109905322B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613755B1 (en) * | 2005-04-01 | 2009-11-03 | Netlogic Microsystems, Inc. | Signature searching system |
US20080263269A1 (en) * | 2007-04-18 | 2008-10-23 | Aviran Kadosh | Key selection device and process for content-addressable memory |
CN101242362A (zh) * | 2008-03-07 | 2008-08-13 | 华为技术有限公司 | 查找键值生成装置及方法 |
CN101692209A (zh) * | 2009-11-09 | 2010-04-07 | 盛科网络(苏州)有限公司 | 一种采用fpga内嵌sram仿真tcam的电路设计方法及装置 |
US9406381B2 (en) * | 2010-08-01 | 2016-08-02 | Gsi Technology Israel Ltd. | TCAM search unit including a distributor TCAM and DRAM and a method for dividing a database of TCAM rules |
CN103473237A (zh) * | 2012-06-08 | 2013-12-25 | 苏州雄立科技有限公司 | 键值分组方法 |
CN103812774A (zh) * | 2012-11-09 | 2014-05-21 | 华为技术有限公司 | 基于tcam的策略配置方法、报文处理方法及相应装置 |
CN105376159A (zh) * | 2014-08-25 | 2016-03-02 | 深圳市中兴微电子技术有限公司 | 报文处理转发装置及方法 |
CN107342948A (zh) * | 2017-06-09 | 2017-11-10 | 烽火通信科技股份有限公司 | 一种基于tcam的数据流识别处理装置、系统和方法 |
CN109194665A (zh) * | 2018-09-17 | 2019-01-11 | 盛科网络(苏州)有限公司 | 一种报文查找键值的生成方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111885621A (zh) * | 2020-07-10 | 2020-11-03 | 深圳创维数字技术有限公司 | 无线报文抓取方法、系统、终端和存储介质 |
CN111885621B (zh) * | 2020-07-10 | 2023-06-06 | 深圳创维数字技术有限公司 | 无线报文抓取方法、系统、终端和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109905322B (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Van Lunteren et al. | Fast and scalable packet classification | |
US5920886A (en) | Accelerated hierarchical address filtering and translation using binary and ternary CAMs | |
CN104881422B (zh) | 用于生成查找和进行判定的引擎、方法和软件定义网络 | |
CN101160856B (zh) | 一种网络处理器 | |
CN108875064B (zh) | 基于FPGA的OpenFlow多维数据匹配查找方法 | |
RU2608874C2 (ru) | Способ и устройство для модификации и переадресации сообщения в сети передачи данных | |
Huang et al. | Green datapath for TCAM-based software-defined networks | |
US7706375B2 (en) | System and method of fast adaptive TCAM sorting for IP longest prefix matching | |
CN101242362B (zh) | 查找键值生成装置及方法 | |
CN104580027A (zh) | 一种OpenFlow报文转发方法及设备 | |
CN105591914B (zh) | 一种openflow流表的查表方法和装置 | |
JP3881663B2 (ja) | フィールドレベルツリーを用いたパケット分類装置及び方法 | |
CN102427428A (zh) | 基于多域最长匹配的流识别方法及设备 | |
CN111277612B (zh) | 一种网络报文处理策略生成方法、系统及介质 | |
CN112667526B (zh) | 一种访问控制列表电路实现方法及其电路 | |
CN107276916B (zh) | 基于协议无感知转发技术的交换机流表管理方法 | |
CN108647043A (zh) | 一种命令行输入的实现方法及系统 | |
CN106533943A (zh) | 基于网络交换芯片的微码和流表的实现方法 | |
US6970971B1 (en) | Method and apparatus for mapping prefixes and values of a hierarchical space to other representations | |
CN111988231A (zh) | 一种掩码五元组规则匹配的方法及装置 | |
US11140078B1 (en) | Multi-stage prefix matching enhancements | |
CN110505322A (zh) | 一种ip地址段查找方法及装置 | |
CN109905322A (zh) | 一种报文匹配信息预处理的方法及装置 | |
CN102377581A (zh) | 一种多域流分类流水线的实现方法 | |
US7751422B2 (en) | Group tag caching of memory contents |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 215101 unit 13 / 16, 4th floor, building B, No. 5, Xinghan street, Suzhou Industrial Park, Jiangsu Province Patentee after: Suzhou Shengke Communication Co.,Ltd. Address before: Unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, 215000 Jiangsu Province Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |