Parallel Packet Processing Order Maintenance via Dynamic Queue Feedback

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Network devices face challenges in maintaining the order of packets during parallel processing due to variability in latency among processing elements, leading to out-of-order completion of packet processing.

Innovation Solution

A controller device with an instruction execution processor and memory that manages queues for packet identifiers, using feedback processors to ensure packets are processed and transmitted in the correct order by identifying and executing instructions only when packets reach the head of their respective queues.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If parallel packet processing is implemented to improve throughput, then productivity increases, but packet order maintenance becomes difficult leading to out-of-order completion

Engineering Contradiction:
Improvepacket processing throughputVSAvoidpacket order maintenance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system segments packets into different queues based on their processing requirements and latency characteristics. By dividing the packet stream into multiple ordered queues, each queue can be processed independently while maintaining overall packet order, thus enabling parallel processing without losing packet sequence integrity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-classifying packets into different queues before processing based on their latency requirements. This advance organization allows the packet ordering processor to efficiently retrieve and process packets in the correct order without requiring complex real-time reordering operations.

Inventive Principle:
Principle #10Preliminary action

2Speed

If multiple processing elements are used to process packets concurrently, then processing speed increases, but variability in latency causes packets to complete out of order

Engineering Contradiction:
Improvepacket processing speedVSAvoidpacket completion order precision
Core Design Contradiction:
SpeedVSManufacturing precision

Solution Approach 1:

The system applies local quality by assigning different service priorities and latency treatments to different queues based on their specific requirements. High-latency packets are placed in queues with relaxed timing, while low-latency packets receive priority processing, ensuring each packet type is handled with appropriate quality of service while maintaining overall order.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The packet ordering processor acts as an intermediary between the parallel processing elements and the output interface. It receives packets from multiple processing elements, reorders them according to their original sequence, and then forwards them in the correct order, thus mediating the conflict between parallel processing speed and order precision.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If packets are buffered to maintain order, then packet order is preserved, but processing delay increases

Engineering Contradiction:
Improvepacket order maintenanceVSAvoidpacket processing delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system uses dynamic queue management where the buffering behavior adapts based on current queue states and packet characteristics. Rather than using a single static buffer, multiple dynamic queues allow packets to be held in different buffering states, enabling the system to maintain order while minimizing unnecessary delays by releasing packets as soon as they are ready in the correct sequence.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9886273B1Maintaining packet order in a parallel processing network device
Publication Date: 2018.02.06 MARVELL ISRAEL (M L S L) LTD
  • US9886273B1 patent drawing
  • US9886273B1 patent drawing
  • US9886273B1 patent drawing

AI summary

An instruction execution processor has an input to receive instructions associated with maintaining a queue for storing packet identifiers (IDs) corresponding to packets being processed by a network device. A memory coupled to the instruction execution processor is for storing instructions received at the input of the instruction execution processor and not executed by the instruction execution processor. An instruction feedback processor is coupled to the instruction execution processor. The instruction feedback processor is configured to, in response to receiving an output from the instruction execution processor, identify one or more instructions, stored in the memory, that correspond to a new packet ID at the head of the queue, and feed back, to the input of the instruction execution processor, the one or more identified instructions.