Packet Processing Match Unit with Configurable Bit Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

OpenFlow's existing architecture and protocol for network packet switching have limitations in scalability and flexibility, particularly in managing match and action operations across multiple tables, leading to inefficiencies in packet processing and memory utilization.

Innovation Solution

A packet processing block with a match unit comprising a match table and action memory, utilizing a global action pointer and variable bit width action memory pointers to efficiently perform match operations and modify packet headers, along with a memory pool for flexible allocation of unit memories for match, action, and statistics functions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If OpenFlow uses fixed-width action memory pointers in match tables, then the structure is simple and easy to implement, but memory utilization is inefficient and scalability is limited

Engineering Contradiction:
Improveimplementation simplicityVSAvoidmemory utilization efficiency
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic action memory pointers with variable bit widths that can be configured per match table. This allows the pointer width to adapt to the specific memory requirements of each table, optimizing memory utilization while maintaining implementation feasibility through a configurable rather than fully dynamic structure.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes the parameter of action memory pointer bit width from fixed to variable. Each match table can be configured with appropriate pointer widths based on its action memory size requirements, improving overall memory utilization efficiency while maintaining structural simplicity through configurable parameters.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If OpenFlow uses separate action memory for each match table, then each table has dedicated resources, but memory resources are not shared and overall efficiency decreases

Engineering Contradiction:
Improvededicated resource availabilityVSAvoidoverall memory efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements a shared action memory pool that can be accessed by multiple match tables. Each table is configured with appropriate pointer widths to access the shared memory, allowing memory resources to serve multiple functions and tables simultaneously, thereby improving overall memory efficiency while maintaining reliable access for each table.

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

Solution Approach 2:

The invention merges separate action memories for different match tables into a single shared action memory pool. This consolidation allows efficient memory utilization across multiple tables while maintaining dedicated access paths through configurable pointers, resolving the contradiction between dedicated resources and overall efficiency.

Inventive Principle:
Principle #5Merging (Combining)

3Adaptability or versatility

If OpenFlow uses variable bit width action memory pointers, then memory allocation flexibility improves, but the device complexity increases

Engineering Contradiction:
Improvememory allocation flexibilityVSAvoidpointer management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent manages the complexity of variable bit width pointers by making them configurable parameters at the match table level rather than requiring dynamic adjustment. This allows memory allocation flexibility through different pointer widths while controlling device complexity through static configuration rather than dynamic management.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The invention resolves pointer management complexity by pre-configuring appropriate pointer widths for each match table based on their specific requirements. This preliminary configuration approach eliminates the need for complex runtime pointer management while maintaining the flexibility of variable bit widths.

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If OpenFlow processes packets through multiple match tables sequentially, then complex packet classification is achieved, but processing time increases

Engineering Contradiction:
Improvepacket classification capabilityVSAvoidpacket processing time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent combines multiple match tables with shared action memory into a more integrated processing structure. By allowing tables to share memory resources and use optimized pointer widths, the system reduces redundant memory operations and improves processing throughput, thereby reducing packet processing time while maintaining complex classification capability.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The invention introduces dynamic optimization in memory access patterns through variable pointer widths and shared memory allocation. This allows the system to adapt memory access efficiency to the specific requirements of different match tables, improving overall processing speed while maintaining the capability for complex multi-table packet classification.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9998574B2Packet processing match and action unit with configurable bit allocation
Publication Date: 2018.06.12 TEXAS INSTRUMENTS INC

AI summary

A packet processing block. The block has an input for receiving data in a packet header vector, the vector comprising data representing information for a packet and a match unit for performing match operations between packet header vector data and at least one match table. Various embodiments provide advantages in connection with storing certain action or next table bits outside of the match table, or constants in the table, or by forming the match table from multiple unit match table memories.