Sliced routing table management with replication
First Claim
1. A non-transitory computer-readable medium containing a program which, when executed, performs an operation for hash-based routing table management in a distributed network switch comprising a plurality of switch modules including a first switch module, the 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 bucket stores a plurality of routing entries, wherein each set of buckets is associated with a respective hash function of a plurality of hash functions, each hash function of which is distinct, wherein each set of buckets is divided into a plurality of subsets of buckets, each subset of which is accessible in parallel and has a respective property, wherein at least one of the plurality of hash functions is selected based on a hash property comprising at least one of an avalanche property, an intra-hash collision property, an inter-hash collision property, and an inter-subgroup distribution property;
upon determining, responsive to an initial lookup request for the source address, that the routing table does not include any routing entry for the source address, generating a routing entry for the source address in a first subset of a first set of buckets of the routing table, without replicating the routing entry to any other set of buckets of the routing table, the routing entry including a routing key included within a header of the first frame, the routing key having routing information including a virtual local area network (VLAN) tag, a logical network (LN) identifier, and a media access control (MAC) address; and
upon accessing the routing entry for the source address in the first subset of the first set of buckets of the routing table responsive to a first subsequent lookup request for the source address, and determining that the property of the first subset satisfies a replication condition, replicating the accessed routing entry to at least a second subset of a second set of buckets of the routing table, different from the first set, wherein the routing entry is not replicated to any set of buckets upon determining that the first subset does not satisfy the replication condition.
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 by a switch module having bridge elements and a routing table divided into slices of buckets, each slice having a respective property and including one or more buckets. If a routing entry for the source address is found in a first slice of a first set of buckets of the routing table responsive to a lookup request for the source address, and the property of the first slice satisfies a replication condition, then the routing entry is replicated to a second set of buckets of the routing table.
69 Citations
20 Claims
-
1. A non-transitory computer-readable medium containing a program which, when executed, performs an operation for hash-based routing table management in a distributed network switch comprising a plurality of switch modules including a first switch module, the 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 bucket stores a plurality of routing entries, wherein each set of buckets is associated with a respective hash function of a plurality of hash functions, each hash function of which is distinct, wherein each set of buckets is divided into a plurality of subsets of buckets, each subset of which is accessible in parallel and has a respective property, wherein at least one of the plurality of hash functions is selected based on a hash property comprising at least one of an avalanche property, an intra-hash collision property, an inter-hash collision property, and an inter-subgroup distribution property; upon determining, responsive to an initial lookup request for the source address, that the routing table does not include any routing entry for the source address, generating a routing entry for the source address in a first subset of a first set of buckets of the routing table, without replicating the routing entry to any other set of buckets of the routing table, the routing entry including a routing key included within a header of the first frame, the routing key having routing information including a virtual local area network (VLAN) tag, a logical network (LN) identifier, and a media access control (MAC) address; and upon accessing the routing entry for the source address in the first subset of the first set of buckets of the routing table responsive to a first subsequent lookup request for the source address, and determining that the property of the first subset satisfies a replication condition, replicating the accessed routing entry to at least a second subset of a second set of buckets of the routing table, different from the first set, wherein the routing entry is not replicated to any set of buckets upon determining that the first subset does not satisfy the replication condition. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. 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 configured 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 bucket stores a plurality of routing entries, wherein each set of buckets is associated with a respective hash function of a plurality of hash functions, each hash function of which is distinct, wherein each set of buckets is divided into a plurality of subsets of buckets, each subset of which is accessible in parallel and has a respective property, wherein at least one of the plurality of hash functions is selected based on a hash property comprising at least one of an avalanche property, an intra-hash collision property, an inter-hash collision property, and an inter-subgroup distribution property; upon determining, responsive to an initial lookup request for the source address, that the routing table does not include any routing entry for the source address, generating a routing entry for the source address in a first subset of a first set of buckets of the routing table, without replicating the routing entry to any other set of buckets of the routing table, the routing entry including a routing key included within a header of the first frame, the routing key having routing information including a virtual local area network (VLAN) tag, a logical network (LN) identifier, and a media access control (MAC) address; and upon accessing the routing entry for the source address in the first subset of the first set of buckets of the routing table responsive to a first subsequent lookup request for the source address, and determining that the property of the first subset satisfies a replication condition, replicating the accessed routing entry to at least a second subset of a second set of buckets of the routing table, different from the first set, wherein the routing entry is not replicated to any set of buckets upon determining that the first subset does not satisfy the replication condition. - View Dependent Claims (14, 15, 16)
-
-
17. A computer-implemented method of hash-based routing table management in a distributed network switch comprising a plurality of switch modules including a first switch module, the computer-implemented method 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 bucket stores a plurality of routing entries, wherein each set of buckets is associated with a respective hash function of a plurality of hash functions, each hash function of which is distinct, wherein each set of buckets is divided into a plurality of subsets of buckets, each subgroup of which is accessible in parallel and has a respective property, wherein at least one of the plurality of hash functions is selected based on a hash property comprising at least one of an avalanche property, an intra-hash collision property, an inter-hash collision property, and an inter-subgroup distribution property; upon determining, responsive to an initial lookup request for the source address, that the routing table does not include any routing entry for the source address, generating a routing entry for the source address in a first subgroup of a first set of buckets of the routing table, without replicating the routing entry to any other set of buckets of the routing table, the routing entry including a routing key included within a header of the first frame, the routing key having routing information including a virtual local area network (VLAN) tag, a logical network (LN) identifier, and a media access control (MAC) address; and upon accessing the routing entry for the source address in the first subgroup of the first set of buckets of the routing table responsive to a first subsequent lookup request for the source address, and determining that the property of the first subgroup satisfies a replication condition, replicating the accessed routing entry to at least a second subgroup of a second set of buckets of the routing table, different from the first set, wherein the routing entry is not replicated to any set of buckets upon determining that the first subgroup does not satisfy the replication condition. - View Dependent Claims (18, 19, 20)
-
Specification