CN107005495B - 用于转发数据包的方法、网卡、主机设备和计算机系统 - Google Patents

用于转发数据包的方法、网卡、主机设备和计算机系统 Download PDF

Info

Publication number
CN107005495B
CN107005495B CN201780000340.6A CN201780000340A CN107005495B CN 107005495 B CN107005495 B CN 107005495B CN 201780000340 A CN201780000340 A CN 201780000340A CN 107005495 B CN107005495 B CN 107005495B
Authority
CN
China
Prior art keywords
network card
vnic
vnics
queues
information
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.)
Active
Application number
CN201780000340.6A
Other languages
English (en)
Other versions
CN107005495A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010186245.3A priority Critical patent/CN111490949B/zh
Publication of CN107005495A publication Critical patent/CN107005495A/zh
Application granted granted Critical
Publication of CN107005495B publication Critical patent/CN107005495B/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
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • 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/745Address table lookup; Address filtering
    • 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
    • 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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • 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
    • 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/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
    • 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)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种用于转发数据包的方法、网卡、主机设备和计算机系统,该方法应用于网卡,网卡与主机设备相连,主机设备包括第一VM,第一VM包括N个vNIC,网卡包括分配给第一VM的第一VF,N为大于1的整数,该方法包括:接收主机设备发送的映射关系信息,映射关系信息用于指示第一VF配置的队列中的N对队列与N个vNIC之间的一一映射关系,N对队列中的每对队列用于转发每对队列对应的vNIC的数据包;将映射关系信息记录在网卡的转发表中;根据转发表中记录的映射关系信息,转发N个vNIC的数据包。本申请通过建立第一VF的N对队列和第一VM的N个vNIC之间的一一映射关系,实现了多个vNIC之间的带宽资源共享。

Description

