IP Library › Granted Patent US 12,289,311
Granted Patent B2
US 12,289,311 · App. 18/474,274 · Granted Apr 29, 2025

In-service software update managed by network controller

Inventors: Ortal Bashan (Tel Aviv, IL); Ayal Lior (Kiryat Ono, IL)
Assignee: Mellanox Technologies, Ltd
H04L63/10G06F8/656H04L41/40H04L49/358
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,289,311
App. No.
18/474,274
Granted
Apr 29, 2025
Kind
B2
Abstract

A controller includes one or more ports and a processor. The one or more ports are to communicate with a network that includes multiple network devices. The processor is to receive, from a network device in the network, a request to perform a software update in the network device, to evaluate a permission condition in response to the request, to send to the network device a response granting the request when the permission condition is met, and to at least temporarily deny the request when the permission condition is not met.

Claims (45)

1. A controller, comprising:

one or more ports, to communicate with a network that includes multiple network devices; and

a processor, to:

receive, from a network device in the network, a request to perform a software update in the network device, wherein the network device issues the request in response to an instruction from a Network Management System (NMS) that is separate from the controller;

evaluate a permission condition in response to the request; and

send to the network device a response granting the request when the permission condition is met, and at least temporarily deny the request when the permission condition is not met,

wherein the NMS does not maintain information on network devices that serve as a backup for other network devices, and on network devices currently undergoing a software update, while the controller maintains information on network devices that serve as a backup for other network devices, and on network devices currently undergoing a software update.

2. The controller according to claim 1 , wherein the network is a Software-Defined Network (SDN).

3. The controller according to claim 1 , wherein the network is an InfiniBand (IB) network, and wherein the controller is a Subnet Manager (SM) in the IB network.

4. The controller according to claim 1 , wherein the software update is an In-Service Software Update (ISSU).

5. The controller according to claim 1 , wherein the processor is to at least temporarily deny the request by (i) sending to the network device a notification denying the request, or (ii) temporarily refraining from granting the request, thereby deferring granting the request to a later time.

6. The controller according to claim 1 , wherein, in accordance with the permission condition, the processor is to temporarily deny the request when a temporary interruption in a control-plane operation is intolerable, and to grant the request when the temporary interruption in the control-plane operation is tolerable.

7. The controller according to claim 1 , wherein, in accordance with the permission condition, the processor is to temporarily deny the request upon finding that the network device provides backup to another network device.

8. The controller according to claim 1 , wherein, in accordance with the permission condition, the processor is to decide whether or not to grant the request based at least on a state of at least one other network device in the network.

9. The controller according to claim 1 , wherein, in accordance with the permission condition, the processor is to temporarily deny the request when more than a specified number of other network devices in the network are currently undergoing software updates.

10. The controller according to claim 1 , wherein, in accordance with the permission condition, the processor is to temporarily deny the request when a bandwidth degradation, over the network or over a region of the network, exceeds a permitted bandwidth degradation.

11. A network device, comprising:

multiple ports, to send and receive packets over a network;

packet processing circuitry, to process the packets; and

a processor, to:

receive an instruction to perform a software update in the network device, from a Network Management System (NMS) that is separate from the controller;

in response to the instruction, send a request to a controller of the network, requesting permission to perform the software update; and

defer performing the software update until receiving a response from the controller granting the request,

wherein the NMS providing the instruction to perform a software update does not maintain information on network devices that serve as a backup for other network devices, and on network devices currently undergoing a software update, while the controller maintains information on network devices that serve as a backup for other network devices, and on network devices currently undergoing a software update.

12. The network device according to claim 11 , wherein the processor is to receive the instruction to perform the software update from a Network Management System (NMS) that is separate from the controller.

13. A method for software updating, comprising:

in a controller, which controls a network that includes multiple network devices, receiving a request, from a network device in the network, to perform a software update in the network device, wherein the network device issues the request in response to an instruction from a Network Management System (NMS) that is separate from the controller;

evaluating in the controller a permission condition in response to the request; and

sending from the controller to the network device a response granting the request when the permission condition is met, and at least temporarily denying the request when the permission condition is not met,

wherein the NMS does not maintain information on network devices that serve as a backup for other network devices, and on network devices currently undergoing a software update, while the controller maintains information on network devices that serve as a backup for other network devices, and on network devices currently undergoing a software update.

14. The method according to claim 13 , wherein the network is a Software-Defined Network (SDN), and wherein the controller is an SDN controller.

15. The method according to claim 13 , wherein the network is an InfiniBand (IB) network, and wherein the controller is a Subnet Manager (SM) in the IB network.

16. The method according to claim 13 , wherein the software update is an In-Service Software Update (ISSU).

