IP Library Granted Patent US 12,652,251
Granted Patent B2
US 12,652,251 · App. 18/132,519 · Granted Jun 9, 2026

Multiplane load balancing

Inventors: Haggai Eran (Yokneam Ilit, IL); Omer Shabtai (Tel Aviv, IL); Gil Bloch (Zichron Ya'acov, IL); Michael Avimelech Gandelman Milgrom (Aventura, FL); Guy Rozenberg Kunievsky (Rehovot, IL)
Assignee: MELLANOX TECHNOLOGIES, LTD.
H04L47/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 12,652,251
App. No.
18/132,519
Granted
Jun 9, 2026
Kind
B2
Abstract

A network device for load balancing in a multiplane network comprises a software stack that formats a data flow for transmission, and one or more circuits that identify the formatted data flow as a fixed data flow, and apply software-based load balancing to select a first plane, from among a plurality of planes of the multiplane network, for transmitting one or more data packets of the fixed data flow.

Claims (53)

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

a software stack that formats a data flow for transmission; and

one or more circuits, including hardware, to:

identify the formatted data flow as either a non-fixed data flow that supports out-of-order packet delivery or as a fixed data flow that does not support out-of-order packet delivery; and

apply software-based load balancing when the formatted data flow is the fixed data flow, wherein applying the software-based load balancing includes:

determining that a first plane, from among a plurality of planes of the multiplane network, over which the fixed data flow is to be transmitted is experiencing congestion, wherein each plane of the plurality of planes is associated with a different switch integrated circuit (IC) of a plurality of switch integrated circuits (ICs) in a multiplane network switch connected to the network device;

in response to determining that the first plane is experiencing congestion, selecting a second plane from among the plurality of planes based on characteristics of the multiplane network;

draining a send queue of the first plane; and

migrating the fixed data flow from a first switch IC, associated with the first plane, in the plurality of switch ICs to a second switch IC, associated with the second plane, in the plurality of switch ICs to enable transmission of one or more data packets of the fixed data flow over the second plane, wherein the one or more data packets of the fixed data flow are placed into a send queue of the second plane in response to an acknowledgement indicating that the send queue of the first plane is drained; and

queue, when the formatted data flow is the non-fixed data flow, one or more data packets of the non-fixed data flow for transmission over a pre-programmed plane of the plurality of planes.

2 . The network device of claim 1 ,

wherein the software-based load balancing includes:

selecting the second plane based on load statuses of the plurality of planes; and

placing the one or more data packets of the fixed data flow into the send queue associated with the second plane.

3 . The network device of claim 2 , wherein the load statuses of the plurality of planes are determined based on a number of fixed flows assigned to each plane.

4 . The network device of claim 2 , wherein each of the plurality of planes has a corresponding send queue.

5 . The network device of claim 1 , wherein the software stack is not aware of the plurality of planes, and wherein the one or more circuits are aware of the plurality of planes.

6 . The network device of claim 1 , wherein the characteristics of the multiplane network comprise a load status of the second plane.

7 . The network device of claim 1 , wherein the fixed data flow comprises a Transmission Control Protocol (TCP) transmission, and wherein the non-fixed data flow comprises a Remote Direct Memory Access (RDMA) transmission or a User Datagram Protocol (UDP) transmission.

8 . The network device of claim 1 , wherein the one or more circuits apply the software-based load balancing in response to determining that an amount of time during which data packets are not queued for transmission is greater than a threshold amount of time.

9 . The network device of claim 1 , wherein the software stack comprises a TCP stack.

10 . The network device of claim 1 , wherein the software stack comprises a multicast application for sending a multicast transmission.

11 . The network device of claim 10 , wherein the plurality of planes are visible to the multicast application.

12 . The network device of claim 11 , wherein the multicast application places one or more packets of the multicast transmission into a send queue associated with the pre-programmed plane.

13 . A networking system, comprising:

a plurality of switches implementing a multiplane network comprising a plurality of planes;

a multiplane device including a number of physical ports and a logical port associated with the number of the physical ports, the number of the physical ports corresponding to a number of the plurality of planes; and

a network device for load balancing transmissions over the multiplane network, the network device including:

a software stack to format a data flow for transmission; and

one or more circuits, including hardware, to:

identify the formatted data flow as either a non-fixed data flow that supports out-of-order packet delivery or as a fixed data flow that does not support out-of-order packet delivery; and

apply software-based load balancing when the formatted data flow is the fixed data flow, wherein applying the software-based load balancing includes:

determining that a first plane, from among the plurality of planes of the multiplane network, over which the fixed data flow is to be transmitted is experiencing congestion, wherein each plane of the plurality of planes is associated with a different switch integrated circuit (IC) of a plurality of switch integrated circuits (ICs) in a multiplane network switch connected to the network device;

in response to determining that the first plane is experiencing congestion, selecting a second plane from among the plurality of planes based on characteristics of the multiplane network;

draining a send queue of the first plane; and

migrating the fixed data flow from a first switch IC, associated with the first plane, in the plurality of switch ICs to a second switch IC, associated with the second plane, in the plurality of switch ICs to enable transmission of one or more data packets of the fixed data flow to the multiplane device over the second plane, wherein the one or more data packets of the fixed data flow are placed into a send queue of the second plane in response to an acknowledgement indicating that the send queue of the first plane is drained; and

queue, when the formatted data flow is the non-fixed data flow, one or more packets of the non-fixed data flow for transmission to the multiplane device over a pre-programmed plane of the plurality of planes.

14 . The networking system of claim 13 , wherein the software-based load balancing includes:

selecting the second plane, from among the plurality of planes, based on load statuses of the plurality of planes; and

placing the one or more data packets of the fixed data flow into the send queue associated with the second plane.

15 . The networking system of claim 13 , wherein each of the plurality of planes has a corresponding send queue.

16 . The networking system of claim 13 , wherein the characteristics of the multiplane network comprise a load status of the second plane.

17 . The networking system of claim 13 , wherein the one or more circuits apply the software-based load balancing in response to determining that an amount of time during which data packets are not queued for transmission is greater than a threshold amount of time.

18 . A network device for load balancing in a multiplane network, comprising:

a software stack to format a data flow for transmission; and

one or more circuits, including hardware, to:

identify whether the formatted data flow is either a non-fixed data flow that supports out-of-order packet delivery or a fixed data flow that does not support out-of-order packet delivery;

apply software-based load balancing when the formatted data flow is the fixed data flow, wherein applying the software-based load balancing includes:

determining that a first plane, from among a plurality of planes of the multiplane network, over which the fixed data flow is to be transmitted is experiencing congestion, wherein each plane of the plurality of planes is associated with a different switch integrated circuit (IC) of a plurality of switch integrated circuits (ICs) in a multiplane network switch connected to the network device;

in response to determining that the first plane is experiencing congestion, selecting a second plane from among the plurality of planes based on characteristics of the multiplane network;

draining a send queue of the first plane; and

migrating the fixed data flow from a first switch IC, associated with the first plane, in the plurality of switch ICs to a second switch IC, associated with the second plane, in the plurality of switch ICs to enable transmission of one or more data packets of the fixed data flow over the second plane, wherein the one or more data packets of the fixed data flow are placed into a send queue of the second plane in response to an acknowledgement indicating that the send queue of the first plane is drained; and

apply hardware-based routing when the formatted data flow is the non-fixed data flow to queue the non-fixed data flow for transmission over a pre-programmed plane of the plurality of planes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2023
From: ERAN, HAGGAI; SHABTAI, OMER; BLOCH, GIL; GANDELMAN MILGROM, MICHAEL AVIMELECH; KUNIEVSKY, GUY ROZENBERG
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 063272/0171 →
Continuity (1)
Related Publication 20240340242A1 · Oct 10, 2024
References Cited (132)
US 4965788A · Newman · 1990 [cited by applicant]
US 6424870B1 · Maeda · 2002 [cited by examiner]
US 7054263B1 · Lindblom et al. · 2006 [cited by applicant]
US 7058027B1 · Alessi · 2006 [cited by examiner]
US 7257758B1 · Manula et al. · 2007 [cited by applicant]
US 7397794B1 · Lacroute · 2008 [cited by examiner]
US 7668981B1 · Nagineni et al. · 2010 [cited by applicant]
US 7701852B1 · Hohn · 2010 [cited by examiner]
US 7742471B2 · Sreejith · 2010 [cited by examiner]
US 8576715B2 · Bloch · 2013 [cited by examiner]
US 8811391B2 · Lacroute · 2014 [cited by examiner]
US 8886783B2 · Johnsen et al. · 2014 [cited by applicant]
US 8958420B1 · Shekhar et al. · 2015 [cited by applicant]
US 9392035B1 · Jones · 2016 [cited by examiner]
US 9503371B2 · Thakkar · 2016 [cited by examiner]
US 9577845B2 · Thakkar · 2017 [cited by examiner]
US 9705798B1 · Abts · 2017 [cited by examiner]
US 9722935B2 · Bouanen · 2017 [cited by examiner]
US 9755972B1 · Mao · 2017 [cited by examiner]
US 9871712B1 · Sorenson, III · 2018 [cited by examiner]
US 10103992B1 · Bshara · 2018 [cited by examiner]
US 10218629B1 · An · 2019 [cited by examiner]
US 10320568B1 · Mao · 2019 [cited by examiner]
US 10382396B2 · Itkin et al. · 2019 [cited by applicant]
US 10567288B1 · Mutnuru · 2020 [cited by examiner]
US 10624148B1 · Bainbridge · 2020 [cited by examiner]
US 10812576B1 · Yuan · 2020 [cited by examiner]
US 10938626B2 · Gupta · 2021 [cited by examiner]
US 11411869B1 · Subagio · 2022 [cited by examiner]
US 11588819B1 · Wei · 2023 [cited by examiner]
US 11750513B2 · Bodanski et al. · 2023 [cited by applicant]
US 11895015B1 · Budhia · 2024 [cited by examiner]
US 11909671B1 · Chaves et al. · 2024 [cited by applicant]
US 20020064336A1 · Graves et al. · 2002 [cited by applicant]
US 20030120852A1 · McConnell et al. · 2003 [cited by applicant]
US 20040001503A1 · Manter · 2004 [cited by applicant]
US 20040143593A1 · Le Maut · 2004 [cited by examiner]
US 20040213220A1 · Davis · 2004 [cited by applicant]
US 20050271073A1 · Johnsen et al. · 2005 [cited by applicant]
US 20050273641A1 · Sandven et al. · 2005 [cited by applicant]
US 20060006905A1 · Chou et al. · 2006 [cited by applicant]
US 20060116023A1 · Spitaels et al. · 2006 [cited by applicant]
US 20070223448A1 · Tanazawa · 2007 [cited by examiner]
US 20080101233A1 · Shi · 2008 [cited by examiner]
US 20090089793A1 · Nandagopal · 2009 [cited by examiner]
US 20100095064A1 · Aviles · 2010 [cited by applicant]
US 20100098089A1 · Makino · 2010 [cited by examiner]
US 20100115174A1 · Akyol · 2010 [cited by examiner]
US 20100310253A1 · Kokje · 2010 [cited by examiner]
US 20110116443A1 · Yu · 2011 [cited by examiner]
US 20110228781A1 · Izenberg · 2011 [cited by examiner]
US 20110228789A1 · Jia · 2011 [cited by applicant]
US 20130054947A1 · Gavrilov · 2013 [cited by applicant]
US 20130089089A1 · Kamath et al. · 2013 [cited by applicant]
US 20130142066A1 · Yamaguchi · 2013 [cited by examiner]
US 20130142197A1 · Lacroute · 2013 [cited by examiner]
US 20130275835A1 · Aswadhati · 2013 [cited by applicant]
US 20130347092A1 · McBrearty et al. · 2013 [cited by applicant]
US 20140016493A1 · Johnsson · 2014 [cited by examiner]
US 20140078904A1 · Yu · 2014 [cited by examiner]
US 20140112338A1 · Huang · 2014 [cited by applicant]
US 20140177639A1 · Vershkov et al. · 2014 [cited by applicant]
US 20140211808A1 · Koren et al. · 2014 [cited by applicant]
US 20140301401A1 · Wang et al. · 2014 [cited by applicant]
US 20140310390A1 · Sorenson, III · 2014 [cited by examiner]
US 20140321853A1 · Beshai · 2014 [cited by examiner]
US 20150172112A1 · Itkin et al. · 2015 [cited by applicant]
US 20150181317A1 · Yin et al. · 2015 [cited by applicant]
US 20150281102A1 · Lee · 2015 [cited by examiner]
US 20150295828A1 · Lan · 2015 [cited by examiner]
US 20150338909A1 · Woodruff · 2015 [cited by applicant]
US 20160127252A1 · Tsirkin · 2016 [cited by examiner]
US 20170180264A1 · Izenberg · 2017 [cited by examiner]
US 20170195254A1 · Pham · 2017 [cited by examiner]
US 20170238362A1 · Karandikar · 2017 [cited by examiner]
US 20170264554A1 · Contavalli · 2017 [cited by examiner]
US 20170302525A1 · Chen et al. · 2017 [cited by applicant]
US 20170324681A1 · Johnsen et al. · 2017 [cited by applicant]
US 20180183758A1 · Itkin et al. · 2018 [cited by applicant]
US 20190007346A1 · Johnsen et al. · 2019 [cited by applicant]
US 20190012278A1 · Sindu et al. · 2019 [cited by applicant]
US 20190079897A1 · Kochevar-Cureton et al. · 2019 [cited by applicant]
US 20190141169A1 · Ni · 2019 [cited by examiner]
US 20190182180A1 · Frankel · 2019 [cited by examiner]
US 20190190777A1 · Uchizumi et al. · 2019 [cited by applicant]
US 20190190833A1 · Georgios · 2019 [cited by examiner]
US 20190245751A1 · Wong · 2019 [cited by examiner]
US 20190334792A1 · Ayandeh · 2019 [cited by examiner]
US 20190379594A1 · Johnsen et al. · 2019 [cited by applicant]
US 20200092122A1 · Mishra · 2020 [cited by examiner]
US 20200104275A1 · Sen et al. · 2020 [cited by applicant]
US 20200136999A1 · Levy-Abegnoli · 2020 [cited by examiner]
US 20200159568A1 · Goyal et al. · 2020 [cited by applicant]
US 20200296057A1 · Mula · 2020 [cited by examiner]
US 20200371828A1 · Chiou et al. · 2020 [cited by applicant]
US 20200371880A1 · Aibester · 2020 [cited by examiner]
US 20200382426A1 · Li · 2020 [cited by examiner]
US 20210019066A1 · Li · 2021 [cited by examiner]
US 20210051115A1 · Annamary · 2021 [cited by examiner]
US 20210105659A1 · Li · 2021 [cited by examiner]
US 20210135993A1 · Mittal · 2021 [cited by examiner]
US 20210152494A1 · Johnsen et al. · 2021 [cited by applicant]
US 20210160169A1 · Shen · 2021 [cited by examiner]
US 20210176182A1 · Yuan · 2021 [cited by examiner]
US 20210176543A1 · Bakopoulos · 2021 [cited by examiner]
US 20210211937A1 · Qu · 2021 [cited by examiner]
US 20210263866A1 · Norman et al. · 2021 [cited by applicant]
US 20210288921A1 · Levy · 2021 [cited by examiner]
US 20210328930A1 · Nikolaidis · 2021 [cited by examiner]
US 20210336895A1 · He · 2021 [cited by examiner]
US 20210367850A1 · Gafni · 2021 [cited by examiner]
US 20220124036A1 · Yan et al. · 2022 [cited by applicant]
US 20220150105A1 · Thubert · 2022 [cited by examiner]
US 20220182309A1 · Bataineh · 2022 [cited by examiner]
US 20220191127A1 · Kopser · 2022 [cited by examiner]
US 20220200933A1 · Dutta · 2022 [cited by examiner]
US 20220217092A1 · Hou · 2022 [cited by examiner]
US 20220245522A1 · Ramachandran et al. · 2022 [cited by applicant]
US 20220255847A1 · Xie · 2022 [cited by examiner]
US 20220286902A1 · Gao · 2022 [cited by examiner]
US 20220294737A1 · Dutta · 2022 [cited by examiner]
US 20220335563A1 · Elzur · 2022 [cited by applicant]
US 20220353197A1 · Singh · 2022 [cited by examiner]
US 20220385561A1 · Petrov · 2022 [cited by examiner]
US 20220385579A1 · Rangel Augusto · 2022 [cited by examiner]
US 20230013110A1 · Singh · 2023 [cited by examiner]
US 20230082780A1 · Sun · 2023 [cited by examiner]
US 20230106425A1 · Lu · 2023 [cited by examiner]
U.S. Appl. No. 18/073,662, filed Dec. 2, 2022, Bashan et al. [cited by applicant]
U.S. Appl. No. 18/114,860, filed Feb. 27, 2023, Levi et al. [cited by applicant]
U.S. Appl. No. 18/120,822, filed Mar. 13, 2023, Menes et al. [cited by applicant]
U.S. Appl. No. 18/200,443, filed May 22, 2023, Eran et al. [cited by applicant]