Patent Publication Number: US-11652690-B2

Title: Aborting network device upgrades

Description:
BACKGROUND 
     Many network environments contain multiple network devices that permit access to the network and/or form part of the network infrastructure. For example, in an enterprise environment multiple access devices such as access points and gateways may be provided to permit access to the Internet or to an enterprise computing network. The enterprise computing network infrastructure may include multiple network devices such as switches. Network devices of a particular type may be arranged in groups to facilitate efficient configuration and maintenance of the network devices. For example, a plurality of access points that are located on a floor of a building to permit access to the Internet or enterprise network to users located on that floor may be grouped into a single access point group, whilst a plurality of switches of the same type may be grouped into a single switch group. The network devices are coupled to a central controller such as a computer or server which performs configuration and maintenance operations for the coupled network devices under control of a user, typically via a user interface provided by the central controller. When a device upgrade (e.g. a device firmware upgrade) is available for the coupled network devices, the central control device applies the upgrade to the groups of network devices. This upgrade process can involve downtime of groups of network devices, as typically once an upgrade image has been received and installed by a network device, the network device must be rebooted. As will be appreciated, if all of the network devices of a group must reboot simultaneously, availability of the network(s) to which the group of network devices belong will be disrupted. For this reason, upgrades are usually scheduled for times when the disruption caused by such network device downtime will be minimised. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The following detailed description references the drawings, wherein: 
         FIG.  1    is a schematic representation of a network environment; 
         FIG.  2    is a schematic diagram illustrating a storage medium storing instructions for initiating and aborting a group update process for a group of network devices; 
         FIG.  3    is a schematic diagram illustrating a storage medium storing instructions for initiating and aborting a group update process for a group of network devices: 
         FIG.  4    is a flow diagram illustrating a group update process; 
         FIGS.  5 - 7    are schematic representations of user interface screens that may be displayed by a network controller to facilitate user control of a group update process; and 
         FIG.  8    is a flow diagram illustrating steps in a method performed by a network controller to initiate and abort a group update process responsive to commands received from a user. 
     
    
    
     DETAILED DESCRIPTION 
     One approach to updating or upgrading network devices such as access points belonging to a group is to update the network devices in the group sequentially according to an ordered list. For example, a list of network devices in a group may be ordered numerically according to identification numbers of the network devices, or alphabetically according to device names or other identifiers. Other ways of ordering network devices in a group into a list will be apparent to those skilled in the art. 
     When an update or upgrade is available, a central controller coupled to all of the network devices of the group initiates a group update process transmits an update image (e.g. a firmware image) to each of the network devices of the group in sequence according to the ordered list. The network devices of the group are thus updated sequentially according to the ordered list. 
     This approach avoids the problem of downtime associated with the approach discussed above, in which all of the devices of a group are updated at the same time. Downtime is avoided as a user device that is connected to a first network device that is being updated can be temporarily handed off or migrated to another network device in the group in order to maintain service to the user device during the while the first network device is updated. 
     An issue that can arise with this approach is that if the network device update cannot be completed for some reason (e.g. if the wrong update image has been provided, if the network device is unable to access a URL required to activate the update image, if a DNS failure occurs, if the download of the update image to the network device times out due to low bandwidth, if the network device freezes or enters a stuck state after receiving or activating the update image), the update may be re-tried multiple times for that network device (e.g. the update may be attempted three times) before the group update process moves on to the next network device in the ordered list. This means that the network operator has to wait until the update process has been attempted (perhaps multiple times) for all of the network devices in a group before any remedial action can be taken to rectify faults that may have occurred in the update process. For large groups of network devices this delay may be significant (several hours, perhaps). 
     Accordingly, one example of the present disclosure is directed to a network controller to couple to a plurality of network devices belonging to a group, the network controller to control a group update process for the plurality of network devices of the group. The network controller comprises a processing resource and a storage medium storing instructions. The instructions are executable by the processing resource to cause the network controller to initiate the group update process to update the network access devices of the group sequentially according to an ordered list and, responsive to receiving a command to abort the group update process during the group update process while a firmware image of a particular one of the plurality of network devices is updated, abort the group update process. Aborting the group update process comprises removing a first subset of network devices subsequent to the particular one of the plurality of network devices in the ordered list from the ordered list such that the firmware image of the first subset of network devices will not be updated and rolling back the firmware image of the particular network access device. 
     A further example of the present disclosure is directed to a method for updating network devices belonging to a group of network devices. The method comprises, at a network controller coupled to the network devices of the group of network access devices, responsive to a first user command, initiating a group update process for the network devices of the group to update the network devices of the group sequentially according to an ordered list and, responsive to a second user command during the group update process while a firmware image of a particular network device is updated, aborting the group update process for the network devices of the group. Aborting the group update process comprises removing a first subset of network devices subsequent to the particular network device in the ordered list from the ordered list such that the firmware image of the first subset of network devices will not be updated; and rolling back the firmware image of the particular network device. 
     A further example of the present disclosure is directed to a non-transitory machine-readable storage medium comprising instructions. When executed by a processing resource the instructions cause a computing device to initiate a group update process for a plurality of network access devices belonging to a group to update the network access devices of the group sequentially according to an ordered list and, responsive to receiving a command to abort the group update process during the group update process while a firmware image of a particular network access device is updated, abort the group update process. Aborting the group update process comprises removing a first subset of network access devices subsequent to the particular network access device in the ordered list from the ordered list such that the firmware image of the first subset of network access devices will not be updated and rolling back the firmware image of the particular network access device. 
       FIG.  1    is a schematic illustration of a network environment. The network environment, shown generally at  100 , includes a network controller  110  coupled to a first group  120  of network devices which, in this example, are access points  122 - 1 - 122 - 6 , and to a second group  130  of network devices which, in this example, are gateways  132 - 1 - 132 - 6 . It is to be understood that although the example network environment  100  of  FIG.  1    includes a group of access points and a group of gateways, the principles of the of the present disclosure are applicable to groups of network devices of different types, for example, switches and software defined networking devices (also referred to as SD-WAN devices) such as virtual controllers. 
     The network controller  110  includes a processing resource  140  and a storage medium  150  such as random access memory (RAM), read-only memory (ROM), a hard disc drive, a solid-state drive or any other suitable storage medium. The storage medium  150  stores instructions which, when executed by the processing resource  140 , cause the network controller to initiate  154  a group update process to update the network devices of a group  120 ,  130  sequentially according to an ordered list, and to abort  156  the group update process responsive to receiving a command to abort the group update process during the group update process while a firmware image of a particular one of the network devices is being updated. 
     The group update process may be initiated in response to a command issued by a user, or in response to a command issued as a result of a predetermined condition being satisfied, as will be described in further detail below. Similarly, the group update process may be aborted in response to a command issued by a user, or in response to a command issued as a result of detection by the network of a predetermined network state or change in the network, as will be described in further detail below. 
       FIG.  2    is a schematic illustration showing instructions  200  stored in the storage medium  150  to initiate and abort the group update process responsive to commands received from a user of the network controller  110  via a user interface of the network controller  110 . 
     The instructions  200  include an instruction  202  to cause the network controller  110  to display a user interface including a first control that can be actuated by a user of the network controller to initiate the group update process. The first control may be, for example, a first virtual button displayed on the user interface. 
     The instructions  200  further include an instruction  204  to cause the network controller  110  to initiate the group update process responsive to receiving a first user command corresponding to an initiate command received from the user via the first control. For example, the group update process may be initiated responsive to receiving a user input such as a mouse click, touch or other suitable user input on the first control displayed on the user interface. 
     The instructions  200  further include an instruction  206  to cause the network controller  110  to display on the user interface a second control that can be actuated by a user of the network controller  110  to abort the group update process. The second control may be, for example, a second virtual button displayed on the user interface. 
     The instructions  200  further include an instruction  208  to cause the network controller  110  to receive, from the network devices of the group of network devices, information regarding the progress of the group update process and to display progress information in a third control of the user interface. For example, the network controller  110  may receive from each network device of the group of network devices status information indicating if that device is waiting to be updated, has been updated or is in the process of being updated, and, if so, the progress (e.g. percentage completed) of the update process. The status information received from the network devices may be presented in the third control of the user interface, for example as a list showing network device identifiers (e.g. network device names or numbers) against the status information for that network device. 
     The instructions  200  further include an instruction  210  to abort the group update process responsive to receiving a second user command via the second control of the user interface. For example, the group update process may be aborted responsive to receiving a user input such as a mouse click, touch or other suitable user input on the second control displayed on the user interface. 
       FIG.  3    is a schematic illustration showing instructions  300  stored in the storage medium  150  to initiate and abort the group update process responsive to commands issued on detection of predetermined conditions. 
     The instructions  300  include an instruction  302  to initiate the group update process responsive to detection of a predetermined condition which may be, for example, detection by or notification to the network controller that a firmware update image for the network devices of the group of network devices is available, or detection that a predetermined or pre-set update time (e.g. a date and time) or the beginning of a predetermined or pre-set update time window (e.g. a date and time), has been reached. 
     The instructions  300  further include an instruction  304  to abort the group update process responsive to detection of a predetermined condition which may be, for example, a state or change detected by the network. For example, if the network detects that a network device being updated has entered a frozen state, the instruction  304  to abort the group update process may be executed. 
     As will be apparent from the discussion above, the group update process may be initiated and aborted responsive to user commands received, for example, via appropriate controls of a user interface of the network controller  110 , or responsive to detection of predetermined condition. Additionally, the group update process may be initiated responsive to a user command and, once initiated, aborted responsive to detection of a predetermined condition. Similarly, the group update process may be initiated responsive to detection of a predetermined condition, and, once initiated, may be aborted responsive to a user command. In other words, it is to be understood that the instructions illustrated in  FIGS.  2  and  3    are not mutually exclusive. 
       FIG.  4    is a flow diagram illustrating a group update process  400  that is initiated by a network controller such as network controller  110  to update network devices of a group of network devices such as groups  120 ,  130  of network devices  120 - 2 - 120 - 6 ,  130 - 2 - 130 - 6 . 
     At step  402  the network controller receives a command to initiate the group update process. As discussed above, the command to initiate the group update process may arise as a result of a user command such as a user input to a first control of a user interface displayed by the network controller, or may arise as a result of detection of a predetermined condition such as detection by or notification to the network controller that a firmware update image for the network devices of the group of network devices is available, or detection that a predetermined or pre-set update time (e.g. a date and time) or the beginning of a predetermined or pre-set update time window (e.g. a date and time), has been reached. 
     At step  404  the network controller initiates the group update process. Once the group update process has been initiated by the group update process, a second user interface control is displayed on the user interface, and can be actuated by a user to abort the group update process. 
     At step  406  the network controller transmits a firmware update image to all of the network devices of the group of network devices. Alternatively, the network controller may transmit to the network devices of the group of network devices a link to a location from which a firmware update image can be downloaded by the network devices of the group. 
     At step  408  the network controller issues a command to a first network device in the group of network devices, according to an ordered list of all of the network devices in the group, instructing the first network device to perform the update. 
     At step  410  the network device commences the update. The network device may need to re-start the update if it cannot be completed for any reason. During the update process the network device transmits information as to the status of the update, e.g. information as to whether the update has started, percentage completion information, number of retries and the like, to the network controller as the update progresses (step  412 ). The network controller may display status information based on the information received from the network device in the user interface, e.g. in a third control of the user interface. 
     At step  414  the network device completes the update and notifies the network controller that the update has been completed. The network controller performs a check at step  416  to determine whether all of the network devices in the group have been updated. If so, the process ends at step  418 . If not, the process returns to step  408 , at which the network controller commands the next network device in the group, according to the ordered list of network devices in the group, to perform the update, and steps  410 - 416  are repeated for that network device. 
     At any time during the process of updating the network device (i.e. after a network device commences the update at step  410  and before the network device completes the update at step  414 ), an abort command may be received by the network controller, either as a result of a user input on the second control of the user interface or as a result of a network-detected condition or change, for example, if the network detects that the network device being updated has entered a frozen state. 
     In response to a determination at step  420  that an abort command has been received, the network controller stops the update of the current network device at step  422 , and removes subsequent network devices from the ordered list at step  424 , to ensure that the update process does not continue for those subsequent network devices. At step  426  the network controller rolls back the firmware of the current network device to a version that was active on that network device prior to the commencement of the update process. This ensures that the network device is able to return to a functional state. The network controller may also, at step  428 , roll back the firmware of previous network devices in the ordered list (i.e. those network devices that have already been updated) such that all of the network devices of the group are operating with the same firmware version, to ensure compatibility between the network devices and to facilitate a subsequent group update process for the network devices of the group. 
       FIGS.  5 - 7    are schematic representations of user interface screens that may be displayed by a network controller such as network controller  110  to facilitate user control of a group update process. 
       FIG.  5    shows a first screen  500  of a user interface for the network controller, which permits a user to set parameters for a group update process. The screen  500  includes user interface elements such as radio buttons and drop-down menus allowing configure parameters of the group update process and to select whether the update process is performed immediately or at a scheduled time. The screen  500  also includes a first user interface control  510 , in this example in the form of a button labelled “Update”, which can be actuated by the user to issue a command to the network controller to initiate the group update process discussed above for a group of network devices using the parameters set by the user using the user interface elements. 
       FIG.  6    shows a second screen  600  of the user interface for the network controller, which permits a user to view the progress of a group update process and to abort the group update process if desired. The screen  600  includes a first user interface control  610 , in this example in the form of a button labelled “Update All” which can be actuated by the user to issue a command to the network controller to initiate the group update process discussed above for a group of network devices. The first user interface control thus provides an alternative to the first user interface control  510  of the screen  500  for initiating the group update process. The screen  600  also includes a second user interface control  620 , in this example in the form of a button labelled “Abort” which can be actuated by the user to issue a command to the network controller to abort the group update process as discussed above. The screen  600  also includes a third user interface control  630  which displays the status or progress of the group update process for each network device of the group of network devices. The information displayed on the third user interface control  630  enables the user to see at a glance the progress of the group update process and to identify any problems or delays that may be occurring in the group update process that may require the group update process to be aborted in order to be resolved. 
       FIG.  7    shows a third screen  700  of the user interface for the network controller, which permits a user to schedule a group update for a group of network devices. The screen  700  includes user interface elements allowing the user to select one or more groups of network devices to update, a firmware version to be used in the group update process, and to set a date and time at which the group update process should commence. A button  710  labelled “Schedule” can be actuated by the user to confirm the scheduled group update, whilst a button labelled “Cancel” can be actuated by the user to cancel scheduling of a group update. 
       FIG.  8    is a flow diagram illustrating steps in a method  800  performed by a network controller such as network controller  810  to initiate and abort a group update process responsive to commands received from a user. 
     At step  810  the network controller initiates a group update process to update network devices in a group sequentially according to an ordered list, in response to a user command, e.g. a user command issued by the user via the first user interface control  510  or  610  of the user interface screen  500  or  600 . The group update process proceeds as described above with reference to  FIG.  4   . 
     At step  820 , responsive to a second user command received by the network controller during the group update process while a firmware image of a particular network device is being updated (e.g. a command issued by the user via the second user interface control  620  of the screen  600 ), the network controller aborts the group update process. 
     To abort the group update process, at step  830  the network controller removes a first subset of network devices that are subsequent in the ordered list to the particular network device that is currently being updated, such that the firmware image of the first subset of network devices will not be updated. Because the group update process ends when all of the network devices in the ordered list have been updated (e.g. steps  416  and  418  of the process of  FIG.  4   ), removing the network devices that appear after the particular network device that is currently being updated in the ordered list has the effect of causing the group update process to end before all of the network devices of the group have been updated, thus prematurely aborting the group update process. 
     The network controller then, at step  840 , rolls back the firmware image of the particular network device that is being updated to a previous version, e.g. the firmware version that was operational on the particular network device immediately prior to the commencement of the group update process. This ensures that the network device is able to return to a functional state. 
     The network controller may also, at step  850 , roll back the firmware image for network devices prior to the particular network device in the ordered list (i.e. those network devices that have already been updated) to a previous version, e.g. the firmware version that was operational on the network devices immediately prior to the commencement of the group update process. This ensures that all of the network devices of the group are operating with the same firmware version, to ensure compatibility between the network devices and to facilitate a subsequent group update process for the network devices of the group. 
     As will be apparent from the foregoing discussion, the present disclosure provides a mechanism to abort a sequential group update process for a group of network devices such as access points, gateways, switches SD-WAN devices and the like which improves the efficiency of troubleshooting, by obviating the need for a user to wait for the entire sequential group update process to complete before remedial action can be taken to resolve any faults or errors that may have arisen in the group update process. Instead, the group update process can be aborted, either in response to a user command or in response to a predefined network-detected condition, part-way through the group update process to permit remedial action to be taken immediately on detection of an error or fault by the user or by the network. Moreover, in aborting the group update process, the network device that was being updated when the abort command was received, and in some cases the other network devices of the group, are restored to an operational state by rolling back their firmware to a previous version. 
     It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. The word “comprising” does not exclude the presence of elements or steps other than those listed in a claim, “a” or “an” does not exclude a plurality. Any reference signs in the claims shall not be construed so as to limit their scope.