US 11,811,902 B2
Resilient hashing for forwarding packets
Patrick Bosshart, Plano, TX (US)
Assigned to Barefoot Networks, Inc., Santa Clara, CA (US)
Filed by Barefoot Networks, Inc., Santa Clara, CA (US)
Filed on Jan. 19, 2021, as Appl. No. 17/152,658.
Application 17/152,658 is a continuation of application No. 16/378,491, filed on Apr. 8, 2019, abandoned.
Application 16/378,491 is a continuation of application No. 15/094,987, filed on Apr. 8, 2016, granted, now 10,313,231.
Claims priority of provisional application 62/292,507, filed on Feb. 8, 2016.
Prior Publication US 2021/0194800 A1, Jun. 24, 2021
Int. Cl. H04L 69/325 (2022.01); H04L 45/44 (2022.01); H04L 45/00 (2022.01)
CPC H04L 69/325 (2013.01) [H04L 45/38 (2013.01); H04L 45/44 (2013.01); H04L 45/54 (2013.01)] 16 Claims
OG exemplary drawing
 
1. For a data plane of a hardware forwarding element, a method for identifying an egress path for a packet received by the data plane, the method comprising:
identifying a plurality of possible egress paths for the packet, wherein the identified egress paths have a priority order;
identifying an operational status of each of the identified paths;
using the operational status and priority order to select an identified path as the egress path for the packet; and
based on failure of the selected egress path, redistributing one or more packet flows assigned to a failed selected egress path without redistributing packet flows assigned to operational paths;
wherein:
the identified paths are to be identified via different hash values that are to be calculated using different hash algorithms based upon header fields of the packet;
the header fields identify a flow;
a highest priority order operational path of the identified paths is to be selected for use in egress of the packet; and
in event that none of the identified paths is operational, another egress path is deterministically selected from the plurality of possible egress paths based upon a path selection sequence order that is determined based upon at least one computation involving the header fields.