数据包处理方法及相关产品技术

技术编号:34445479 阅读:16 留言:0更新日期:2022-08-06 16:40
本申请实施例提供一种数据包处理方法及相关产品,该数据包处理方法包括:协议处理单元从内存获得数据包,提取数据包的头部信息,根据头部信息生成控制信息,控制信息用于指示数据包是否可以进行通用接收卸载GRO处理;协议处理单元将控制信息写入第一存储器,直接内存访问DMA预处理单元用于从第一存储器获取控制信息。本申请实施例可以减少存储器的资源浪费。费。费。

【技术实现步骤摘要】
数据包处理方法及相关产品


[0001]本申请涉及通信
,具体涉及一种数据包处理方法及相关产品。

技术介绍

[0002]通用接收卸载(generic receive offload,GRO)是一种可以为网络协议栈减负的处理方法。其基本原理为将接收到的同一条流量的多个小数据包合成一个大的数据包,然后将大数据包传递给数据处理器,这样数据处理器只需要处理一个大数据包的头部信息而不用分多次去处理多个小数据包的头部信息,这有助于提高数据处理器的数据处理效率。然而,目前的GRO需要空间较大的存储器来存放四元组信息,造成存储器较大的资源浪费。

技术实现思路

[0003]本申请实施例提供一种数据包处理方法及相关产品,可以减少存储器的资源浪费。
[0004]本申请实施例的第一方面提供了一种数据包处理方法,所述方法包括:
[0005]协议处理单元从内存获得数据包,提取所述数据包的头部信息,根据所述头部信息生成控制信息,所述控制信息用于指示所述数据包是否可以进行通用接收卸载GRO处理;
[0006]所述协议处理单元将所述控制信息写入第一存储器,直接内存访问DMA预处理单元用于从所述第一存储器获取所述控制信息。
[0007]本申请实施例的第二方面提供了一种网卡芯片,包括内存、协议处理单元、直接内存访问DMA预处理单元和DMA处理单元、第一存储器和第二存储器;
[0008]所述协议处理单元,用于从所述内存获得数据包,提取所述数据包的头部信息,根据所述头部信息生成控制信息,所述控制信息用于指示所述数据包是否可以进行通用接收卸载GRO处理,以及用于指示所述数据包所属的流量编号;
[0009]所述协议处理单元,用于将所述控制信息写入所述第一存储器;
[0010]所述DMA预处理单元,用于从所述第一存储器获取所述控制信息,根据所述控制信息将可以进行GRO处理的流量编号相同的数据包链接在一起,得到属于同一流量的链接信息,将所述属于同一流量的链接信息写入所述第二存储器;
[0011]所述DMA处理单元,用于从所述第二存储器获取所述属于同一流量的链接信息,根据所述属于同一流量的链接信息执行GRO的DMA流程。
[0012]本申请实施例的第三方面提供了一种电子设备,包括本申请实施例第二方面所述的网卡芯片和主处理器;
[0013]所述网卡芯片,用于将在执行GRO的DMA流程的过程中将所述网卡芯片的内存中可以进行GRO处理的数据包搬迁到所述主处理器。
[0014]本申请实施例的第四方面提供了一种数据包处理装置,所述装置应用于协议处理单元,所述装置包括:
[0015]获得单元,用于从内存获得数据包;
[0016]提取单元,用于提取所述数据包的头部信息;
[0017]生成单元,用于根据所述头部信息生成控制信息,所述控制信息用于指示所述数据包是否可以进行通用接收卸载GRO处理;
[0018]写入单元,用于将所述控制信息写入第一存储器,预处理单元用于从所述第一存储器获取所述控制信息。
[0019]本申请实施例的第五方面提供了一种协网卡芯片,包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如本申请实施例第一方面中的步骤指令。
[0020]本申请实施例的第六方面提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如本申请实施例第一方面中的步骤指令。
[0021]本申请实施例的第七方面提供了一种计算机程序产品,其中,上述计算机程序产品包括计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如本申请实施例第一方面中的步骤指令。
[0022]本申请实施例中,协议处理单元从内存获得数据包,提取所述数据包的头部信息,根据所述头部信息生成控制信息,所述控制信息用于指示所述数据包是否可以进行通用接收卸载GRO处理;所述协议处理单元将所述控制信息写入第一存储器,直接内存访问DMA预处理单元用于从所述第一存储器获取所述控制信息。本申请实施例的数据包处理方法,协议处理单元写入第一存储器的控制信息只需要指示数据包是否可以进行GRO处理,第一存储器无需写入该数据包的四元组信息,可以减少第一存储器的资源浪费。
附图说明
[0023]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024]图1是本申请实施例提供的一种电子设备的结构示意图;
[0025]图2是本申请实施例提供的一种GRO的实现原理的示意图;
[0026]图3是本申请实施例提供的一种采用硬件+驱动的方式实现GRO的硬件架构示意图;
[0027]图4是本申请实施例提供的一种GRO表项的示意图;
[0028]图5是本申请实施例提供的另一种实现GRO的硬件架构示意图;
[0029]图6是本申请实施例提供的一种将GRO表项拆分为GRO1表项和GRO2表项的示意图;
[0030]图7是本申请实施例提供的一种数据包处理方法的流程示意图;
[0031]图8是本申请实施例提供的另一种数据包处理方法的流程示意图;
[0032]图9是本申请实施例提供的一种网卡芯片的结构示意图;
[0033]图10是本申请实施例提供的一种数据包处理装置的结构示意图;
[0034]图11是本申请实施例提供的一种网卡芯片的结构示意图。
processor)。图3中的内存可以是双倍速率同步动态随机存储器(double data rate,DDR)。
[0045]协议处理单元(protocol processing unit)可以从硬件的内存获取(fetch)数据包,负责解析每个数据包(或报文)的头部信息,将数据包中的四元组等重要信息提取出来,这些信息决定了如何处理当前的数据包。
[0046]协议处理单元提取好信息(至少包括四元组信息)之后,需要将这些信息写入到FIFO