用于转发数据包的方法、网卡、主机设备和计算机系统
技术领域
本申请涉及虚拟化技术领域,并且更具体地,涉及一种用于转发数据包的方法、网卡、主机设备和计算机系统。
背景技术
通过虚拟化技术,可以在一台主机设备(主机设备也可称为计算机设备、物理主机或物理计算机)上模拟出一台或多台虚拟机(virtual machine,VM)。VM可以像主机设备一样工作。例如,用户可以在VM上安装操作系统和应用程序;又如,用户可以通过VM访问网络资源。对于用户而言,VM可以看成是运行在主机设备上的应用程序,但对于运行在VM中的应用程序而言,VM就像真正的主机设备一样为该应用程序提供工作环境。
单根输入输出虚拟化(single root input/output virtualization,SRIOV)技术允许在多个VM之间高效共享外设部件互连表示(peripheral component interconnectexpress,PCIe)设备。SRIOV引入了物理功能(physical function,PF)和虚拟功能(virtualfunction,VF)的概念,以支持网卡(或称网络接口卡、物理网卡或物理网络接口卡)的虚拟化。PF是网卡所支持的一项PCI功能,PF可以扩展出若干个VF。VF是支持SRIOV的网卡所虚拟出的一个实例,网卡中的每个VF配置有进行数据传输的带宽资源,每个VF会经由虚拟机监控器(virtual machine monitor,VMM)分配给主机设备上运行的VM使用。
网卡内部提供了虚拟交换机功能,并能通过PF/VF提供了带宽限制功能。用户(或管理员)可以根据该带宽限制功能为每个VF分配带宽。现有技术中,由于一个VF对应一个虚拟网络接口卡(virtual network interface card,vNIC,简称虚拟网卡),因此,每个VF分配的带宽资源仅能供一个vNIC使用,无法在多个vNIC之间共享带宽资源。
发明内容
本申请提供一种用于转发数据包的方法、网卡、主机设备和计算机系统,使得同一VM中的各vNIC之间可以共享带宽资源。
一方面,本申请提供一种用于转发数据包的方法,所述方法应用于网卡,所述网卡与主机设备相连,所述主机设备包括第一VM(或主机设备上运行着第一VM),所述第一VM包括N个vNIC,所述网卡包括分配给所述第一VM的第一VF,N为大于1的整数,所述方法包括:接收所述主机设备发送的映射关系信息,所述映射关系信息用于指示所述第一VF配置的队列中的N对队列与所述N个vNIC之间的一一映射关系,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包;将所述映射关系信息记录在所述网卡的转发表中;根据所述转发表中记录的所述映射关系信息,转发所述N个vNIC的数据包。
通过建立第一VF的N对队列和第一VM的N个vNIC之间的一一映射关系,使得N个vNIC的数据包均会使用第一VF中的队列进行转发,由于网卡会以VF为单位分配带宽资源,因此,该N个vNIC可以共享第一VF的带宽资源。
在一种可能的设计中,所述映射关系信息记录了所述N个vNIC中的每个vNIC的标识,并记录了所述每个vNIC对应的VF的标识以及所述每个vNIC对应的队列的标识。
在一种可能的设计中,所述根据所述转发表中记录的所述映射关系信息,转发所述N个vNIC的数据包,包括:接收第一数据包,所述第一数据包是发往所述N个vNIC中的第一vNIC的数据包,所述第一数据包包括所述第一vNIC的标识;根据所述第一vNIC的标识,通过查询所述转发表中的所述映射关系信息,确定所述第一vNIC对应所述第一VF中的目标接收队列;从所述第一VF的PCI内存空间中获取所述目标接收队列的控制信息;根据所述目标接收队列的控制信息,通过所述目标接收队列向所述第一vNIC发送所述第一数据包。
在一种可能的设计中,所述N个vNIC中的每个vNIC的标识包括所述每个vNIC的MAC地址和VLAN标识。
在一种可能的设计中,所述方法还包括:在所述第一VM启动之前,从所述网卡的PF的驱动接收第一指示信息,所述第一指示信息用于指示所述第一VF需要启用的队列的数量为N;在所述第一VM启动的过程中,向所述第一VF的驱动发送第二指示信息,所述第二指示信息用于指示所述第一VF启用的队列的数量为N,以触发所述第一VF的驱动创建N个vNIC。
现有技术中,一个VF驱动仅会创建一个vNIC,本方案,第一VF的驱动能够根据第一VF启用的队列的数量创建相应数量的vNIC,与现有技术相比更加灵活。
在一种可能的设计中,所述方法还包括:从所述网卡的PF驱动接收限速策略信息,所述限速策略信息用于指示所述第一VM的所述N个vNIC的整体限速策略;根据所述整体限速策略,配置所述第一VF对应的带宽资源。
现有技术中,由于一个VF仅对应一个vNIC,因此只能制定针对一个vNIC的限速策略,本方案中,由于N个vNIC共享第一VF的带宽资源,因此可以制定针对N个vNIC的整体限速策略,丰富了限速策略的种类。
在一种可能的设计中,所述N个vNIC为所述第一VM中的全部vNIC。
通过建立第一VF的队列与第一VM中的全部vNIC的对应关系,使得一个VF可以服务于一个VM,该VM中的全部vNIC可以共享同一VF的带宽资源。
在一种可能的设计中,所述N个vNIC为所述第一VM中的全部vNIC,所述方法还包括:从所述网卡的PF驱动接收针对第一VM的限速策略信息;根据所述针对第一VM的限速策略信息,配置所述第一VF对应的带宽资源。
通过制定针对VM的限速策略信息,进一步丰富了限速策略的种类。
另一方面,本申请提供一种用于转发数据包的方法,所述方法应用于主机设备,所述主机设备与网卡相连,所述主机设备包括第一VM,所述第一VM包括N个vNIC,所述网卡包括分配给所述第一VM的第一VF,N为大于1的整数,所述方法包括:获取映射关系信息,所述映射关系信息用于指示所述第一VF配置的队列中的N对队列与所述N个vNIC之间的一一映射关系,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包;向所述网卡发送所述映射关系信息,以便所述网卡将所述映射关系信息记录在所述网卡的转发表中。
通过建立第一VF的N对队列和第一VM的N个vNIC之间的一一映射关系,使得N个vNIC的数据包均会使用第一VF中的队列进行转发,由于网卡会以VF为单位分配带宽资源,因此,该N个vNIC可以共享第一VF的带宽资源。
在一种可能的设计中,所述映射关系信息记录了所述N个vNIC中的每个vNIC的标识,并记录了所述每个vNIC对应的VF的标识以及所述每个vNIC对应的队列的标识。
在一种可能的设计中,所述N个vNIC中的每个vNIC的标识包括所述每个vNIC的MAC地址和VLAN标识。
在一种可能的设计中,所述方法还包括:在所述第一VM启动之前,通过所述网卡的PF的驱动向所述网卡发送第一指示信息,所述第一指示信息用于指示所述第一VF需要启用的队列的数量为N;在所述第一VM启动的过程中,接收所述网卡向所述第一VF的驱动发送的第二指示信息,所述第二指示信息用于指示所述第一VF启用的队列的数量为N,以触发所述第一VF的驱动创建N个vNIC。
现有技术中,一个VF驱动仅会创建一个vNIC,本方案中,第一VF的驱动能够根据第一VF启用的队列的数量创建相应数量的vNIC,与现有技术相比更加灵活。
在一种可能的设计中,所述方法还包括:通过所述网卡的PF驱动向所述网卡发送限速策略信息,所述限速策略信息用于指示所述第一VM的所述N个vNIC的整体限速策略。
现有技术中,由于一个VF仅对应一个vNIC,因此只能制定针对一个vNIC的限速策略,本方案中,由于N个vNIC共享第一VF的带宽资源,因此可以制定针对N个vNIC的整体限速策略,丰富了限速策略的种类。
在一种可能的设计中,所述N个vNIC为所述第一VM中的全部vNIC。
通过建立第一VF的队列与第一VM中的全部vNIC的对应关系,使得一个VM中的全部vNIC可以共享同一VF的带宽资源。
在一种可能的设计中,所述N个vNIC为所述第一VM中的全部vNIC,所述方法还包括:从所述网卡的PF驱动接收针对第一VM的限速策略信息;根据所述针对第一VM的限速策略信息,配置所述第一VF对应的带宽资源。
通过制定针对VM的限速策略信息,进一步丰富了限速策略的种类。
另一方面,本申请提供一种网卡,包括用于执行上述某些方面提供的应用于网卡的方法的模块。
另一方面,本申请提供一种主机设备,包括用于执行上述某些方面提供的应用于主机设备的方法的模块。
另一方面,本申请提供一种网卡,包括存储器和处理器,所述存储器用于存储程序代码,所述处理器用于执行所述存储器中存储的程序代码,以执行上述某些方面提供的应用于网卡的方法对应的操作。
另一方面,本申请提供一种主机设备,包括存储器和处理器,所述存储器用于存储程序代码,所述处理器用于执行所述存储器中存储的程序代码,以执行上述某些方面提供的应用于主机设备的方法对应的操作。
另一方面,本申请提供一种计算机可读介质,所述计算机可读介质存储用于网卡执行的程序代码,所述程序代码包括用于执行上述某些方面提供的应用于网卡的方法的指令。
另一方面,本申请提供一种计算机可读介质,所述计算机可读介质存储用于主机设备执行的程序代码,所述程序代码包括用于执行上述某些方面提供的应用于主机设备的方法的指令。
另一方面,本申请提供一种计算机系统,包括上述某些方面提供的网卡和主机设备。
综上,本申请通过建立第一VF的N对队列和第一VM的N个vNIC之间的一一映射关系,实现了多个vNIC之间的带宽资源共享。
附图说明
图1是虚拟化系统的系统结构示意图。
图2是现有的网卡中的VF与VM中的vNIC的对应关系示意图。
图3是基于队列的数据包存取方式示例图。
图4是本发明一个实施例提供的用于转发数据包的方法的示意性流程图。
图5是本发明实施例提供的网卡中的VF与VM中的vNIC的对应关系示意图。
图6是本发明实施例提供的用于转发数据包的方法的流程图。
图7是本发明另一实施例提供的用于转发数据包的方法的示意性流程图。
图8是本发明一个实施例提供的网卡的示意性结构图。
图9是本发明一个实施例提供的主机设备的示意性结构图。
图10是本发明一个实施例提供的计算机系统的示意性结构图。
图11是本发明另一实施例提供的网卡的示意性结构图。
图12是本发明另一实施例提供的主机设备的示意性结构图。
图13是本发明另一实施例提供的计算机系统的示意性结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
应理解,本文中的网卡均指支持SRIOV技术的网卡,这样的网卡也可称为SRIOV网卡。
如图1所示,虚拟化系统一般包括管理控制中心110、VMM 120、一个或多个VM 130和网卡140等。
管理控制中心110可以对整个虚拟化系统进行管理和控制,下发各种指令或策略。
VMM 120可以包括应用程序编程接口(application programming interface,API)模块121、虚拟化层122和PF驱动123。用户可以通过虚拟化层122实现VM的创建。进一步地,用户可以通过API模块121与PF驱动交互,调用PF驱动的相关接口以完成VF的创建,并将创建出的VF分配给相应的VM。
VM 130可以像真正的计算机一样工作,如可以安装应用程序和操作系统。此外,VM130可以包括VF驱动131。VM 130可以通过该VF驱动131创建vNIC。假设VF驱动131对应网卡140中的VF1,则该VF驱动131创建的vNIC的数据包可以通过该VF1对应的带宽资源进行传输。
网卡140包含PF和VF。PF是网卡所支持的一项PCI功能,PF可以扩展出若干个VF。VF是支持SRIOV的网卡虚拟出的一个实例(instance),网卡中的每个VF配置有进行数据传输的带宽资源,每个VF会经由VMM分配给主机设备上运行的VM使用。
进一步地,网卡140可以包含管理小系统141,可用于与PF驱动和VF驱动进行交互。管理小系统141例如可以是中央处理单元(central processing unit,CPU),或其他类型的处理单元。
网卡140还可以包括TX限速模块142,RX限速模块143以及转发模块144。TX限速模块142可以为硬件形式的模块。TX限速模块142可用于对TX方向的流量进行限速,TX方向是指从某个vNIC到外界(同一主机设备的其他vNIC或其他主机设备)的方向。RX限速模块143可以为硬件形式的模块。RX限速模块143可用于对RX方向的流量进行限速,RX方向是指从外界到某个vNIC的方向。转发模块144可以为硬件形式的模块。转发模块144可以包括转发表,网卡可以基于转发模块144中的转发表在不同主机设备或同一主机设备的不同vNIC之间转发数据包。
需要说明的是,图1中的VMM 120和VM 130可以运行在与网卡140连接的主机设备中,管理控制中心110可以运行在该主机设备中,也可以运行在其他主机设备中。
现有技术中,一般会为一个VM配置(或创建)多个vNIC。相应地,网卡会为该多个vNIC中的每个vNIC配置一个VF。参见图2,VM1配置有vNIC1、vNIC2和vNIC3。相应地,网卡配置有VF1、VF2和VF3,分别与VM1的vNIC1、vNIC2和vNIC3对应。同理,VM2配置有vNIC4、vNIC5和vNIC6,网卡配置了VF4、VF5和VF6,分别与VM2的vNIC4、vNIC5和vNIC6对应。
网卡中的每个VF具有独立的PCI配置空间(或PCIe配置空间)和PCI内存空间(PCI内存空间也可称为PCIe内存空间,或BAR空间),VF的PCI内存空间存储了队列的控制信息,网卡可以根据该队列的控制信息转发该VF对应的vNIC的数据包。以图2中的VF1为例,在创建VF1时,网卡会为VF1配置用于转发vNIC1的数据包的一对队列,该对队列包括发送队列(sending queue,SQ)和接收队列(receiving queue,RQ)。该SQ和RQ的控制信息会存储在VF1的PCI内存空间中。在转发vNIC1的数据包的过程中,网卡会从VF1的PCI内存空间中获取该SQ和RQ的控制信息,并基于该SQ和RQ的控制信息控制vNIC1的数据包的转发过程。此外,当需要转发的数据包的数量较多时,队列还可用于缓存待转发的数据包。下面结合图3对vNIC1的数据包的转发过程进行详细描述。
如图3所示,以SQ为例,网卡这一侧主要用于存放SQ的控制信息(具体存放在VF的PCI内存空间中),SQ的控制信息包括基地址(base address),队列的头部(head)地址,尾部(tail)地址以及队列的长度(length)。主机设备这一侧主要用于存放SQ和数据包。参见图3,SQ中的每个存储单元用于存放一个缓存描述符(buffer description,BD)。BD包含数据包的信息,如数据包在主机设备内存中的存储位置、数据包的大小等(图3中的PKT BUF表示的是存储数据包的内存,其位置由BD进行描述或指示)。当需要向同一主机设备的其他VM或其他主机设备转发该VF对应的vNIC的数据包时,网卡先从VF的PCI内存空间中读取SQ的控制信息,并根据SQ的控制信息从SQ的队列头部读取BD。然后,网卡解析该BD以获取待转发的数据包在主机设备内存中的存储位置。接着,网卡以直接内存存取(Direct MemoryAccess,DMA)的方式从内存中获取该待转发的数据包,并将该待转发的数据包转发出去。RQ的处理过程与SQ的处理过程大致类似,不同之处在于网卡并非以DMA方式从主机设备内存中读数据包,而是需要以DMA方式将数据包存储至主机设备内存中,并更新RQ队列尾部的BD,为避免重复,此处不再详述。
现有技术中,网卡会为每个VF配置一对或多对队列,每个VF仅会为一个vNIC提供服务,即每个VF的队列仅会用于转发一个vNIC的数据包,VF和vNIC是一一对应关系。
网卡内部提供了虚拟交换机功能,并能通过PF/VF提供了带宽限制功能。用户可以根据该带宽限制功能为每个VF分配带宽资源。带宽是指单位时间内的数据传输量,例如,可以指1秒内能够传输的数据包的个数。每个VF的带宽资源可以指经过每个VF的队列转发的数据包所占的平均带宽、峰值带宽或突发带宽等,以基于令牌桶技术的限速方式为例,每个VF的带宽资源可以通过网卡中的限速模块为每个VF分配的令牌桶的类型和令牌数量进行控制。由于每个VF对应一个vNIC,因此,每个VF分配的带宽仅能供一个vNIC使用,无法在多个vNIC之间共享带宽资源。
为了解决上述技术问题,下面结合图4,详细描述本发明的方法实施例。
图4是本发明实施例提供的用于转发数据包的方法的示意性流程图。图4的方法可应用于网卡,或图4的方法可以由网卡实现。具体地,该网卡可以与主机设备(例如可以是服务器)相连。该主机设备包括第一VM,第一VM可以包括N个vNIC,N为大于1的整数。网卡包括分配给第一VM的第一VF,具体的分配过程可以由主机设备中的VMM实现。应理解,本发明实施例中的网卡(包括网卡或虚拟网卡)也可称为网络接口卡,或网络适配器。
图4的方法包括:
410、网卡接收主机设备发送的映射关系信息,该映射关系信息用于指示第一VF配置的队列中的N对队列与N个vNIC之间的一一映射关系,N对队列中的每对队列用于转发该每对队列对应的vNIC的数据包。
具体地,如图1所示,映射关系信息可以由位于上层的管理控制中心110生成,并通过主机设备中运行的第一VM的驱动下发给网卡的转发模块144。
需要说明的是,在创建第一VF的过程中,网卡会为第一VF配置X对队列(X为不小于N的正整数),本发明实施例可以使能(或启用)该X对队列中的任意N对队列,分别用于转发第一VM的N个vNIC的数据包。X表示的是第一VF最大可配置的队列数(即最大可以配置几对队列)。X可以是系统默认值,该系统默认值可以预先存储在如图1所示的管理小系统141中。
还需要说明的是,vNIC的数据包可以是发往该vNIC的数据包,或vNIC需要向外转发的数据包。在一些实施例中,vNIC的数据包可以是以该vNIC的MAC地址为目的地址的数据包,和/或以该vNIC的MAC地址为源地址的数据包。
420、网卡将映射关系信息记录在网卡的转发表中。
430、网卡根据转发表中记录的该映射关系信息,转发N个vNIC的数据包。
网卡包含转发表,用于记录映射关系信息,如图1所示,网卡140包括转发模块144,转发模块144基于该转发表中记录的映射关系信息进行数据包的转发。
现有技术中,由于一个VF对应一个vNIC,该VF的队列仅会用于转发一个vNIC的数据包。相比而言,本发明实施例建立了第一VF的N对队列和第一VM的N个vNIC之间的一一映射关系,即第一VF的队列可用于转发N个vNIC的数据包,进一步地,本发明实施例将映射关系信息存储在网卡的转发表中。按照本发明实施例提供的转发表转发N个vNIC的数据包时,该N个vNIC的数据包均会使用第一VF中的队列进行转发,由于网卡会以VF为单位分配带宽资源,因此,该N个vNIC可以共享第一VF的带宽资源。
上述N个vNIC可以是第一VM上的部分vNIC,也可以是第一VM上的全部vNIC,本发明实施例对此不做具体限定。
在一些实施例中,N个vNIC可以是第一VM上的全部vNIC,则第一VF相当于为整个第一VM服务,第一VM中的全部vNIC均可共享第一VF的带宽资源。
以图5为例,上文中的第一VM可以是图5中的VM1和VM2中的任一个。假设第一VM是VM1,第一VF是图5中的VF1,VM1包括3个vNIC,分别是vNIC1、vNIC2和vNIC3。VF1配置有负责转发vNIC1的数据包的发送队列SQ1和接收队列RQ1,负责转发vNIC2的数据包的发送队列SQ2和接收队列RQ2,以及负责转发vNIC3的数据包的发送队列SQ3和接收队列RQ3。这样一来,VF1相当于为整个VM1服务,并非像现有技术那样仅为一个vNIC提供服务,因此,VM1的全部3个vNIC均可共享VF1的带宽资源。
需要说明的是,图5是以一个VF对应一个VM中的全部vNIC为例进行举例说明的,但本发明实施例不限于此。在一些实施例中,图5中的VF1可以仅对应VM1的部分vNIC,如仅对应于VM1的vNIC1和vNIC2,这样一来,在建立VF1的队列与VM1的vNIC之间的对应关系时,仅需要建立vNIC1与SQ1/RQ1的对应关系,以及vNIC2与SQ2/RQ2的对应关系,无需建立vNIC3与SQ3/RQ3的对应关系。
还需要说明的是,图5仅是以VM1(或VM2)包括3个vNIC为例进行说明的,实际中,VM1可以包括2个,4个,甚至更多vNIC。
本发明实施例对上述映射关系信息的内容不做具体限定,只要能够基于该映射关系信息找到待发送或待接收的数据包对应的队列即可。
可选地,在一些实施例中,映射关系信息可以记录N个vNIC中的每个vNIC的标识,并记录每个vNIC对应的VF的标识以及每个vNIC对应的队列的标识。进一步地,在一些实施例中,N个vNIC中的每个vNIC的标识可以包括该每个vNIC的媒体接入控制(media accesscontrol,MAC)地址和虚拟局域网(virtual local area network,VLAN)标识。
在一些实施例中,上述映射关系信息可以采用表的形式实现,此时,映射关系信息也可称为映射关系表。表一是映射关系表的一个示例。表一中的每行记录了vNIC的MAC地址和VLAN标识,并记录了与该vNIC的对应的VF的标识,以及该vNIC对应的队列(包括发送队列和接收队列)的标识。
表一、映射关系信息的示例
MAC地址 VLAN标识 VF的标识 队列标识
00:11:22:33:44:55 0 1 0
00:11:22:33:44:66 1 1 1
00:11:22:33:44:77 2 1 2
00:11:22:33:55:55 0 2 0
00:11:22:33:55:66 1 2 1
可选地,在一些实施例中,图4的方法还可包括:在第一VM启动之前,网卡(具体可以是网卡中的管理小系统)从网卡的PF的驱动接收第一指示信息,第一指示信息用于指示第一VF需要启用的队列的数量为N;在第一VM启动的过程中,网卡(具体可以是网卡中的管理小系统)向第一VM中运行的第一VF的驱动发送第二指示信息,第二指示信息用于指示第一VF启用的队列的数量为N,以触发第一VF的驱动创建N个vNIC。
以图1为例,在第一VM启动之前,用户(或管理员)可以操作管理控制中心110,通过VMM 120中的API模块121配置第一VM需要的vNIC的数量M(其中M为大于或等于N的正整数)。然后,API模块121可以根据第一VM需要的vNIC的数量向网卡中的管理小系统141发送第一指示信息,指示第一VF启用或使能N对队列,N对队列中的每对队列可以对应一个vNIC。管理小系统141可以记录第一VF启用的队列数量N。在第一VF的驱动加载的过程中,网卡140中的管理小系统141向第一VF的驱动发送第二指示信息,第一VF的驱动根据第二指示信息创建N个vNIC。
现有技术中,由于一个VF对应一个vNIC,因此,在第一VM启动的过程中,第一VF的驱动直接创建一个vNIC即可。与现有技术不同,在本发明实施例中,由于第一VF对应第一VM的多个vNIC,因此,在第一VM启动的过程中,第一VF的驱动可以先从网卡(具体可以是网卡中的管理小系统)中获知第一VF启用的队列的数量,从而获知第一VF的驱动需要创建的vNIC的数量,然后创建相应数量的vNIC。
可选地,在一些实施例中,步骤430可包括:接收第一数据包,第一数据包是发往N个vNIC中的第一vNIC的数据包,第一数据包包括第一vNIC的标识;根据第一vNIC的标识,通过查询转发表中的映射关系信息,确定第一vNIC对应第一VF中的目标接收队列;从第一VF的PCI内存空间中获取目标接收队列的控制信息;根据目标接收队列的控制信息,通过所述目标接收队列向第一vNIC发送第一数据包(根据队列的控制信息可以以DMA的方式将数据包存储到主机设备内存的相应位置,进而实现数据包的收发,具体可以参见图3相关描述,此处不再赘述)。
上述映射关系信息可用于同一主机设备内的不同VM之间的数据包交换,也可用于VM与其他主机设备之间的数据包交换。以表一为例,假设网卡接收到数据包1,该数据包1的MAC地址为00:11:22:33:55:66,VLAN标识为1,则网卡可以通过查询表一,找到与该MAC地址和VLAN标识对应的VF标识为2(下称VF2),队列标识为1(下称队列1)。然后,网卡可以从VF2的PCI内存空间中获取队列1中的RQ的控制信息,并根据该RQ的控制信息将数据包1转发至队列1对应的vNIC。
网卡内部的带宽限制功能是针对VF/PF设计的,因此,可以通过调整VF对应的带宽,实现带宽限速功能。如前文所述,在现有技术中,一个VF对应一个vNIC,因此,对VF的带宽进行限制相当于对一个vNIC的流量进行限速,在这种情况下,云计算厂商也只能提供针对vNIC的限速和计费策略,这种限速和计费策略过于单一,无法满足多样化的需求。本发明实施例中,每个VF可以对应一个VM中的多个vNIC,因此,对VF的带宽进行限速相当于对VM中的多个vNIC的整体流量进行限速。这样一来,云计算厂商就可以制定针对多个vNIC整体流量的限速和计费策略,使得限速和计费策略更加灵活和多样化。
在一些实施例中,图4的方法还可包括:网卡(具体可以是网卡中的管理小系统)从网卡的PF驱动接收限速策略信息,该限速策略信息可用于指示第一VM的N个vNIC的整体限速策略;网卡(具体可以是网卡中的管理小系统)根据整体限速策略,配置第一VF对应的带宽资源。
具体地,用户可以在第一VM启动前或启动后,通过操作管理控制中心下发限速策略信息。如图1所示,用户可以通过API模块121将限速策略信息发送至PF驱动123,再通过PF驱动123将限速策略信息发送至管理小系统141。管理小系统141可以保存限速策略信息中的各种配置参数,并通过TX限速模块142和RX限速模块143进行限速。
具体的限速方式可以采用令牌桶技术进行限速,如基于双速双桶算法控制硬件形式的TX限速模块和RX限速模块进行限速,基于令牌桶技术的限速方式可以参见现有技术,此处不再详述。
本发明实施例对限速策略信息包含的信息类型以及限速策略信息的形式不做具体限定。例如,限速策略信息可以包括针对TX方向的限速策略信息和针对RX方向的限速策略信息中的至少一种。针对TX方向的限速策略信息可包括以下信息中的至少一种:承诺信息率(committed information rate,CIR)、平均带宽、峰值信息率(peak informationrate,PIR)、峰值带宽、峰值突发尺寸(peak burst size,PBS)、突发流量等。针对RX方向的限速策略信息可包括以下信息中的至少一种:平均带宽、峰值带宽以及突发带宽。
可选地,在一些实施例中,上述N个vNIC可以是第一VM中的全部vNIC,这样一来,云计算厂商可以制定针对第一VM的整体流量的限速和计费策略。
下面结合具体例子,更加详细地描述本发明实施例。应注意,图6的例子仅仅是为了帮助本领域技术人员理解本发明实施例,而非要将本发明实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的图6的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。应理解,图6是以第一VF对应第一VM的全部vNIC为例进行举例说明的,但本发明实施例不限于此,第一VF可以对应第一VM的部分vNIC。
图6是本发明实施例提供的用于转发数据包的方法的示意性流程图。
610、在网卡启动的过程中,网卡根据第一VF最多可配置的队列数,为第一VF分配PCI内存空间(或称BAR空间)。
步骤610具体可以由网卡中的PF执行。
第一VF可以是网卡中的任意一个VF。第一VF最多可配置的队列数可以是一个默认值。该默认值例如可以由网卡中的管理小系统进行管理和维护。因此,当网卡启动时,可以从该管理小系统中获取该默认值。下文以第一VF最多可配置X对队列为例进行说明。
第一VF的PCI内存空间可以包括与X对队列一一对应的X个存储区域,其中每个存储区域用于存储一对队列的控制信息。队列的控制信息可以包括队列的基地址、长度、头部地址、尾部地址等。
620、主机设备创建第一VM,并将第一VF分配给第一VM。
步骤620具体可以由主机设备中的VMM执行。以图1为例,用户(或管理员)可以操作管理控制中心110,使得VMM 120中的虚拟化层122创建第一VM,并将第一VF分配给第一VM。
630、管理控制中心下发第一VM需要配置的vNIC的个数。
以图1为例,用户可以操作管理控制中心110,通过API模块121配置第一VM需要的vNIC的数量。下文以第一VM需要配置N个vNIC为例进行说明,N为不大于X的正整数。API模块121向网卡140中的管理小系统141下发第一指示信息,指示第一VF需要启用的队列数量为N,管理小系统141记录第一VF需要启用的队列数量,并记录第一VF的标识。
640、主机设备启动第一VM,加载第一VF的驱动。
步骤640具体可以由主机设备中的VMM执行。
在第一VF的驱动加载的过程中,第一VF的驱动会与管理小系统进行信息交互,以获取第一VF启用的队列数量,第一VF的驱动可以根据第一VF启用的队列数量,创建相同数量的vNIC。
650、主机设备将管理控制中心下发的映射关系信息发送至网卡。
映射关系信息可以由管理控制中心生成,并通过主机设备(具体可以是运行在第一主机设备上的第一VM的驱动)下发至网卡。映射关系信息可以包括第一VF对应的各虚拟网卡的MAC地址、VLAN标识、VF标识和队列标识的映射关系(具体参见表一)。网卡可以将该映射关系信息记录在转发表中。
660、管理控制中心配置第一VM的限速策略。
应理解,本发明实施例对步骤660与步骤610-650的先后顺序不做具体限定。例如,可以在第一VM启动前配置第一VM的限速策略,也可以在第一VM启动之后配置第一VM的限速策略。
具体地,如图1所示,用户(或管理员)可以操作管理控制中心,将限速策略信息(指示第一VM的整体限速策略)下发至API模块121,API模块121可以通过PF驱动123将限速策略信息下发至管理小系统141,管理小系统141保存该限速策略信息,并根据限速策略信息,通过网卡140中的TX限速模块142和RX限速模块143,分别对第一VM的TX方向的流量和第一VM的RX方向的流量进行限速,具体的限速方式可以采用令牌桶技术或其他技术实现,本发明实施例对此不做具体限定。
现有技术中,一个VF对应一个vNIC,因此,用户仅能制定针对vNIC的限速策略,本发明实施例中的VF对应VM中的全部vNIC,因此,用户可以制定针对VM的限速策略。表二给出了VM的限速策略的示例。
表二、VM的限速策略的示例
Figure BDA0001300102730000101
670、网卡根据转发表中记录的映射关系信息和配置的限速策略,转发第一VM中的各vNIC的数据包。
步骤670具体可以由网卡中的转发模块实现。上述映射关系信息可以记录在转发模块的转发表中。无论是从网络侧接收到的数据包,还是从同一主机设备的不同VM接收到的数据包,均可根据数据包中记录的vNIC的MAC地址和VLAN标识,通过查询该转发表中的映射关系信息查找对应的队列,并将该数据包发送至第一VM中的与该队列对应的vNIC。如果未找到对应的队列,可以对该数据包进行广播处理。
本发明实施例能够针对VM整体流量进行限速,有利于VM的用户均衡VM的各vNIC之间的流量。此外,基于本发明实施例,云提供商可以针对VM整体流量进行计费,丰富了云提供商的计费策略。
上文中结合图4-图6,从网卡的角度详细描述了根据本发明实施例的用于转发数据包的方法,下面将结合图7,从与该网卡连接的主机设备的角度描述根据本发明实施例的用于转发数据包的方法。应理解,主机设备侧描述的主机设备和网卡的交互及相关特性、功能等与网卡侧的描述相应,为了简洁,适当省略重复的描述。
图7是本发明实施例提供的用于转发数据包的方法的示意性流程图。图7的方法可应用于主机设备,所述主机设备与网卡相连,所述主机设备包括第一VM,所述第一VM包括N个vNIC,所述网卡包括分配给所述第一VM的第一VF,N为大于1的整数。
图7的方法包括:
710、主机设备获取映射关系信息,所述映射关系信息用于指示所述第一VF配置的队列中的N对队列与所述N个vNIC之间的一一映射关系,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包。
映射关系信息可以由如图1所示的管理控制中心110生成。步骤710具体可包括:从管理控制中心110获取该映射关系信息。
720、主机设备向所述网卡发送所述映射关系信息,以便网卡将所述映射关系信息记录在网卡的转发表中。
可选地,在一些实施例中,所述映射关系信息记录了所述N个vNIC中的每个vNIC的标识,并记录了所述每个vNIC对应的VF的标识以及所述每个vNIC对应的队列的标识。
可选地,在一些实施例中,所述N个vNIC中的每个vNIC的标识包括所述每个vNIC的MAC地址和VLAN标识。
可选地,在一些实施例中,图7的方法还可包括:在所述第一VM启动之前,通过所述网卡的PF的驱动向所述网卡发送第一指示信息,所述第一指示信息用于指示所述第一VF需要启用的队列的数量为N;在所述第一VM启动的过程中,接收所述网卡向所述第一VF的驱动发送的第二指示信息,所述第二指示信息用于指示所述第一VF启用的队列的数量为N,以触发所述第一VF的驱动创建N个vNIC。
可选地,在一些实施例中,图7的方法还可包括:通过所述网卡的PF驱动向所述网卡发送限速策略信息,所述限速策略信息用于指示所述第一VM的所述N个vNIC的整体限速策略。
下面对本发明的装置实施例进行描述,由于装置实施例可以执行上述方法,因此未详细描述的部分可以参见前面各方法实施例。
图8是本发明实施例提供的网卡的示意性结构图。图8的网卡800与主机设备相连,所述主机设备包括第一VM,所述第一VM包括N个vNIC,所述网卡800包括分配给所述第一VM的第一VF,N为大于1的整数,所述网卡800包括:
第一接收模块810,用于接收所述主机设备发送的映射关系信息,所述映射关系信息用于指示所述第一VF配置的队列中的N对队列与所述N个vNIC之间的一一映射关系,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包;
记录模块820,用于将所述映射关系信息记录在所述网卡800的转发表中;
转发模块830,用于根据所述转发表中记录的所述映射关系信息,转发所述N个vNIC的数据包。
本发明实施例通过建立第一VF的N对队列和第一VM的N个vNIC之间的一一映射关系,使得N个vNIC的数据包均会使用第一VF中的队列进行转发,由于网卡会以VF为单位分配带宽资源,因此,该N个vNIC可以共享第一VF的带宽资源。
可选地,在一些实施例中,所述映射关系信息可以记录所述N个vNIC中的每个vNIC的标识,并可以记录所述每个vNIC对应的VF的标识以及所述每个vNIC对应的队列的标识。
可选地,在一些实施例中,所述转发模块830可具体用于接收第一数据包,所述第一数据包是发往所述N个vNIC中的第一vNIC的数据包,所述第一数据包包括所述第一vNIC的标识;根据所述第一vNIC的标识,通过查询所述转发表中的所述映射关系信息,确定所述第一vNIC对应所述第一VF中的目标接收队列;从所述第一VF的PCI内存空间中获取所述目标接收队列的控制信息;根据所述目标接收队列的控制信息,通过所述目标接收队列向所述第一vNIC发送所述第一数据包。
可选地,在一些实施例中,所述N个vNIC中的每个vNIC的标识可以包括所述每个vNIC的MAC地址和VLAN标识。
可选地,在一些实施例中,所述网卡800还可包括:第二接收模块,用于在所述第一VM启动之前,从所述网卡800的PF的驱动接收第一指示信息,所述第一指示信息用于指示所述第一VF需要启用的队列的数量为N;发送模块,用于在所述第一VM启动的过程中,向所述第一VF的驱动发送第二指示信息,所述第二指示信息用于指示所述第一VF启用的队列的数量为N,以触发所述第一VF的驱动创建N个vNIC。
可选地,在一些实施例中,所述网卡800还可包括:第三接收模块,用于从所述网卡800的PF驱动接收限速策略信息,所述限速策略信息用于指示所述第一VM的所述N个vNIC的整体限速策略;配置模块,用于根据所述整体限速策略,配置所述第一VF对应的带宽资源。
图9是本发明实施例提供的主机设备的示意性结构图。图9的主机设备900与网卡相连,所述主机设备900包括第一VM,所述第一VM包括N个vNIC,所述网卡包括分配给所述第一VM的第一VF,N为大于1的整数,所述主机设备900包括:
获取模块910,用于获取映射关系信息,所述映射关系信息用于指示所述第一VF配置的队列中的N对队列与所述N个vNIC之间的一一映射关系,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包;
第一发送模块920,用于向所述网卡发送所述映射关系信息,以便所述网卡将所述映射关系信息记录在所述网卡的转发表中。
本发明实施例通过建立第一VF的N对队列和第一VM的N个vNIC之间的一一映射关系,使得N个vNIC的数据包均会使用第一VF中的队列进行转发,由于网卡会以VF为单位分配带宽资源,因此,该N个vNIC可以共享第一VF的带宽资源。
可选地,在一些实施例中,所述映射关系信息可以记录所述N个vNIC中的每个vNIC的标识,并可以记录所述每个vNIC对应的VF的标识以及所述每个vNIC对应的队列的标识。
可选地,在一些实施例中,所述N个vNIC中的每个vNIC的标识可以包括所述每个vNIC的MAC地址和VLAN标识。
可选地,在一些实施例中,所述主机设备900还可包括:第二发送模块,用于在所述第一VM启动之前,通过所述网卡的PF的驱动向所述网卡发送第一指示信息,所述第一指示信息用于指示所述第一VF需要启用的队列的数量为N;接收模块,用于在所述第一VM启动的过程中,接收所述网卡向所述第一VF的驱动发送的第二指示信息,所述第二指示信息用于指示所述第一VF启用的队列的数量为N,以触发所述第一VF的驱动创建N个vNIC。
可选地,在一些实施例中,所述主机设备900还可包括:第三发送模块,用于通过所述网卡的PF驱动向所述网卡发送限速策略信息,所述限速策略信息用于指示所述第一VM的所述N个vNIC的整体限速策略。
图10是本发明实施例提供的计算机系统的示意性结构图,图10的计算机系统1000包括如图8所述的网卡800以及如图9所述的主机设备900。
图11是本发明实施例提供的网卡的示意性结构图。图11的网卡1100与主机设备相连,所述主机设备包括第一VM,所述第一VM包括N个vNIC,所述网卡1100包括分配给所述第一VM的第一VF,N为大于1的整数,所述网卡1100包括:
存储器1110,用于存储程序代码;
处理器1120,用于执行存储器1110中存储的程序代码,以执行以下操作:
接收所述主机设备发送的映射关系信息,所述映射关系信息用于指示所述第一VF配置的队列中的N对队列与所述N个vNIC之间的一一映射关系,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包;
将所述映射关系信息记录在所述网卡1100的转发表中;
根据所述转发表中记录的所述映射关系信息,转发所述N个vNIC的数据包。
本发明实施例通过建立第一VF的N对队列和第一VM的N个vNIC之间的一一映射关系,使得N个vNIC的数据包均会使用第一VF中的队列进行转发,由于网卡会以VF为单位分配带宽资源,因此,该N个vNIC可以共享第一VF的带宽资源。
可选地,在一些实施例中,所述映射关系信息可以记录所述N个vNIC中的每个vNIC的标识,并可以记录所述每个vNIC对应的VF的标识以及所述每个vNIC对应的队列的标识。
可选地,在一些实施例中,所述根据所述转发表中记录的所述映射关系信息,转发所述N个vNIC的数据包可包括:接收第一数据包,所述第一数据包是发往所述N个vNIC中的第一vNIC的数据包,所述第一数据包包括所述第一vNIC的标识;根据所述第一vNIC的标识,通过查询所述转发表中的所述映射关系信息,确定所述第一vNIC对应所述第一VF中的目标接收队列;从所述第一VF的PCI内存空间中获取所述目标接收队列的控制信息;根据所述目标接收队列的控制信息,通过所述目标接收队列向所述第一vNIC发送所述第一数据包。
可选地,在一些实施例中,所述N个vNIC中的每个vNIC的标识可以包括所述每个vNIC的MAC地址和VLAN标识。
可选地,在一些实施例中,所述处理器1120还可用于执行以下操作:在所述第一VM启动之前,从所述网卡1100的PF的驱动接收第一指示信息,所述第一指示信息用于指示所述第一VF需要启用的队列的数量为N;在所述第一VM启动的过程中,向所述第一VF的驱动发送第二指示信息,所述第二指示信息用于指示所述第一VF启用的队列的数量为N,以触发所述第一VF的驱动创建N个vNIC。
可选地,在一些实施例中,所述处理器1120还可用于执行以下操作:从所述网卡1100的PF驱动接收限速策略信息,所述限速策略信息用于指示所述第一VM的所述N个vNIC的整体限速策略;根据所述整体限速策略,配置所述第一VF对应的带宽资源。
图12是本发明实施例提供的主机设备的示意性结构图。图12的主机设备1200与网卡相连,所述主机设备1200包括第一VM,所述第一VM包括N个vNIC,所述网卡包括分配给所述第一VM的第一VF,N为大于1的整数,所述主机设备1200包括:
存储器1210,用于存储程序代码;
处理器1220,用于执行存储器1210中存储的程序代码,以执行以下操作:
获取映射关系信息,所述映射关系信息用于指示所述第一VF配置的队列中的N对队列与所述N个vNIC之间的一一映射关系,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包;
向所述网卡发送所述映射关系信息,以便所述网卡将所述映射关系信息记录在所述网卡的转发表中。
本发明实施例通过建立第一VF的N对队列和第一VM的N个vNIC之间的一一映射关系,使得N个vNIC的数据包均会使用第一VF中的队列进行转发,由于网卡会以VF为单位分配带宽资源,因此,该N个vNIC可以共享第一VF的带宽资源。
可选地,在一些实施例中,所述映射关系信息可以记录所述N个vNIC中的每个vNIC的标识,并可以记录所述每个vNIC对应的VF的标识以及所述每个vNIC对应的队列的标识。
可选地,在一些实施例中,所述N个vNIC中的每个vNIC的标识可以包括所述每个vNIC的MAC地址和VLAN标识。
可选地,在一些实施例中,所述处理器1220还可用于执行以下操作:在所述第一VM启动之前,通过所述网卡的物理功能PF的驱动向所述网卡发送第一指示信息,所述第一指示信息用于指示所述第一VF需要启用的队列的数量为N;在所述第一VM启动的过程中,接收所述网卡向所述第一VF的驱动发送的第二指示信息,所述第二指示信息用于指示所述第一VF启用的队列的数量为N,以触发所述第一VF的驱动创建N个vNIC。
可选地,在一些实施例中,所述处理器1220还可用于执行以下操作:通过所述网卡的PF驱动向所述网卡发送限速策略信息,所述限速策略信息用于指示所述第一VM的所述N个vNIC的整体限速策略。
图13是本发明实施例提供的计算机系统的示意性结构图。图13的计算机系统1300包括如图11所述的网卡1100以及如图12所述的主机设备1200。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。

