Packet Order Maintenance in Multi-Processor Network Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Network devices face challenges in maintaining the order of packets during parallel processing, as packets are processed independently by multiple elements, leading to out-of-order completion due to latency variations when accessing external resources.

Innovation Solution

A method and network device configuration that assigns packets to classes based on attributes, queues them according to reception order, and performs actions only when packets reach the head of their queues, ensuring order is maintained through a system of packet processing node elements and an ordering unit that manages packet classes and processing actions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If packets are processed independently by multiple packet processing node elements in parallel, then processing speed and productivity are improved, but packet order is lost due to latency variations when accessing external resources

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

Solution Approach 1:

The patent segments packets into different packet classes based on attributes, with each class assigned to dedicated queues. This segmentation allows parallel processing of different classes while maintaining order within each class, resolving the contradiction between parallel processing speed and packet order maintenance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The ordering unit acts as an intermediary between packet processing node elements and the external interface. It receives packets, assigns them to classes and queues, and releases them in order, mediating between parallel processing needs and order maintenance requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If packets are queued in separate queues by packet class, then packet order within each class is maintained, but device complexity increases due to multiple queues and class management

Engineering Contradiction:
Improvepacket order maintenanceVSAvoidqueue management structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The ordering unit performs multiple functions: it classifies packets into different classes, assigns them to appropriate queues, and manages the release of packets in order. This multi-functionality consolidates complex queue management into a single unit, reducing overall device complexity while maintaining packet order.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If processing actions are delayed until packets reach the head of their queues, then packet order is preserved, but processing time increases due to waiting

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

Solution Approach 1:

By segmenting packets into different classes with separate queues, the system allows packets in different classes to be processed independently without blocking each other. This reduces waiting time while maintaining order within each class, resolving the contradiction between order preservation and processing speed.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9807027B2Maintaining packet order in a multi processor network device
Publication Date: 2017.10.31 MARVELL ISRAEL (M L S L) LTD
  • US9807027B2 patent drawing
  • US9807027B2 patent drawing
  • US9807027B2 patent drawing

AI summary

A plurality of packets are received by a packet processing device, and the packets are distributed among two or more packet processing node elements for processing of the packets. The packets are assigned to respective packet classes, each class corresponding to a group of packets for which an order in which the packets were received is to be preserved. The packets are queued in respective queues corresponding to the assigned packet classes and according to an order in which the packets were received by the packet processing device. The packet processing node elements issue respective instructions indicative of processing actions to be performed with respect to the packets, and indications of at least some of the processing actions are stored. A processing action with respect to a packet is performed when the packet has reached a head of a queue corresponding to the class associated with the packet.