Dynamic RSS Engine Provisioning for Balanced NIC Traffic Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network interface card (NIC) implementations using Receive Side Scaling (RSS) face inefficiencies due to sharing a single RSS pool among different traffic types, leading to queue-resource constraints and imbalanced load distribution, particularly during asynchronous or high-throughput traffic scenarios, which can impede data flow handling and throughput.

Innovation Solution

Implement a dynamic provisioning of multiple RSS engines by dynamically assigning and reassigning traffic flows to separate hardware queues based on load thresholds and availability, using mapping and indirection tables to rebalance loads across RSS pools.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single RSS pool is shared among all traffic types, then device complexity is reduced and resource utilization is simplified, but queue-resource constraints occur and load distribution becomes imbalanced during asynchronous or high-throughput traffic scenarios

Engineering Contradiction:
ImproveRSS pool configurationVSAvoiddata flow handling efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments the single RSS pool into multiple dedicated RSS pools, each serving specific traffic types (e.g., vMotion traffic, vSAN traffic, VTEP traffic). This segmentation prevents queue-resource constraints by ensuring each traffic type has dedicated hardware queues, thereby resolving the contradiction between simplified configuration and handling efficiency.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple RSS pools are created for different traffic types, then data flow handling efficiency and isolation are improved, but device complexity and resource management overhead increase

Engineering Contradiction:
Improvedata flow handling efficiencyVSAvoidRSS pool configuration
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The Netqueue layer automatically monitors queue loads and dynamically reassigns traffic flows between RSS pools based on current load conditions. This self-service mechanism eliminates the need for manual configuration and management of multiple RSS pools, thereby resolving the contradiction between handling efficiency and configuration complexity.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If traffic flows are statically assigned to RSS queues, then configuration simplicity is maintained, but load balancing capability is reduced when traffic patterns change

Engineering Contradiction:
Improvequeue assignment configurationVSAvoidload distribution adaptability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic load-based reassignment where the Netqueue layer continuously monitors queue loads and automatically reassigns traffic flows from overloaded queues to underutilized queues. This dynamic adaptation resolves the contradiction between configuration simplicity and load balancing capability, as the system automatically adjusts to changing traffic patterns without manual intervention.

Inventive Principle:
Principle #15Dynamics

4Use of energy by moving object

If hardware queues are shared across different traffic types, then resource utilization is maximized, but service quality and isolation between traffic types deteriorate

Engineering Contradiction:
Improvehardware queue utilizationVSAvoidservice quality
Core Design Contradiction:
Use of energy by moving objectVSReliability

Solution Approach 1:

The patent segments hardware queues into dedicated pools for different traffic types, ensuring service quality and isolation. Meanwhile, the dynamic load-based reassignment mechanism ensures efficient utilization by redistributing flows when queues become underutilized, thereby resolving the contradiction between resource utilization and service quality.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12381831B2Dynamic provisioning of multiple RSS engines
Publication Date: 2025.08.05 VMWARE INC
  • US12381831B2 patent drawing
  • US12381831B2 patent drawing
  • US12381831B2 patent drawing

AI summary

An approach for a dynamic provisioning of multiple RSS engines is provided. In an embodiment, a method comprises monitoring a CPU usage of hardware queues implemented in a plurality of RSS pools, and determining whether a CPU usage of any hardware queue, implemented in a particular RSS pool of the plurality of RSS pools, has increased above a threshold value. In response to determining that a CPU usage of a particular hardware queue, implemented in the particular RSS pool, has increased above the threshold value, it is determined whether the particular RSS pool includes an unused hardware queue (a queue with light CPU usage). If such an unused hardware queue is presented, then an indirection table that is associated with the particular RSS pool is modified to remap one or more data flows from the particular hardware queue to the unused hardware queue.