IP Library Granted Patent US 10,200,277
Granted Patent B2
US 10,200,277 · App. 15/176,251 · Granted Feb 5, 2019

Influencing path selection during a multipath connection

Inventors: Akshay Kumar Sreeramoju (Hyderabad, IN); Madhusudhan Ravi (Palo Alto, CA); Benjamin Basler (Palo Alto, CA)
Assignee: NICIRA, INC.
H04L45/24H04L45/22H04L69/16
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 10,200,277
App. No.
15/176,251
Granted
Feb 5, 2019
Kind
B2
Abstract

Example methods are provided to influence path selection during a multipath connection between a first endpoint and a second endpoint. The method may comprise configuring, for a first subflow of a multipath connection, a first set of tuples and establishing, over a network interface of the first endpoint, the first subflow with the second endpoint. The method may further comprise configuring, for a second subflow of the multipath connection, a second set of tuples based a path selection algorithm learned by the first endpoint; and establishing the second subflow with the second endpoint. The method may further comprise sending first packets having the first set of tuples on the first subflow and second packets having the second set of tuples on the second subflow to the second endpoint via an intermediate device that uses the path selection algorithm.

Claims (61)

1. A method for a first endpoint to influence path selection during a multipath connection between the first endpoint and a second endpoint, the method comprising:

configuring, for a first subflow of the multipath connection, a first set of tuples that includes a network address of the first endpoint and a first port number;

establishing, over a network interface of the first endpoint, the first subflow with the second endpoint;

learning a path selection algorithm used by an intermediate device to select a path for a subflow of the multipath connection;

configuring, for a second subflow of the multipath connection, a second set of tuples that includes the network address of the first endpoint and a second port number, wherein the second set of tuples is configured to generate a second hash value that is different to a first hash value generated for the first set of tuples according to the path selection algorithm learned by the first endpoint;

establishing, over the network interface, the second subflow with the second endpoint; and

sending, over the network interface, first packets on the first subflow and second packets on the second subflow to the second endpoint via the intermediate device, wherein the first packets each include the first set of tuples to influence the intermediate device to select a first path based on the first hash value and the second packets each include the second set of tuples to influence the intermediate device to select a second path based on the second hash value.

2. The method of claim 1 , wherein the method further comprises:

prior to configuring the first set of tuples and second set of tuples, learning the path selection algorithm used by the intermediate device.

3. The method of claim 2 , wherein the path selection algorithm is modulo-based and configuring the second set of tuples comprises:

based on the first port number, configuring the second port number such that the second hash value generated for the second set of tuples using the path selection algorithm is immediately next to the first hash value generated for the first set of tuples.

4. The method of claim 2 , wherein the path selection algorithm is range-based, the first hash value generated for the first set of tuples is in a first range and configuring the second set of tuples comprises:

based on the first port number, configuring the second port number such that the second hash value generated for the second set of tuples using the path selection algorithm is in a second range that is immediately next to the first range.

5. The method of claim 2 , wherein the intermediate device is a leaf switch that is connected to a first spine switch and a second spine switch and performs Equal Cost Multipath (ECMP) routing in a data center environment, and configuring the second set of tuples comprises:

based on the first port number, configuring the second port number such that a second hash value generated for the second set of tuples is mapped to the second spine switch, and a first hash value generated for the first set of tuples is mapped to the first spine switch.

6. The method of claim 1 , wherein the first endpoint is a multi-homed device with multiple network interfaces, and the first subflow and second subflow are established over one of the multiple network interfaces.

7. The method of claim 1 , wherein the method further comprises:

prior to configuring the first set of tuples and second set of tuples, detecting an elephant flow of data from an application executing on the first endpoint for transfer to the second endpoint; and

splitting the elephant flow to obtain the first packets and second packets.

8. The method of claim 1 , wherein the learning the path selection algorithm further comprises manually configuring the first endpoint with the path selection algorithm used by the intermediate device.

9. A non-transitory computer-readable storage medium that includes a set of instructions which, in response to execution by a processor of a computing device, cause the processor to perform a method to influence path selection during a multipath connection between a first endpoint supported by the computing device and a second endpoint, the method comprising:

configuring, for a first subflow of the multipath connection, a first set of tuples that includes a network address of the first endpoint and a first port number;

establishing, over a network interface of the first endpoint, the first subflow with the second endpoint;

learning a path selection algorithm used by an intermediate device to select a path for a subflow of the multipath connection;

configuring, for a second subflow of the multipath connection, a second set of tuples that includes the network address of the first endpoint and a second port number, wherein the second set of tuples is configured to generate a second hash value that is different to a first hash value generated for the first set of tuples according to the path selection algorithm learned by the first endpoint;

establishing, over the network interface, the second subflow with the second endpoint; and

sending, over the network interface, first packets on the first subflow and second packets on the second subflow to the second endpoint via the intermediate device, wherein the first packets each include the first set of tuples to influence the intermediate device to select a first path based on the first hash value and the second packets each include the second set of tuples to influence the intermediate device to select a second path based on the second hash value.

