Modular packet classification
First Claim
1. A data structure for organizing a plurality of k-dimensional filters used to classify k-dimensional bit strings, k>
- 0, comprising;
a jump table indexed on pre-selected bit positions of pre-selected filter dimensions, said jump table pointing to a plurality of search trees;
each said search tree having one or more terminating leaf nodes which identify a relatively small set of filters.
1 Assignment
0 Petitions
Accused Products
Abstract
The novel method and system for classifying packets through the use of filters combines heuristic tree search with the use of filter buckets. This provides high performance and reasonable storage requirement, even when applied to large number of filters (from 4K to 1 million). In addition, the novel method can adapt to the input packet distribution by taking into account the relative filter usage. The capability of employing a large number of filters in a packet classifciation system is useful in providing value-added services, such as security, quality of service (QoS), load balancing, and traffic accounting.
-
Citations
26 Claims
-
1. A data structure for organizing a plurality of k-dimensional filters used to classify k-dimensional bit strings, k>
- 0, comprising;
a jump table indexed on pre-selected bit positions of pre-selected filter dimensions, said jump table pointing to a plurality of search trees;
each said search tree having one or more terminating leaf nodes which identify a relatively small set of filters. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
- 0, comprising;
-
9. A method of identifying a filter used to classify a packet having at least one corresponding field of interest, comprising:
-
(a) searching a jump table for an entry matching the bits at pre-selected bit positions of said at least one packet field, wherein said jump table points to a plurality of search trees, said search thereby identifying one of said search trees;
(b) traversing said identified search tree until a terminating leaf node is reached, said terminating leaf node identifying at least one filter bucket; and
(c) searching said identified filter bucket until a match is found between the bits of the at least one packet field and the bits of the filter.
-
-
10. A method of identifying a k-dimensional filter used to classify a packet having k corersponding fields of interest, k>
- 0, comprising;
(a) searching a jump table for an entry matching the bits at pre-selected leading bit positions of one or more pre-selected fields of said packet, wherein said jump table is indexed on pre-selected prefix lengths of pre-selected filter dimensions and points to a plurality of search trees, said search thereby identifying one of said search trees;
(b) traversing said identified search tree by comparing the bits at pre-selected bit positions of one or more pre-selected fields of said packet against the bits at pre-selected bit positions of pre-selected filter dimensions associated with each node of said tree until a terminating leaf node is reached, said terminating leaf node identifying at least one filter bucket; and
(c) searching said identified filter bucket until a match is found between the bits of the k packet fields and the bits of the k filter dimensions, if any. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26)
- 0, comprising;
-
18. A method of converting a k-dimensional filter table, comprising:
-
segmenting said filters into broad subsets based on pre-selected prefix lengths of pre-selected filter dimensions; and
recursively dividing each said broad subset into one or more filter buckets.
-
Specification