Packet Processing Graph Self-Modification for Low-Latency Flow Adaptation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing packet processing systems face challenges in dynamically adapting packet processing graphs without significant impact on throughput or latency, leading to computing resource consumption and potential packet loss.
Innovation Solution
Implementing a 'learn' action that allows the packet processing pipeline to self-modify the graph using pre-allocated resources and prefabricated table rows, reducing the burden on the control thread and enabling rapid graph modifications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the packet processing graph is modified dynamically to adapt to observed flows, then the adaptability of the system is improved, but the processing latency increases and packets may be lost
Solution Approach 1:
The system pre-allocates table rows in advance and prepares them for future use. When a new flow is detected, pre-allocated rows are immediately activated without requiring allocation delays, thus maintaining low latency while enabling dynamic adaptability.
Solution Approach 2:
The packet processing graph is divided into multiple tables with pre-allocated rows. This segmentation allows the system to prepare multiple flow handling paths in advance, enabling rapid switching between different flow treatments without processing delays.
2Adaptability or versatility
If traditional flow-based modification methods are used, then the system can adapt to new flows, but computing resources are significantly consumed and packet loss occurs
Solution Approach 1:
Table rows are pre-allocated and prepared in advance with default actions. When flows need to be modified, the system simply activates pre-prepared rows rather than creating new ones, dramatically reducing computing resource consumption while maintaining full adaptability.
Solution Approach 2:
The packet processing pipeline threads autonomously modify the packet processing graph using pre-allocated resources without requiring control thread intervention. This self-service mechanism eliminates the overhead of inter-thread communication and control, improving computing resource efficiency.
3Adaptability or versatility
If the packet processing graph is modified during runtime, then the system can optimize for observed flows, but the device throughput decreases
Solution Approach 1:
Multiple table rows are pre-allocated and prepared with different flow handling rules before runtime. During operation, the system activates appropriate pre-prepared rows based on observed flows, enabling runtime optimization without the overhead of dynamic resource allocation that would reduce throughput.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The techniques disclosed herein improve existing systems by receiving a packet to process and determining an associated packet processing graph for the packet. In response to determining that the associated packet processing graph contains an action comprising a set of rules for modifying the packet processing graph, a table to modify in the packet processing graph is accessed based on a table identifier in the action. The accessed table is modified by inserting one or more table rows into the packet processing graph and for each inserted table row, inserting a set of template actions containing prepopulated fields. The modified table is used to process subsequent packets.