CN105282135A - 采用软件定义联网中的虚拟机和虚拟化容器的本地服务链接 - Google Patents

采用软件定义联网中的虚拟机和虚拟化容器的本地服务链接 Download PDF

Info

Publication number
CN105282135A
CN105282135A CN201510264698.2A CN201510264698A CN105282135A CN 105282135 A CN105282135 A CN 105282135A CN 201510264698 A CN201510264698 A CN 201510264698A CN 105282135 A CN105282135 A CN 105282135A
Authority
CN
China
Prior art keywords
lsc
container
virtual
grouping
vnic
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
CN201510264698.2A
Other languages
English (en)
Other versions
CN105282135B (zh
Inventor
T.库佩
B.J.斯科里
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN105282135A publication Critical patent/CN105282135A/zh
Application granted granted Critical
Publication of CN105282135B publication Critical patent/CN105282135B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment

Abstract

用于采用软件定义联网(SDN)中的虚拟机(VM)或虚拟化容器实现本地服务链接(LSC)的方法、软件和装置。在一个方面,方法在计算平台上实现,该计算平台包括多个VM或容器,每个包括通信地耦合于SDN中的虚拟交换机的虚拟网络接口控制器(vNIC)。LSC经由由多个VM或容器托管的多个虚拟网络组件来实现。每个LCS包括由对LSC定义的虚拟网络组件所执行的服务序列(链)。连同执行服务链,使用直通机制在VM或容器之间转发分组数据,分组数据根据该直通机制采用绕过虚拟交换机的方式直接写入vNIC上的接收(Rx)缓冲器。LSC记号(例如,通过LSC标签)和流表用于将分组数据要写入的下一个vNIC?Rx缓冲器或Rx端口告知每个虚拟网络组件和/或它的托管VM或容器。

Description

采用软件定义联网中的虚拟机和虚拟化容器的本地服务链接
背景技术
访问计算机网络已变成现今计算机使用的无所不在的部分。无论是在企业环境中访问局域网(LAN)来访问共享网络资源还是经由LAN或其他接入点来访问互联网,用户似乎总是登录到经由计算机网络而访问的至少一个服务。此外,基于云的服务的快速扩充导致计算机网络的甚至进一步使用,并且预测这些服务变得越来越普遍。
联网通过各种类型的设备而便利化,包括路由器、交换机、网桥、网关和接入点。大的网络基础设施典型地包括使用电信级网络元件,包括由例如Cisco Systems、Juniper Networks、Alcatel Lucent、IBM、和Hewlett-Packard等公司制造的交换机和路由器。这样的电信交换机是非常复杂的,其以非常高的带宽操作并且提供先进路由功能性以及支持不同的服务质量(QoS)水平。商业和家庭用户最常使用例如局域网(LAN)等私有网络。采用基于硬件和/或软件的防火墙和类似物,这对于许多商业网络也是常见的。
近年来,看到计算机系统的虚拟化快速发展,特别在服务器部署和数据中心中。根据常规方法,服务器直接在例如CPU、RAM、存储设备(例如,硬盘)、网络控制器、I/O端口等物理硬件资源上运行操作系统的单个实例。根据使用虚拟机(VM)的一个虚拟化方法,采用物理硬件资源来支持虚拟资源的对应实例,使得多个VM可在服务器的物理硬件资源上运行,其中每个虚拟机包括它自己的CPU分配、存储器分配、存储设备、网络控制器、I/O端口等。相同或不同操作系统的多个实例然后在多个VM上运行。此外,通过使用虚拟机管理器(VMM)或“管理程序”,在服务器运行时可以动态分配虚拟资源,从而能够增加、关闭VM实例或使其改作他用而不需要关闭服务器。这提供更大的服务器利用灵活性和服务器处理资源的更好使用,尤其是对于多核处理器核/或多处理器服务器。
根据另一个虚拟化方法,使用基于容器的OS虚拟化,其采用虚拟化“容器”而不使用VMM或管理程序。代替在相应VM上托管操作系统的独立实例,基于容器的OS虚拟化跨多个容器共享单个OS内核,其对于每个容器具有系统和软件库的独立实例。如与VM一样,还存在分配给每个容器的虚拟资源。
过去几年还看到软件定义联网(SDN)和网络功能虚拟化(NFV)的部署的快速发展。根据SDN,对于将业务转发到选择的目的地的底层系统(数据平面)将做出关于将业务发送到哪里的决定的系统(控制平面)解耦。可采用SDN概念来使得网络虚拟化便利化,从而使服务提供商能够经由软件应用和API(应用编程接口)来管理他们的网络服务的各种方面。根据NFV,通过将网络功能虚拟化为软件应用,网络服务提供商可以在网络配置方面获得灵活性,从而实现明显的益处,包括可用带宽的优化、成本节省和更快的新服务上市时间。
“服务链接(service chaining)”通常在SDN的上下文中使用来描述穿越网络、由在各种物理计算节点处实现的一系列网络服务元件处理的分组的流。如本文使用的,术语“本地服务链接(LSC)”用于描述穿越网络(其在计算节点内部)、由在VM或虚拟化容器中实现的一系列网络服务元件处理的分组的流。根据常规方法,LCS采用虚拟交换机(VS)或等同机构的使用以在VM之间交换分组。该交换机制需要计算资源并且不利地影响系统吞吐量。该问题在通过LSC处理大量业务时加剧,因为每个分组的处理可牵涉经由一个或多个VS的多个数据传输。
附图说明
前述方面和本发明的伴随优势中的许多通过参考下列详细描述在结合附图(其中类似的标号指代贯穿各种视图的类似部件,除非另外规定)来看时变得更好理解同样也变得更容易被认识:
图1是图示架构的示意图,该架构包括对于计算平台的虚拟机,配置成通过使用LSC来执行分组处理操作;
图1a是图示图1的计算平台的增强版本的示意图,据此,分组数据直接从网络接口传输到虚拟网络接口控制器(vNIC)中的接收(Rx)缓冲器(buffer);
图1b是图示对于计算平台的架构的示意图,包括配置成通过使用LSC来执行分组处理操作的虚拟化容器;
图2是图示由在计算平台上执行的软件执行来使LSC实现便利化的操作和逻辑的流程图;
图3是图示图1的架构的共享存储器区域中的Rx FIFO队列的另外的细节的示意图;
图4是图示用于使用LSC ID来实现LSC操作的图1的架构的流表中包含的第一组示范性数据的图;
图4a是图示用于使用流ID来实现LSC操作的图1的架构的流表中包含的第二组示范性数据的图;
图4b是图示用于对在预定义网络端口接收的所有分组实现预定义LSC的图1的架构的流表中包含的第三组示范性数据的图;
图5是包括虚拟机(经由该虚拟机可实现本文公开的实施例的方面)的第一示范性主机平台硬件和软件架构的示意图;
图6是包括实现基于容器的虚拟化的容器(由此可实现本文公开的实施例的方面)的第二示范性主机平台硬件和软件架构的示意图。
具体实施方式
在本文描述用于采用在软件定义联网中的虚拟机或虚拟化容器来实现本地服务链接的方法、软件和装置的实施例。在下列描述中,阐述许多具体细节来提供对本文公开和图示的实施例的全面理解。然而,相关领域内技术人员将认识到本发明可在没有这些具体细节中的一个或多个的情况下实践,或用其他方法、部件、材料等实践。在其他实例中,未详细示出或描述众所周知的结构、材料或操作以避免使本发明的方面难以理解。
为了清楚起见,本文的图中的个体部件也可通过它们在图中的标记来参考,而不是通过特定标号。另外,指代特定类型部件(如与特定部件相对)的标号可用后跟“(typ)”(意思是“典型的”)的标号来示出。将理解这些部件的配置将是可存在但为了简单或清楚起见而未在图中示出的相似部件或未用独立标号标记的另外的相似部件的代表。相反,“(typ)”不解释为意指部件、元件等典型地用于它的公开功能、实现、目的等。
如本文使用的,术语“虚拟组件”、“虚拟网络组件”、“网络组件”或简单地“组件”可能互换地使用。另外,为了本文的目的(包括权利要求),配置成实现网络功能虚拟化或与软件定义联网有关的任何基于软件的组件可更一般地称为“虚拟组件”,其中理解虚拟网络组件包括配置成实现网络功能虚拟化和/或与软件定义联网有关的操作的任何网络组件或虚拟化实体。因此,下列描述中的术语虚拟组件也包括所有NFV组件。
根据本文描述的实施例的方面,分组吞吐量通过创建“直通”机制而加速,该“直通”机制使分组能够在虚拟网络组件与相似SDN部件之间传输而不使用虚拟交换机。这部分地经由使用“本地服务链接(LSC)”而便利化,该“本地服务链接(LSC)”在本文用于描述穿越网络(其在计算节点内部)的分组的流,这些分组在该计算节点下由在多个虚拟机或虚拟化容器中实现的一系列网络服务元件(例如,虚拟网络组件)处理。
通过示例并且没有限制地,图1示出对于配置成通过使用LSC来执行分组处理操作的计算节点(例如,计算平台(例如服务器))的架构100。架构100包括计算平台102,其耦合于网络接口104,该网络接口104可在计算平台上集成(例如,作为网络接口控制器(NIC))或用别的方式操作地耦合于计算平台(例如,作为在PCIe(高速外围部件互连)扩充插槽中安装的PCIe卡)。计算平台102包括主机操作系统(OS)106,其在配置成托管多个应用(在应用存储器空间108中运行)(其被描绘为在主机OS 106之上)的OS存储器107中运行。这包括虚拟交换机109和配置成托管N个虚拟机112(如由标记为VM1、VM2和VMN的虚拟机描绘)的管理程序110。软件部件进一步包括SDN控制器114。
网络接口104包括标记为Port1、Port2…PortMM个网络端口116,其中M可与N相同或不同。每个网络端口116包括接收(Rx)缓冲器118和传送(Tx)缓冲器120。如在本文的图中使用的,描绘的Rx和Tx缓冲器以及Rx和Tx队列也可代表同定位的Rx和Tx端口;为了减少杂乱,Rx和Tx端口未独立示出,但本领域内技术人员将认识到每个Rx和Tx端口将包括一个或多个Rx和Tx缓冲器和/或队列。
一般,网络接口可包括在Rx和Tx端口中实现的相对小的Rx和Tx缓冲器,并且然后包括可在网络接口(其跨多个Rx和Tx端口被共享)上的输入/输出(IO)存储器中实现的较大Rx和Tx缓冲器。在图示的示例中,IO存储器的至少一部分是存储器映射IO(MMIO)122,其由主机OS 106的OS存储器107中的NIC驱动器124配置。MMIO 122配置成支持MMIO 122中的存储器缓冲器与计算平台102上的系统存储器中的缓冲器之间的直接存储器访问(DMA)数据传输,如在下文进一步详细描述的。
虚拟交换机108是基于软件的实体,其配置成在计算平台102内部执行SDN交换操作。在图示的示例中,虚拟交换机108包括对于网络接口104上的每个物理Rx和Tx端口(例如,对于Port1-PortM中的每个)的虚拟Rx和Tx端口,和对于虚拟机VMV1-VM N中的每个的虚拟Rx和Tx端口。网络接口侧上的虚拟端口描绘为Rx虚拟端口126和Tx虚拟端口127,而VM侧上的虚拟端口描绘为Rx虚拟端口128和Tx虚拟端口129。如进一步示出的,Rx和Tx虚拟端口126、127、128和129中的每个的一部分描绘为与系统存储器地址空间的共享存储器区域134(也称为共享地址空间)重叠。另外,Rx和Tx虚拟端口130和132的组对进一步描绘为扩展到相应虚拟NIC(vNIC),如由vNIC1、vNIC2和vNICN示出的,其中vNIC与相应虚拟机VM 1、VM 2和VM N关联。
示出虚拟机VM 1、VM 2和VM N中的每个,其包括虚拟组件136和三个应用138(具有识别其上运行虚拟组件和应用的对应VM的记号)。例如,对于VM 1,虚拟组件标记为“组件1”并且应用标记为“应用1A”、“应用1B”和“应用1C”。一般,每个虚拟组件136可经由一个或多个应用138来实现,并且包括三个应用仅仅是为了说明目的。在计算平台102的操作期间,虚拟组件136中的每个配置成执行一个或多个分组处理服务。此外,这些分组处理服务采用如由与每个分组关联的分组流的可适用LSC限定的链接方式实现。
经由连同分组140的处理描绘的操作和数据传输,并且进一步参考在图2中示出的流程图200,使用本地服务链接的链接分组处理服务的概念进一步在图1中图示。分组140描绘为IP(互联网协议)分组,并且IP分组的该示范性使用意指分组采用IP寻址,其部分地用于确定分组140在网络中被转发到哪里以及由计算平台102内部处理。如在流程图200的框202中示出的,过程以在网络接口102的Port1处从网络接收分组140开始。一般,分组数据作为数据位流在网络的链路上传输。例如,对于以太网网络,分组数据作为以太网帧的流传输。在Port1处,执行可适用的物理层(PHY)操作来提取以太网分组,其封装要由虚拟组件136处理的分组数据。提取的以太网分组在Port1的Rx缓冲器118中缓冲。
接着,在框204中,从以太网分组提取IP分组。可选地,如能适用的话,可提取层4或更高级分组。一般,框204的操作可由网络接口104、基于OS软件的联网部件(描绘为网络堆栈142)执行或由这两个的组合使用分裂处理方案来执行。例如,一些较新的NIC支持层3(IP)分组处理操作并且还可支持TCP(事务控制协议)分组处理操作。其他层4和更高分组处理通常将经由网络堆栈142中的软件部件执行,但这些也可由NIC或相似的网络接口实现。
在框206中,执行分组的流分类。这通常将牵涉检查分组报头或多个分组报头中的可适用报头字段来识别接收分组所属的分组流(如有的话)。如在下文进一步详细描述的,在一些实施例中,分组流信息可在分组报头字段中显式定义。分组流分类也可使用多个字段中的数据来执行,例如通过使用众所周知的N元组分组分类技术。
一般,分组报头检查可使用下列方案中的一个或多个来进行。在一个实施例中,分组从端口116中的Rx缓冲器DMA到OS存储器107中的Rx缓冲器144内(例如,使用DMA写操作)。例如,在一个实施例中,为采用循环FIFO(先进先出)指针的FIFO队列分配NIC端口Rx缓冲器中的存储器空间,并且FIFO报头指针指向DMA到Rx缓冲器144内的分组。根据一个实施例,FIFO队列如何操作的另外的细节在图3中示出并且在下文描述。作为备选,仅分组报头DMA到Rx缓冲器144内。作为再另一个选项,“原地”读取分组报头数据而未将分组数据或报头复制到Rx缓冲器144内。在该实例中,对于少量分组的分组报头数据读入与网络堆栈142关联的缓冲器或主机OS 106中的流分类器146内。相似地,对于由网络接口104执行的流分类,可原地读取分组报头数据;然而,在该实例中,缓冲器定位在网络接口104上、典型地将与MMIO 122(未示出)分开的存储器中。
流分类的结果返回对于分组的流标识符(流ID)。在一个实施例中,流ID添加到接收的没有显式流ID的分组的分组报头字段,或备选地,流ID标签附连(例如,附加到)“包装器”(其包括对于流ID的字段)或分组在“包装器”中封装。
如在图1中示出的,在图示的实施例中,分组分类由流分类器146执行。可选地,流分类可在网络接口104中经由相似的流分类器146a执行。在一个实施例中,实现分裂分类方案,由此在网络接口104中由流分类器146a识别现有流(例如,之前分类的流),而不属于现有流的分组被转发到流分类器146用于对应于新分组流的分组分类。对于新分组流的信息然后提供给流分类器146a。根据另一个实施例,由流分类器146维持的分类流列表小于流分类器146所维持的完整列表,并且与存储器高速缓存相似地操作,其中关于较新分组的流在NIC上的流分类器146a中维持并且较旧分组的流被替换。
如在框206中进一步描绘的,流ID用作对流表148的查找,该流表148描述为是虚拟交换机109的部分。在一个实施例中,流表包含流ID列和vNIC Rx端口ID列,使得给出输入流ID,查找将返回对应的vNIC Rx端口ID。流表148还可包含LSC ID,其可用于LSC标签或分组包装器中的字段或用别的方式与分组关联。可选地,LSC标签可由本地服务链中的第一虚拟组件添加。
除流表148在虚拟交换机109中实现外,流表的全部或一部分可在主机OS 106或网络接口104(其中没有一个在图1中示出)中实现。在网络接口104中采用流表的全部或一部分的实施例中,流表条目将一般由主机OS 106中的软件确定并且经由NIC驱动器124提供的接口来填充。
一旦识别vNIC Rx端口ID,将分组数据写入可适用的Rx缓冲器地址。在图1中图示的示例中,该Rx端口标记为V1 Rx(对于虚拟机VM 1的vNIC 1的Rx端口)。在一个实施例中,使用存储器写操作将分组数据从OS存储器107(未示出)中的Rx缓冲器复制,据此将数据从OS存储器Rx缓冲器复制到可适用的Rx缓冲器地址。在另一个实施例中,使用DMA写将分组数据从MMIO 122中的Port1的Rx缓冲器直接写入vNIC Rx缓冲器。例如,对于使它们的报头原地被检查的分组,可执行直接DMA写。
在一个实施例中,vNIC Rx缓冲器实现为具有循环FIFO指针的FIFO队列。采用该配置的一个实施例的细节在图3中示出。如朝图3的底部图示的,每个vNIC Rx端口130包括关联的vNIC Rx FIFO队列300。每个vNIC Rx FIFO队列300包括分成多个FIFO“槽”的地址空间;根据图示的实施例,每FIFO队列有256个槽,但这仅仅说明一个示例,因为FIFO槽的数量可改变。用于每个FIFO槽的大小也可改变。在一个实施例中,每个FIFO槽的大小与用于应用存储器空间108的高速缓存行的大小相同。每个vNIC Rx FIFO队列300进一步包括循环FIFO报头指针和循环FIFO尾指针。循环FIFO报头指针指向当前在FIFO队列的逻辑“顶部”的FIFO槽,而尾指针指向对应于FIFO队列的当前逻辑“底部”的FIFO槽。使用报头和尾指针的FIFO队列的操作在本领域内是众所周知的,因此在本文未提供这些操作的另外的细节。
在一个实施例中,每个vNIC经由一个或多个软件模块的集来实现。根据面向对象的设计,每个Rx FIFO队列可实现为对应类的实例(例如,Rx_FIFO_queue)。如众所周知的,类提供用于实现在类对象(例如,数据)上操作的功能的方法和用于将数据传递到其他软件部件(例如,其他类)并且从其他软件部件接收数据的接口。
在一个实施例中,DMA写请求发送到对于vNIC1 Rx FIFO队列的Rx_FIFO_queue(类)实例。响应于接收DMA写请求,Rx_FIFO_queue实例中的方法识别尾指针当前指向的FIFO槽的存储器地址并且将地址返回DMA写请求者(例如,网络接口104上的嵌入式软件模块)。DMA引擎或类似物(未示出)然后将分组数据(从其在MMIO 122中的位点)写入FIFO槽的存储器地址。对于其中分组数据跨越多个FIFO槽的实例,可相继执行多个DMA写。为了说明目的,分组数据示出为写入vNIC Rx端口的表示的底部;然而,本领域内技术人员将认识到分组数据被写入的槽的Rx FIFO队列中的位点将是FIFO尾指针指向的FIFO缓冲器的逻辑“底部”。
接着,在框207中,流ID标签或LSC标签附连到分组数据。如在图3中示出的,在一个实施例中,写入(分组数据写入的一个或多个槽中的)第一FIFO槽的数据包含附加到分组数据(其包括分组报头304和分组有效载荷数据306)的标签302。在一个实施例中,标签302用于存储在LCS标签(例如,LSC ID值)中。可选地,标签302可用于存储流ID。如众所周知的,IP分组(或其他类型的分组)的大小可改变,而分组协议报头的长度将一般是相同的(注意一些协议限定具有可选字段(其在使用时改变报头长度)的分组报头)。鉴于可变长度分组大小,对于指定分组的分组数据可写入一个或多个FIFO槽。
如由起始和结束循环块208和218划定的环所描绘的,对与指定分组流关联(或备选地,如由LSC标签、分组报头或包装器中的LSC ID显式识别的)的本地服务链中的每个虚拟组件执行多个操作。每个LSC包括多个服务。由采用与一组流水化服务相似的方式相继链接在一起的虚拟网络组件执行。示例服务可包括NAT(网络地址转换)服务、防火墙服务、分组处理服务、WAN优化、虚拟私有网网关、视频转码、内容分发网络服务等。为了说明性目的,图1示出从组件1到组件2…到组件N的链接序列。然而,这仅仅是示范性的,因为LSC可穿越组件的任何组合。此外,LSC不需要按递增顺序穿越组件(例如,LSC可以是组件3至组件2至组件5…)。实现多个组件来执行相同服务或服务集,这也是可能的。备选地,指定组件可配置成对不同的分组流执行不同的服务。
返回流程图200中的处理环,在框210中,对于LSC链中的当前虚拟组件的流和/或LSC执行分组处理操作。在一个实施例中,分组处理操作将在FIFO报头指针指向的vNIC Rx FIFO队列中的指定分组上执行。一些虚拟组件将读取分组数据并且使用该数据来执行处理(例如,将分组数据转发到消费者应用),而其他虚拟组件可修改分组数据(例如,修改分组报头中的一个或多个字段)。在修改分组数据的情况下,分组数据可以原地修改,或分组数据可复制到为虚拟组件(未在图1中示出)分配的VM上的缓冲器内并且然后修改。
在框212处继续,在完成由指定虚拟组件执行的操作时,做出关于分组数据要被转发到哪里、因此它可以被LSC中的下一个虚拟组件访问的决定,或如果当前虚拟组件是LSC中的最后的虚拟组件则做出关于将分组转发到什么Tx网络端口的决定。在一个实施例中,这使用LSC标签值作为对本地流表150的查找来执行。可选地,本地流表可包含流ID而不是LSC标签值,或本地流表除LSC标签值外还可包含流ID。一般,本地流表150可采用与流表148相似的方式配置;然而,本地流表指向对于托管LSC中的下一个虚拟组件的VM的vNIC Rx端口(或Rx FIFO队列),而不是指向对于托管LSC中的第一虚拟组件的VM的vNIC Rx端口(或Rx FIFO队列)。还注意流表148可包含关于非LSC流的信息,或另外这样的信息可在虚拟交换机109可访问的独立表中维持。
根据常规方法,对VM分配独立存储器空间并且数据通过使用虚拟交换机而在这些独立存储器空间之间传输。这必需首先将数据复制到vNIC Tx端口、将数据转发到虚拟交换机的Rx端口(经由存储器写)、经由虚拟交换机确定数据要写入的vNIC Rx端口、将数据复制或写入连接到该vNIC Rx端口的虚拟交换机Tx端口并且然后将数据写入vNIC Rx端口。实际上,这些写中的每个是到缓冲器,例如FIFO队列,并且交换过程牵涉大量开销。此外,在同时交换多个分组流时,虚拟交换机端口中的一个或多个存在拥挤的可能。
为了更好地理解常规虚拟交换机操作,考虑分组处理序列,其牵涉由一系列虚拟网络组件A、B、C和D执行的操作,这些虚拟网络组件中的每个执行与它所接收的分组有关的一个或多个操作。使这些操作链接使得操作a、b、c和d的序列由相应虚拟网络组件A、B、C和D执行,并且虚拟网络组件中的每个由连接到虚拟交换机S的独立VMA-D托管。根据现有方法,分组流将处理如下:VMA到S到VMB到S到VMC到S到VMD。到和从虚拟交换机S的每个传输需要使用对虚拟机VMA、VMB、VMC和VMD相应地连接的独立虚拟交换机端口所实现的独立接收和传送缓冲器/队列。
根据本文的实施例的方面,实现“直通”机制,数据可根据该机制从第一vNIC Rx缓冲器(例如,vNIC Rx FIFO队列)或托管执行LSC中的当前服务的虚拟组件的VM上的缓冲器直接写入托管要执行LSC中的下一个服务的虚拟组件的VM的vNIC Rx缓冲器(例如,vNIC Rx FIFO队列)。这部分地通过使用共享存储器区域134而便利化:因为vNIC Rx FIFO队列在对于所有VM可访问的共享存储器区域中,任何VM可以采用绕过虚拟交换机的方式写入任何其他VM的vNIC Rx FIFO队列。这提供存储器传输的明显减少,以及消除在虚拟交换操作期间引起的对应延迟。
如由决策框214描绘的,如果下一个缓冲器是vNIC Rx FIFO队列,则流程表逻辑行进到框216,其中将分组数据直接写入识别的vNIC Rx FIFO队列,从而绕过虚拟交换机134。如之前那样并且如描绘的,分组数据写入vNIC Rx端口表示的底部。同样与之前那样,这可通过将数据写入FIFO尾指针当前指向的Rx FIFO队列中的槽的地址而实施。
如果框212中的流ID查找将下一个缓冲器识别为网络Tx端口,流程表逻辑行进到框220,其中分组数据从当前vNIC Rx FIFO槽(或如果与当前虚拟组件关联则是本地缓冲器)DMA写入网络Tx缓冲器,其定位在MMIO 122的地址空间中。在图1中图示的示例中,这描绘为分组数据从vNICN的Rx FIFO队列到网络接口104上的PortM的Tx缓冲器的直接传输。备选地,分组数据可通过虚拟交换机109转发,而不是直接DMA数据传输。在一个实施例中,分组数据从vNICN Rx FIFO队列(或VM N上的缓冲器)直接复制到虚拟交换机上的网络Tx缓冲器(而不是经由vNICN 的Tx端口转发)。
如在图1的右下角处描绘的,分组152从PortM的Tx端口传送到网络内。一般,分组140和152的报头可不同,而分组有效载荷数据可保持相同。例如,对于指定分组的分组报头中的一个或多个字段可在由虚拟组件所执行的LSC处理操作期间改变。在一些实例中,分组有效载荷数据还可由于LSC所执行的服务而改变。
前面的分组140的处理说明在每流基础上处理分组的一个技术。在一个实施例中,SDN控制器114配置成管理由流表148和本地流表150使用的流ID和/或LSC数据。对于指定分组流的分组可使用包括相应虚拟组件所执行的链接服务序列的LSC来服务,如上文论述的。在一个实施例中,对于流表中的流ID或LSC ID的进入点(例如,入口Rx端口、Rx缓冲器或Rx FIFO队列)用于查找对于服务链的下一个进入点(例如,下一个Rx端口、Rx缓冲器或Rx FIFO队列)。因此,流表一般可包括两个或以上的列,一个包含流ID或LSC ID并且另一个包含下一个进入点。在另一个实施例中,流ID用于将从网络接收的分组转发到第一虚拟组件,其然后进行流ID到LSC ID映射并且将LSC标签附连到分组用于进一步处理。
在每流实现上使用的LSC可由SDN控制器114预先配置,或在流首次出现时确定。例如,根据OpenFlow协议,分组流和对应的LSC可在运行时操作期间确定。对于LSC的特定序列链可由SDN控制器中的逻辑、另一个部件中的逻辑(例如中央SDN控制器(例如,协调器)或类似物)、或SDN控制器部件和相关部件的组合来确定。
图4描绘对于流表148(表1、表2和表N)的一组示范性表数据。流表148包括流ID列(其包含流ID)、入口端口列(其包含入口端口ID)和LSC ID列,其包含LSC ID。表1、表2和表N中的每个包括LSC ID列、下一个端口列和服务列。在一个实施例中,对于表148(表1、表2和表N)中的每个的表数据由SDN控制器114管理。一般,表数据可在计算平台的初始化期间和/或在运行时操作期间填充。
在一个实施例中,表数据实现如下。结合流分类,确定对于分组的流ID。这用作对流表148的查找。从流ID可以确定托管服务链中的第一虚拟组件的VM的入口端口。还可以确定LSC ID。作为选项,流表148可不包括LSC ID列并且流ID到LSC ID映射由每个LSC中的第一虚拟组件执行。
如示出的,入口端口对于每个流不必相同。根据要执行的服务,LSC可跳过一个或多个虚拟组件。同样,由指定虚拟组件执行的服务也可不同,这取决于LSC ID。服务列中‘A’、‘B’和‘C’的使用对应于由每个流表150所对应的虚拟组件所执行的服务。包括服务列是可选的,因为根据一些实现,指定虚拟组件将对于它提供服务的所有LSC(或流)执行相同服务。另外,网络适配器/NIC处的出口端口也可不同,这取决于特定LSC。
图4a图示对流表150采用流ID而不是LSC ID的备选流表方案。流ID到LSC映射由SDN控制器114在内部执行使得可使用流ID来代替LSC ID。处理逻辑的剩余部分仍然相同。
除每流本地服务链接外,计算平台可预先配置成对由网络接口接收的所有分组或在网络节点的预定端口处接收的所有分组执行相同服务集(并且从而实现相同LSC)。图4b示出流表148a(Flow Table1、Flow Table2和Flow TableN)中的示范性表数据来实现单个预定LSC。如图示的,对于所有流的入口端口是vNIC1 Rx。同时,对于每个虚拟组件的下一个端口是对于LSC中的下一个虚拟组件的vNIC Rx端口。为了说明目的,示出流表数据用于实现预定LSC。实际上,可以使用其他技术,例如配置软件变量和/或软件指令来实现预定LSC。例如,软件可以下载到虚拟机中的每个来实现LSC而不使用流表。相似地,网络适配器或NIC可以配置成将所有分组转发(例如,经由DMA写)到对于LSC的入口vNIC Rx端口。
图1a图示使用预定LSC的分组140的处理。如图示的,分组140从Port1的Rx端口DMA到vNIC1的Rx端口,从而绕过之前可已经由主机OS 106执行的任何操作,并且还绕过虚拟交换机109。根据另一个实施例,分组可从网络接口DMA到Rx缓冲器144并且然后到vNIC1的Rx端口。
根据另一个方法,LSC使用添加到分组报头的元数据来实现。根据该技术,外部平台上的实体(例如,协调器或类似物)可确定整个服务链的元素,则一旦服务链到达具有LSC的平台,在平台上操作的软件使用该元数据来确定分组流。这样,LSC可以与经由在多个平台上操作的虚拟组件而实现的较大服务互操作。
一般,在其中VM放置由协调器进行的网络功能虚拟化系统中,协调器将托管服务链的虚拟组件的VM实例化成单个物理平台,使得可以利用根据本文的实施例实现本地服务链的固有益处,这可是有利的。例如,因为采用流水化方式对指定流的每个分组执行相同服务,FIFO溢流(FIFO队列中没有空间来添加更多的数据分组)的潜在问题可以通过使用大小适当的FIFO队列来消除。该方法也消除可由于虚拟交换机中的业务拥挤而出现的任何延迟;这样的延迟导致降低整个服务链的处理性能,因为对于单个分组的延迟导致对于所有后续分组的处理延迟。
注意尽管在图中图示并且在本文描述FIFO队列,使用如本领域内已知的其他类型的队列,这是可能的。然而,对于链接操作,FIFO队列通过它们的简单性和缺乏开销来提供固有优势。此外,尽管对每个vNIC Rx端口示出单个FIFO队列,可采用一个或多个FIFO队列。例如,独立FIFO队列可用于相应的流和/或LSC。
计算机平台也可配置成支持LSC流和非LSC流两者。例如,在流分类期间,分组可识别为属于不与LSC关联的流。因此,分组可以使用用于处理分组流的常规技术来处理。
除使用流表150外,其他技术可用于使每个VM能够确定应对它接收的与LSC关联的每个分组采取什么动作。例如,在一个实施例中,入口VM中的LSC模块用合适LSC标记来标记分组,接收分组的每个后续VM使用该合适LSC标记以确定应对分组执行什么服务(如有的话)并且确定分组应转发到的下一个VM。
图5示出示范性主机平台配置500,其包括平台硬件502和各种基于软件的部件。平台硬件502包括中央处理单元(CPU)504,其经由互连510耦合于存储器接口506和输入/输出(I/O)接口508。在一些实施例中,前面的部件中的全部或一部分可在片上系统(SoC)上集成。存储器接口506配置成使对系统存储器512的访问便利化,该系统存储器512通常将与SoC分开。
I/O接口508说明由平台硬件502提供的各种I/O接口。一般,I/O接口508可实现为分立部件(例如ICH(I/O控制器集线器)),或它可在SoC上实现。此外,I/O接口508还可实现为I/O层级结构,例如外围部件互连高速(PCIe™)I/O层级结构。I/O接口508进一步使各种I/O资源和设备与其他平台部件之间的通信便利化。这些包括非易失性存储设备,例如盘驱动器514,其经由盘控制器516、固件存储518、NIC 520和各种其他I/O设备(共同描绘为其他硬件522)而耦合于I/O接口508。
一般,CPU 504可包括单核处理器或多核处理器,例如由M个核505描绘的。采用多个核来执行各种软件部件424,例如模块和应用,其存储在一个或多个非易失性存储设备中,如由盘驱动器514描绘的。更一般地,盘驱动器514代表各种类型的非易失性存储设备,其包括基于磁和基于光的存储设备两者,以及例如固态驱动器(SSD)或闪存等固态存储设备。可选地,软件部件524中的全部或一部分可存储在经由网络526而访问的一个或多个存储设备(未示出)上。
在启动或运行时操作期间,各种软件部件524和固件部件528加载到系统存储器512(如由FW空间描绘的)内并且作为进程(其包括执行线程或类似物)在核505上执行。根据特定处理器或SoC架构,指定“物理”核可实现为一个或多个逻辑核,其中对各种逻辑核分配进程。例如,根据Intel® Hyperthreading™架构,每个物理核实现为两个逻辑核。
根据对平台硬件502的典型系统启动,固件528将在系统存储器512中加载和配置,后跟启动主机OS 530。随后,将起动管理程序532,其一般可包括在主机OS 530上运行的应用。然后可采用管理程序532来起动各种虚拟机VM1-N ,其中的每个将配置成使用系统存储器512的各种部分(即,地址空间)。进而,可采用每个虚拟机VM1-N 来托管相应的操作系统5341-N
在运行时操作期间,管理程序532能够重新配置各种系统资源,例如系统存储器512、核505和盘驱动器514。一般,虚拟机在它们托管的操作系统与底层平台硬件502之间提供抽象(结合管理程序532),从而能够在VM1-N 之间共享硬件资源。从每个托管的操作系统的角度来看,该操作系统“拥有”整个平台,并且不知道在虚拟机上运行的其他操作系统的存在。事实上,每个操作系统仅仅访问仅由管理程序532分配给它的资源和/或资源部分。
如进一步在图5中图示的,每个操作系统包括内核空间和用户空间,两者都在系统存储器512中实现为存储器空间。保护内核空间并且其用于运行操作系统内核部件,其包括联网堆栈。同时,操作系统的用户空间用于运行用户应用,如由组件1、2和N以及应用1A-C、2A-C和NA-C描绘的。
一般,组件1、2和N说明可在平台硬件502上的虚拟机上运行的各种SDN或NFV组件。为了简单起见,每个VM1-N 描绘为托管相似软件应用集;然而,这仅仅是为了说明目的,因为对于指定平台的VM可托管相似应用,或可托管不同应用。相似地,每个VM1-N 可托管单个虚拟网络组件(如示出的)、可托管多个虚拟网络组件或可不托管任何虚拟网络组件。
如上文论述的,除使用VM来使计算机平台虚拟化外,可实现采用虚拟化容器的基于容器的OS虚拟化。采用基于容器的虚拟化的实施例的示例在图1b中示出的架构100b和图6中的平台配置600中描绘。
在平台配置600中使用的硬件配置与平台配置500相同,如示出的。平台配置中的差异在软件中出现。平台配置600中的软件包括主机OS 602、OS虚拟化层604和多个容器606。可选地,容器还可叫作虚拟引擎、虚拟机或其他术语,这取决于提供基于容器的虚拟化软件的供应商或描述基于容器的OS虚拟化如何工作的作者。
每个容器包括软件库和应用的集,其在逻辑上分成系统部件和应用和/或用户部件。系统部件包括系统库和系统软件模块。如图示的,每个容器包括联网堆栈系统模块或类似物。虚拟组件在应用/用户空间中运行。一般,可配置虚拟组件使得它们对于它们是在VM还是容器上操作不可知,或另外在配置成在VM上运行(如与由容器托管相对)的虚拟组件之间存在微小差异。
如在图1b的架构100b中示出的,架构部件与在架构100和100a中示出的那些大致相似,其中主要差异是用OS虚拟层604取代管理程序并且用容器606取代VM。如与VM一样,每个容器包括相似软件部件集,其包括vNIC、一个或多个虚拟组件136和对应应用138,以及流表150。
除使用IP分组和以太网分组外,可使用虚拟化覆盖,例如VXLAN(虚拟扩展局域网)、NVGRE(使用通用路由的网络虚拟化),其采用内和外IP地址。为了使用VXLAN或NVGRE来实现本地服务链接,覆盖的存在将只是添加到IP的处理,如在上文的实施例中描述的。用于使用VXLAN和NVGRE来处理分组的另外的技术对于本领域内技术人员是已知的,因此在本文未描述用于使用VXLAN或NVGRE来实现实施例的另外的细节。
本文描述的主旨的另外的方面在下面的编号条款中阐述:
1. 一种在计算平台上实现的方法,多个虚拟机(VM)或虚拟化容器(容器)在该计算平台上运行,每个VM或容器包括虚拟网络接口控制器(vNIC),其通信地耦合于软件定义网络(SDN)中的虚拟交换机,该方法包括:
经由多个VM或容器所托管的多个虚拟网络组件来实现本地服务链(LSC),每个虚拟网络组件配置成对要由LSC处理的多个分组中的每个执行一个或多个服务;以及
在不使用虚拟交换机的情况下在VM或容器之间传输对应于多个分组的分组数据。
2. 如条款1的方法,其中通过将分组数据直接写入第二Rx缓冲器来将分组数据从第一VM或容器传输到第二VM或容器,该第一VM或容器包括具有第一接收(Rx)缓冲器的第一vNIC并且托管LSC中的当前虚拟网络组件,该第二VM或容器包括具有所述第二Rx缓冲器的第二vNIC并且托管LSC中的下一个虚拟网络组件。
3. 如条款2的方法,其中分组数据从第一Rx缓冲器复制到第二Rx缓冲器。
4. 如条款3的方法,其中第一和第二Rx缓冲器的至少一部分配置为相应的先进先出(FIFO)队列,并且对于指定分组的分组数据从第一FIFO队列中的一个或多个槽复制到第二FIFO队列中的一个或多个槽。
5. 如条款1-4中的任一项的方法,其进一步包括:
实现多个LSC,每个LSC包括要对使用该LSC处理的分组执行的唯一服务序列;以及
对多个LSC中的每个,实现用于使对于指派给该LSC的分组的分组数据的传输便利化的机制,其中对于每个LSC,分组数据采用不穿越虚拟交换机的链接方式在托管对于该LSC的虚拟网络组件的VM或容器之间传输。
6. 如条款5的方法,其中所述机制包括对于每个VM或容器的相应本地流表,其中对于指定VM或容器的本地流表识别对于托管LSC中的下一个虚拟网络组件的VM或容器的vNIC接收(Rx)端口或Rx缓冲器中的至少一个。
7. 如条款6的方法,其进一步包括对于每个VM或容器使用SDN控制器来配置本地流表。
8. 如条款1-7中的任一项的方法,其进一步包括:
对多个VM或容器中的每个分配相应的应用存储器空间,其中在VM或容器的应用存储器空间中运行的应用不能访问另一个VM或容器的应用存储器空间;以及
分配共享存储器空间,对于由VM或容器中的每个的虚拟网络接口控制器(vNIC)所采用的接收缓冲器采用该共享存储器空间,其中使每个VM或容器能够从共享存储器空间读取以及写入共享存储器空间。
9. 如条款1-8中的任一项的方法,其中计算平台包括网络接口,其包括通信地耦合于计算平台的至少一个网络端口,该方法进一步包括:
在网络接口的网络端口处接收分组;
确定分组所属的流或要用于服务于分组的LSC中的至少一个;以及
将分组从网络接口转发到对于用于托管对该LSC所定义的第一虚拟网络组件的VM或容器的vNIC的接收缓冲器。
10. 如条款9的方法,其中通过使用直接存储器访问(DMA)数据传输将对于分组的分组数据从网络接口的存储器映射输入-输出(MMIO)地址空间中的接收缓冲器复制到vNIC的接收缓冲器来转发分组。
11. 如条款1-10中的任一项的方法,其中计算平台包括网络接口,其包括通信地耦合于计算平台的至少一个网络端口,该方法进一步包括:
对于在网络接口的预定义网络端口处从网络接收的每个分组,
在网络接口的存储器映射输入-输出(MMIO)地址空间中的接收缓冲器中缓冲对于该分组的分组数据;以及
使用直接存储器访问(DMA)数据传输将对于分组的分组数据从接收缓冲器复制到对于用于托管对LSC所定义的第一虚拟网络组件的VM或容器的vNIC的接收缓冲器。
12. 如条款1-11中的任一项的方法,其中计算平台包括网络接口,其包括通信地耦合于计算平台的至少一个网络端口,该方法进一步包括对于在预定义网络端口处接收的所有分组采用相同的LSC。
13. 如条款1-12中的任一项的方法,其进一步包括:
确定虚拟组件是用于指定分组的LSC中的最后的虚拟组件;
确定分组要转发出去的物理网络适配器上的输出端口;
采用绕过虚拟交换机的方式将分组数据从托管最后的虚拟组件的VM或容器上的缓冲器转发到与物理网络适配器的输出端口关联的缓冲器。
14. 如条款13的方法,其中计算平台包括网络接口,其包括通信地耦合于计算平台的至少一个网络端口,该方法进一步包括:
对于在网络接口的预定义网络端口处从网络接收的每个分组,
在网络接口的存储器映射输入-输出(MMIO)地址空间中的接收缓冲器中缓冲对于分组的分组数据;以及
使用直接存储器访问(DMA)数据传输将对于分组的分组数据从接收缓冲器复制到对于用于托管对LSC所定义的第一虚拟网络组件的VM或容器的vNIC的接收缓冲器。
15. 一种非暂时性机器可读介质,其具有存储在其上的多个指令,这些指令配置为在要运行多个VM或容器的计算平台的处理器上执行,其中多个指令的执行促使计算平台执行如条款1-14中的任一项的方法。
16. 一种计算平台,其包括用于实现条款1-14中的任一项的方法的部件。
17. 一种非暂时性机器可读介质,其具有存储在其上的多个指令,这些指令配置成在要运行多个虚拟机(VM)或虚拟化容器(容器)的计算平台的处理器上执行,VM或容器的至少一部分包括通信地耦合于软件定义网络(SDN)中的虚拟交换机的虚拟网络接口控制器(vNIC)并且托管虚拟网络组件,其中多个指令的执行促使计算平台用于:
经由多个虚拟网络组件实现本地服务链(LSC),每个虚拟网络组件配置成对要由LSC处理的多个分组中的每个执行一个或多个服务;以及
通过将分组数据从托管第一虚拟网络组件的第一VM或容器可访问的缓冲器写入托管第二虚拟网络组件的第二VM或容器的vNIC的接收(Rx)缓冲器而在VM或容器之间传输对应于多个分组的分组数据,该第一虚拟网络组件配置成执行LSC中的当前服务,该第二虚拟网络组件配置成执行LSC中的下一个服务。
18. 如条款17的非暂时性机器可读介质,其中第二VM或容器的vNIC的Rx缓冲器包括第二Rx缓冲器,并且其中分组数据从对于第一VM或容器的vNIC的第一Rx缓冲器复制到第二Rx缓冲器。
19. 如条款17或18的非暂时性机器可读介质,其中多个指令的执行进一步促使计算平台:
将第一和第二Rx缓冲器的至少一部分配置为相应的第一和第二先进先出(FIFO)队列;以及
将对于指定分组的分组数据从第一FIFO队列中的一个或多个槽复制到第二FIFO队列中的一个或多个槽。
20. 如条款17-19中的任一项的非暂时性机器可读介质,其中多个指令的执行进一步促使计算平台用于:
实现多个LSC,每个LSC包括要对使用该LSC处理的分组执行的唯一服务序列;以及
对托管虚拟网络组件的每个VM或容器配置本地流表,其中对于指定VM或容器的本地流表包括对于包括要由该VM或容器托管的虚拟网络组件所执行的服务的每个LSC的条目,并且每个LSC的条目识别托管LSC中的下一个虚拟网络组件的VM或容器的vNIC接收(Rx)端口或Rx缓冲器中的至少一个。
21. 如条款20的非暂时性机器可读介质,其中多个指令进一步包括用于实现SDN控制器的指令,其在执行时对每个VM或容器配置本地流表。
22. 如条款17-21中的任一项的非暂时性机器可读介质,其中多个指令的执行进一步促使计算平台分配共享存储器空间,由对于VM或容器中的每个的vNIC所采用的接收缓冲器采用该共享存储器空间,其中使每个VM或容器能够从共享存储器空间读取和写入共享存储器空间。
23. 如条款23的非暂时性机器可读介质,其中多个指令的执行进一步促使计算平台对多个VM或容器中的每个分配相应的应用存储器空间,其中在VM或容器的应用存储器空间中运行的应用不能访问另一个VM或容器的应用存储器空间。
24. 如条款17-23中的任一项的非暂时性机器可读介质,其中计算平台包括网络接口,其包括通信地耦合于计算平台的至少一个网络端口,并且其中多个指令的执行进一步促使计算平台用于:
确定在网络接口处接收的分组所属的流或要用于服务于分组的LSC中的至少一个;以及
将分组从网络接口转发到对于用于托管对LSC所定义的第一虚拟网络组件的VM或容器的vNIC的接收缓冲器。
25. 如条款24的非暂时性机器可读介质,其中通过使用直接存储器访问(DMA)数据传输将对于分组的分组数据从网络接口的存储器映射输入-输出(MMIO)地址空间中的接收缓冲器复制到vNIC的接收缓冲器来转发分组。
26. 如条款17-25中的任一项的非暂时性机器可读介质,其中计算平台包括网络接口,其包括通信地耦合于计算平台的至少一个网络端口和存储器,并且其中多个指令的执行进一步促使计算平台:
将网络接口上的存储器的至少一部分配置为存储器映射输入-输出(MMIO)地址空间;以及
将网络接口配置成,
在MMIO地址空间中的接收缓冲器中缓冲对于在网络接口的预定义网络端口处从网络接收的多个分组中的每个的分组数据;以及
使用直接存储器访问(DMA)数据传输将对于每个分组的分组数据从接收缓冲器复制到对于用于托管对LSC所定义的第一虚拟网络组件的VM或容器的vNIC的接收缓冲器。
27. 如条款17-26中的任一项的非暂时性机器可读介质,其中多个指令的执行进一步促使计算平台用于:
确定分组所属的流;
确定要用于服务于属于流的分组的LSC;以及
将记号添加到分组,从而识别要用于服务于分组的LSC。
28. 一种计算平台,其包括:
处理器,其包括多个处理器核;
系统存储器,其操作地耦合于处理器;
网络接口控制器(NIC),其包括操作地耦合于处理器的至少一个网络端口和存储器;以及
存储设备,其具有存储在其上的多个指令,包括配置成经由处理器核中的一个或多个而执行的指令,用于促使装置用于:
实例化多个虚拟机(VM)或虚拟化容器(容器),每个VM或容器包括虚拟网络接口控制器(vNIC),VM或容器的至少一部分托管虚拟网络组件;
在平台上配置软件定义网络(SDN),其包括具有耦合于相应vNICs的虚拟网络端口的虚拟交换机和在所述NIC上的至少一个网络端口;
经由多个虚拟网络组件实现本地服务链(LSC),每个虚拟网络组件配置成对要由LSC处理的多个分组中的每个执行一个或多个服务;以及
通过将分组数据从托管第一虚拟网络组件的第一VM或容器可访问的缓冲器写入托管第二虚拟网络组件的第二VM或容器的vNIC的接收(Rx)缓冲器而在VM或容器之间传输对应于多个分组的分组数据,该第一虚拟网络组件配置成执行LSC中的当前服务,该第二虚拟网络组件配置成执行LSC中的下一个服务。
29. 如条款28的计算平台,其中多个指令的执行进一步促使计算平台用于:
实现多个LSC,每个LSC包括要对使用该LSC处理的分组执行的唯一服务序列;以及
对托管虚拟网络组件的每个VM或容器配置本地流表,其中对于指定VM或容器的本地流表包括对于包括要由该VM或容器托管的虚拟网络组件所执行的服务的每个LSC的条目,并且每个LSC的条目识别对于托管LSC中的下一个虚拟网络组件的VM或容器的vNIC接收(Rx)端口或Rx缓冲器中的至少一个。
30. 如条款28或29的计算平台,其中多个指令的执行进一步促使计算平台分配共享存储器空间,由对于VM或容器中的每个的vNIC所采用的接收缓冲器采用该共享存储器空间,其中使每个VM或容器能够从共享存储器空间读取和写入共享存储器空间。
31. 如条款28-30中的任一项的计算平台,其中多个指令的执行进一步促使计算平台:
确定在NIC处接收的分组所属的流或要用于服务于分组的LSC中的至少一个;以及
将分组从NIC转发到对于用于托管对LSC所定义的第一虚拟网络组件的VM或容器的vNIC的接收缓冲器。
32. 如条款28-31中的任一项的计算平台,其中多个指令的执行进一步促使计算平台用于:
将NIC上的存储器的至少一部分配置为存储器映射输入-输出(MMIO)地址空间;以及
将NIC配置成,
在MMIO地址空间中的接收缓冲器中缓冲对于在网络接口的预定义网络端口处从网络接收的多个分组中的每个的分组数据;以及
使用直接存储器访问(DMA)数据传输将对于每个分组的分组数据从接收缓冲器复制到对于用于托管对LSC所定义的第一虚拟网络组件的VM或容器的vNIC的接收缓冲器。
33. 一种计算平台,其包括:
网络接口控制器(NIC),其包括至少一个网络端口和存储器,以及
用于以下功能的部件:
实例化多个虚拟机(VM)或虚拟化容器(容器),每个VM或容器包括虚拟网络接口控制器(vNIC),VM或容器的至少一部分托管虚拟网络组件;
在平台上配置软件定义网络(SDN),其包括具有耦合于相应vNIC的虚拟网络端口的虚拟交换机和在所述NIC上的至少一个网络端口;
经由多个虚拟网络组件实现本地服务链(LSC),每个虚拟网络组件配置成对要由LSC处理的多个分组中的每个执行一个或多个服务;以及
通过将分组数据从托管第一虚拟网络组件的第一VM或容器可访问的缓冲器写入托管第二虚拟网络组件的第二VM或容器的vNIC的接收(Rx)缓冲器而在VM或容器之间传输对应于多个分组的分组数据,该第一虚拟网络组件配置成执行LSC中的当前服务,该第二虚拟网络组件配置成执行LSC中的下一个服务。
34. 如条款33的计算平台,其进一步包括用于以下功能的部件:
实现多个LSC,每个LSC包括要对使用该LSC处理的分组执行的唯一服务序列;以及
对托管虚拟网络组件的每个VM或容器配置本地流表,其中对于指定VM或容器的本地流表包括对于包括要由该VM或容器托管的虚拟网络组件所执行的服务的每个LSC的条目,并且每个LSC的条目识别对于托管LSC中的下一个虚拟网络组件的VM或容器的vNIC接收(Rx)端口或Rx缓冲器中的至少一个。
35. 如条款33或34的计算平台,其进一步包括用于分配共享存储器空间的部件,由对于VM或容器中的每个的vNIC所采用的接收缓冲器采用该共享存储器空间,其中使每个VM或容器能够从共享存储器空间读取和写入共享存储器空间。
36. 如条款33-35中的任一项的计算平台,其进一步包括用于以下功能的部件:
确定在NIC处接收的分组所属的流或要用于服务于分组的LSC中的至少一个;以及
将分组从NIC转发到对于用于托管对LSC所定义的第一虚拟网络组件的VM或容器的vNIC的接收缓冲器。
37. 如条款33-36中的任一项的计算平台,其进一步包括用于以下功能的部件:
将NIC上的存储器的至少一部分配置为存储器映射输入-输出(MMIO)地址空间;以及
将NIC配置成,
在MMIO地址空间中的接收缓冲器中缓冲对于在网络接口的预定义网络端口处从网络接收的多个分组中的每个的分组数据;以及
使用直接存储器访问(DMA)数据传输将对于每个分组的分组数据从接收缓冲器复制到对于用于托管对LSC所定义的第一虚拟网络组件的VM或容器的vNIC的接收缓冲器。
尽管一些实施例已经参考特定实现描述,其他实现根据一些实施例是可能的。另外,在图中图示和/或本文描述元件或其他特征的设置和/或顺序不必采用图示和描述的特定方式设置。许多其他设置根据一些实施例是可能的。
在图中示出的每个系统中,元件在一些情况下可每个具有相同的标号或不同的标号来启示代表的元件可以不同和/或相似。然而,元件可足够灵活以具有不同的实现并且与本文示出或描述的系统中的一些或全部一起工作。在图中示出的各种元件可相同或不同。哪一个称为第一元件以及哪个叫作第二元件是任意的。
在描述和权利要求中,可使用术语“耦合”和“连接”连同它们的派生词。要理解这些术语不规定为是彼此的同义词。相反,在特定实施例中,“连接”可用于指示两个或以上的元件彼此直接物理或电接触。“耦合”可意指两个或以上的元件彼此直接物理或电接触。然而,“耦合”还可意指两个或以上的元件彼此不直接接触,但彼此仍共同操作或相互作用。
实施例是本发明的实现或示例。在说明书中对“实施例”、“一个实施例”、“一些实施例”或“其他实施例”的引用意指结合实施例描述的特定特征、结构或特性包括在本发明的至少一些实施例中,而不一定是所有实施例中。“实施例”、“一个实施例”或“一些实施例”的各种表现不一定都指相同的实施例。
不是本文描述和图示的所有部件、特征、结构、特性等需要包括在特定实施例或多个特定实施例中。例如,如果说明书规定部件、特征、结构、过程或特性“可”、“可能”或“可以”被包括,则不需要包括该特定部件、特征、结构、过程或特性。如果说明书或权利要求引用“一”元件,这不意指仅存在描述的元件中的一个。如果说明书或权利要求指“额外的”元件,这不排除存在超过一个额外的元件。
前面的详细描述中的斜体字母(例如‘M’和‘N’)用于描绘整数,并且特定字母的使用不限于特定实施例。此外,相同的字母可用于代表独立整数,或可使用不同的字母。另外,详细描述中特定字母的使用可与关于详细描述中的相同主旨的权利要求中使用的字母匹配或不匹配。
如上文论述的,本文的实施例的各种方面可通过对应的软件和/或固件部件和应用来便利化,例如在由嵌入式处理器或类似物执行的软件和/或固件或服务器或设备处理器上运行的软件。从而,本发明的实施例可用作或支持在某一形式的处理核(例如计算机的CPU、多核处理器的一个或多个核)上执行的软件程序、软件模块、固件和/或分布式软件、在处理器或核上运行的或用别的方式在计算机可读或机器可读非暂时性存储介质上或内实施或实现的虚拟机。计算机可读或机器可读非暂时性存储介质包括用于采用由机器(例如,计算机)可读形式存储或传送信息的任何机构。例如,计算机可读或机器可读非暂时性存储介质包括采用计算机或计算机器(例如,计算设备、电子系统,等)可访问的形式提供(例如,存储和/或传送)信息的任何机构,例如可记录/不可记录介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备,等)。内容可以是直接可执行的(“对象”或“可执行”形式)、源代码或差分代码(“差量”或“补丁”代码)。计算机可读或机器可读非暂时性存储介质还可包括可从其下载内容的存储或数据库。计算机可读或机器可读非暂时性存储介质还可包括在销售或交付时具有存储在其上的内容的设备或产品。从而,交付具有存储内容的设备或提供内容用于通过通信介质下载可理解为提供制造物品,其包括具有本文描述的这样的内容的计算机可读或机器可读非暂时性存储介质。
本文描述的在上文称为过程、服务器或工具的各种部件可以是用于执行描述的功能的部件。由本文描述的各种部件执行的操作和功能可经由嵌入式硬件或类似物或硬件和软件的任何组合由在处理元件上运行的软件实现。这样的部件可实现为软件模块、硬件模块、专用硬件(例如,应用特定硬件、ASIC、DSP,等)、嵌入式控制器、硬接线电路、硬件逻辑等。软件内容(例如,数据、指令、配置信息,等)可经由制造物品提供,该制造物品包括计算机可读或机器可读非暂时性存储介质,其提供代表可以执行的指令的内容。该内容可导致计算机执行本文描述的各种功能/操作。
本发明的图示实施例在上文的描述(包括在摘要中描述的)不规定为穷举的或将本发明限制在公开的精确形式。如相关领域内技术人员将认识到的,尽管本发明的具体实施例以及其示例为了说明目的而在本文描述,各种等同的修改在本发明的范围内是可能的。
可以根据上文的详细描述对本发明做出这些修改。在下列权利要求中使用的术语不应解释为将本发明限制在说明书和图中公开的具体实施例。相反,通过下列权利要求完全确定本发明的范围,要根据建立的权利要求解释的法律原则而解释这些权利要求。