17. The method according to claim 13 , wherein at least temporarily denying the request comprises (i) sending to the network device a notification denying the request, or (ii) temporarily refraining from granting the request, thereby deferring granting the request to a later time.

18. The method according to claim 13 , wherein evaluating the permission condition comprises temporarily denying the request when a temporary interruption in a control-plane operation is intolerable, and granting the request when the temporary interruption in the control-plane operation is tolerable.

19. The method according to claim 13 , wherein evaluating the permission condition comprises temporarily denying the request upon finding that the network device provides backup to another network device.

20. The method according to claim 13 , wherein evaluating the permission condition comprises deciding whether or not to grant the request based at least on a state of at least one other network device in the network.

21. The method according to claim 13 , wherein evaluating the permission condition comprises temporarily denying the request when more than a specified number of other network devices in the network are currently undergoing software updates.

22. The method according to claim 13 , wherein evaluating the permission condition comprises temporarily denying the request when a bandwidth degradation, over the network or over a region of the network, exceeds a permitted bandwidth degradation.

23. A method for software updating, comprising:

in a network device that sends and receives packets over a network and processes the packets, receiving an instruction to perform a software update in the network device;

in response to the instruction, sending a request to a controller of the network, requesting permission to perform the software update; and

deferring performing the software update until receiving a response from the controller granting the request,

wherein receiving the instruction comprises receiving the instruction from a Network Management System (NMS) that is separate from the controller, and

