Compiler with mask nodes
First Claim
1. A method comprising:
- building a decision tree structure including a plurality of nodes using a classifier table having a plurality of rules representing a search space, the plurality of rules having at least one field, each node representing a subset of the search space;
building the decision tree structure including, at each node, (a) dividing the subset of the search space represented by the node into smaller subsets by (i) determining a node type for the node, the node type determination enabling a combination of node types in the decision tree structure, (ii) selecting one or more fields of the at least one field and selecting one or more bits of the selected one or more fields based on the node type determined for the node, a node type of a parent node of the node, and a consumed bit indicator for the node, the consumed bit indicator specifying all bits consumed for search space division by each ancestor of the node, and (iii) cutting the node into child nodes on the selected one or more bits to create the smaller subsets and allocating the created smaller subsets to the child nodes;
(b) updating the consumed bit indicator to specify the selected one or more bits as utilized and associating the updated consumed bit indicator with each of the child nodes; and
storing the built decision tree structure.
6 Assignments
0 Petitions
Accused Products
Abstract
A packet classification system, methods, and corresponding apparatus are provided for enabling packet classification. A processor of a security appliance coupled to a network uses a classifier table having a plurality of rules, the plurality of rules having at least one field, to build a decision tree structure including a plurality of nodes, the plurality of nodes including a subset of the plurality of rules. The plurality of nodes may be stride nodes, mask nodes, or a combination thereof. A mask node may remove restrictions of stride nodes, such as markers and consumption of contiguous bits. As long as a bit of a field is a non-consumed bit, the bit may be used for cutting a field in a mask node. An advantage of a mask node is that the mask node may consume fewer resources (e.g., memory) than a stride node.
101 Citations
30 Claims
-
1. A method comprising:
-
building a decision tree structure including a plurality of nodes using a classifier table having a plurality of rules representing a search space, the plurality of rules having at least one field, each node representing a subset of the search space; building the decision tree structure including, at each node, (a) dividing the subset of the search space represented by the node into smaller subsets by (i) determining a node type for the node, the node type determination enabling a combination of node types in the decision tree structure, (ii) selecting one or more fields of the at least one field and selecting one or more bits of the selected one or more fields based on the node type determined for the node, a node type of a parent node of the node, and a consumed bit indicator for the node, the consumed bit indicator specifying all bits consumed for search space division by each ancestor of the node, and (iii) cutting the node into child nodes on the selected one or more bits to create the smaller subsets and allocating the created smaller subsets to the child nodes; (b) updating the consumed bit indicator to specify the selected one or more bits as utilized and associating the updated consumed bit indicator with each of the child nodes; and storing the built decision tree structure. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus comprising:
-
a memory; a processor coupled to the memory, the processor configured to build a decision tree structure including a plurality of nodes using a classifier table having a plurality of rules representing a search space, the plurality of rules having at least one field, each node representing a subset of the search space; to build the decision tree structure, the processor further configured to, at each node, (a) divide the subset of the search space represented by the node into smaller subsets by (i) determining a node type for the node, the node type determination enabling a combination of node types in the decision tree structure, (ii) selecting one or more fields of the at least one field and selecting one or more bits of the selected one or more fields based on the node type determined for the node, a node type of a parent node of the node, and a consumed bit indicator for the node, the consumed bit indicator specifying all bits consumed for search space division by each ancestor of the node, and (iii) cutting the node into child nodes on the selected one or more bits to create the smaller subsets and allocating the created smaller subsets to the child nodes; (b) update the consumed bit indicator to specify the selected one or more bits as utilized and associating the updated consumed bit indicator with each of the child nodes; and store the built decision tree structure in the memory. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A non-transitory computer-readable medium having encoded thereon a sequence of instructions which, when loaded and executed by a processor, causes the processor to:
-
build a decision tree structure including a plurality of nodes using a classifier table having a plurality of rules representing a search space, the plurality of rules having at least one field, each node representing a subset of the search space; build the decision tree structure, the sequence of instructions further causing the processor to, at each node, (a) divide the subset of the search space represented by the node into smaller subsets by (i) determining a node type for the node, the node type determination enabling a combination of node types in the decision tree structure, (ii) selecting one or more fields of the at least one field and selecting one or more bits of the selected one or more fields based on the node type determined for the node, a node type of a parent node of the node, and a consumed bit indicator for the node, the consumed bit indicator specifying all bits consumed for search space division by each ancestor of the node, and (iii) cutting the node into child nodes on the selected one or more bits to create the smaller subsets and allocating the created smaller subsets to the child nodes; (b) update the consumed bit indicator to specify the selected one or more bits as utilized and associating the updated consumed bit indicator with each of the child nodes; and store the built decision tree structure in a memory. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification