IP Library Granted Patent US 11,601,359
Granted Patent B2
US 11,601,359 · App. 17/301,185 · Granted Mar 7, 2023

Resilient network communication using selective multipath packet flow spraying

Inventors: Deepak Goel (San Jose, CA); Pradeep Sindhu (Los Altos Hills, CA); Ayaskant Pani (Fremont, CA); Srihari Raju Vegesna (San Jose, CA); Narendra Jayawant Gathoo (San Jose, CA); John David Huber (San Diego, CA); Rohit Sunkam Ramanujam (Sunnyvale, CA); Saurin Patel (San Jose, CA)
Assignee: FUNGIBLE, INC.
H04L45/22H04L43/0817H04L45/028H04L45/16H04L45/24H04L47/122H04L47/26H04L69/26
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,601,359
App. No.
17/301,185
Granted
Mar 7, 2023
Kind
B2
Abstract

Techniques for detecting path failures and reducing packet loss as a result of such failures are described for use within a data center or other environment. For example, a source and/or destination access node may create and/or maintain information about health and/or connectivity for a plurality of ports or paths between the source and destination device and core switches. The source access node may spray packets over a number of paths between the source access node and the destination access node. The source access node may use the information about connectivity for the paths between the source or destination access nodes and the core switches to limit the paths over which packets are sprayed. The source access node may spray packets over paths between the source access node and the destination access node that are identified as healthy, while avoiding paths that have been identified as failed.

Claims (57)

1. A network comprising:

a source device;

a destination device; and

a plurality of core switches, each coupled to the source device and the destination device;

wherein the destination device is configured to:

identify, from among a plurality of paths between the destination device and the plurality of core switches, failed destination paths between the destination device and the plurality of core switches,

receive a request message from the source device, and

responsive to the request message, send a grant message to the source device that includes health information about each of the paths between the destination device and the plurality of core switches, wherein the health information identifies the identified failed destination paths, and

wherein the source device is configured to transmit packets of a data flow over a data path chosen, based on the grant message, to avoid the identified failed destination paths.

2. The network of claim 1 , wherein to transmit packets of the data flow, the source device is further configured to:

spray packets of the data flow, over a plurality of selected data paths across the plurality of core switches, from the source device to the destination device,

wherein the plurality of selected data paths are chosen, based on the grant message, so that none of the plurality of selected data paths includes any of the failed destination paths.

3. The network of claim 2 , wherein to spray the packets, the source device is further configured to:

identify information about failed source paths between the source device and the plurality of core switches.

4. The network of claim 3 , wherein to spray the packets, the source device is further configured to:

spray packets over the plurality of selected data paths chosen, further based on the information about the failed source paths, so that none of the plurality of selected data paths includes any of the failed source paths.

5. The network of claim 3 , wherein the request message includes request rate information reflecting the information about failed source paths, and wherein the destination device is further configured to:

reserve, based on the request rate information and further based on the health information about the identified failed destination paths, bandwidth for a data transfer from the source device.

6. The network of claim 3 , wherein the source device is further configured to:

determine a request rate limiter based on how many data paths between the source device and the plurality of core switches are not identified as failed source paths, and further based on a count of all data paths between the source device and the core switches.

7. The network of claim 1 , wherein to send the grant message, the destination device is further configured to:

send information that identifies a health status for each of a plurality of devices on the network.

8. The network of claim 1 , wherein to send the grant message, the destination device is further configured to:

send information that identifies a health status for each port of a plurality of devices on the network.

9. The network of claim 1 , wherein the failed destination paths include at least one of:

a path that has failed due to failure of one of a plurality of devices on the network, or

a failure of a link between at least one of the plurality of devices on the network and at least one of the core switches.

10. The network of claim 1 , wherein to send the grant message, the destination device is further configured to:

send a multi-dimensional array having a first dimension corresponding to each of a plurality of devices on the network, and a second dimension corresponding to network interface ports on each of the plurality of devices.

11. The network of claim 1 , wherein to receive the request message, the destination device is further configured to:

receive information about an amount of data that the source device is requesting to transfer.

12. The network of claim 1 , wherein the request message includes request rate information, and wherein the destination device is further configured to:

