Network Interface Card Virtualization via Software Rings
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network interface card (NIC) systems are limited in their ability to efficiently manage and virtualize network traffic when the number of virtual NICs exceeds the number of receive rings, leading to inefficiencies in packet processing and handling.
Innovation Solution
The creation of software rings and virtual NICs on top of physical and software receive rings allows for the efficient routing and processing of packets, enabling the virtualization of NICs even when the number of virtual NICs exceeds the physical receive rings, by creating a hierarchical structure that associates each packet with the appropriate virtual or software receive ring.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the number of virtual NICs exceeds the number of receive rings on the NIC, then virtualization capability is improved, but packet processing efficiency deteriorates
Solution Approach 1:
The patent segments the receive ring resources by creating multiple software rings, each capable of being associated with multiple virtual NICs. This segmentation allows the system to support more virtual NICs than physical receive rings while maintaining efficient packet processing through dedicated software ring buffers for each virtual interface.
Solution Approach 2:
The patent introduces software rings as an intermediary layer between physical receive rings and virtual NICs. This intermediary enables multiple virtual NICs to share physical receive rings while maintaining isolated packet processing paths, thus preserving packet processing efficiency even when virtualization scale exceeds hardware capabilities.
2Productivity
If multiple virtual NICs share the same receive ring, then hardware resource utilization is improved, but packet processing complexity increases
Solution Approach 1:
The patent segments packet processing by creating dedicated software ring buffers for each virtual NIC within the shared receive ring structure. This segmentation allows multiple virtual NICs to share hardware resources while maintaining separate, simplified processing paths for each virtual interface, reducing overall processing complexity.
Solution Approach 2:
The patent adds a software ring dimension between physical receive rings and virtual NICs. This dimensional addition allows multiple virtual NICs to share the same physical receive ring without increasing processing complexity, as the software ring layer abstracts and manages the sharing relationships.
3Adaptability or versatility
If software rings are created to support more virtual NICs than physical receive rings, then virtualization scalability is improved, but system complexity increases
Solution Approach 1:
The patent creates universal software ring structures that can serve multiple virtual NICs and can be associated with multiple physical receive rings. This multi-functionality allows the same software ring infrastructure to support varying numbers of virtual NICs and physical rings, improving scalability without proportionally increasing system complexity.
Solution Approach 2:
The patent implements dynamic association between software rings, virtual NICs, and physical receive rings. This dynamic configuration allows the system to adapt to different virtualization requirements without requiring fixed, complex hardware configurations, enabling scalable virtualization with manageable system complexity.
Data Source
AI summary
A method for virtualizing a network interface card includes creating a first plurality of virtual NICs, assigning each of a plurality of receive rings on the network interface card (NIC) to one of the first plurality of virtual NICs, and if the number of virtual NICs is greater than the number of receive rings on the NIC, creating a first software ring corresponding to one of the plurality of receive rings on the NIC, creating a first plurality of software receive rings associated with the first software ring, creating a second plurality of virtual NICs, and assigning each of the first plurality of software receive rings to one of the second plurality of virtual NICs, wherein the plurality of receive rings is less than a sum of the first plurality of virtual NICs and the second plurality of virtual NICs.


