Router Packet Classification Using Segmented TCAM and Value Masks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current packet classification and IP lookup systems in routers face challenges with high performance demands, including high power consumption, large memory occupancy, and inefficiencies in handling changing packet classification rules, particularly in traditional TCAMs, which affect throughput and efficiency.
Innovation Solution
The system partitions memory elements into segments with value masks (VM) lists, using buddy memory allocation and hashing techniques to optimize packet classification and IP lookup, reducing power consumption and memory usage while maintaining deterministic search rates and latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If traditional TCAM is used for packet classification and IP lookup, then deterministic search rates and latency are achieved, but power consumption and memory occupancy become excessively high
Solution Approach 1:
The patent divides the TCAM into multiple segments, each handling a specific portion of the packet classification rules. This segmentation allows parallel processing of different rule sets, maintaining deterministic search rates while reducing the memory occupancy and power consumption of any single TCAM segment.
Solution Approach 2:
The patent introduces a new dimension to the lookup process by implementing a hierarchical structure with multiple lookup stages. The first stage performs a coarse lookup to identify relevant rule segments, and the second stage performs detailed matching. This dimensional approach maintains search speed while reducing overall memory requirements.
2Speed
If traditional TCAM is used for packet classification, then fast lookup is achieved, but the system becomes inefficient when handling changing packet classification rules
Solution Approach 1:
The patent implements dynamic rule management by allowing packet classification rules to be added, removed, or modified without requiring a complete system reset. The segmented TCAM structure enables individual segments to be updated independently, maintaining lookup speed while improving adaptability to changing network conditions and security policies.
Solution Approach 2:
The patent pre-organizes packet classification rules into segments with predefined structures and indices. When new rules need to be added or existing rules modified, the system can efficiently locate and update only the relevant segments without reorganizing the entire rule set, thus maintaining fast lookup performance while adapting to rule changes.
3Reliability
If memory is allocated for storing large VM lists, then complete packet classification coverage is achieved, but memory occupancy increases
Solution Approach 1:
The patent segments the value-mask (VM) lists into multiple distributed sections across different TCAM segments. Each segment stores a subset of the complete VM list, and the lookup process queries multiple segments in parallel. This approach maintains complete classification coverage while distributing memory occupancy across multiple smaller, more efficient storage units.
Solution Approach 2:
The patent combines results from multiple TCAM segment lookups to achieve complete packet classification. By merging the classification results from segmented memory structures, the system achieves comprehensive rule coverage equivalent to a single large TCAM while using less total memory through efficient parallel processing and result consolidation.
Data Source
AI summary
An example method includes partitioning a memory element of a router into a plurality of segments having one or more rows, where at least a portion of the one or more rows is encoded with a value mask (VM) list having a plurality of values and masks. The VM list is identified by a label, and the label is mapped to a base row number and a specific number of bits corresponding to the portion encoding the VM list. Another example method includes partitioning a prefix into a plurality of blocks, indexing to a hash table using a value of a specific block, where a bucket of the hash table corresponds to a segment of a ternary content addressable memory of a router, and storing the prefix in a row of the segment.


