Bounded index extensible hash-based IPv6 address lookup method
First Claim
1. A method for an intermediate network node to efficiently lookup routing information associated with a network address, the method comprising:
- selecting a lookup table from a set of one or more lookup tables in the intermediate network node, each lookup table being associated with a different range of subnet mask lengths, wherein the selected lookup table is associated with the largest subnet mask lengths not yet searched;
searching the selected lookup table based on the value of the network address using a bounded number of dependent lookups to locate a memory location of the network address'"'"'s routing information;
if the network address is found in the selected lookup table, providing the memory location of the network address'"'"'s routing information from the selected lookup table;
if the network address is not found in the selected lookup table, then repeating the steps of selecting and searching the selected lookup table, until the memory location of the network address'"'"'s routing information is found or until all the lookup tables have been searched;
if the network address is found in any of the lookup tables, providing the memory location of the network address'"'"'s routing information from one of the lookup tables; and
if the network address is not found in any of the lookup tables, searching an MTRIE for the memory location of the network address'"'"'s routing information and providing the memory location of the network address'"'"'s routing information from the MTRIE.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention provides a technique for efficiently looking up address-routing information in an intermediate network node, such as a router. To that end, the node locates routing information stored in its memory using one or more “lookup” tables (LUT) which can be searched using a small, bounded number of dependent lookups, thereby reducing the number of dependent lookups conventionally performed. The LUTs are arranged so each table provides routing information for network addresses whose subnet mask lengths are within a different range (“stride”) of mask lengths. According to the technique, the node locates a network address'"'"'s routing information by searching the LUTs, in order of decreasing prefix lengths, until the routing information is found. Preferably, several tables are searched in parallel. A match in a LUT may further point to a small MTRIE that enables the final bits of a prefix to be matched. That final MTRIE is searched using a relatively small, bounded number of dependent lookups.
-
Citations
22 Claims
-
1. A method for an intermediate network node to efficiently lookup routing information associated with a network address, the method comprising:
- selecting a lookup table from a set of one or more lookup tables in the intermediate network node, each lookup table being associated with a different range of subnet mask lengths, wherein the selected lookup table is associated with the largest subnet mask lengths not yet searched;
searching the selected lookup table based on the value of the network address using a bounded number of dependent lookups to locate a memory location of the network address'"'"'s routing information;
if the network address is found in the selected lookup table, providing the memory location of the network address'"'"'s routing information from the selected lookup table;
if the network address is not found in the selected lookup table, then repeating the steps of selecting and searching the selected lookup table, until the memory location of the network address'"'"'s routing information is found or until all the lookup tables have been searched;
if the network address is found in any of the lookup tables, providing the memory location of the network address'"'"'s routing information from one of the lookup tables; and
if the network address is not found in any of the lookup tables, searching an MTRIE for the memory location of the network address'"'"'s routing information and providing the memory location of the network address'"'"'s routing information from the MTRIE. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
- selecting a lookup table from a set of one or more lookup tables in the intermediate network node, each lookup table being associated with a different range of subnet mask lengths, wherein the selected lookup table is associated with the largest subnet mask lengths not yet searched;
-
12. An apparatus adapted to lookup routing information associated with a network address using a bounded number of dependent lookups, the apparatus comprising:
-
means for selecting a lookup table from a set of one or more lookup tables in the intermediate network node, each lookup table being associated with a different range of subnet mask lengths, wherein the selected lookup table is associated with the largest subnet mask lengths not yet searched; means for searching the selected lookup table based on the value of the network address to locate a memory location of the network address'"'"'s routing information; means for searching an MTRIE for the memory location of the network address'"'"'s routing information only if the network address is not found in any of the lookup tables; and means for providing the memory location of the network address'"'"'s routing information. - View Dependent Claims (13, 14)
-
-
15. A computer-readable media including instructions for execution by a processor, the instructions for a method of efficiently lookup routing information associated with a network address, the method comprising the steps:
- selecting a lookup table from a set of one or more lookup tables in the intermediate network node, each lookup table being associated with a different range of subnet mask lengths, wherein the selected lookup table is associated with the largest subnet mask lengths not yet searched;
searching the selected lookup table based on the value of the network address using a bounded number of dependent lookups to locate a memory location of the network address'"'"'s routing information;
if the network address is found in the selected lookup table, providing the memory II location of the network address'"'"'s routing information from the selected lookup table;
if the network address is not found in the selected lookup table, then repeating the steps of selecting and searching the selected lookup table, until the memory location of 14 the network address'"'"'s routing information is found or until all the lookup tables have been searched;
if the network address is found in any of the lookup tables, providing the memory location of the network address'"'"'s routing information from one of the lookup tables; and
if the network address is not found in any of the lookup tables, searching an MTRIE for the memory location location of the network address'"'"'s routing information and providing the memory location of the network address'"'"'s routing information from the MTRIE.
- selecting a lookup table from a set of one or more lookup tables in the intermediate network node, each lookup table being associated with a different range of subnet mask lengths, wherein the selected lookup table is associated with the largest subnet mask lengths not yet searched;
-
16. An intermediate network node adapted to lookup routing information associated with a network address using a bounded number of dependent lookups, the node comprising:
-
a network interface for receiving a packet containing the network address; a memory configured to store; (a) at least one first-level hash table having a plurality of indexed hash lines, each indexed hash line associated with a corresponding second-level table configured to store a memory location of routing information for at least one network address, and (b) at least one MTRIE configured to store a memory location of routing information for at least one network address; and
,a forwarding engine including one or more processing elements configured to lookup the location of the network address'"'"'s associated routing information in the at least one first-level hash table, and only if the location of the network address'"'"'s associated routing information is not found, to lookup the location of the network address'"'"'s associated routing information in the at least one MTRIE. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
Specification