Claims (25)

1.一种用于转发数据包的方法,其特征在于,所述方法应用于网卡,所述网卡与主机设备相连,所述主机设备包括第一虚拟机VM,所述第一VM包括N个虚拟网络接口卡vNIC,所述网卡包括分配给所述第一VM的第一虚拟功能VF,N为大于1的整数,
所述方法包括:
接收所述主机设备发送的映射关系信息,所述映射关系信息用于指示所述第一VF配置的队列中的N对队列与所述N个vNIC之间的一一映射关系,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包;
将所述映射关系信息记录在所述网卡的转发表中;
根据所述转发表中记录的所述映射关系信息,转发所述N个vNIC的数据包。
2.如权利要求1所述的方法,其特征在于,所述映射关系信息记录了所述N个vNIC中的每个vNIC的标识,并记录了所述每个vNIC对应的VF的标识以及所述每个vNIC对应的队列的标识。
3.如权利要求2所述的方法,其特征在于,所述根据所述转发表中记录的所述映射关系信息,转发所述N个vNIC的数据包,包括:
接收第一数据包,所述第一数据包是发往所述N个vNIC中的第一vNIC的数据包,所述第一数据包包括所述第一vNIC的标识;
根据所述第一vNIC的标识,通过查询所述转发表中的所述映射关系信息,确定所述第一vNIC对应所述第一VF中的目标接收队列;
从所述第一VF的PCI内存空间中获取所述目标接收队列的控制信息;
根据所述目标接收队列的控制信息,通过所述目标接收队列向所述第一vNIC发送所述第一数据包。
4.如权利要求2所述的方法,其特征在于,所述N个vNIC中的每个vNIC的标识包括所述每个vNIC的媒体接入控制MAC地址和虚拟局域网VLAN标识。
5.如权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
在所述第一VM启动之前,从所述网卡的物理功能PF的驱动接收第一指示信息,所述第一指示信息用于指示所述第一VF需要启用的队列的数量为N;
在所述第一VM启动的过程中,向所述第一VF的驱动发送第二指示信息,所述第二指示信息用于指示所述第一VF启用的队列的数量为N,以触发所述第一VF的驱动创建N个vNIC。
6.如权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
从所述网卡的PF驱动接收限速策略信息,所述限速策略信息用于指示所述第一VM的所述N个vNIC的整体限速策略;
根据所述整体限速策略,配置所述第一VF对应的带宽资源。
7.一种用于转发数据包的方法,其特征在于,所述方法应用于主机设备,所述主机设备与网卡相连,所述主机设备包括第一虚拟机VM,所述第一VM包括N个虚拟网络接口卡vNIC,所述网卡包括分配给所述第一VM的第一虚拟功能VF,N为大于1的整数,
所述方法包括:
获取映射关系信息,所述映射关系信息用于指示所述第一VF配置的队列中的N对队列与所述N个vNIC之间的一一映射关系,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包;
向所述网卡发送所述映射关系信息,以便所述网卡将所述映射关系信息记录在所述网卡的转发表中。
8.如权利要求7所述的方法,其特征在于,所述映射关系信息记录了所述N个vNIC中的每个vNIC的标识,并记录了所述每个vNIC对应的VF的标识以及所述每个vNIC对应的队列的标识。
9.如权利要求8所述的方法,其特征在于,所述N个vNIC中的每个vNIC的标识包括所述每个vNIC的媒体接入控制MAC地址和虚拟局域网VLAN标识。
10.如权利要求7-9中任一项所述的方法,其特征在于,所述方法还包括:
在所述第一VM启动之前,通过所述网卡的物理功能PF的驱动向所述网卡发送第一指示信息,所述第一指示信息用于指示所述第一VF需要启用的队列的数量为N;
在所述第一VM启动的过程中,接收所述网卡向所述第一VF的驱动发送的第二指示信息,所述第二指示信息用于指示所述第一VF启用的队列的数量为N,以触发所述第一VF的驱动创建N个vNIC。
11.如权利要求7-9中任一项所述的方法,其特征在于,所述方法还包括:
通过所述网卡的PF驱动向所述网卡发送限速策略信息,所述限速策略信息用于指示所述第一VM的所述N个vNIC的整体限速策略。
12.一种网卡,其特征在于,所述网卡与主机设备相连,所述主机设备包括第一虚拟机VM,所述第一VM包括N个虚拟网络接口卡vNIC,所述网卡包括分配给所述第一VM的第一虚拟功能VF,N为大于1的整数,
所述网卡包括:
第一接收模块,用于接收所述主机设备发送的映射关系信息,所述映射关系信息用于指示所述第一VF配置的队列中的N对队列与所述N个vNIC之间的一一映射关系,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包;
记录模块,用于将所述映射关系信息记录在所述网卡的转发表中;
转发模块,用于根据所述转发表中记录的所述映射关系信息,转发所述N个vNIC的数据包。
13.如权利要求12所述的网卡,其特征在于,所述映射关系信息记录了所述N个vNIC中的每个vNIC的标识,并记录了所述每个vNIC对应的VF的标识以及所述每个vNIC对应的队列的标识。
14.如权利要求13所述的网卡,其特征在于,所述转发模块具体用于接收第一数据包,所述第一数据包是发往所述N个vNIC中的第一vNIC的数据包,所述第一数据包包括所述第一vNIC的标识;根据所述第一vNIC的标识,通过查询所述转发表中的所述映射关系信息,确定所述第一vNIC对应所述第一VF中的目标接收队列;从所述第一VF的PCI内存空间中获取所述目标接收队列的控制信息;根据所述目标接收队列的控制信息,通过所述目标接收队列向所述第一vNIC发送所述第一数据包。
15.如权利要求13所述的网卡,其特征在于,所述N个vNIC中的每个vNIC的标识包括所述每个vNIC的媒体接入控制MAC地址和虚拟局域网VLAN标识。
16.如权利要求12-15中任一项所述的网卡,其特征在于,所述网卡还包括:
第二接收模块,用于在所述第一VM启动之前,从所述网卡的物理功能PF的驱动接收第一指示信息,所述第一指示信息用于指示所述第一VF需要启用的队列的数量为N;
发送模块,用于在所述第一VM启动的过程中,向所述第一VF的驱动发送第二指示信息,所述第二指示信息用于指示所述第一VF启用的队列的数量为N,以触发所述第一VF的驱动创建N个vNIC。
17.如权利要求12-15中任一项所述的网卡,其特征在于,所述网卡还包括:
第三接收模块,用于从所述网卡的PF驱动接收限速策略信息,所述限速策略信息用于指示所述第一VM的所述N个vNIC的整体限速策略;
配置模块,用于根据所述整体限速策略,配置所述第一VF对应的带宽资源。
18.一种主机设备,其特征在于,所述主机设备与网卡相连,所述主机设备包括第一虚拟机VM,所述第一VM包括N个虚拟网络接口卡vNIC,所述网卡包括分配给所述第一VM的第一虚拟功能VF,N为大于1的整数,
所述主机设备包括:
获取模块,用于获取映射关系信息,所述映射关系信息用于指示所述第一VF配置的队列中的N对队列与所述N个vNIC之间的一一映射关系,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包;
第一发送模块,用于向所述网卡发送所述映射关系信息,以便所述网卡将所述映射关系信息记录在所述网卡的转发表中。
19.如权利要求18所述的主机设备,其特征在于,所述映射关系信息记录了所述N个vNIC中的每个vNIC的标识,并记录了所述每个vNIC对应的VF的标识以及所述每个vNIC对应的队列的标识。
20.如权利要求19所述的主机设备,其特征在于,所述N个vNIC中的每个vNIC的标识包括所述每个vNIC的媒体接入控制MAC地址和虚拟局域网VLAN标识。
21.如权利要求18-20中任一项所述的主机设备,其特征在于,所述主机设备还包括:
第二发送模块,用于在所述第一VM启动之前,通过所述网卡的物理功能PF的驱动向所述网卡发送第一指示信息,所述第一指示信息用于指示所述第一VF需要启用的队列的数量为N;
接收模块,用于在所述第一VM启动的过程中,接收所述网卡向所述第一VF的驱动发送的第二指示信息,所述第二指示信息用于指示所述第一VF启用的队列的数量为N,以触发所述第一VF的驱动创建N个vNIC。
22.如权利要求18-20中任一项所述的主机设备,其特征在于,所述主机设备还包括:
第三发送模块,用于通过所述网卡的PF驱动向所述网卡发送限速策略信息,所述限速策略信息用于指示所述第一VM的所述N个vNIC的整体限速策略。
23.一种计算机系统,包括:如权利要求12-17中任一项所述的网卡,以及如权利要求18-22中任一项所述的主机设备。
24.一种用于转发数据包的方法,其特征在于,所述方法应用于网卡,所述网卡与主机设备相连,所述主机设备包括第一虚拟机VM,所述第一VM包括N个虚拟网络接口卡vNIC,所述网卡包括分配给所述第一VM的第一虚拟功能VF,N为大于1的整数,
所述方法包括:
接收所述主机设备发送的映射关系信息,所述映射关系信息用于指示所述第一VF配置的队列中的N对队列与所述N个vNIC之间的映射关系,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包;
将所述映射关系信息记录在所述网卡的转发表中;
根据所述转发表中记录的所述映射关系信息,转发所述N个vNIC的数据包。
25.一种网卡,其特征在于,所述网卡与主机设备相连,所述主机设备包括第一虚拟机VM,所述第一VM包括N个虚拟网络接口卡vNIC,所述网卡包括分配给所述第一VM的第一虚拟功能VF,N为大于1的整数,
所述网卡包括:
第一接收模块,用于接收所述主机设备发送的映射关系信息,所述映射关系信息用于指示所述第一VF配置的队列中的N对队列与所述N个vNIC之间的映射关系,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包;
记录模块,用于将所述映射关系信息记录在所述网卡的转发表中;
转发模块,用于根据所述转发表中记录的所述映射关系信息,转发所述N个vNIC的数据包。
CN201780000340.6A 2017-01-20 2017-01-20 用于转发数据包的方法、网卡、主机设备和计算机系统 Active CN107005495B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010186245.3A CN111490949B (zh) 2017-01-20 2017-01-20 用于转发数据包的方法、网卡、主机设备和计算机系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/071951 WO2018133035A1 (zh) 2017-01-20 2017-01-20 用于转发数据包的方法、网卡、主机设备和计算机系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010186245.3A Division CN111490949B (zh) 2017-01-20 2017-01-20 用于转发数据包的方法、网卡、主机设备和计算机系统

