Extensible Packet Processing Architecture for Scalable Network Performance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Scalable parallel processing techniques in computer networks face challenges in efficiently sharing limited resources, often resulting in head-of-line blockages where some compute components are overburdened while others remain idle, due to ineffective workload scheduling.
Innovation Solution
An extensible processing pipeline architecture with serially linkable processing engines and a distributed arbiter chain that allows decentralized decision-making for time-sharing data buses, enabling efficient processing of packet flows by allowing each engine to claim and process packets based on availability, thereby avoiding bottlenecks and optimizing resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If parallel processing techniques are used to scale compute power, then processing capacity increases, but head-of-line blockages occur causing some resources to be overburdened while others remain idle
Solution Approach 1:
The system segments the packet processing workload by dividing incoming packet flows into multiple parallel processing pipelines. Each pipeline is assigned to a specific processing engine, eliminating head-of-line blockages by allowing independent processing of different packet streams. This segmentation enables scalable parallel processing while maintaining efficient resource utilization across all compute components.
2Productivity
If distributed compute resources are shared efficiently, then resource utilization improves, but scheduling complexity increases
Solution Approach 1:
Processing engines operate autonomously to claim and process packet flows without centralized scheduling intervention. Each engine independently monitors the availability of packet flows and claims them when ready, eliminating the need for complex centralized scheduling algorithms. This self-service mechanism ensures efficient resource utilization while keeping scheduling complexity minimal through decentralized decision-making.
3Productivity
If processing engines operate independently, then scalability improves, but coordination overhead increases
Solution Approach 1:
The system merges the coordination function into the shared packet flow data structure itself, using claim flags and status indicators embedded in the packet metadata. Processing engines coordinate by reading and writing these flags rather than through separate communication channels. This approach enables scalable independent operation of processing engines while minimizing coordination overhead by combining state information with the data being processed.
Data Source
AI summary
A technique for distributed packet processing includes sequentially passing packets associated with packet flows between a plurality of processing engines along a flow through data bus linking the plurality of processing engines in series. At least one packet within a given packet flow is marked by a given processing engine to signify by the given processing engine to the other processing engines that the given processing engine has claimed the given packet flow for processing. A processing function is applied to each of the packet flows within the processing engines and the processed packets are output on a time-shared, arbitered data bus coupled to the plurality of processing engines.


