CN114827051A - 网络适配器中的带宽控制策略器 - Google Patents

网络适配器中的带宽控制策略器 Download PDF

Info

Publication number
CN114827051A
CN114827051A CN202210050471.8A CN202210050471A CN114827051A CN 114827051 A CN114827051 A CN 114827051A CN 202210050471 A CN202210050471 A CN 202210050471A CN 114827051 A CN114827051 A CN 114827051A
Authority
CN
China
Prior art keywords
packet
policer
bandwidth control
action
policers
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.)
Pending
Application number
CN202210050471.8A
Other languages
English (en)
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.)
Mellanox Technologies Ltd
Original Assignee
Mellanox Technologies 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 Mellanox Technologies Ltd filed Critical Mellanox Technologies Ltd
Publication of CN114827051A publication Critical patent/CN114827051A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2466Traffic characterised by specific attributes, e.g. priority or QoS using signalling traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2475Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/31Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种网络适配器包含网络接口、主机接口和处理电路。所述网络接口被配置为连接到通信网络。所述主机接口被配置为与运行多个应用程序的主机处理器通信。所述处理电路包含一个或多个带宽控制策略器,并且被配置为从所述通信网络接收去往在所述主机处理器上运行的所述应用程序中的给定应用程序的分组而将从所述带宽控制策略器中选定的带宽控制策略器与所述分组相关联,并且将所述选定的带宽控制策略器应用于所述分组以产生策略器结果。

Description

