Method and apparatus for an incremental update of a longest prefix match lookup table
First Claim
1. A method for updating a lookup table comprising the steps of:
- providing access to a first set of routes stored in nodes of a first subtree within a tree, the first subtree being accessed through a first pointer to a first subtree root node of the first subtree;
providing a second subtree disconnected from the tree, the second subtree being accessed through a second pointer to a second subtree root node of the second subtree and being initially inaccessible via the tree;
storing a second set of routes in nodes of the second subtree while access via the tree is provided to the first set of routes stored in the first subtree by the first pointer, the second set of routes being a copy of the first set of routes with at least a new route added or an existing route deleted; and
switching access to the second set of routes stored in the second subtree by replacing the first pointer to the first subtree root node with the second pointer to the second subtree root node to update the tree by replacing the first subtree with the second subtree.
4 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for performing an incremental update of a lookup table while the lookup table is available for searching is presented. To add or delete a route, a second set of routes is stored in a second memory space in the lookup table, while access is provided to the first set of routes stored in a first memory space in the lookup table. Access is provided to the first memory space through a first pointer stored in a subtree entry. After storing the second set of routes in the second memory space, access is switched to the first set of routes in the first memory space by replacing the first pointer stored in the subtree entry with a second pointer to the second memory space.
-
Citations
17 Claims
-
1. A method for updating a lookup table comprising the steps of:
-
providing access to a first set of routes stored in nodes of a first subtree within a tree, the first subtree being accessed through a first pointer to a first subtree root node of the first subtree; providing a second subtree disconnected from the tree, the second subtree being accessed through a second pointer to a second subtree root node of the second subtree and being initially inaccessible via the tree; storing a second set of routes in nodes of the second subtree while access via the tree is provided to the first set of routes stored in the first subtree by the first pointer, the second set of routes being a copy of the first set of routes with at least a new route added or an existing route deleted; and switching access to the second set of routes stored in the second subtree by replacing the first pointer to the first subtree root node with the second pointer to the second subtree root node to update the tree by replacing the first subtree with the second subtree. - View Dependent Claims (2, 3, 4)
-
-
5. An apparatus for updating a lookup table comprising:
-
a first subtree within a tree, the first subtree including a first subtree root node and a first set of routes stored in nodes of the first subtree, the first set of routes being initially accessible via the tree; a first pointer to the first subtree root node; a second subtree initially disconnected from the tree, the second subtree including a second subtree root node and a second set of routes stored in nodes of the second subtree, the second set of routes being a copy of the first set of routes with at least a new route added or an existing route deleted and being initially inaccessible via the tree; a second pointer to the second subtree root node; and logic to switch access to the second set of routes by replacing in the tree the first pointer to the first subtree root node with the second pointer to the second subtree root node to update the tree by replacing the first subtree with the second subtree. - View Dependent Claims (6, 7, 8)
-
-
9. An apparatus for updating a lookup table comprising:
-
a first pointer to a first subtree root node of a first subtree within a tree, the first pointer providing access to a first set of routes stored in nodes of the first subtree; a second pointer to a second subtree root node of a second subtree disconnected from the tree, the second pointer providing access to a second set of routes stored in nodes of the second subtree, the second set of routes being a copy of the first set of routes with at least a new route added or an existing route deleted and being initially inaccessible via the tree while access via the tree is provided to the first set of routes stored in the first subtree by the first pointer; and logic to provide access to the second set of routes by replacing the first pointer to the first subtree root node with the second pointer to the second subtree root node to update the tree by replacing the first subtree with the second subtree. - View Dependent Claims (10, 11, 12)
-
-
13. A method for updating a lookup table, the lookup table providing a longest prefix match for a destination address, comprising the steps of:
-
providing access to a first set of routes stored in nodes of a first subtree within a tree, the first subtree being accessed through a first pointer to a first subtree root node of the first subtree; providing a second subtree disconnected from the tree, the second subtree being accessed through a second pointer to a second subtree root node of the second subtree and being initially inaccessible via the tree; storing a second set of routes in nodes of the second subtree while access via the tree is provided to the first set of routes stored in the first subtree by the first pointer, the second set of routes being a copy of the first set of routes with at least a new route added or an existing route deleted; and switching access to the second set of routes stored in the second subtree by replacing the first pointer to the first subtree root node with the second pointer to the second subtree root node to update the tree by replacing the first subtree with the second subtree. - View Dependent Claims (14, 15, 16, 17)
-
Specification