METHOD FOR NETWORK INTERFACE SHARING AMONG MULTIPLE VIRTUAL MACHINES
First Claim
1. A method of sharing a physical NIC device among multiple virtual machines comprising:
- receiving, by a virtual network interface card (N IC) driver of a customer operating system (OS) running in a customer virtual machine on a computing system, a customer OS request packet for transmission by a physical NIC driver over a network coupled to the computing system;
copying at least a portion of the customer OS request packet into a free block of shared memory of the computing system and appending the block to a transmission queue in the shared memory;
fetching the block from the transmission queue by a virtual NIC driver of a service OS running in a service virtual machine and packaging the portion into a service OS request packet;
passing the service OS request packet to a service OS network stack component of the service OS;
routing the service OS request packet, by a bridge driver of the service OS network stack component, to the physical NIC driver; and
sending, by the physical NIC driver, the service OS request packet over the network via the physical NIC device.
1 Assignment
0 Petitions
Accused Products
Abstract
In a computing system, sharing a physical NIC device among multiple virtual machines may be implemented by a customer virtual machine by receiving, by a virtual network interface card (NIC) driver of a customer operating system (OS) running in the customer virtual machine on a computing system, a customer OS request packet for transmission by a physical NIC driver over a network coupled to the computing system, and copying at least a portion of the customer OS request packet into a free block of shared memory of the computing system and appending the block to a transmission queue in the shared memory. Next, a service virtual machine may support the implementation by fetching the block from the transmission queue by a virtual NIC driver of a service OS running in a service virtual machine and packaging the portion into a service OS request packet, passing the service OS request packet to a service OS network stack component of the service OS, routing the service OS request packet, by a bridge driver of the service OS network stack component, to the physical NIC driver, and sending the service OS request packet over the network by the physical NIC driver.
91 Citations
33 Claims
-
1. A method of sharing a physical NIC device among multiple virtual machines comprising:
-
receiving, by a virtual network interface card (N IC) driver of a customer operating system (OS) running in a customer virtual machine on a computing system, a customer OS request packet for transmission by a physical NIC driver over a network coupled to the computing system; copying at least a portion of the customer OS request packet into a free block of shared memory of the computing system and appending the block to a transmission queue in the shared memory; fetching the block from the transmission queue by a virtual NIC driver of a service OS running in a service virtual machine and packaging the portion into a service OS request packet; passing the service OS request packet to a service OS network stack component of the service OS; routing the service OS request packet, by a bridge driver of the service OS network stack component, to the physical NIC driver; and sending, by the physical NIC driver, the service OS request packet over the network via the physical NIC device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An article comprising:
- a machine readable medium having a plurality of machine instructions, wherein when the instructions are executed by a processor within a computing system, the instructions provide for sharing a physical NIC device among multiple virtual machines by
receiving, by a virtual network interface card (NIC) driver of a customer operating system (OS) running in a customer virtual machine on a computing system, a customer OS request packet for transmission by a physical NIC driver over a network coupled to the computing system; copying at least a portion of the customer OS request packet into a free block of shared memory of the computing system and appending the block to a transmission queue in the shared memory; fetching the block from the transmission queue by a virtual NIC driver of a service OS running in a service virtual machine and packaging the portion into a service OS request packet; passing the service OS request packet to a service OS network stack component of the service OS; routing the service OS request packet, by a bridge driver of the service OS network stack component, to the physical NIC driver; and sending, by the physical NIC driver, the service OS request packet over the network via the physical NIC device. - View Dependent Claims (9, 10, 11)
- a machine readable medium having a plurality of machine instructions, wherein when the instructions are executed by a processor within a computing system, the instructions provide for sharing a physical NIC device among multiple virtual machines by
-
12. A computing system for sharing a physical NIC device among multiple virtual machines comprising:
-
a customer virtual machine running a customer operating system (OS), the customer OS including a customer OS virtual network interface card (NIC) driver to receive a customer OS request packet for transmission by the physical NIC device over a network coupled to the computing system, to copy at least a portion of the customer OS request packet into a free block of shared memory of the computing system, and to append the block to a transmission queue in the shared memory; and a service virtual machine running a service OS, the service OS including a service OS virtual NIC driver to fetch the block from the transmission queue and to package the portion into a service OS request packet, a service OS network stack component to receive the service OS request packet from the service OS virtual NIC driver; and a physical NIC driver to receive the service OS request packet from the service OS network stack component and to transmit the service OS request packet to the physical NIC device. - View Dependent Claims (13, 14, 15, 16, 17, 24)
-
-
18. A method of sharing a physical NIC device among multiple virtual machines comprising:
-
receiving, by a physical network interface card (NIC) driver of a service operating system (OS) running in a service virtual machine on a computing system, a network packet received by the physical NIC device over a network coupled to the computing system; routing the network packet, by a bridge driver component of a service OS network stack component, to a service OS virtual NIC driver; copying, by the service OS virtual NIC driver, at least a portion of the network packet into a free block of shared memory of the computing system and appending the block to a reception queue in the shared memory; fetching the block from the reception queue by a virtual NIC driver of a customer OS running in a customer virtual machine and packaging the portion into a customer OS request packet; and passing, by the customer OS virtual NIC driver, the customer OS request packet to a customer OS network stack component. - View Dependent Claims (19, 20, 21, 22, 23)
-
-
25. An article comprising:
- a machine readable medium having a plurality of machine instructions, wherein when the instructions are executed by a processor within a computing system, the instructions provide for sharing a physical NIC device among multiple virtual machines by
receiving, by a physical network interface card (NIC) driver of a service operating system (OS) running in a service virtual machine on a computing system, a network packet received by the physical NIC device over a network coupled to the computing system; routing the network packet, by a bridge driver component of a service OS network stack component, to a service OS virtual NIC driver; copying, by the service OS virtual NIC driver, at least a portion of the network packet into a free block of shared memory of the computing system and appending the block to a reception queue in the shared memory; fetching the block from the reception queue by a virtual NIC driver of a customer OS running in a customer virtual machine and packaging the portion into a customer OS request packet; and passing, by the customer OS virtual NIC driver, the customer OS request packet to a customer OS network stack component. - View Dependent Claims (26, 27, 28)
- a machine readable medium having a plurality of machine instructions, wherein when the instructions are executed by a processor within a computing system, the instructions provide for sharing a physical NIC device among multiple virtual machines by
-
29. A computing system for sharing a physical network interface card (NIC) device among multiple virtual machines comprising:
a service virtual machine running a service operating system (OS), the service OS including a physical network interface card (NIC) driver to receive a network packet, the network packet being received by the physical NIC device over a network coupled to the computing system; a bridge driver component of a service OS network stack component to route the network packet; and a service OS virtual NIC driver to receive the network packet from the bridge driver component, to copy at least a portion of the network packet into a free block of a shared memory of the computing system, and to append the block to a reception queue in the shared memory; and a customer virtual machine running a customer OS, the customer OS including a customer OS virtual NIC driver to fetch the block from the reception queue and to package the portion into a customer OS request packet; and a customer OS network stack component to receive the customer OS request packet from the customer OS virtual NIC driver. - View Dependent Claims (30, 31, 32, 33)
Specification