Routers and methods for optimal routing table compression
First Claim
1. A method for compressing a routing table comprising the following steps:
- constructing a binary tree representation of the routing table, the binary tree having nodes representing various routes in the routing table;
assigning next hops to the nodes;
migrating prevalent next hops up the tree according to the following operation;
4 Assignments
0 Petitions
Accused Products
Abstract
A method for compressing a routing table involves constructing a binary tree representation of the routing table. The compression method makes three passes through the tree. In a first pass, the compression method propagates routing information down to the tree leaves. During this pass, the program assigns every leaf node in the tree an associated next hop or an inherited next hop from a higher level ancestral node. In a second pass, the compression method migrates prevalent next hops up the tree. This bottom up pass involves forming a set of next hops at a parent node by supernetting the sets of next hops A and B for a pair of child nodes corresponding to the parent node, according to the following operation:
where A*B is a set of next hops formed at the parent node. In the third pass, the compression method eliminates redundant branches in the tree. This top down pass begins at a parent node and selects a next hop from a parent node. The method then examines a child node branching from the parent node to determine whether the selected next hop is an element of next hops for the child node. If it is, the method eliminates the next hops for the child node. After the tree is restructured by the three-pass process, the compression method converts it back to a new routing table.
-
Citations
24 Claims
-
1. A method for compressing a routing table comprising the following steps:
-
constructing a binary tree representation of the routing table, the binary tree having nodes representing various routes in the routing table;
assigning next hops to the nodes;
migrating prevalent next hops up the tree according to the following operation;
- View Dependent Claims (3, 4)
-
-
2. A method for compressing a routing table comprising the following steps:
-
constructing a binary tree representation of the routing table, the binary tree having nodes representing various routes in the routing node;
assigning next hops to the nodes;
migrating prevalent next hops up the tree, the migrating comprising applying path compression to a series of single branches that begin at a first node and end at a last node, where X represents a set of next hops at the last node and Y represents a set of next hops at the first node, and migrating next hops up the tree according to the following operation;
if XIY =φ
, assign Y at first node and X at last nodeif XIY =φ
, assign XIY at first node and XIY at last nodeeliminating redundant branches in the tree to produce an output tree; and
converting the output tree to a new routing table.
-
-
5. A method for compressing a binary tree representation of a routing table, the binary tree having multiple nodes at multiple levels that represent various routes in the routing table wherein a parent node at one level can branch to zero, one, or two child nodes at a next lower level, some of the nodes having associated next hops, the method comprising the following steps:
-
normalizing the tree by creating new child nodes for parent nodes having only one child node and assigning next hops from the parent nodes to the new child nodes;
migrating prevalent next hops up the tree by supernetting, at parent nodes, sets of the next hops A and B for corresponding pairs of child nodes according to the following operation;
- View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. A method for compressing a binary tree representation of a routing table, the binary tree having multiple nodes at multiple levels that represent various routes in the routing table, wherein a parent node at one level can branch to zero or two child nodes at a next lower level, the method comprising the following steps:
migrating prevalent next hops up the tree according to the following operation;
- View Dependent Claims (12, 13, 14, 15)
-
16. A method for processing a routing table comprising the following steps:
propagating sets of popular next hops from more-specific routes to more-general routes, where more-specific routes are defined by IP addresses with more prefix bits in comparison to IP addresses for more-general routes, by migrating the popular next hops according to the following operation;
-
17. A method for compressing a routing table comprising the following steps:
supernetting sets of popular next hops by migrating the popular next hops according to the following operation;
-
18. A router comprising:
-
a memory to store a routing table;
a processor coupled to the memory to route messages according to routes listed in the routing table; and
a table compressor to compress the routing table stored in the memory, the table compressor constructing a binary tree representation of the routing table and assigning next hops to nodes in the tree, the table compressor migrating prevalent next hops up the tree according to the following operation;
-
-
19. A router comprising;
-
a memory to store a routing table;
a processor coupled to the memory to route messages according to routes listed in the routing table;
a table compressor to compress the routing table stored in the memory, the table compressor constructing a binary representation of the routing table and assigning next hops to nodes in the tree, he table compressor migrating prevalent next hops up the tree and eliminating redundant branches in the tree, the table compressor converting the tree back to a compressed routing table; and
wherein the table compressor applies a path compression technique to a series of single branches that begin at a first node and end at a last node, where X represents a set of next hops at the last node and Y represents a set of next hops at the first node, the table compressor migrating next hops up the tree according to the following operation;
if XIY=φ
, assign Y at first node and X at last nodeif XIY=φ
, assign XIY at first node and XIY at last node.- View Dependent Claims (20)
-
-
21. A router comprising:
-
a memory to store a routing table;
a processor coupled to the memory to route messages according to routes listed in the routing table; and
a table compressor to compress the table stored in the memory, the table compressor propagating sets of popular next hops from more-specific routes to more-general routes, where more-specific routes are defined by IP addresses with more prefix bits in comparison to IP addresses for more-general routes;
the table compressor migrating the popular next hops according to the following operation;
-
-
22. A computer-readable medium comprising computer-executable instructions for performing the following steps:
-
normalizing the tree by creating new child nodes for parent nodes having only one child node and assigning next hops from the parent nodes to the new child nodes;
migrating prevalent next hops up the tree by supernetting, at parent nodes, sets of the next hops A and B for corresponding pairs of child nodes according to the following operation;
-
-
23. A computer-readable medium comprising computer-executable instructions for performing the following steps:
migrating prevalent next hops up the tree according to the following operation;
-
24. A computer-readable medium comprising computer-executable instructions for performing the following steps:
-
propagating sets of popular next hops from more-specific routes to more-general routes, where more-specific routes are defined by IP addresses with more prefix bits in comparison to IP addresses for more-general routes;
migrating the popular next hops according to the following operation;
-
Specification