Forwarding tree having multiple bit and intermediate bit pattern comparisons
First Claim
1. A method comprising:
- identifying a key within a network packet;
traversing nodes of a forwarding tree within a network device, wherein each of the nodes specifies a primary path control bit, and at least one secondary path control bit, by testing two or more path control bits within the key per each of the traversed nodes, including testing a bit of the key corresponding to the specified primary path control bit, and testing a bit of the key corresponding to the specified secondary path control bit, wherein values of the two or more path control bits in the key determine a path traversed along the tree; and
taking an action on the packet based on next hop data associated with an end node of the traversed path.
0 Assignments
0 Petitions
Accused Products
Abstract
Principles of the invention are directed to techniques for allowing a router forwarding packets within a computer network to perform two or more forwarding tree decisions per memory access. The router may implement forwarding information in the form of a radix tree having a number of nodes, and received packets may contain keys identifying a packet destination. The router may traverse the tree by testing two or more path control bits within the key per each of the traversed nodes. The values of the path control bits in the key determine the path traversed along the tree. The router also stores intermediate bit patterns at each node and tests intermediate bits in the key to determine whether a particular node is the best match to the routing prefix contained in the key, thereby eliminating a need to backtrack up the tree.
-
Citations
37 Claims
-
1. A method comprising:
-
identifying a key within a network packet; traversing nodes of a forwarding tree within a network device, wherein each of the nodes specifies a primary path control bit, and at least one secondary path control bit, by testing two or more path control bits within the key per each of the traversed nodes, including testing a bit of the key corresponding to the specified primary path control bit, and testing a bit of the key corresponding to the specified secondary path control bit, wherein values of the two or more path control bits in the key determine a path traversed along the tree; and taking an action on the packet based on next hop data associated with an end node of the traversed path. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 37)
-
-
22. A device comprising:
-
an input port for receiving a network packet containing a key; a packet-forwarding engine that traverses nodes of a forwarding tree by testing two or more path control bits in the key per each of the traversed nodes, wherein values of the two or more path control bits in the key determine a path traversed along the tree, and wherein at least one of the nodes is linked to at least three child nodes of the at least one node in the forwarding tree; and one or more output ports for forwarding the packet according to a forwarding next hop associated with an end node of the traversed path. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. A computer-readable medium comprising instructions for causing a programmable processor to:
-
identify a key within a network packet; traverse nodes of a forwarding tree within a network packet, wherein each of the nodes specifies a primary path control bit, and at least one secondary path control bit, by testing two or more path control bits within the key per each of the traversed nodes, including testing a bit of the key corresponding to the specified primary path control bit, and testing a bit of the key corresponding to the specified secondary path control bit, wherein values of the two or more path control bits in the key determine a path traversed along the tree; and forward the packet according to a forwarding next hop associated with an end node of the traversed path. - View Dependent Claims (36)
-
Specification