Dynamic route profile storage in a hardware trie routing table
First Claim
1. A method for managing a routing table of a networking device, the method comprising:
- maintaining a plurality of pivot tiles in memory for storing pivot entries each comprising a plurality of received route prefixes of a routing table, each of the plurality of pivot tiles associated with a hash function and a prefix base width;
selecting a first of the plurality of pivot tiles for grooming; and
grooming the first of the plurality of pivot tiles by;
relocating at least a first pivot entry from the first of the plurality of pivot tiles to a Ternary Content-Addressable Memory (TCAM);
moving at least a second pivot entry from the first of the plurality of pivot tiles to a second of the plurality of pivot tiles; and
returning the first of the plurality of pivot tiles to a shared pool of pivot tiles for reallocation when the plurality of received route prefixes of the routing table stored in the first of the plurality of pivot tiles are removed.
1 Assignment
0 Petitions
Accused Products
Abstract
The present disclosure involves systems and methods for managing a trie routing table for a networking device of a communication or computer network. In one implementation, the networking device may utilize a dynamic algorithm for associating hashing functions with pivot tiles of the routing table to improve hash utilization and avoid hash collisions. Further, route prefixes may be relocated from pivot tiles in an attempt to free the tiles for reallocation to other prefix base width or may be relocated to other possible pivot tiles or to a general storage space when a hash collision is detected. This provides for even distribution of pivots within tiles which have base widths in range of a pivot route. The above implementations may occur together or separately to improve the operation of the networking device and provide faster route lookup.
580 Citations
20 Claims
-
1. A method for managing a routing table of a networking device, the method comprising:
-
maintaining a plurality of pivot tiles in memory for storing pivot entries each comprising a plurality of received route prefixes of a routing table, each of the plurality of pivot tiles associated with a hash function and a prefix base width; selecting a first of the plurality of pivot tiles for grooming; and grooming the first of the plurality of pivot tiles by; relocating at least a first pivot entry from the first of the plurality of pivot tiles to a Ternary Content-Addressable Memory (TCAM); moving at least a second pivot entry from the first of the plurality of pivot tiles to a second of the plurality of pivot tiles; and returning the first of the plurality of pivot tiles to a shared pool of pivot tiles for reallocation when the plurality of received route prefixes of the routing table stored in the first of the plurality of pivot tiles are removed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A networking device comprising:
-
at least one communication port for receiving route prefixes of a network for inclusion in a trie routing table; a processing device; and a computer-readable medium connected to the processing device configured to store a plurality of pivot tiles in memory for maintaining pivot entries each comprising a plurality of received route prefixes and associated with a hash function and a prefix base-width and instructions that, when executed by the processing device, causes the device to perform operations comprising; selecting a first of the plurality of pivot tiles for grooming, and grooming the first of the plurality of pivot tiles by; relocating at least a first pivot entry from the first of the plurality of pivot tiles to a Ternary Content-Addressable Memory (TCAM); moving at least a second pivot entry from the first of the plurality of pivot tiles to a second of the plurality of pivot tiles; and returning the first of the plurality of pivot tiles to a shared pool of pivot tiles for reallocation when the plurality of received route prefixes of the trie routing table stored in the first of the plurality of pivot tiles are removed. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification