VXLAN RSS Queue Allocation for Multi-Core Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvenetwork versatilityVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple receive queues are allocated for VXLAN packets, then multi-core processing and throughput are improved, but packet distribution complexity increases

Engineering Contradiction:
ImprovethroughputVSAvoidpacket distribution complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improveprocessing simplicityVSAvoidthroughput
Core Design Contradiction:
Ease of operationVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9736211B2Method and system for enabling multi-core processing of VXLAN traffic
Publication Date: 2017.08.15 VMWARE INC
  • US9736211B2 patent drawing
  • US9736211B2 patent drawing
  • US9736211B2 patent drawing

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.