IP Library › Granted Patent US 9,876,719
Granted Patent B2
US 9,876,719 · App. 15/061,755 · Granted Jan 23, 2018

Method and apparatus for load balancing in network switches

Inventors: Yoram Revah (Akko, IL); David Melman (Halutz, IL); Tal Mizrahi (Haifa, IL); Rami Zemach (Givat Shapira, IL); Carmi Arad (Nofit, IL)
Assignee: Marvell World Trade Ltd.
H04L45/7453H04L45/22H04L45/245H04L45/28H04L45/745H04L47/125
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,876,719
App. No.
15/061,755
Filed
Mar 4, 2016
Granted
Jan 23, 2018
Kind
B2
Examiner
AUNG, SAI
Art Unit
2416
USPC
370/389
Abstract

A forwarding engine in a network device selects one or more groups of multiple egress interfaces of the network device for forwarding packets received by the network device. An egress interface selector in the network device selects individual egress interfaces within the one or more groups selected by the forwarding engine. The egress interface selector includes a table associated with a first group of multiple egress interfaces, wherein elements in the table include values indicate individual egress interfaces in the first group. When the forwarding engine selects the first group, a table element selector of selects an element in the table to identify the individual egress interface for forwarding the packet.

Claims (45)

1. A network device, comprising:

a plurality of egress interfaces configured to transmit packets;

a forwarding engine configured to select one or more groups of multiple egress interfaces for forwarding packets received by the network device; and

an egress interface selector configured to select individual egress interfaces within the one or more groups selected by the forwarding engine, the egress interface selector including:

a table associated with a first group of multiple egress interfaces, wherein elements in the table include values indicating individual egress interfaces in the first group, and wherein a size of the table is at least an order of magnitude greater than a size of the first group, and

a table element selector configured to, when the forwarding engine selects the first group of multiple egress interfaces for forwarding a packet, select an element in the table to identify the individual egress interface for forwarding the packet.

2. The network device of claim 1 , wherein:

the table element selector includes a hash calculator configured to generate an output using i) a hashing function and ii) header information of the packet, wherein the output indicates the element in the table that is to be selected.

3. The network device of claim 2 , wherein:

the table includes N elements, wherein N is suitable positive integer; and

the hash calculator is configured to generate the output so that the output is from a set of N possible values.

4. The network device of claim 3 , wherein:

the hash calculator is configured to perform a modulo-N operation on an initial output.

5. The network device of claim 1 , further comprising:

an egress interface group manager configured to, in response to determining that an additional egress interface is to be added to the first group of multiple egress interfaces, replace values in a subset of elements in the table with new values that indicate the additional egress interface.

6. The network device of claim 5 , wherein the egress interface group manager is configured to select the subset of elements so that elements in the table are balanced across the first group of multiple egress interfaces including the additional egress interface.

7. The network device of claim 1 , further comprising:

an egress interface group manager configured to, in response to determining that a current egress interface is to be removed from the first group of multiple egress interfaces, replace first values in the table that indicate the current egress interface with second values that indicate other egress interfaces in the first group.

8. The network device of claim 7 , wherein the egress interface group manager is further configured to, when replacing the first values in the table, randomly select the second values that are to replace the first values.

9. The network device of claim 7 , wherein the egress interface group manager is further configured to, when replacing the first values in the table, select the second values that are to replace the first values in a round-robin manner.

10. The network device of claim 7 , wherein the egress interface group manager is further configured to, when replacing the first values in the table, select the second values that are to replace the first values based on respective traffic loads of the other egress interfaces in the group.

11. A method for selecting an egress interface, comprising:

receiving a packet at a network device;

selecting, at the network device, a group of multiple egress interfaces for transmitting the packet, the group from a plurality of egress interfaces of the network device;

in response to selecting the group, selecting, at the network device, an element in a table corresponding to the group, wherein entries in the table indicate individual egress interfaces in the group, and wherein a size of the table is at least an order of magnitude greater than a size of the group; and

transferring the packet to an egress interface in the group indicated by a value in the selected element of the table so that the packet can be transmitted by the egress interface in the group indicated by the value in the selected element of the table.

12. The method of claim 11 , wherein selecting the element in the table comprises:

calculating, at the network device, a hash value using header information of the packet; and

using the hash value as an index into the table.

13. The method of claim 12 , wherein:

the table includes N elements;

N is suitable positive integer; and

calculating the hash value comprises at least one of:

i) calculating the hash value so that the hash value is from a set of N possible values, and

ii) calculating an initial hash value and performing a modulo-N operation on the initial hash value.

14. The method of claim 11 , further comprising:

determining, at the network device, that an additional egress interface is to be added to the group of multiple egress interfaces; and

in response to determining that the additional egress interface is to be added to the group of multiple egress interfaces, replacing values in a subset of elements in the table with a new value that indicates the additional egress interface.

15. The method of claim 14 , further comprising selecting the subset of elements so that elements in the table are balanced across the group of multiple egress interfaces including the additional egress interface.

16. The method of claim 11 , further comprising:

determining, at the network device, that a current egress interface is to be removed from the group of multiple egress interfaces; and

in response to determining that the current egress interface is to be removed from the group of multiple egress interfaces, replacing first values in the table that indicate the current egress interface with second values that indicate other egress interfaces in the group.

17. The method of claim 16 , wherein replacing the first values comprises randomly selecting the second values that are to replace the first values.

18. The method of claim 16 , wherein replacing the first values comprises selecting the second values that are to replace the first values in a round-robin manner.

19. The method of claim 16 , wherein replacing the first values comprises selecting the second values that are to replace the first values based on respective traffic loads of the other egress interfaces in the group.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 051778/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2017
From: MARVELL ISRAEL (M.I.S.L) LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 043476/0009 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2017
From: REVAH, YORAM; MELMAN, DAVID; MIZRAHI, TAL; ZEMACH, RAMI; ARAD, CARMI
To: MARVELL ISRAEL (M.I.S.L) LTD
Reel/Frame 043749/0877 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2017
From: MARVELL INTERNATIONAL LTD.
To: MARVELL WORLD TRADE LTD.
Reel/Frame 043476/0019 →
LICENSE Recorded Sep 4, 2017
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 043476/0022 →
Continuity (2)
Provisional Application 62129507 · Mar 6, 2015
Related Publication 20160261500A1 · Sep 8, 2016