Claims (25)

1. 一种在计算平台上实现的方法,多个虚拟机(VM)或虚拟化容器(容器)在所述计算平台上运行,每个VM或容器包括虚拟网络接口控制器(vNIC),其通信地耦合于软件定义网络(SDN)中的虚拟交换机,所述方法包括:
经由所述多个VM或容器所托管的多个虚拟网络组件来实现本地服务链(LSC),每个虚拟网络组件配置成对要由所述LSC处理的多个分组中的每个执行一个或多个服务;以及
在不使用所述虚拟交换机的情况下,在VM或容器之间传输所述多个分组中所包含的分组数据。
2. 如权利要求1所述的方法,其中通过将分组数据直接写入第二Rx缓冲器来将所述分组数据从第一VM或容器传输到第二VM或容器,所述第一VM或容器包括具有第一接收(Rx)缓冲器的第一vNIC并且托管所述LSC中的当前虚拟网络组件,所述第二VM或容器包括具有所述第二Rx缓冲器的第二vNIC并且托管所述LSC中的下一个虚拟网络组件。
3. 如权利要求2所述的方法,其中所述分组数据从所述第一Rx缓冲器复制到所述第二Rx缓冲器。
4. 如权利要求3所述的方法,其中所述第一和第二Rx缓冲器的至少一部分配置为相应的先进先出(FIFO)队列,并且对于指定分组的分组数据从第一FIFO队列中的一个或多个槽复制到第二FIFO队列中的一个或多个槽。
5. 如权利要求1-4中任一项所述的方法,其进一步包括:
实现多个LSC,每个LSC包括要对使用该LSC处理的分组执行的唯一服务序列;以及
对所述多个LSC中的每个,实现用于使对于指派给该LSC的分组的分组数据的传输便利化的机制,其中对于每个LSC,所述分组数据采用不穿越所述虚拟交换机的链接方式在托管对于该LSC的虚拟网络组件的VM或容器之间传输。
6. 如权利要求5所述的方法,其中所述机制包括对于每个VM或容器的相应本地流表,其中对于指定VM或容器的本地流表识别对于托管所述LSC中的下一个虚拟网络组件的VM或容器的vNIC接收(Rx)端口或Rx缓冲器中的至少一个。
7. 如权利要求6所述的方法,其进一步包括对于每个VM或容器使用SDN控制器来配置所述本地流表。
8. 如权利要求1-7中任一项所述的方法,其进一步包括:
对所述多个VM或容器中的每个分配相应的应用存储器空间,其中在VM或容器的应用存储器空间中运行的应用不能访问另一个VM或容器的应用存储器空间;以及
分配共享存储器空间,对于由所述VM或容器中的每个的vNIC所采用的接收缓冲器采用所述共享存储器空间,其中使每个VM或容器能够从所述共享存储器空间读取以及写入所述共享存储器空间。
9. 如权利要求1-8中任一项所述的方法,其中所述计算平台包括网络接口,其包括通信地耦合于所述计算平台的至少一个网络端口,所述方法进一步包括:
在所述网络接口的网络端口处接收分组;
确定所述分组所属的流或要用于服务于所述分组的LSC中的至少一个;以及
将所述分组从所述网络接口转发到对于用于托管对所述LSC所定义的第一虚拟网络组件的VM或容器的vNIC的接收缓冲器。
10. 如权利要求9所述的方法,其中通过使用直接存储器访问(DMA)数据传输将对于所述分组的分组数据从所述网络接口的存储器映射输入-输出(MMIO)地址空间中的接收缓冲器复制到所述vNIC的接收缓冲器来转发所述分组。
11. 如权利要求1-10中任一项所述的方法,其中所述计算平台包括网络接口,其包括通信地耦合于所述计算平台的至少一个网络端口,所述方法进一步包括:
对于在所述网络接口的预定义网络端口处从网络接收的每个分组,
在所述网络接口的存储器映射输入-输出(MMIO)地址空间中的接收缓冲器中缓冲对于所述分组的分组数据;以及
使用直接存储器访问(DMA)数据传输将对于所述分组的分组数据从所述接收缓冲器复制到对于用于托管对所述LSC所定义的第一虚拟网络组件的VM或容器的vNIC的接收缓冲器。
12. 一种非暂时性机器可读介质,其具有存储在其上的多个指令,所述指令配置成在要运行多个虚拟机(VM)或虚拟化容器(容器)的计算平台的处理器上执行,所述VM或容器的至少一部分包括通信地耦合于软件定义网络(SDN)中的虚拟交换机的虚拟网络接口控制器(vNIC)并且托管虚拟网络组件,其中所述多个指令的执行促使所述计算平台:
经由多个虚拟网络组件实现本地服务链(LSC),每个虚拟网络组件配置成对要由所述LSC处理的多个分组中的每个执行一个或多个服务;以及
通过将分组数据从托管第一虚拟网络组件的第一VM或容器可访问的缓冲器写入托管第二虚拟网络组件的第二VM或容器的vNIC的接收(Rx)缓冲器而在VM或容器之间传输所述多个分组中所包含的分组数据,所述第一虚拟网络组件配置成执行所述LSC中的当前服务,所述第二虚拟网络组件配置成执行所述LSC中的下一个服务。
13. 如权利要求12所述的非暂时性机器可读介质,其中所述第二VM或容器的vNIC的Rx缓冲器包括第二Rx缓冲器,并且其中所述分组数据从对于所述第一VM或容器的vNIC的第一Rx缓冲器复制到所述第二Rx缓冲器。
14. 如权利要求12或13所述的非暂时性机器可读介质,其中所述多个指令的执行进一步促使所述计算平台:
将所述第一和第二Rx缓冲器的至少一部分配置为相应的第一和第二先进先出(FIFO)队列;以及
将对于指定分组的分组数据从第一FIFO队列中的一个或多个槽复制到第二FIFO队列中的一个或多个槽。
15. 如权利要求12-14中任一项所述的非暂时性机器可读介质,其中所述多个指令的执行进一步促使所述计算平台:
实现多个LSC,每个LSC包括要对使用该LSC处理的分组执行的唯一服务序列;以及
对托管虚拟网络组件的每个VM或容器配置本地流表,其中对于指定VM或容器的本地流表包括对于包括要由该VM或容器托管的虚拟网络组件所执行的服务的LSC中的每个LSC的条目,并且每个LSC的条目识别对于托管所述LSC中的下一个虚拟网络组件的VM或容器的vNIC接收(Rx)端口或Rx缓冲器中的至少一个。
16. 如权利要求12-15中任一项所述的非暂时性机器可读介质,其中所述多个指令的执行进一步促使所述计算平台分配共享存储器空间,对于由所述VM或容器中的每个的vNIC所采用的接收缓冲器采用所述共享存储器空间,其中使每个VM或容器能够从所述共享存储器空间读取以及写入所述共享存储器空间。
17. 如权利要求12-16中任一项所述的非暂时性机器可读介质,其中所述计算平台包括网络接口,其包括通信地耦合于所述计算平台的至少一个网络端口,并且其中所述多个指令的执行进一步促使所述计算平台:
确定在所述网络接口处接收的分组所属的流或要用于服务于所述分组的LSC中的至少一个;以及
将所述分组从所述网络接口转发到对于用于托管对所述LSC所定义的第一虚拟网络组件的VM或容器的vNIC的接收缓冲器。
18. 如权利要求17所述的非暂时性机器可读介质,其中通过使用直接存储器访问(DMA)数据传输将对于所述分组的分组数据从所述网络接口的存储器映射输入-输出(MMIO)地址空间中的接收缓冲器复制到所述vNIC的接收缓冲器来转发所述分组。
19. 如权利要求12-18中任一项所述的非暂时性机器可读介质,其中所述计算平台包括网络接口,其包括通信地耦合于所述计算平台的至少一个网络端口和存储器,并且其中所述多个指令的执行进一步促使所述计算平台:
将所述网络接口上的所述存储器的至少一部分配置为存储器映射输入-输出(MMIO)地址空间;以及
将所述网络接口配置成,
在所述MMIO地址空间中的接收缓冲器中缓冲对于在所述网络接口的预定义网络端口处从网络接收的多个分组中的每个的分组数据;以及
使用直接存储器访问(DMA)数据传输将对于每个分组的分组数据从所述接收缓冲器复制到对于用于托管对所述LSC所定义的第一虚拟网络组件的VM或容器的vNIC的接收缓冲器。
20. 如权利要求12-19中任一项所述的非暂时性机器可读介质,其中所述多个指令的执行进一步促使所述计算平台:
确定分组所属的流;
确定要用于服务于属于所述流的分组的LSC;以及
将记号添加到所述分组,从而识别要用于服务于所述分组的LSC。
21. 一种计算机平台,其包括:
处理器,其包括多个处理器核;
系统存储器,其操作地耦合于所述处理器;
网络接口控制器(NIC),其包括操作地耦合于所述处理器的至少一个网络端口和存储器;以及
存储设备,其具有存储在其上的多个指令,所述指令包括配置成经由所述处理器核中的一个或多个执行的指令来促使所述装置:
实例化多个虚拟机(VM)或虚拟化容器(容器),每个VM或容器包括虚拟网络接口控制器(vNIC),所述VM或容器的至少一部分托管虚拟网络组件;
在所述平台上配置软件定义网络(SDN),其包括具有耦合于相应vNIC的虚拟网络端口的虚拟交换机和在所述NIC上的至少一个网络端口;
经由多个虚拟网络组件实现本地服务链(LSC),每个虚拟网络组件配置成对要由所述LSC处理的多个分组中的每个执行一个或多个服务;以及
通过将分组数据从托管第一虚拟网络组件的第一VM或容器可访问的缓冲器写入托管第二虚拟网络组件的第二VM或容器的vNIC的接收(Rx)缓冲器而在VM或容器之间传输所述多个分组中包含的分组数据,所述第一虚拟网络组件配置成执行所述LSC中的当前服务,所述第二虚拟网络组件配置成执行所述LSC中的下一个服务。
22. 如权利要求21所述的计算平台,其中所述多个指令的执行进一步促使所述计算平台:
实现多个LSC,每个LSC包括要对使用该LSC处理的分组执行的唯一服务序列;以及
对托管虚拟网络组件的每个VM或容器配置本地流表,其中对于指定VM或容器的本地流表包括对于包括要由该VM或容器托管的虚拟网络组件所执行的服务的LSC中的每个LSC的条目,并且对于每个LSC的条目识别对于托管所述LSC中的下一个虚拟网络组件的VM或容器的vNIC接收(Rx)端口或Rx缓冲器中的至少一个。
23. 如权利要求21或22所述的计算平台,其中所述多个指令的执行进一步促使所述计算平台分配共享存储器空间,对于由所述VM或容器中的每个的vNIC所采用的接收缓冲器采用所述共享存储器空间,其中使每个VM或容器能够从所述共享存储器空间读取以及写入所述共享存储器空间。
24. 如权利要求21-23中任一项所述的计算平台,其中所述多个指令的执行进一步促使所述计算平台:
确定在所述NIC处接收的分组所属的流或要用于服务于所述分组的LSC中的至少一个;以及
将所述分组从所述NIC转发到对于用于托管对所述LSC所定义的第一虚拟网络组件的VM或容器的vNIC的接收缓冲器。
25. 如权利要求21-24中任一项所述的计算平台,其中所述多个指令的执行进一步促使所述计算平台:
将所述NIC上的所述存储器的至少一部分配置为存储器映射输入-输出(MMIO)地址空间;以及
将所述NIC配置成,
在所述MMIO地址空间中的接收缓冲器中缓冲对于在所述网络接口的预定义网络端口处从网络接收的多个分组中的每个的分组数据;以及
使用直接存储器访问(DMA)数据传输将对于每个分组的分组数据从所述接收缓冲器复制到对于用于托管对所述LSC所定义的第一虚拟网络组件的VM或容器的vNIC的接收缓冲器。
CN201510264698.2A 2014-06-23 2015-05-22 采用软件定义联网中的虚拟机和虚拟化容器实现本地服务链接的方法和装置 Active CN105282135B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/311,818 US10261814B2 (en) 2014-06-23 2014-06-23 Local service chaining with virtual machines and virtualized containers in software defined networking
US14/311818 2014-06-23

