Hierarchical Lookup Tables for Packet Classification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current packet classification methods in network devices are inefficient due to the sequential comparison of complex rules in access control lists (ACLs), which leads to increased processing time and memory usage, especially when dealing with wildcard fields that are not relevant to classification.
Innovation Solution
The method generates secondary lookup tables from a primary lookup table based on commonality, such as wildcard entries, allowing for a more granular classification process by parsing data packets into header elements and comparing them to fields in these secondary tables, thereby improving processing efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If sequential comparison of complex rules in ACLs is used for packet classification, then comprehensive rule coverage is achieved, but processing time increases and classification performance deteriorates
Solution Approach 1:
The patent segments the complex ACL rule set into multiple hierarchical lookup tables (primary, secondary, and tertiary tables). The primary table contains wildcard entries for broad classification, while secondary and tertiary tables provide more specific rules. This segmentation allows the system to quickly filter packets using the primary table and only perform detailed comparisons for packets that require more specific classification, thereby reducing overall processing time while maintaining comprehensive rule coverage.
Solution Approach 2:
The patent performs preliminary classification by organizing rules into a hierarchical structure where the primary lookup table is populated first with wildcard entries. This preliminary organization allows the system to quickly identify and filter packets that match general classification criteria before proceeding to more detailed secondary and tertiary table lookups. This preliminary action reduces the number of packets that require full sequential comparison, improving processing efficiency.
2Ease of manufacture
If fixed lookup table size is used, then memory allocation is simplified, but classification granularity is reduced and adaptability to different protocol stacks deteriorates
Solution Approach 1:
The patent implements dynamic lookup table sizes at multiple hierarchical levels. The primary lookup table can be configured with a fixed size for simplified memory allocation, while secondary and tertiary tables are dynamically sized based on the specific classification requirements and protocol stacks being handled. This dynamic structure allows the system to allocate memory efficiently at each level while maintaining the ability to adapt to different protocol requirements and achieve fine-grained classification where needed.
Solution Approach 2:
The patent applies different table size characteristics to different parts of the classification system. The primary table uses a fixed size for stability and simplified memory management, while secondary and tertiary tables use variable sizes optimized for their specific classification tasks. This local differentiation of table properties allows the system to balance memory allocation simplicity with classification granularity and adaptability in different regions of the lookup hierarchy.
3Measurement precision
If all fields are included in lookup key for complete classification, then classification accuracy is improved, but memory usage increases and processing complexity deteriorates
Solution Approach 1:
The patent extracts and separates relevant classification fields from the complete packet header into different hierarchical levels. The primary lookup table uses a subset of fields with wildcard masking to provide broad classification with minimal memory usage. Secondary and tertiary tables extract and store only the specific field combinations needed for more granular classification. This extraction approach maintains classification accuracy for relevant fields while excluding unnecessary fields from memory storage, thereby reducing overall memory usage and processing complexity.
Solution Approach 2:
The patent segments the classification fields into different hierarchical levels based on their relevance and specificity. The primary table handles classification using a subset of critical fields with wildcard support, while secondary and tertiary tables handle more specific field combinations. This segmentation allows the system to maintain high classification accuracy for essential fields while avoiding the memory overhead of storing all possible field combinations, thus reducing memory usage and processing complexity.
4Adaptability or versatility
If wildcard fields are included in lookup key, then flexibility for don't care scenarios is improved, but processing complexity increases and performance deteriorates
Solution Approach 1:
The patent segments wildcard handling into different hierarchical levels. The primary lookup table is specifically designed to handle wildcard entries efficiently using a simplified matching algorithm that operates on a subset of fields. Secondary and tertiary tables handle packets that require more specific matching with fewer or no wildcards. This segmentation isolates the complexity of wildcard processing to the primary table where it can be handled efficiently, while preventing wildcard complexity from propagating to deeper lookup levels.
Solution Approach 2:
The patent performs preliminary wildcard-based filtering in the primary lookup table before proceeding to secondary and tertiary tables. This preliminary action uses wildcard masks to quickly identify packets that match general classification patterns without requiring detailed field-by-field comparison. By handling wildcard matching early in the hierarchy, the system reduces the number of packets that proceed to more complex processing stages, thereby reducing overall processing complexity while maintaining wildcard flexibility.
Data Source
AI summary
A method for classifying a data packet containing a header is provided. The method may comprise parsing the header of a data packet into header elements. Rules in secondary lookup tables generated from a primary lookup table may be accessed. The respective header elements of the data packet may be compared to the respective fields of each of the secondary lookup tables, and rule results for each of the secondary lookup tables in a combinable format may be generated. In another embodiment, a method for generating secondary lookup tables from a primary lookup table is provided. The method may comprise accessing a primary lookup table defining packet classification rules and generating multiple secondary lookup tables from the primary lookup table. For each secondary lookup table, a selection of classification rules and a selection of fields of the multiple fields based on a rule set identifying predefined entries may be extracted.


