Network Forwarding Element Container Field Reuse

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Network forwarding elements, such as switches and routers, face inefficiencies in utilizing container fields and arithmetic logic units due to limited resources and the need for optimized message processing stages.

Innovation Solution

Implementing a method that reuses container fields by determining their lifespan and configuring hardware circuitries to initialize and reset them efficiently, allowing for concurrent processing of action codes across message processing stages, and utilizing specialized circuitry for initialization to avoid dedicating processing stages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If container fields are allocated for each message processing stage, then each stage has dedicated storage for header fields, but the number of available container fields is limited and cannot be increased

Engineering Contradiction:
Improvemessage processing correctnessVSAvoidnumber of container fields
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements a container field reuse mechanism where container fields are allocated to message processing stages based on the lifespan of header fields. When a header field is no longer needed in subsequent stages, its container field is released and made available for allocation to other header fields in later stages. This is achieved through tracking the lifespan of each header field and managing container field allocation dynamically, effectively recovering and reusing container fields rather than allocating dedicated fields to each stage.

Inventive Principle:
Principle #34Discarding and recovering

2Reliability

If message processing stages are sequenced to process actions in order, then action dependencies are maintained, but processing efficiency is reduced due to sequential execution

Engineering Contradiction:
Improveaction dependency correctnessVSAvoidmessage processing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements a compilation phase that performs preliminary analysis of action dependencies before message processing begins. During compilation, the system identifies which actions have dependencies on each other and pre-determines the processing sequence. This allows the runtime system to execute actions in parallel when no dependencies exist, while maintaining correct sequential execution only where dependencies require it. The preliminary compilation step enables the system to optimize throughput by avoiding unnecessary sequential constraints.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If arithmetic logic units are allocated to each message processing stage, then each stage has dedicated processing capability, but the number of available arithmetic logic units is limited

Engineering Contradiction:
Improveprocessing capabilityVSAvoidnumber of arithmetic logic units
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements a shared arithmetic logic unit pool that serves multiple message processing stages. Instead of allocating dedicated ALUs to each stage, the system creates a universal pool of ALUs that can be dynamically allocated to any stage that requires processing capability. The compiler analyzes the processing requirements of each stage and allocates ALUs from the shared pool accordingly, allowing the same physical ALU resources to perform multiple functions across different stages and messages.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Reliability

If container fields are initialized in dedicated processing stages, then initialization is guaranteed, but processing stage dependencies increase

Engineering Contradiction:
Improvecontainer field initializationVSAvoidprocessing stage dependencies
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the container field initialization function from the message processing stages and implements it as a separate, dedicated initialization mechanism. Instead of requiring processing stages to perform initialization as part of their workflow, the system creates independent initialization circuitry that prepares container fields before they are allocated to stages. This separation removes initialization dependencies from the processing stage sequence, allowing stages to execute without waiting for initialization to complete as part of their dependency chain.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10805437B2Compiler and hardware interactions to remove action dependencies in the data plane of a network forwarding element
Publication Date: 2020.10.13 INTEL CORP
  • US10805437B2 patent drawing
  • US10805437B2 patent drawing
  • US10805437B2 patent drawing

AI summary

A method of configuring a forwarding element that includes several data plane message processing stages. The method stores a set of action codes in an instruction memory in the data plane of the forwarding element. Each action code identifies an operation to perform on a field of a message received at the data plane. The method determines action codes required to process each field of the message in each message processing stage. The method configures a data-plane processing unit of the forwarding element to concurrently perform a group of the action codes in the same data plane processing stage when (i) the action codes are the same and (ii) operate on the same field of the message.