Resilient hashing with multiple hashes

US10892991B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10892991-B2
Application numberUS-201916294851-A
CountryUS
Kind codeB2
Filing dateMar 6, 2019
Priority dateMar 6, 2019
Publication dateJan 12, 2021
Grant dateJan 12, 2021

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 for implementing resilient hashing with multiple hashes are provided. In one set of embodiments, a network device can maintain a first hash table comprising mappings between a first set of hash indices and a set of bit values. The network device can also maintain a second hash table comprising mappings between a second set of hash indices and active next-hop destinations. Upon receiving a network packet, the network device can compute a first hash and can match the first hash value to a first mapping in the first hash table based on the first mapping's hash index. When the first mapping's bit value indicates that the first mapping's hash index corresponds to an active next-hop destination, the network device can further match the first hash value to a second mapping in the second hash table and send the network packet to the second mapping's active next-hop destination.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of packet forwarding comprising: maintaining, by a network device, a first hash table comprising mappings between a first set of hash indices and a set of bit values, wherein for each mapping in the first hash table: the mapping's hash index corresponds to one of a group of next-hop destinations to which network packets received by the network device may be transmitted, and the mapping's bit value indicates whether the mapping's hash index corresponds to an active or inactive next-hop destination; maintaining, by the network device, a second hash table comprising mappings between a second set of hash indices and active next-hop destinations in the group of next-hop destinations; receiving, by the network device, a network packet; computing, by the network device, a first hash value using a portion of the network packet and a first hash function; matching, by the network device, the first hash value to a first mapping in the first hash table based on the first mapping's hash index; and when the first mapping's bit value indicates that the first mapping's hash index corresponds to an active next-hop destination: matching, by the network device, the first hash value to a second mapping in the second hash table based on the second mapping's hash index; and sending, by the network device, the network packet to the second mapping's active next-hop destination. 2. The method of claim 1 further comprising, when the first mapping's bit value indicates that the first mapping's hash index corresponds to an inactive next-hop destination: computing a second hash value using the portion of the network packet and a second hash function that is different from the first hash function; matching the second hash value to a third mapping in the second hash table based on the third mapping's hash index; and sending the network packet to the third mapping's active next-hop destination. 3. The method of claim 1 further comprising: maintaining a third hash table comprising mappings that are identical to the first hash table; and when the first mapping's bit value indicates that the first mapping's hash index corresponds to an inactive next-hop destination: computing a second hash value using the portion of the network packet and a second hash function that is different from the first hash function; matching the second hash value to a third mapping in the third hash table based on the third mapping's hash index; and when the third mapping's bit value indicates that the third mapping's hash index corresponds to an active next-hop destination: matching the second hash value to a fourth mapping in the second hash table based on the fourth mapping's hash index; and sending the network packet to the fourth mapping's active next-hop destination. 4. The method of claim 3 further comprising, when the third mapping's bit value indicates that the third mapping's hash index corresponds to an inactive next-hop destination: computing a third hash value using the portion of the network packet and a third hash function that is different from the first hash function and the second hash function; matching the third hash value to a fifth mapping in the second hash table based on the fifth mapping's hash index; and sending the network packet to the fifth mapping's active next-hop destination. 5. The method of claim 1 wherein a size of the first hash table is equal to a maximum group size for the group of next-hop destinations. 6. The method of claim 5 wherein the maximum group size is defined in a user-configurable file maintained on the network device. 7. The method of claim 6 wherein the user-configurable file further defines: which next-hop destinations in the group of next-hop destinations are active; and which next-hop destinations in the group of next-hop destinations are inactive. 8. The method of claim 5 wherein computing the first hash value comprises: extracting a 5-tuple from the network packet including the network packet's source Internet Protocol (IP) address, source port, destination IP address, destination port, and protocol; applying the 5-tuple to the first hash function to generate an intermediate hash value; and computing the intermediate hash value modulo the maximum group size to generate the first hash value. 9. The method of claim 5 wherein a size of the second hash table is equal to the maximum group size multiplied by a replication factor. 10. The method of claim 9 wherein computing the second hash value comprises: extracting a 5-tuple from the network packet including the network packet's source Internet Protocol (IP) address, source port, destination IP address, destination port, and protocol; applying the 5-tuple to the second hash function to generate an intermediate hash value; and computing the intermediate hash value modulo (the maximum group size multiplied by the replication factor) to generate the second hash value. 11. A network device comprising: a processor configured to: maintain a first hash table comprising mappings between a first set of hash indices and a set of bit values, wherein for each mapping in the first hash table: the mapping's hash index corresponds to one of a group of next-hop destinations to which network packets received by the network device may be transmitted, and the mapping's bit value indicates whether the mapping's hash index corresponds to an active or inactive next-hop destination; maintain a second hash table comprising mappings between a second set of hash indices and active next-hop destinations in the group of next-hop destinations; receive a network packet; compute a first hash value using a portion of the network packet and a first hash function; match the first hash value to a first mapping in the first hash table based on the first mapping's hash index; and when the first mapping's bit value indicates that the first mapping's hash index corresponds to an active next-hop destination: match the first hash value to a second mapping in the second hash table based on the second mapping's hash index; and send the network packet to the second mapping's active next-hop destination. 12. The network device of claim 11 wherein when the first mapping's bit value indicates that the first mapping's hash index corresponds to an inactive next-hop destination, the processor is further configured to: compute a second hash value using the portion of the network packet and a second hash function that is different from the first hash function; match the second hash value to a third mapping in the second hash table based on the third mapping's hash index; and send the network packet to the third mapping's active next-hop destination. 13. The network device of claim 11 wherein the processor comprises an application-specific integrated circuit (ASIC). 14. The network device of claim 11 wherein the processor comprises a general purpose central processing unit (CPU). 15. The network device of claim 13 wherein the first hash table is implemented as a bit vector stored on the ASIC. 16. The network device of claim 13 wherein the second hash table is implemented as a direct index table stored on the ASIC. 17. A non-transitory computer readable storage medium having stored thereon program code executable by a network device, the program code comprising: code that causes the network device to maintain a first hash table comprising mappings between a first set of hash indices and a set of bit values, wherein for each mapping in the first hash table: the mappin

Assignees

Inventors

Classifications

  • Routing a service request depending on the request content or context · CPC title

  • Internet protocol [IP] addresses · CPC title

  • for accessing one among a plurality of replicated servers · CPC title

  • based on a hash applied to IP addresses or costs · CPC title

  • Version control (security arrangements therefor G06F21/57); Configuration management · CPC title

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 US10892991B2 cover?
Techniques for implementing resilient hashing with multiple hashes are provided. In one set of embodiments, a network device can maintain a first hash table comprising mappings between a first set of hash indices and a set of bit values. The network device can also maintain a second hash table comprising mappings between a second set of hash indices and active next-hop destinations. Upon receiv…
Who is the assignee on this patent?
Arista Networks Inc
What technology area does this patent fall under?
Primary CPC classification H04L67/1023. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jan 12 2021 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 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).