Packet Classification Using Partitioned Recursive Flow Tables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing packet classification methods face challenges in reducing memory access and improving search speed, particularly due to the exponential increase in memory usage and table generation time with the number of rules, which affects packet processing speed and efficiency.
Innovation Solution
The method partitions the total rule set into sub-rule sets based on key values, generates Recursive Flow Classification (RFC) tables for each subset, and loads both partition and RFC table information on the same cache line, allowing for simultaneous search and reducing memory access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the Recursive Flow Classification (RFC) algorithm is used for packet classification, then packet classification speed is improved, but memory usage and table generation time increase exponentially with the number of rules
Solution Approach 1:
The patent divides the total rule set into multiple sub-rule sets based on key field values (such as protocol type, source/destination port ranges). Each sub-rule set is then processed independently to generate separate RFC tables. This segmentation reduces the size of individual RFC tables and their corresponding memory requirements, while maintaining the overall classification capability through hierarchical lookup.
Solution Approach 2:
The patent introduces a new dimensional structure by organizing RFC tables in a hierarchical manner with multiple levels. Instead of a single flat RFC table, the system creates a multi-dimensional structure where classification proceeds through successive levels of RFC tables, each handling a portion of the rule space. This dimensional transformation reduces memory access requirements at each level.
2Speed
If the Recursive Flow Classification (RFC) algorithm is used for packet classification, then packet classification speed is improved, but table generation time increases exponentially with the number of rules
Solution Approach 1:
The patent divides the total rule set into multiple sub-rule sets based on key field values (such as protocol type, source/destination port ranges). Each sub-rule set is then processed independently to generate separate RFC tables. This segmentation reduces the size of individual RFC tables and their corresponding memory requirements, while maintaining the overall classification capability through hierarchical lookup.
Solution Approach 2:
The patent performs preliminary partitioning of the rule set into sub-rule sets before generating RFC tables. This preliminary organization allows subsequent RFC table generation to operate on smaller, more manageable subsets of rules, significantly reducing the time required for table construction while maintaining classification effectiveness.
3Quantity of substance
If partitioning technique is used to divide total rule set into small sub rule sets, then RFC table size and generation time are reduced, but search performance is lowered due to additional searching processes
Solution Approach 1:
The patent performs preliminary partitioning of the rule set into sub-rule sets based on key field values before RFC table generation. This pre-organization allows the system to quickly determine which sub-rule set applies to a given packet, enabling efficient hierarchical lookup without requiring extensive searching through multiple partition structures.
Solution Approach 2:
The patent introduces a new dimensional structure by organizing RFC tables in a hierarchical manner with multiple levels. Instead of a single flat RFC table, the system creates a multi-dimensional structure where classification proceeds through successive levels of RFC tables, each handling a portion of the rule space. This dimensional transformation reduces memory access requirements at each level.
Data Source
AI summary
Disclosed are a method of packet classification and a device thereof. A method for packet classification according to one embodiment of the present invention comprises the steps of: partitioning the entire rule set by using key values corresponding to packet fields, into a plurality of rule subsets; generating recursive flow classification (RFC) tables for each of the plurality of partitioned rule subsets; loading, in the same cache line, both partition information and RFC table information commonly corresponding to key values of received packets; searching for a rule subset by using the partition information on the key values of the received packets, which are loaded in the cache line; and searching for an RFC table for a rule by using the RFC table information on the key values of the received packets, which are loaded in the cache line.


