Method for classifying packets using multi-class structures
First Claim
1. A method for generating lookup tables and a final equivalence set for use in classifying a network packet in accordance with a policy that specifies one or more classes, each class containing one or more match statements, the match statements being one of a stand-alone matching rule and a matching rule in an access control list (ACL) defining one or more matching rules, the method comprising the steps of:
- generating a super class that contains all of the matching rules associated with the classes specified by the policy and that contains for each class a class name that identifies the class, a class criterion associated with the class, and a bitmap representing the matching rules associated with the class;
converting the matching rules of the super class into a single, hierarchical arrangement of lookup tables and associated equivalence sets, the hierarchical arrangement having a plurality of levels including a first level and a final level, the final equivalence set being associated with the final level.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique for classifying a packet in a deterministic number of lookup operations. The technique builds a single “super class” that contains the match criteria for all the rules associated with packet classification. The “super class” is then compiled to produce a series of lookup tables and equivalence sets, including a final lookup table and equivalence set. The final equivalence set is then “post-processed” to associate the entries in the final lookup table with a particular result.
51 Citations
25 Claims
-
1. A method for generating lookup tables and a final equivalence set for use in classifying a network packet in accordance with a policy that specifies one or more classes, each class containing one or more match statements, the match statements being one of a stand-alone matching rule and a matching rule in an access control list (ACL) defining one or more matching rules, the method comprising the steps of:
-
generating a super class that contains all of the matching rules associated with the classes specified by the policy and that contains for each class a class name that identifies the class, a class criterion associated with the class, and a bitmap representing the matching rules associated with the class; converting the matching rules of the super class into a single, hierarchical arrangement of lookup tables and associated equivalence sets, the hierarchical arrangement having a plurality of levels including a first level and a final level, the final equivalence set being associated with the final level.
-
-
2. A method for generating lookup tables and a final equivalence set for use in classifying a network packet in accordance with a policy that specifies one or more classes, each class containing one or more match statements, the match statements being one of a stand-alone matching rule and a matching rule in an access control list (ACL) defining one or more matching rules, the method comprising the steps of:
-
generating a super class that contains all of the matching rules associated with the classes specified by the policy; and converting the matching rules of the super class into a single, hierarchical arrangement of lookup tables and associated equivalence sets, the hierarchical arrangement having a plurality of levels including a first level and a final level; generating a first-level lookup table and a first-level equivalence set for a network packet section using the matching rules of the super class; merging the first-level equivalence sets to produce one or more next-level lookup tables and next-level equivalence sets; and merging the equivalence sets for each level to produce one or more next-level lookup tables and next-level equivalence sets until a lookup table and equivalence set associated with final level is produced. - View Dependent Claims (3, 4, 5, 6, 7)
-
-
8. A method for generating lookup tables, a final equivalence set and a results table for use in classifying a network packet in accordance with one or more match statements, the match statements being one of a stand-alone matching rule and a matching rule in an access control list (ACL) defining one or more matching rules, the method comprising the steps of:
-
generating a super class that contains all of the matching rules; converting the matching rules of the super class into a single, hierarchical arrangement of lookup tables and equivalence sets, the hierarchical arrangement having a plurality of levels including a first level and a final level, the final equivalence set being associated with the equivalence set of the final level; and generating the results table from the entries in the final equivalence set. - View Dependent Claims (9, 10)
-
-
11. A method for classifying a network packet in accordance with one or more match statements, the match statements being one of a stand-alone matching rule and a matching rule in an access control list (ACL) defining a plurality of matching rules, the method comprising the steps of:
-
generating a super class that contains all of the matching rules; converting the matching rules of the super class into a single, hierarchical arrangement of lookup tables, the hierarchical arrangement having a plurality of levels including a first level and a final level, a final equivalence set being associated with the final level; generating a results table from entries in the final equivalence set; applying the network packet to the lookup tables to generate an outcome index; and applying the outcome index to the results table to determine a result that applies to the network packet. - View Dependent Claims (12, 13, 14)
-
-
15. A network device for classifying a network packet in accordance with one or more match statements, the match statements being one of a stand-alone matching rule and a matching rule in an access control list (ACL) defining a plurality of matching rules, the network device comprising:
-
means for generating a super class that contains all of the matching rules; means for converting the matching rules of the super class into a single, hierarchical arrangement of lookup tables and equivalence sets, the hierarchical arrangement having a plurality of levels including a first level and a final level, a final equivalence set being associated with the final level; means for generating a results table from entries in the final equivalence set; means for applying the network packet to the lookup tables associated with the first level to generate an outcome index; and means for applying the outcome index to the results table to determine a result that applies to the network packet.
-
-
16. A method for generating lookup tables, the method comprising the steps of:
-
generating a super class that contains a plurality of matching rules for sorting incoming packets into classes; converting the plurality of matching rules of the super class into a single, hierarchical arrangement of lookup tables and equivalence sets; and generating a final lookup table in response to the hierarchical arrangement of lookup tables and equivalence sets. - View Dependent Claims (17)
-
-
18. An apparatus for generating lookup tables, comprising:
-
means for generating a super class that contains a plurality of matching rules for sorting incoming packets into classes; means for converting the plurality of matching rules of the super class into a single, hierarchical arrangement of lookup tables and equivalence sets; and means for generating a final lookup table in response to the hierarchical arrangement of lookup tables and equivalence sets. - View Dependent Claims (19)
-
-
20. A system for generating lookup tables, comprising:
-
a processor configured to generate a super class that contains a plurality of matching rules for sorting incoming packets into classes; the processor further configured to convert the plurality of matching rules of the super class into a single, hierarchical arrangement of lookup tables and equivalence sets; the processor further configured to generate a final lookup table in response to the hierarchical arrangement of lookup tables and equivalence sets; and a memory coupled to the processor, the memory configured to store the final lookup table.
-
-
21. A computer readable media comprising:
-
the computer readable media containing computer executable instructions for execution in a processor for the practice of generating lookup tables, comprising, generating a super class that contains a plurality of matching rules for sorting incoming packets into classes; converting the plurality of matching rules of the super class into a single, hierarchical arrangement of lookup tables and equivalence sets; and generating a final lookup table in response to the hierarchical arrangement of lookup tables and equivalence sets.
-
-
22. An apparatus for generating lookup tables, a final equivalence set and a results table for use in classifying a network packet in accordance with one or more match statements, the match statements being one of a stand-alone matching rule and a matching rule in an access control list (ACL) defining a plurality of matching rules, comprising:
-
a processor; a memory coupled to the processor; and means for generating a super class that contains all of the matching rules; whereby the processor is configured to a) convert the matching rules of the super class into a single, hierarchical arrangement of lookup tables and equivalence sets, the hierarchical arrangement having a plurality of levels including a first level and a final level, the final equivalence set being associated with the final level, b) place the lookup tables and final equivalence set in the memory, and c) generate the results table from entries in the final equivalence set. - View Dependent Claims (23)
-
-
24. A computer readable media containing computer executable instructions for execution in a processor for generating lookup tables, a final equivalence set and a results table for use in classifying a network packet in accordance with one or more match statements, the match statements being one of a stand-alone matching rule and a matching rule in an access control list (ACL) defining one or more matching rules, the instructions adapted for:
-
generating a super class that contains all of the matching rules; converting the matching rules of the super class into a single, hierarchical arrangement of lookup tables and equivalence sets, the hierarchical arrangement having a plurality of levels including a first level and a final level, the final equivalence set being associated with the equivalence set of the final level; and generating the results table from the entries in the final equivalence set.
-
-
25. A computer readable media containing computer executable instructions for execution in a processor for classifying a network packet in accordance with one or more match statements, the match statements being one of a stand-alone matching rule and a matching rule in an access control list (ACL) defining a plurality of matching rules, the instructions adapted for:
-
generating a super class that contains all of the matching rules; converting the matching rules of the super class into a single, hierarchical arrangement of lookup tables, the hierarchical arrangement having a plurality of levels including a first level and a final level, a final equivalence set being associated with the final level; generating a results table from entries in the final equivalence set; applying the network packet to the lookup tables to generate an outcome index; and applying the outcome index to the results table to determine a result that applies to the network packet.
-
Specification