Adaptive Packet Processing Thread Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current packet processing systems face challenges in maintaining high performance due to oversubscription of packet processing threads, leading to packet drops and reordering penalties, especially with heavy flows and hashing skew, which results in inefficient load balancing and reordering of packets.

Innovation Solution

An adaptive packet processing mechanism that dynamically selects between direct flow mapping and load balancing based on the state of packet processing threads, allowing for direct mapping for most flows and load balancing only when needed, thereby minimizing reordering and maintaining packet order.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If load balancing is applied to all flows, then thread oversubscription is reduced, but packet reordering occurs and processing overhead increases

Engineering Contradiction:
Improvethread oversubscription managementVSAvoidpacket processing performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies different packet distribution strategies to different flows based on their characteristics. Well-behaved flows use direct mapping to specific threads, while heavy flows that cause oversubscription are subject to load balancing across multiple threads. This selective application of load balancing maintains packet order for most flows while distributing heavy traffic appropriately.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically determines whether to apply load balancing to each flow based on real-time monitoring of thread queue states and flow characteristics. The decision to use direct mapping or load balancing is not static but adapts based on current system conditions, allowing optimal performance under varying load patterns.

Inventive Principle:
Principle #15Dynamics

2Productivity

If direct flow mapping is used, then packet processing efficiency is improved, but thread oversubscription occurs leading to packet drops

Engineering Contradiction:
Improvepacket processing efficiencyVSAvoidpacket delivery reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system continuously monitors the state of packet processing threads, including queue lengths and packet drop conditions. This feedback information is used to identify heavy flows causing oversubscription and switch their distribution strategy from direct mapping to load balancing, preventing packet drops while maintaining efficiency for other flows.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent changes the packet distribution parameter (from direct mapping to load balancing) based on flow characteristics and system state. Flows are classified as well-behaved or heavy based on metrics such as packet rate and queue depth, and the distribution strategy is adjusted accordingly to optimize both efficiency and reliability.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If load balancing is applied, then thread utilization is improved, but reordering penalties increase processing overhead

Engineering Contradiction:
Improvethread utilizationVSAvoidprocessing overhead
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies load balancing only to specific flows that require it (heavy flows causing oversubscription) while using simple direct mapping for well-behaved flows. This selective approach improves thread utilization where needed while avoiding the reordering overhead for flows that don't require load balancing.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP3281370B1Adaptive load balancing in packet processing
Publication Date: 2020.02.19 TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
  • EP3281370B1 patent drawingFigure 1
  • EP3281370B1 patent drawingFigure 2
  • EP3281370B1 patent drawingFigure 3

AI summary

A method of forwarding packets in a network device is disclosed. The method comprises assigning a packet to a first packet processing thread; and determining a state of the first packet processing thread. Responsive to determining that the state of the first packet processing thread is a backlogged state, mapping the packet to a second packet processing thread from a pool of packet processing threads based on a load balancing scheme, wherein the pool of packet processing threads includes a subset of threads from the plurality of packet processing threads, and the state of each one of the packet processing threads from the pool is the backlogged state, processing the packet in the second packet processing thread, and forwarding the packet according to a predetermined order that is based on a position of the packet relative to positions of other packets at their receipt in the network device.