网络适配器中的带宽控制策略器
技术领域
本文所描述的实施方式总体上涉及数据通信,并且尤其涉及用于将带宽控制策略器卸载到网络适配器的方法和系统。
背景技术
带宽控制策略器可以用于强制分组流满足各种带宽相关要求,诸如数据速率和突发大小。各种带宽控制策略器在本领域中是已知的。例如,1999年9月标题为“单速率三色标记”的请求评论(RFC)2697描述了单速率三色标记(srTCM),所述单速率三色标记(srTCM)计量流量流,并且根据三个流量参数(提交信息速率(CIR)、提交突发大小(CBS)和过量突发大小(EBS))将分组标记为绿色、黄色或红色。如果分组未超过CBS,则将其标记为绿色,如果分组超过CBS但未超过EBS,则将其标记为黄色,并且否则将其标记为红色。
作为另一示例,1999年9月标题为“双速率三色标记”的RFC 2698描述了双速率三色标记(trTCM),所述双速率三色标记(trTCM)计量IP分组流,并且基于双速率峰值信息速率(PIR)和承诺信息速率(CIR)以及它们相关联的突发大小而将其分组标记为绿色、黄色或红色。如果分组超过PIR,则将其标记为红色。否则,根据它是否超过CIR而将其标记为黄色或绿色。
发明内容
本文所描述的实施方式提供一种网络适配器,其包含网络接口、主机接口和处理电路。网络接口被配置为连接到通信网络。主机接口被配置为与运行多个应用程序的主机处理器通信。处理电路包含一个或多个带宽控制策略器,并且被配置为从通信网络接收去往在主机处理器上运行的应用程序中的给定应用程序的分组而将从带宽控制策略器中选定的带宽控制策略器与分组相关联,并且将所述选定的带宽控制策略器应用于分组以产生策略器结果。
在一些实施方式中,处理电路被配置为基于策略器结果向分组应用给定动作。在其他实施方式中,给定动作选自包含以下的动作列表:标记分组、丢弃分组、转发分组、镜像分组、对分组进行计数以进行计量,以及前进到另一匹配动作表。在其他实施方式中,处理电路被配置为响应于将分组匹配到动作表中的动作而将带宽控制策略器相关联。
在实施方式中,处理电路被配置为将与分组相关联的匹配动作表中的分组匹配到指定用于将分组发送到给定应用程序的转发方案的动作,并且基于转发方案将分组转发到给定应用程序。在另一实施方式中,处理电路被配置为将第一匹配动作表中的分组匹配到第一动作,将第一动作应用于分组,将第二匹配动作表中的分组匹配到第二动作,并且将第二动作应用于分组。在又一实施方式中,处理电路被配置为将从带宽控制策略器中选定的另一不同的带宽控制策略器与分组相关联,并且将另一带宽控制策略器应用于分组以产生另一策略器结果。
在一些实施方式中,处理电路被配置为从处理电路可接入的存储器检索与分组相关联的策略器上下文,并且使用策略器上下文将选定的带宽控制策略器应用于分组。在其他实施方式中,给定的应用程序选自包含以下的应用程序列表:虚拟机(VM)、控制一个或多个VM的管理程序、虚拟网络功能(VNF)、容器和非虚拟化应用程序,并且处理电路被配置为代表给定的应用程序应用选定的带宽控制策略器。在其他实施方式中,处理电路被配置为独立于去往其他应用程序的分组与相应带宽控制策略器的关联而将带宽控制策略器与分组相关联。
根据本文所描述的实施方式,另外提供一种方法,其包含在包含一个或多个带宽控制策略器的网络适配器中,网络适配器连接到通信网络和主机,所述主机包括运行多个应用程序的主机处理器,从通信网络接收去往在主机处理器上运行的应用程序中的给定应用程序的分组。从带宽控制策略器中选定的带宽控制策略器与分组相关联。选定的带宽控制策略器应用于分组以产生策略器结果。
根据本文所描述的实施方式,另外提供一种网络适配器,其包含网络接口、主机接口和处理电路。网络接口被配置为连接到通信网络。主机接口被配置为与运行多个应用程序的主机处理器通信。处理电路包含一个或多个带宽控制策略器,并且被配置为从在主机处理器上运行的应用程序中的应用程序接收去往目标的出站分组而将带宽控制策略器与从带宽控制策略器中选定的出站分组相关联,将选定的带宽控制策略器应用于出站分组以产生策略器结果,并且基于所述策略器结果,将给定动作应用于出站分组。
根据本文所描述的实施方式,另外提供一种方法,其包含在包含一个或多个带宽控制策略器的网络适配器中,网络适配器连接到通信网络和主机,所述主机包含运行多个应用程序的主机处理器,从在主机处理器上运行的应用程序中的应用程序接收去往目标的出站分组。从带宽控制策略器中选定的带宽控制策略器与出站分组相关联。选定的带宽控制策略器应用于出站分组以产生策略器结果。基于策略器结果,给定动作被应用于出站分组。
附图说明
从下面结合附图对其实施方式的详细描述中,将更全面地理解这些和其他实施方式,在附图中:
图1是示意性地绘示了根据本文所描述的实施方式的通信系统的框图,其中带宽控制策略器在网络适配器中实现;
图2是示意性地绘示其中两个带宽控制策略器应用于给定分组的处理流程的图;以及
图3是示意性地绘示了根据本文所描述的实施方式的用于网络适配器中的带宽控制监管的方法的流程图。
具体实施方式
概述
本文所描述的实施方式提供用于在网络适配器中应用带宽控制策略的方法和系统。
在各种应用程序中,例如,服务提供商或运营商监测和控制分组流,以实施与最终用户商定的策略。可以使用各种类型的策略,包含限制最终用户可能消耗的带宽相关参数和配额。对于每个用户,运营商需要实施与所述用户商定的策略。此外,不同的策略可以应用于例如由同一最终用户接收和传输的分组。例如,最终用户可能有权在消费和上传视频内容时使用不同的数据速率。
在一些应用程序中,专用服务器用于计量和控制与最终用户通信的流量。此类服务器在本文被称为“用户平面服务器”,并且可以连接到接入网络,最终用户经由所述接入网络获得对诸如互联网的数据网络的接入。用户平面服务器通常使用网络适配器(例如,网络接口控制器(NIC))连接到接入网络。
作为一个示例,在某些蜂窝网络中,提供用户平面功能(UPF)功能性的用户平面服务器连接到移动用户所连接的无线接入网络(RAN)。作为另一示例,在用于提供高速数据服务(诸如,有线互联网和基于互联网协议的语音(VoIP))的应用中,用户平面服务器可以连接到有线调制解调器终端系统(CMTS),有线订户使用有线调制解调器连接到所述有线调制解调器终端系统(CMTS)。除了其他策略和功能之外,用户平面服务器的功能性可以包含带宽控制策略。
用户平面服务器可以运行应用程序,用于对与最终用户通信的分组流实施各种策略。应用程序可以包括任何合适类型的软件程序,诸如虚拟机(VM)、虚拟网络功能(VNF)、控制多个VM的管理程序、容器等。原则上,应用程序中的每个可以包含以软件实现的一个或多个带宽控制策略器。然而,此类基于软件的监管会降低性能并且消耗计算资源。因此,基于软件的监管会消耗大量可以用于其他目的的处理能力(例如,CPU周期)。此外,基于软件的带宽控制策略的可扩展性很差,增加规模通常会降低性能。
在公开的实施方式中,带宽控制策略器在网络适配器中实现,用户平面服务器经由所述网络适配器连接到接入网络。网络适配器包括多个带宽控制策略器,所述多个带宽控制策略器可以灵活地应用于最终用户和数据网络之间交换的分组。网络适配器可以将带宽控制策略应用于由客户端节点始发并且去往数据网络的分组,以及始发于数据网络并且去往客户端节点的分组。
考虑包括网络接口、主机接口和处理电路的网络适配器。网络接口连接到通信网络(例如,运营商的接入网络)。主机接口与运行多个应用程序的主机处理器通信。所述处理电路包括一个或多个带宽控制策略器,并且被配置为从通信网络接收去往在主机处理器上运行的应用程序中的给定应用程序的分组而将从带宽控制策略器中选定的带宽控制策略器与分组相关联,并且将选定的带宽控制策略器应用于分组以产生策略器结果。基于策略器结果,处理电路可以将给定动作应用于分组,例如,标记分组、丢弃分组、转发分组、镜像分组以及对分组进行计数以进行计量。
在一些实施方式中,处理电路响应于将分组匹配到动作表中的动作而将带宽控制策略器相关联。在一些实施方式中,为了转发分组,处理电路将与分组相关联的匹配动作表中的分组匹配到指定用于将分组发送到给定应用程序的转发方案的动作,并且基于转发方案将分组转发到给定应用程序。
在一些实施方式中,处理电路支持对同一分组应用多个动作。在此类实施方式中,处理电路将第一匹配动作表中的分组匹配到第一动作,将第一动作应用于分组,将第二匹配动作表中的分组匹配到第二动作,并且将第二动作应用于分组。
处理电路可以对同一个分组应用两个或多个带宽控制策略器。例如,处理电路将从带宽控制策略器中选定的另一不同的带宽控制策略器与分组相关联,并且将另一带宽控制策略器应用于分组以产生另一策略器结果。
在一些实施方式中,为了应用带宽控制策略器,处理电路从处理电路可接入的存储器检索与分组相关联的策略器上下文,并且使用策略器上下文将选定的带宽控制策略器应用于分组。策略器上下文包括例如策略器配置和策略器状态。
在一些实施方式中,每个应用程序具有其自己的带宽控制策略方案,所述策略方案独立于由其他应用程序使用的带宽控制策略方案。在实施方式中,处理电路独立于去往其他应用程序的分组与相应带宽控制策略器的关联而将带宽控制策略器与分组相关联。
在一些实施方式中,带宽控制监管可以应用于由在主机上运行的应用程序发送的分组。在此类实施方式中,处理电路被配置为从在主机处理器上运行的应用程序中的应用程序接收去往目标的出站分组而将带宽控制策略器与从带宽控制策略器中选定的出站分组相关联,将选定的带宽控制策略器应用于出站分组以产生策略器结果。基于策略器结果,处理电路可以对出站分组应用给定动作。
在所公开的技术中,网络适配器包括带宽控制策略器池,所述带宽控制策略器池可以代表在主机上运行的应用程序应用于分组流。应用程序可在虚拟环境中运行并且实现为例如VM和VNF,或作为非虚拟化应用程序运行。此类架构提供对分组流的灵活的用户平面控制,用于实施运营商要求,诸如限制数据速率、突发大小和/或配额。将带宽控制策略器卸载到网络适配器减少了主机处理开销,并且导致使用基于软件的策略无法实现的可扩展性。
系统描述
图1是示意性地绘示了根据本文所描述的实施方式的通信系统20的框图,其中带宽控制策略器在网络适配器中实现。
在通信系统20的示例中,通信网络26包括接入网络28,客户端节点经由接入网络28获得对数据网络32的接入。接入网络可以包括使用任何合适的通信协议操作的任何合适类型的接入网络。例如,在一些实施方式中,客户端节点24包括移动节点,并且接入网络28包括根据相关蜂窝网络协议操作的合适的无线接入网络(RAN)。在此情况下,客户端节点24使用合适的空中协议连接到接入网络。在其他实施方式中,客户端节点24包括有线订户,在这种情况下,接入网络28包括有线调制解调器终端系统(CMTS),客户端节点使用有线调制解调器(未示出)连接到所述有线调制解调器终端系统(CMTS)。
数据网络32可以包括任何合适的数据网络,例如互联网。客户端节点24与数据网络32通信,例如,用于接收各种数据服务,例如,在互联网上浏览和/或数据流。
通信系统20包括服务器36,所述服务器36实施运营商和客户端节点的最终用户之间商定的各种策略。服务器36处理从数据网络接收到的分组并且将接收到的分组的至少一些转发到相关的客户端节点。服务器36还接收由客户端节点发送到数据网络中的目的地的分组,处理接收到的分组,并且将所述接收到的分组的至少一些转发到它们在数据网络中的目的地。
服务器36在本文也被称为“用户平面”服务器,其可以属于多个用户平面服务器的云。
服务器36包括经由任何合适的链路或总线48(例如,外围部件互连快速(PCIe)总线)耦合到网络适配器44的主机处理器40。主机处理器40使用网络适配器44耦合到接入网络28,网络适配器44支持对在客户端节点24和数据网络32之间通信的分组流实施带宽控制监管,如将在下面描述的。
主机处理器40包括CPU 52和存储器56。在本示例中,CPU 52在虚拟化环境中运行多个应用程序。在此示例中,CPU 52运行管理多个虚拟机(VM)66的控制平面的管理程序应用,虚拟机(VM)66中的每个可以运行一个或多个虚拟网络功能(VNF)70。备选地,代替VM或除了VM之外,CPU 52可以运行由管理程序62的另一控制平面控制的或在VM 66内的多个容器。在下面的描述中,VNF 70可以替代地指容器。请注意,使用虚拟化应用程序不是强制性的。在替代实施方式中,也可以使用非虚拟化应用程序。
在一些实施方式中,主机处理器40中的CPU 52包括多个处理核心(未示出),其中每个核心可以运行多个VM 66,所述多个VM 66运行多个VNF(或容器)70。在此类实施方式中,管理程序62可以管理多个核心上的多个VM。备选地,每个处理核心都运行管理程序来管理所述核心上的VM。
在一些实施方式中,VNF 70可以实现管理用户平面功能性的功能。例如,对于移动客户端节点,VNF 70可以实现与3GPP 5G架构相关的用户平面功能(UPF)。UPF类似于4G LTE系统中的服务/分组网关。UPF支持便于用户平面操作的特征和能力,诸如分组路由和转发、到数据网络(32)的互连、策略实施和数据缓冲。
例如,VNF 70可以类似地管理其他类型通信网络中的用户平面功能性,诸如其他蜂窝网络或基于有线的网络。如下文将详细描述的,在CPU 52上运行的应用程序(诸如,VNF(或容器)70、VM 66和管理程序62),可以使用在网络适配器44中实现的带宽控制策略器来实现带宽控制策略。在本上下文和权利要求中,术语“应用程序”是指在主机的处理器上运行的任何软件程序,诸如管理程序62、VM(或容器)66、VNF 70和/或非虚拟化应用程序。
网络适配器44包括用于连接到通信网络26(例如,接入网络28)的网络接口72,以及用于连接到主机处理器40的主机接口74。耦合在网络接口和主机接口之间的处理电路76处理从通信网络26接收到的和去往通信网络26的分组。从通信网络接收到的分组和等待传输回通信网络的分组存储在队列78中。
处理电路76包括也被称为引导引擎80的处理流水线,其被配置为处理与通信网络交换的分组,并且将分组引导到它们相应的目的地。引导分组的操作通常包含确定分组的所需目的地并且将分组转发到其目的地。
在一些实施方式中,引导引擎80将一个或多个动作应用于分组,其中最后一个动作可以包括将分组转发到其目的地。引导引擎80将进入的分组定向到它们被指定到的应用程序,并且将由应用程序发送的分组定向到它们的目标目的地,例如,在客户端节点之间或在数据网络32中。在引导引擎80和在主机上运行的虚拟应用程序之间交换分组的功能类似于通常用软件实现的虚拟交换机的功能性。因此,软件虚拟交换机被卸载到网络适配器,这意味着网络适配器内的实现取代了软件虚拟交换机的功能。为此,可以为虚拟应用程序分配MAC地址或任何其他合适的寻址识别符。
在一些实施方式中,引导引擎80使用存储在主机的存储器56中的匹配动作表82来处理分组。在实施方式中,一些匹配动作表被高速缓存在本地高速缓存84中,在图中表示为高速缓存1,用于减少等待时间和提高性能。在一些实施方式中,每个匹配动作表包括多个引导条目,每个引导条目包含索引和相应的引导动作条目。引导动作条目可以包括要对分组采取的任何合适的动作。例如,引导动作条目可以指定分组应在其中排队的队列、将分组发送到的目的地、应用于分组报头的修改、用于镜像分组的目的地、应用于分组的带宽控制策略器和/或用作引导过程的一部分的下一个匹配动作表。
引导动作条目可以指示应使用分组的哪个报头部分(或多个报头部分)以及应如何处理此报头部分以便在下一个匹配动作表中查找。以此方式,处理可以从一个匹配动作表传递到另一个。例如,可以通过对分组的一个或多个报头应用合适的散列函数来产生索引值,从而在每个匹配动作表中进行查找。备选地,也可以使用任何其他合适的查找方法。
在一些实施方式中,网络适配器44包括以硬件(或以硬件和软件的组合)实现的带宽控制策略器86。带宽控制策略器86可以是一种或多种策略器类型,即实现单个策略方案或多个不同的策略方案。例如,网络适配器中的一些带宽控制策略器86可以根据上面引用的RFC 2697中指定的策略器方案来实现,而其他带宽控制策略器86可以实现上面引用的RFC 2698中指定的策略器方案。也可以使用实现其他合适的带宽控制策略方案的带宽控制策略器。
在本上下文和权利要求中,术语“带宽控制策略器”是指被配置为监测数据(例如,在分组流的分组中)并且产生与随时间的推移监测的数据量或监测的数据总量(例如,配额)相关的策略器结果的装置。在一些实施方式中,带宽控制策略器86预先配置有策略约束,诸如最大带宽和最大突发大小。在一些实施方式中,带宽控制策略器86还包括例如以一个或多个令牌桶的填充状况形式的状态。在一些实施方式中,带宽控制策略器86可以被配置为控制数据速率(例如,每时间单位的数据量)或分组速率(例如,每时间单位的分组数量)。
在一些实施方式中,带宽控制策略器86可以用于使用适当的配置来应用配额限制策略。例如,当根据上面引用的RFC 2697或RFC 2698实现带宽控制策略器86时,策略器状态中的令牌计数被初始化为期望的配额值,并且令牌计数的递增被配置为被禁用。在监测分组时,它们的大小会从令牌计数消耗掉,并且当整个配额被消耗掉时,策略器的结果会变成红色来表示所述事件。
在一些实施方式中,应用程序(例如,管理程序62、VM 66和VNF 70)被分配来处理一个或多个分组流。在此类实施方式中,主机的存储器56为应用程序中的每个存储一个或多个策略器上下文,例如分组流中的每个的策略器上下文。在一些实施方式中,网络适配器在不同的应用所使用的存储器区域之间进行隔离,使得不同的应用可以具有不同的名称空间。策略器上下文包括所需的策略器配置和策略器状态。在一些实施方式中,为了减少等待时间,一些策略器上下文被本地高速缓存在图中表示为高速缓存2的高速缓存90中。下面将详细描述在网络适配器中应用带宽控制策略器的方法。
通信网络26、服务器36和网络适配器44的配置是示例配置,纯粹是为了概念清楚而选择的。在替代实施方式中,也可以使用任何其他合适的通信网络、服务器和网络适配器配置。为了清楚起见,图中省略了对于理解本发明的原理不必要的元件,诸如各种接口、寻址电路、定时和排序电路以及调试电路。
网络适配器44的一些元件(诸如处理电路76和带宽控制策略器86),可在硬件中实现,例如,在一个或多个专用集成电路或现场可编程门阵列中实现。附加地或备选地,处理电路76和带宽控制策略器86可以使用软件或使用硬件和软件元件的组合来实现。存储器56可以包括任何合适的存储元件,诸如随机存取存储器(RAM)、非易失性(NVM)存储器,诸如快闪存储器装置。在一些实施方式中,存储器56包括各种存储类型的多个存储元件。
在一些实施方式中,网络适配器44的一些功能可由通用处理器执行,所述通用处理器以软件编程来执行本文所描述的功能。软件可以例如在网络上以电子形式下载到处理器,或它可以备选地或附加地被提供和/或存储在非暂时性有形介质(诸如,磁、光或电子存储器)上。
网络适配器中的带宽控制策略器
为了代表给定分组流的应用程序应用带宽控制策略,引导引擎80选择可用的带宽控制策略器86(实现所需的策略器方案),从存储器56加载相关的策略器上下文(或如果可用,在高速缓存2中使用策略器上下文),并且使用策略器上下文执行选定的带宽控制策略器,以产生策略器结果。引导引擎可以使用策略器结果来选择当前或另一匹配动作表中的后续引导动作条目。
可以以各种方式选择带宽控制策略器86和策略器上下文88。例如,多个匹配动作表可以被配置为选择具有不同的相应策略方案的带宽控制策略器86。备选地或附加地,多个匹配动作表可以选择公共物理带宽控制策略器86,或实现相同的策略方案的多个带宽控制策略器86。在一些实施方式中,公共带宽控制策略器86可在多个不同的分组流之间共享(使用一个或多个不同的策略器上下文)。备选地或附加地,由引导引擎处理的分组可以经受不同的策略方案的多个不同的带宽控制策略器。
在一些实施方式中,在主机处理器40上运行的不同的应用程序在存储器56内被分配专用的相应域,用于存储策略器上下文。在此配置中,代表不同的应用程序使用的带宽控制策略是相互隔离的。
在网络适配器中使用带宽控制策略器池,其中使用检索到的策略器上下文来执行带宽控制策略器,在应用带宽控制策略时提供高灵活性和可扩展性。
图2是示意性地绘示其中两个带宽控制策略器应用于给定分组的处理流程的图。
在图2中,网络适配器44的引导引擎80使用表示为MAT1和MAT2的匹配动作表82来处理分组。在一些实施方式中,引导引擎80基于分组的头部计算MAT1中的对应索引。在本示例中,匹配动作包括向分组应用表示为带宽_策略器_1的带宽控制策略器86。基于(一个或多个)分组报头中的信息,引导引擎在存储器56(或在高速缓存2 90中)中选择对应于分组所属的分组流的表示为策略器_上下文_1的相关的策略器上下文88。引导引擎使用选定的策略器上下文将带宽_策略器_1的策略器方案应用于分组,以产生策略器结果。
在本示例中,引导引擎在相同的匹配动作表MAT1中查找由带宽_策略器_1产生的策略器结果,这导致将被表示为带宽_策略器_2的另一策略器应用于分组的动作。
引导引擎为所述分组选择另一被表示为策略器_上下文_2的策略器上下文88,并且使用策略器_上下文_2将带宽_策略器_2应用于所述分组以产生另一策略器结果。引导引擎可以使用分组的不同的报头部分为同一分组选择不同的策略器上下文。
在本示例中,引导引擎在MAT2中查找带宽_策略器_2的策略器结果,并且可能还基于(一个或多个)分组报头,匹配MAT2中指定将分组转发到在主机上运行的某个VNF 70的对应动作。因此,引导引擎经由主机接口74将分组转发到相关的VNF。
例如,可在UPF应用程序中使用带宽控制策略器的级联。在此情况下,可以为移动用户分配三个带宽控制策略器,一个用于会话的带宽控制策略器,另一用于选定服务(例如,视频或语音呼叫)的带宽控制策略器,以及又一个用于服务质量(QoS)的带宽控制策略器。
一种用于网络适配器中带宽控制策略的方法
图3是示意性地绘示了根据本文所描述的实施方式的用于网络适配器中的带宽控制监管的方法的流程图。
所述方法将被描述为由图1的网络适配器44的处理电路76执行。所述方法针对从接入网络28接收并且传送到在主机上运行的应用程序的分组进行描述。
所述方法开始于在接收步骤150处,处理电路76经由网络接口72从接入网络28接收分组。在匹配动作表选择步骤154,处理电路为分组选择匹配动作表,并且在匹配步骤158处,处理电路在选定的匹配动作表中查找动作。
在动作查询步骤162处,处理电路检查匹配动作表中的匹配动作是否指定将带宽控制策略器或另一种类型的策略器应用于分组。当步骤162的动作指定给定的带宽控制策略器时,处理电路前进到上下文选择步骤166,在所述上下文选择步骤166处,处理电路从存储器56(或高速缓存2)获取相关的策略器上下文88。否则,所述方法前进到将在下面描述的步骤178。
在策略器应用步骤170,处理电路使用获取的策略器上下文将给定的带宽控制策略器应用于分组,以产生策略器结果。策略器结果可以包括例如颜色指示,诸如绿色、黄色或红色。备选地,也可以使用任何其他策略器结果编码。在策略器结果查找步骤174,处理电路在匹配动作表中查找策略器结果,以确定后续动作,例如,标记分组、丢弃分组、转发分组、镜像分组、对分组进行计数以进行计量,或前进到另一匹配动作表。
在动作执行步骤178,处理电路向分组应用步骤174的动作,或在上述步骤162的否定结果之后的非策略器动作。在查找查询步骤182,处理电路检查是否需要另一查找,例如,通过步骤178的动作或在步骤178的动作之后。当需要对所述分组进行另一次查找时,处理电路在下一个匹配动作表选择步骤184选择后续的匹配动作表并且循环回到步骤158以执行查找操作。否则,假设所述分组未被丢弃,例如,由于一个或多个带宽控制策略器的应用,则处理电路在转发步骤188处继续将分组转发到其目的地。在步骤188之后,所述方法终止。
针对从接入网络接收到的分组描述了图3的方法。然而,所述方法类似地适用于从在主机上运行的应用程序接收到的并且例如经由接入网络去往相应目标的分组。
以上描述的实施方式是以示例的方式给出的,并且也可以使用其他合适的实施方式。例如,尽管上述实施方式主要涉及在客户端节点和数据网络之间操作的用户平面服务器中的带宽控制策略器,但是所公开的实施方式类似地适用于包括通信网络中的端节点的网络节点。
应理解,上述实施方式是通过示例的方式引用的,并且所附权利要求不限于上文具体示出和描述的内容。相反,所述范围包含上文描述的各种特征的组合和子组合,以及本领域技术人员在阅读前述描述后会想到的并且在现有技术中未公开的其变化和修改。在本专利申请中通过引用并入的文件被认为是本申请的组成部分,除了在这些并入的文件中以与本说明书中明确或隐含的限定相冲突的方式限定的任何术语的范围内,应仅考虑本说明书中的限定。

