Packet Processing Pipeline Dependency Removal
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current OpenFlow networking systems face inefficiencies due to false dependencies between match and action stages, which limit concurrent execution of packet processing tables and result in increased latency and suboptimal memory utilization.
Innovation Solution
Incorporating additional information in table declarations to specify modified output fields for each possible successor table, allowing for the identification and removal of false dependencies, enabling concurrent execution of tables and optimizing pipeline configuration.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If packet processing tables are executed sequentially to ensure correct dependency handling, then processing accuracy is maintained, but processing latency increases and throughput decreases
Solution Approach 1:
The patent implements dynamic pipeline configuration where the execution order of packet processing tables is adjusted based on real-time dependency analysis. Tables without dependencies are executed concurrently, while tables with dependencies maintain sequential execution. This dynamic approach allows the system to maximize parallel execution while preserving necessary sequential relationships, thereby reducing latency without compromising processing accuracy.
Solution Approach 2:
The patent segments the packet processing pipeline into independent table execution units that can be scheduled independently. By analyzing dependencies between tables and segmenting the execution flow, the system identifies independent tables that can run in parallel. This segmentation enables concurrent execution of non-dependent tables while maintaining correct sequential execution for dependent tables, resolving the contradiction between accuracy and latency.
2Reliability
If packet processing tables are executed in strict sequential order, then dependency correctness is ensured, but memory utilization decreases due to suboptimal pipeline configuration
Solution Approach 1:
The patent implements dynamic pipeline configuration where the execution order of packet processing tables is adjusted based on real-time dependency analysis. Tables without dependencies are executed concurrently, while tables with dependencies maintain sequential execution. This dynamic approach allows the system to maximize parallel execution while preserving necessary sequential relationships, thereby reducing latency without compromising processing accuracy.
Solution Approach 2:
The patent changes the execution parameters of the packet processing pipeline by introducing dependency analysis and dynamic scheduling. Instead of fixed sequential execution, the system adjusts execution parameters (timing, order, parallelism) based on dependency relationships between tables. This parameter optimization enables better memory utilization through improved pipeline configuration while maintaining dependency correctness.
3Productivity
If additional dependency information is collected and analyzed, then false dependencies are removed and concurrent execution is enabled, but system complexity increases
Solution Approach 1:
The patent applies preliminary action by pre-analyzing and storing dependency information between packet processing tables before execution. The system collects dependency information in advance, builds a dependency graph, and identifies false dependencies beforehand. This preliminary analysis enables the system to confidently execute tables concurrently without runtime complexity, as the dependency resolution is performed during table configuration rather than during packet processing.
Solution Approach 2:
The patent introduces an intermediary dependency analysis mechanism that mediates between tables and the execution pipeline. This intermediary layer collects dependency information, analyzes false dependencies, and provides optimized execution scheduling. By placing this intermediary between the tables and the execution engine, the system manages complexity in a dedicated module rather than distributing it throughout the entire packet processing system.
Data Source
AI summary
An embodiment includes a plurality of tables in a hardware network for performing packet processing. Each table in the plurality of tables includes a table declaration. The table declaration includes a first set of fields used for input matching and a second set of fields used as inputs for action processing. A first table is selected from the plurality of tables. Successor tables to the first table are selected from the plurality of tables. There is a third set of fields for each successor table of the successor tables. The contents of the third set of fields are output fields where the output fields are modified by the first table when a next table of the first table is the successor table of the first table.

