IP Library › Granted Patent US 11,528,228
Granted Patent B2
US 11,528,228 · App. 17/007,526 · Granted Dec 13, 2022

System and method for multi-path load balancing in network fabrics

Inventors: Mohammadreza Alizadeh Attar (Santa Clara, CA); Thomas J. Edsall (Los Gatos, CA); Sarang M. Dharmapurikar (Cupertino, CA); Janakiramanan Vaidyanathan (San Ramon, CA)
Assignee: Cisco Technology, Inc.
H04L47/125H04L45/38
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,528,228
App. No.
17/007,526
Granted
Dec 13, 2022
Kind
B2
Abstract

In accordance with one embodiment, a source leaf device receives a packet. The source leaf device identifies a flowlet associated with the packet and a destination leaf device to which the packet is to be transmitted. The source leaf device may determine whether the flowlet is a new flowlet. The source leaf device may select an uplink of the source leaf device via which to transmit the flowlet to the destination leaf device according to whether the flowlet is a new flowlet. The source leaf device may then transmit the packet to the destination leaf device via the uplink.

Claims (32)

1. A method comprising:

ascertaining a local congestion metric indicating a local level of congestion associated with a plurality of uplinks of a first device;

ascertaining a remote congestion metric indicating a remote level of congestion associated with the plurality of uplinks of the first device, wherein the remote level of congestion provides a measure of congestion experienced by packets sent through a corresponding uplink of the plurality of uplinks on remote links in a network;

selecting a path of a plurality of paths from the plurality of uplinks to transmit a flowlet to a second device based at least in part on the local congestion metric, the remote congestion metric and the path being allowable to transmit to the second device, wherein the path of the plurality of paths is a previously selected path when one or more congestion metrics of the plurality of paths does not provide at least a minimum defined amount of improvement over one or more congestion metrics of the previously selected path;

encapsulating one or more packets of the flowlet with a header, the header including at least a representation of an uplink of the plurality of uplinks that will transmit the encapsulated packets and a value specifying congestion information indicating a level of congestion experienced by the one or more packets as they traverse through the network; and

transmitting the encapsulated packets via the path.

2. The method as recited in claim 1 , wherein the remote congestion metric includes a level of congestion of the plurality of paths between the first device and the second device.

3. The method as recited in claim 1 , wherein each path of the plurality of paths is associated with an uplink of the plurality of uplinks.

4. The method as recited in claim 1 , wherein the selecting of the path includes comparing the remote congestion metrics for each of the plurality of uplinks with remote congestion metrics associated with the previously selected path from one of the plurality of uplinks.

5. The method as recited in claim 1 , wherein the header does not contain congestion information for every path between a source and a destination device.

6. A system comprising:

at least one processor; and

at least one memory storing instructions which when executed by the at least one processor causes the at least one processor to:

ascertain a local congestion metric, indicating a local level of congestion, associated with a plurality of uplinks of a first device;

ascertain a remote congestion metric indicating a remote level of congestion, associated with the plurality of uplinks of the first device, wherein the remote level of congestion provides a measure of congestion experienced by packets sent through a corresponding uplink of the plurality of uplinks on remote links in a network;

select a path of a plurality of paths from the plurality of uplinks to transmit a flowlet to a second device based at least in part on the local congestion metric, the remote congestion metric and the path being allowable to transmit to the second device, wherein the path of the plurality of paths is a previously selected path when one or more congestion metrics of the plurality of paths does not provide at least a minimum defined amount of improvement over one or more congestion metrics of the previously selected path;

encapsulate one or more packets of the flowlet with a header, the header including at least a representation of an uplink of the plurality of uplinks that will transmit the encapsulated packets and a value specifying congestion information indicating a level of congestion experienced by the one or more packets as they traverse through the network; and

transmit the encapsulated packets via the path.

7. The system as recited in claim 6 , wherein the remote congestion metric includes a level of congestion of the plurality of paths between the first device and the second device.

8. The system as recited in claim 6 , wherein each path of the plurality of paths is associated with an uplink of the plurality of uplinks.

9. The system as recited in claim 6 , wherein the selection of the path includes a comparison of the remote congestion metrics for each of the plurality of uplinks with remote congestion metrics associated with the previously selected path from one of the plurality of uplinks.

10. The system as recited in claim 6 , wherein the header does not contain congestion information for every path between a source and a destination device.

11. At least one non-transitory computer readable medium storing instructions which when executed by at least one processor causes the at least one processor to:

ascertain a local congestion metric indicating a local level of congestion associated with a plurality of uplinks of a first device;

ascertain a remote congestion metric indicating a remote level of congestion associated with the plurality of uplinks of the first device, wherein the remote level of congestion provides a measure of congestion experienced by packets sent through a corresponding uplink of the plurality of uplinks on remote links in a network;

select a path of a plurality of paths from the plurality of uplinks to transmit a flowlet to a second device based at least in part on the local congestion metric, the remote congestion metric and the path being allowable to transmit to the second device, wherein the path of the plurality of paths is a previously selected path when one or more congestion metrics of the plurality of paths does not provide at least a minimum defined amount of improvement over one or more congestion metrics of the previously selected path;

encapsulate one or more packets of the flowlet with a header, the header including at least a representation of an uplink of the plurality of uplinks that will transmit the encapsulated packets and a value specifying congestion information indicating a level of congestion experienced by the one or more packets as they traverse through the network; and

transmit the encapsulated packets via the path.

12. The at least one non-transitory computer readable medium as recited in claim 11 , wherein the remote congestion metrics includes a level of congestion of the plurality of paths between the first device and the second device.

13. The at least one non-transitory computer readable medium as recited in claim 11 , wherein each path of the plurality of paths is associated with an uplink of the plurality of uplinks.

14. The at least one non-transitory computer readable medium as recited in claim 11 , wherein the selection of the path includes a comparison of the remote congestion metrics for each of the plurality of uplinks with remote congestion metrics associated with a previously selected path from one of the plurality of uplinks.

15. The at least one non-transitory computer readable medium as recited in claim 11 , wherein the header does not contain congestion information for every path between a source and a destination device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2020
From: ATTAR, MOHAMMADREZA ALIZADEH; EDSALL, THOMAS J.; DHARMAPURIKAR, SARANG M.; VAIDYANATHAN, JANAKIRAMANAN
To: CISCO TECHNOLOGY, INC.
Reel/Frame 053644/0297 →
Continuity (3)
Continuation 14308464 · Jun 18, 2014
Provisional Application 61900302 · Nov 5, 2013
Related Publication 20200403923A1 · Dec 24, 2020