Network router search engine using compressed tree forwarding table
AssigneeRedstone Communications, Inc.
InventorsMichael E. Lipman, Russell L. Heyda
Life of this patent
Estimating the term…
Loading patent…
AssigneeRedstone Communications, Inc.
InventorsMichael E. Lipman, Russell L. Heyda
Estimating the term…
Network routing apparatus employs multi-level tree data structures in a centralized routing table and in distributed forwarding tables. Each level of each structure is associated with a different field of a network address appearing in received packets. Pointers in each structure are used to identify either an address of a next hop network, or a next-level tree to be examined for a next-hop address. An uncompressed tree routing table uses directly addressed trees in order to simplify the storage and retrieval of pointers, and the next-tree pointers directly identify next trees. Compressed tree forwarding tables are generated from the uncompressed routing table by reducing the number of pointers stored at one or more levels to substantially the number of unique next hop addresses associated with network addresses at that level. A single mapping table maps pointer values at one level to the locations of trees at the next level in the compressed trees. Next hop address lookup logic performs lookups in accordance with the structure of the compressed trees. Also, the lookup logic stores and selectively operates on multiple forwarding tables in order to provide support for virtual router operation.
Apparatus for identifying a next hop address of a network to which packets should be forwarded, the apparatus comprising a memory storing a forwarding table, the forwarding table comprising a first-level table having entries directly addressable by a first field of address bits from an address field of the packets, and a second-level table having entries associatively addressable by a second field of address bits from the address field of the packets, the first-level table being operative to provide (i) a next hop index indicative of a next hop network address for those packets having addresses for which the first field of address bits is sufficient to determine the next hop address, and (ii) a pointer to the second-level table for those packets having addresses for which the first field of address bits is not sufficient to determine the next hop address, and the second-level table being operative to provide a next hop index indicative of a next hop network address for those packets having address for which the first and second fields of address bits are sufficient to determine the next hop address.
A method of operating a network device, comprising the steps of:
Apparatus used to determine next hop addresses of networks to which data packets are to be forwarded, each data packet including an address field containing an address indicative of a network node to which the packet is ultimately to be delivered, the apparatus including memory storing a data structure, the data structure comprising:
Apparatus used to determine the addresses of next hop networks to which data packets are to be forwarded, each data packet including an address field having an address indicative of a network to which the packet is ultimately to be delivered, the apparatus including a memory storing a data structure, the data structure comprising a plurality of pointers, the pointers being associated with addresses of packets and being divided into two or more classes according to fields of the addresses with which the pointers are associated, a first class of pointers being level-1 pointers associated with a first field containing a first number of the most significant address bits of the address, the level-1 pointers being arranged in a level-1 binary tree indexed by the first field of the address, a second class of pointers being level-2 pointers associated with a second sub-field containing a second number of the next most significant address bits of the address, the level-2 pointers being divided into a plurality of level-2 binary trees each being indexed by the second field of the address, the level-1 pointers including next hop pointers and next tree pointers, each next hop pointer identifying the address of a network to which packets having an address whose first field is equal to the index of the next hop pointer in the level-1 binary tree should be forwarded, and each next tree pointer identifying a level-2 binary tree which should be used to determine the address of a network to which packets having an address whose first field is equal to the index of the next tree pointer in the level-1 binary tree should be forwarded, each level-2 binary tree including next hop pointers each identifying the address of a network to which packets having an address whose second field is equal to the index of the next hop pointer in the level-2 binary tree and whose first field is equal to the index of the next tree pointer in the level-1 binary tree that identifies the level-2 tree containing the next hop pointer should be forwarded.
A method of operating a network device, comprising the steps of:
Apparatus used to determine the addresses of next hop networks to which data packets are to be forwarded, comprising:
Dependencies are inferred from the claim text.