VXLAN RSS Queue Allocation for Multi-Core Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing VXLAN implementations cannot take advantage of hardware-based off-loading features in physical network interface cards (PNICs) due to the nature of VXLAN encapsulation, resulting in reduced processing efficiency and throughput for VXLAN packets.
Innovation Solution
A computer system that utilizes the Receive Side Scaling (RSS) feature of PNICS to allocate multiple receive queues for VXLAN encapsulated packets, hashing the outer IP and UDP headers to distribute packets across multiple cores while maintaining in-order delivery for specific VM or flow packets.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If VXLAN encapsulation is used to extend layer-2 broadcast domains, then network versatility and VM mobility are improved, but hardware-based off-loading features in PNICs cannot be utilized, reducing processing efficiency
Solution Approach 1:
The patent introduces an intermediary mechanism (RSS queue mapping) that translates VXLAN packet characteristics into PNIC receive queue assignments. The system uses the outer IP header and UDP port as intermediary keys to hash and distribute VXLAN packets to appropriate receive queues, enabling hardware off-loading while preserving VXLAN's network virtualization capabilities.
2Productivity
If multiple receive queues are allocated for VXLAN packets, then multi-core processing and throughput are improved, but packet distribution complexity increases
Solution Approach 1:
The patent changes the packet distribution parameters by using hash functions on the outer IP header and UDP port fields to determine receive queue assignment. This parameter-based approach (hashing key fields) simplifies the distribution logic compared to complex packet inspection methods, enabling straightforward multi-core processing while maintaining low distribution complexity.
3Ease of operation
If VXLAN packets are processed on a single CPU core, then processing simplicity is maintained, but CPU overhead increases and throughput is limited
Solution Approach 1:
The patent segments the packet processing workload across multiple CPU cores by allocating separate receive queues to each core. VXLAN packets are distributed to different receive queues based on hash results, allowing parallel processing on multiple cores while maintaining simple processing logic at each individual core. This segmentation eliminates the throughput bottleneck of single-core processing without complicating the processing mechanism itself.
Data Source
AI summary
The disclosure herein describes a computer system that facilitates multi-core processing of VXLAN encapsulated packets. A VXLAN encapsulated packet typically contains an outer Ethernet header, an outer IP header, an outer UDP header, and an inner Ethernet header. The computer system hosts virtualization software which includes a virtual switch, a VXLAN module, and a load balancer. The load balancer monitors a port on the virtual switch. This port is dedicated to receiving VXLAN encapsulated packets and can be referred to as a VXLAN VMKNIC port. When the traffic statistics on the VXLAN VMKNIC port surpasses a predetermined threshold, the load balancer can instruct the physical network interface to allocate a number of receiver side scaling (RSS) queues. In turn, the physical network interface can store received VXLAN encapsulated packets in a number of RSS receive queues which facilitates multi-core processing of the received encapsulated packets.