Claims (22)

1.一种网络适配器,包括:
网络接口,所述网络接口被配置为连接到通信网络;
主机接口,所述主机接口被配置为与运行多个应用程序的主机处理器通信;以及
处理电路,所述处理电路包括一个或多个带宽控制策略器,所述处理电路被配置为:
从所述通信网络接收去往所述主机处理器上运行的所述应用程序中的给定应用程序的分组;
将从所述带宽控制策略器中选定的带宽控制策略器与所述分组相关联;以及
将所述选定的带宽控制策略器应用于所述分组以产生策略器结果。
2.根据权利要求1所述的网络适配器,其中所述处理电路被配置为基于所述策略器结果向所述分组应用给定动作。
3.根据权利要求2所述的网络适配器,其中所述给定动作选自包括以下的动作列表:标记所述分组、丢弃所述分组、转发所述分组、镜像所述分组、对所述分组进行计数以进行计量,以及前进到另一匹配动作表。
4.根据权利要求1所述的网络适配器,其中所述处理电路被配置为响应于将所述分组匹配到动作表中的动作而将所述带宽控制策略器相关联。
5.根据权利要求1所述的网络适配器,其中所述处理电路被配置为将与所述分组相关联的匹配动作表中的所述分组匹配到指定用于将所述分组发送到所述给定应用程序的转发方案的动作,并且基于所述转发方案将所述分组转发到所述给定应用程序。
6.根据权利要求1所述的网络适配器,其中所述处理电路被配置为将第一匹配动作表中的所述分组匹配到第一动作,将所述第一动作应用于所述分组,将第二匹配动作表中的所述分组匹配到第二动作,并且将所述第二动作应用于所述分组。
7.根据权利要求1所述的网络适配器,其中所述处理电路被配置为将从所述带宽控制策略器中选定的另一不同的所述带宽控制策略器与所述分组相关联,并且将所述另一带宽控制策略器应用于所述分组以产生另一策略器结果。
8.根据权利要求1所述的网络适配器,其中所述处理电路被配置为从所述处理电路可接入的存储器检索与所述分组相关联的所述策略器上下文,并且使用所述策略器上下文将所述选定的带宽控制策略器应用于所述分组。
9.根据权利要求1所述的网络适配器,其中所述给定应用程序选自包括以下的应用程序列表:虚拟机(VM)、控制一个或多个VM的管理程序、虚拟网络功能(VNF)、容器和非虚拟化应用程序,并且其中所述处理电路被配置为代表所述给定的应用程序应用所述选定的带宽控制策略器。
10.根据权利要求1所述的网络适配器,其中所述处理电路被配置为独立于去往其他应用程序的所述分组与相应带宽控制策略器的关联而将带宽控制策略器与所述分组相关联。
11.一种方法,包括:
在包括一个或多个带宽控制策略器的网络适配器中,其中所述网络适配器连接到通信网络和主机,所述主机包括运行多个应用程序的主机处理器,从所述通信网络接收去往所述主机处理器上运行的所述应用程序中的给定应用程序的分组;
将从所述带宽控制策略器中选定的带宽控制策略器与所述分组相关联;以及
将所述选定的带宽控制策略器应用于所述分组以产生策略器结果。
12.根据权利要求11所述的方法,还包括基于所述策略器结果向所述分组应用给定动作。
13.根据权利要求12所述的方法,其中所述给定动作选自包括以下的动作列表:标记所述分组、丢弃所述分组、转发所述分组、镜像所述分组、对所述分组进行计数以进行计量,以及前进到另一匹配动作表。
14.根据权利要求11所述的方法,其中关联所述带宽控制策略器包括响应于将所述分组匹配到动作表中的动作而关联所述带宽控制策略器。
15.根据权利要求11所述的方法,还包括将与所述分组相关联的匹配动作表中的所述分组匹配到指定用于将所述分组发送到所述给定应用程序的转发方案的动作,并且基于所述转发方案将所述分组转发到所述给定应用程序。
16.根据权利要求11所述的方法,还包括将第一匹配动作表中的所述分组匹配到第一动作,将所述第一动作应用于所述分组,将第二匹配动作表中的所述分组匹配到第二动作,并且将所述第二动作应用于所述分组。
17.根据权利要求11所述的方法,还包括将从所述带宽控制策略器中选定的所述另一不同的带宽控制策略器与所述分组相关联,并且将所述另一带宽控制策略器应用于所述分组以产生另一策略器结果。
18.根据权利要求11所述的方法,还包括从能够由所述处理电路接入的存储器检索与所述分组相关联的所述策略器上下文,并且使用所述策略器上下文将所述选定的带宽控制策略器应用于所述分组。
19.根据权利要求11所述的方法,其中所述给定应用程序选自包括以下的应用程序列表:虚拟机(VM)、控制一个或多个VM的管理程序、虚拟网络功能(VNF)、容器和非虚拟化应用程序,并且其中应用所述选定的带宽控制策略器包括代表所述给定应用程序应用所述选定的带宽控制策略器。
20.根据权利要求11所述的方法,其中关联所述带宽控制策略器包括独立于去往其他应用程序的所述分组与相应带宽控制策略器的关联而将所述带宽控制策略器与所述分组关联。
21.一种网络适配器,包括:
网络接口,所述网络接口被配置为连接到通信网络;
主机接口,所述主机接口被配置为与运行多个应用程序的主机处理器通信;以及
处理电路,所述处理电路包括一个或多个带宽控制策略器,所述处理电路被配置为:
从在所述主机处理器上运行的所述应用程序中的应用程序接 收去往目标的出站分组;
将从所述带宽控制策略器中选定的带宽控制策略器与所述出 站分组相关联;
将所述选定的带宽控制策略器应用于所述出站分组以产生策 略器结果;以及
基于所述策略器结果,对所述出站分组应用给定的操作。
22.一种方法,包括:
在包括一个或多个带宽控制策略器的网络适配器中,其中所述网络适配器连接到通信网络和主机,所述主机包括运行多个应用程序的主机处理器,
从在所述主机处理器上运行的所述应用程序中的应用程序接收去往目标的出站分组;
将带宽控制策略器与从所述带宽控制策略器中选定的所述出站分组相关联;
将所述选定的带宽控制策略器应用于所述出站分组以产生策略器结果;以及
基于所述策略器结果,对所述出站分组应用给定的操作。
CN202210050471.8A 2021-01-19 2022-01-17 网络适配器中的带宽控制策略器 Pending CN114827051A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/151,705 2021-01-19
US17/151,705 US11470007B2 (en) 2021-01-19 2021-01-19 Bandwidth-control policers in a network adapter

