TCAM Packet Classification Using Compare Tree and Serial Match Engine

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional memory-based TCAMs face challenges in efficiently performing masked matching of wide keys against large datasets for packet classification, particularly in supporting large key widths, nested prefixes, and variable masking, leading to high power consumption and complex design requirements.

Innovation Solution

A network packet classification system utilizing a compare tree engine and serial match engine, which iteratively accesses a preconfigured lookup table using bit extraction patterns and executes a linear search to identify the highest matching rule, supporting single pass packet parsing and classification with deterministic latency and scalability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional memory-based TCAM is used for packet classification, then masked matching capability is provided, but power consumption is high and design complexity increases

Engineering Contradiction:
Improvemasked matching capabilityVSAvoidpower consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by stationary object

Solution Approach 1:

The patent divides the TCAM into multiple banks (first bank and second bank) with each bank handling a portion of the search keys. This segmentation allows parallel processing of different key portions, reducing the time all bit cells are simultaneously active, thereby lowering power consumption while maintaining masked matching capability across the full key width.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a temporal dimension by processing different portions of search keys at different times across multiple banks. Instead of all banks operating simultaneously on full-width keys, the system processes key portions sequentially across banks, reducing peak power consumption while achieving the same classification result.

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

2Adaptability or versatility

If traditional memory-based TCAM is used for packet classification, then masked matching is supported, but device complexity increases

Engineering Contradiction:
Improvemasked matching supportVSAvoiddesign complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The TCAM is segmented into multiple banks, each handling a specific portion of the search key. This division simplifies the control logic for each bank compared to a single large bank, as each bank only needs to manage a subset of the total key bits, reducing individual bank complexity while collectively supporting full masked matching capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each TCAM bank performs partial matching on a portion of the search key rather than the full key. The system uses multiple banks to collectively achieve complete key matching, which simplifies the operation of each individual bank while maintaining overall matching accuracy through the combination of partial results.

Inventive Principle:
Principle #16Partial or excessive action

3Device complexity

If full packet header matching is performed with traditional TCAM, then parsing complexity is reduced, but key width requirements exceed available header bytes

Engineering Contradiction:
Improveparsing complexityVSAvoidkey width
Core Design Contradiction:
Device complexityVSLength of stationary object

Solution Approach 1:

The patent segments the full packet header into multiple portions, with each portion assigned to a different TCAM bank. This segmentation allows the system to handle full header matching by dividing it into manageable chunks, where each bank processes a specific segment, effectively supporting key widths that exceed the bytes available in a single header section.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a bank dimension to handle the extended key width requirement. By distributing different portions of the header across multiple banks, the system effectively increases the usable key width beyond what a single bank could handle, allowing full header matching without increasing the complexity of individual bank operations.

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

4Measurement precision

If Radix trees or Patricia tries are used for searching, then longest prefix matching is improved, but traversal time increases for long keys

Engineering Contradiction:
Improvelongest prefix matching accuracyVSAvoidtraversal time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the long search key into multiple portions, with each portion processed by a different TCAM bank in parallel. This segmentation eliminates the sequential traversal required by Radix trees and Patricia tries, as all key portions are evaluated simultaneously across banks, dramatically reducing traversal time while maintaining longest prefix matching accuracy through the priority encoder that identifies the highest precedence match.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8856203B1System and method for algorithmic TCAM packet classification
Publication Date: 2014.10.07 MICROSEMI SOLUTIONS US INC
  • US8856203B1 patent drawing
  • US8856203B1 patent drawing
  • US8856203B1 patent drawing

AI summary

In a Ternary Content Addressable Memory (TCAM) optimized for network packet classification, network operation rules are preprocessed into sub-lists in accordance with a decision tree based packet classification algorithm. The decision tree is encoded as a lookup memory, which is accessed with a predetermined base address of higher order address bits combined with lower order address bits obtained from specific bit positions from a received network packet. Depending on the nodes traversed in the decision tree, different base addresses and values from different bit positions of the packet are used until a sub-list of potential rules is identified. A bitwise comparison of values of each rule against the packet is then executed, the matching rule with the highest precedence is returned as the matching table entry and the configured value associated with the entry is prepended to the packet.