一种流表硬件卸载方法、设备及介质技术

技术编号:35156843 阅读:22 留言:0更新日期:2022-10-05 10:40
本申请提供一种流表硬件卸载方法、设备及介质。方法包括:确定报文是否命中硬件缓存的缓存流表信息;当报文未命中时上送报文到用户空间,以及确定报文是否命中用户空间的缓存流表信息;当报文未命中时生成与报文对应的第一软转流表,将其添加到缓存流表信息并且设置其首命中标识为已命中,以及将与其对应的第一数据路径快转流表硬件卸载;当报文命中缓存流表信息中的第二软转流表时,确定第二软转流表的首命中标识是否为已命中,并且,当其首命中标识为已命中时反馈第一缓存流表信息不同于第二缓存流表信息,当其首命中标识为未命中时设置其首命中标识为已命中以及将与其对应的第二数据路径快转流表硬件卸载。如此提高流表硬件卸载可靠性。件卸载可靠性。件卸载可靠性。

【技术实现步骤摘要】
一种流表硬件卸载方法、设备及介质


[0001]本申请涉及计算机
,尤其涉及一种流表硬件卸载方法、设备及介质。

技术介绍

[0002]随着云计算和数据中心相关技术的迅速发展,业务层需求和数据流量日益增加。为了提高数据转发性能和收发包速度,采用了各种硬件加速技术来满足快速增长的高网络带宽应用需求同时减少对主机计算资源的占用。其中硬件卸载(hardware offload)技术得到了广泛应用。硬件卸载指的是将原本由软件承担的某些功能下移到硬件实现。在数据传输和网络通信上一般由软件例如操作系统来控制报文的转发,通过将软件生成的数据路径(datapath)快转流表(flow table)卸载到硬件上后让报文走硬件转发,可以提高报文转发速度和改进转发性能。
[0003]在现有技术中,与报文转发有关的硬件卸载技术面临着流表硬件卸载失败、报文转发效率低、流量不通等问题。
[0004]综上所述,目前需要解决的问题是如何提高流表硬件卸载可靠性、提升报文转发效率以及提高流量。

技术实现思路

