应用于DPU的报文传输方法及相关装置制造方法及图纸

技术编号:34077922 阅读:95 留言:0更新日期:2022-07-11 18:10
本申请提供一种应用于DPU的报文传输方法及相关装置,包括:通过硬件模块接收第一数据报文,确定第一数据报文的业务类型;若确定硬件模块存储的流表中不存在与第一数据报文匹配的流表项,将第一数据报文和第一数据报文的业务类型发送至软件模块;通过软件模块获取第一数据报文对应的第一格式的流表,并根据第一数据报文的业务类型确定第一数据报文的有效匹配字段;通过软件模块根据第一数据报文的有效匹配字段,将第一格式的流表转换为第二格式的流表;通过软件模块将第一数据报文对应的第二格式的流表传输给硬件模块;通过硬件模块根据第一数据报文对应的第二格式的流表,传输第一数据报文所属的数据流。实施本申请,可节省硬件存储空间。硬件存储空间。硬件存储空间。

【技术实现步骤摘要】
应用于DPU的报文传输方法及相关装置


[0001]本申请涉及计算机网络
,尤其涉及一种应用于DPU的报文传输方法及相关装置。

技术介绍

[0002]软件定义网络(Software Defined Network,SDN)是一种新型网络创新架构,与其相关的OpenFlow技术可以将原本由交换机/路由器控制的数据包转发过程,转化为由OpenFlow交换机(OpenFlow Switch)和控制服务器(Controller)分别完成的独立过程,从而实现了网络流量的灵活控制。
[0003]OpenFlow交换机利用流表(Flow Table)来存储数据包的转发规则。流表包括匹配域(用于匹配数据包的关键字段key)和动作域(用于指示对数据包进行操作的操作指令action)。目前智能网卡(如DPU(Data Processing Unit,数据处理单元))可以实现流表的卸载,即利用卸载到智能网卡中的硬件流表对后续流量进行快速查找和转发处理,提升数据转发的效率。智能网卡中存储的硬件流表可以包括将多个流表串接起来组成的多级流表,多级流表中的每张表都有序号,数据包通过跳转指令按照流表序号递增的方向在多个流表之间进行匹配。
[0004]现有的多级流表中每个流表的匹配域是固定的,因而分配给流表匹配域的存储空间也是固定的,但有时流表匹配域中实际有效的字段并没有占用所有的存储空间,可能会产生内存空洞,因此会导致宝贵的硬件存储空间的浪费。

技术实现思路

