Multi-field Packet Classifier Using Subkey Tables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current content-addressable memories (CAMs) and ternary content-addressable memories (TCAMs) are costly in terms of chip area, necessitating an improved system and method for classifying data packets based on packet header field values.

Innovation Solution

A system and method involving multiple subkey tables and a decision table, where each subkey table searches for a respective packet header field value, generating subkeys that are combined to form a decision key, which is then used to determine how to process the packet, utilizing a two-stage process for efficient classification.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If CAMs or TCAMs are used for packet classification, then classification speed and accuracy are improved, but chip area and cost increase

Engineering Contradiction:
Improvepacket classification speedVSAvoidchip area
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The patent divides the packet classification task into multiple independent subkey tables, each handling a specific field or combination of fields. Instead of using a single large CAM/TCAM structure, the system segments the classification function across multiple smaller tables that can be processed in parallel, reducing the area required for each individual table while maintaining overall classification performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a hierarchical dimension to packet classification by using multiple levels of tables (subkey tables at one level, decision tables at another). This dimensional approach allows the system to classify packets through a multi-stage process where each table handles a specific aspect of classification, reducing the complexity and area requirement of any single table while improving overall classification capability.

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

2Area of stationary object

If multiple subkey tables are used for packet classification, then chip area is reduced, but device complexity increases

Engineering Contradiction:
Improvechip areaVSAvoidsystem structure complexity
Core Design Contradiction:
Area of stationary objectVSDevice complexity

Solution Approach 1:

The patent designs the subkey tables and decision tables to serve multiple functions within the packet classification system. Each table structure is optimized to handle both exact matches and range queries, and the same table architecture can be reused for different packet fields. This multi-functionality reduces the need for specialized hardware for each classification task, thereby reducing overall device complexity despite having multiple tables.

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

Solution Approach 2:

The patent uses identical or similar table structures (subkey tables) that can be instantiated multiple times with different data. Instead of creating unique complex structures for each classification function, the system copies and reuses the same efficient table architecture, filling it with field-specific data. This approach simplifies the overall system design while maintaining the benefits of multiple tables for area reduction.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10778814B2Multi-field classifier
Publication Date: 2020.09.15 ROCKLEY PHOTONICS LTD
  • US10778814B2 patent drawing
  • US10778814B2 patent drawing

AI summary

A system and method for classifying packets according to packet header field values. Each of a set of subkey tables is searched for a respective packet header field value; each such search results in a value for a subkey. The subkeys are combined to form a decision key. A decision table is then searched for the decision key. The search of the decision table results in an action code and a reason code, one or both of which may be used to determine how to further process the packet.