Publications (2)

Publication Number Publication Date
CN107005495A CN107005495A (zh) 2017-08-01
CN107005495B true CN107005495B (zh) 2020-03-27

Family

ID=59436508

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010186245.3A Active CN111490949B (zh) 2017-01-20 2017-01-20 用于转发数据包的方法、网卡、主机设备和计算机系统
CN201780000340.6A Active CN107005495B (zh) 2017-01-20 2017-01-20 用于转发数据包的方法、网卡、主机设备和计算机系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010186245.3A Active CN111490949B (zh) 2017-01-20 2017-01-20 用于转发数据包的方法、网卡、主机设备和计算机系统

Country Status (5)

Country Link
US (3) US10462056B2 (zh)
EP (2) EP3376376B1 (zh)
CN (2) CN111490949B (zh)
ES (1) ES2787450T3 (zh)
WO (1) WO2018133035A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108965169B (zh) * 2018-07-12 2020-09-25 联想(北京)有限公司 一种报文传输方法、网卡控制器、网卡及电子设备
US10853126B2 (en) * 2018-07-26 2020-12-01 Vmware, Inc. Reprogramming network infrastructure in response to VM mobility
CN110825485A (zh) 2018-08-07 2020-02-21 华为技术有限公司 数据处理的方法、设备和服务器
CN110912825B (zh) * 2018-09-18 2022-08-02 阿里巴巴集团控股有限公司 一种报文的转发方法、装置、设备及系统
US10992601B2 (en) * 2018-10-19 2021-04-27 Gubernet Inc. Packet processing method and apparatus in multi-layered network environment
CN109634723B (zh) * 2018-12-20 2023-04-18 国网新疆电力有限公司信息通信公司 融合存载模块的通信方法及融合存载模块
US10929169B2 (en) 2019-01-24 2021-02-23 Vmware, Inc. Reprogramming network infrastructure in response to VM mobility
CN110750367B (zh) * 2019-09-30 2023-03-17 超聚变数字技术有限公司 一种队列通信的方法、系统及相关设备
US11115284B1 (en) * 2020-03-31 2021-09-07 Atlassian Pty Ltd. Techniques for dynamic rate-limiting
US11822964B2 (en) * 2020-06-03 2023-11-21 Baidu Usa Llc Data protection with static resource partition for data processing accelerators
US11374792B2 (en) * 2020-08-14 2022-06-28 Oracle International Corporation Techniques for utilizing multiple network interfaces for a cloud shell
US11368306B2 (en) 2020-08-14 2022-06-21 Oracle International Corporation Techniques for using signed nonces to secure cloud shells
US11327673B1 (en) 2020-10-23 2022-05-10 Oracle International Corporation Techniques for persisting data across instances of a cloud shell
US11777848B2 (en) * 2020-10-14 2023-10-03 Oracle International Corporation Scalable routing and forwarding of packets in cloud infrastructure
US20220129293A1 (en) * 2020-10-28 2022-04-28 Red Hat, Inc. Process isolation using virtual machine monitor tools to dynamically allocate compact virtual machines
CN112671561B (zh) * 2020-12-11 2022-05-17 苏州浪潮智能科技有限公司 一种云主机的网卡配置的方法和设备
US11470007B2 (en) * 2021-01-19 2022-10-11 Mellanox Technologies, Ltd. Bandwidth-control policers in a network adapter
US11736558B2 (en) 2021-10-29 2023-08-22 Oracle International Corporation Transparent mounting of external endpoints between private networks
US11558245B1 (en) 2021-10-29 2023-01-17 Oracle International Corporation Secure bi-directional network connectivity system between private networks
CN115442183B (zh) * 2022-08-02 2024-01-02 天翼云科技有限公司 一种数据转发方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102932174A (zh) * 2012-10-25 2013-02-13 华为技术有限公司 一种物理网卡管理方法、装置及物理主机
CN102946366A (zh) * 2012-11-12 2013-02-27 杭州华为数字技术有限公司 带内管理方法及系统
CN103414535A (zh) * 2013-07-31 2013-11-27 华为技术有限公司 数据发送方法和数据接收方法及相关装置
CN103621026A (zh) * 2013-04-01 2014-03-05 华为技术有限公司 虚拟机的数据交换方法、装置和系统

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090055831A1 (en) * 2007-08-24 2009-02-26 Bauman Ellen M Allocating Network Adapter Resources Among Logical Partitions
US7983257B2 (en) * 2008-07-18 2011-07-19 Emulex Design & Manufacturing Corporation Hardware switch for hypervisors and blade servers
US8537860B2 (en) * 2009-11-03 2013-09-17 International Business Machines Corporation Apparatus for switching traffic between virtual machines
US8315156B2 (en) * 2010-06-30 2012-11-20 Oracle America, Inc. Method and system for distributing network traffic among multiple direct hardware access datapaths
US8417800B2 (en) * 2010-07-16 2013-04-09 Broadcom Corporation Method and system for network configuration and/or provisioning based on open virtualization format (OVF) metadata
US8881141B2 (en) * 2010-12-08 2014-11-04 Intenational Business Machines Corporation Virtualization of hardware queues in self-virtualizing input/output devices
US8913613B2 (en) * 2011-02-16 2014-12-16 Oracle International Corporation Method and system for classification and management of inter-blade network traffic in a blade server
US8533713B2 (en) * 2011-03-29 2013-09-10 Intel Corporation Efficent migration of virtual functions to enable high availability and resource rebalance
US8761187B2 (en) * 2011-06-14 2014-06-24 Futurewei Technologies, Inc. System and method for an in-server virtual switch
CN103621048B (zh) * 2011-07-11 2016-08-17 甲骨文国际公司 在中间件机器环境中利用多播组和分组处理代理中的至少一种来支持泛洪机制的系统与方法
US8867403B2 (en) * 2011-08-18 2014-10-21 International Business Machines Corporation Virtual network overlays
US9092274B2 (en) * 2011-12-07 2015-07-28 International Business Machines Corporation Acceleration for virtual bridged hosts
EP2829024B1 (en) * 2012-03-19 2020-07-08 Intel Corporation Techniques for packet management in an input/output virtualization system
US9612877B1 (en) * 2012-07-12 2017-04-04 Cisco Technology, Inc. High performance computing in a virtualized environment
US9727386B2 (en) * 2012-10-12 2017-08-08 Futurewei Technologies, Inc. Method and apparatus for network resource virtual partitioning
US9571507B2 (en) * 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
US9083550B2 (en) * 2012-10-29 2015-07-14 Oracle International Corporation Network virtualization over infiniband
US9008097B2 (en) * 2012-12-31 2015-04-14 Mellanox Technologies Ltd. Network interface controller supporting network virtualization
US9602334B2 (en) * 2013-01-22 2017-03-21 International Business Machines Corporation Independent network interfaces for virtual network environments
US9288135B2 (en) * 2013-12-13 2016-03-15 International Business Machines Corporation Managing data flows in software-defined network using network interface card
US9548890B2 (en) * 2014-03-17 2017-01-17 Cisco Technology, Inc. Flexible remote direct memory access resource configuration in a network environment
JPWO2015141337A1 (ja) * 2014-03-19 2017-04-06 日本電気株式会社 受信パケット分散方法、キュー選択器、パケット処理装置、プログラム、およびネットワークインタフェースカード
US9594584B2 (en) * 2014-03-31 2017-03-14 Electronics And Telecommunications Research Institute Apparatus and method for mapping of tenant based dynamic processor
US9537797B2 (en) * 2014-06-13 2017-01-03 Vmware, Inc. MTU management in a virtualized computer system
US9699060B2 (en) * 2014-12-17 2017-07-04 Vmware, Inc. Specializing virtual network device processing to avoid interrupt processing for high packet rate applications
US10216533B2 (en) * 2015-10-01 2019-02-26 Altera Corporation Efficient virtual I/O address translation
US20170180325A1 (en) * 2015-12-22 2017-06-22 Intel Corporation Technologies for enforcing network access control of virtual machines
CN106982133B (zh) * 2016-01-18 2020-12-29 中兴通讯股份有限公司 一种更改虚拟网卡配置信息的方法、设备及系统
CN107181679A (zh) * 2016-03-09 2017-09-19 中兴通讯股份有限公司 一种端口绑定实现方法及装置
US10178054B2 (en) * 2016-04-01 2019-01-08 Intel Corporation Method and apparatus for accelerating VM-to-VM network traffic using CPU cache
US10547588B2 (en) * 2016-04-30 2020-01-28 Nicira, Inc. Method of translating a logical switch into a set of network addresses
US10423437B2 (en) * 2016-08-17 2019-09-24 Red Hat Israel, Ltd. Hot-plugging of virtual functions in a virtualized environment
EP3559806B1 (en) * 2016-12-22 2022-08-31 INTEL Corporation Accelerating para-virtualization network interface using direct memory access (dma) remapping

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102932174A (zh) * 2012-10-25 2013-02-13 华为技术有限公司 一种物理网卡管理方法、装置及物理主机
CN102946366A (zh) * 2012-11-12 2013-02-27 杭州华为数字技术有限公司 带内管理方法及系统
CN103621026A (zh) * 2013-04-01 2014-03-05 华为技术有限公司 虚拟机的数据交换方法、装置和系统
CN103414535A (zh) * 2013-07-31 2013-11-27 华为技术有限公司 数据发送方法和数据接收方法及相关装置

