Multi-Stage Packet Steering Using Cumulative Hash Lookups

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current packet steering technologies, such as those using 5-tuple header information, are insufficient for non-standard steering decisions in scenarios like network function virtualization, requiring more flexible and efficient methods to handle multiple virtualization and tunneling protocols.

Innovation Solution

A network device employing a multi-stage steering process using user-selectable header fields, with match-and-action tables that allow cumulative lookup values based on combinations of hash values from various header portions, enabling flexible and efficient packet steering across multiple tables.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional 5-tuple header information steering is used, then the steering process is simple and fast, but it cannot handle non-standard steering decisions in network function virtualization scenarios

Engineering Contradiction:
Improvesteering decision flexibilityVSAvoidsteering process complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The steering process is divided into multiple stages, with each stage handling specific steering decisions. The packet processing engine performs sequential lookups in different match-and-action tables, where each table corresponds to a specific steering stage. This segmentation allows the system to handle complex virtualization scenarios by breaking down the steering decision into manageable steps, improving adaptability without overwhelming complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a multi-dimensional steering approach by adding header field selection as an additional dimension to the traditional 5-tuple steering. Instead of relying solely on fixed 5-tuple information, the system allows dynamic selection of header fields (such as VLAN tags, MPLS labels, or custom protocol fields) to form composite lookup keys. This dimensional expansion enables the steering system to accommodate diverse virtualization protocols and non-standard steering requirements.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If multiple header fields are used for cumulative lookup, then steering flexibility improves, but processing time and latency increase

Engineering Contradiction:
Improvesteering decision flexibilityVSAvoidpacket processing latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary parsing of header fields and pre-computation of lookup keys before the actual steering decision. The packet processing engine identifies relevant header fields in advance, extracts their values, and prepares composite lookup keys prior to table lookups. This preliminary action reduces the time required during the critical steering decision phase, mitigating latency despite the use of multiple header fields.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent merges multiple header field lookups into a unified multi-stage steering process. Instead of performing separate sequential lookups that would each incur overhead, the system combines the lookup operations into an integrated flow where results from previous stages inform subsequent stages. The cumulative lookup value aggregates information from multiple header fields in a single coordinated process, reducing total processing time compared to independent lookups.

Inventive Principle:
Principle #5Merging (Combining)

3Adaptability or versatility

If a multi-stage steering process is implemented, then nonstandard steering decisions are supported, but the device complexity and hardware requirements increase

Engineering Contradiction:
Improveprotocol handling capabilityVSAvoidpacket processing engine complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The packet processing engine is designed as a universal multi-functional unit that can handle various steering scenarios through a standardized multi-stage process. Rather than implementing separate specialized steering logic for different protocols (VXLAN, GTP, MPLS, etc.), the engine uses a single configurable framework that adapts to different protocols by selecting appropriate header fields for each stage. This universal approach supports diverse protocols without proportionally increasing hardware complexity.

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

Solution Approach 2:

The system achieves protocol-specific steering behavior by changing parameters such as header field selection, table configuration, and lookup key composition, rather than by changing the fundamental steering architecture. The match-and-action tables are configured with different parameter sets for different protocols, allowing the same hardware structure to handle VXLAN, GTP, MPLS, and other protocols by simply adjusting which header fields are extracted and how they are combined for lookup.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11323372B2Flexible steering
Publication Date: 2022.05.03 MELLANOX TECHNOLOGIES LTD(IL)
  • US11323372B2 patent drawing
  • US11323372B2 patent drawing
  • US11323372B2 patent drawing

AI summary

In one embodiment, a network device includes an interface configured to receive a data packet including a header section, at least one parser to parse the data of the header section yielding a first header portion and a second header portion, a packet processing engine to fetch a first match-and-action table, match a first index having a corresponding first steering action entry in the first match-and-action table responsively to the first header portion, compute a cumulative lookup value based on the first header portion and the second header portion responsively to the first steering action entry, fetch a second match-and-action table responsively to the first steering action entry, match a second index having a corresponding second steering action entry in the second match-and-action table responsively to the cumulative lookup value, and steering the packet responsively to the second steering action entry.