wherein the NMS providing the instruction to perform a software update does not maintain information on network devices that serve as a backup for other network devices, and on network devices currently undergoing a software update, while the controller maintains information on network devices that serve as a backup for other network devices, and on network devices currently undergoing a software update.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2023
From: BASHAN, ORTAL; LIOR, AYAL
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 065039/0358 →
Continuity (1)
Related Publication 20250106211A1 · Mar 27, 2025
References Cited (152)
US 6070012A · Eitner et al. · 2000 [cited by applicant]
US 6397385B1 · Kravitz · 2002 [cited by applicant]
US 6535924B1 · Kwok et al. · 2003 [cited by applicant]
US 6640334B1 · Rasmussen · 2003 [cited by applicant]
US 7609617B2 · Appanna et al. · 2009 [cited by applicant]
US 7661025B2 · Banks et al. · 2010 [cited by applicant]
US 7774438B2 · Zilbershtein · 2010 [cited by examiner]
US 8027248B2 · Balasubramanian · 2011 [cited by examiner]
US 8068409B2 · Kumaresan · 2011 [cited by examiner]
US 8190720B1 · Yellai et al. · 2012 [cited by applicant]
US 8194642B2 · Rosenberg et al. · 2012 [cited by applicant]
US 8219794B1 · Wang et al. · 2012 [cited by applicant]
US 8346913B2 · Gao et al. · 2013 [cited by applicant]
US 8364843B2 · Hanselmann · 2013 [cited by examiner]
US 8402453B2 · Gupta et al. · 2013 [cited by applicant]
US 8499060B2 · Narayanan · 2013 [cited by examiner]
US 8570877B1 · Bayar · 2013 [cited by examiner]
US 8627137B1 · Vaidya · 2014 [cited by examiner]
US 8705349B2 · Bloch · 2014 [cited by examiner]
US 8745614B2 · Banerjee et al. · 2014 [cited by applicant]
US 8782632B1 · Chigurapati et al. · 2014 [cited by applicant]
US 8799422B1 · Qu · 2014 [cited by examiner]
US 8943489B1 · Qu · 2015 [cited by examiner]
US 9021459B1 · Qu · 2015 [cited by examiner]
US 9030947B2 · Xu · 2015 [cited by examiner]
US 9049148B1 · Singh · 2015 [cited by examiner]
US 9088584B2 · Feng et al. · 2015 [cited by applicant]
US 9131014B2 · Kasat · 2015 [cited by examiner]
US 9177122B1 · Trier · 2015 [cited by applicant]
US 9182972B2 · Hanselmann · 2015 [cited by examiner]
US 9246702B1 · Sharma · 2016 [cited by examiner]
US 9455894B1 · Neelam · 2016 [cited by examiner]
US 9491107B1 · Scudder · 2016 [cited by examiner]
US 9769017B1 · Jose · 2017 [cited by examiner]
US 9846658B2 · Tatar · 2017 [cited by examiner]
US 9870219B1 · Manthiramoorthy et al. · 2018 [cited by applicant]
US 9935834B1 · Baveja · 2018 [cited by examiner]
US 10003498B2 · Shevenell · 2018 [cited by examiner]
US 10033631B1 · Baveja · 2018 [cited by examiner]
US 10079725B1 · Baveja · 2018 [cited by examiner]
US 10083026B1 · Venkata · 2018 [cited by examiner]
US 10084895B2 · Kasat · 2018 [cited by examiner]
US 10103995B1 · Baveja · 2018 [cited by examiner]
US 10164829B1 · Watson · 2018 [cited by examiner]
US 10200274B1 · Suryanarayana · 2019 [cited by examiner]
US 10284383B2 · Bloch et al. · 2019 [cited by applicant]
US 10419329B2 · Levi et al. · 2019 [cited by applicant]
US 10452386B1 · Kulchytsky et al. · 2019 [cited by applicant]
US 10608893B2 · Di Martino · 2020 [cited by examiner]
US 10721333B2 · Spear · 2020 [cited by examiner]
US 10764140B2 · Ozawa · 2020 [cited by examiner]
US 10824501B2 · Itkin et al. · 2020 [cited by applicant]
US 10838711B2 · Haramaty et al. · 2020 [cited by applicant]
US 10884728B2 · A · 2021 [cited by examiner]
US 10911508B2 · Jones · 2021 [cited by examiner]
US 10972402B1 · Akash · 2021 [cited by examiner]
US 10984107B2 · Itkin · 2021 [cited by applicant]
US 11012731B2 · Jones · 2021 [cited by examiner]
US 11082317B2 · Zhang · 2021 [cited by examiner]
US 11153194B2 · Roberts · 2021 [cited by examiner]
US 11252027B2 · Ben-Moshe et al. · 2022 [cited by applicant]
US 11321077B1 · Sakthikumar · 2022 [cited by applicant]
US 11405272B1 · Khan · 2022 [cited by examiner]
US 11489724B1 · Deshmukh · 2022 [cited by examiner]
US 11570116B1 · Seth · 2023 [cited by examiner]
US 11640291B2 · A · 2023 [cited by examiner]
US 11741232B2 · Sfadia et al. · 2023 [cited by applicant]
US 11778012B2 · Jones · 2023 [cited by examiner]
US 11792069B2 · Deshmukh · 2023 [cited by examiner]
US 11900096B2 · Mahishi · 2024 [cited by examiner]
US 11922162B2 · A · 2024 [cited by examiner]
US 11962507B1 · Seth · 2024 [cited by examiner]
US 11973648B2 · Mahishi · 2024 [cited by examiner]
US 11979286B1 · Koundinya · 2024 [cited by examiner]
US 12001835B2 · Rojas Fonseca · 2024 [cited by examiner]
US 12020019B2 · Rojas Fonseca · 2024 [cited by examiner]
US 20020092008A1 · Kehne et al. · 2002 [cited by applicant]
US 20030028800A1 · Dayan et al. · 2003 [cited by applicant]
US 20030188176A1 · Abbondanzio et al. · 2003 [cited by applicant]
US 20040024860A1 · Sato et al. · 2004 [cited by applicant]
US 20040042547A1 · Coleman · 2004 [cited by applicant]
US 20040083476A1 · Zhou et al. · 2004 [cited by applicant]
US 20040131115A1 · Burgess et al. · 2004 [cited by applicant]
US 20050021968A1 · Zimmer et al. · 2005 [cited by applicant]
US 20050114846A1 · Banks et al. · 2005 [cited by applicant]
US 20050114894A1 · Hoerl · 2005 [cited by applicant]
US 20050125519A1 · Yang et al. · 2005 [cited by applicant]
US 20060233182A1 · Appanna et al. · 2006 [cited by applicant]
US 20070174685A1 · Banks et al. · 2007 [cited by applicant]
US 20070179957A1 · Gibson · 2007 [cited by examiner]
US 20070183493A1 · Kimpe · 2007 [cited by applicant]
US 20070192610A1 · Chun et al. · 2007 [cited by applicant]
US 20070300207A1 · Booth et al. · 2007 [cited by applicant]
US 20080126541A1 · Rosenberg et al. · 2008 [cited by applicant]
US 20080165952A1 · Smith et al. · 2008 [cited by applicant]
US 20080195693A1 · Gao et al. · 2008 [cited by applicant]
US 20090063108A1 · De Atley et al. · 2009 [cited by applicant]
US 20090089774A1 · Lynch et al. · 2009 [cited by applicant]
US 20090199049A1 · Yorimitsu · 2009 [cited by applicant]
US 20100058306A1 · Liles et al. · 2010 [cited by applicant]
US 20100199272A1 · Mahajan et al. · 2010 [cited by applicant]
US 20120072734A1 · Wishman et al. · 2012 [cited by applicant]
US 20120072893A1 · Gupta et al. · 2012 [cited by applicant]
US 20120166781A1 · De Cesare et al. · 2012 [cited by applicant]
US 20120210115A1 · Park et al. · 2012 [cited by applicant]
US 20120291021A1 · Banerjee et al. · 2012 [cited by applicant]
US 20130024677A1 · Smith et al. · 2013 [cited by applicant]
US 20130036298A1 · De Atley et al. · 2013 [cited by applicant]
US 20130047031A1 · Tabone et al. · 2013 [cited by applicant]
US 20130145359A1 · Hanselmann · 2013 [cited by applicant]
US 20130155902A1 · Feng et al. · 2013 [cited by applicant]
US 20130219156A1 · Sears · 2013 [cited by examiner]
US 20130254906A1 · Kessler et al. · 2013 [cited by applicant]
US 20130262612A1 · Langas et al. · 2013 [cited by applicant]
US 20140047174A1 · Sakthikumar et al. · 2014 [cited by applicant]
US 20140189673A1 · Stenfort et al. · 2014 [cited by applicant]
US 20140317350A1 · Langas et al. · 2014 [cited by applicant]
US 20150058979A1 · Peeters et al. · 2015 [cited by applicant]
US 20160266894A1 · Panicker et al. · 2016 [cited by applicant]
US 20170063539A1 · Balakrishnan et al. · 2017 [cited by applicant]
US 20170147356A1 · Kotary et al. · 2017 [cited by applicant]
US 20170161483A1 · Li et al. · 2017 [cited by applicant]
US 20170168803A1 · Katyar et al. · 2017 [cited by applicant]
US 20170346631A1 · De Atley et al. · 2017 [cited by applicant]
US 20180067800A1 · Gusev et al. · 2018 [cited by applicant]
US 20200026427A1 · Peleg et al. · 2020 [cited by applicant]
US 20200106828A1 · Elias et al. · 2020 [cited by applicant]
US 20200257521A1 · Jayakumar et al. · 2020 [cited by applicant]
US 20200310784A1 · Krishnan · 2020 [cited by examiner]
US 20200326925A1 · Nachimuthu et al. · 2020 [cited by applicant]
US 20210081365A1 · Conley · 2021 [cited by examiner]
US 20210211281A1 · Park et al. · 2021 [cited by applicant]
US 20210240489A1 · Xie et al. · 2021 [cited by applicant]
US 20220156377A1 · Xie et al. · 2022 [cited by applicant]
US 20220171649A1 · Green · 2022 [cited by examiner]
US 20220182433A1 · Jones · 2022 [cited by examiner]
US 20230075108A1 · Subramaniam · 2023 [cited by examiner]
EP 3176723A1 · 2017 [cited by applicant]
U.S. Appl. No. 18/349,147 Office Action dated Feb. 23, 2024. [cited by applicant]
PCI Express® Base Specification, Revision 4.0, Version 0.3 , pp. 1-1053, Feb. 19, 2014. [cited by applicant]
Unified Extensible Firmware Interface (UEFI) Specification , Version 2.7—Errata A , Chapter 31, pp. 1765-1798, Aug. 2017. [cited by applicant]
Implementation Guidance for FIPS 140-2 and the Cryptographic Module Validation Program, National Institute of Standards and Technology Communications Security Establishment, pp. 1-237, Mar. 28, 2003. [cited by applicant]
FIPS PUB 140-2—“Security Requirements for Cryptographic Modules”, pp. 1-69, May 25, 2001. [cited by applicant]
PKCS#1—Cryptography Standard, Version 2.2, published by RSA Laboratories , pp. 1-63, Oct. 27, 2012. [cited by applicant]
FIPS PUB 180-4—“Secure Hash Standard (SHS)”, pp. 1-36, Aug. 2015. [cited by applicant]
FIPS PUB 198-1—“The Keyed-Hash Message Authentication Code (HMAC)”, pp. 1-13, Jul. 2008. [cited by applicant]
Wikipedia, “Firmware” , pp. 1-6, Jul. 23, 2019. [cited by applicant]
Tremaine et al., “Pinnacle: IBM MXT in a memory controller chip,” IEEE Micro, vol. 21, No. 2, pp. 56-68, Mar.-Apr. 2001. [cited by applicant]
Brocade, “Network OS 7.0.1 for Brocade VDX”, Release Notes v4.0, pp. 1-199, Aug. 24, 2016. [cited by applicant]
Anonimous Authors, “Method of Verifying Dynamic Firmware Update Prior to Promotion,” IP.com Electronic Publication, pp. 1-5, Sep. 10, 2013. [cited by applicant]
Sfadia et al., U.S. Appl. No. 18/349,147, filed Jul. 9, 2023. [cited by applicant]
U.S. Appl. No. 18/349,147 Office Action dated May 24, 2024. [cited by applicant]