Virtual NIC Sharing via Service OS Bridge
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Computing systems running multiple virtual machines often require multiple network interface cards (NICs) to facilitate communication, which can be uneconomical and impractical due to lack of PCI slots, high costs, or space constraints.
Innovation Solution
A system and method where one physical NIC is shared among multiple virtual machines, with a Service OS controlling access and virtualizing the NIC for Consumer OSs by using a Secure Enclave session and shared memory for packet processing, eliminating the need for additional physical NICs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If multiple physical NICs are installed to support multiple OSs in virtual machines, then network communication capability is improved, but system cost and hardware complexity increase
Solution Approach 1:
Multiple virtual machine network interfaces are merged and mapped to a single physical NIC through the Virtualization I/O Bridge. The bridge consolidates multiple virtual interfaces (vNICs) from different VMs and routes them through one physical network interface, eliminating the need for multiple physical NICs while maintaining full network communication capability for each VM.
Solution Approach 2:
The Virtualization I/O Bridge acts as an intermediary component between virtual machine network interfaces and the physical NIC. This bridge receives network packets from multiple VMs, translates and routes them appropriately, and forwards them through the single physical NIC, thereby decoupling the virtual network architecture from physical hardware requirements.
2Adaptability or versatility
If multiple physical NICs are installed to support multiple OSs in virtual machines, then network communication capability is improved, but system cost increases
Solution Approach 1:
A single physical NIC is made universal by enabling it to serve multiple virtual machines simultaneously. The Virtualization I/O Bridge allows one physical NIC to perform the functions of multiple NICs by dynamically routing network traffic from different VMs through the same physical interface, thereby reducing hardware quantity while maintaining versatility.
Solution Approach 2:
Virtual network interfaces are created as software copies of physical NIC functionality. Each VM receives a virtual NIC that replicates the capabilities of a physical NIC, but these virtual copies are consolidated and mapped to share a single physical hardware resource, reducing the need for additional physical components.
3Adaptability or versatility
If multiple physical NICs are installed to support multiple OSs in virtual machines, then network communication capability is improved, but available PCI slots and space are consumed
Solution Approach 1:
Multiple virtual network interfaces are merged and mapped to a single physical NIC through the Virtualization I/O Bridge. The bridge consolidates multiple virtual interfaces (vNICs) from different VMs and routes them through one physical network interface, eliminating the need for multiple physical NICs while maintaining full network communication capability for each VM.
Data Source
AI summary
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.


