Hashing-based routing table management

US9215171B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9215171-B2
Application numberUS-201213597386-A
CountryUS
Kind codeB2
Filing dateAug 29, 2012
Priority dateAug 29, 2012
Publication dateDec 15, 2015
Grant dateDec 15, 2015

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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, 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.

First claim

Opening claim text (preview).

What is claimed is: 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 first routing table, wherein the first routing table is shared among the plurality of bridge elements in the first switch module and includes a plurality of sets of buckets, each bucket storing a plurality of routing entries, wherein each set of buckets is associated with a respective hash function of a plurality of distinct hash functions, at least one hash function of which 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 that the first routing table does not include any routing entry for an address selected from the source address and the destination address, generate, in the first 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, the routing entry having a routing key included within a header of the first frame, wherein the routing key includes Layer-2 routing information comprising a virtual local area network (VLAN) tag, a logical network (LN) identifier, and a media access control (MAC) address, and based on the determined routing information, forward the first frame to a second switch module of the distributed network switch, the second switch module having a second routing table, wherein the second switch module is configured to, upon determining that the second routing table does not include any routing entry for the selected address, generate, in the second routing table, a routing entry for the selected address. 2. The computer program product of claim 1 , wherein each bucket in each set of buckets is identifiable by a bucket identifier that is distinct within the respective set of buckets, wherein the first routing table is modified, comprising: generating, using the hash function associated with each set of buckets, a respective hash value based on the routing key included within the header of the first frame; identifying, within each set of buckets, a candidate bucket having a bucket identifier matching the hash value generated using the hash function associated with the respective set of buckets; determining a least-full bucket among the identified candidate buckets; and inserting the generated routing entry into the determined least-full bucket. 3. The computer program product of claim 2 , wherein the least-full bucket is selected from one of: (i) the candidate bucket having a smallest count of valid routing entries and (ii) the candidate bucket having a smallest count of valid routing entries and belonging to the set of buckets having a smallest count of valid routing entries; wherein the computer-readable program code configured to inserting the generated routing entry into the determined least-full bucket comprises: computer-readable program code configured to, upon determining that the least-full bucket is full, discarding the routing entry in the least-full bucket to make room for the generated routing entry, without reinserting the discarded routing entry into any of the plurality of sets of buckets. 4. The computer program product of claim 1 , wherein each set of buckets is stored in a respective hash table of the first routing table. 5. The computer program product of claim 1 , wherein the generated routing entry in the first routing table stores a routing key included within a header of the first frame. 6. The computer program product of claim 1 , wherein each bucket in each set of buckets is identifiable by a bucket identifier that is distinct within the respective set of buckets. 7. The computer program product of claim 1 , wherein a routing entry, selected based on an aging criterion, is discarded. 8. The computer program product of claim 7 , wherein the selected routing entry is discarded if the first routing table satisfies a fullness condition. 9. The computer program product of claim 1 , wherein the routing entry in the second routing table and for the selected address is generated based on routing information determined for the selected address. 10. The computer program product of claim 9 , wherein the routing entry in the second routing table and for the selected address is generated based further on at least one hash function associated with the second routing table. 11. 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 first routing table, wherein the first routing table is shared among the plurality of bridge elements in the first switch module and includes a plurality of sets of buckets, each bucket storing a plurality of routing entries, wherein each set of buckets is associated with a respective hash function of a plurality of distinct hash functions, at least one hash function of which 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 that the first 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 first 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, the routing entry having a routing key included within a header of the first frame, wherein the routing key includes Layer-2 routing information comprising a virtual local area network (VLAN) tag, a logical network (LN) identifier, and a media access control (MAC) address, and based on the determined routing information, forwarding the first frame to a second switch module of the distributed network switch, the second switch module having a second routing table, wherein the second switch module is configured to, upon determining that the second routing table does not include any routing entry for the selected address, generate, in the second routing table, a routing entry for the selected address. 12. The system of claim 11 , wherein each bucket in each set of buckets is identifiable by a bucket identifier that is distinct within the respective set of buckets, wherein the first routing table is modified, comprising: generating, using the hash function associated with each set of buckets, a respective hash value based on the routing key included within the header of the first frame; identifying, within each set of buckets, a candidate bucket having a bucket identifier matc

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9215171B2 cover?
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, routing information is determined for the source address and a routing entry is generated. The routing t…
Who is the assignee on this patent?
Basso Claude, Shedivy David A, Verrilli Colin B, and 3 more
What technology area does this patent fall under?
Primary CPC classification H04L45/7453. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 15 2015 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).