System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于FPGA的报文处理方法、装置、系统及加速卡制造方法及图纸_技高网

基于FPGA的报文处理方法、装置、系统及加速卡制造方法及图纸

技术编号:40964718 阅读:3 留言:0更新日期:2024-04-18 20:44
本申请实施例提供一种基于FPGA的报文处理方法、装置、系统、加速卡及存储介质。方法包括:接收待处理报文,并确定待处理报文的第一哈希地址;查找与第一哈希地址对应的第一镜像连接表,其中,镜像连接表是基于哈希地址相同的多个报文的表项物理地址与校验值建立的;确定第一镜像连接表中包括的多个报文的第一表项物理地址;确定第一哈希地址的第一表项校验值;基于第一表项校验值从多个第一表项物理地址中确定出待处理报文的目标表项物理地址;从表项池中查找出与目标表项物理地址对应的目标表项内容;基于目标表项内容确定针对待处理报文的转发策略;根据转发策略对待处理报文执行对应的处理操作。

【技术实现步骤摘要】

本申请涉及fpga,具体涉及一种基于fpga的报文处理方法、装置、系统、加速卡及存储介质。


技术介绍

1、智能网络加速卡设备中,表项管理是一项关键性技术,其主要包括表项的存储、映射和查询等功能,这部分功能不仅需要较高的片内存储资源,且对表项查询性能也有更高的要求。fpga,全称为field programmable gate array,中文名称为现场可编程门阵列,是一种可重复编程器件。基于fpga的智能网络加速卡设备存在一些缺点。例如,片内存储资源不够富裕,芯片成本高等,这就需要设计者充分利用芯片内部的存储资源,进而降低硬件成本。智能网络加速卡通常使用常见的hash(哈希)算法实现表项地址映射,包含hash区和conflict(冲突)区两部分区域,在对连接数量偏多且性能要求较高的设计中,hash算法一般无法实现均匀散列,因此也就造成了片内表项存储资源的浪费,尤其在conflict区域,如果通过扩大冲突链来提高该部分存储的利用率,则会牺牲系统性能作为补偿。

2、传统技术中,会采用hash算法实现表项地址映射,cpu(中央处理器)可以使用特定的hash算法对表项地址进行计算,将hash算法结果作为表项地址下发到fpga片内存储中。在加速模式下,fpga采用同样的hash算法计算表项地址,查询表项内容,若命中,则表项查询结束,若命中失败,则查询指向的冲突区表项,冲突区通常采用链表模式。以此方式可以实现多级冲突。然而,如果冲突次数越多,则查询次数越多,会导致系统性能越低。并且,随着冲突区的数量的增加,也增加了针对同一连接表项查询的次数,也将导致系统处理的性能大幅度衰减。


技术实现思路

1、本申请实施例的目的是提供一种基于fpga的报文处理方法、装置、系统、加速卡及存储介质。

2、为了实现上述目的,本申请第一方面提供一种基于fpga的报文处理方法,包括:应用于加速卡,所述加速卡基于fpga实现,所述方法包括:

3、接收待处理报文,并确定所述待处理报文的第一哈希地址;

4、查找与所述第一哈希地址对应的第一镜像连接表,其中,镜像连接表是基于哈希地址相同的多个报文的表项物理地址与校验值建立的;

5、确定所述第一镜像连接表中包括的多个报文的第一表项物理地址;

6、确定所述第一哈希地址的第一表项校验值;

7、基于所述第一表项校验值从所述第一表项物理地址中确定出所述待处理报文的目标表项物理地址;

8、从表项池中查找出与所述目标表项物理地址对应的目标表项内容;

9、基于所述目标表项内容确定针对所述待处理报文的转发策略;

10、根据所述转发策略对所述待处理报文执行对应的处理操作。

11、在本申请实施例中,所述方法还包括:在查表失败的情况下,将所述待处理报文传输至中央处理器;接收所述中央处理器下发的表项下载指令和所述待处理报文的表项相关信息;响应于所述表项下载指令,从地址桶中申请新的表项物理地址;确定所述第一哈希地址的第一表项校验值;基于所述新的表项物理地址和所述待处理报文的第一表项校验值构建与所述第一哈希地址对应的镜像连接表;将所述待处理报文的表项相关信息存储至表项池,并将所述待处理报文的表项相关信息写入至与所述第一哈希地址对应的镜像连接表,其中,所述待处理报文的表项相关信息包括所述待处理报文的转发策略。

12、在本申请实施例中,所述基于所述新的表项物理地址和所述待处理报文的第一表项校验值构建与所述第一哈希地址对应的镜像连接表包括:查找是否存在以所述第一哈希地址构建的第二镜像连接表;在不存在所述第二镜像连接表的情况下,基于所述第一哈希地址构建新的镜像连接表,并将所述新的表项物理地址和所述第一表项校验值填入至所述新的镜像连接表,以构建与所述第一哈希地址对应的镜像连接表;在存在所述第二镜像连接表的情况下,检测所述第二镜像连接表是否为空,在所述第二镜像连接表为空的情况下,将所述新的表项物理地址和所述第一表项校验值填入至所述第二镜像连接表,以构建与所述第一哈希地址对应的镜像连接表。

13、在本申请实施例中,所述方法还包括:在所述第二镜像连接表不为空的情况下,获取所述第二镜像连接表中包括的第二表项物理地址及所述第二表项物理地址对应的校验值;在所述第二表项物理地址对应的校验值中存在与所述第一表项校验值一致的校验值的情况下,确定针对所述第一哈希地址的镜像连接表创建失败;或在所述第二镜像连接表的可用空间小于预设数量的情况下,确定针对所述第一哈希地址的镜像连接表创建失败;在创建失败的情况下,返回相应的状态值至所述中央处理器。