Publications (1)

Publication Number Publication Date
CN114827051A true CN114827051A (zh) 2022-07-29

Family

ID=82218245

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210050471.8A Pending CN114827051A (zh) 2021-01-19 2022-01-17 网络适配器中的带宽控制策略器

Country Status (3)

Country Link
US (2) US11470007B2 (zh)
CN (1) CN114827051A (zh)
DE (1) DE102022200554A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11470007B2 (en) 2021-01-19 2022-10-11 Mellanox Technologies, Ltd. Bandwidth-control policers in a network adapter

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100165855A1 (en) * 2008-12-30 2010-07-01 Thyagarajan Nandagopal Apparatus and method for a multi-level enmeshed policer
CN103051510A (zh) * 2011-09-07 2013-04-17 微软公司 网络策略向网络接口卡的安全和高效卸载
CN103141058A (zh) * 2010-09-23 2013-06-05 思科技术公司 用于虚拟分布式业务的网络接口控制器
US20150016266A1 (en) * 2013-07-09 2015-01-15 Cristian Florin Dumitrescu Traffic Management with Ingress Control
EP2830270A1 (en) * 2013-07-25 2015-01-28 Cavium, Inc. Network interface card with virtual switch and traffic flow policy enforcement
CN107005495A (zh) * 2017-01-20 2017-08-01 华为技术有限公司 用于转发数据包的方法、网卡、主机设备和计算机系统

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751663B1 (en) 1999-03-25 2004-06-15 Nortel Networks Limited System wide flow aggregation process for aggregating network activity records
US20040081095A1 (en) * 2002-10-29 2004-04-29 Yonghe Liu Policing mechanism for resource limited wireless MAC processors
US7307949B1 (en) * 2002-11-19 2007-12-11 Juniper Networks, Inc. Hierarchical policers for enforcing differentiated traffic behavior
US7701948B2 (en) * 2004-01-20 2010-04-20 Nortel Networks Limited Metro ethernet service enhancements
US7636304B2 (en) * 2005-03-30 2009-12-22 Cisco Technology, Inc. System and method for performing distributed policing
EP1729447A1 (en) 2005-06-03 2006-12-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Method and monitoring system for sample-analysis of data comprising a multitude of data packets
US8203953B2 (en) * 2007-10-30 2012-06-19 Cisco Technology, Inc. Bi-directional policer for data rate enforcement over half-duplex mediums
US7990982B2 (en) 2008-12-15 2011-08-02 At&T Intellectual Property I, L.P. Methods and apparatus to bound network traffic estimation error for multistage measurement sampling and aggregation
US9331947B1 (en) * 2009-10-05 2016-05-03 Arris Enterprises, Inc. Packet-rate policing and admission control with optional stress throttling
US8531945B2 (en) * 2009-10-07 2013-09-10 Wichorus, Inc. Method and apparatus to support deep packet inspection in a mobile network
US8352630B2 (en) * 2010-09-01 2013-01-08 Sonus Networks, Inc. Dynamic classification and grouping of network traffic for service application across multiple nodes
US8856518B2 (en) 2011-09-07 2014-10-07 Microsoft Corporation Secure and efficient offloading of network policies to network interface cards
US8705365B1 (en) 2012-02-21 2014-04-22 Cisco Technology, Inc. System and method for producing dynamic credit updates for time based packet sampling
US10341263B2 (en) 2012-12-10 2019-07-02 University Of Central Florida Research Foundation, Inc. System and method for routing network frames between virtual machines
US9882817B2 (en) * 2013-06-26 2018-01-30 Verizon Patent And Licensing Inc. Inter-device policing on network interface devices in LAG configuration
US9203711B2 (en) 2013-09-24 2015-12-01 International Business Machines Corporation Port mirroring for sampling measurement of network flows
US10635316B2 (en) * 2014-03-08 2020-04-28 Diamanti, Inc. Methods and systems for data storage using solid state drives
US10237354B2 (en) 2014-09-25 2019-03-19 Intel Corporation Technologies for offloading a virtual service endpoint to a network interface card
US9942158B2 (en) 2014-09-25 2018-04-10 Dell Products L.P. Data traffic policy management system
US20160262073A1 (en) * 2015-03-04 2016-09-08 Alcatel-Lucent Usa Inc. System and method for providing maximum fill link via bonded services
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US9912774B2 (en) 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
US11095535B2 (en) 2017-08-15 2021-08-17 Gigamon Inc. Adaptive and flexible packet sampling
US10924418B1 (en) 2018-02-07 2021-02-16 Reservoir Labs, Inc. Systems and methods for fast detection of elephant flows in network traffic
EP3957038A1 (en) * 2019-04-15 2022-02-23 British Telecommunications public limited company Policing of data
US11115294B2 (en) 2019-05-07 2021-09-07 Gigamon Inc. Automatic dynamic determination of data traffic sampling policy in a network visibility appliance
EP4014439A1 (en) 2019-09-13 2022-06-22 Huawei Technologies Co., Ltd. Adaptive in-band network telemetry for full network coverage
US11934330B2 (en) * 2020-05-08 2024-03-19 Intel Corporation Memory allocation for distributed processing devices
US11470007B2 (en) 2021-01-19 2022-10-11 Mellanox Technologies, Ltd. Bandwidth-control policers in a network adapter
US11310163B1 (en) 2021-02-10 2022-04-19 Mellanox Technologies, Ltd. Network flow sampling fairness

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100165855A1 (en) * 2008-12-30 2010-07-01 Thyagarajan Nandagopal Apparatus and method for a multi-level enmeshed policer
CN103141058A (zh) * 2010-09-23 2013-06-05 思科技术公司 用于虚拟分布式业务的网络接口控制器
CN103051510A (zh) * 2011-09-07 2013-04-17 微软公司 网络策略向网络接口卡的安全和高效卸载
US20150016266A1 (en) * 2013-07-09 2015-01-15 Cristian Florin Dumitrescu Traffic Management with Ingress Control
EP2830270A1 (en) * 2013-07-25 2015-01-28 Cavium, Inc. Network interface card with virtual switch and traffic flow policy enforcement
CN104348694A (zh) * 2013-07-25 2015-02-11 凯为公司 具有虚拟交换机和业务流策略增强的网络接口卡
CN107005495A (zh) * 2017-01-20 2017-08-01 华为技术有限公司 用于转发数据包的方法、网卡、主机设备和计算机系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
嵇鹏: "分级预留带宽接纳策略及其公平性分析", 计算机工程与应用, no. 04 *

