IP Library › Granted Patent US 12,375,409
Granted Patent B1
US 12,375,409 · App. 18/636,118 · Granted Jul 29, 2025

Distributed dynamic load balancing in network systems

Inventors: Dor Joseph Kampeas (Ramat Gan, IL); Carmi Arad (Nofit, IL); Rami Zemach (Givat Shapira, IL); David Melman (Halutz, IL); Ronen Tausi (Raanana, IL)
Assignee: Marvell Israel (M.I.S.L) Ltd.
H04L47/125H04L45/124H04L45/24
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 12,375,409
App. No.
18/636,118
Granted
Jul 29, 2025
Kind
B1
Abstract

A source switching device in a switching system receives information measured by a target switching device in the switching system. The information is indicative of an amount of data received in a given amount of time by the target switching device via each of two or more first links coupled to the target switching device. The source switching device determines, based at least in part on the information received from the target device, a path, from among multiple paths from the source switching device to the target switching device, for transmission of a packet flow directed to the target switching device. The source switching device transmits, via the determined path for transmission of the packet flow to the target device, one or more packets belonging to the packet flow.

Claims (52)

1. A method for balancing traffic load in a network system that includes at least a first leaf switch device communicatively coupled to one or more second leaf switch devices via one or more spine switch devices, the method comprising:

for each of a plurality of paths through the network system, determining, at the first leaf switch device, a respective traffic share metric for a particular packet flow being transmitted by the first leaf switch device during a first time interval, the respective traffic share metric indicating a comparison of an amount of data in the particular packet flow during the first time interval versus an amount of data on the respective path during the first time interval;

determining, by the first leaf switch device, a path from among multiple paths for transmitting the particular packet flow during a second time interval using the traffic share metrics for the plurality of paths; and

transmitting, by the first leaf switch device, one or more packets belonging to the particular packet flow via the determined path during the second time interval.

2. The method for balancing traffic load of claim 1 , wherein the multiple paths include a first path and one or more second paths, and wherein the method further comprises:

for each of the one or more second paths, determining, by the first leaf switch device, a respective comparison metric that indicates a respective comparison of a first traffic share metric corresponding to the first path with a respective second traffic share metric corresponding to the second path;

wherein determining the path from among the multiple paths comprises determining the path using at least the one or more comparison metrics.

3. The method for balancing traffic load of claim 2 , wherein:

determining, for each of the one or more second paths, the respective comparison metric comprises determining, for each of the one or more second paths and using the traffic share metrics corresponding to the first path and the one or more second paths, a respective gain metric that indicates a respective potential gain in a share of traffic corresponding to the particular packet flow if the particular packet flow is redirected (i) from the first path to (ii) a respective second path; and

wherein determining the path from among the multiple paths comprises determining the path using at least the one or more gain metrics.

4. The method for balancing traffic load of claim 1 , wherein the plurality of paths includes a first path and one or more second paths, wherein the particular packet flow is actually transmitted by the first leaf switch device via the first path during the first time interval, and wherein determining, for each of the plurality of paths, the respective traffic share metric comprises:

determining a first traffic share metric corresponding to the first path using received traffic quantity information that is indicative of a first amount of data received at a first port of the one or more second leaf switch devices during the first time interval, the first port corresponding to the first path, the first amount of data corresponding to a first plurality of packet flows received at the first port; and

determining one or more respective second traffic share metrics corresponding to the one or more second paths using received respective traffic quantity information that are indicative of one or more respective second amounts of data received at one or more second ports of the one or more second leaf switches during the first time interval, the one or more second ports respectively corresponding to the one or more second paths, the one or more second amounts of data corresponding to one or more respective second pluralities of packet flows respectively received at the one or more second ports.

5. The method for balancing traffic load of claim 4 , further comprising:

receiving, at the first leaf switch device, one or more control messages from the one or more second leaf switch devices, the one or more control messages including i) the traffic quantity information that is indicative of the first amount of data received at the first port, and ii) the respective traffic quantity information that are indicative of the one or more respective second amounts of data received at the one or more second ports.

6. The method for balancing traffic load of claim 5 , wherein receiving the one or more control messages comprises receiving the one or more control messages via the one or more spine switch devices.

7. The method for balancing traffic load of claim 4 , further comprising:

determining, at the first leaf switch device, one or more respective comparison metrics that indicates respective comparisons of the first traffic share metric with the one or more second traffic share metrics; and

wherein determining the path from among the multiple paths comprises determining the path using at least the one or more comparison metrics.