14、在本申请实施例中,在满足以下任意一者的情况下,确定查表失败:未查找到与所述第一哈希地址对应的第一镜像连接表;所述第一镜像连接表中的多个第一表项物理地址对应的校验值中,不存在与所述第一表项校验值一致的校验值;基于所述待处理报文的业务逻辑确定所述目标表项内容与所述待处理报文的连接匹配失败。

15、在本申请实施例中,所述方法还包括:在所述加速卡接收待处理报文之前,启动系统;对所述加速卡的地址桶内部存储的表项物理地址进行初始化操作;按照默认设置将可用的表项物理地址写入至所述地址桶以进行存储。

16、在本申请实施例中,所述方法还包括:接收中央处理器下发的表项删除指令和第二哈希地址;查找与所述第二哈希地址对应的第三镜像连接表;确定所述第三镜像连接表中包括的第三表项物理地址;删除所述表项池中存储的与所述第三表项物理地址对应的表项内容;删除所述第三镜像连接表。

17、在本申请实施例中,所述方法还包括:在删除所述第二镜像连接表之后,将所述第三表项物理地址回收至地址桶中,以使得所述第三表项物理地址为可申请使用的地址。

18、在本申请实施例中,所述基于所述第一表项校验值从所述第一表项物理地址中确定出所述待处理报文的目标表项物理地址包括:针对所述第一镜像连接表中的第一表项物理地址对应的校验值,在存在与所述第一表项校验值一致的校验值的情况下,将与所述第一表项校验值一致的校验值对应的第一表项物理地址确定为所述目标表项物理地址;在不存在与所述第一表项校验值一致的校验值的情况下,确定所述第一镜像连接表中没有与所述待处理报文对应的表项物理地址。

19、在本申请实施例中,所述方法还包括:在从表项池中查找出与所述目标表项物理地址对应的目标表项内容之后,基于所述待处理报文的业务逻辑确定所述目标表项内容是否与所述待处理报文的连接匹配;在确定匹配失败的情况下,则放弃针对所述待处理报文的加速转发操作;若确定匹配成功的情况下,基于所述目标表项内容确定针对所述待处理报文的转发策略,并根据所述转发策略对所述待处理报文执行对应的加速转发操作。

20、在本申请实施例中,中央处理器与所述加速卡使用的哈希算法相同。

21、本申请第二方面提供一种处理器,被配置成执行上述的基于fpga的报文处理方法。

22、本申请第三方面提供本文档来自技高网...

【技术保护点】

1.一种基于FPGA的报文处理方法,其特征在于,应用于加速卡,所述加速卡基于FPGA实现,所述方法包括:

2.根据权利要求1所述的基于FPGA的报文处理方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的基于FPGA的报文处理方法,其特征在于,所述基于所述新的表项物理地址和所述待处理报文的第一表项校验值构建与所述第一哈希地址对应的镜像连接表包括:

4.根据权利要求3所述的基于FPGA的报文处理方法,其特征在于,所述方法还包括:

5.根据权利要求2所述的基于FPGA的报文处理方法,其特征在于,在满足以下任意一者的情况下,确定查表失败:

6.根据权利要求1所述的基于FPGA的报文处理方法,其特征在于,所述方法还包括:

7.根据权利要求1所述的基于FPGA的报文处理方法,其特征在于,所述方法还包括:

8.根据权利要求7所述的基于FPGA的报文处理方法,其特征在于,所述方法还包括:

9.根据权利要求1所述的基于FPGA的报文处理方法,其特征在于,所述基于所述第一表项校验值从所述第一表项物理地址中确定出所述待处理报文的目标表项物理地址包括:

10.根据权利要求1所述的基于FPGA的报文处理方法,其特征在于,所述方法还包括:

11.根据权利要求1至10中任一项所述的基于FPGA的报文处理方法,其特征在于,中央处理器与所述加速卡使用的哈希算法相同。

12.一种基于FPGA的报文处理装置,其特征在于,包括:

13.一种加速卡,其特征在于,所述加速卡基于FPGA实现,所述加速卡包括根据权利要求12所述的基于FPGA的报文处理装置。

14.一种基于FPGA的报文处理系统,其特征在于,包括:

15.一种机器可读存储介质,该机器可读存储介质上存储有指令,其特征在于,该指令在被处理器执行时使得所述处理器被配置成执行根据权利要求1至11中任一项所述的基于FPGA的报文处理方法。

...

【技术特征摘要】

1.一种基于fpga的报文处理方法,其特征在于,应用于加速卡,所述加速卡基于fpga实现,所述方法包括:

2.根据权利要求1所述的基于fpga的报文处理方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的基于fpga的报文处理方法,其特征在于,所述基于所述新的表项物理地址和所述待处理报文的第一表项校验值构建与所述第一哈希地址对应的镜像连接表包括:

4.根据权利要求3所述的基于fpga的报文处理方法,其特征在于,所述方法还包括:

5.根据权利要求2所述的基于fpga的报文处理方法,其特征在于,在满足以下任意一者的情况下,确定查表失败:

6.根据权利要求1所述的基于fpga的报文处理方法,其特征在于,所述方法还包括:

7.根据权利要求1所述的基于fpga的报文处理方法,其特征在于,所述方法还包括:

8.根据权利要求7所述的基于fpga的报文处理方法,其特征在于,所述方法还包括:...

【专利技术属性】
技术研发人员:陈许蒙张阿珍
申请(专利权)人:北京天融信网络安全技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1