Variable-Length Packet Header Vectors for Programmable NICs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network interface cards (NICs) face challenges in adapting to changes in network device structures, protocols, and feature sets due to their fixed-length packet header vectors (PHVs), which limit flexibility and processing capabilities.

Innovation Solution

Implementing a programmable pipeline for NICs that generates a packet header vector (PHV) and applies features through multiple processing stages, allowing for variable-length PHVs using time-division multiplexing, enabling additional fields and match-action table lookups to accommodate evolving network demands.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If fixed-length PHVs are used, then implementation simplicity is improved, but adaptability deteriorates

Engineering Contradiction:
Improveimplementation simplicityVSAvoidadaptability to changes in network device structure and feature set
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent implements variable-length PHVs that can dynamically adjust their size based on the specific packet processing requirements. The PHV structure transitions from a static fixed-length format to a dynamic variable-length format, allowing the system to adapt to different network device structures and feature sets while maintaining implementation feasibility through a structured expansion approach.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the fundamental parameter of PHV length from a fixed value to a variable value that can be adjusted based on processing needs. This parameter change enables the system to accommodate evolving network demands, additional fields, and multiple match-action table accesses while maintaining a systematic and manageable implementation framework.

Inventive Principle:
Principle #35Parameter changes

2Speed

If fixed-length PHVs are used, then processing speed is improved, but processing flexibility deteriorates

Engineering Contradiction:
Improveprocessing speedVSAvoidprocessing flexibility
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The variable-length PHV implementation introduces dynamic adaptability to the processing pipeline, allowing the system to optimize processing flexibility for different packet types and processing requirements while maintaining efficient processing speeds through streamlined variable-length handling mechanisms.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent segments the PHV into variable-length components that can be processed efficiently at different stages of the pipeline. This segmentation allows the system to maintain high processing speeds by handling only the necessary fields for each packet type while preserving the ability to accommodate complex processing requirements when needed.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If variable-length PHVs are implemented, then adaptability is improved, but device complexity increases

Engineering Contradiction:
Improveadaptability to feature demandVSAvoidcomplexity of processing pipeline
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a universal variable-length PHV framework that can handle multiple different processing scenarios and feature sets through a single adaptable structure. This universal approach reduces device complexity by eliminating the need for multiple specialized fixed-length PHV implementations, as one flexible structure can accommodate various processing requirements.

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

Solution Approach 2:

By implementing variable-length PHVs, the system changes the structural parameters of the data format to be more adaptable. This parameter change enables the processing pipeline to handle diverse feature demands without requiring proportional increases in device complexity, as the variable-length structure naturally accommodates different processing needs through its flexible design.

Inventive Principle:
Principle #35Parameter changes

4Adaptability or versatility

If variable-length PHVs are implemented, then processing flexibility is improved, but processing time variability increases

Engineering Contradiction:
Improveprocessing flexibilityVSAvoidprocessing time
Core Design Contradiction:
Adaptability or versatilityVSDuration of action of moving object

Solution Approach 1:

The variable-length PHV system introduces dynamic processing capabilities that allow the pipeline to adapt processing time to the actual complexity of each packet. This dynamic approach improves processing flexibility by allowing complex packets to receive more processing time while simple packets are processed quickly, optimizing overall system efficiency despite variable processing times.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the processing time parameter from a fixed value to a variable value that correlates with packet complexity and processing requirements. This parameter change enables the system to maintain high processing speeds for simple packets while allocating additional time for complex processing tasks, thereby improving overall processing flexibility without significantly impacting average processing time.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10944696B2Variable-length packet header vectors
Publication Date: 2021.03.09 PENSANDO SYSTEMS INC
  • US10944696B2 patent drawing
  • US10944696B2 patent drawing
  • US10944696B2 patent drawing

AI summary

Methods and network interface modules for processing packet headers are provided. The method comprises: receiving a packet comprising a header and a payload; generating, using the header, an initial packet header vector (PHV); providing the initial PHV to a pipeline comprising a plurality of processing stages; and processing the initial PHV in the pipeline, wherein the processing comprises, for a current processing stage in the plurality of processing stages: receiving, by the current processing stage, an input PHV, wherein the input PHV (i) is the initial PHV or a modified version of the initial PHV and (ii) comprises one or more flits, and applying a feature to the input PHV to generate an output PHV, including increasing an initial length of the input PHV if the initial length is not sufficient to apply the feature.