Network Switching Device Packet Re-order Queues
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing routers lack a mechanism to maintain packet order within traffic flows due to differing throughputs of parallel packet processing engines, leading to undesirable reordering of packets.
Innovation Solution
A network device with a dispatch component that classifies data units into traffic flow classes, utilizing a series of re-order queues to ensure packets from the same flow are processed in the correct order, even when handled by different processing engines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If packets are processed by multiple parallel packet processing engines, then processing throughput is improved, but packet order within traffic flows is lost
Solution Approach 1:
The patent segments the packet processing system into multiple parallel processing engines while introducing re-order queues as intermediary buffers. Each engine processes packets independently to maintain high throughput, while the re-order queues segment the flow control for each traffic flow, allowing packets to be temporarily stored and reordered to maintain correct sequence despite parallel processing.
Solution Approach 2:
The re-order queues act as intermediary components between the parallel packet processing engines and the output. These queues receive packets from different engines, buffer them temporarily, and release them in the correct order based on packet sequence numbers, thus mediating between the high-speed parallel processing and the requirement for ordered output.
2Reliability
If re-order queues are introduced to maintain packet order, then packet order is preserved, but device complexity increases
Solution Approach 1:
The re-order queues are designed with multi-functionality: they serve as both output buffers for completed packet processing and as re-ordering mechanisms simultaneously. The same queue structure handles both packet storage and sequence management, reducing the need for separate dedicated re-ordering hardware and thus limiting the increase in device complexity.
Solution Approach 2:
The system dynamically adjusts queue parameters such as queue selection and packet release timing based on packet sequence numbers and flow identifiers. By changing operational parameters rather than structural complexity, the system maintains packet order through software-controlled queue management rather than requiring complex hardware re-ordering circuits.
3Reliability
If packets are buffered in re-order queues, then packet order is maintained, but processing delay increases
Solution Approach 1:
The re-order queues buffer only the necessary number of packets required to maintain order, not all packets indefinitely. Packets are released from queues as soon as they are ready in the correct sequence, using partial buffering action rather than complete buffering, thus minimizing delay while maintaining order.
Solution Approach 2:
The system maintains continuous packet flow through the re-order queues rather than stopping processing to maintain order. Multiple engines continuously process packets in parallel, and the queues continuously reorder and forward packets, ensuring that the useful processing action continues without interruption while still achieving proper packet sequencing.
Data Source
AI summary
Data units received by a network device may be classified into traffic flow classes in which the determined traffic flow class for a data unit may be dynamically refined as the data unit is processed by the network device. A dispatch component of the network device may receive data units associated with traffic flow classes. Parallel processing engines of the network device may receive the data units from the dispatch component and may generate, for a least one of the data units, a plurality of dynamically refined indications of the traffic flow class to which the data unit belongs. Additionally, an ordering component of the network device may include a plurality of re-order queues, where the at least one data unit successively progresses through at least two of the re-order queues in an order defined by the plurality of dynamically refined indications of the traffic flow class.


