IP Library Granted Patent US 8,635,388
Granted Patent B2
US 8,635,388 · App. 11/435,075 · Granted Jan 21, 2014

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 8,635,388
App. No.
11/435,075
Granted
Jan 21, 2014
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 (27)

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

communicating data between a network interface card (NIC) and each of a plurality of concurrently running guest operating systems (GOSs) in a host system via at least a corresponding one of a plurality of GOS queues;

notifying one of the concurrently running GOSs in response to the occurrence of an event, wherein notifying is performed via a second corresponding one of the plurality of GOS queues; and wherein each of said plurality of GOS queues comprises at least one of a transmit (TX) queue, a receive (RX) queue, and an event queue.

2. The method according to claim 1 , comprising communicating data from said NIC to one of said plurality of concurrently running GOSs via said TX queue in said corresponding GOS queue.

3. The method according to claim 1 , comprising communicating data from one of said plurality of concurrently running GOSs to said NIC via said RX queue in said corresponding GOS queue.

4. The method according to claim 1 , comprising indicating the occurrence of a communication event from said NIC to one of said plurality of concurrently running GOSs via said event queue in said corresponding GOS queue.

5. The method according to claim 4 , wherein said communication event is one of a link up event, a link down event, a packet transmitted event, and a packet received event.

6. The method according to claim 1 , comprising communicating data between at least two of said plurality of concurrently running GOSs via said NIC.

7. The method according to claim 1 , comprising validating a GOS media access control (MAC) address buffered in said NIC.

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

communicating data between a network interface card (NIC) and each of a plurality of concurrently running guest operating systems (GOSs) in a host system via at least a corresponding one of a plurality of GOS queues;

notifying one of the concurrently running GOSs in response to the occurrence of an event initiated by the one of the concurrently running GOSs, wherein notifying comprises acknowledging transmission of data to a network by the one of the concurrently running GOSs; and wherein each of said plurality of GOS queues comprises a transmit (TX) queue, a receive (RX) queue, and an event queue.

9. The machine-readable storage according to claim 8 , wherein said at least one code section comprises code for communicating data from said NIC to one of said plurality of concurrently running GOSs via said TX queue in said corresponding GOS queue.

10. The machine-readable storage according to claim 8 , wherein said at least one code section comprises code for communicating data from one of said plurality of concurrently running GOSs to said NIC via said RX queue in said corresponding GOS queue.

11. The machine-readable storage according to claim 8 , wherein said at least one code section comprises code for indicating the occurrence of a communication event from said NIC to one of said plurality of concurrently running GOSs via said event queue in said corresponding GOS queue.

12. The machine-readable storage according to claim 11 , wherein said communication event is one of a link up event, a link down event, a packet transmitted event, and a packet received event.

13. The machine-readable storage according to claim 8 , wherein said at least one code section comprises code for communicating data between at least two of said plurality of concurrently running GOSs via said NIC.

14. The machine-readable storage according to claim 8 , wherein said at least one code section comprises code for validating a GOS media access control (MAC) address buffered in said NIC.

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

one or more processors within a network interface card (NIC) that enables communication of data between said NIC and each of a plurality of concurrently running guest operating systems (GOSs) in a host system via at least a corresponding one of a plurality of GOS queues,

wherein each of said plurality of GOS queues comprises a transmit (TX) queue, a receive (RX) queue, and an event queue, wherein the event queue stores information indicating a network condition, data transmission by the NIC, data reception by the NIC, or any combination thereof.

16. The system according to claim 15 , wherein said one or more processors within said NIC enables communication of data from said NIC to one of said plurality of concurrently running GOSs via said TX queue in said corresponding GOS queue.

17. The system according to claim 15 , wherein said one or more processors within said NIC enables communication of data from one of said plurality of concurrently running GOSs to said NIC via said RX queue in said corresponding GOS queue.

18. The system according to claim 15 , wherein said one or more processors within said NIC enables indicating the occurrence of a communication event from said NIC to one of said plurality of concurrently running GOSs via said event queue in said corresponding GOS queue.

19. The system according to claim 18 , wherein said communication event is one of a link up event, a link down event, a packet transmitted event, and a packet received event.

20. The system according to claim 15 , wherein said one or more processors within said NIC enables communication of data between at least two of said plurality of concurrently running GOSs via said NIC.

21. The system according to claim 15 , wherein said one or more processors within said NIC enables validation of a GOS media access control (MAC) address buffered in said NIC.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 049248/0558 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047351/0384 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0910 →
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 Sep 13, 2006
From: FAN, KAN F.
To: BROADCOM CORPORATION
Reel/Frame 018264/0717 →