Temporal Flow Distribution for Packet Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional packet processing mechanisms face challenges at 40/100 Gbps speeds, particularly in achieving even bandwidth distribution and preserving packet order across multiple packet processors, with existing methods like flow hashing and sequence numbers leading to inefficiencies such as packet loss and increased latency.

Innovation Solution

A temporal-based flow distribution method that computes a hash identifier for each packet, uses a State Table to index and manage packet processing engines (PEs), and dynamically assigns packets to the least loaded PE based on a time credit system, ensuring fair bandwidth distribution and maintaining packet order within flows.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If flow hashing is used to distribute packets across multiple packet processors, then packet processing can be performed in parallel, but bandwidth distribution becomes uneven and packet loss occurs

Engineering Contradiction:
Improvepacket processing throughputVSAvoidbandwidth distribution fairness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements dynamic flow distribution by periodically redistributing flows between packet processors based on current load conditions. The system monitors buffer fill levels and actively migrates flows from overloaded processors to underutilized ones, transforming a static hashing scheme into a dynamic load-balancing mechanism that adapts to changing network conditions and ensures fair bandwidth distribution.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system incorporates feedback mechanisms by continuously monitoring buffer fill levels across packet processors and using this information to guide flow redistribution decisions. The feedback loop detects when a processor is approaching capacity and triggers migration of flows to other processors, creating a closed-loop control system that maintains balanced load distribution and prevents packet loss.

Inventive Principle:
Principle #23Feedback

2Productivity

If sequence numbers are used to load balance packets, then bandwidth distribution is improved, but latency increases due to single reorder queue

Engineering Contradiction:
Improvebandwidth distributionVSAvoidpacket latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the reordering function by implementing separate reorder queues for each packet processor instead of a single shared reorder queue. This segmentation allows packets to be reordered independently at each processor, eliminating the bottleneck of a single reorder queue and reducing overall latency while maintaining load balancing capabilities through sequence number tagging.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system adds a dimensional approach by introducing per-processor reorder queues as an additional layer in the packet processing architecture. Instead of a single centralized reordering dimension, the system creates multiple parallel reordering dimensions one for each packet processor, enabling concurrent reordering operations and reducing the sequential latency associated with a single reorder queue.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Productivity

If sequence numbers are used for load balancing, then packet distribution is improved, but complexity increases due to missing and duplicated sequence numbers

Engineering Contradiction:
Improveload balancingVSAvoidsequence number management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the sequence number management complexity from the packet processing logic by implementing a dedicated sequence number allocation mechanism at the flow distributor. The system maintains separate sequence number counters for each packet processor and uses these extracted sequence numbers solely for load balancing decisions, separating the sequencing function from the processing function and simplifying the overall system architecture.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The flow distributor acts as an intermediary between the packet source and the packet processors, centralizing sequence number generation and allocation in this intermediate component. This intermediary layer manages sequence number coordination across multiple processors, handling the complexity of sequence number assignment and ensuring unique, non-duplicated sequence numbers without requiring each processor to manage sequence numbers independently.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If multiple packet processors are used to handle high data rates, then processing capability is improved, but over-subscription and packet loss occur

Engineering Contradiction:
Improvedata rate handlingVSAvoidpacket loss
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by redistributing flows between packet processors proactively before buffer overflow occurs. The flow distributor continuously monitors buffer fill levels and triggers flow migration in advance when processors approach their capacity thresholds, ensuring that packet loss is prevented rather than reacted to after it occurs. This predictive load balancing maintains system stability under high data rates.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8804507B2Method and apparatus for temporal-based flow distribution across multiple packet processors
Publication Date: 2014.08.12 EXTREME NETWORKS INC
  • US8804507B2 patent drawing
  • US8804507B2 patent drawing
  • US8804507B2 patent drawing

AI summary

A method, apparatus and computer program product for temporal-based flow distribution across multiple packet processors is presented. A packet is received and a hash identifier (ID) is computed for the packet. The hash ID is used to index into a State Table and to retrieve a corresponding record. When a time credit field of the record is zero then the time credit field is set to a to a new value; a Packet Processing Engine (PE) whose First-In-First-Out buffer (FIFO) has the lowest fill level is selected; and a PE number field in the state table record is updated with the selected PE number. When the time credit field of the record is non-zero then the packet is sent to a PE based on the value stored in the record; and the time credit field in the record is decremented if the time credit field is greater than zero.