[发明专利]基于FPGA的匹配动作表的处理方法、逻辑电路和设备有效
申请号: | 202110349960.9 | 申请日: | 2021-03-31 |
公开(公告)号: | CN113037634B | 公开(公告)日: | 2022-12-06 |
发明(设计)人: | 李远平 | 申请(专利权)人: | 深圳市芯源网络科技有限公司 |
主分类号: | H04L45/7453 | 分类号: | H04L45/7453;H04L69/22 |
代理公司: | 深圳市科吉华烽知识产权事务所(普通合伙) 44248 | 代理人: | 胡吉科 |
地址: | 518000 广东省深圳市宝安区西乡*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga 匹配 动作 处理 方法 逻辑电路 设备 | ||
1.一种基于FPGA的匹配动作表的处理方法,其特征在于:
所述基于FPGA的匹配动作表的输入信号包括包头信息、元组数据信息;所述元组数据信息包含数据包的输入端口号、输出端口号、包长、优先级、多播组号以及用户自定义的包信息;
所述基于FPGA的匹配动作表的处理方法包括:
CPU配置查找表项;计算P4程序中的查找关键字、动作码以及动作数据的位宽,定义相同位宽的查找表模块写数据信号和读数据信号;计算表项大小的位宽,定义相同位宽的表项索引信号;
当一个网络包的包头信息、元组数据信息被输入后,从包头信息和元组数据信息提取查找关键字;
将关键字送入查找表进行匹配查找;计算P4程序中的查找关键字的位宽,定义相同位宽的查找关键字信号;根据P4程序定义的查找关键字,将包头协议字段或者某个元组数据字段赋值给查找关键字信号;根据P4程序中的查找算法选择语句,选择对应的查找表模块进行实例化,计算P4程序中的查找关键字的位宽,定义相同位宽的查找关键字输入信号;计算P4程序中的动作数据和动作执行单元数量的位宽,定义相同位宽的匹配结果数据输出信号;
查找完成后,查找表输出匹配成功或失败的信号、以及匹配结果数据;
如果匹配成功,则按照匹配结果中的动作码选择一个动作执行单元执行动作,动作执行单元是将每一个动作的P4语句转换为动作执行单元的Verilog语句,对包头协议字段和元组数据进行逻辑运算、算术运算和修改、添加操作,最后将新产生的包头协议字段、元组数据送给下级匹配动作表,进行后续包处理。
2.根据权利要求1所述的基于FPGA的匹配动作表的处理方法,其特征在于:还包括:对输入的包头信息和元组数据寄存器打拍,将打拍后输出的包头信息和元组数据与查找表模块输出的匹配结果信号时序对齐。
3.根据权利要求2所述的基于FPGA的匹配动作表的处理方法,其特征在于:所述CPU配置查找表项,先将需要配置的表项内容写入CPU配置模块内部的写数据寄存器,然后写CPU配置模块的表项索引寄存器和读写选择寄存器,最后写CPU配置模块的表项访问启动标志位;其中所述表项内容包括查找关键字、动作码和动作数据。
4.根据权利要求1所述的基于FPGA的匹配动作表的处理方法,其特征在于:所述包头信息包含前级报文解析器解析出的包头各协议层的协议字段,以及协议字段的有效标志位。
5.一种基于FPGA的匹配动作表的逻辑电路,其特征在于:所述基于FPGA的匹配动作表的输入信号包括包头信息、元组数据信息;所述元组数据信息包含数据包的输入端口号、输出端口号、包长、优先级、多播组号以及用户自定义的包信息;
所述基于FPGA的匹配动作表的逻辑电路包括:
CPU配置模块,用于对查找表项的配置,包括对查找表模块的读操作和写操作;计算P4程序中的查找关键字、动作码以及动作数据的位宽,定义相同位宽的查找表模块写数据信号和读数据信号;计算表项大小的位宽,定义相同位宽的表项索引信号;
查找关键字构造模块,用于产生查表关键字,并将查找关键字输出给查找表模块;当一个网络包的包头信息、元组数据信息被输入后,从包头信息和元组数据信息提取查找关键字;计算P4程序中的查找关键字的位宽,定义相同位宽的查找关键字信号;根据P4程序定义的查找关键字,将包头协议字段或者某个元组数据字段赋值给查找关键字信号;
查找表模块,使用输入的查找关键字与查找表项中的匹配关键字进行匹配,并输出匹配成功信号、匹配失败信号,以及匹配结果数据到动作执行模块;根据P4程序中的查找算法选择语句,选择对应的查找表模块进行实例化,计算P4程序中的查找关键字的位宽,定义相同位宽的查找关键字输入信号;计算P4程序中的动作数据和动作执行单元数量的位宽,定义相同位宽的匹配结果数据输出信号;查找完成后,查找表输出匹配成功或失败的信号、以及匹配结果数据;
动作执行模块,P4程序中定义的查找表的每一个动作都实例化成一个动作执行单元,方法是将每一个动作的P4语句转换为动作执行单元的Verilog语句,按照匹配结果中的动作码选择一个动作执行单元执行动作,对包头协议字段和元组数据进行逻辑运算、算术运算和修改、添加操作,最后将新产生的包头协议字段、元组数据送给下级匹配动作表,进行后续包处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市芯源网络科技有限公司,未经深圳市芯源网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110349960.9/1.html,转载请声明来源钻瓜专利网。