IP Library Granted Patent US 9,258,171
Granted Patent B2
US 9,258,171 · App. 14/134,272 · Granted Feb 9, 2016

Method and system for an OS virtualization-aware network interface card

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,258,171
App. No.
14/134,272
Granted
Feb 9, 2016
Kind
B2
Abstract

Aspects of a method and system for an operating system (OS) virtualization-aware network interface card (NIC) are provided. A NIC may provide direct I/O capabilities for each of a plurality of concurrent guest operating systems (GOSs) in a host system. The NIC may comprise a GOS queue for each of the GOSs, where each GOS queue may comprise a transmit (TX) queue, a receive (RX) queue, and an event queue. The NIC may communicate data with a GOS via a corresponding TX queue and RX queue. The NIC may notify a GOS of events such as down link, up link, packet transmission, and packet reception via the corresponding event queue. The NIC may also support unicast, broadcast, and/or multicast communication between GOSs. The NIC may also validate a buffered address when the address corresponds to one of the GOSs operating in the host system.

Claims (31)

1. A method for handling processing of network information, the method comprising:

receiving, by a physical network interface card of a host system, a network packet;

determining a media access control (MAC) address of the received network packet;

transferring the network packet to a receive (RX) queue that corresponds to a guest operating system with the MAC address, wherein the host system contains guest operating systems, each comprising a guest operating system queue,

wherein each of the guest operating systems queues comprises at least one of a transmit (TX) queue, the receive (RX) queue, and an event queue, and the guest operating system queues are integrated into the single physical network interface card and the guest operating system queues correspond to a single physical network interface on the physical network interface card.

2. The method of claim 1 , further comprising notifying one of the guest operating systems of an event via a corresponding event queue.

3. The method of claim 2 , wherein the event comprises one of a link up event, a link down event, a packet transmitted event, and a packet received event.

4. The method of claim 1 , wherein each guest operating system supported by the host system has a corresponding memory portion in host memory.

5. The method of claim 1 , further comprising enabling transmission of data from a particular guest operating system by retrieving, by the physical network interface card, the data posted to the TX queue of the particular guest operating system; determining a destination MAC address of the data; and transferring the data to a location designated by the MAC address.

6. The method of claim 5 , wherein the destination MAC address corresponds to another guest operating system and the data is transferred to a RX queue of the other guest operating system.

7. The method of claim 1 , further comprising communicating data between at least two of the guest operating systems via the physical network interface card.

8. The method of claim 1 , further comprising communicating, via a layer two switch of the physical network interface card, data between at least two of the guest operating systems by detecting when the destination MAC address of transmission data sent from a guest operating system corresponds to another guest operating system and transferring the transmission data to a RX queue of the other guest operating system.

9. A non-transitory machine-readable storage having stored thereon, a computer program having at least one code for handling network processing of network information, the at least one code section being executable by a machine for causing the machine to perform:

receiving, by a physical network interface card of a host system, a network packet;

determining a media access control (MAC) address of the received network packet;

transferring the network packet to a receive (RX) queue that corresponds to a guest operating system with the MAC address, wherein the host system contains guest operating systems, each comprising a guest operating system queue,

wherein each of the guest operating system queues comprises at least one of a transmit (TX) queue, the receive (RX) queue, and an event queue, and the guest operating system queues are integrated into the single physical network interface card and the guest operating system queues correspond to a single physical network interface on the physical network interface card.

10. The non-transitory machine-readable storage of claim 9 , further comprising code that notifies one of the guest operating systems of an event via a corresponding event queue.

11. The non-transitory machine-readable storage of claim 10 , wherein the event comprises one of a link up event, a link down event, a packet transmitted event, and a packet received event.

12. The non-transitory machine-readable storage of claim 9 , further comprising code that enables transmission of data from a particular guest operating system by retrieving, by the network interface card, the data posted to the TX queue of the particular guest operating system; determines a destination MAC address of the data; and transfers the data to a location designated by the MAC address.

13. The non-transitory machine-readable storage of claim 12 , wherein the destination MAC address corresponds to another guest operating system and the data is transferred to a RX queue of the other guest operating system.

14. The non-transitory machine-readable storage of claim 9 , further comprising code that communicates data between at least two of the guest operating systems via the physical network interface card.

15. A system for handling processing of network information, the system comprising:

one or more processors within a physical network interface card that enables receiving a network packet and determining a media access control (MAC) address of the received network packet;

the one or more processors configured to transfer the received network packet to a receive (RX) queue that corresponds to a guest operating system with the MAC address, wherein a host system of the network interface card contains guess operating systems, each comprising a guest operating system queue,

wherein each of the guest operating system queues comprises at least one of a transmit (TX) queue, the receive (RX) queue, and an event queue, and the guest operating system queues are integrated into the single physical network interface card and the guest operating system queues correspond to a single physical network interface on the physical network interface card.

16. The system of claim 15 , further comprising circuitry within the physical network interface card that enables indicating an occurrence of a communication event from the network interface card to one of the guest operating systems via the event queue in a corresponding guest operating system queue.

17. The system of claim 16 , wherein the communication event is one of a link up event, a link down event, a packet transmitted event, and a packet received event.

18. The system of claim 15 , further comprising circuitry within the physical network interface card that enables communication of data between at least two of the guest operating systems via the physical network interface card.

19. The system of claim 15 , further comprising circuitry within the physical network interface card that enables validation of a media access control (MAC) address for a particular guest operating system buffered in the physical network interface card.

20. The system of claim 15 , further comprising circuitry that enables transmission of data from a particular guest operating system by retrieving, by the physical network interface card, the data posted to the TX queue of the particular guest operating system; determines a destination MAC address of the data; and transfers the data to a location designated by the MAC address.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2014
From: FAN, KAN
To: BROADCOM CORPORATION
Reel/Frame 032002/0637 →