10. The non-transitory computer-readable storage medium of claim 9 , wherein the method further comprises:

prior to configuring the first set of tuples and second set of tuples, learning the path selection algorithm used by the intermediate device.

11. The non-transitory computer-readable storage medium of claim 10 , wherein the path selection algorithm is modulo-based and configuring the second set of tuples comprises:

based on the first port number, configuring the second port number such that the second hash value generated for the second set of tuples using the path selection algorithm is immediately next to the first hash value generated for the first set of tuples.

12. The non-transitory computer-readable storage medium of claim 10 , wherein the path selection algorithm is range-based, the first hash value generated for the first set of tuples is in a first range and configuring the second set of tuples comprises:

based on the first port number, configuring the second port number such that the second hash value generated for the second set of tuples using the path selection algorithm is in a second range that is immediately next to the first range.

13. The non-transitory computer-readable storage medium of claim 10 , wherein the intermediate device is a leaf switch that is connected to a first spine switch and a second spine switch and performs Equal Cost Multipath (ECMP) routing in a data center environment, and configuring the second set of tuples comprises:

configuring the second port number based on the first port number such that a second hash value generated for the second set of tuples is mapped to the second spine switch, and a first hash value generated for the first set of tuples is mapped to the first spine switch.

14. The non-transitory computer-readable storage medium of claim 9 , wherein the first endpoint is a multi-homed device with multiple network interfaces, and the first subflow and second subflow are established over one of the multiple network interfaces.

15. The non-transitory computer-readable storage medium of claim 9 , wherein the method further comprises:

prior to configuring the first set of tuples and second set of tuples, detecting an elephant flow of data from an application executing on the first endpoint for transfer to the second endpoint; and

splitting the elephant flow to obtain the first packets and second packets.

16. A computing device configured to influence path selection during a multipath connection between a first endpoint supported by the computing device and a second endpoint, comprising:

a processor;

a network interface; and

a non-transitory computer-readable medium having stored thereon instructions that, when executed by the processor, cause the processor to:

configure, for a first subflow of the multipath connection, a first set of tuples that includes a network address of the first endpoint and a first port number;

establish, over a network interface of the first endpoint, the first subflow with the second endpoint;

learn a path selection algorithm used by an intermediate device to select a path for a subflow of the multipath connection;

configure, for a second subflow of the multipath connection, a second set of tuples that includes the network address of the first endpoint and a second port number, wherein the second set of tuples is configured to generate a second hash value that is different to a first hash value generated for the first set of tuples according to the path selection algorithm learned by the first endpoint;

establish, over the network interface, the second subflow with the second endpoint; and

send, over the network interface, first packets on the first subflow and second packets on the second subflow to the second endpoint via the intermediate device, wherein the first packets each include the first set of tuples to influence the intermediate device to select a first path based on the first hash value and the second packets each include the second set of tuples to influence the intermediate device to select a second path based on the second hash value.

17. The computing device of claim 16 , wherein the instructions further cause the processor to:

prior to configuring the first set of tuples and second set of tuples, learn the path selection algorithm used by the intermediate device.

18. The computing device of claim 17 , wherein the path selection algorithm is modulo-based and instructions for configuring the second set of tuples cause the processor to:

based on the first port number, configure the second port number such that the second hash value generated for the second set of tuples using the path selection algorithm is immediately next to the first hash value generated for the first set of tuples.

19. The computing device of claim 17 , wherein the path selection algorithm is range-based, the first hash value generated for the first set of tuples is in a first range and instructions for configuring the second set of tuples cause the processor to:

based on the first port number, configure the second port number such that the second hash value generated for the second set of tuples using the path selection algorithm is in a second range that is immediately next to the first range.

20. The computing device of claim 17 , wherein the intermediate device is a leaf switch that is connected to a first spine switch and a second spine switch and performs Equal Cost Multipath (ECMP) routing in a data center environment and instructions for configuring the second set of tuples cause the processor to:

configure the second port number based on the first port number such that a second hash value generated for the second set of tuples is mapped to the second spine switch, and a first hash value generated for the first set of tuples is mapped to the first spine switch.

21. The computing device of claim 16 , comprising the network interface, being a first network interface and a second network interface, wherein the first subflow and second subflow are established over the first network interface or the second network interface.

22. The computing device of claim 16 , wherein the instructions further cause the processor to:

prior to configuring the first set of tuples and second set of tuples, detect an elephant flow of data from an application executing on the first endpoint for transfer to the second endpoint; and

split the elephant flow to obtain the first packets and second packets.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2016
From: SREERAMOJU, AKSHAY KUMAR; RAVI, MADHUSUDHAN; BASLER, BENJAMIN
To: NICIRA, INC.
Reel/Frame 038840/0305 →
Priority Claims (1)
IN 6567/CHE/2015 · Dec 8, 2015 · national
Continuity (1)
Related Publication 20170163522A1 · Jun 8, 2017
Cited By (6)
US 12,190,327 US 12,205,076 US 12,333,623 US 12,346,984 US 12,353,482 US 12,657,589