IP Library › Granted Patent US 9,455,966
Granted Patent B2
US 9,455,966 · App. 14/139,428 · Granted Sep 27, 2016

Load balancing hash computation for network switches

Inventors: Amir Roitshtein (Holon, IL); Tal Mizrahi (Haifa, IL)
Assignee: MARVELL ISRAEL (M.I.S.L) LTD.
H04L63/061H04L9/0643H04L9/0802H04L9/0816H04L9/0819H04L47/125H04L47/70H04L49/50H04L47/193H04L47/41
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,455,966
App. No.
14/139,428
Granted
Sep 27, 2016
Kind
B2
Abstract

A data unit is received at a network device associated with a link aggregate group. An initial key is determined based on information included in the data unit. Another key is generated based on a first field of the initial key and a second field of the initial key. A hash function is applied to the other key to generate a hash value. A communication link in the link aggregate group is determined based on the hash value, and the data unit is transmitted over the communication link.

Claims (76)

1. A method for load balancing traffic in a communication network, comprising:

receiving a data unit at a network device included in the communication network, the network device associated with a link aggregate group;

determining a first key based on information included in the data unit;

generating a second key based on a first field of the first key and a second field of the first key;

applying a hash function to the second key to generate a first hash value;

determining, based on the first hash value, a second hash value having a length different than a length of the first hash value;

determining, based on the second hash value, a communication link in the link aggregate group; and

causing the data unit to be transmitted over the determined communication link.

2. The method of claim 1 , wherein generating the second key comprises:

applying a commutative function to the first field of the first key and to the second field of the first key;

populating one of a first field of the second key or a second field of the second key with a result of the commutative function; and

populating the other one of the first field of the second key or the second field of the second key with one of: a constant, or a derivative of the result of the commutative function.

3. The method of claim 2 , wherein applying the commutative function comprises applying an addition function.

4. The method of claim 1 , wherein generating the second key is based on at least two of:

an IP (Internet Protocol) address source field of the data unit;

an IP address destination field of the data unit;

a MAC (media access control) address source field of the data unit;

a MAC address destination field of the data unit;

a virtual port source field associated with the data unit;

a virtual port destination field associated with the data unit;

a physical port source field associated with the data unit; or

a physical port destination field associated with the data unit.

5. The method of claim 1 ,

wherein determining the second hash value comprises determining the second hash value based on a mapping of first hash values to second hash values, and

wherein a range of the second hash values corresponds to a total number of communication links included in the link aggregate group.

6. The method of claim 5 , wherein the mapping of first hash values to second hash values corresponds to a modulo operation with a modulus based on the total number of communication links included in the link aggregate group.

7. The method of claim 1 , wherein determining the second hash value is based on a total number of communication links included in the link aggregate group.

8. The method of claim 1 , wherein the second hash value is determined to mitigate polarization across the link aggregate group.

9. A network device, comprising:

a network interface configured to receive a data unit;

a hash value generator configured to generate a first hash value based on the data unit, the hash value generator including:

(i) a key generator configured to:

determine a first key based on information included in the data unit, and

generate a second key based on a first field of the first key and a second field of the first key,

(ii) a hash function calculator configured to:

apply a hash function to the second key to generate a first hash value, and

determine, based on the first hash value, a second hash value having a length different than a length of the first hash value; and

a link selector configured to select, based on the second hash value, a communication link included in a link aggregate group, the selected communication link for egressing the data unit from the network device.

10. The network device of claim 9 , wherein:

the second key comprises a first field and a second field,

one of the first field of the second key or the second field of the second key corresponds to a result of a commutative function corresponding to a source field of the first key and to a destination field of the first key, and

the other one of the first field of the second key or the second field of the second key corresponds to one of: a constant, or a derivative of the result of the commutative function.

11. The network device of claim 10 , wherein the commutative function is an addition function.

12. The network device of claim 9 , wherein the first field of the first key and the second field of the first key comprise two or more of:

an IP (Internet Protocol) address source field corresponding to the data unit;

an IP address destination field corresponding to the data unit;

a MAC (media access control) address source field corresponding to the data unit;

a MAC address destination field corresponding to the data unit;

a virtual port source field corresponding to the data unit;

a virtual port destination field corresponding to the data unit;

a physical port source field corresponding to the data unit; or

a physical port destination field corresponding to the data unit.

13. The network device of claim 9 , wherein the hash function calculator is configured to map first hash values to second hash values according to a modulo operation with a modulus based on the total number of communication links included in the link aggregate group.

14. The network device of claim 9 , wherein the hash function calculator is configured to determine the second hash value based on a total number of communication links included in the link aggregate group.

15. The network device of claim 9 , wherein the hash function calculator is configured to determine the second hash value to mitigate polarization across the link aggregate group.

16. A network device for load balancing traffic in a communication network, comprising:

a network interface to receive a data unit;

a hash value generator to generate a hash value based on the data unit, the hash value generator including:

(i) a key generator configured to generate a key based on the data unit;

(ii) a hash function calculator configured to generate the hash value based on the key;

(iii) a sizer configured to adjust a length of the hash value based on a total number of communication links included in a link aggregate group, the link aggregate group including the selected communication link, wherein an adjusted length of the hash value is different than an original length of the hash value; and

a link selector to select, based on the hash value having the adjusted length, a communication link to egress the data unit from the network device.

17. The network device of claim 16 , wherein:

the key comprises a source field and a destination field,

a value of one of the key source field or the key destination field is a result of a commutative function,

inputs to the commutative function include a value of a first field corresponding to the data unit and a value of a second field corresponding to the data unit, and

a value of the other one of the key source field or the key destination field is one of: a constant, or a derivative of the result of the commutative function.

18. The network device of claim 17 , wherein the first field corresponding to the data unit and the second field corresponding to the data unit comprise at least two of:

an IP (Internet Protocol) address source field corresponding to the data unit;

an IP address destination field corresponding to the data unit;

a MAC (Media Access Control) address source field corresponding to the data unit;

a MAC address destination field corresponding to the data unit;

a virtual port source field corresponding to the data unit;

a virtual port destination field corresponding to the data unit;

a physical port source field corresponding to the data unit; or

a physical port destination field corresponding to the data unit.

Continuity (3)
Continuation 13305802 · Nov 29, 2011
Provisional Application 61418362 · Nov 30, 2010
Related Publication 20140115167A1 · Apr 24, 2014