CN115150328A - 一种流表硬件卸载方法、设备及介质 - Google Patents

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

Info

Publication number
CN115150328A
CN115150328A CN202211091198.XA CN202211091198A CN115150328A CN 115150328 A CN115150328 A CN 115150328A CN 202211091198 A CN202211091198 A CN 202211091198A CN 115150328 A CN115150328 A CN 115150328A
Authority
CN
China
Prior art keywords
message
flow table
forwarding
forwarded
hardware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211091198.XA
Other languages
English (en)
Other versions
CN115150328B (zh
Inventor
黄峰
彭雪娇
孙路遥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Xingyun Zhilian Technology Co Ltd
Original Assignee
Zhuhai Xingyun Zhilian Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhuhai Xingyun Zhilian Technology Co Ltd filed Critical Zhuhai Xingyun Zhilian Technology Co Ltd
Priority to CN202211091198.XA priority Critical patent/CN115150328B/zh
Publication of CN115150328A publication Critical patent/CN115150328A/zh
Application granted granted Critical
Publication of CN115150328B publication Critical patent/CN115150328B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

一种流表硬件卸载方法、设备及介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种流表硬件卸载方法、设备及介质。
背景技术
随着云计算和数据中心相关技术的迅速发展,业务层需求和数据流量日益增加。为了提高数据转发性能和收发包速度,采用了各种硬件加速技术来满足快速增长的高网络带宽应用需求同时减少对主机计算资源的占用。其中硬件卸载(hardware offload)技术得到了广泛应用。硬件卸载指的是将原本由软件承担的某些功能下移到硬件实现。在数据传输和网络通信上一般由软件例如操作系统来控制报文的转发,通过将软件生成的数据路径(datapath)快转流表(flow table)卸载到硬件上后让报文走硬件转发,可以提高报文转发速度和改进转发性能。
在现有技术中,与报文转发有关的硬件卸载技术面临着流表硬件卸载失败、报文转发效率低、流量不通等问题。
综上所述,目前需要解决的问题是如何提高流表硬件卸载可靠性、提升报文转发效率以及提高流量。
发明内容
本申请实施例提供了一种流表硬件卸载方法、设备及介质,用于解决现有技术中存在的问题也就是如何提高流表硬件卸载可靠性、提升报文转发效率以及提高流量。
第一方面,本申请提供了一种流表硬件卸载方法。所述流表硬件卸载方法包括:响应于接收到待转发报文,确定所述待转发报文是否命中位于硬件缓存的第一缓存流表信息;当所述待转发报文未命中所述第一缓存流表信息时,上送所述待转发报文到用户空间,以及确定所述待转发报文是否命中位于用户空间的第二缓存流表信息;当所述待转发报文未命中所述第二缓存流表信息时,生成与所述待转发报文对应的第一软转流表,将所述第一软转流表添加到所述第二缓存流表信息并且设置所述第一软转流表的首命中标识为已命中,以及将与所述第一软转流表对应的第一数据路径快转流表硬件卸载到所述第一缓存流表信息;当所述待转发报文命中所述第二缓存流表信息中的第二软转流表时,确定所述第二软转流表的首命中标识是否为已命中,并且,当所述第二软转流表的首命中标识为已命中时反馈所述第一缓存流表信息不同于所述第二缓存流表信息,当所述第二软转流表的首命中标识为未命中时设置所述第二软转流表的首命中标识为已命中以及将与所述第二软转流表对应的第二数据路径快转流表硬件卸载到所述第一缓存流表信息。
通过本申请的第一方面,针对可能导致软转流表和硬转流表之间的不一致性的各种干扰因素(例如,系统启动过程和硬件卸载功能启动过程不同步或者没有正确启动,硬件卸载操作因寄存器故障或其它因素而没有正确执行等),考虑到这些干扰因素的发生时刻和发生概率难以预计,利用第二软转流表的首命中标识实现了通过数据流驱动的方式有效地区分软转流表和硬转流表之间存在不一致性以及该待转发报文是首个命中该第二软转流表的报文这两种情况,并且采取相应的应对措施,在尽量通过硬转流表进行报文硬转的同时也克服了这些干扰因素带来的负面影响,有利于提高流表硬件卸载可靠性、提升报文转发效率以及提高流量。
在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:当反馈所述第一缓存流表信息不同于所述第二缓存流表信息时,将与所述第二软转流表对应的第二数据路径快转流表硬件卸载到所述第一缓存流表信息。
在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:重启与所述硬件缓存对应的操作系统。
在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:当反馈所述第一缓存流表信息不同于所述第二缓存流表信息时,判断用于流表硬件卸载的寄存器是否存在故障,如果所述寄存器不存在故障,将与所述第二软转流表对应的第二数据路径快转流表通过所述寄存器硬件卸载到所述第一缓存流表信息。
在本申请的第一方面的一种可能的实现方式中,当所述寄存器写入失败、所述寄存器容量已满或者所述寄存器不响应硬件卸载指令时,判断所述寄存器存在故障。
在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:每次反馈所述第一缓存流表信息不同于所述第二缓存流表信息时对计数器加一,通过所述计数器的计数判断是否进行系统重启和/或流表同步。
在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:当所述待转发报文未命中所述第二缓存流表信息时,基于硬件卸载到所述第一缓存流表信息的所述第一数据路径快转流表,对与所述待转发报文相关联的后续报文执行报文硬转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,基于硬件卸载到所述第一缓存流表信息的所述第二数据路径快转流表,对与所述待转发报文相关联的后续报文执行报文硬转。
在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:当所述待转发报文未命中所述第二缓存流表信息时,判断硬件卸载流表数量是否超出预设规格,如果是则基于所述第一软转流表对所述待转发报文执行报文软转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,判断所述硬件卸载流表数量是否超出所述预设规格,如果是基于所述第二软转流表对所述待转发报文执行报文软转。
在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:当所述待转发报文未命中所述第二缓存流表信息时,判断所述待转发报文是否支持硬件卸载,如果不支持则基于所述第一软转流表对所述待转发报文执行报文软转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,判断所述待转发报文是否支持硬件卸载,如果不支持则基于所述第二软转流表对所述待转发报文执行报文软转。
在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:当所述待转发报文命中所述第一缓存流表信息时,基于所述第一缓存流表信息中被所述待转发报文命中的数据路径快转流表对所述待转发报文执行报文硬转。
在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:至少在执行完对所述第一缓存流表信息的改动操作得到改动后的第一缓存流表信息之后,生成与所述改动后的第一缓存流表信息对应的检验报文作为所述待转发报文。
在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法还包括:生成与所述改动后的第一缓存流表信息对应的至少两个检验报文作为所述待转发报文。
在本申请的第一方面的一种可能的实现方式中,所述流表硬件卸载方法用于数据处理单元DPU或者网卡NIC或者虚拟交换机,所述DPU和所述NIC至少用于语音通信场景,所述虚拟交换机基于数据平面开发套件DPDK支持硬件卸载。
第二方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据上述任一方面的任一种实现方式的方法。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
第四方面,本申请实施例还提供了一种计算机程序产品,其特征在于,所述计算机程序产品包括存储在计算机可读存储介质上的指令,当所述指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
第五方面,本申请实施例还提供了一种报文转发方法。所述报文转发方法包括:响应于接收到待转发报文,确定所述待转发报文是否命中位于硬件缓存的第一缓存流表信息;当所述待转发报文命中所述第一缓存流表信息时,基于所述第一缓存流表信息中被所述待转发报文命中的数据路径快转流表对所述待转发报文执行报文硬转;当所述待转发报文未命中所述第一缓存流表信息时,上送所述待转发报文到用户空间,以及确定所述待转发报文是否命中位于用户空间的第二缓存流表信息;当所述待转发报文未命中所述第二缓存流表信息时,生成与所述待转发报文对应的第一软转流表,将所述第一软转流表添加到所述第二缓存流表信息并且设置所述第一软转流表的首命中标识为已命中,将与所述第一软转流表对应的第一数据路径快转流表硬件卸载到所述第一缓存流表信息,以及基于所述第一数据路径快转流表对与所述待转发报文相关联的后续报文执行报文硬转;当所述待转发报文命中所述第二缓存流表信息中的第二软转流表时,确定所述第二软转流表的首命中标识是否为已命中,并且,当所述第二软转流表的首命中标识为已命中时反馈所述第一缓存流表信息不同于所述第二缓存流表信息,当所述第二软转流表的首命中标识为未命中时设置所述第二软转流表的首命中标识为已命中和将与所述第二软转流表对应的第二数据路径快转流表硬件卸载到所述第一缓存流表信息以及基于所述第二数据路径快转流表对与所述待转发报文相关联的后续报文执行报文硬转。
通过本申请的第五方面,针对可能导致软转流表和硬转流表之间的不一致性的各种干扰因素(例如,系统启动过程和硬件卸载功能启动过程不同步或者没有正确启动,硬件卸载操作因寄存器故障或其它因素而没有正确执行等),考虑到这些干扰因素的发生时刻和发生概率难以预计,利用第二软转流表的首命中标识实现了通过数据流驱动的方式有效地区分软转流表和硬转流表之间存在不一致性以及该待转发报文是首个命中该第二软转流表的报文这两种情况,并且采取相应的应对措施,在尽量通过硬转流表进行报文硬转的同时也克服了这些干扰因素带来的负面影响,有利于提高流表硬件卸载可靠性、提升报文转发效率以及提高流量。
在本申请的第五方面的一种可能的实现方式中,所述报文转发方法还包括:当所述待转发报文未命中所述第二缓存流表信息时,判断硬件卸载流表数量是否超出预设规格,如果是则基于所述第一软转流表对所述待转发报文执行报文软转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,判断所述硬件卸载流表数量是否超出所述预设规格,如果是基于所述第二软转流表对所述待转发报文执行报文软转。
在本申请的第五方面的一种可能的实现方式中,所述报文转发方法还包括:当所述待转发报文未命中所述第二缓存流表信息时,判断所述待转发报文是否支持硬件卸载,如果不支持则基于所述第一软转流表对所述待转发报文执行报文软转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,判断所述待转发报文是否支持硬件卸载,如果不支持则基于所述第二软转流表对所述待转发报文执行报文软转。
第六方面,本申请实施例还提供了一种多层虚拟交换机,所述多层虚拟交换机的报文转发操作参考根据第五方面中任一项所述的报文转发方法。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种流表硬件卸载方法流程示意图;
图2为本申请实施例提供的一种报文转发方法流程示意图;
图3为本申请实施例提供的一种虚拟交换机架构示意图;
图4为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面将结合附图对本申请实施例作进一步地详细描述。
本申请实施例提供了一种流表硬件卸载方法、设备及介质,用于解决现有技术中存在的问题也就是如何提高流表硬件卸载可靠性、提升报文转发效率以及提高流量。其中,本申请实施例提供的方法和设备是基于同一发明构思的,由于方法及设备解决问题的原理相似,因此方法与设备的实施例、实施方式、示例或实现方式可以相互参见,其中重复之处不再赘述。
应当理解的是,在本申请的描述中,“至少一个”指一个或一个以上,“多个”指两个或两个以上。另外,“第一”、“第二”等词汇,除非另有说明,否则仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
参见图1,图1为本申请实施例提供的一种流表硬件卸载方法流程示意图。流表硬件卸载方法属于硬件卸载((hardware offload))技术的范畴,一般理解为将原本通过软件实现的流表匹配和报文转发、数据转发等功能卸载到硬件上执行。在云计算和数据中心等应用场景下,流表硬件卸载方法及相关的设备和介质应用在如虚拟交换机、网卡等。具体地,虚拟交换机是将多台物理连接的交换机集成后利用虚拟化技术得到,用于在数据链路层提供网络服务。多层虚拟交换机的一种架构叫做OpenvSwitch架构,简称OVS架构。OVS架构的特点是控制层和转发层的解耦,用统一的控制器在控制层来决定所有数据包在网络中的传输路径,然后由交换机在转发层执行数据传输。其中控制器负责控制转发规则,交换机只负责执行转发规则下的转发工作。OVS架构支持用户态和内核态,也称作用户空间和内核空间。内核空间和用户空间之间的数据交互或者说内核态与用户态之间的切换,一般会带来延迟和损耗,从而造成性能下降。为此,OVS架构采用了数据平面开发套件(data planedevelopment kit,DPDK)技术,使得用户态的数据不经过操作系统直接转发到网卡。具体地说,OVS架构结合DPDK技术,数据转发工作是通过流表(flow table)匹配来实现,其中网卡的特定网络功能或者说接口对应一种或者多种数据路径(datapath),通过流表匹配来将流的数据包导向对应的数据路径。也就是说,用户态OVS通过DPDK的流表卸载通道或者说DPDK开放给用户态OVS进行调用的接口,可以将流表卸载给硬件如网卡,这样就实现了全用户态的操作也就省去了内核空间和用户空间之间的数据交互以及操作系统的介入等,从而提升了性能。一般来说可以有多个流表,每个流表有多个流表项(flow entry)各自有多个匹配字段(match fields)。用户态OVS利用的是在硬件缓存上的缓存流表信息,这些硬件缓存的缓存流表信息用于实现用户态的数据直接转发到对应的数据路径例如网卡上的相应模块,可以理解为是数据路径快转流表,并且这样的数据路径快转流表一般存储在硬件缓存上例如SRAM上。因此,OVS架构结合DPDK技术,使得用户态的数据例如用户数据通过在硬件缓存上的缓存流表信息或者说数据路径快转流表找到匹配的流表项也即报文命中数据路径快转流表,然后该数据直接被转发到相应的数据路径或者网卡接口进行数据转发和报文转发。
继续参见图1,流表硬件卸载指的是,指定协处理器或者智能网卡的一部分来专门实现上述的关于流表匹配和数据转发功能(也包括报文转发和网络通信)。因此也将在硬件缓存的缓存流表信息称做硬转流表,通过硬转流表来执行流表匹配和数据转发例如基于硬转流表对报文执行报文硬转,具有运行效率高且延迟小的优点。相对的,将在用户空间的缓存流表信息称作软转流表,通过软转流表来执行流表匹配和数据转发例如基于软转流表对报文执行报文软转,可以利用用户空间丰富的应用、数据及开发工具等。在用户空间可以生成数据路径快转流表(可以与某个软转流表对应)或者说确定当前流数据包的传输路径,然后将在用户态下的数据路径快转流表下发到硬件缓存的缓存流表信息或者说硬转流表。这样的下发数据路径快转流表到硬件缓存的缓存流表信息或者说硬转流表,对应了上述的流表硬件卸载,有利于后续通过硬转流表来执行流表匹配和数据转发例如基于硬转流表对报文执行报文硬转。
但是,如果在硬件缓存的缓存流表信息中没有与当前流数据包或者当前报文相匹配的流表项,也就是报文没有命中,则无法基于在硬件缓存的缓存流表信息进行数据转发和报文转发,而是需要将该流数据包或者报文上送到用户空间以生成数据路径快转流表或者说确定当前流数据包的传输路径。这里,存在两种数据交互:一种是将流数据包或者报文上送到用户空间的上送操作(upcall),另一种是将在用户空间生成的数据路径快转流表从用户空间下发的操作也就是硬件卸载操作。上送操作和硬件卸载操作,都涉及到内核空间和用户空间之间的数据交互,因此带来资源占用和损耗。上面提到,OVS架构结合DPDK技术,使得用户态的数据例如用户数据通过硬件缓存的缓存流表信息或者说数据路径快转流表找到匹配的流表项也即报文命中数据路径快转流表,然后该数据直接被转发到相应的数据路径或者网卡接口进行数据转发和报文转发。但是,当没有找到匹配的流表项也就是说报文未命中数据路径快转流表时,这也意味着硬件缓存的缓存流表信息中没有与待转发数据或者待转发报文对应的流表项。这可能是因为该报文是流的首个数据包也叫首包,因此需要对该报文执行上送操作,然后在用户空间生成对应该报文的数据路径快转流表,接着对生成的数据路径快转流表进行硬件卸载操作,从而使得更新后的在硬件缓存的缓存流表信息包括了相匹配的流表项,进而使得后续的数据包都可以命中。也就是说,报文尽量都通过硬转流表进行数据转发也就是尽量执行报文硬转,这样有利于提高报文转发速度和改进转发性能;当报文是流的首个数据包或者说首包时,则对首包进行上送操作并对首包通过软转流表进行报文软转,以及通过硬件卸载操作更新硬转流表从而使得首包之后的数据包都可以通过硬转流表进行报文硬转。为此,在用户空间的软转流表(也即用户空间的缓存流表信息)与在硬件缓存的硬转流表(也即硬件缓存的缓存流表信息)之间保持一致性是关键,当两者发生不一致时,则给流表匹配和报文转发带来负面影响。除了报文未命中硬转流表后触发报文上送、生成软转流表以及硬件卸载以外,其它可能导致对硬转流表的改动还包括主动修改软转流表后主动将修改后的软转流表硬件卸载以更新硬转流表(常见于流表规则发生变化)。总之,为了保持数据转发工作的可靠性和稳定性以及提升报文转发效率,应尽量保持在用户空间的软转流表(也即用户空间的缓存流表信息)与在硬件缓存的硬转流表(也即硬件缓存的缓存流表信息)之间的一致性,并且为了尽量减少对网络通信和数据转发造成的影响而需要尽量避免中断现有的数据路径功能也就是断流以及重启系统。
如上所述,为了提高报文转发速度和改进转发性能,尽量通过硬转流表进行数据转发也就是尽量执行报文硬转,例如采用OVS架构结合DPDK技术,使得用户态的数据例如用户数据通过硬件缓存的缓存流表信息或者说数据路径快转流表找到匹配的流表项也即报文命中数据路径快转流表,然后该数据直接被转发到相应的数据路径或者网卡接口进行数据转发和报文转发。一般情况下,当流表规则发生变化或者报文为流的首个数据包或者说首包时,生成软转流表并通过流表硬件卸载以更新硬转流表从而使得首包之后的数据包都可以通过更新后的硬转流表进行报文硬转。但是,如果在用户空间的软转流表与在硬件缓存的硬转流表之间出现了不一致性,则可能干扰上述的数据转发、报文转发等操作,并可能影响数据转发工作的可靠性和稳定性。具体地,存在两种情况会导致在用户空间的软转流表与在硬件缓存的硬转流表之间的不一致性。一种情况是:正常启动过程是在系统启动后对软转流表进行硬件卸载,但是如果启动过程没有正确执行,例如用户态OVS和硬件卸载功能的启动是不同步的,则可能在没有开启硬件卸载功能的前提下启动了用户态OVS并且对用户空间的缓存流表信息做出了改动,例如添加新的流表规则或者新的数据路径快转流表,这样就会因为无法执行硬件卸载功能而导致无法将改动后的用户空间的缓存流表信息反映在硬件缓存的缓存流表信息上。如此,即使后续开启了硬件卸载功能,除非重启用户态OVS,否则用户态OVS无法认识到软转流表和硬转流表之间的不一致性,而是依然按照改动前的硬件缓存的缓存流表信息进行流表匹配,这样就导致报文转发错误,降低了可靠性。另一种情况是:当报文为流的首包时,该报文没有命中硬转流表,因此对该报文进行上送操作,并在用户空间生成新的软转流表,然后对该新的软转流表执行硬件卸载。但是,可能存在寄存器故障如寄存器写入失败、寄存器容量已满等以及其它可能的因素,导致硬件卸载没有得到正确执行,进而使得用户态OVS认为已经将报文上送并且进行了正确的硬件卸载,也就是说用户态OVS无法认识到软转流表和硬转流表之间的不一致性,而是依然按照改动前的硬件缓存的缓存流表信息进行流表匹配,这样就导致报文转发错误,降低了可靠性。
下面结合图1所示的具体步骤详细说明,本申请实施例提供的流表硬件卸载方法的各项改进,以及说明这些改进如何提高流表硬件卸载可靠性、提升报文转发效率以及提高流量,特别是如何解决上述的软转流表和硬转流表之间的不一致性的问题。
如图1所示,流表硬件卸载方法包括以下步骤。
步骤S102:判断待转发报文是否命中位于硬件缓存的第一缓存流表信息。如果是执行步骤S104,如果否执行步骤S106。
在步骤S102,第一缓存流表信息是硬件缓存中的硬转流表或者数据路径快转流表或者用于实现用户态的数据直接转发到对应的数据路径的流表信息。数据转发工作是通过流表匹配来实现,其中特定网络功能或者说特定网络功能的接口对应了一种或者多种数据路径。通过流表匹配来将流的数据包导向对应的数据路径。第一缓存流表信息可以有多个流表,每个流表有多个流表项各自有多个匹配字段。可以通过匹配字段的识别来判断待转发报文是否命中某个流表项。
步骤S104:基于第一缓存流表信息中被待转发报文命中的数据路径快转流表对待转发报文执行报文硬转。
当待转发报文命中位于硬件缓存的第一缓存流表信息时,执行步骤S104也就是基于第一缓存流表信息中被待转发报文命中的数据路径快转流表对待转发报文执行报文硬转。
步骤S106:上送待转发报文到用户空间。在执行完步骤S106后执行步骤S108。
当待转发报文未命中位于硬件缓存的第一缓存流表信息时,这意味着硬件缓存的第一缓存流表信息中没有与待转发报文对应的流表项,因此无法基于在硬件缓存的缓存流表信息进行数据转发和报文转发,同时也意味着该待转发报文可能是流的首个数据包也叫首包,因此需要对该待转发报文执行上送操作。
步骤S108:判断待转发报文是否命中位于用户空间的第二缓存流表信息。如果否执行步骤S110,如果是执行步骤S112。
当待转发报文未命中位于硬件缓存的第一缓存流表信息之后,对该待转发报文执行上送操作。接着,在步骤S108,判断待转发报文是否命中位于用户空间的第二缓存流表信息。第二缓存流表信息可以有多个流表,每个流表有多个流表项各自有多个匹配字段。可以通过匹配字段的识别来判断待转发报文是否命中某个流表项。用户空间的第二缓存流表信息是用户空间中的软转流表,用于对报文进行报文软转。在理想情况下,在用户空间的软转流表(也即用户空间的第二缓存流表信息)与在硬件缓存的硬转流表(也即硬件缓存的第一缓存流表信息)之间保持一致。如果待转发报文未命中位于硬件缓存的第一缓存流表信息但是上送后该待转发报文命中位于用户空间的第二缓存流表信息,这就意味着软转流表和硬转流表之间的不一致性。因此,取决于待转发报文是否命中位于用户空间的第二缓存流表信息,采取不同的应对措施。
步骤S110:生成与待转发报文对应的第一软转流表,将第一软转流表添加到第二缓存流表信息并且设置第一软转流表的首命中标识为已命中,以及将与第一软转流表对应的第一数据路径快转流表硬件卸载到第一缓存流表信息。
当待转发报文未命中位于硬件缓存的第一缓存流表信息但是上送后该待转发报文未命中位于用户空间的第二缓存流表信息时,也就是在步骤S108中的判断结果为否的结果,则执行步骤S110。这意味着,硬件缓存的第一缓存流表信息中没有与待转发报文对应的流表项,用户空间的第二缓存流表信息中也没有与待转发报文对应的流表项,因此需要执行步骤S110中的操作,也就是生成与待转发报文对应的第一软转流表然后将与第一软转流表对应的第一数据路径快转流表硬件卸载到第一缓存流表信息,这样首包之后的报文或者数据包,也即与所述待转发报文相关联的后续报文或者说与所述待转发报文属于同一流的后续报文,可以命中硬件缓存的第一缓存流表信息中的第一数据路径快转流表并进行报文硬转。
步骤S112:判断第二软转流表的首命中标识是否为已命中。如果是执行步骤S114,如果否执行步骤S116。其中所述待转发报文命中所述第二缓存流表信息中的第二软转流表。
当待转发报文未命中位于硬件缓存的第一缓存流表信息但是上送后该待转发报文命中位于用户空间的第二缓存流表信息时(所述待转发报文命中所述第二缓存流表信息中的第二软转流表),也就是在步骤S108中的判断结果为是的结果,则执行步骤S112。这意味着软转流表和硬转流表之间的不一致性,而导致不一致性的可能原因包括上面提到的两种情况,也就是系统启动过程和硬件卸载功能启动过程不同步或者没有正确启动,以及硬件卸载操作因寄存器故障或其它因素而没有正确执行。这两种情况发生的概率较小但是要通过控制层面的操作来鉴别这两种情况却需要花费较大的资源和损耗。例如,为了解决软转流表和硬转流表之间的不一致性,可以重启系统例如重启用户态OVS并正确执行启动过程包括硬件卸载过程进而让更新后的硬转流表对齐最新的软转流表。但是,这样会引入新的控制操作而且会中断现有的数据路径功能也就是断流,特别是在数据交互比较密集的时候也无法执行中断。再例如,可以设置硬件缓存的硬转流表的老化时间例如将硬转流表设定为在一段时间后自然失效,这样当硬转流表因老化而失效后,就会触发报文或流数据包没有命中硬转流表的情况,进而触发上送操作和后续的流表硬件卸载操作从而让更新后的硬转流表对齐最新的软转流表。但是,在硬转流表的老化时间到达之前或者说在硬转流表仍然生效期间,报文或者数据包命中该硬转流表后就会进行数据报文硬转,也就没有达到触发上送操作和后续流表硬件卸载操作从而更新硬转流表的目的。因此设定过于长的老化时间或者说硬转流表的生效期间太长,不利于触发对硬转流表的更新,但是另一方面设定过于短的老化时间或者说硬转流表的生效期间太短,可能引起频繁的删除和增加硬转流表也就导致频繁的中断和上送。如此,重启系统和设定硬件缓存的硬转流表的老化时间,均会导致新的控制操作包括中断现有的数据路径功能,从而可能影响正常的数据路径功能实现,但是,这样的控制操作所带来的好处,也就是解决了软转流表和硬转流表之间的不一致性的问题,则属于较小概率发生的事件。也就是说,通过重启系统和设定硬件缓存的硬转流表的老化时间,或者类似的控制操作,带来的弊端是持久的,也就是必然会导致中断和上送进而影响现有的数据路径功能,造成数据传输和报文转发性能下降,而这样的控制操作带来的好处只是解决了小概率发生的问题。并且,因为可能导致软转流表和硬转流表之间的不一致性的情况,例如上述的系统启动过程和硬件卸载功能启动过程不同步或者硬件卸载操作因寄存器故障没有正确执行,这些情况的发生时刻、发生概率等均是难以预计的,也就使得难以预先部署控制操作,例如设定按照固定间隔来重启系统,因此通过主动发起控制操作或者说控制流层驱动的方式来解决软转流表和硬转流表之间的不一致性的问题,往往是性价比较低的,或者说整体收益较低。
继续参见步骤S112,本申请实施例提供的流表硬件卸载方法,通过数据流驱动的方式来解决软转流表和硬转流表之间的不一致性的问题,不仅避免了施加主动控制操作例如中断和上送所导致的性能下降也能有效地应对发生时刻和发生概率不确定的各种可能情况。具体地,
当待转发报文未命中位于硬件缓存的第一缓存流表信息但是上送后该待转发报文命中位于用户空间的第二缓存流表信息时(也即该待转发报文命中第二缓存流表信息中的第二软转流表),也就是在步骤S108中的判断结果为是的结果,则执行步骤S112。第二软转流表包括首命中标识,首命中标识指示已命中或者未命中这两种状态。首命中标识为已命中的第二软转流表,代表了该待转发报文不是首个命中该第二软转流表的报文,也就是说至少有一个在前报文(相对于该待转发报文而言)命中了该第二软转流表,然后再结合该待转发报文未命中位于硬件缓存的第一缓存流表信息,这就意味着该第二软转流表中与该代转发报文对应的流表项没有体现在硬件缓存的第一缓存流表信息,从而可以得出结论第一缓存流表信息不同于第二缓存流表信息,也就是说,软转流表和硬转流表之间存在不一致性。相对的,首命中标识为未命中的第二软转流表,代表了该待转发报文是首个命中该第二软转流表的报文,也就是说没有在前报文(相对于该待转发报文而言)命中了该第二软转流表。如此,通过在步骤S112判断第二软转流表的首命中标识是否为已命中,可以有效地区分软转流表和硬转流表之间存在不一致性以及该待转发报文是首个命中该第二软转流表的报文(也意味着是流的首个数据包或者首包)这两种情况。因为第二软转流表的首命中标识,或者说,用户空间的第二缓存流表信息中的软转流表的首命中标识,是作为数据的一部分被包含在流表中,因此基于第二软转流表的首命中标识来执行后续操作也就是属于数据流驱动的方式。本申请实施例提供的流表硬件卸载方法,利用第二软转流表的首命中标识实现了,通过数据流驱动的方式来解决软转流表和硬转流表之间的不一致性的问题。与上面提到的通过施加主动控制操作(例如,重启系统和设定硬件缓存的硬转流表的老化时间)来解决软转流表和硬转流表之间的不一致性的问题的方式不同,通过数据流驱动的方式可以避免造成持久的弊端例如避免了时而进行中断和上送,还可以灵活地应对发生时刻和发生概率不确定的各种可能导致软转流表和硬转流表之间的不一致性的因素。例如,当寄存器以较高频率地发生故障而导致硬件卸载操作以较高频率地无法正确执行时,本申请实施例提供的流表硬件卸载方法也会根据第二软转流表的首命中标识的判断而以较高频率地反馈第一缓存流表信息不同于第二缓存流表信息;相对的,当寄存器以较低频率发生故障而导致硬件卸载操作以较低频率地无法正确执行时,本申请实施例提供的流表硬件卸载方法也会根据第二软转流表的首命中标识的判断而以较低频率地反馈第一缓存流表信息不同于第二缓存流表信息。但是,上述的通过施加主动控制操作来解决软转流表和硬转流表之间的不一致性的问题的方式,无论寄存器是较高频率地发生故障还是以较低频率地发生故障,只能通过间隔地进行系统重启,或者,按照预设的老化时间或生效时间来触发上送操作和硬件卸载操作,也就是缺乏足够的灵活性。
步骤S114:反馈第一缓存流表信息不同于第二缓存流表信息。
在步骤S114中,首命中标识为已命中的第二软转流表,代表了该待转发报文不是首个命中该第二软转流表的报文,也就是说至少有一个在前报文(相对于该待转发报文而言)命中了该第二软转流表,然后再结合该待转发报文未命中位于硬件缓存的第一缓存流表信息,这就意味着该第二软转流表中与该代转发报文对应的流表项没有体现在硬件缓存的第一缓存流表信息,从而可以得出结论第一缓存流表信息不同于第二缓存流表信息,也就是说,软转流表和硬转流表之间存在不一致性。应当理解的是,可以采用各种可能的合适方式来应对第一缓存流表信息不同于第二缓存流表信息这一反馈。例如,可以执行流表硬件卸载操作以根据第二缓存流表信息来更新第一缓存流表信息,或者可以重启操作系统,或者可以对用于硬件卸载的寄存器进行故障检测以确认是否存在如寄存器写入失败、寄存器容量已满、寄存器不响应指令等可能故障因素,或者可以建立起统计数据例如统计过去一段时间发生了多少次这样的反馈(例如每次反馈第一缓存流表信息不同于第二缓存流表信息则对计数器加一),以及其它可能的应对措施。
步骤S116:设置第二软转流表的首命中标识为已命中以及将与第二软转流表对应的第二数据路径快转流表硬件卸载到第一缓存流表信息。
在步骤S116中,首命中标识为未命中的第二软转流表,代表了该待转发报文是首个命中该第二软转流表的报文,也就是说没有在前报文(相对于该待转发报文而言)命中了该第二软转流表。因此,在步骤S116中生成软转流表并通过流表硬件卸载以更新硬转流表从而使得首包之后的数据包,也即与所述待转发报文相关联的后续报文或者说与所述待转发报文属于同一流的后续报文,都可以通过更新后的硬转流表进行报文硬转,也就是设置第二软转流表的首命中标识为已命中以及将与第二软转流表对应的第二数据路径快转流表硬件卸载到第一缓存流表信息。
图1所示的流表硬件卸载方法以及相关的本申请实施例、实施方式、实现方式、变体等,针对可能导致软转流表和硬转流表之间的不一致性的各种干扰因素(例如,系统启动过程和硬件卸载功能启动过程不同步或者没有正确启动,硬件卸载操作因寄存器故障或其它因素而没有正确执行等),考虑到这些干扰因素的发生时刻和发生概率难以预计,利用第二软转流表的首命中标识实现了通过数据流驱动的方式有效地区分软转流表和硬转流表之间存在不一致性以及该待转发报文是首个命中该第二软转流表的报文这两种情况,并且采取相应的应对措施,在尽量通过硬转流表进行报文硬转的同时也克服了这些干扰因素带来的负面影响,有利于提高流表硬件卸载可靠性、提升报文转发效率以及提高流量。
在一种可能的实施方式中,所述流表硬件卸载方法还包括:当反馈所述第一缓存流表信息不同于所述第二缓存流表信息时,将与所述第二软转流表对应的第二数据路径快转流表硬件卸载到所述第一缓存流表信息。
在一种可能的实施方式中,所述流表硬件卸载方法还包括:重启与所述硬件缓存对应的操作系统。
在一种可能的实施方式中,所述流表硬件卸载方法还包括:当反馈所述第一缓存流表信息不同于所述第二缓存流表信息时,判断用于流表硬件卸载的寄存器是否存在故障,如果所述寄存器不存在故障,将与所述第二软转流表对应的第二数据路径快转流表通过所述寄存器硬件卸载到所述第一缓存流表信息。
在一种可能的实施方式中,当所述寄存器写入失败、所述寄存器容量已满或者所述寄存器不响应硬件卸载指令时,判断所述寄存器存在故障。
在一种可能的实施方式中,所述流表硬件卸载方法还包括:每次反馈所述第一缓存流表信息不同于所述第二缓存流表信息时对计数器加一,通过所述计数器的计数判断是否进行系统重启和/或流表同步。如此,可以设定一个阈值,当计数器的计数超过阈值时判断是否进行系统重启和/或流表同步,这样可以控制整体上对系统进行中断操作的频率。当发生当前报文未命中硬转流表但是上送后发现对应的软转流表的首命中标识指示已经首命中的情况,这一般意味着硬件卸载操作没有正确执行,可以相应地做出如流表同步或者纠错等。可以用一个计数器或者寄存器统计这样的错误事件的累计次数、频次、一段时间内发生的次数等,这些信息可以用来评估当前系统的稳定性。例如,寄存器写入失败事件,通过两个比特位分别指示软转流表启动硬件卸载和硬转流表更新完毕。通过统计这两个比特位的各自的统计个数,可以判断当前流表是否有问题,还可以判断当前系统的稳定性。因此,当计数器的计数太多如超过阈值,或者某段时间内的累计的计数超出阈值,则反映了硬件系统稳定性方面的问题,这时候可能适合判断进行系统重启和/或流表同步,从而进行纠错。
在一种可能的实施方式中,所述流表硬件卸载方法还包括:当所述待转发报文未命中所述第二缓存流表信息时,基于硬件卸载到所述第一缓存流表信息的所述第一数据路径快转流表,对与所述待转发报文相关联的后续报文执行报文硬转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,基于硬件卸载到所述第一缓存流表信息的所述第二数据路径快转流表,对与所述待转发报文相关联的后续报文执行报文硬转。如此,在尽量执行报文硬转同时也提高了报文转发的可靠性。
在一种可能的实施方式中,所述流表硬件卸载方法还包括:当所述待转发报文未命中所述第二缓存流表信息时,判断硬件卸载流表数量是否超出预设规格,如果是则基于所述第一软转流表对所述待转发报文执行报文软转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,判断所述硬件卸载流表数量是否超出所述预设规格,如果是基于所述第二软转流表对所述待转发报文执行报文软转。如此,通过提前判断硬件卸载流表数量是否超出预设规格,例如超出一定数量的流表已经硬件卸载,则可以提前判断当前的所述待转发报文未命中所述第二缓存流表信息的情况是否是因为超出规格的硬件卸载流表数量导致的,并且可以相应地采取应对措施,有利于进一步提高流表硬件卸载可靠性、提升报文转发效率以及提高流量。
在一种可能的实施方式中,所述流表硬件卸载方法还包括:当所述待转发报文未命中所述第二缓存流表信息时,判断所述待转发报文是否支持硬件卸载,如果不支持则基于所述第一软转流表对所述待转发报文执行报文软转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,判断所述待转发报文是否支持硬件卸载,如果不支持则基于所述第二软转流表对所述待转发报文执行报文软转。如此,通过提前判断所述待转发报文是否支持硬件卸载,可以针对性地采取应对措施,例如对不支持硬件卸载的报文执行报文软转,有利于进一步提高流表硬件卸载可靠性、提升报文转发效率以及提高流量。
在一种可能的实施方式中,所述流表硬件卸载方法还包括:当所述待转发报文命中所述第一缓存流表信息时,基于所述第一缓存流表信息中被所述待转发报文命中的数据路径快转流表对所述待转发报文执行报文硬转。
在一种可能的实施方式中,所述流表硬件卸载方法还包括:至少在执行完对所述第一缓存流表信息的改动操作得到改动后的第一缓存流表信息之后,生成与所述改动后的第一缓存流表信息对应的检验报文作为所述待转发报文。在一些实施例中,所述流表硬件卸载方法还包括:生成与所述改动后的第一缓存流表信息对应的至少两个检验报文作为所述待转发报文。参见上面步骤S106,当待转发报文未命中位于硬件缓存的第一缓存流表信息时,这意味着硬件缓存的第一缓存流表信息中没有与待转发报文对应的流表项,因此无法基于在硬件缓存的缓存流表信息进行数据转发和报文转发,同时也意味着该待转发报文可能是流的首个数据包也叫首包,因此需要对该待转发报文执行上送操作。但是,也可能存在待转发报文命中位于硬件缓存的第一缓存流表信息也就是命中当前硬转流表,但是当前硬转流表仍然没有对齐当前软转流表。这可能是因为流表规则发生了变化,新的软转流表没有正确地通过硬件卸载以更新硬转流表,从而导致用户态OVS无法认识到软转流表和硬转流表之间的不一致性,而是依然按照改动前的硬件缓存的第一缓存流表信息进行流表匹配,这样就导致报文转发错误,降低了可靠性。这种情况可以通过引入特定的检验报文来解决。换句话说,从用户空间发送与新的软转流表(在流表规则发生了变化之后,例如改动了软转流表)对应的检验报文到用户态OVS,该检验报文必然不会命中旧的硬转流表,从而触发检验报文的上送操作。进一步地,可以连续发送两个检验报文作为所述待转发报文。如此,第一个检验报文必然会改动新的软转流表的首命中标识为已命中(第一个检验报文触发上送操作后必然命中新的软转流表并设置其首命中标识为已命中)。如果第一个检验报文所触发的硬件卸载操作得到正确执行,则第二个检验报文应该通过新的硬转流表进行报文硬转,因此,当第二个检验报文也被上送时则意味着第一个检验报文所触发的硬件卸载操作没有得到正确执行。如此,通过生成与所述改动后的第一缓存流表信息对应的至少两个检验报文作为所述待转发报文,可以有效地应对上述的待转发报文命中位于硬件缓存的第一缓存流表信息但是当前硬转流表仍然没有对齐当前软转流表的情况,有利于进一步提高流表硬件卸载可靠性、提升报文转发效率以及提高流量。
在一种可能的实施方式中,所述流表硬件卸载方法用于数据处理单元DPU或者网卡NIC或者虚拟交换机,所述DPU和所述NIC至少用于语音通信场景,所述虚拟交换机基于数据平面开发套件DPDK支持硬件卸载。此外,还可以应用于语音处理,GPU,数据中心,智能互联网设备等适合OVS架构与DPDK技术的应用场景。
参见图2,图2为本申请实施例提供的一种报文转发方法流程示意图。图2所示的报文转发方法,参考图1所示的流表硬件卸载方法的有关细节,在此不再赘述。如图2所示,报文转发方法包括以下步骤。
步骤S202:判断待转发报文是否命中位于硬件缓存的第一缓存流表信息。如果是执行步骤S204,如果否执行步骤S206。
步骤S204:基于第一缓存流表信息中被待转发报文命中的数据路径快转流表对待转发报文执行报文硬转。
步骤S206:上送待转发报文到用户空间。在执行完步骤S206后执行步骤S208。
步骤S208:判断待转发报文是否命中位于用户空间的第二缓存流表信息。如果否执行步骤S210,如果是执行步骤S212。
步骤S210:生成与待转发报文对应的第一软转流表,将第一软转流表添加到第二缓存流表信息并且设置第一软转流表的首命中标识为已命中,将与第一软转流表对应的第一数据路径快转流表硬件卸载到第一缓存流表信息,以及基于第一数据路径快转流表对与所述待转发报文相关联的后续报文执行报文硬转。
步骤S212:判断第二软转流表的首命中标识是否为已命中。如果是执行步骤S214,如果否执行步骤S216。其中所述待转发报文命中所述第二缓存流表信息中的第二软转流表。
步骤S214:反馈第一缓存流表信息不同于第二缓存流表信息。
步骤S216:设置第二软转流表的首命中标识为已命中和将与第二软转流表对应的第二数据路径快转流表硬件卸载到第一缓存流表信息以及基于第二数据路径快转流表对与所述待转发报文相关联的后续报文执行报文硬转。
图2的报文转发方法流程,针对可能导致软转流表和硬转流表之间的不一致性的各种干扰因素(例如,系统启动过程和硬件卸载功能启动过程不同步或者没有正确启动,硬件卸载操作因寄存器故障或其它因素而没有正确执行等),考虑到这些干扰因素的发生时刻和发生概率难以预计,利用第二软转流表的首命中标识实现了通过数据流驱动的方式有效地区分软转流表和硬转流表之间存在不一致性以及该待转发报文是首个命中该第二软转流表的报文这两种情况,并且采取相应的应对措施,在尽量通过硬转流表进行报文硬转的同时也克服了这些干扰因素带来的负面影响,有利于提高流表硬件卸载可靠性、提升报文转发效率以及提高流量。
在一种可能的实施方式中,所述报文转发方法还包括:当所述待转发报文未命中所述第二缓存流表信息时,判断硬件卸载流表数量是否超出预设规格,如果是则基于所述第一软转流表对所述待转发报文执行报文软转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,判断所述硬件卸载流表数量是否超出所述预设规格,如果是基于所述第二软转流表对所述待转发报文执行报文软转。
在一种可能的实施方式中,所述报文转发方法还包括:当所述待转发报文未命中所述第二缓存流表信息时,判断所述待转发报文是否支持硬件卸载,如果不支持则基于所述第一软转流表对所述待转发报文执行报文软转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,判断所述待转发报文是否支持硬件卸载,如果不支持则基于所述第二软转流表对所述待转发报文执行报文软转。
参见图3,图3为本申请实施例提供的一种虚拟交换机架构示意图。如图3所示,虚拟交换机包括用户空间310,用户空间310中有第二缓存流表信息312。虚拟交换机还包括硬件缓存320,硬件缓存320中有第一缓存流表信息322。虚拟交换机的报文转发操作参考图1的流表硬件卸载方法或者图2的报文转发方法流程,在此不再赘述。图3的虚拟交换机可以是多层虚拟交换机,并且可以采用OVS架构,例如采用OVS架构结合DPDK技术,其使得用户态的数据例如用户数据通过在硬件缓存320的第一缓存流表信息322或者说数据路径快转流表找到匹配的流表项也即报文命中数据路径快转流表,然后该数据直接被转发到相应的数据路径或者网卡接口(对应一种或者多种数据路径功能,在图3中体现为一个或者多个数据路径模块324)进行数据转发和报文转发。在用户空间310可以生成数据路径快转流表(可以与某个软转流表对应)或者说确定当前流数据包的传输路径,也就是第二缓存流表信息312,然后将数据路径快转流表卸载到硬件缓存320的第一缓存流表信息322或者说硬转流表。这样的下发数据路径快转流表或者说卸载到硬件缓存320的第一缓存流表信息322或者说硬转流表,对应了图1所示的流表硬件卸载方法,而通过硬件缓存320的第一缓存流表信息322进行报文硬转也对应了图2所示的报文转发方法,有利于后续通过硬转流表来执行流表匹配和数据转发例如基于硬转流表对报文执行报文硬转。
参见图4,图4是本申请实施例提供的一种计算设备的结构示意图,该计算设备400包括:一个或者多个处理器410、通信接口420以及存储器430。所述处理器410、通信接口420以及存储器430通过总线440相互连接。可选地,该计算设备400还可以包括输入/输出接口450,输入/输出接口450连接有输入/输出设备,用于接收用户设置的参数等。该计算设备400能够用于实现上述的本申请实施例中设备实施例或者系统实施例的部分或者全部功能;处理器410还能够用于实现上述的本申请实施例中方法实施例的部分或者全部操作步骤。例如,该计算设备400执行各种操作的具体实现可参照上述实施例中的具体细节,如处理器410用于执行上述方法实施例中部分或者全部步骤或者上述方法实施例中的部分或者全部操作。再例如,本申请实施例中,计算设备400可用于实现上述装置实施例中一个或者多个部件的部分或者全部功能,此外通信接口420具体可用于为了实现这些装置、部件的功能所必须的通讯功能等,以及处理器410具体可用于为了实现这些装置、部件的功能所必须的处理功能等。
应当理解的是,图4的计算设备400可以包括一个或者多个处理器410,并且多个处理器410可以按照并行化连接方式、串行化连接方式、串并行连接方式或者任意连接方式来协同提供处理能力,或者多个处理器410可以构成处理器序列或者处理器阵列,或者多个处理器410之间可以分成主处理器和辅助处理器,或者多个处理器410之间可以具有不同的架构如采用异构计算架构。另外,图4所示的计算设备400,相关的结构性描述和功能性描述是示例性且非限制性的。在一些示例性实施例中,计算设备400可以包括比图4所示的更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。
处理器410可以有多种具体实现形式,例如处理器410可以包括中央处理器(central processing unit,CPU)、图形处理器(graphic processing unit,GPU)、神经网络处理器(neural-network processing unit,NPU)、张量处理器(tensor processingunit,TPU)或数据处理器(data processing unit,DPU)等一种或多种的组合,本申请实施例不做具体限定。处理器410还可以是单核处理器或多核处理器。处理器410可以由CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integratedcircuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器410也可以单独采用内置处理逻辑的逻辑器件来实现,例如FPGA或数字信号处理器(digital signal processor,DSP)等。
通信接口420可以为有线接口或无线接口,用于与其他模块或设备进行通信,有线接口可以是以太接口、局域互联网络(local interconnect network,LIN)等,无线接口可以是蜂窝网络接口或使用无线局域网接口等。
存储器430可以是非易失性存储器,例如,只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。存储器430也可以是易失性存储器,易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。存储器430也可用于存储程序代码和数据,以便于处理器410调用存储器430中存储的程序代码执行上述方法实施例中的部分或者全部操作步骤,或者执行上述设备实施例中的相应功能。此外,计算设备400可能包含相比于图4展示的更多或者更少的组件,或者有不同的组件配置方式。
总线440可以是快捷外围部件互连标准(peripheral component interconnectexpress,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。总线440可以分为地址总线、数据总线、控制总线等。总线440除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供一种系统,该系统包括多个计算设备,每个计算设备的结构可以参照上述图4所描述的计算设备的结构。该系统可实现的功能或者操作可以参照上述方法实施例中的具体实现步骤和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,当所述计算机指令在计算机设备(如一个或者多个处理器)上运行时可以实现上述方法实施例中的方法步骤。所述计算机可读存储介质的处理器在执行上述方法步骤的具体实现可参照上述方法实施例中所描述的具体操作和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。本申请实施例可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(如软盘、硬盘、磁带)、光介质、或者半导体介质。半导体介质可以是固态硬盘,也可以是随机存取存储器,闪存,只读存储器,可擦可编程只读存储器,电可擦可编程只读存储器,寄存器或任何其他形式的合适存储介质。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并或删减;本申请实施例系统中的模块可以根据实际需要进行划分、合并或删减。如果本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (20)

1.一种流表硬件卸载方法,其特征在于,所述流表硬件卸载方法包括:
响应于接收到待转发报文,确定所述待转发报文是否命中位于硬件缓存的第一缓存流表信息;
当所述待转发报文未命中所述第一缓存流表信息时,上送所述待转发报文到用户空间,以及确定所述待转发报文是否命中位于用户空间的第二缓存流表信息;
当所述待转发报文未命中所述第二缓存流表信息时,生成与所述待转发报文对应的第一软转流表,将所述第一软转流表添加到所述第二缓存流表信息并且设置所述第一软转流表的首命中标识为已命中,以及将与所述第一软转流表对应的第一数据路径快转流表硬件卸载到所述第一缓存流表信息;
当所述待转发报文命中所述第二缓存流表信息中的第二软转流表时,确定所述第二软转流表的首命中标识是否为已命中,并且,当所述第二软转流表的首命中标识为已命中时反馈所述第一缓存流表信息不同于所述第二缓存流表信息,当所述第二软转流表的首命中标识为未命中时设置所述第二软转流表的首命中标识为已命中以及将与所述第二软转流表对应的第二数据路径快转流表硬件卸载到所述第一缓存流表信息。
2.根据权利要求1所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:
当反馈所述第一缓存流表信息不同于所述第二缓存流表信息时,将与所述第二软转流表对应的第二数据路径快转流表硬件卸载到所述第一缓存流表信息。
3.根据权利要求2所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:
重启与所述硬件缓存对应的操作系统。
4.根据权利要求1所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:
当反馈所述第一缓存流表信息不同于所述第二缓存流表信息时,判断用于流表硬件卸载的寄存器是否存在故障,如果所述寄存器不存在故障,将与所述第二软转流表对应的第二数据路径快转流表通过所述寄存器硬件卸载到所述第一缓存流表信息。
5.根据权利要求4所述的流表硬件卸载方法,其特征在于,当所述寄存器写入失败、所述寄存器容量已满或者所述寄存器不响应硬件卸载指令时,判断所述寄存器存在故障。
6.根据权利要求4所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:
每次反馈所述第一缓存流表信息不同于所述第二缓存流表信息时对计数器加一,通过所述计数器的计数判断是否进行系统重启和/或流表同步。
7.根据权利要求1所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:
当所述待转发报文未命中所述第二缓存流表信息时,基于硬件卸载到所述第一缓存流表信息的所述第一数据路径快转流表,对与所述待转发报文相关联的后续报文执行报文硬转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,基于硬件卸载到所述第一缓存流表信息的所述第二数据路径快转流表,对与所述待转发报文相关联的后续报文执行报文硬转。
8.根据权利要求1所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:
当所述待转发报文未命中所述第二缓存流表信息时,判断硬件卸载流表数量是否超出预设规格,如果是则基于所述第一软转流表对所述待转发报文执行报文软转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,判断所述硬件卸载流表数量是否超出所述预设规格,如果是基于所述第二软转流表对所述待转发报文执行报文软转。
9.根据权利要求1所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:
当所述待转发报文未命中所述第二缓存流表信息时,判断所述待转发报文是否支持硬件卸载,如果不支持则基于所述第一软转流表对所述待转发报文执行报文软转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,判断所述待转发报文是否支持硬件卸载,如果不支持则基于所述第二软转流表对所述待转发报文执行报文软转。
10.根据权利要求1所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:
当所述待转发报文命中所述第一缓存流表信息时,基于所述第一缓存流表信息中被所述待转发报文命中的数据路径快转流表对所述待转发报文执行报文硬转。
11.根据权利要求1所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:
至少在执行完对所述第一缓存流表信息的改动操作得到改动后的第一缓存流表信息之后,生成与所述改动后的第一缓存流表信息对应的检验报文作为所述待转发报文。
12.根据权利要求11所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法还包括:
生成与所述改动后的第一缓存流表信息对应的至少两个检验报文作为所述待转发报文。
13.根据权利要求1至12中任一项所述的流表硬件卸载方法,其特征在于,所述流表硬件卸载方法用于数据处理单元DPU或者网卡NIC或者虚拟交换机,所述DPU和所述NIC至少用于语音通信场景,所述虚拟交换机基于数据平面开发套件DPDK支持硬件卸载。
14.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据权利要求1至13中任一项所述的流表硬件卸载方法。
15.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据权利要求1至13中任一项所述的流表硬件卸载方法。
16.一种计算机程序产品,其特征在于,所述计算机程序产品包括存储在计算机可读存储介质上的指令,当所述指令在计算机设备上运行时使得所述计算机设备执行根据权利要求1至13中任一项所述的流表硬件卸载方法。
17.一种报文转发方法,其特征在于,所述报文转发方法包括:
响应于接收到待转发报文,确定所述待转发报文是否命中位于硬件缓存的第一缓存流表信息;
当所述待转发报文命中所述第一缓存流表信息时,基于所述第一缓存流表信息中被所述待转发报文命中的数据路径快转流表对所述待转发报文执行报文硬转;
当所述待转发报文未命中所述第一缓存流表信息时,上送所述待转发报文到用户空间,以及确定所述待转发报文是否命中位于用户空间的第二缓存流表信息;
当所述待转发报文未命中所述第二缓存流表信息时,生成与所述待转发报文对应的第一软转流表,将所述第一软转流表添加到所述第二缓存流表信息并且设置所述第一软转流表的首命中标识为已命中,将与所述第一软转流表对应的第一数据路径快转流表硬件卸载到所述第一缓存流表信息,以及基于所述第一数据路径快转流表对与所述待转发报文相关联的后续报文执行报文硬转;
当所述待转发报文命中所述第二缓存流表信息中的第二软转流表时,确定所述第二软转流表的首命中标识是否为已命中,并且,当所述第二软转流表的首命中标识为已命中时反馈所述第一缓存流表信息不同于所述第二缓存流表信息,当所述第二软转流表的首命中标识为未命中时设置所述第二软转流表的首命中标识为已命中和将与所述第二软转流表对应的第二数据路径快转流表硬件卸载到所述第一缓存流表信息以及基于所述第二数据路径快转流表对与所述待转发报文相关联的后续报文执行报文硬转。
18.根据权利要求17所述的报文转发方法,其特征在于,所述报文转发方法还包括:
当所述待转发报文未命中所述第二缓存流表信息时,判断硬件卸载流表数量是否超出预设规格,如果是则基于所述第一软转流表对所述待转发报文执行报文软转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,判断所述硬件卸载流表数量是否超出所述预设规格,如果是基于所述第二软转流表对所述待转发报文执行报文软转。
19.根据权利要求17所述的报文转发方法,其特征在于,所述报文转发方法还包括:
当所述待转发报文未命中所述第二缓存流表信息时,判断所述待转发报文是否支持硬件卸载,如果不支持则基于所述第一软转流表对所述待转发报文执行报文软转,或者,当所述待转发报文命中所述第二缓存流表信息中的所述第二软转流表时,判断所述待转发报文是否支持硬件卸载,如果不支持则基于所述第二软转流表对所述待转发报文执行报文软转。
20.一种多层虚拟交换机,其特征在于,所述多层虚拟交换机的报文转发操作参考根据权利要求17至19中任一项所述的报文转发方法。
CN202211091198.XA 2022-09-07 2022-09-07 一种流表硬件卸载方法、设备及介质 Active CN115150328B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211091198.XA CN115150328B (zh) 2022-09-07 2022-09-07 一种流表硬件卸载方法、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211091198.XA CN115150328B (zh) 2022-09-07 2022-09-07 一种流表硬件卸载方法、设备及介质

Publications (2)

Publication Number Publication Date
CN115150328A true CN115150328A (zh) 2022-10-04
CN115150328B CN115150328B (zh) 2022-11-15

Family

ID=83415899

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211091198.XA Active CN115150328B (zh) 2022-09-07 2022-09-07 一种流表硬件卸载方法、设备及介质

Country Status (1)

Country Link
CN (1) CN115150328B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115622959A (zh) * 2022-11-07 2023-01-17 浪潮电子信息产业股份有限公司 交换机控制方法、装置、设备、存储介质及sdn网络
CN116192740A (zh) * 2022-12-30 2023-05-30 天翼云科技有限公司 流表卸载方法、装置、电子设备及可读存储介质
CN116366534A (zh) * 2023-05-31 2023-06-30 珠海星云智联科技有限公司 基于硬件卸载的组播流量复制的方法以及相关装置
CN116506355A (zh) * 2023-06-27 2023-07-28 珠海星云智联科技有限公司 卸载流表存储的处理方法及相关装置
CN117724906A (zh) * 2024-02-18 2024-03-19 珠海星云智联科技有限公司 用于硬件卸载后软失效处理的方法、计算机设备及介质
CN118250228A (zh) * 2024-05-27 2024-06-25 珠海星云智联科技有限公司 基于硬件卸载的流量限速装置及方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110430138A (zh) * 2019-07-26 2019-11-08 新华三技术有限公司合肥分公司 数据流转发状态记录方法及网络设备
US20200059485A1 (en) * 2019-10-10 2020-02-20 Mesut Ergin Secure networking protocol optimization via nic hardware offloading
CN112866111A (zh) * 2019-11-28 2021-05-28 北京京东尚科信息技术有限公司 流表管理的方法和装置
CN113326101A (zh) * 2021-08-02 2021-08-31 阿里云计算有限公司 基于远程直接数据存储的热迁移方法、装置及设备
WO2022088743A1 (zh) * 2020-10-31 2022-05-05 华为技术有限公司 一种流表处理方法及相关设备
CN114448891A (zh) * 2022-01-26 2022-05-06 深圳星云智联科技有限公司 流表同步方法、装置、设备和介质
CN114629842A (zh) * 2022-03-30 2022-06-14 阿里巴巴(中国)有限公司 流表处理方法、电子设备、可读存储介质及产品

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110430138A (zh) * 2019-07-26 2019-11-08 新华三技术有限公司合肥分公司 数据流转发状态记录方法及网络设备
US20200059485A1 (en) * 2019-10-10 2020-02-20 Mesut Ergin Secure networking protocol optimization via nic hardware offloading
CN112866111A (zh) * 2019-11-28 2021-05-28 北京京东尚科信息技术有限公司 流表管理的方法和装置
WO2022088743A1 (zh) * 2020-10-31 2022-05-05 华为技术有限公司 一种流表处理方法及相关设备
CN113326101A (zh) * 2021-08-02 2021-08-31 阿里云计算有限公司 基于远程直接数据存储的热迁移方法、装置及设备
CN114448891A (zh) * 2022-01-26 2022-05-06 深圳星云智联科技有限公司 流表同步方法、装置、设备和介质
CN114629842A (zh) * 2022-03-30 2022-06-14 阿里巴巴(中国)有限公司 流表处理方法、电子设备、可读存储介质及产品

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
姜腊林等: "基于MTF启发法的OpenFlow虚拟流表高效查找算法", 《小型微型计算机系统》 *
徐建峰等: "软件定义网络中资源消耗型攻击及防御综述", 《信息安全学报》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115622959A (zh) * 2022-11-07 2023-01-17 浪潮电子信息产业股份有限公司 交换机控制方法、装置、设备、存储介质及sdn网络
CN116192740A (zh) * 2022-12-30 2023-05-30 天翼云科技有限公司 流表卸载方法、装置、电子设备及可读存储介质
CN116366534A (zh) * 2023-05-31 2023-06-30 珠海星云智联科技有限公司 基于硬件卸载的组播流量复制的方法以及相关装置
CN116366534B (zh) * 2023-05-31 2023-08-22 珠海星云智联科技有限公司 基于硬件卸载的组播流量复制的方法以及相关装置
CN116506355A (zh) * 2023-06-27 2023-07-28 珠海星云智联科技有限公司 卸载流表存储的处理方法及相关装置
CN116506355B (zh) * 2023-06-27 2023-09-05 珠海星云智联科技有限公司 卸载流表存储的处理方法及相关装置
CN117724906A (zh) * 2024-02-18 2024-03-19 珠海星云智联科技有限公司 用于硬件卸载后软失效处理的方法、计算机设备及介质
CN117724906B (zh) * 2024-02-18 2024-06-07 珠海星云智联科技有限公司 用于硬件卸载后软失效处理的方法、计算机设备及介质
CN118250228A (zh) * 2024-05-27 2024-06-25 珠海星云智联科技有限公司 基于硬件卸载的流量限速装置及方法

Also Published As

Publication number Publication date
CN115150328B (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
CN115150328B (zh) 一种流表硬件卸载方法、设备及介质
US11403227B2 (en) Data storage method and apparatus, and server
US20200364080A1 (en) Interrupt processing method and apparatus and server
CN108023829B (zh) 报文处理方法及装置、存储介质、电子设备
WO2018108149A1 (zh) 数据链路切换方法和装置以及数据链路切换设备
US11132265B2 (en) Multi-replica data restoration method and apparatus
CN112217658B (zh) 一种堆叠分裂处理方法及装置
CN109525495B (zh) 一种数据处理装置、方法和fpga板卡
CN116074131A (zh) 一种数据处理方法、智能网卡和电子设备
CN112131201B (zh) 一种网络附加存储高可用性的方法、系统、设备及介质
CN117240748A (zh) 通信链路的检测方法及装置
CN113961641A (zh) 数据库同步方法、装置、设备和存储介质
CN116032498A (zh) 一种内存区域注册方法、装置及设备
CN111669320A (zh) 一种处理报文的方法及网络设备
CN117714233B (zh) 一种用于隧道报文封装的方法、计算机设备及介质
CN116820832B (zh) 一种用于高速数据传输的错误校验方法、介质及装置
CN117527731B (zh) 一种用于硬件卸载的包编辑方法、计算机设备及介质
CN114007152B (zh) 一种针对光纤交换机的端口汇聚处理方法及装置
CN117527689B (zh) 流表卸载方法、系统、设备、集群以及介质
CN115002020B (zh) 基于ospf的数据处理方法及装置
CN117687795B (zh) 用于远程直接内存访问的硬件卸载方法、设备及介质
US11929921B2 (en) Communication control apparatus, communication control system, and communication control method
CN118250228A (zh) 基于硬件卸载的流量限速装置及方法
US20240205141A1 (en) Path Determining Method, Apparatus, Device, and System, and Computer-Readable Storage Medium
CN115842873A (zh) 一种报文处理方法、网卡及服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant