Packet Processing Graph Self-Modification for Low-Latency Flow Adaptation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImproveadaptabilityVSAvoidprocessing latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improveflow adaptation capabilityVSAvoidcomputing resource efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
Improveruntime optimization capabilityVSAvoiddevice throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP4295555B1Self-modifying packet processing graph
Publication Date: 2026.01.21 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP4295555B1 patent drawingFigure 1
  • EP4295555B1 patent drawingFigure 2
  • EP4295555B1 patent drawingFigure 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.