一种流表卸载方法及装置制造方法及图纸

技术编号:37410813 阅读:15 留言:0更新日期:2023-04-30 09:36
本申请实施例公开了一种流表卸载方法及装置,所述方法包括:将流表中的匹配项划分为至少一个分类;确定当前记录的第一链表中是否存在与所述至少一个分类中第一分类中的第一表项相同的表项,所述第一链表的表项与所述第一分类的表项的类型相同;若不存在,则建立所述第一分类中的所述第一表项,并将所述第一分类中的所述第一表项卸载到硬件;若存在,则增加所述第一链表中的第一表项的计数,不将所述第一表项卸载到硬件。采用本申请实施例,可以节省硬件的存储空间,减少软硬件交互次数,提高CPU的性能。高CPU的性能。高CPU的性能。

【技术实现步骤摘要】
一种流表卸载方法及装置


[0001]本申请涉及计算机
,尤其涉及一种流表卸载方法及装置。

技术介绍

[0002]随着云计算和数据中心相关技术的迅速发展,业务层需求和数据流量日益增加。为了提高数据转发性能和收发包速度,采用了各种硬件加速技术来满足快速增长的高网络带宽应用需求同时减少对主机计算资源的占用。其中硬件卸载(Hardware Offload)技术得到了广泛应用。硬件卸载指的是将原本由软件承担的某些功能下移到硬件实现。在数据传输和网络通信上一般由软件例如操作系统来控制报文的转发,通过将软件生成的数据路径(Data Path)快转流表(Flow Table)卸载到硬件上后,让报文走硬件转发,可以提高报文转发速度和改进转发性能。但是,现有流表卸载方式占用硬件内存大,软硬件交互频繁,耗费中央处理器(Central Processing Processor,CPU)性能。

技术实现思路