Also Published As

Publication number Publication date
US11621920B2 (en) 2023-04-04
US20220417157A1 (en) 2022-12-29
DE102022200554A1 (de) 2022-07-21
US11470007B2 (en) 2022-10-11
US20220231953A1 (en) 2022-07-21

Similar Documents

Publication Publication Date Title
US11677851B2 (en) Accelerated network packet processing
US10015090B2 (en) Packet steering
US10057387B2 (en) Communication traffic processing architectures and methods
US9654406B2 (en) Communication traffic processing architectures and methods
US7340535B1 (en) System and method for controlling routing in a virtual router system
EP2727297B1 (en) Variable-based forwarding path construction for packet processing within a network device
US9407560B2 (en) Software defined network-based load balancing for physical and virtual networks
US7376125B1 (en) Service processing switch
US10162654B2 (en) Network policy implementation with multiple interfaces
KR102586898B1 (ko) 패킷 처리 방법 및 장치, 및 관련 디바이스들
WO2015058698A1 (en) Data forwarding
CN113676361A (zh) 针对体验质量度量的按需探测
JP2015019369A (ja) イングレス制御を備えたトラフィック管理
WO2015058699A1 (en) Data forwarding
KR20110110843A (ko) 가상 머신 네트워킹을 위한 방법 및 시스템
US20220091754A1 (en) Methods and systems for nvme target load balancing based on real time metrics
WO2015066878A1 (zh) Sdn网络中的控制设备和控制方法
EP3028401A1 (en) Address resolution rewriting
US20220286409A1 (en) Method and apparatus for configuring quality of service policy for service, and computing device
CN113395212A (zh) 网络装置及其操作方法和非暂时性计算机可读介质
US11621920B2 (en) Bandwidth-control policers in a network adapter
US11374872B1 (en) Methods and systems for adaptive network quality of service for latency critical applications
WO2018144343A1 (en) Software defined network (sdn) data-plane control functions based on aggregated performance indexes and received application specific requirements
US20210336895A1 (en) Data transmission method and network device
WO2022214854A1 (en) Methods and systems for efficient metadata and data delivery between a network interface and applications

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