IP Library Granted Patent US 11,973,685
Granted Patent B2
US 11,973,685 · App. 17/594,687 · Granted Apr 30, 2024

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
H04L45/28G06F9/505G06F9/546G06F12/0862G06F12/1036G06F12/1063G06F13/14G06F13/16G06F13/1642G06F13/1673G06F13/1689G06F13/385G06F13/4022G06F13/4068G06F13/4221G06F15/17331H04L1/0083H04L43/0876H04L43/10H04L45/021H04L45/028H04L45/122H04L45/123H04L45/125H04L45/16H04L45/20H04L45/22H04L45/24H04L45/38H04L45/42H04L45/46H04L45/566H04L45/70H04L45/745H04L45/7453H04L47/11H04L47/12H04L47/122H04L47/18H04L47/20H04L47/22H04L47/24H04L47/2441H04L47/2466H04L47/2483H04L47/30H04L47/32H04L47/323H04L47/34H04L47/39H04L47/52H04L47/621H04L47/6235H04L47/626H04L47/6275H04L47/629H04L47/76H04L47/762H04L47/781H04L47/80H04L49/101H04L49/15H04L49/30H04L49/3009H04L49/3018H04L49/3027H04L49/90H04L49/9005H04L49/9021H04L49/9036H04L49/9047H04L67/1097H04L69/22H04L69/40G06F2212/50G06F2213/0026G06F2213/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 11,973,685
App. No.
17/594,687
Granted
Apr 30, 2024
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 (39)

1. A method, comprising:

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

applying a translation rule to a respective packet of the data flow to determine a first value and a second value associated with forwarding of the packet;

applying a destination-based hash function on a set of header fields of the packet to determine a hash value comprising a predetermined number of bits;

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

determining an egress port for the packet based on the first value and the subset of the bits of the hash value.

2. The method of claim 1 , wherein the set of header fields of the packet comprises at least one of: a source address and a destination address of the packet.

3. The method of claim 1 , further comprising determining a combination of the set of header fields for the hash function based on a configuration.

4. The method of claim 1 , wherein the hash value is generated based on a combination of one or more media access control (MAC) addresses, one or more Internet Protocol (IP) addresses, and one or more port addresses of the packet.

5. The method of claim 4 , wherein applying the hash function further comprises using a Cyclic Redundancy Check (CRC) function to compress the one or more MAC addresses, one or more IP addresses, and one or more port addresses of the packet into the hash value.

6. The method of claim 1 , further comprising multiplying the hash value by the second value to determine the subset of the bits of the hash value.

7. The method of claim 6 , further comprising adding a value indicated by the subset of the bits of the hash value to the first value to form an index into an entry of a routing table indicating the egress port.

8. A switch, comprising:

a processor;

an input port to receive a data flow comprising a plurality of packets via a network configured in a fat-tree topology;

a plurality of output ports;

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

apply a translation rule to a respective packet of the data flow to determine a first value and a second value associated with forwarding of the packet;

apply a destination-based hash function on a set of header fields of the packet to determine a hash value comprising a predetermined number of bits;

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

determine an output port for the packet from the plurality of output ports based on the first value and the subset of the bits of the hash value; and

a crossbar switch, which couples the input port to the plurality of output ports, to route the packet to the output port.

9. The switch of claim 8 , wherein the set of header fields of the packet comprises at least one of: a source address and a destination address of the packet.

10. The switch of claim 8 , wherein a combination of the set of header fields for the hash function is determined based on a configuration.

11. The switch of claim 8 , wherein the hash value is generated based on a combination of one or more media access control (MAC) addresses, one or more Internet Protocol (IP) addresses, and one or more port addresses of the packet.

12. The switch of claim 11 , wherein applying the hash function further comprises using a Cyclic Redundancy Check (CRC) function to compress the one or more MAC addresses, one or more IP addresses, and one or more port addresses of the packet into the hash value.

13. The switch of claim 8 , wherein the instructions that when executed by the processor cause the switch to multiply the hash value by the second value to determine the subset of the bits of the hash value.

14. The switch of claim 13 , wherein the instructions that when executed by the processor cause the switch to add a value indicated by the subset of the bits of the hash value to the first value to form an index into an entry of a routing table indicating the egress port.

15. A non-transitory computer-readable storage medium storing instructions that when executed by a processor of a switch of a network 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 switch, the network comprising a plurality of switches configured in a fat-tree topology;

applying a translation rule to a respective packet of the data flow to determine a first value and a second value associated with forwarding of the packet;

applying a destination-based hash function on a set of header fields of the packet to determine a hash value comprising a predetermined number of bits;

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

determining an egress port for the packet based on the first value and the subset of the bits of the hash value.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the method further comprises determining a combination of the set of header fields for the hash function based on a configuration.

17. The non-transitory computer-readable storage medium of claim 15 , wherein the hash value is generated based on a combination of one or more media access control (MAC) addresses, one or more Internet Protocol (IP) addresses, and one or more port addresses of the packet.

18. The non-transitory computer-readable storage medium of claim 17 , wherein applying the hash function further comprises using a Cyclic Redundancy Check (CRC) function to compress the one or more MAC addresses, one or more IP addresses, and one or more port addresses of the packet into the hash value.

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

20. The non-transitory computer-readable storage medium of claim 19 , wherein the method further comprises adding a value indicated by the subset of the bits of the hash value to the first value to form an index into an entry of a routing table indicating the egress port.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2021
From: BATAINEH, ABDULLA M.; COURT, THOMAS L.; FROESE, EDWIN L.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 057918/0250 →
Continuity (4)
Provisional Application 62852289 · May 23, 2019
Provisional Application 62852273 · May 23, 2019
Provisional Application 62852203 · May 23, 2019
Related Publication 20220210058A1 · Jun 30, 2022
Cited By (1)
US 12,574,319