Virtualized Network Interface Segmentation for Packet Processing Overhead
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing networked computer systems face limitations in scalability and efficiency due to constraints in packet processing, resource management, and latency, particularly in shared network interfaces, which hinder high functional efficiencies and modularity.
Innovation Solution
A virtualized partitionable shared network interface system that provides enhanced resource management through mechanisms like MAC/VLAN identification, ternary content address memory, and flow matching, allowing for fine-tuned resource allocation and independent event notification across multiple domains.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a shared network interface is used to support multiple domains, then resource utilization and modularity are improved, but packet processing efficiency and latency increase due to coordination overhead
Solution Approach 1:
The network interface is segmented into multiple virtual interfaces (vNICs), each dedicated to a specific domain or partition. This segmentation allows independent packet processing queues for each domain, eliminating coordination overhead while maintaining resource sharing capabilities. Each vNIC has its own DMA channels and processing entities, enabling parallel processing without interference.
Solution Approach 2:
A virtualization layer or hypervisor acts as an intermediary between the physical network interface and multiple domains. This intermediary manages resource allocation, queue mapping, and packet routing between domains and the physical interface, enabling efficient shared access without direct coordination between domains.
2Productivity
If multiple processors service a network interface, then processing capacity increases, but coordination complexity and latency increase
Solution Approach 1:
Processing entities are segmented and assigned to specific processor cores or threads through processor affinity binding. Each processing entity handles packets from specific queues or domains, eliminating the need for inter-processor coordination. This segmentation allows multiple processors to work in parallel on different packet streams without synchronization overhead.
3Adaptability or versatility
If packet queues are shared across processors, then resource utilization improves, but packet arrival ordering and processing affinity deteriorate
Solution Approach 1:
Packet queues are segmented into dedicated queues for each processing entity or domain. Each queue maintains strict packet ordering guarantees through unidirectional access patterns. The virtualization layer provides logical resource sharing by mapping multiple virtual queues to physical queues, while physical queues remain dedicated to specific processors, preserving ordering and affinity.
4Speed
If interrupt-driven notification is used for packet arrival, then responsiveness improves, but processing overhead increases disproportionately
Solution Approach 1:
The system implements periodic polling of packet queues by processing entities instead of interrupt-driven notification. Processing entities periodically check their dedicated queues for new packets, providing predictable processing intervals without the overhead of interrupt context switches. This periodic action maintains responsiveness while eliminating the disproportionate processing penalty of frequent interrupts.
Data Source
AI summary
A method for providing access to a network interface having a plurality of memory access channels is disclosed. The network interface provides access to a plurality of processing entities. The method includes providing a network interface software hierarchy wherein the network interface software hierarchy provides access to the network interface, and associating various memory access channels with corresponding processing entities via the network interface software hierarchy so as to provide a virtualized network interface.