0中,然后DMA预处理单元中的GRO模块根据这些信息判断当前的报文属于哪一条流量,是否可以做GRO。为了完成这个功能,GRO模块需要维护多个表项,每个表项对应一条流量,表项里存放一些关键参数(如图4中的四元组信息、其他信息和DMA信息),将FIFO

0中的参数与每个表项中的参数进行对比即可确认当前的数据包属于哪一条流量并且可以判断出是否可以做GRO。对于那些能做GRO的数据包,由于中间很有可能会插入其他流量的数据包(如图3中其他头部和其他载荷组成的数据包),因此GRO模块需要将能做GRO的属于本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据包处理方法,其特征在于,包括:协议处理单元从内存获得数据包,提取所述数据包的头部信息,根据所述头部信息生成控制信息,所述控制信息用于指示所述数据包是否可以进行通用接收卸载GRO处理;所述协议处理单元将所述控制信息写入第一存储器,直接内存访问DMA预处理单元用于从所述第一存储器获取所述控制信息。2.根据权利要求1所述的方法,其特征在于,所述头部信息包括四元组信息和其他头部信息,所述根据所述头部信息生成控制信息,包括:根据所述四元组信息和所述其他头部信息确定所述数据包是否可以进行GRO处理。3.根据权利要求1所述的方法,其特征在于,所述头部信息包括四元组信息和其他头部信息,所述控制信息还用于指示所述数据包所属的流量编号,所述根据所述头部信息生成控制信息,包括:根据所述四元组信息和所述其他头部信息确定所述数据包是否可以进行GRO处理;根据所述四元组信息确定所述数据包所属的流量编号。4.根据权利要求3所述的方法,其特征在于,所述协议处理单元存储每条流量对应的第一GRO表项;所述根据所述四元组信息确定所述数据包所属的流量编号,包括:将所述四元组信息与每条流量对应的第一GRO表项中的四元组信息进行比较,将四元组信息匹配的第一GRO表项对应的流量编号作为所述数据包所属的流量编号。5.根据权利要求4所述的方法,其特征在于,所述控制信息包括第一控制信息和第二控制信息,所述第一控制信息包括1个比特的控制信息,所述第二控制信息包括N个比特的控制信息,所述第一控制信息用于指示所述数据包是否可以进行通用接收卸载GRO处理,所述第二控制信息用于指示所述数据包所属的流量编号。6.一种网卡芯片,其特征在于,包括内存、协议处理单元、直接内存访问DMA预处理单元和DMA处理单元、第一存储器和第二存储器;所述协议处理单元...

【专利技术属性】
技术研发人员:严晓东
申请(专利权)人:哲库科技北京有限公司
类型:发明
国别省市:

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

1