IP Library Granted Patent US 8,392,625
Granted Patent B2
US 8,392,625 · App. 12/978,554 · Granted Mar 5, 2013

Methods and systems to implement a physical device to differentiate amongst multiple virtual machines of a host computer system

Inventors: Praveen Gopalakrishnan (Hillsboro, OR); Hsin-Yuo Liu (Fremont, CA); Sanjay Kumar (Hillsboro, OR); Xue Yang (Arcadia, CA); Sebastian Schoenberg (Hillsboro, OR)
Assignee: Intel Corporation
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,392,625
App. No.
12/978,554
Granted
Mar 5, 2013
Kind
B2
Abstract

Methods and systems to implement a physical device to differentiate amongst multiple virtual machines (VM) of a computer system. The device may include a wireless network interface controller. VM differentiation may be performed with respect to configuration controls and/or data traffic. VM differentiation may be performed based on VM-specific identifiers (VM IDs). VM IDs may be identified within host application programming interface (API) headers of incoming configuration controls and data packets, and/or may be looked-up based on VM-specific MAC addresses associated with data packets. VM IDs may be inserted in API headers of outgoing controls and/or data packets to permit a host computer system to forward the controls and/or packets to appropriate VMs. VM IDs may be used look-up VM-specific configuration parameters and connection information to reconfigure the physical device on a per VM basis. VM IDs may be used look-up VM-specific security information with which to process data packets.

Claims (72)

1. A system, comprising:

a host wireless network interface controller (NIC) driver (host NIC driver) to interface between a virtual machine manager (VMM) and a wireless NIC, including to,

receive NIC configuration controls from the VMM and, for each configuration control, identify one of multiple virtual machines (VMs) as a source of the configuration control;

maintain VM-specific NIC configuration parameters for each of the VMs based on the configuration controls;

receive transmit packets from the VMM and, for each of the transmit packets, identify one of the VMs as a source of the transmit packet and configure the wireless NIC with the corresponding VM-specific NIC configuration parameters; and

receive packets from one or more wireless access points and, for each received packet, identify one of the VMs as a destination VM and forward the received packet to the VMM with a corresponding VM identifier.

2. The system of claim 1 , wherein the wireless host NIC driver is further configured to:

send state feedback and the received packets to the VMM as API calls and, for each of the API calls, insert a VM identifier in a header field of the API call; and

receive the configuration controls as API calls from the VMM and, for each of the configuration controls, identify one of the VMs as a source of the configuration control from a VM identifier in the header field of the corresponding API call.

3. The system of claim 1 , wherein the wireless NIC is configured to:

initiate a VM-specific virtual MAC, having a corresponding VM-specific MAC address, for each of the VMs;

maintain a reference between each of the VM-specific MAC addresses and a corresponding VM identifier;

look-up the VM identifier for each received packet based on a destination MAC address of the received packet; and

look-up the VM identifier for each transmit packet based on a VM-specific MAC address of the transmit packet.

4. The system of claim 3 , wherein:

each of the VMs is configured to present a virtual instance of a wireless NIC driver within the VM; and

the VMM is configured to present multiple virtual instances of a model of the wireless NIC, each virtual instance of the model to interface between the host NIC driver and a corresponding virtual instance of the wireless NIC driver;

wherein the host NIC driver is further configured to interface between the virtual MACs and the virtual instances of the model.

5. The system of claim 1 , wherein:

the wireless NIC is configured look-up VM-specific security information for each received packet based on the corresponding VM identifier, and to decrypt the received packets in accordance with the corresponding VM-specific security information.

6. The system of claim 1 , wherein:

the wireless NIC is configured look-up a VM-specific security key index for each received packet based on the corresponding VM identifier, and to forward the security key indexes to the host NIC driver with the corresponding received packets.

7. The system of claim 1 , wherein:

the wireless NIC is configured look-up VM-specific security information for each transmit packet based on the corresponding VM identifier, and to encrypt the transmit packets in accordance with the corresponding VM-specific security information.

8. A machine-implemented method, comprising:

interfacing between a virtual machine manager (VMM) and a wireless network interface controller (NIC), including,

receiving NIC configuration controls from the VMM and, for each configuration control, identifying one of multiple virtual machines (VMs) as a source of the configuration control;

maintaining VM-specific NIC configuration parameters for each of the VMs based on the configuration controls;

receiving transmit packets from the VMM and, for each of the transmit packets, identifying one of the VMs as a source of the transmit packet and configuring the wireless NIC with the corresponding VM-specific NIC configuration parameters; and

receiving packets from one or more wireless access points and, for each received packet, identifying one of the VMs as a destination VM and forwarding the received packet to the VMM with a corresponding VM identifier.

9. The method of claim 8 , wherein the interfacing further includes:

sending state feedback and the received packets to the VMM as API calls and, for each of the API calls, inserting a VM identifier in a header field of the API call; and