Also Published As

Publication number Publication date
CN111490949B (zh) 2022-07-29
US10462056B2 (en) 2019-10-29
CN111490949A (zh) 2020-08-04
EP3693854A1 (en) 2020-08-12
EP3376376A4 (en) 2018-09-19
US20220109628A1 (en) 2022-04-07
US20180212875A1 (en) 2018-07-26
US20200044968A1 (en) 2020-02-06
ES2787450T3 (es) 2020-10-16
EP3376376A1 (en) 2018-09-19
US11252087B2 (en) 2022-02-15
CN107005495A (zh) 2017-08-01
EP3376376B1 (en) 2020-03-11
US11805058B2 (en) 2023-10-31
WO2018133035A1 (zh) 2018-07-26

Similar Documents

Publication Publication Date Title
CN107005495B (zh) 用于转发数据包的方法、网卡、主机设备和计算机系统
US10491517B2 (en) Packet processing method in cloud computing system, host, and system
US10305823B2 (en) Network interface card configuration method and resource management center
US10572309B2 (en) Computer system, and method for processing multiple application programs
EP3457288B1 (en) Computer system and storage access device
US20180210752A1 (en) Accelerator virtualization method and apparatus, and centralized resource manager
CN108984465B (zh) 一种消息传输方法及设备
CN106557444B (zh) 实现sr-iov网卡的方法和装置、实现动态迁移的方法和装置
EP3206125A1 (en) Resource management method, host, and endpoint
WO2016119468A1 (zh) 虚拟机内存管理方法、物理主机、pcie设备及其配置方法以及迁移管理设备
US20190042741A1 (en) Technologies for control plane separation in a network interface controller
WO2023221847A1 (zh) 基于虚拟机设备直通的数据访问方法、设备以及系统
CN104883302A (zh) 一种数据包转发的方法、装置及系统
WO2018057165A1 (en) Technologies for dynamically transitioning network traffic host buffer queues
CN111698141B (zh) 报文的转发方法及装置
CN114416287A (zh) 一种网卡配置方法、装置、设备和存储介质
WO2012143942A2 (en) Network interface sharing in multi host computing systems

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