[0005]本申请实施例提供了一种流表硬件卸载方法、设备及介质,用于解决现有技术中存在的问题也就是如何提高流表硬件卸载可靠性、提升报文转发效率以及提高流量。
[0006]第一方面,本申请提供了一种流表硬件卸载方法。所述流表硬件卸载方法包括:响应于接收到待转发报文,确定所述待转发报文是否命中位于硬件缓存的第一缓存流表信息;当所述待转发报文未命中所述第一缓存流表信息时,上送所述待转发报文到用户空间,以及确定所述待转发报文是否命中位于用户空间的第二缓存流表信息;当所述待转发报文未命中所述第二缓存流表信息时,生成与所述待转发报文对应的第一软转流表,将所述第一软转流表添加到所述第二缓存流表信息并且设置所述第一软转流表的首命中标识为已命中,以及将与所述第一软转流表对应的第一数据路径快转流表硬件卸载到所述第一缓存流表信息;当所述待转发报文命中所述第二缓存流表信息中的第二软转流表时,确定所述第二软转流表的首命中标识是否为已命中,并且,当所述第二软转流表的首命中标识为已命中时反馈所述第一缓存流表信息不同于所述第二缓存流表信息,当所述第二软转流表的首命中标识为未命中时设置所述第二软转流表的首命中标识为已命中以及将与所述第二软转流表对应的第二数据路径快转流表硬件卸载到所述第一缓存流表信息。
[0007]通过本申请的第一方面,针对可能导致软转流表和硬转流表之间的不一致性的各种干扰因素(例如,系统启动过程和硬件卸载功能启动过程不同步或者没有正确启动,硬件卸载操作因寄存器故障或其它因素而没有正确执行等),考虑到这些干扰因素的发生时刻和发生概率难以预计,利用第二软转流表的首命中标识实现了通过数据流驱动的方式有效地区分软转流表和硬转流表之间存在不一致性以及该待转发报文是首个命中该第二软转
流表的报文这两种情况,并且采取相应的应对措施,在尽量通过硬转流表进行报文硬转的同时也克服了这些干扰因素带来的负面影响,有利于提高流表硬件卸载可靠性、提升报文转发效率以及提高流量。
[0008]在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:当反馈所述第一缓存流表信息不同于所述第二缓存流表信息时,将与所述第二软转流表对应的第二数据路径快转流表硬件卸载到所述第一缓存流表信息。
[0009]在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:重启与所述硬件缓存对应的操作系统。
[0010]在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:当反馈所述第一缓存流表信息不同于所述第二缓存流表信息时,判断用于流表硬件卸载的寄存器是否存在故障,如果所述寄存器不存在故障,将与所述第二软转流表对应的第二数据路径快转流表通过所述寄存器硬件卸载到所述第一缓存流表信息。
[0011]在本申请的第一方面的一种可能的实现方式中,当所述寄存器写入失败、所述寄存器容量已满或者所述寄存器不响应硬件卸载指令时,判断所述寄存器存在故障。
[0012]在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:每次反馈所述第一缓存流表信息不同于所述第二缓存流表信息时对计数器加一,通过所述计数器的计数判断是否进行系统重启和/或流表同步。
[0013]在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:当所述待转发报文未命中所述第二缓存流表信息时,基于硬件卸载到所述第一缓存流表信息的所述第一数据路径快转流表,对与所述待转发报文相关联的后续报文执行报文硬转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,基于硬件卸载到所述第一缓存流表信息的所述第二数据路径快转流表,对与所述待转发报文相关联的后续报文执行报文硬转。
[0014]在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:当所述待转发报文未命中所述第二缓存流表信息时,判断硬件卸载流表数量是否超出预设规格,如果是则基于所述第一软转流表对所述待转发报文执行报文软转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,判断所述硬件卸载流表数量是否超出所述预设规格,如果是基于所述第二软转流表对所述待转发报文执行报文软转。
[0015]在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:当所述待转发报文未命中所述第二缓存流表信息时,判断所述待转发报文是否支持硬件卸载,如果不支持则基于所述第一软转流表对所述待转发报文执行报文软转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,判断所述待转发报文是否支持硬件卸载,如果不支持则基于所述第二软转流表对所述待转发报文执行报文软转。
[0016]在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:当所述待转发报文命中所述第一缓存流表信息时,基于所述第一缓存流表信息中被所述待转发报文命中的数据路径快转流表对所述待转发报文执行报文硬转。
[0017]在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:至少在执行完对所述第一缓存流表信息的改动操作得到改动后的第一缓存流表信息之后,生成与所述改动后的第一缓存流表信息对应的检验报文作为所述待转发报文。
[0018]在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:生成与所述改动后的第一缓存流表信息对应的至少两个检验报文作为所述待转发报文。
[0019]在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法用于数据处理单元DPU或者网卡NIC或者虚拟交换机,所述DPU和所述NIC至少用于语音通信场景,所述虚拟交换机基于数据平面开发套件DPDK支持硬件卸载。
[0020]第二方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据上述任一方本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种流表硬件卸载方法,其特征在于,所述流表硬件卸载方法包括:响应于接收到待转发报文,确定所述待转发报文是否命中位于硬件缓存的第一缓存流表信息;当所述待转发报文未命中所述第一缓存流表信息时,上送所述待转发报文到用户空间,以及确定所述待转发报文是否命中位于用户空间的第二缓存流表信息;当所述待转发报文未命中所述第二缓存流表信息时,生成与所述待转发报文对应的第一软转流表,将所述第一软转流表添加到所述第二缓存流表信息并且设置所述第一软转流表的首命中标识为已命中,以及将与所述第一软转流表对应的第一数据路径快转流表硬件卸载到所述第一缓存流表信息;当所述待转发报文命中所述第二缓存流表信息中的第二软转流表时,确定所述第二软转流表的首命中标识是否为已命中,并且,当所述第二软转流表的首命中标识为已命中时反馈所述第一缓存流表信息不同于所述第二缓存流表信息,当所述第二软转流表的首命中标识为未命中时设置所述第二软转流表的首命中标识为已命中以及将与所述第二软转流表对应的第二数据路径快转流表硬件卸载到所述第一缓存流表信息。2.根据权利要求1所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:当反馈所述第一缓存流表信息不同于所述第二缓存流表信息时,将与所述第二软转流表对应的第二数据路径快转流表硬件卸载到所述第一缓存流表信息。3.根据权利要求2所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:重启与所述硬件缓存对应的操作系统。4.根据权利要求1所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:当反馈所述第一缓存流表信息不同于所述第二缓存流表信息时,判断用于流表硬件卸载的寄存器是否存在故障,如果所述寄存器不存在故障,将与所述第二软转流表对应的第二数据路径快转流表通过所述寄存器硬件卸载到所述第一缓存流表信息。5.根据权利要求4所述的流表硬件卸载方法,其特征在于,当所述寄存器写入失败、所述寄存器容量已满或者所述寄存器不响应硬件卸载指令时,判断所述寄存器存在故障。6.根据权利要求4所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:每次反馈所述第一缓存流表信息不同于所述第二缓存流表信息时对计数器加一,通过所述计数器的计数判断是否进行系统重启和/或流表同步。7.根据权利要求1所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:当所述待转发报文未命中所述第二缓存流表信息时,基于硬件卸载到所述第一缓存流表信息的所述第一数据路径快转流表,对与所述待转发报文相关联的后续报文执行报文硬转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,基于硬件卸载到所述第一缓存流表信息的所述第二数据路径快转流表,对与所述待转发报文相关联的后续报文执行报文硬转。
8.根据权利要求1所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:当所述待转发报文未命中所述第二缓存流表信息时,判断硬件卸载流表数量是否超出预设规格,如果是则基于所述第一软转流表对所述待转发报文执行报文软转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,判断所述硬件卸载流表数量是否超出所述预设规格,如果是基于所述第二软转流表对所述待转发报文执行报文软转。9.根据权利要求1所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:当所述待转发报文未命中所述第二缓存流表信息时,判断所述待转发报文是否支持硬件卸载,如果不支持则基于所述第一软转流表对所述待转发报文执行报文软转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,判断所述待转发报文是否支持硬件卸载,如果不支持则基于所述第二软转流表对所述待转发报文执行报文软转。10.根据权利要求1所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:当所述待转发报文命中所述第一缓存流表信息时,基于所述第一缓存流表信息中被所述待转发报文命中的数据路径快转流表对所述待转发报文执行报文硬转。...

【专利技术属性】
技术研发人员:黄峰彭雪娇孙路遥
申请(专利权)人:珠海星云智联科技有限公司
类型:发明
国别省市:

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

1