reserve, based on the request rate information and the health information about the identified failed destination paths, bandwidth for a data transfer from the source device.

13. The network of claim 1 , wherein the destination device is further configured to:

determine a grant data rate limiter based on how many data paths between the destination device and the core switches are not identified as failed destination paths, and further based on a count of all data paths between the destination device and the core switches.

14. A method comprising:

identifying, by a destination device on a network and from among a plurality of paths between the destination device and a plurality of core switches, failed destination paths between the destination device and the plurality of core switches on the network;

receive, by the destination device, a request message from a source device on the network;

responsive to the request message, sending, by the destination device and to the source device, a grant message that includes health information about each of the paths between the destination device and the plurality of core switches, wherein the health information identifies the identified failed destination paths; and

spraying packets of a data flow, by the source device and based on the grant message, over a plurality of data paths from the source device to the destination device and across the core switches, wherein none of the plurality of data paths includes any of the failed destination paths.

15. The method of claim 14 , wherein spraying packets of data flow includes:

identifying information about failed source paths between the source device and the plurality of core switches.

16. The method of claim 15 , wherein spraying packets of the data flow further includes:

spraying packets over the plurality of data paths, wherein none of the plurality of data paths includes any of the failed source paths.

17. The method of claim 14 , wherein sending the grant message that includes health information about the identified failed destination paths includes:

sending information that identifies a health status for each of a plurality of devices on the network.

18. The method of claim 14 , wherein sending the grant message that includes health information about the identified failed destination paths includes:

sending information that identifies a health status for each port of a plurality of devices on the network.

19. The method of claim 14 , wherein the failed destination paths include at least one of:

a path that has failed due to failure of one of a plurality of devices on the network, or

a failure of a link between at least one of the plurality of devices on the network and at least one of the core switches.

20. A destination network device comprising memory and processing circuitry, wherein the processing circuitry has access to the memory and is configured to:

identify, from among a plurality of paths between the destination network device and a plurality of core switches, failed destination paths between the destination network device and a plurality of core switches;

receive a request message from a source device;

responsive to the request message, send a grant message to the source device that includes health information about each of the paths between the destination network device and the plurality of core switches, wherein the health information identifies the identified failed destination paths; and

enable the source device to spray packets of a data flow, over a plurality of selected data paths across the core switches, from the source device to the destination network device,

wherein the plurality of selected data paths are chosen, based on the grant message, so that none of the plurality of selected data paths includes any of the failed destination paths.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2023
From: GOEL, DEEPAK; SINDHU, PRADEEP; PANI, AYASKANT; VEGESNA, SRIHARI RAJU; GATHOO, NARENDRA JAYAWANT; HUBER, JOHN DAVID; RAMANUJAM, ROHIT SUNKAM; PATEL, SAURIN
To: FUNGIBLE, INC.
Reel/Frame 065455/0315 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2023
From: FUNGIBLE, INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 064434/0430 →
RELEASE OF SECURITY INTEREST Recorded Jan 9, 2023
From: HERCULES CAPITAL, INC., AS AGENT
To: FUNGIBLE, INC.
Reel/Frame 062335/0803 →
RELEASE OF SECURITY INTEREST Recorded Jan 5, 2023
From: SILICON VALLEY BANK
To: FUNGIBLE, INC.
Reel/Frame 062308/0191 →
SECURITY INTEREST Recorded Dec 16, 2021
From: FUNGIBLE, INC.
To: SILICON VALLEY BANK
Reel/Frame 058523/0960 →
SECURITY INTEREST Recorded Dec 16, 2021
From: FUNGIBLE, INC.
To: HERCULES CAPITAL, INC., AS AGENT
Reel/Frame 058533/0429 →
Continuity (4)
Continuation 16147134 · Sep 28, 2018
Provisional Application 62638725 · Mar 5, 2018
Provisional Application 62566060 · Sep 29, 2017
Related Publication 20210218665A1 · Jul 15, 2021
Cited By (11)
US 12,212,495 US 12,231,353 US 12,278,763 US 12,335,160 US 12,341,687 US 12,432,042 US 12,519,631 US 12,519,755 US 12,567,966 US 12,615,284 US 12,701,101