IP Library Granted Patent US 9,986,025
Granted Patent B2
US 9,986,025 · App. 15/162,628 · Granted May 29, 2018

Load balancing for a team of network interface controllers

Inventors: Jingchun Jiang (Beijing, CN); Donghai Han (Beijing, CN); Wenyu Zhang (Beijing, CN); Jianwei Ma (Beijing, CN)
Assignee: Nicira, Inc.
H04L67/1002H04L45/7453H04L47/10H04L47/125H04L47/16H04L47/623
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 9,986,025
App. No.
15/162,628
Granted
May 29, 2018
Kind
B2
Abstract

An example method is provided for a host to perform load balancing for multiple network interface controllers (NICs) configured as a team. The method may comprise the host detecting egress packets from a virtualized computing instance supported by the host for transmission to a destination via the team. The method may also comprise the host selecting one of the multiple NICs from the team based on load balancing weights associated with the respective multiple NICs. Each load balancing weight may be assigned based on a network speed supported by the associated NIC, and different load balancing weights are indicative of different network speeds among the multiple NICs in the team. The method may further comprise the host sending, via the selected one of the multiple NICs, the egress packets to the destination.

Claims (60)

1. A method for a host to perform load balancing for multiple network interface controllers (NICs) configured as a team, the method comprising:

detecting egress packets from a virtualized computing instance supported by the host for transmission to a destination via the team;

based on load balancing weights associated with the respective multiple NICs, selecting one of the multiple NICs from the team, wherein each load balancing weight is assigned based on a network speed supported by the associated NIC, and different load balancing weights are indicative of different network speeds among the multiple NICs in the team; and

sending, via the selected one of the multiple NICs, the egress packets to the destination.

2. The method of claim 1 , wherein the team includes a logical NIC that logically groups multiple physical NICs and the selecting one of the multiple NICs from the team comprises:

in response to determination that the logical NIC is selected, selecting one of the multiple physical NICs from the logical NIC based on load balancing weights associated with the respective multiple physical NICs, wherein each load balancing weight is assigned based on a network speed supported by the associated physical NIC.

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

assigning the load balancing weights to respective multiple NICs in the team based on the network speeds supported by the respective multiple NICs, wherein the load balancing weight assigned to the logical NIC is based on a total network speed supported by the multiple physical NICs.

4. The method of claim 2 , wherein the selecting one of the multiple NICs from the team comprises:

determining a first hash value associated with the egress packets; and

mapping the first hash value to a first hash table to select one of the multiple NICs from the team, wherein the first hash table includes entries representing the load balancing weights assigned to respective multiple NICs.

5. The method of claim 4 , wherein the team includes an active NIC on an active list and a backup NIC on a standby list and the method further comprises:

in response to determination that the active NIC is down, moving the active NIC from the active list to the standby list, moving the backup NIC from the standby list to the active list and updating the first hash table to include one or more entries representing a load balancing weight of the backup NIC.

6. The method of claim 4 , wherein the selecting one of the multiple physical NICs from the logical NIC comprises:

mapping a second hash value to a second hash table to select one of the multiple physical NICs from the logical NIC, wherein the second hash table includes entries representing the load balancing weights assigned to respective multiple physical NICs.

7. The method of claim 6 , wherein the selecting one of the multiple physical NICs from the logical NIC comprises:

using the first hash value to be the second hash value, mapping the first hash value to a subset of the entries of the first hash table to select the one of the multiple physical NICs from the logical NIC, wherein the subset of the entries of the first hash table are the entries of the second hash table.

8. The method of claim 6 , wherein the selecting one of the multiple NICs from the team comprises:

determining the first hash value or second hash value, or both, by applying a hashing function on one or more of the following: header information of the egress packets and a virtual port identifier via which the egress packets are received from the virtualized computing instance.

9. A non-transitory computer-readable storage medium that includes a set of instructions which, in response to execution by a processor of a host, cause the processor to perform a method of load balancing for multiple network interface controllers (NICs) configured as a team, the method comprising:

detecting egress packets from a virtualized computing instance supported by the host for transmission to a destination via the team;

based on load balancing weights associated with the respective multiple NICs, selecting one of the multiple NICs from the team, wherein each load balancing weight is assigned based on a network speed supported by the associated NIC, and different load balancing weights are indicative of different network speeds among the multiple NICs in the team; and

sending, via the selected one of the multiple NICs, the egress packets to the destination.

10. The non-transitory computer-readable storage medium of claim 9 , wherein the team includes a logical NIC that logically groups multiple physical NICs and the selecting one of the multiple NICs from the team comprises:

in response to determination that the logical NIC is selected, selecting one of the multiple physical NICs from the logical NIC based on load balancing weights associated with the respective multiple physical NICs, wherein each load balancing weight is assigned based on a network speed supported by the associated physical NIC.

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

