CN113806403A - 一种在智能网卡/dpu内降低查找匹配逻辑资源的方法 - Google Patents
一种在智能网卡/dpu内降低查找匹配逻辑资源的方法 Download PDFInfo
- Publication number
- CN113806403A CN113806403A CN202111107845.7A CN202111107845A CN113806403A CN 113806403 A CN113806403 A CN 113806403A CN 202111107845 A CN202111107845 A CN 202111107845A CN 113806403 A CN113806403 A CN 113806403A
- Authority
- CN
- China
- Prior art keywords
- matching
- flow table
- lpm
- module
- dpu
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种在智能网卡/DPU内降低查找匹配逻辑资源的方法,在智能网卡/DPU的P4数据平面结构中增加LPM流表解析模块,LPM流表拆分及LPM流表映射三个模块;另外,在查找匹配模块中,增加LPM匹配模块,其中包括多级精确匹配SRAM模块及掩码匹配TCAM模块,每个SRAM模块及TCAM模块按照1字节的方式存储,最多可以级联8级以便LPM流表的映射,降低了对LPM匹配的逻辑资源占用,从而降低芯片或者所需选用FPGA的成本。
Description
技术领域
本发明涉及智能网卡/DPU技术领域,特别涉及一种在智能网卡/DPU内降低查找匹配逻辑资源的方法。
背景技术
在传统网络中,网络设备对于用户是黑盒,数据平面和控制平面封闭在黑盒内,不方便网络管理和维护;软件定义网络的出现把数据平面和控制平面分开,控制平面得以统一,然而还是存在数据平面固化,需要跟软件定义网络协议的升级而升级的问题;通过P4这种网络语言,可以实现可编程数据平面,并且可以更灵活的进行数据平面编程化。
智能网卡/DPU旨在为CPU卸载网络及存储的处理资源,同时可以支持更灵活的数据平面更改。因此在智能网卡/DPU中,引入P4可编程数据平面可以支持用户更灵活的配置。基于P4的数据平面构架如图1所示,通过P4编程实现的网络报文解析,查找匹配及动作增强了用户对网络报文的操作可行性。
基于P4语言可编程数据平面的定义中,匹配分为exact(精确)匹配,ternary (三态)掩码匹配,以及LPM(长前缀)匹配。在现有已支持P4数据平面的FPGA实现中,如果表项中需要对以太网报文进行exact匹配,会对所需要匹配的关键字进行哈希运算,然后通过SRAM对所计算出的key(关键字)进行精确匹配,在表中找到匹配项所对应的动作;如果表项中需要对以太网报文进行ternary匹配,会对所需匹配的关键字及其掩码映射到TCAM(三态存储)中,从而找到匹配项对应的动作;如果表项中需要对以太网报文进行LPM匹配,会对所需要的报文使用TCAM(三态存储)的方式,LPM是指对一段数据从起始开始的最长字段匹配,在网络中,通常IP地址(IPv4或者IPv6)会采用LPM匹配。在基于P4的智能网卡/DPU中通常使用TCAM来实现匹配,以掩码长度最长的前缀为最终匹配结果。TCAM允许对关键字中的一个或多个位使用第三个匹配状态X,代表“不关心”。 比如一个2进制的TCAM可能有“1X00X”作为它的一个存储词,TCAM匹配四个搜索词中的任意一个——“10000”、“11000”、“10001”或“11001”均为匹配上。
在FPGA的实现中TCAM资源是SRAM精确匹配的2倍以上,对LPM匹配使用TCAM存储会浪费FPGA中的资源,无法实现更多层级及更多流表数的拓展。
基于以上背景信息所描述的基于P4的智能网卡/DPU通过P4编程实现的网络报文解析,查找匹配及动作为网络报文可编程数据平面处理的核心。查找匹配模块是P4编程实现的数据平面结构中占用FPGA逻辑资源最多的部分,其中多级流水线线性结构,更加增加了逻辑资源的占用。
发明内容
本发明的目的在于提供一种在智能网卡/DPU内降低查找匹配逻辑资源的方法,以克服现有技术中的不足。
为实现上述目的,本发明提供如下技术方案:
本申请公开了一种在智能网卡/DPU内降低查找匹配逻辑资源的方法,包括如下步骤:
S1、对输入的P4文件进行P4解析,得到不同类型的流表;所述流表包括精确匹配流表、掩码匹配流表和LPM流表;
S2、对精确匹配流表,查找匹配模块中按照对应SRAM的映射方式映射到智能网卡/DPU内;对于掩码匹配流表,查找匹配模块中按照对应TCAM的映射方式映射到智能网卡/DPU内;若存在LPM流表,在智能网卡/DPU内,通过LPM流表解析模块、LPM流表拆分模块和LPM流表映射模块处理后转为多级查找匹配方式;
S3、如有网络报文进入智能网卡/DPU内,对报文进行解析,得到需要进行LPM匹配的字段A;
S4、对字段A的第一字节进行精确匹配,判断是否有匹配项;若有匹配项,则进入步骤S5;若没有匹配项,则进入步骤S7;
S5、判断字节A是否是所要匹配的字段的最后一个字节;若不是,则进入步骤S6;若是,则结束匹配,进入步骤S8;
S6、将字段A按照字节的方式左移1个字节,并重新进入步骤S6;
S7、将字段A的剩余字段进行掩码匹配;
S8、根据结果找到对应的动作,并执行动作;
S9、报文进行缓存;
S10、报文输出;
作为优选,所述步骤S1还包括如下操作:P4驱动对不同流表类型进行标记。
作为优选,所述步骤S2中LPM流表解析模块、LPM流表拆分模块和LPM流表映射模块处理流程如下:
S21、LPM流表解析模块按照流表类型对应的标记解析出LPM流表;
S22、LPM流表拆分模块将LPM流表拆分为精确匹配和掩码匹配两种形式;
S23、LPM流表映射模块,将精确匹配和掩码匹配按照对应的方式进行映射。
本发明的有益效果:
1、在智能网卡/DPU的P4数据平面结构中增加LPM流表解析模块,LPM流表拆分及LPM流表映射三个模块;另外,在查找匹配模块中,增加LPM匹配模块,其中包括多级精确匹配SRAM模块及掩码匹配TCAM模块,每个SRAM模块及TCAM模块按照1字节的方式存储,最多可以级联8级以便LPM流表的映射,降低了对LPM匹配的逻辑资源占用,从而降低芯片或者所需选用FPGA的成本;
2、通过在基于Xilinx Ultrascale+的FPGA中实现 32bit位宽(IPv4为例),1024条深度的TCAM需要占用128Kb RAM (逻辑存储),如果通过分级的方式,假设32bit都为精确匹配,则占用32Kb RAMs,假设32bit中最小8bit为精确匹配,则TCAM占用96Kb RAMs,SRAM占用24Kb RAMs,共占用120Kb RAMS。 因此可以至少降低(128Kb-96Kb)/128Kb=25%的逻辑资源,最多降低(128Kb-32Kb)/128Kb=75%逻辑资源。
本发明的特征及优点将通过实施例结合附图进行详细说明。
附图说明
图1是现有技术中基于P4的数据平面构架;
图2是本发明采用的基于智能网卡/DPU的P4数据平面构架;
图3是本发明一种在智能网卡/DPU内降低查找匹配逻辑资源的方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面通过附图及实施例,对本发明进行进一步详细说明。但是应该理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
参阅图2,对于P4所匹配的LPM特点分析,为每1个字节为1段,也就是在同一段中,要么已知,要么未知,不存在同一段中有基于比特的掩码的情况,因此根据这一特点,可以通过对所要匹配的报文的对应所需匹配字段与LPM查找表进行分段精确匹配的方式,需要在智能网卡/DPU的P4数据平面结构中增加LPM流表解析模块,LPM流表拆分及LPM流表映射三个模块,如图2红色标识所示。P4驱动在软件层面对不同的流表类型做区分,比如精确匹配为二进制01,掩码匹配为二进制10,LPM匹配为二进制11。LPM流表解析模块负责解析驱动下发的流表,按照流表类型对应的标志位解析出LPM类型的流表;根据LPM流表长前缀的对应位置,LPM流表拆分模块负责拆分LPM流表为精确匹配(长前缀确定项)及掩码匹配(长前缀后不确定项)两种形式,LPM流表映射模块负责分段匹配的规则映射。另外,在查找匹配模块中,需增加LPM匹配模块,其中包括多级精确匹配SRAM模块及掩码匹配TCAM模块,每个SRAM模块及TCAM模块按照1字节的方式存储,最多可以级联8级以便LPM流表的映射。
参阅图3,根据此发明一种在智能网卡/DPU内降低查找匹配逻辑资源的方法具体实现及处理流程如下:
1、对输入的P4文件进行P4解析。例如:有需要对输入的报文进行目的MAC地址做精确匹配的流表,有对目的IP地址(192.168.0.0/16)做LPM匹配的流表。
2、P4解析后,在驱动层,对于做精确匹配的流表标记为二进制01,对于掩码匹配的标记为二进制10,对于LPM匹配的流表标记为二进制11。此例中目的MAC地址的流表为01,目的IP地址的流表为11。对于非LPM匹配的流表,按照精确匹配对应SRAM,掩码匹配对应TCAM的映射方式映射到智能网卡/DPU内。对于有 LPM查找表,在智能网卡/DPU内,按照流表类型对应的标志位解析出LPM类型的流表;按此次例子中目的IP地址为192.168.0.0/16根据LPM流表长前缀的对应位置16位,LPM流表拆分模块负责拆分LPM流表为精确匹配(192.168)及掩码匹配(0.0)两种形式,其中192.168映射为SRAM,0.0映射为TCAM。
3、如果有网络报文进入智能网卡/DPU内,根据P4文件所生成的数据平面对报文进行解析,解析出所需进行LPM匹配的字段A。假设进入的网络报文的目的IP为192.100.0.1,则需要做LPM匹配的字段A为192.100.0.1
4、用A的第一字节进行精确匹配,需要确定是否有匹配项,如果是,则进入步骤5,如果不是,进入步骤7.在此例中,用输入报文的关键字A(192.100.0.1,十六进制为C0.64.0.1)的第一字节C0与匹配项192.168(C0.A8)中的第一字节进行匹配,匹配成功,进入步骤5
5、需要确定A是不是所要匹配的字段的最后一个字节,如果不是,则进入步骤6,如果是,则结束匹配查找,进入步骤8。此例中,C0不是所有匹配的字段的最后一个字节,进入步骤6,
6、把字段A按照字节的方式,左移1个字节,并进入下一级精确匹配,并重新进行步骤4。此例中,A进行左移并得到64.0.1,并进入下一级精确匹配,返回步骤4,因为左移后的第一个字节64与匹配项A8不相符,因此进入步骤7。
7、把A剩余的字段带入TCAM查找表,进行掩码匹配。在此例中,把A剩余的0.1字段带入TCAM查找表,进行掩码匹配。
8、根据查找表结果找到对应的动作,并执行动作。
9、报文进入缓存。
10、报文输出。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种在智能网卡/DPU内降低查找匹配逻辑资源的方法,其特征在于,包括如下步骤:
S1、对输入的P4文件进行P4解析,得到不同类型的流表;所述流表包括精确匹配流表、掩码匹配流表和LPM流表;
S2、对精确匹配流表,查找匹配模块中按照对应SRAM的映射方式映射到智能网卡/DPU内;对于掩码匹配流表,查找匹配模块中按照对应TCAM的映射方式映射到智能网卡/DPU内;若存在LPM流表,在智能网卡/DPU内,通过LPM流表解析模块、LPM流表拆分模块和LPM流表映射模块处理后转为多级查找匹配方式;
S3、如有网络报文进入智能网卡/DPU内,对报文进行解析,得到需要进行LPM匹配的字段A;
S4、对字段A的第一字节进行精确匹配,判断是否有匹配项;若有匹配项,则进入步骤S5;若没有匹配项,则进入步骤S7;
S5、判断字节A是否是所要匹配的字段的最后一个字节;若不是,则进入步骤S6;若是,则结束匹配,进入步骤S8;
S6、将字段A按照字节的方式左移1个字节,并重新进入步骤S6;
S7、将字段A的剩余字段进行掩码匹配;
S8、根据结果找到对应的动作,并执行动作;
S9、报文进行缓存;
S10、报文输出。
2.如权利要求1所述的一种在智能网卡/DPU内降低查找匹配逻辑资源的方法,其特征在于,所述步骤S1还包括如下操作:P4驱动对不同流表类型进行标记。
3.如权利要求2所述的一种在智能网卡/DPU内降低查找匹配逻辑资源的方法,其特征在于,所述步骤S2中LPM流表解析模块、LPM流表拆分模块和LPM流表映射模块处理流程如下:
S21、LPM流表解析模块按照流表类型对应的标记解析出LPM流表;
S22、LPM流表拆分模块将LPM流表拆分为精确匹配和掩码匹配两种形式;
S23、LPM流表映射模块,将精确匹配和掩码匹配按照对应的方式进行映射。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111107845.7A CN113806403B (zh) | 2021-09-22 | 2021-09-22 | 一种在智能网卡/dpu内降低查找匹配逻辑资源的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111107845.7A CN113806403B (zh) | 2021-09-22 | 2021-09-22 | 一种在智能网卡/dpu内降低查找匹配逻辑资源的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113806403A true CN113806403A (zh) | 2021-12-17 |
CN113806403B CN113806403B (zh) | 2022-03-15 |
Family
ID=78939995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111107845.7A Active CN113806403B (zh) | 2021-09-22 | 2021-09-22 | 一种在智能网卡/dpu内降低查找匹配逻辑资源的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113806403B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114885045A (zh) * | 2022-07-07 | 2022-08-09 | 浙江锐文科技有限公司 | 一种在高速智能网卡/dpu内节约dma通道资源方法和装置 |
CN115623535A (zh) * | 2022-11-08 | 2023-01-17 | 浙江锐文科技有限公司 | 一种在智能网卡/dpu内实现基于p4部署5gupf的方法 |
CN117014235A (zh) * | 2023-10-07 | 2023-11-07 | 之江实验室 | 一种基于fpga灵活后端的智能网卡调度方法 |
CN117453733A (zh) * | 2023-12-26 | 2024-01-26 | 山东华翼微电子技术股份有限公司 | 一种基于fpga的tcam快速查询系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692209A (zh) * | 2009-11-09 | 2010-04-07 | 盛科网络(苏州)有限公司 | 一种采用fpga内嵌sram仿真tcam的电路设计方法及装置 |
CN105814846A (zh) * | 2013-12-17 | 2016-07-27 | 华为技术有限公司 | 网络地址查询的前缀树阶段平衡 |
US20190098475A1 (en) * | 2017-09-26 | 2019-03-28 | Apple Inc. | EMBEDDED UNIVERSAL INTEGRATED CIRCUIT CARD (eUICC) COMMAND PROCESSING |
CN111966284A (zh) * | 2020-07-16 | 2020-11-20 | 长沙理工大学 | 一种OpenFlow大规模流表弹性节能与高效查找架构及方法 |
CN112769703A (zh) * | 2021-02-09 | 2021-05-07 | 芯河半导体科技(无锡)有限公司 | 一种高效的基于sram的tcam实现方法 |
CN112818185A (zh) * | 2021-04-20 | 2021-05-18 | 芯启源(南京)半导体科技有限公司 | 一种基于sram的最长前缀匹配硬件系统查找的方法 |
-
2021
- 2021-09-22 CN CN202111107845.7A patent/CN113806403B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692209A (zh) * | 2009-11-09 | 2010-04-07 | 盛科网络(苏州)有限公司 | 一种采用fpga内嵌sram仿真tcam的电路设计方法及装置 |
CN105814846A (zh) * | 2013-12-17 | 2016-07-27 | 华为技术有限公司 | 网络地址查询的前缀树阶段平衡 |
US20190098475A1 (en) * | 2017-09-26 | 2019-03-28 | Apple Inc. | EMBEDDED UNIVERSAL INTEGRATED CIRCUIT CARD (eUICC) COMMAND PROCESSING |
CN111966284A (zh) * | 2020-07-16 | 2020-11-20 | 长沙理工大学 | 一种OpenFlow大规模流表弹性节能与高效查找架构及方法 |
CN112769703A (zh) * | 2021-02-09 | 2021-05-07 | 芯河半导体科技(无锡)有限公司 | 一种高效的基于sram的tcam实现方法 |
CN112818185A (zh) * | 2021-04-20 | 2021-05-18 | 芯启源(南京)半导体科技有限公司 | 一种基于sram的最长前缀匹配硬件系统查找的方法 |
Non-Patent Citations (1)
Title |
---|
王可可等: "NetFPGA应用技术研究", 《山东科学》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114885045A (zh) * | 2022-07-07 | 2022-08-09 | 浙江锐文科技有限公司 | 一种在高速智能网卡/dpu内节约dma通道资源方法和装置 |
CN115623535A (zh) * | 2022-11-08 | 2023-01-17 | 浙江锐文科技有限公司 | 一种在智能网卡/dpu内实现基于p4部署5gupf的方法 |
CN117014235A (zh) * | 2023-10-07 | 2023-11-07 | 之江实验室 | 一种基于fpga灵活后端的智能网卡调度方法 |
CN117014235B (zh) * | 2023-10-07 | 2024-01-09 | 之江实验室 | 一种基于fpga灵活后端的智能网卡调度方法 |
CN117453733A (zh) * | 2023-12-26 | 2024-01-26 | 山东华翼微电子技术股份有限公司 | 一种基于fpga的tcam快速查询系统 |
CN117453733B (zh) * | 2023-12-26 | 2024-04-09 | 山东华翼微电子技术股份有限公司 | 一种基于fpga的tcam快速查询系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113806403B (zh) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113806403B (zh) | 一种在智能网卡/dpu内降低查找匹配逻辑资源的方法 | |
JP4452183B2 (ja) | プログラマブル状態マシンのデータ構造を作成して入力単語連鎖を構文解析する方法、プログラマブル状態マシンのデータ構造を使用して入力単語連鎖に対応する結果として得られた値を検索する方法、ワイヤスピードのディープ・パケット処理を行う方法、ディープ・パケット処理のための装置、チップ埋め込み装置、およびプログラミング・コード命令を含むコンピュータ・プログラム(ディープ・パケット処理のための方法および装置) | |
CN107967219B (zh) | 一种基于tcam的大规模字符串高速查找方法 | |
US6985483B2 (en) | Methods and systems for fast packet forwarding | |
KR100586461B1 (ko) | 파이프라인 이진 트리를 이용한 ip 어드레스 검색 방법,하드웨어 구조 및 기록매체 | |
WO2016029684A1 (zh) | 报文处理转发装置、方法和计算机存储介质 | |
CN111988231B (zh) | 一种掩码五元组规则匹配的方法及装置 | |
CN113220679A (zh) | 面向多模态网络的混合型fib存储结构及其数据处理方法 | |
US6970971B1 (en) | Method and apparatus for mapping prefixes and values of a hierarchical space to other representations | |
CN111984835A (zh) | 一种IPv4掩码五元组规则存储压缩方法及装置 | |
CN111526134A (zh) | 一种报文检测系统、方法及装置 | |
CN112818185A (zh) | 一种基于sram的最长前缀匹配硬件系统查找的方法 | |
CN112087389B (zh) | 一种报文匹配查表方法、系统、存储介质和终端 | |
CN115086221B (zh) | 一种报文处理方法、装置、转发设备和存储介质 | |
KR100662254B1 (ko) | 라우팅 시스템에서의 패킷 분류 장치 및 이를 위한 룰 구축 방법 | |
CN115834478A (zh) | 一种利用tcam实现pbr高速转发的方法 | |
CN112491723B (zh) | 网关报文转发方法、装置、存储介质及网关 | |
CN104778197B (zh) | 一种数据查找方法及装置 | |
CN113660165A (zh) | 一种基于tcam的掩码规则匹配方法、电子设备和存储介质 | |
JP3558151B2 (ja) | データ検索回路 | |
KR100378599B1 (ko) | 주소 메모리 블록의 간섭 인덱싱에 기반한 라우팅 테이블검색 방법 | |
KR20010056948A (ko) | 이진표기 문자열을 이용한 데이터베이스 상에서의 인터넷프로토콜(ip)주소정보 관리방법 | |
CN109344222B (zh) | 一种高带宽tcam的查找与存储方法及装置 | |
CN112637070B (zh) | 一种表项查找的方法和设备 | |
JP4408052B2 (ja) | パケットクラシファイア装置 |
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 |