Publications (2)

Publication Number Publication Date
CN105282135A true CN105282135A (zh) 2016-01-27
CN105282135B CN105282135B (zh) 2019-07-26

Family

ID=54768037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510264698.2A Active CN105282135B (zh) 2014-06-23 2015-05-22 采用软件定义联网中的虚拟机和虚拟化容器实现本地服务链接的方法和装置

Country Status (5)

Country Link
US (1) US10261814B2 (zh)
JP (2) JP6016984B2 (zh)
KR (1) KR101747518B1 (zh)
CN (1) CN105282135B (zh)
DE (1) DE102015108145B4 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107071932A (zh) * 2017-03-09 2017-08-18 南京耀泽电子科技有限公司 用于数据处理的无线网关虚拟化多通道构建及控制方法
CN108701047A (zh) * 2016-03-31 2018-10-23 英特尔公司 具有dma写时复制的高密度虚拟机容器
CN108780410A (zh) * 2016-03-17 2018-11-09 微软技术许可有限责任公司 计算系统中的容器的网络虚拟化
CN110597633A (zh) * 2019-09-12 2019-12-20 北京交通大学 一种智慧协同网络族群弹性伸缩的方法和系统
CN110851371A (zh) * 2018-08-20 2020-02-28 华为技术有限公司 报文处理方法及相关设备
CN110945843A (zh) * 2017-07-19 2020-03-31 阿里巴巴集团控股有限公司 虚拟交换设备和方法
CN111108722A (zh) * 2017-10-13 2020-05-05 思科技术公司 使用实时网络业务的复制容器性能和策略验证的系统和方法
CN111756658A (zh) * 2019-03-29 2020-10-09 瞻博网络公司 转发微芯片上的网络功能虚拟化(nfv)背板
CN112039748A (zh) * 2016-06-30 2020-12-04 丛林网络公司 软件定义的网络环境中服务的自动发现和自动扩缩

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US9832168B2 (en) * 2014-07-01 2017-11-28 Cable Television Laboratories, Inc. Service discovery within multi-link networks
US9647894B2 (en) * 2014-07-30 2017-05-09 International Business Machines Corporation Mapping relationships among virtual elements across a system
US9558041B2 (en) * 2014-09-05 2017-01-31 Telefonaktiebolaget L M Ericsson (Publ) Transparent non-uniform memory access (NUMA) awareness
US9459903B2 (en) * 2014-09-24 2016-10-04 Intel Corporation Techniques for routing service chain flow packets between virtual machines
US11496606B2 (en) 2014-09-30 2022-11-08 Nicira, Inc. Sticky service sessions in a datacenter
US9531590B2 (en) 2014-09-30 2016-12-27 Nicira, Inc. Load balancing across a group of load balancers
US9817602B2 (en) * 2014-11-13 2017-11-14 Violin Systems Llc Non-volatile buffering for deduplication
WO2016086991A1 (en) * 2014-12-04 2016-06-09 Nokia Solutions And Networks Management International Gmbh Steering of virtualized resources
US9445279B2 (en) * 2014-12-05 2016-09-13 Huawei Technologies Co., Ltd. Systems and methods for placing virtual serving gateways for mobility management
US9699060B2 (en) * 2014-12-17 2017-07-04 Vmware, Inc. Specializing virtual network device processing to avoid interrupt processing for high packet rate applications
US9979704B2 (en) * 2014-12-17 2018-05-22 Cisco Technology, Inc. End-to-end security for virtual private service chains
US10320921B2 (en) * 2014-12-17 2019-06-11 Vmware, Inc. Specializing virtual network device processing to bypass forwarding elements for high packet rate applications
US9775008B2 (en) 2015-01-14 2017-09-26 Kodiak Networks, Inc. System and method for elastic scaling in a push to talk (PTT) platform using user affinity groups
US10599458B2 (en) * 2015-01-23 2020-03-24 Unisys Corporation Fabric computing system having an embedded software defined network
US9584415B2 (en) * 2015-01-30 2017-02-28 Huawei Technologies Co., Ltd. Devices, systems and methods for service chains
US10812632B2 (en) * 2015-02-09 2020-10-20 Avago Technologies International Sales Pte. Limited Network interface controller with integrated network flow processing
US9571395B2 (en) * 2015-02-09 2017-02-14 Cavium, Inc. Reconfigurable interconnect element with local lookup tables shared by multiple packet processing engines
US9729442B1 (en) * 2015-03-01 2017-08-08 Netronome Systems, Inc. Method of detecting large flows within a switch fabric of an SDN switch
US10009270B1 (en) * 2015-03-01 2018-06-26 Netronome Systems, Inc. Modular and partitioned SDN switch
US9998374B1 (en) * 2015-03-01 2018-06-12 Netronome Systems, Inc. Method of handling SDN protocol messages in a modular and partitioned SDN switch
US10609091B2 (en) 2015-04-03 2020-03-31 Nicira, Inc. Method, apparatus, and system for implementing a content switch
US9860189B2 (en) * 2015-04-30 2018-01-02 Dell Products Lp Systems and methods to enable network communications for management controllers
US9558029B2 (en) 2015-05-17 2017-01-31 Nicira, Inc. Logical processing for containers
US9942131B2 (en) * 2015-07-29 2018-04-10 International Business Machines Corporation Multipathing using flow tunneling through bound overlay virtual machines
US20170031704A1 (en) * 2015-07-31 2017-02-02 Hewlett-Packard Development Company, L.P. Network port profile for virtual machines using network controller
US9667725B1 (en) * 2015-08-06 2017-05-30 EMC IP Holding Company LLC Provisioning isolated storage resource portions for respective containers in multi-tenant environments
US9781209B2 (en) * 2015-08-20 2017-10-03 Intel Corporation Techniques for routing packets between virtual machines
US10078526B2 (en) 2015-11-01 2018-09-18 Nicira, Inc. Securing a managed forwarding element that operates within a data compute node
US10027604B2 (en) * 2015-11-24 2018-07-17 Red Hat Israel, Ltd. Implicit dynamic receive queue steering for unidirectional flows in virtualized systems
US10063469B2 (en) 2015-12-16 2018-08-28 Nicira, Inc. Forwarding element implementation for containers
WO2017122847A1 (ko) * 2016-01-12 2017-07-20 쿨클라우드(주) Sdn 기반의 네트워크 시스템의 멀티 테넌트 지원 방법 및 그 시스템
US10230633B2 (en) * 2016-01-21 2019-03-12 Red Hat, Inc. Shared memory communication in software defined networking
US10892942B2 (en) * 2016-01-22 2021-01-12 Equinix, Inc. Container-based cloud exchange disaster recovery
KR101797112B1 (ko) 2016-01-25 2017-11-15 쿨클라우드(주) 컨테이너 네트워크 관리 시스템
KR101797115B1 (ko) 2016-01-25 2017-11-15 쿨클라우드(주) 컨테이너 네트워크의 컨테이너 네트워킹 방법
WO2017131285A1 (ko) * 2016-01-25 2017-08-03 쿨클라우드(주) 컨테이너 네트워크 관리 시스템 및 컨테이너 네트워킹 방법
US10083055B2 (en) * 2016-02-12 2018-09-25 At&T Intellectual Property I, L.P. Management of IoT devices in a virtualized network
US10182019B2 (en) * 2016-02-25 2019-01-15 Telefonaktiebolaget Lm Ericsson (Publ) Interconnected hardware infrastructure resource control
JP2017167763A (ja) * 2016-03-15 2017-09-21 富士通株式会社 情報処理装置、試験実行方法および試験実行プログラム
US10178054B2 (en) * 2016-04-01 2019-01-08 Intel Corporation Method and apparatus for accelerating VM-to-VM network traffic using CPU cache
US20190087244A1 (en) * 2016-05-23 2019-03-21 William Jason Turner Hyperconverged system including a user interface, a services layer and a core layer equipped with an operating system kernel
US20170366605A1 (en) * 2016-06-16 2017-12-21 Alcatel-Lucent Usa Inc. Providing data plane services for applications
CN105975330B (zh) * 2016-06-27 2019-06-18 华为技术有限公司 一种网络边缘计算的虚拟网络功能部署方法、装置和系统
US10719347B2 (en) 2016-06-28 2020-07-21 Nec Corporation Control apparatus, container starting method, and program
US11824863B2 (en) * 2016-11-03 2023-11-21 Nicira, Inc. Performing services on a host
US10148561B2 (en) * 2016-12-06 2018-12-04 At&T Intellectual Property I, L.P. Enhanced quality of service in software-defined networking-based connectionless mobility architecture
US10021033B2 (en) * 2016-12-07 2018-07-10 Nicira, Inc. Context driven policy based packet capture
KR102001617B1 (ko) * 2016-12-21 2019-08-08 주식회사 나임네트웍스 컨테이너 관리 컴포넌트를 가지는 머신 관리 디바이스 및 사물 인터넷 관리 디바이스
JP6888295B2 (ja) * 2016-12-26 2021-06-16 富士通株式会社 プログラム、情報処理装置、および情報処理方法
US20180181421A1 (en) * 2016-12-27 2018-06-28 Intel Corporation Transferring packets between virtual machines via a direct memory access device
KR101716715B1 (ko) 2016-12-27 2017-03-15 주식회사 티맥스클라우드 가상 머신 환경의 네트워크 입출력 장치 가상화 방법 및 장치
US10169023B2 (en) * 2017-02-06 2019-01-01 International Business Machines Corporation Virtual container deployment
US10594829B2 (en) 2017-05-24 2020-03-17 At&T Intellectual Property I, L.P. Cloud workload proxy as link-local service configured to access a service proxy gateway via a link-local IP address to communicate with an external target service via a private network
US20180357086A1 (en) * 2017-06-13 2018-12-13 Intel Corporation Container virtual switching
RU181857U1 (ru) * 2017-09-13 2018-07-26 Общество с ограниченной ответственностью "Интегратор" Программно-аппаратное устройство на базе операционной системы облачной гиперконвергенции
US10797966B2 (en) 2017-10-29 2020-10-06 Nicira, Inc. Service operation chaining
US11169845B2 (en) * 2017-12-21 2021-11-09 Ciena Corporation Flow and application based processor scheduling for network functions virtualization applications using flow identification based on logical calculations on frame based fields
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
CN110554977A (zh) * 2018-05-30 2019-12-10 阿里巴巴集团控股有限公司 数据缓存方法、数据处理方法、计算机设备、存储介质
US10897392B2 (en) 2018-06-11 2021-01-19 Nicira, Inc. Configuring a compute node to perform services on a host
US11283676B2 (en) * 2018-06-11 2022-03-22 Nicira, Inc. Providing shared memory for access by multiple network service containers executing on single service machine
CN110704155B (zh) * 2018-07-09 2023-03-17 阿里巴巴集团控股有限公司 容器网络构建方法及装置、物理主机、数据传输方法
US10581730B2 (en) * 2018-07-12 2020-03-03 Vmware, Inc. Packet processing using service chains
CN110769075B (zh) * 2018-07-25 2022-07-05 中国电信股份有限公司 容器的通信方法、系统、控制器和计算机可读存储介质
US10645201B2 (en) 2018-07-31 2020-05-05 Vmware, Inc. Packet handling during service virtualized computing instance migration
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US10887251B2 (en) 2018-09-13 2021-01-05 International Business Machines Corporation Fault-tolerant architecture for packet capture
US11494212B2 (en) * 2018-09-27 2022-11-08 Intel Corporation Technologies for adaptive platform resource assignment
US11159366B1 (en) * 2018-09-28 2021-10-26 Juniper Networks, Inc. Service chaining for virtual execution elements
US11316822B1 (en) 2018-09-28 2022-04-26 Juniper Networks, Inc. Allocating external IP addresses from isolated pools
CN111124254B (zh) * 2018-10-30 2023-09-29 伊姆西Ip控股有限责任公司 调度存储空间回收请求的方法、电子设备和程序产品
US11016793B2 (en) * 2018-11-26 2021-05-25 Red Hat, Inc. Filtering based containerized virtual machine networking
US11249784B2 (en) 2019-02-22 2022-02-15 Vmware, Inc. Specifying service chains
KR102101602B1 (ko) * 2019-04-04 2020-04-17 한국전자통신연구원 트래픽 관리 장치 및 방법
KR102099118B1 (ko) 2019-04-29 2020-04-09 래블업(주) 사용자가 요청한 다수개의 라이브러리를 탑재한 세션 컨테이너 제공방법
EP3949290A4 (en) 2019-05-23 2023-05-31 Hewlett Packard Enterprise Development LP SYSTEMS AND METHODS FOR ADAPTIVE ROUTING IN THE PRESENCE OF PERSISTENT FLOW
KR102025435B1 (ko) * 2019-06-05 2019-09-25 주식회사 오픈케어랩 컨테이너를 이용하여 iot 서비스를 제공하는 방법, 장치 및 그를 이용한 시스템
JP7226123B2 (ja) 2019-06-19 2023-02-21 富士通株式会社 情報処理システム、情報処理装置、及び情報処理プログラム
US11277382B2 (en) * 2019-07-22 2022-03-15 Vmware, Inc. Filter-based packet handling at virtual network adapters
LU101360B1 (en) * 2019-08-26 2021-03-11 Microsoft Technology Licensing Llc Pinned physical memory supporting direct memory access for virtual memory backed containers
CN110580157A (zh) * 2019-09-12 2019-12-17 广东鑫光智能系统有限公司 基于软件定义的数据采集接口
US11283717B2 (en) 2019-10-30 2022-03-22 Vmware, Inc. Distributed fault tolerant service chain
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11277331B2 (en) 2020-04-06 2022-03-15 Vmware, Inc. Updating connection-tracking records at a network edge using flow programming
JP2022022059A (ja) 2020-07-22 2022-02-03 富士通株式会社 情報処理装置、情報処理プログラム、及び情報処理方法
CN112398688B (zh) * 2020-11-13 2022-06-03 广东省华南技术转移中心有限公司 容器网络配置方法、容器网络系统以及存储介质
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
WO2022132308A1 (en) * 2020-12-15 2022-06-23 Vmware, Inc. Providing stateful services a scalable manner for machines executing on host computers
CN113472848A (zh) * 2021-05-31 2021-10-01 济南浪潮数据技术有限公司 一种虚拟机和容器的网络融合方法、装置及相关设备
JP2023003987A (ja) * 2021-06-25 2023-01-17 富士通株式会社 情報処理装置、情報処理プログラム、及び情報処理方法
KR102633575B1 (ko) * 2021-10-25 2024-02-02 에스케이텔레콤 주식회사 네트워크데이터체이닝장치 및 네트워크데이터체이닝장치의 동작 방법
KR102633569B1 (ko) * 2021-10-25 2024-02-02 에스케이텔레콤 주식회사 네트워크데이터체이닝장치 및 네트워크데이터체이닝장치의 동작 방법
CN115378822B (zh) * 2022-08-19 2023-06-06 武汉烽火技术服务有限公司 一种dds分布式应用仿真的方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005441A1 (en) * 2006-06-30 2008-01-03 Sun Microsystems, Inc. Bridging network components
US20090216964A1 (en) * 2008-02-27 2009-08-27 Michael Palladino Virtual memory interface
US20130279378A1 (en) * 2012-04-19 2013-10-24 Delphax Technologies Canada, Ltd. Cascaded Streaming of Data Through Virtual Chain of Nodes in Hub Topology

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4439100B2 (ja) 2000-09-22 2010-03-24 株式会社東芝 ネットワーク間中継装置
US7685281B1 (en) * 2004-02-13 2010-03-23 Habanero Holdings, Inc. Programmatic instantiation, provisioning and management of fabric-backplane enterprise servers
JP4622835B2 (ja) 2005-12-07 2011-02-02 株式会社日立製作所 仮想計算機システム及びそのネットワーク通信方法
CN101632280A (zh) 2006-12-21 2010-01-20 西蒙公司 服务链接的方法及装置
JP2009230479A (ja) 2008-03-24 2009-10-08 Toshiba Microelectronics Corp マイクロプロセッサ
JP5125659B2 (ja) 2008-03-24 2013-01-23 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US8031731B2 (en) * 2008-06-09 2011-10-04 Oracle America, Inc. System for sharing a network port of a network interface including a link for connection to another shared network interface
JP5352132B2 (ja) 2008-06-19 2013-11-27 株式会社日立製作所 計算機システム及びそのi/o構成変更方法
JP5532793B2 (ja) 2009-09-28 2014-06-25 富士通株式会社 プログラム及び通信制御方法
US8254261B2 (en) * 2009-10-16 2012-08-28 Oracle America, Inc. Method and system for intra-host communication
CN102648455B (zh) 2009-12-04 2015-11-25 日本电气株式会社 服务器和流控制程序
US20110153909A1 (en) 2009-12-22 2011-06-23 Yao Zu Dong Efficient Nested Virtualization
US8739177B2 (en) 2010-06-21 2014-05-27 Intel Corporation Method for network interface sharing among multiple virtual machines
US9923826B2 (en) * 2011-10-14 2018-03-20 Citrix Systems, Inc. Systems and methods for dynamic adaptation of network accelerators
US8521905B2 (en) 2011-12-22 2013-08-27 Telefonaktiebolaget L M Ericsson (Publ) System for flexible and extensible flow processing in software-defined networks
US9106508B2 (en) * 2012-04-30 2015-08-11 International Business Machines Corporation Providing services to virtual overlay network traffic
US9769061B2 (en) 2012-05-23 2017-09-19 Brocade Communications Systems, Inc. Integrated heterogeneous software-defined network
US8806025B2 (en) 2012-06-25 2014-08-12 Advanced Micro Devices, Inc. Systems and methods for input/output virtualization
US9668161B2 (en) 2012-07-09 2017-05-30 Cisco Technology, Inc. System and method associated with a service flow router
US9571507B2 (en) 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
JP2014096675A (ja) * 2012-11-08 2014-05-22 Hitachi Ltd 通信装置、及び、設定方法
US9356871B2 (en) * 2013-03-15 2016-05-31 Cisco Technology, Inc. Programmable management engine for networks
WO2015106249A1 (en) * 2014-01-13 2015-07-16 Futurewei Technologies, Inc. Packet labeling in a virtual network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005441A1 (en) * 2006-06-30 2008-01-03 Sun Microsystems, Inc. Bridging network components
US20090216964A1 (en) * 2008-02-27 2009-08-27 Michael Palladino Virtual memory interface
CN102124525A (zh) * 2008-02-27 2011-07-13 密克罗奇普技术公司 虚拟存储器接口
US20130279378A1 (en) * 2012-04-19 2013-10-24 Delphax Technologies Canada, Ltd. Cascaded Streaming of Data Through Virtual Chain of Nodes in Hub Topology

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108780410A (zh) * 2016-03-17 2018-11-09 微软技术许可有限责任公司 计算系统中的容器的网络虚拟化
CN108701047A (zh) * 2016-03-31 2018-10-23 英特尔公司 具有dma写时复制的高密度虚拟机容器
CN108701047B (zh) * 2016-03-31 2023-08-01 英特尔公司 具有dma写时复制的高密度虚拟机容器
CN112039748A (zh) * 2016-06-30 2020-12-04 丛林网络公司 软件定义的网络环境中服务的自动发现和自动扩缩
CN112039748B (zh) * 2016-06-30 2022-05-24 丛林网络公司 软件定义的网络环境中服务的自动发现和自动扩缩
CN107071932B (zh) * 2017-03-09 2020-10-23 南京耀泽电子科技有限公司 用于数据处理的无线网关虚拟化多通道构建及控制方法
CN107071932A (zh) * 2017-03-09 2017-08-18 南京耀泽电子科技有限公司 用于数据处理的无线网关虚拟化多通道构建及控制方法
CN110945843A (zh) * 2017-07-19 2020-03-31 阿里巴巴集团控股有限公司 虚拟交换设备和方法
CN110945843B (zh) * 2017-07-19 2022-04-12 阿里巴巴集团控股有限公司 虚拟交换设备和方法
CN111108722A (zh) * 2017-10-13 2020-05-05 思科技术公司 使用实时网络业务的复制容器性能和策略验证的系统和方法
CN111108722B (zh) * 2017-10-13 2022-09-20 思科技术公司 使用实时网络业务的复制容器性能和策略验证的系统和方法
CN110851371A (zh) * 2018-08-20 2020-02-28 华为技术有限公司 报文处理方法及相关设备
US11616738B2 (en) 2018-08-20 2023-03-28 Huawei Technologies Co., Ltd. Packet processing method and related device
CN110851371B (zh) * 2018-08-20 2023-09-26 华为技术有限公司 报文处理方法及相关设备
CN111756658A (zh) * 2019-03-29 2020-10-09 瞻博网络公司 转发微芯片上的网络功能虚拟化(nfv)背板
US11283732B2 (en) 2019-03-29 2022-03-22 Juniper Networks, Inc. Network functions virtualization (NFV) backplane on forwarding microchip
CN111756658B (zh) * 2019-03-29 2022-06-21 瞻博网络公司 转发微芯片上的网络功能虚拟化(nfv)背板
CN110597633A (zh) * 2019-09-12 2019-12-20 北京交通大学 一种智慧协同网络族群弹性伸缩的方法和系统

