IP Library › Granted Patent US 8,660,005
Granted Patent B2
US 8,660,005 · App. 13/305,807 · Granted Feb 25, 2014

Load balancing hash computation for network switches

Inventors: Amir Roitshtein (Holon, IL); Tal Mizrahi (Haifa, IL)
Assignee: Marvell Israel (M.I.S.L) Ltd.
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 8,660,005
App. No.
13/305,807
Granted
Feb 25, 2014
Kind
B2
Abstract

Techniques to load balance traffic in a network device or switch include a network device or switch having a first interface to receive a data unit or packet, a second interface to transmit the packet, and a mapper to map between virtual ports and physical ports. The network device includes hash value generator configured to generate a hash value based on information included in the packet and based on at least one virtual port. The hash value may be optionally modified to load balance egress traffic of the network device. The network device selects a particular virtual port for egress of the packet, such as by determining an index into an egress table based on the (modified) hash value. The packet is transmitted from the network device using a physical port mapped to the particular virtual port.

Claims (64)

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

receiving a data unit at the network device via a first physical port;

determining a first virtual port corresponding to the first physical port;

determining an initial key based on information included in the data unit;

determining a hash value corresponding to the data unit based on the initial key and associated with at least one virtual port of the network device, including:

generating a depolarized initial key from the initial key by using a depolarizer that is unique, within a communication network including the network device, to the network device, and

performing a hash function on the depolarized initial key to determine the hash value for the data unit;

determining, based on the hash value, a second virtual port to which the data unit is to be forwarded;

determining a second physical port corresponding to the second virtual port; and

causing the data unit to be egressed from the network device via the second physical port.

2. The method of claim 1 , wherein performing the hash function comprises performing a hash function that is common across a plurality of network devices included in the communication network.

3. The method of claim 1 , wherein determining the second virtual port based on the hash value comprises:

determining an index based on the hash value;

indexing, using the index, an egress table to determine a particular entry of the egress table; and

determining the second virtual port based on contents of the particular entry of the egress table.

4. The method of claim 3 , wherein the hash value is a first hash value, and the method further comprises modifying the first hash value to form a modified hash value, and determining the index is based on the modified hash value.

5. The method of claim 4 , further comprising determining a particular link aggregate group of the network device that corresponds to the data unit, and wherein modifying the first hash value comprises modifying the first hash value based on a number of links included in the particular link aggregate group.

6. The method of claim 4 , wherein modifying the first hash value to form the modified hash value comprises selecting a subset of bits of the first hash value to form the modified hash value.

7. The method of claim 1 , further comprising determining the second physical port based on a mapping between physical ports and virtual ports of the network device.

8. A load-balancing network device, comprising:

a first network interface configured to receive a data unit;

a mapper configured to map physical ports to virtual ports;

a hash value generator configured to determine a first hash value corresponding to the data unit, the first hash value based on information included in the data unit and associated with one or more virtual ports of the network device;

a hash value modifier configured to modify, based on a number of links of a link aggregate group corresponding to the data unit, the first hash value to form a modified hash value;

a virtual port selector configured to determine, based on the modified hash value, a particular virtual port; and

a second network interface configured to egress the data unit, the second network interface being connected to a particular physical port mapped to the particular virtual port by the mapper.

9. The load-balancing network device of claim 8 , further comprising an egress table; and wherein the virtual port selector is configured to determine the particular virtual port by indexing the egress table with an index corresponding to the modified hash value.

10. The load-balancing network device of claim 8 , wherein the hash value modifier is configured to modify the first hash value by selecting a subset of bits of the first hash value to form the modified hash value.

11. The load-balancing network device of claim 8 , wherein the virtual port selector is configured to determine the particular virtual port by indexing an egress table with an index corresponding to the modified hash value.

12. A load-balancing network device, comprising:

a plurality of physical ports;

a mapper configured to map physical ports to virtual ports;

a hash value generator configured to determine a first hash value corresponding to a received data unit, the first hash value based on information included in the received data unit and associated with at least one virtual port of the network device;

a hash value modifier configured to modify, based on a number of links of a link aggregate group corresponding to the received data unit, the first hash value to form a modified hash value;

a virtual port selector configured to select, based on the modified hash value, a particular virtual port to which the received data unit is to be forwarded; and

a network interface configured to egress the received data unit, the network interface being connected to a particular physical port mapped to the particular virtual port by the mapper.

13. The load-balancing network device of claim 12 , further comprising an egress table; and wherein the virtual port selector is configured to determine the particular virtual port by indexing the egress table with an index corresponding to the modified hash value.

14. The load-balancing network device of claim 12 , wherein the hash value modifier is configured to modify the first hash value based on a selection of a subset of bits of the first hash value to form the modified hash value.

15. The load-balancing network device of claim 12 , wherein the virtual port selector is configured to determine the particular virtual port by indexing an egress table with an index corresponding to the modified hash value.

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

receiving a data unit at the network device via a first physical port;

determining a first virtual port corresponding to the first physical port;

determining an initial key based on information included in the data unit;

determining a first hash value corresponding to the data unit based on the initial key and associated with at least one virtual port of the network device;

determining, based on the first hash value, a second virtual port to which the data unit is to be forwarded, including:

(i) determining the particular link aggregate group of the network device that corresponds to the data unit,

(ii) modifying the first hash value based on a number of links included in the particular link aggregate group to form a modified hash value,

(iii) determining an index based on the modified hash value,

(iv) indexing, using the index, an egress table to determine a particular entry of the egress table, and

(v) determining the second virtual port based on contents of the particular entry of the egress table;

determining a second physical port corresponding to the second virtual port; and

causing the data unit to be egressed from the network device via the second physical port.

17. A load-balancing network device, comprising:

a first network interface configured to receive a data unit;

a mapper configured to map physical ports to virtual ports;

a hash value generator configured to determine a hash value corresponding to the data unit by (i) generating a depolarized key from an initial key by using a depolarizer that is unique, within a communication network including the load-balancing network device, to the load-balancing network device, and (ii) performing a hash function on the depolarized key to determine the hash value, wherein the hash value is associated with one or more ports of the load-balancing network device;

a virtual port selector configured to determine, based on the hash value, a particular virtual port; and

a second network interface configured to egress the data unit, the second network interface being connected to a particular physical port mapped to the particular virtual port by the mapper.

18. A load-balancing network device, comprising:

a plurality of physical ports;

a mapper configured to map physical ports to virtual ports;

a hash value generator configured to determine a hash value corresponding to a received data unit by (i) generating a depolarized key from an initial key by using a depolarizer that is unique, within a communication network including the load-balancing network device, to the load-balancing network device, and (ii) performing a hash function on the depolarized key to determine the hash value, wherein the hash value is associated with at least one virtual port of the load-balancing network device;

a virtual port selector configured to select, based on the hash value, a particular virtual port to which the received data unit is to be forwarded; and

a network interface configured to egress the received data unit, the network interface being connected to a particular physical port mapped to the particular virtual port by the mapper.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2011
From: ROITSHTEIN, AMIR; MIZRAHI, TAL
To: MARVELL ISRAEL (M.I.S.L) LTD.
Reel/Frame 027301/0726 →
Continuity (2)
Provisional Application 61418362 · Nov 30, 2010
Related Publication 20120134266A1 · May 31, 2012