M-trie based packet processing
First Claim
Patent Images
1. A method for routing or switching data packets, comprising the computer-implemented steps of:
- receiving a data packet at an input interface on a router or switch;
looking up information in the header of said data packet in an expanded M-trie data structure, wherein said expanded M-trie data structure is organized as a multi-level tree including a root node, inferior nodes, and terminal nodes, wherein each node stores values for an address and an opcode, wherein said opcode specifies;
a particular field of a plurality of fields in the header of said data packet;
an operation that is to be performed on the data stored in said particular field,wherein said operation is one of a plurality of operations that said opcode can specify; and
terminating said step of looking up information; and
routing said data packet at one or more output interfaces on said router or switch bases on the looked up information.
2 Assignments
0 Petitions
Accused Products
Abstract
In an embodiment, different aspects of a packet header and data included in the packet are singled out for attention, rather that just the four byte IP destination address. Different information is included in nodes of the trie that enables matching and branching on different header fields. In an embodiment, the ACL of a configuration file in a router or switch is compiled into a trie data structure located in the memory of the router or switch. In an embodiment, a trie data structure is used to map a multicast packet header by a sequence of nodes that match on destination address or source address.
94 Citations
30 Claims
-
1. A method for routing or switching data packets, comprising the computer-implemented steps of:
-
receiving a data packet at an input interface on a router or switch; looking up information in the header of said data packet in an expanded M-trie data structure, wherein said expanded M-trie data structure is organized as a multi-level tree including a root node, inferior nodes, and terminal nodes, wherein each node stores values for an address and an opcode, wherein said opcode specifies; a particular field of a plurality of fields in the header of said data packet; an operation that is to be performed on the data stored in said particular field, wherein said operation is one of a plurality of operations that said opcode can specify; and terminating said step of looking up information; and routing said data packet at one or more output interfaces on said router or switch bases on the looked up information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. An apparatus for routing or switching data packets, comprising:
-
means for storing in memory an M-trie data structure, said data structure organized as a multi-level tree having a set of nodes, including a root node, inferior nodes and terminal nodes, wherein each node stores values for an address and an opcode, wherein said opcode specifies; a particular field of a plurality of fields of data packet headers; and an operation that is to be performed on the data stored in said particular field, wherein said operation is one of a plurality of operations that said opcode can specify; means for receiving a data packet at an input interface on a router or switch, wherein the data packet includes information in at least a header with at least a field that is used by said M-trie data structure to indicate an action for said device to perform in order to select a leaf associated with said M-trie data structure; means for looking up the information, wherein the looking up includes performing the action; and means for routing said data packet at one or more output interfaces on said router or said switch based on the looked up information.
-
-
16. A method for routing or switching data packets, comprising the computer-implemented steps of:
-
storing in memory an M-trie data structure, said data structure organized as a multi-level tree having a set of nodes, including a root node, inferior nodes and terminal nodes, wherein each node stores values for an address and an opcode, wherein said opcode specifies; a particular field of a plurality of fields of data packet headers; and an operation that is to be performed on the data stored in said particular field, wherein said operation is one of a plurality of operations that said opcode can specify; receiving a data packet at an input interface on a router or switch, wherein the data packet includes information in at least a header with at least a field that is used by said M-trie data structure to indicate an action; and
routing said data packet at one or more output interfaces on said router or switch based on the looked up information for a router to perform in order to select a leaf associated with said M-trie data structure;looking up the information, wherein the looking up includes performing the action; and routing said data packet at one or more output interfaces on said router or switch based on the looked up information. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A computer readable memory storing a program for performing a method for routing or switching data packets, comprising:
-
storing in memory an M-trie data structure, said data structure organized as a multi-level tree having a set of nodes, including a root node, inferior nodes and terminal nodes, wherein each node stores values for an address and an opcode, wherein said opcode specifies; a particular field of a plurality of fields of data packet headers; and an operation that is to be performed on the data stored in said particular field, wherein said operation is one of a plurality of operations that said opcode can specify; receiving a data packet at an input interface on a router or switch, wherein the data packet includes information in at least a header with at least a field that is used by said M-trie data structure to indicate an action for a router to perform in order to select a leaf associated with said M-trie data structure; looking up the information, wherein the looking up includes performing the action; and routing said data packet at one or more output interfaces on said router or said switch based on the looked up information. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30)
-
Specification