Also Published As

Publication number Publication date
DE102015108145A1 (de) 2015-12-24
US10261814B2 (en) 2019-04-16
KR101747518B1 (ko) 2017-06-14
CN105282135B (zh) 2019-07-26
JP6016984B2 (ja) 2016-10-26
JP2017022767A (ja) 2017-01-26
KR20150146391A (ko) 2015-12-31
DE102015108145B4 (de) 2023-04-27
JP2016009486A (ja) 2016-01-18
US20150370586A1 (en) 2015-12-24

Similar Documents

Publication Publication Date Title
CN105282135A (zh) 采用软件定义联网中的虚拟机和虚拟化容器的本地服务链接
US20210232528A1 (en) Configurable device interface
CN114189571B (zh) 用于实施加速网络分组处理的装置和方法
US20210243247A1 (en) Service mesh offload to network devices
US10178054B2 (en) Method and apparatus for accelerating VM-to-VM network traffic using CPU cache
WO2021257111A1 (en) Switch-managed resource allocation and software execution
US7873701B2 (en) Network on chip with partitions
US8526422B2 (en) Network on chip with partitions
US8279878B2 (en) Method for configuring virtual network and network system
US20210266253A1 (en) Pooling of network processing resources
US20090282211A1 (en) Network On Chip With Partitions
CN107646103A (zh) 对容器的逻辑处理
US20220029929A1 (en) Technologies that provide policy enforcement for resource access
CN111756791A (zh) 用于加速的功能即服务的网络设备负载平衡器的技术
CN101425966A (zh) 片上网络以及使用片上网络进行数据处理的方法
US11487567B2 (en) Techniques for network packet classification, transmission and receipt
US20220014459A1 (en) Network layer 7 offload to infrastructure processing unit for service mesh
US10877822B1 (en) Zero-copy packet transmission between virtualized computing instances
CN109218383A (zh) 虚拟网络功能负载平衡器
CN108432189A (zh) 多个隧道端点上的负载平衡
US11575620B2 (en) Queue-to-port allocation
US20230109396A1 (en) Load balancing and networking policy performance by a packet processing pipeline
EP4030284A1 (en) Virtual device portability
US20230108461A1 (en) Virtual device assignment framework
US20230043461A1 (en) Packet processing configurations

Legal Events

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