assigning the load balancing weights to respective multiple NICs in the team based on the network speeds supported by the respective multiple NICs, wherein the load balancing weight assigned to the logical NIC is based on a total network speed supported by the multiple physical NICs.

12. The non-transitory computer-readable storage medium of claim 10 , wherein the selecting one of the multiple NICs from the team comprises:

determining a first hash value associated with the egress packets; and

mapping the first hash value to a first hash table to select one of the multiple NICs from the team, wherein the first hash table includes entries representing the load balancing weights assigned to respective multiple NICs.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the team includes an active NIC on an active list and a backup NIC on a standby list and the method further comprises:

in response to determination that the active NIC is down, moving the active NIC from the active list to the standby list, moving the backup NIC from the standby list to the active list and updating the first hash table to include one or more entries representing a load balancing weight of the backup NIC.

14. The non-transitory computer-readable storage medium of claim 12 , wherein the selecting one of the multiple physical NICs from the logical NIC comprises:

mapping a second hash value to a second hash table to select one of the multiple physical NICs from the logical NIC, wherein the second hash table includes entries representing the load balancing weights assigned to respective multiple physical NICs.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the selecting one of the multiple physical NICs from the logical NIC comprises:

using the first hash value to be the second hash value, map the first hash value to a subset of the entries of the first hash table to select the one of the multiple physical NICs from the logical NIC, wherein the subset of the entries of the first hash table are the entries of the second hash table.

16. The non-transitory computer-readable storage medium of claim 14 , wherein the selecting one of the multiple NICs from the team comprises:

determining the first hash value or second hash value, or both, by applying a hashing function on one or more of the following: header information of the egress packets and a virtual port identifier via which the egress packets are received from the virtualized computing instance.

17. A host configured to perform load balancing, the host comprising:

a processor;

multiple network interface controllers (NICs) configured as a team; and

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

detect egress packets from a virtualized computing instance supported by the host for transmission to a destination via the team;

based on load balancing weights associated with the respective multiple NICs, select one of the multiple NICs from the team, wherein each load balancing weight is assigned based on a network speed supported by the associated NIC, and different load balancing weights are indicative of different network speeds among the multiple NICs in the team; and

send, via the selected one of the multiple NICs, the egress packets to the destination.

18. The host of claim 17 , wherein the team includes a logical NIC that logically groups multiple physical NICs and the instructions for selecting one of the multiple NICs from the team cause the processor to:

in response to determination that the logical NIC is selected, select one of the multiple physical NICs from the logical NIC based on load balancing weights associated with the respective multiple physical NICs, wherein each load balancing weight is assigned based on a network speed supported by the associated physical NIC.

19. The host of claim 18 , wherein the instructions further cause the processor to:

assign the load balancing weights to respective multiple NICs in the team based on the network speeds supported by the respective multiple NICs, wherein the load balancing weight assigned to the logical NIC is based on a total network speed supported by the multiple physical NICs.

20. The host of claim 18 , wherein the instructions for selecting one of the multiple NICs from the team cause the processor to:

determine a first hash value associated with the egress packets; and

map the first hash value to a first hash table to select one of the multiple NICs from the team, wherein the first hash table includes entries representing the load balancing weights assigned to respective multiple NICs.

21. The host of claim 20 , wherein the team includes an active NIC on an active list and a backup NIC on a standby list and the instructions further cause the processor to:

in response to determination that the active NIC is down, move the active NIC from the active list to the standby list, move the backup NIC from the standby list to the active list and update the first hash table to include one or more entries representing a load balancing weight of the backup NIC.

22. The host of claim 20 , wherein the instructions for selecting one of the multiple physical NICs from the logical NIC cause the processor to:

map a second hash value to a second hash table to select one of the multiple physical NICs from the logical NIC, wherein the second hash table includes entries representing the load balancing weights assigned to respective multiple physical NICs.

23. The host of claim 22 , wherein the instructions for selecting one of the multiple physical NICs from the logical NIC cause the processor to:

using the first hash value to be the second hash value, map the first hash value to a subset of the entries of the first hash table to select the one of the multiple physical NICs from the logical NIC, wherein the subset of the entries of the first hash table are the entries of the second hash table.

24. The host of claim 22 , wherein the instructions for selecting one of the multiple NICs from the team cause the processor to:

determine the first hash value or second hash value, or both, by applying a hashing function on one or more of the following: header information of the egress packets and a virtual port identifier via which the egress packets are received from the virtualized computing instance.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2016
From: JIANG, JINGCHUN; HAN, DONGHAI; ZHANG, WENYU; MA, JIANWEI
To: NICIRA, INC.
Reel/Frame 038690/0545 →
Continuity (1)
Related Publication 20170346885A1 · Nov 30, 2017