Sliced routing table management
First Claim
1. A computer program product for hash-based routing table management in a distributed network switch comprising a plurality of switch modules including a first switch module, the computer program product comprising:
- a non-transitory computer-readable medium having computer-readable program code embodied therewith, the computer-readable program code executable by one or more computer processors to;
receive, by the first switch module, a first frame having a source address and a destination address, wherein the first switch module comprises a plurality of bridge elements and a routing table, wherein the routing table in the first switch module is shared among the plurality of bridge elements in the first switch module and includes a plurality of sets of buckets, wherein each set of buckets is associated with a respective hash function of a plurality of distinct hash functions and is divided into a plurality of slices of buckets, each slice having a respective property and including one or more buckets, each bucket storing one or more routing entries, wherein each slice of each set of buckets is accessible in parallel;
upon determining that the routing table in the first switch module does not include any routing entry for an address selected from the source address and the destination address of the first frame, generate, in the routing table, a routing entry for the selected address, based on routing information determined for the selected address and based further on at least one hash function of the plurality of hash functions and at least one property of the respective properties of the plurality of slices, wherein the generated routing entry stores a routing key included within a header of the first frame; and
forward the first frame based on the determined routing information and to a second switch module of the distributed network switch, the second switch module having a routing table, wherein the second switch module is operable to, upon determining that the routing table in the second switch module does not include any routing entry for the selected address, generate, in the routing table in the second switch module, a routing entry for the selected address, based on routing information determined for the selected address and based further on at least one hash function associated with the routing table of the second switch module.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are provided for hash-based routing table management in a distributed network switch. A frame having a source address and a destination address is received. If no routing entry for the source address is found in a routing table of a switch module in the distributed network switch, where the routing table is divided into slices of buckets, then routing information is determined for the source address and a routing entry is generated. The routing table is modified to include the routing entry and based on a set of hash functions and properties of the slices.
70 Citations
25 Claims
-
1. A computer program product for hash-based routing table management in a distributed network switch comprising a plurality of switch modules including a first switch module, the computer program product comprising:
a non-transitory computer-readable medium having computer-readable program code embodied therewith, the computer-readable program code executable by one or more computer processors to; receive, by the first switch module, a first frame having a source address and a destination address, wherein the first switch module comprises a plurality of bridge elements and a routing table, wherein the routing table in the first switch module is shared among the plurality of bridge elements in the first switch module and includes a plurality of sets of buckets, wherein each set of buckets is associated with a respective hash function of a plurality of distinct hash functions and is divided into a plurality of slices of buckets, each slice having a respective property and including one or more buckets, each bucket storing one or more routing entries, wherein each slice of each set of buckets is accessible in parallel; upon determining that the routing table in the first switch module does not include any routing entry for an address selected from the source address and the destination address of the first frame, generate, in the routing table, a routing entry for the selected address, based on routing information determined for the selected address and based further on at least one hash function of the plurality of hash functions and at least one property of the respective properties of the plurality of slices, wherein the generated routing entry stores a routing key included within a header of the first frame; and forward the first frame based on the determined routing information and to a second switch module of the distributed network switch, the second switch module having a routing table, wherein the second switch module is operable to, upon determining that the routing table in the second switch module does not include any routing entry for the selected address, generate, in the routing table in the second switch module, a routing entry for the selected address, based on routing information determined for the selected address and based further on at least one hash function associated with the routing table of the second switch module. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A system for hash-based routing table management in a distributed network switch comprising a plurality of switch modules including a first switch module, the system comprising:
-
one or more computer processors; a memory containing a program which, when executed by the one or more computer processors, is operable to perform an operation comprising; receiving, by the first switch module, a first frame having a source address and a destination address, wherein the first switch module comprises a plurality of bridge elements and a routing table, wherein the routing table in the first switch module is shared among the plurality of bridge elements in the first switch module and includes a plurality of sets of buckets, wherein each set of buckets is associated with a respective hash function of a plurality of distinct hash functions and is divided into a plurality of slices of buckets, each slice having a respective property and including one or more buckets, each bucket storing one or more routing entries, wherein each slice of each set of buckets is accessible in parallel; upon determining that the routing table in the first switch module does not include any routing entry for an address selected from the source address and the destination address of the first frame, generating, in the routing table, a routing entry for the selected address, based on routing information determined for the selected address and based further on at least one hash function of the plurality of hash functions and at least one property of the respective properties of the plurality of slices, wherein the generated routing entry stores a routing key included within a header of the first frame; and forwarding the first frame based on the determined routing information and to a second switch module of the distributed network switch, the second switch module having a routing table, wherein the second switch module is operable to, upon determining that the routing table in the second switch module does not include any routing entry for the selected address, generate, in the routing table in the second switch module, a routing entry for the selected address, based on routing information determined for the selected address and based further on at least one hash function associated with the routing table of the second switch module. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer program product to increase access bandwidth of a routing table by distributing lookup hits in the routing table across hash tables and slices, the computer program product comprising:
a non-transitory computer-readable medium having computer-readable program code embodied therewith, the computer-readable program code executable by one or more computer processors to; provide the routing table, wherein the routing table is shared between a plurality of bridge elements of a first switch module of a plurality of switch modules in a distributed network switch, wherein the routing table is divided into a plurality of hash tables accessible in parallel, each hash table having a distinct hash function, wherein at least one hash function is selected based on a predefined set of hash properties, wherein each hash table is divided into a plurality of slices accessible in parallel, each slice including one or more buckets, each bucket adapted to store one or more routing entries; receive a first frame having a source address and a destination address; and facilitate, at least in part, even distribution of a plurality of subsequent lookup hits expected to occur for a plurality of routing entries, by preemptively causing insertion of the plurality of routing entries based on a predefined set of insertion properties, comprising; upon determining that the routing table does not include any routing entry for an address selected from the source address and the destination address of the first frame, generating, in the routing table, a routing entry for the selected address, based on routing information determined for the selected address and based further on at least one hash function of the plurality of hash functions and at least one insertion property of the predefined set of insertion properties, wherein the generated routing entry stores a routing key included within a header of the first frame; and forward the first frame based on the determined routing information and to a second switch module of the distributed network switch, the second switch module having a routing table, wherein the second switch module is operable to, upon determining that the routing table in the second switch module does not include any routing entry for the selected address, generate, in the routing table in the second switch module, a routing entry for the selected address, based on routing information determined for the selected address and based further on at least one hash function associated with the routing table of the second switch module. - View Dependent Claims (20, 21, 22)
-
23. A system to increase access bandwidth of a routing table by distributing lookup hits in the routing table across hash tables and slices, the system comprising:
-
one or more computer processors; a memory containing a program which, when executed by the one or more computer processors, is operable to perform an operation comprising; providing the routing table, wherein the routing table is shared between a plurality of bridge elements of a first switch module of a plurality of switch modules in a distributed network switch, wherein the routing table is divided into a plurality of hash tables accessible in parallel, each hash table having a distinct hash function, wherein at least one hash function is selected based on a predefined set of hash properties, wherein each hash table is divided into a plurality of slices accessible in parallel, each slice including one or more buckets, each bucket adapted to store one or more routing entries; and receiving a first frame having a source address and a destination address; facilitating, at least in part, even distribution of a plurality of subsequent lookup hits expected to occur for a plurality of routing entries, by preemptively causing insertion of the plurality of routing entries based on a predefined set of insertion properties, comprising; upon determining that the routing table does not include any routing entry for an address selected from the source address and the destination address of the first frame, generating, in the routing table, a routing entry for the selected address, based on routing information determined for the selected address and based further on at least one hash function of the plurality of hash functions and at least one insertion property of the predefined set of insertion properties, wherein the generated routing entry stores a routing key included within a header of the first frame; and forwarding the first frame based on the determined routing information and to a second switch module of the distributed network switch, the second switch module having a routing table, wherein the second switch module is operable to, upon determining that the routing table in the second switch module does not include any routing entry for the selected address, generate, in the routing table in the second switch module, a routing entry for the selected address, based on routing information determined for the selected address and based further on at least one hash function associated with the routing table of the second switch module. - View Dependent Claims (24, 25)
-
Specification