[0003]本申请实施例提供一种流表卸载方法及装置,可以节省硬件的存储空间,减少软硬件交互次数,提高CPU的性能。
[0004]第一方面,本申请实施例提供了一种流表卸载方法,包括:将流表中的匹配项划分为至少一个分类;确定当前记录的第一链表中是否存在与所述至少一个分类中第一分类中的第一表项相同的表项,所述第一链表的表项与所述第一分类的表项的类型相同;若不存在,则建立所述第一分类中的所述第一表项,并将所述第一分类中的所述第一表项卸载到硬件;若存在,则增加所述第一链表中的第一表项的计数,不将所述第一表项卸载到硬件。通过将流表中的匹配项划分为至少一个分类,如果不同的流表之间的某个分类中存在相同的表项,则不需要重复将该表项卸载到硬件,从而节省了硬件的存储空间。
[0005]在一种可能的设计中,将所述流表中的操作集划分为共有操作集和私有操作集;确定当前记录的共有操作链表中是否存在与所述共有操作集中的第二表项相同的表项;若不存在,则建立所述共有操作集中的所述第二表项,并将所述共有操作集中的所述第二表项卸载到硬件;若存在,则增加所述共有操作链表中的所述第二表项的计数,不将所述共有操作集中的所述第二表项卸载到硬件。
[0006]通过将流表中的匹配项划分为至少一个分类,如果不同的流表之间的某个分类中存在相同的表项,则不需要重复将该表项卸载到硬件,从而节省了硬件的存储空间。通过将流表中的操作集划分为共有操作集和私有操作集,如果不同的流表之间的共有操作集中存在相同的表项,则不需要重复将该表项卸载到硬件,从而节省了硬件的存储空间。并且,如果硬件中的分类或共有操作集已经存在相应的表项,则不需要重复卸载,减少软硬件的交互频率,提高了CPU的性能。
[0007]在另一种可能的设计中,建立所述私有操作集中所有表项;将所述私有操作集中所有表项卸载到硬件。由于私有操作集中的表项的利用率低,因此对于各个流表的私有操
作集中表项,可以均建立私有操作集中表项并卸载到硬件,提高数据转发的成功率。
[0008]在另一种可能的设计中,将所述流表中的匹配项输入到已训练的网络业务模型中,确定所述匹配项中每个字段与预设的分类模板的匹配度;根据所述匹配度,将所述流表中的匹配项划分为至少一个分类。通过网络业务模型对匹配项进行分类,提高分类的准确性。
[0009]在另一种可能的设计中,当所述第一表项未被使用的时长超过第一预设阈值时,减小所述第一链表中的第一表项的计数或从所述硬件中删除所述第一表项。避免在长时间未被使用的情况下,仍然保存第一表项,提高硬件的利用率。
[0010]在另一种可能的设计中,当所述第二表项未被使用的时长超过第二预设阈值时,减小所述共有操作链表中的所述第二表项的计数或从所述硬件中删除所述第二表项。避免在长时间未被使用的情况下,仍然保存第二表项,提高硬件的利用率。
[0011]在另一种可能的设计中,所述至少一个分类包括隧道分类、数据链路层L2分类、网络层L3分类和传输层L4分类中的一项或多项。
[0012]第二方面,本申请实施例提供了一种流表卸载装置,所述装置包括:
[0013]分类模块,用于将流表中的匹配项划分为至少一个分类;
[0014]查找模块,用于确定当前记录的第一链表中是否存在与所述至少一个分类中第一分类中的第一表项相同的表项,所述第一链表的表项与所述第一分类的表项的类型相同;
[0015]卸载模块,用于若不存在,则建立所述第一分类中的所述第一表项,并将所述第一分类中的所述第一表项卸载到硬件;若存在,则增加所述第一链表中的第一表项的计数,不将所述第一表项卸载到硬件。
[0016]在另一种可能的设计中,所述分类模块,还用于将所述流表中的操作集划分为共有操作集和私有操作集;
[0017]所述查找模块,还用于确定当前记录的共有操作链表中是否存在与所述共有操作集中的第二表项相同的表项;
[0018]所述卸载模块,还用于若不存在,则建立所述共有操作集中的所述第二表项,并将所述共有操作集中的所述第二表项和所述第一私有操作集卸载到硬件;若存在,则增加所述共有操作链表中的所述第二表项的计数,仅将所述私有操作集卸载到硬件。
[0019]在另一种可能的设计中,所述卸载模块,还用于建立所述私有操作集中所有表项;将所述私有操作集中所有表项卸载到硬件。
[0020]在另一种可能的设计中,所述分类模块,还用于将所述流表中的匹配项输入到已训练的网络业务模型中,确定所述匹配项中每个字段与预设的分类模板的匹配度;根据所述匹配度,将所述流表中的匹配项划分为至少一个分类。
[0021]在另一种可能的设计中,所述卸载模块,还用于当所述第一表项未被使用的时长超过第一预设阈值时,减小所述第一链表中的第一表项的计数或从所述硬件中删除所述第一表项。
[0022]在另一种可能的设计中,所述卸载模块,还用于当所述第二表项未被使用的时长超过第二预设阈值时,减小所述共有操作链表中的所述第二表项的计数或从所述硬件中删除所述第二表项。
[0023]在另一种可能的设计中,所述至少一个分类包括隧道分类、数据链路层L2分类、网
络层L3分类和传输层L4分类中的一项或多项。
[0024]该流表卸载装置执行的操作及有益效果可以参见上述第一方面所述的方法以及有益效果,重复之处不再赘述。
[0025]第三方面,本申请提供了一种流表卸载装置,该流表卸载装置可以是OVS,也可以是OVS中的装置,或者是能够和OVS匹配使用的装置。其中,该流表卸载装置还可以为芯片系统。该流表卸载装置可执行第一方面所述的方法。该流表卸载装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。该模块可以是软件和/或硬件。该流表卸载装置执行的操作及有益效果可以参见上述第一方面所述的方法以及有益效果,重复之处不再赘述。
[0026]第四方面,本申请提供了一种计算设备,所述计算设备包括处理器和存储器,所述存储器用于存储计算机程序,当所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种流表卸载方法,其特征在于,所述方法包括:将流表中的匹配项划分为至少一个分类;确定当前记录的第一链表中是否存在与所述至少一个分类中第一分类中的第一表项相同的表项,所述第一链表的表项与所述第一分类的表项的类型相同;若不存在,则建立所述第一分类中的所述第一表项,并将所述第一分类中的所述第一表项卸载到硬件;若存在,则增加所述第一链表中的第一表项的计数,不将所述第一表项卸载到硬件。2.如权利要求1所述的方法,其特征在于,所述方法还包括:将所述流表中的操作集划分为共有操作集和私有操作集;确定当前记录的共有操作链表中是否存在与所述共有操作集中的第二表项相同的表项;若不存在,则建立所述共有操作集中的所述第二表项,并将所述共有操作集中的所述第二表项卸载到硬件;若存在,则增加所述共有操作链表中的所述第二表项的计数,不将所述共有操作集中的所述第二表项卸载到硬件。3.如权利要求2所述的方法,其特征在于,所述方法还包括:建立所述私有操作集中所有表项;将所述私有操作集中所有表项卸载到硬件。4.如权利要求1所述的方法,其特征在于,所述将流表中的匹配项划分为至少一个分类包括:将所述流表中的匹配项输入到已训练的网络业务模型中,确定所述匹配项中每个字段与预设的分类模板的匹配度;根据所述匹配度,将所述流表中的匹配项划分为至少一个分类。5.如权利要求1所述的方法,其特征在于,所述方法还包括:当所述第一表项未被使用的时长超过第一预设阈值时,减小所述第一链表中的第一表项的计数或从所述硬件中删除所述第一表项。6.如权利要求2所述的方法,其特征在于,所述方法还包括:当所述第...

【专利技术属性】
技术研发人员:常伟
申请(专利权)人:珠海星云智联科技有限公司
类型:发明
国别省市:

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

1