IP Library Granted Patent US 12,705,190
Granted Patent B2
US 12,705,190 · App. 18/630,121 · Granted Aug 11, 2026

Fat tree adaptive routing

Inventors: Abdulla M. Bataineh (Vista, CA); Thomas L. Court (Three Lakes, WI); Edwin L. Froese (Burnaby, CA)
Assignee: Hewlett Packard Enterprise Development LP
G06F13/1642G06F9/546G06F13/1673G06F13/385G06F13/4068G06F13/4221H04L45/028H04L47/30H04L47/32H04L49/3018H04L49/3027H04L49/90H04L49/9047G06F2213/3808H04L69/28
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,705,190
App. No.
18/630,121
Granted
Aug 11, 2026
Kind
B2
Abstract

Systems and methods are provided for efficiently routing data through a network having a plurality of switches configured in a fat-tree topology, including: receiving a data transmission comprising a plurality of packets at an edge port of the network, and routing the data transmission through the network with routing decisions based upon a routing table, wherein the routing table includes entries to effect routing decisions based upon a destination based hash function.

Claims (63)

1 . A method, comprising:

receiving, by a network device in a network having a plurality of network devices configured in a fat-tree topology, a data flow comprising a plurality of packets at an edge port of the network device;

determining whether to apply a destination-based hash function to the data flow based on a rule;

in response to determining that the destination-based hash function is to be applied to the data flow:

applying the destination-based hash function to one or more header fields of a respective packet of the data flow to determine a hash value;

determining an entry indexed based on the hash value in a data structure stored at the network device, the data structure storing respective port identifiers of egress ports of the network device;

determining a port identifier specified in the entry indexed based on the hash value; and

forwarding the packet via an egress port corresponding to the port identifier.

2 . The method of claim 1 , wherein the one or more header fields comprise a layer-2 header field and a layer-3 header field.

3 . The method of claim 1 , wherein determining whether to apply the destination-based hash function comprises determining whether the egress port is part of a path of a set of equal-cost multiple paths (ECMP) to a destination of the data flow.

4 . The method of claim 1 , wherein determining whether to apply the destination-based hash function comprises determining whether the egress port is coupled to a link of a link-aggregation group (LAG) via which a destination of the data flow is reachable.

5 . The method of claim 1 , wherein the rule is a translation function rule; and

wherein the method further comprises:

applying, by the network device, a the translation function rule to the packet to determine a first value and a second value to be used for forwarding of the packet;

determining a subset of bits of the hash value based on the second value; and

determining an index for the entry based on the first value and the subset of the bits of the hash value.

6 . The method of claim 5 , wherein determining the subset of bits of the hash value further comprises multiplying the hash value by the second value; and

wherein determining the index for the entry further comprises adding the first value to a third value indicated by the subset of the bits of the hash value.

7 . The method of claim 5 , wherein applying the translation function rule comprises determining the first value and the second value by looking up a destination address of the packet in a translation table stored at th network device.

8 . The method of claim 1 , wherein applying the destination-based hash function comprises applying a Cyclic Redundancy Check (CRC) function to compress the one or more header fields into the hash value.

9 . A network device in a network having a plurality of network devices configured in a fat-tree topology, comprising:

a processor;

an input port of a switch to receive a data flow comprising plurality of packets;

a plurality of output ports;

a memory storing a data structure comprising respective port identifiers of the output ports; and

a non-transitory computer-readable storage medium storing instructions that when executed by the processor cause the network device to:

determine whether to apply a destination-based hash function to the data flow based on a rule;

in response to determining that the destination-based hash function is to be applied to the data flow:

apply the destination-based hash function to one or more header fields of a respective packet of the data flow to determine a hash value;

determine an entry indexed based on the hash value in the data structure;

determine a port identifier specified in the entry indexed based on the hash value;

select an output port from the plurality of output ports based on the port identifier; and

forward the packet via the output port.

10 . The network device of claim 9 , wherein the one or more header fields comprise a layer-2 header field and a layer-3 header field.

11 . The network device of claim 9 , wherein determining whether to apply the destination-based hash function comprises determining whether the output port is part of a path of a set of equal-cost multiple paths (ECMP) to a destination of the data flow.

12 . The network device of claim 9 , wherein determining whether to apply the destination-based hash function comprises determining whether the output port is coupled to a link of a link-aggregation group (LAG) via which a destination of the data flow is reachable.

13 . The network device of claim 9 , wherein the rule is a translation function rule; and

wherein the instructions when executed by the processor cause the network device further to:

apply a the translation function rule to the packet to determine a first value and a second value to be used for forwarding of the packet;

determine a subset of bits of the hash value based on the second value; and

determine an index for the entry based on the first value and the subset of the bits of the hash value.

14 . The network device of claim 13 , wherein the instructions when executed by the processor cause the network device further to:

multiply the hash value by the second value to determine the subset of bits of the hash value; and

add the first value to a third value indicated by the subset of the bits of the hash value to determine the index for the entry.

15 . The network device of claim 13 , wherein the instructions when executed by the processor cause the network device further to determine the first value and the second value by looking up a destination address of the packet in a translation table stored at the network device.

16 . The network device of claim 9 , wherein the instructions are further to apply a Cyclic Redundancy Check (CRC) function to compress the one or more header fields into the hash value to apply the destination-based hash function.

17 . A non-transitory computer-readable storage medium storing instructions that when executed by a processor of a network device in a network having a plurality of network devices configured in a fat-tree topology cause the processor to perform a method, the method comprising:

receiving a data flow comprising a plurality of packets at an edge port of the network device;

determining whether to apply a destination-based hash function to the data flow based on a rule;

in response to determining that the destination-based hash function is to be applied to the data flow:

applying the destination-based hash function to one or more header fields of a respective packet of the data flow to determine a hash value;

determining an entry indexed based on the hash value in a data structure stored at the network device, the data structure storing respective port identifiers of a plurality of egress ports of the network device;

determining a port identifier specified in the entry indexed based on the hash value;

identifying an egress port from the plurality of egress ports based on the port identifier; and

forwarding the packet via the egress port.

18 . The non-transitory computer-readable storage medium of claim 17 , wherein the rule is a translation function rule; and

wherein the method further comprises:

applying a the translation function rule to the packet to determine a first value and a second value to be used for forwarding of the packet;

determining a subset of bits of the hash value based on the second value; and

determining an index for the entry based on the first value and the subset of the bits of the hash value.

19 . The non-transitory computer-readable storage medium of claim 18 , wherein the method further comprises multiplying the hash value by the second value to determine the subset of bits of the hash value; and

wherein determining the index for the entry comprises adding the first value to a third value indicated by the subset of the bits of the hash value.

20 . The non-transitory computer-readable storage medium of claim 17 , wherein applying the destination-based hash function comprises applying a Cyclic Redundancy Check (CRC) function to compress the one or more header fields into the hash value.