8. The method for balancing traffic load of claim 1 , further comprising:

measuring, at the first leaf switch device, transmitted traffic quantity information that corresponds to the first leaf switch device transmitting the particular traffic flow during the first time interval;

wherein determining, for each of the plurality of paths, the respective traffic share metric for the particular packet flow comprises determining, for each of the plurality of paths, the respective traffic share metric for the particular packet flow using the transmitted traffic quantity information corresponding to the first leaf switch device transmitting the particular traffic flow.

9. The method for balancing traffic load of claim 1 , wherein determining, for each of the plurality of paths, the respective traffic share metric comprises:

determining, for each of the plurality of paths, the respective traffic share metric using a data rate of the particular packet flow.

10. The method for balancing traffic load of claim 1 , wherein transmitting the one or more packets via the determined path comprises transmitting the one or more packets to one of the second leaf target devices via one of the spine switch devices included in the determined path.

11. A first leaf switch device for operation in a network system, the network system further including one or more second leaf switch devices and one or more spine switch devices that communicatively couple the first leaf switch device with the one or more second leaf switch devices, the first leaf switch device comprising:

a plurality of ports to couple the first leaf switch device to respective links in the network system;

a packet processor device coupled to the plurality of ports, the packet processor configured to forward packets to the plurality of ports for transmission via the respective links, wherein the packet processor device comprises a load balancer device configured to:

for each of a plurality of paths through the network system, determine a respective traffic share metric for a particular packet flow being transmitted by the first leaf switch device during a first time interval, the respective traffic share metric indicating a comparison of an amount of data in the particular packet flow during the first time interval versus an amount of data on the respective path during the first time interval,

determine a path from among multiple paths for transmitting the particular packet flow during a second time interval using the traffic share metrics for the plurality of paths, and

forward one or more packets belonging to the particular packet flow via the determined path during the second time interval.

12. The first leaf switch device of claim 11 , wherein the multiple paths include a first path and one or more second paths, and wherein the load balancer device is further configured to:

for each of the one or more second paths, determine a respective comparison metric that indicates a respective comparison of a first traffic share metric corresponding to the first path with a respective second traffic share metric corresponding to the second path; and

determine the path using at least the one or more comparison metrics.

13. The first leaf switch device of claim 12 , wherein the load balancer device is further configured to:

determine, for each of the one or more second paths and using the traffic share metrics corresponding to the first path and the one or more second paths, a respective gain metric that indicates a respective potential gain in a share of traffic corresponding to the particular packet flow if the particular packet flow is redirected (i) from the first path to (ii) a respective second path; and

determine the path using at least the one or more gain metrics.

14. The first leaf switch device of claim 11 , wherein the plurality of paths includes a first path and one or more second paths, wherein the particular packet flow is actually transmitted by the first leaf switch device via the first path during the first time interval, and wherein the load balancer device is further configured to:

determine a first traffic share metric corresponding to the first path using received traffic quantity information that is indicative of a first amount of data received at a first port of the one or more second leaf switch devices during the first time interval, the first port corresponding to the first path, the first amount of data corresponding to a first plurality of packet flows received at the first port; and

determine one or more respective second traffic share metrics corresponding to the one or more second paths using received respective traffic quantity information that are indicative of one or more respective second amounts of data received at one or more second ports of the one or more second leaf switches during the first time interval, the one or more second ports respectively corresponding to the one or more second paths, the one or more second amounts of data corresponding to one or more respective second pluralities of packet flows respectively received at the one or more second ports.

15. The first leaf switch device of claim 14 , wherein the load balancer device is further configured to:

receive one or more control messages from the one or more second leaf switch devices, the one or more control messages including i) the traffic quantity information that is indicative of the first amount of data received at the first port, and ii) the respective traffic quantity information that are indicative of the one or more respective second amounts of data received at the one or more second ports.

16. The first leaf switch device of claim 15 , wherein the load balancer device is configured to receive the one or more control messages via the one or more spine switch devices.

17. The first leaf switch device of claim 14 , wherein the load balancer device is further configured to:

determine one or more respective comparison metrics that indicates respective comparisons of the first traffic share metric with the one or more second traffic share metrics; and

determine the path using at least the one or more comparison metrics.

18. The first leaf switch device of claim 11 , wherein:

the packet processor is further configured to measure transmitted traffic quantity information that corresponds to the first leaf switch device transmitting the particular traffic flow during the first time interval; and

