Dual-Stage Packet Cache for Non-Uniform Key and Payload Lookup
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing packet classification in high-speed networks is costly due to the need for cache lookups involving multiple dimensions and ranges, and there is a lack of efficient cache designs that can handle non-uniform lengths of keys and payloads, necessitating robust run-time insertion, deletion, and cache replacement schemes.
Innovation Solution
A dual-stage cache system with an index table of uniform length entries and a content table of non-uniform length entries, utilizing a unified hash value to identify rows and pointers for efficient cache lookups, along with insertion, deletion, and replacement strategies tailored for non-uniform key-payload pairs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a cache system is designed to handle non-uniform lengths of keys and payloads, then the cache can store a variety of search results with different dimensions and ranges, but the cache structure becomes more complex requiring dual-stage design with index tables and content tables
Solution Approach 1:
The cache is divided into two distinct stages: an index table stage and a content table stage. The index table stores uniform-length entries with tags and pointers, while the content table stores non-uniform length payloads. This segmentation allows the system to handle variable-length data efficiently while maintaining a structured approach to cache management.
Solution Approach 2:
The index table acts as an intermediary between the uniform hash value and the non-uniform content table. It translates the fixed-length hash into a structured format with tags and pointers that can efficiently access the variable-length payloads in the content table, bridging the gap between uniform addressing and non-uniform data storage.
2Adaptability or versatility
If multiple search dimensions and ranges are handled in packet classification, then comprehensive classification is achieved, but the classification cost increases requiring efficient cache lookup mechanisms
Solution Approach 1:
The system pre-calculates a unified hash value from packet header fields before the actual cache lookup. This preliminary hashing action transforms multiple dimension data into a single fixed-length index, enabling efficient direct access to the cache and reducing the classification cost despite handling multiple search dimensions.
Solution Approach 2:
The dual-stage cache structure serves multiple functions: it handles uniform and non-uniform data lengths, supports various search dimensions and ranges, and provides both exact match and range match capabilities. This multi-functionality allows comprehensive packet classification while maintaining efficiency through a single unified cache structure.
3Productivity
If search results are cached for reuse to reduce classification cost, then processing speed improves, but run-time insertion, deletion, and cache replacement schemes are required adding operational complexity
Solution Approach 1:
The cache replacement scheme discards old or less frequently used entries and recovers cache space for new entries. The index table and content table work together to manage this process, where the uniform index structure simplifies the identification of candidates for replacement while the non-uniform content table efficiently stores the recovered data.
Data Source
AI summary
At a first stage, cells of a row of the index table are searched, using a portion of the unified hash value bits as index to identify the row of the index table. Also, a pointer to the content table is identified by comparing an index table tag of an entry of a cell with a calculated tag of the hash to identify a cell in the row. At a second stage, a cell is looked up in the content table, responsive to a match of calculated tag of the hash and index table tag of entry, comparing the current full key value and the full key value in the content table entry. The content table full key value is retrieved using a pointer from the cell of the index table to the content table from the cell entry.


