[发明专利]基于FPGA可编程会话表的处理方法、逻辑电路和设备有效
申请号: | 202110609968.4 | 申请日: | 2021-06-01 |
公开(公告)号: | CN113411380B | 公开(公告)日: | 2022-10-14 |
发明(设计)人: | 李远平 | 申请(专利权)人: | 深圳市芯源网络科技有限公司 |
主分类号: | H04L67/14 | 分类号: | H04L67/14;G06F8/30 |
代理公司: | 深圳市科吉华烽知识产权事务所(普通合伙) 44248 | 代理人: | 胡吉科 |
地址: | 518000 广东省深圳市宝安区西乡*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga 可编程 会话 处理 方法 逻辑电路 设备 | ||
1.一种基于FPGA可编程会话表的处理方法,其特征在于:
所述基于FPGA可编程会话表的处理方法包括如下步骤:
从输入信号的包头信息选择查找关键字,然后使用查找关键字进行会话表查找,计算会话表的HASH桶索引号,并使用HASH桶索引号读取DDR内存中的多个会话表项,接着使用查找关键字和读取的多个会话表项中的匹配关键字进行比较,如果相同则认为会话表匹配,根据匹配会话表中的操作数,执行修改包头信息、元数据信息、会话表操作数的动作,最后将修改后的包头信息、元数据信息送给后续的包转发模块,将修改后的会话表项回写到DDR内存中; 其中,所述查找关键字采用高级语言可编程的方式,通过输入包头信息headers_in,将选定的包头信息headers_in中的包头协议字段连线到查找关键字信号,输出查找关键字信号lookup_key,产生会话表查找地址,并进行会话表关键字的比较;
所述执行修改包头信息、元数据信息、会话表操作数的动作包括按照包头信息、元数据信息构造新建会话的表项,对于会话表匹配的情况,按照动作描述代码对包头信息、元数据信息、会话表操作数进行逻辑运算、算术运算和赋值操作。
2.根据权利要求1所述的基于FPGA可编程会话表的处理方法,其特征在于:
所述会话表查找包括:
采用HASH算法,使用预设的CRC32多项式对查找关键字进行CRC运算,得到会话表HASH桶索引号bucket_index,一个HASH桶对应多个会话表项,这些会话表项在内存中连续存放;
将输入的HASH桶索引号bucket_index转换为DDR内存起始地址,并从DDR内存起始地址开始,连续发出HASH桶中所有会话表项的读命令;
保存输入的查找关键字,在DDR控制器返回会话表项内容后,逐个提取同一HASH桶中会话表项的匹配关键字,与输入的查找关键字lookup_key_cmp信号做比较,如果这两个关键字相等,并且会话表项的有效标志位为1,则判断为会话表匹配,匹配信号置为1,将匹配信号match、匹配会话表项的DDR内存起始地址sess_addr和匹配会话表项内容sess_entry输出;如果没有找到匹配的会话表项,则匹配信号置为0,将匹配信号match、编号最小的空闲会话表项的DDR内存起始地址sess_addr输出。
3.根据权利要求2所述的基于FPGA可编程会话表的处理方法,其特征在于:所述会话表项的内容包括有效标志位、匹配关键字和操作数;
所述DDR内存起始地址由{HASH桶索引号,HASH桶会话表项编号,会话表项偏移地址}构成;
读命令时,通过HASH桶会话表项数量参数、会话表项数据位宽和DDR控制器接口数据位宽参数自动计算读DDR命令地址和数量;
采用先入先出的方式保存查找关键字,当同一HASH桶会话表项的读数据返回时,取一个保存的查找关键字,通过接口信号lookup_key_cmp输出进行比较。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市芯源网络科技有限公司,未经深圳市芯源网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110609968.4/1.html,转载请声明来源钻瓜专利网。