the load balancer device is further configured to determine, for each of the plurality of paths, the respective traffic share metric for the particular packet flow using the transmitted traffic quantity information corresponding to the first leaf switch device transmitting the particular traffic flow.

19. The first leaf switch device of claim 11 , wherein the load balancer device is further configured to:

determine the respective traffic share metric using a data rate of the particular packet flow.

20. The first leaf switch device of claim 11 , wherein the packet processor is configured to forward the one or more packets to one of the second leaf target devices via one of the spine switch devices included in the determined path.

Continuity (3)
Continuation 17158939 · Jan 26, 2021
Continuation 15423389 · Feb 2, 2017
Provisional Application 62290013 · Feb 2, 2016
References Cited (158)
US 5032987A · Broder · 1991 [cited by applicant]
US 5896380A · Brown · 1999 [cited by applicant]
US 6035107A · Kuehlmann · 2000 [cited by applicant]
US 6249521B1 · Kerstein · 2001 [cited by applicant]
US 6363396B1 · Klots · 2002 [cited by applicant]
US 6426947B1 · Banker · 2002 [cited by applicant]
US 6430170B1 · Saints · 2002 [cited by applicant]
US 6535530B1 · Matsui · 2003 [cited by applicant]
US 6614758B2 · Wong · 2003 [cited by applicant]
US 6735670B1 · Bronstein · 2004 [cited by applicant]
US 6757742B1 · Viswanath · 2004 [cited by applicant]
US 6807179B1 · Kanuri · 2004 [cited by applicant]
US 6813268B1 · Kalkunte · 2004 [cited by applicant]
US 6874039B2 · Ganapathy · 2005 [cited by applicant]
US 6973082B2 · Devi · 2005 [cited by applicant]
US 7111162B1 · Bagepalli · 2006 [cited by applicant]
US 7190696B1 · Manur · 2007 [cited by applicant]
US 7224845B1 · Russo · 2007 [cited by applicant]
US 7280527B2 · Basso · 2007 [cited by applicant]
US 7346706B2 · Rezaaifar · 2008 [cited by applicant]
US 7362750B2 · Choi · 2008 [cited by applicant]
US 7424016B2 · Sweeney · 2008 [cited by applicant]
US 7424019B1 · Kopelman · 2008 [cited by applicant]
US 7443790B2 · Aicklen · 2008 [cited by applicant]
US 7496033B2 · Best · 2009 [cited by applicant]
US 7539750B1 · Parker · 2009 [cited by applicant]
US 7554914B1 · Li · 2009 [cited by applicant]
US 7567567B2 · Muller · 2009 [cited by applicant]
US 7580417B2 · Ervin · 2009 [cited by applicant]
US 7613209B1 · Nguyen · 2009 [cited by applicant]
US 7623455B2 · Hilla · 2009 [cited by applicant]
US 7636319B2 · Shankar · 2009 [cited by applicant]
US 7639614B2 · Nakagawa · 2009 [cited by applicant]
US 7643427B2 · Kokku · 2010 [cited by applicant]
US 7796594B2 · Melman · 2010 [cited by applicant]
US 7817627B2 · Beshai · 2010 [cited by applicant]
US 7821925B2 · Davies · 2010 [cited by applicant]
US 7821931B2 · Swenson · 2010 [cited by applicant]
US 7881221B2 · Arad · 2011 [cited by applicant]
US 7898959B1 · Arad · 2011 [cited by applicant]
US 7924860B1 · Frailong · 2011 [cited by applicant]
US 7941637B2 · Pelley · 2011 [cited by applicant]
US 7969880B2 · Yano · 2011 [cited by applicant]
US 7970961B2 · Ganapathy · 2011 [cited by applicant]
US 7979671B2 · Aviles · 2011 [cited by applicant]
US 8004990B1 · Callon · 2011 [cited by applicant]
US 8090913B2 · Pelley · 2012 [cited by applicant]
US 8130754B2 · Binkert · 2012 [cited by applicant]
US 8213420B2 · Donoghue · 2012 [cited by applicant]
US 8218553B2 · Kompella · 2012 [cited by applicant]
US 8238250B2 · Fung · 2012 [cited by applicant]
US 8243594B1 · Fotedar · 2012 [cited by applicant]
US 8244909B1 · Hanson · 2012 [cited by applicant]
US 8250399B1 · Mizrahi · 2012 [cited by applicant]
US 8274971B2 · Battle · 2012 [cited by applicant]
US 8279871B1 · Sivan et al. · 2012 [cited by applicant]
US 8339951B2 · Scaglione · 2012 [cited by applicant]
US 8355328B2 · Matthews · 2013 [cited by applicant]
US 8358651B1 · Kadosh · 2013 [cited by applicant]
US 8364711B2 · Wilkins · 2013 [cited by applicant]
US 8401043B1 · Kadosh · 2013 [cited by applicant]
US 8422508B2 · Beshai · 2013 [cited by applicant]
US 8503456B2 · Matthews · 2013 [cited by applicant]
US 8532099B2 · Kreeger · 2013 [cited by applicant]
US 8547971B1 · Mizrahi · 2013 [cited by applicant]
US 8553582B1 · Mizrahi et al. · 2013 [cited by applicant]
US 8578097B2 · Kim · 2013 [cited by applicant]
US 8587674B2 · Iwata · 2013 [cited by applicant]
US 8614950B2 · Roitshtein · 2013 [cited by applicant]
US 8625594B2 · Safrai et al. · 2014 [cited by applicant]
US 8660005B2 · Roitshtein · 2014 [cited by applicant]
US 8683061B2 · Sitaraman · 2014 [cited by applicant]
US 8756424B2 · Roitshtein et al. · 2014 [cited by applicant]
US 8792497B2 · Rajagopalan · 2014 [cited by applicant]
US 8848728B1 · Revah · 2014 [cited by applicant]
US 8948193B2 · Perlmutter · 2015 [cited by applicant]
US 9154444B1 · Mizrahi · 2015 [cited by applicant]
US 9166916B1 · Mizrahi · 2015 [cited by applicant]
US 9455967B2 · Roitshtein · 2016 [cited by applicant]
US 9923828B2 · Vanini · 2018 [cited by examiner]
US 10904150B1 · Kampeas et al. · 2021 [cited by applicant]
US 11962505B1 · Kampeas · 2024 [cited by examiner]
US 20020087716A1 · Mustafa · 2002 [cited by applicant]
US 20020093952A1 · Gonda · 2002 [cited by applicant]
US 20030043825A1 · Magnussen · 2003 [cited by applicant]
US 20030081599A1 · Wu · 2003 [cited by applicant]
US 20030147385A1 · Montalvo · 2003 [cited by applicant]
US 20030210688A1 · Basso · 2003 [cited by applicant]
US 20030235168A1 · Sharma · 2003 [cited by applicant]
US 20040015582A1 · Pruthi · 2004 [cited by applicant]
US 20040073640A1 · Martin · 2004 [cited by applicant]
US 20050083936A1 · Ma · 2005 [cited by applicant]
US 20050213582A1 · Wakumoto · 2005 [cited by applicant]
US 20060147208A1 · Aicklen · 2006 [cited by applicant]
US 20060245423A1 · Best · 2006 [cited by applicant]
US 20060251109A1 · Muller · 2006 [cited by applicant]
US 20060291392A1 · Alicherry · 2006 [cited by applicant]
US 20070168531A1 · Sitaraman · 2007 [cited by applicant]
US 20070280258A1 · Rajagopalan · 2007 [cited by applicant]
US 20080031263A1 · Ervin · 2008 [cited by applicant]
US 20080037531A1 · Donoghue · 2008 [cited by applicant]
US 20080037544A1 · Yano · 2008 [cited by applicant]
US 20080049774A1 · Swenson · 2008 [cited by applicant]
US 20080052488A1 · Fritz · 2008 [cited by applicant]
US 20080084881A1 · Dharwadkar · 2008 [cited by applicant]
US 20080114887A1 · Bryers · 2008 [cited by applicant]
US 20080123525A1 · Miyoshi · 2008 [cited by applicant]
US 20080159309A1 · Sultan · 2008 [cited by applicant]
US 20080181103A1 · Davies · 2008 [cited by applicant]
US 20080205655A1 · Wilkins · 2008 [cited by applicant]
US 20080225853A1 · Melman · 2008 [cited by applicant]
US 20080315985A1 · Johnsen · 2008 [cited by applicant]
US 20090003204A1 · Okholm · 2009 [cited by applicant]
US 20090196303A1 · Battle · 2009 [cited by applicant]
US 20090259825A1 · Pelley · 2009 [cited by applicant]
US 20090274154A1 · Kopelman · 2009 [cited by applicant]
US 20100023726A1 · Aviles · 2010 [cited by applicant]
US 20100046537A1 · Perlmutter · 2010 [cited by applicant]
US 20100098104A1 · Marshall · 2010 [cited by applicant]
US 20100142398A1 · Arad · 2010 [cited by applicant]
US 20100142410A1 · Huynh · 2010 [cited by applicant]
US 20100149979A1 · Denecheau · 2010 [cited by examiner]
US 20100214913A1 · Kompella · 2010 [cited by applicant]
US 20110007741A1 · Kreeger · 2011 [cited by applicant]
US 20110013627A1 · Matthews · 2011 [cited by applicant]
US 20110013638A1 · Matthews · 2011 [cited by applicant]
US 20110013639A1 · Matthews · 2011 [cited by applicant]
US 20110026541A1 · Beshai · 2011 [cited by applicant]
US 20110093660A1 · Pelley · 2011 [cited by applicant]
US 20110102612A1 · Iwata · 2011 [cited by applicant]
US 20110134925A1 · Safrai · 2011 [cited by applicant]
US 20110164616A1 · Kloth · 2011 [cited by applicant]
US 20110295894A1 · Yoo · 2011 [cited by applicant]
US 20110296411A1 · Tang · 2011 [cited by applicant]
US 20120042121A1 · Kim · 2012 [cited by applicant]
US 20120136846A1 · Song · 2012 [cited by applicant]
US 20130013880A1 · Tashiro · 2013 [cited by applicant]
US 20140016470A1 · Li · 2014 [cited by applicant]
US 20140093073A1 · Horgan · 2014 [cited by applicant]
US 20140115167A1 · Roitshtein · 2014 [cited by applicant]
US 20140160934A1 · Roitshtein · 2014 [cited by applicant]
US 20140301394A1 · Arad · 2014 [cited by applicant]
US 20140325228A1 · Roitshtein · 2014 [cited by applicant]
US 20160142269A1 · Konduru · 2016 [cited by examiner]
US 20170032011A1 · Song · 2017 [cited by examiner]
US 20170085485A1 · Vanini · 2017 [cited by examiner]
US 20170093723A1 · Sane · 2017 [cited by examiner]
WO 9907180A2 · 1999 [cited by applicant]
Chen, “Home Network Basis: Transmission Environments and Wired/Wireless Protocols,” Prentice Hall, 26 pages (Jul. 2003). [cited by applicant]
IEEE Std 802.1Q, 2003 Edition, “IEEE Standards for Local and Metropolitan area networks—Virtual Bridged Local Area Networks,” The Institute of Electrical and Electronics Engineers, Inc., 327 pages (May 7, 2003). [cited by applicant]
IEEE Std 802.1Q—2011 (Revision of IEEE Std.802.1Q-2005), “IEEE Standard for Local and Metropolitan Area Networks—Media Access Control (MAC) Bridges and Virtual Bridged Local Area Networks,” The Institute of Electrical a… [cited by applicant]
IEEE P802. 1aq/D4.6, Draft Amendment to IEEE Std 802.1Q-2011, “IEEE Draft Standard for Local and Metropolitan Area Networks—Media Access Control (MAC) Bridges and Virtual Bridged Local Area Networks—Amendment XX: Shorte… [cited by applicant]
IEEE P802.1ad/D6.0, Draft Amendment to IEEE Std 802.1Q, “IEEE Draft Standard for Local and Metropolitan Area Networks—Virtual Bridged Local Area Networks—Amendment 4: Provider Bridges,” The Institute of Electrical and E… [cited by applicant]
Raoof et al., “Impact of Depolarization Effects on MIMO Polarized Wireless Configuration, Wireless Communications,” Networking and Mobile Computing, 2007, (WiCom 2007), pp. 1-4 (Sep. 2007). [cited by applicant]
Jaramillo, et al., “Padded Frames: A Novel Algorithm for Stable Scheduling in Load-Balanced Switches,” 40th Annual Conference on Information Sciences and Systems, pp. 1732-1737, Mar. 2006. [cited by applicant]
IEEE Std 802.3-2002, “IEEE Standard for Information technology—Telecommunications and information exchange between systems—Local and metropolitan area networks—Specific requirements, Part 3: Carrier sense multiple acces… [cited by applicant]
IEEE Std 802.Mar. 2005, “IEEE Standard for Information technology—Telecommunications and information exchange between systems—Local and metropolitan area networks—Specific requirements, Part 3: Carrier sense multiple ac… [cited by applicant]
IEEE Draft P802.3ae/D5.0 Supplement to Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method & Physical Layer Specifications—Media Access Control (MAC) Parameters, Physical Layer, and Management… [cited by applicant]