Elephant Flow Packet Steering for DPU Queue Load Balancing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network communication systems face performance limitations due to the inability of Virtio-enabled network devices to scale beyond 800 Gbps, particularly in handling elephant flows, which are large continuous data flows that consume substantial network bandwidth, and the reliance on CPU-based receive side scaling (RSS) logic that leads to inefficient packet steering.
Innovation Solution
The system offloads packet steering to a Data Processing Unit (DPU) to handle elephant flows, using a data path module to detect these flows and a packet steering module to enforce rules for directing packets to appropriate receive queues, overriding traditional RSS logic and ensuring load balancing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional CPU-based RSS logic is used for packet steering, then the system can handle general network traffic, but it cannot scale beyond 800 Gbps and performs poorly with elephant flows
Solution Approach 1:
The patent extracts the packet steering function from the CPU and relocates it to a dedicated network device (smart NIC). The CPU no longer performs RSS logic or packet steering, instead only maintaining flow tables and providing steering rules. This extraction allows the network device to handle packet steering independently, enabling scaling beyond 800 Gbps while maintaining consistent performance for both elephant flows and normal traffic.
Solution Approach 2:
The patent introduces a flow table as an intermediary data structure that bridges the CPU and network device. The flow table stores flow identification information and corresponding steering rules, allowing the network device to make steering decisions based on pre-computed CPU rules without direct CPU involvement. This intermediary mechanism enables high-speed packet processing while maintaining accurate flow-based steering.
2Productivity
If packet steering is offloaded to a network device, then scaling beyond 800 Gbps is enabled, but the device complexity increases
Solution Approach 1:
The patent segments the packet steering system into distinct functional modules: (1) CPU maintains flow tables with steering rules, (2) network device performs packet matching and steering execution, (3) separate handling for elephant flows vs. normal traffic. This segmentation allows each component to have specialized, simplified functionality while achieving overall system scalability beyond 800 Gbps.
Solution Approach 2:
The network device is empowered to perform packet steering autonomously using pre-configured rules from the CPU. The device independently matches packets against flow tables, determines steering actions, and directs packets to appropriate queues without requiring continuous CPU intervention. This self-service capability reduces the complexity burden on the CPU while enabling high-speed operation.
3Ease of operation
If RSS logic handles communication flows, then load distribution is achieved, but transmitting and receiving progress with lower performance on different CPUs
Solution Approach 1:
The patent implements preliminary action by having the CPU pre-compute and store flow-based steering rules in flow tables before packets arrive. The CPU analyzes communication flows in advance, determines optimal CPU assignments for transmit and receive operations, and encodes these decisions as steering rules. When packets arrive at the network device, steering decisions are made immediately using these pre-computed rules, ensuring that packets are directed to the same CPU that will handle both transmission and reception, thereby achieving high performance while maintaining load distribution.
Data Source
AI summary
Systems and methods herein are for network communications, where at least one processor can include or be associated with a data path module and a packet steering module, where the data path module can receive communications that may be associated with different communication protocols and can determine an elephant flow based in part on a size indication associated with the communications, and where the packet steering module can receive information that may be associated with the elephant flow and can enforce at least one rule to steer incoming packets for different receive queues associated with respective ones of the communication protocols.