receiving the configuration controls as API calls from the VMM and, for each of the configuration controls, identifying one of the VMs as a source of the configuration control from a VM identifier in the header field of the corresponding API call.

10. The method of claim 8 , further including, within the wireless NIC:

initiating a VM-specific virtual MAC, having a corresponding VM-specific MAC address, for each of the VMs;

maintaining a reference between each of the VM-specific MAC addresses and a corresponding VM identifier;

looking-up the VM identifier for each received packet based on a destination MAC address of the received packet; and

looking-up the VM identifier for each transmit packet based on a VM-specific MAC address of the transmit packet.

11. The method of claim 10 , further including:

presenting a virtual instance of a wireless NIC driver within each of the VMs; and

presenting multiple virtual instances of a model of the wireless NIC within the VMM, each virtual instance of the model to interface with a corresponding virtual instance of the wireless NIC driver;

wherein the interfacing includes interfacing between the virtual MACs and the virtual instances of the model.

12. The method of claim 8 , further including:

looking-up VM-specific security information for each received packet based on the corresponding VM identifier; and

decrypting the received packets in accordance with the corresponding VM-specific security information.

13. The method of claim 8 , further including:

looking-up a VM-specific security key index for each received packet based on the corresponding VM identifier; and

forwarding the security key indexes with the corresponding received packets.

14. The method of claim 8 , further including:

looking-up VM-specific security information for each transmit packet based on the corresponding VM identifier; and

encrypting the transmit packets in accordance with the corresponding VM-specific security information.

15. A system including a first non-transitory computer readable medium encoded with a host wireless network controller (NIC) driver (host NIC driver) to cause a computer system processor to interface between a virtual machine manager (VMM) of the computer system and a wireless NIC, wherein the host NIC driver includes instructions to cause the computer system processor to:

receive NIC configuration controls from the VMM and, for each configuration control, identify one of multiple virtual machines (VMs) as a source of the configuration control;

maintain VM-specific NIC configuration parameters for each of the VMs based on the configuration controls;

receive transmit packets from the VMM and, for each of the transmit packets, identify one of the VMs as a source of the transmit packet and configure the wireless NIC with the corresponding VM-specific NIC configuration parameters; and

receive packets from one or more wireless access points and, for each received packet, identify one of the VMs as a destination VM and forward the received packet to the VMM with a corresponding VM identifier.

16. The system of claim 15 , wherein the host NIC driver further includes instructions to cause the computer system processor to:

send state feedback and the received packets to the VMM as API calls and, for each of the API calls, insert a VM identifier in a header field of the API call; and

receive the configuration controls as API calls from the VMM and, for each of the configuration controls, identify one of the VMs as a source of the configuration control from a VM identifier in the header field of the corresponding API call.

17. The system of claim 15 , further including a second non-transitory computer readable medium encoded with a instructions to cause a wireless NIC processor to:

initiate a VM-specific virtual MAC, having a corresponding VM-specific MAC address, for each of the VMs;

maintain a reference between each of the VM-specific MAC addresses and a corresponding VM identifier;

look-up the VM identifier for each received packet based on a destination MAC address of the received packet and

look-up the VM identifier for each transmit packet based on a VM-specific MAC address of the transmit packet.

18. The system of claim 17 , wherein the first non-transitory computer readable medium is further encoded with instructions to cause the computer system processor to:

present a virtual instance of a wireless NIC driver within each of the VMs; and

present multiple virtual instances of a model of the wireless NIC within the VMM, each virtual instance of the model to interface between the host NIC driver and a corresponding virtual instance of the wireless NIC driver;

wherein the host NIC driver further includes instructions to cause the computer system processor to interface between the virtual MACs and the virtual instances of the model.

19. The system of claim 15 , further including a second non-transitory computer readable medium encoded with instructions to cause a wireless NIC processor to:

look-up VM-specific security information for each received packet based on the corresponding VM identifier and process the received packets in accordance with the corresponding VM-specific security information.

20. The system of claim 15 , further including a second non-transitory computer readable medium encoded with instructions to cause a wireless NIC processor to:

look-up a VM-specific security key index for each received packet based on the corresponding VM identifier, and to forward the security key indexes to the computer system processor with the corresponding received packets.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2011
From: GOPALAKRISHNAN, PRAVEEN; LIU, HSIN-YUO; KUMAR, SANJAY; YANG, XUE; SCHOENBERG, SEBASTIAN
To: INTEL CORPORATION
Reel/Frame 026155/0788 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2011
From: GOPALAKRISHNAN, PRAVEEN; LIU, HSIN-YUO; KUMAR, SANJAY; YANG, XUE; SCHOENBERG, SEBASTIAN
To: INTEL CORPORATION
Reel/Frame 025965/0001 →
Continuity (2)
Provisional Application 61358671 · Jun 25, 2010
Related Publication 20110321065A1 · Dec 29, 2011