Programmable Packet Pipeline Out-of-Pipeline Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing I/O systems in data networks, such as switches and routers, face challenges in adapting to changes in feature sets, protocols, operating systems, and hardware configurations, and lack flexibility in processing high-volume, time-sensitive packets efficiently.
Innovation Solution
A programmable packet processing pipeline that diverts packet processing from a match-action pipeline to a processor core for out-of-pipeline processing, using diversion logic and a pipeline-processor interface to maintain packet ordering and integrate results back into the match-action pipeline, enabling flexible and efficient processing of packets through a hybrid approach combining P4 programmable packet processing and general-purpose processor cores.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If packet processing is performed in a fixed-function I/O system, then processing speed is maintained at high levels, but flexibility to adapt to changes in feature sets and protocols is poor
Solution Approach 1:
The packet processing system is segmented into two distinct paths: a match-action pipeline for standard high-speed processing and an out-of-pipeline processing path for specialized operations. This segmentation allows the system to maintain fast path performance for common operations while providing flexibility for adaptive processing when needed, resolving the contradiction between speed and adaptability.
Solution Approach 2:
The system introduces dynamic routing capability where packets can be diverted from the match-action pipeline to processor cores based on packet characteristics and processing requirements. This dynamic flexibility allows the same hardware architecture to adapt to different processing needs without changing the fundamental high-speed path architecture, maintaining both speed and adaptability.
2Adaptability or versatility
If packet processing is diverted to processor cores for out-of-pipeline processing, then flexibility and adaptability are improved, but processing speed and time sensitivity may be compromised
Solution Approach 1:
Specific processing operations are extracted from the main match-action pipeline and handled separately by processor cores. This extraction allows complex or adaptive operations to be performed without blocking the high-speed pipeline, as only the necessary packets are diverted while others continue through the optimized fast path, thus maintaining overall processing speed while providing flexibility.
Solution Approach 2:
A pipeline-processor interface acts as an intermediary between the match-action pipeline and processor cores, managing the diversion and return of packets. This intermediary mechanism ensures that diverted packets are properly queued, processed, and returned to the pipeline without disrupting the continuous flow of packets through the high-speed path, thereby preserving processing speed while enabling flexible out-of-pipeline operations.
3Adaptability or versatility
If out-of-pipeline processing is integrated into the match-action pipeline, then adaptability is enhanced, but packet ordering and synchronization become more complex
Solution Approach 1:
The system implements feedback mechanisms where processor cores return processing results to the match-action pipeline through the pipeline-processor interface. This feedback loop allows the pipeline to receive updated packet information and continue processing with the correct data, maintaining packet ordering and synchronization while enabling adaptive out-of-pipeline operations, thus resolving the complexity issue.
Solution Approach 2:
Packets are queued at the pipeline-processor interface before being diverted to processor cores, and results are queued upon return. This preliminary queuing action ensures that packets are processed in the correct order and that the pipeline receives data in the expected sequence, simplifying synchronization complexity while maintaining adaptability through out-of-pipeline processing.
Data Source
AI summary
Methods and system for processing data in a programmable processing pipeline are disclosed. In an embodiment, a method for processing packets in a programmable packet processing pipeline is disclosed. The method involves processing data corresponding to a packet through a match-action pipeline of a programmable packet processing pipeline, and diverting the processing of data corresponding to the packet from the match-action pipeline to a processor core for out-of-pipeline processing.