[0005]为解决上述问题,本申请实施例公开了一种应用于DPU的报文传输方法及相关装置,可以在流表卸载后节省硬件存储空间。
[0006]第一方面,本申请提供一种应用于DPU的报文传输方法,所述方法包括:
[0007]通过硬件模块接收第一数据报文,确定所述第一数据报文的业务类型;
[0008]在确定所述硬件模块存储的流表中不存在与所述第一数据报文匹配的流表项的情况下,通过所述硬件模块将所述第一数据报文和所述第一数据报文的业务类型发送至软件模块;
[0009]通过所述软件模块获取所述第一数据报文对应的第一格式的流表,并根据所述第一数据报文的业务类型确定所述第一数据报文的有效匹配字段,所述第一格式的流表的第一匹配域占用的空间大小为预设数值;
[0010]通过所述软件模块根据所述第一数据报文的有效匹配字段,将所述第一格式的流表转换为第二格式的流表,其中,所述第二格式的流表的第二匹配域包括所述第一数据报文的业务类型和所述第一数据报文的有效匹配字段,所述第二匹配域占用的空间小于所述第一匹配域占用的空间;
[0011]通过所述软件模块将所述第一数据报文对应的第二格式的流表传输给所述硬件
模块;
[0012]通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流。
[0013]在一种可能的实施方式中,所述通过硬件模块接收第一数据报文,确定所述第一数据报文的业务类型,包括:
[0014]获取所述第一数据报文的标识信息,所述第一数据报文的标识信息包括所述第一数据报文的有效匹配字段;
[0015]根据所述标识信息,确定所述第一数据报文的业务类型。
[0016]在一种可能的实施方式中,所述通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流,包括:
[0017]在接收到第二数据报文的情况下,通过所述硬件模块确定所述第二数据报文的业务类型,所述第二数据报文所属的数据流与所述第一数据报文所属的数据流相同;
[0018]根据所述第二数据报文的业务类型,查找所述硬件模块中存储的流表,所述硬件模块中存储的流表包括所述第一数据报文对应的所述第二格式的流表;
[0019]根据所述第一数据报文对应的所述第二格式的流表,对所述第二数据报文执行相应操作。
[0020]在一种可能的实施方式中,所述方法还包括:
[0021]在确定所述第一数据报文对应的第二格式的流表与所述软件模块中的第三数据报文对应的流表满足流表合并条件的情况下,通过所述软件模块将所述第一数据报文对应的第二格式的流表与所述第三数据报文对应的流表合并,获得目标流表;其中,所述流表合并条件包括:两个流表各自的匹配域具有重复字段,且合并后得到的流表占用的空间小于预设的单流表所占空间;
[0022]所述通过所述软件模块将所述第一数据报文对应的第二格式的流表传输给所述硬件模块,包括:
[0023]通过所述软件模块将所述目标流表传输给所述硬件模块;
[0024]所述通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流,包括:
[0025]通过所述硬件模块根据所述目标流表,传输所述第一数据报文或所述第三数据报文所属的数据流。
[0026]在一种可能的实施方式中,所述目标流表的动作域中包括分隔标志,所述通过所述硬件模块根据所述目标流表,传输所述第一数据报文或所述第三数据报文所属的数据流,包括:
[0027]在接收到第四数据报文的情况下,通过所述硬件模块确定所述第四数据报文的业务类型和所述第四数据报文的有效匹配字段,所述第四数据报文所属的数据流与所述第一数据报文所属的数据流或所述第三数据报文的所属的数据流相同;
[0028]根据所述第四数据报文的业务类型查找所述硬件模块中存储的流表,所述硬件模块中存储的流表包括所述目标流表;
[0029]确定所述目标流表为所述第四数据报文匹配的流表;
[0030]在所述第四数据报文的有效匹配字段与所述目标流表中的匹配域包括的匹配字
段完全相同的情况下,根据所述目标流表中的动作域,对所述第四数据报文执行相应操作;
[0031]在所述第四数据报文的有效匹配字段与所述目标流表中的匹配域包括的匹配字段部分相同的情况下,根据所述第四数据报文的有效匹配字段、所述目标流表的匹配域以及所述分隔标志,从所述目标流表的动作域中确定目标动作,对所述第四数据报文执行所述目标动作对应的操作,所述分隔标志用于区分所述第一数据报文和所述第三数据报文分别对应的动作。
[0032]在一种可能的实施方式中,所述目标流表的匹配域和动作域均包括两个分隔标志,所述根据所述第四数据报文的有效匹配字段、所述目标流表的匹配域以及所述分隔标志,从所述目标流表的动作域中确定目标动作,包括:
[0033]若所述第四数据报文的有效匹配字段包括所述目标流表的匹配域中的第一匹配字段和第二匹配字段,但不包括第三匹配字段,则将所述目标流表的动作域中第二个分隔标志之前的动作,确定为所述目标动作;其中,所述第一匹配字段包括所述匹配域的第一个分隔标志之前的字段,所述第二匹配字段包括所述匹配域的第一个分隔标志之后和第二个分隔标志之前的字段,所述第三匹配字段包括所述匹配域的第二个分隔标志之后的字段;
[0034]若所述第四数据报文的有效匹配字段包括所述目标流表的匹配域中的所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用于DPU的报文传输方法,其特征在于,所述方法包括:通过硬件模块接收第一数据报文,确定所述第一数据报文的业务类型;在确定所述硬件模块存储的流表中不存在与所述第一数据报文匹配的流表项的情况下,通过所述硬件模块将所述第一数据报文和所述第一数据报文的业务类型发送至软件模块;通过所述软件模块获取所述第一数据报文对应的第一格式的流表,并根据所述第一数据报文的业务类型确定所述第一数据报文的有效匹配字段,所述第一格式的流表的第一匹配域占用的空间大小为预设数值;通过所述软件模块根据所述第一数据报文的有效匹配字段,将所述第一格式的流表转换为第二格式的流表,其中,所述第二格式的流表的第二匹配域包括所述第一数据报文的业务类型和所述第一数据报文的有效匹配字段,所述第二匹配域占用的空间小于所述第一匹配域占用的空间;通过所述软件模块将所述第一数据报文对应的第二格式的流表传输给所述硬件模块;通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流。2.如权利要求1所述的方法,其特征在于,所述通过硬件模块接收第一数据报文,确定所述第一数据报文的业务类型,包括:获取所述第一数据报文的标识信息,所述第一数据报文的标识信息包括所述第一数据报文的有效匹配字段;根据所述标识信息,确定所述第一数据报文的业务类型。3.如权利要求1或2所述的方法,其特征在于,所述通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流,包括:在接收到第二数据报文的情况下,通过所述硬件模块确定所述第二数据报文的业务类型,所述第二数据报文所属的数据流与所述第一数据报文所属的数据流相同;根据所述第二数据报文的业务类型,查找所述硬件模块中存储的流表,所述硬件模块中存储的流表包括所述第一数据报文对应的所述第二格式的流表;根据所述第一数据报文对应的所述第二格式的流表,对所述第二数据报文执行相应操作。4.如权利要求1或2所述的方法,其特征在于,所述方法还包括:在确定所述第一数据报文对应的第二格式的流表与所述软件模块中的第三数据报文对应的流表满足流表合并条件的情况下,通过所述软件模块将所述第一数据报文对应的第二格式的流表与所述第三数据报文对应的流表合并,获得目标流表;其中,所述流表合并条件包括:两个流表各自的匹配域具有重复字段,且合并后得到的流表占用的空间小于预设的单流表所占空间;所述通过所述软件模块将所述第一数据报文对应的第二格式的流表传输给所述硬件模块,包括:通过所述软件模块将所述目标流表传输给所述硬件模块;所述通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流,包括:
通过所述硬件模块根据所述目标流表,传输所述第一数据报文或所述第三数据报文所属的数据流。5.如权利要求4所述的方法,其特征在于,所述目标流表的动作域中包括分隔标志,所述通过所述硬件模块根据所述目标流表,传输所述第一数据报文或所述第三数据报文所属的数据流,包括:在接收到第四数据报文的情况下,通过所述硬件模块确定所述第四数据报文的业务类型和所述第四数据报文的有效匹配字段,所述第四数据报文所属的数据流与所述第一数据报文所属的数据流或所述第三数据报文的所属的数据流相同;根据所述第四数据报文的业务类型查找所述硬件模块中存储的流表,所述硬件模块中存储的流表包括所述目标流表;确定所述目标流表为所述第四数据报文匹配的流表;在所述第四数据报文的有效匹配字段与所述目标流表中的匹配域包括的匹配字段完全相同的情况下,根据所述目标流表中的动作域,对所述第四数据报文执行相应操作;在所述第四数据报文的有效匹配字段与所述目标流表中的匹配域包括的匹配字段部分相同的情...

【专利技术属性】
技术研发人员:李保国黄祥祥孙路遥
申请(专利权)人:深圳星云智联科技有限公司
类型:发明
国别省市:

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

1