IP Library Granted Patent US 9,736,070
Granted Patent B2
US 9,736,070 · App. 14/839,796 · Granted Aug 15, 2017

Load balancing overlay network traffic using a teamed set of network interface cards

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,736,070
App. No.
14/839,796
Granted
Aug 15, 2017
Kind
B2
Abstract

In one embodiment, a server includes a processor and logic integrated with and/or executable by the processor. The logic is configured to hash at least a portion of a packet according to a hashing algorithm to obtain a hash value. The logic is also configured to select an uplink with which to forward the packet based on the hash value. In another embodiment, a method includes hashing at least a portion of at least one packet according to a hashing algorithm to obtain a hash value using an accelerated network interface card (NIC) of a server. The accelerated NIC is configured to provide overlay functionality. The method also includes selecting an uplink, based on the hash value, from a plurality of uplinks available to send traffic out to a network using the accelerated NIC.

Claims (52)

1. A server, comprising a processor and logic integrated with and/or executable by the processor, the logic being configured to:

hash at least a portion of a packet according to a hashing algorithm to obtain a hash value, wherein the hashing algorithm is based on one or more parameters selected from the group consisting of:

a virtual port on which the packet was received;

an inner packet header source media access control (SMAC) address;

an inner packet header destination media access control (DMAC) address;

an inner source internet protocol (SIP) address; and

an inner destination internet protocol (DIP) address; and

select an uplink with which to forward the packet based on the hash value.

2. The server as recited in claim 1 , wherein the logic is further configured to:

receive the packet from a virtual machine (VM); and

forward the packet using the selected uplink.

3. The server as recited in claim 1 , wherein the hashing algorithm corresponds to a number of uplinks available on the server to send traffic out to a network.

4. The server as recited in claim 3 , wherein the hashing algorithm hashes perfectly to provide a number of results which equal the number of uplinks available to send traffic out to the network.

5. The server as recited in claim 1 , wherein only a header of the packet is hashed.

6. The server as recited in claim 1 , wherein the packet is overlay-encapsulated, and wherein a header of an inner packet of the packet is hashed.

7. The server as recited in claim 1 , wherein the hashing algorithm hashes to provide a number of results which correspond to a number of members of a team for which traffic is being load balanced.

8. The server as recited in claim 1 , wherein the logic is further configured to:

receive the packet, the packet being a broadcast address resolution protocol (ARP) request packet;

determine that a response is merited to the broadcast ARP request packet;

store a media access control (MAC) address corresponding to the selected uplink as a source MAC (SMAC) address in a response to the broadcast ARP request packet; and

send the response back to a source of the broadcast ARP request packet with the MAC address corresponding to the selected uplink stored as the SMAC address.

9. The server as recited in claim 8 , wherein the logic is further configured to:

generate a unicast ARP request packet and send the unicast ARP request packet to the source of the broadcast ARP request packet;

receive a response from the source of the broadcast ARP request packet, the response comprising address information about the source of the broadcast ARP request packet; and

store the address information about the source of the broadcast ARP request packet.

10. A method, comprising:

hashing at least a portion of at least one packet according to a hashing algorithm to obtain a hash value using an accelerated network interface card (NIC) of a server, the accelerated NIC being configured to provide overlay functionality, wherein the hashing algorithm is based on one or more parameters selected from the group consisting of:

a virtual port on which the packet was received;

an inner packet header source media access control (SMAC) address;

an inner packet header destination media access control (DMAC) address;

an inner source internet protocol (SIP) address; and

an inner destination internet protocol (DIP) address; and

selecting an uplink, based on the hash value, from a plurality of uplinks available to send traffic out to a network using the accelerated NIC.

11. The method as recited in claim 10 , further comprising:

receiving the at least one packet from a virtual switch of the server; and

forwarding the at least one packet using the selected uplink.

12. The method as recited in claim 10 , wherein the hashing algorithm corresponds to a number of the plurality of uplinks.

13. The method as recited in claim 12 , wherein the hashing algorithm hashes perfectly to provide a number of results which equal the number of the plurality of uplinks.

14. The method as recited in claim 10 , wherein only a header of the at least one packet is hashed.

15. The method as recited in claim 10 , wherein the packet is overlay-encapsulated, and wherein a header of an inner packet of the packet is hashed.

16. The method as recited in claim 10 , wherein the hashing algorithm hashes to provide a number of results which correspond to a number of members of a team for which traffic is being load balanced.

17. The method as recited in claim 10 , further comprising:

receiving the at least one packet, the at least one packet being a broadcast address resolution protocol (ARP) request packet;

determining that a response is merited to the broadcast ARP request packet;

storing a media access control (MAC) address corresponding to the selected uplink as a source MAC (SMAC) address in a response to the broadcast ARP request packet; and

sending the response back to a source of the broadcast ARP request packet with the MAC address corresponding to the selected uplink stored as the SMAC address.

18. The method as recited in claim 17 , further comprising:

generating a unicast ARP request packet and sending the unicast ARP request packet to a source of the at least one packet;

receiving a response from the source of the at least one packet, the response comprising address information about the source of the at least one packet; and

storing the address information about the source of the at least one packet.

19. The method as recited in claim 17 , further comprising in response to a determination that the response from the source of the at least one packet was not received, restricting address information from being learned from the broadcast ARP request packet.

20. The method as recited in claim 17 , further comprising in response to a determination that a response to a second broadcast ARP request packet is not merited, restricting address information from being learned from the second broadcast ARP request packet.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 057885/0644 →
CORRECTIVE ASSIGNMENT TO CORRECT THE FOURTH INVENTOR'S NAME PREVIOUSLY RECORDED AT REEL: 036453 FRAME: 0090. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 17, 2017
From: BISWAS, AMITABHA; KIDAMBI, JAYAKRISHNA; RAJAGOPALAN, SANTOSH; TANG, GANG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041380/0970 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2015
From: BISWAS, AMITABHA; KIDAMBI, JAYAKRISHNA; RAJAGOPALAN, SANTOSH; GANG, TANG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036453/0090 →