Updating access points of communication network
By partitioning the APs in the communication network and using a vertex shading algorithm to stagger the restart times, the problems of network interruption and excessive time caused by software updates in the existing technology are solved, and a more efficient update process is achieved.
Patent Information
- Application Number
- CN202510116411.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-03-21
- Filing Date
- 2025-01-24
- Publication Date
- 2025-09-23
AI Technical Summary
In the prior art, when updating software of an access point (AP) in a communication network, network interruption and excessively long update times are easily caused, and seamless switching is particularly difficult to achieve in a real-time business environment.
A vertex coloring algorithm is used to manage AP partitions. APs are assigned to different partitions through an iterative process and their restart times are staggered to reduce network interruption and shorten update time.
It effectively reduces network interruptions, shortens software update time, improves the predictability of the update process and network availability, and enhances the connection stability of user devices.
Smart Images

Figure CN120692556A_ABST
Abstract
Description
Background Art
[0001] A communication network includes various electronic devices that can communicate with each other via one or more communication interfaces. For example, a wireless local area network (WLAN) is a wireless computer network that uses wireless distribution technology (e.g., radio or infrared signals) to link two or more electronic devices. WLANs are typically implemented in a limited area such as a home, university, school, or office building. A communication network (some or all of which may be wireless networks) may include many electronic devices, such as user devices, access points (APs), controllers, and switches. For example, a WLAN communication network may include many electronic devices, such as one or more user devices, one or more wireless APs (WAPs), one or more WLAN controllers, and one or more network switches. A WAP may be a network device to which a user device is wirelessly connected to access the communication network. BRIEF DESCRIPTION OF THE DRAWINGS
[0002] For a more complete understanding of the present disclosure and its advantages, reference is now made to the following detailed description taken in conjunction with the accompanying drawings, in which:
[0003] Figure 1 An example system for updating an AP of a communication network according to certain implementations is shown;
[0004] Figure 2 An example update management system according to certain implementations is shown;
[0005] Figure 3 shows an example partition allocation table according to certain implementations;
[0006] Figure 4 shows an example neighbor graph and associated partitioning of APs according to certain implementations;
[0007] Figure 5 An example method for updating an AP of a communication network according to certain implementations is shown;
[0008] Figures 6A-6B An example method for partitioning APs of a communication network into partitions using a vertex shading algorithm is shown according to certain implementations;
[0009] Figure 7 An example method for updating an AP of a communication network according to certain implementations is shown; and
[0010] Figure 8 A block diagram of an example computer system is shown in accordance with certain implementations. DETAILED DESCRIPTION
[0011] A communication network (potentially including a WLAN) can be managed via one or more network management systems (NMSs), which may be coupled to managed communication network (e.g., WLAN) switches and / or controllers via another network. One or more NMSs can be used to maintain and protect the network. For example, the NMS can manage electronic devices connected to the communication network. Among other operations, the NMS can detect and monitor electronic devices coupled to the communication network, or electronic devices detectable by other electronic devices in the communication network, whether for network security or other purposes. Network information related to various electronic devices can be aggregated at various points within the communication network and reported to the NMS.
[0012] In a communication network, an AP may operate in part using software installed on the AP or otherwise accessible by the AP. The AP may execute an operating system and various other software to perform the intended functions of the AP. Such other software may include, for example, a database that stores state information for the AP, as well as various other daemons, processes, threads, agents, etc., which may be implemented as any number of microservices running on the AP's operating system. For the purposes of this disclosure, software may include software and / or firmware.
[0013] From time to time, it may be appropriate to deploy software updates to APs, whether to enhance security, provide additional / modified functionality, or for any other suitable purpose. Furthermore, it may be desirable to deploy software updates to these APs while they are active, such as when they are available to provide services to user devices and are actually providing access to the communication network. This so-called real-time update count can reduce or eliminate the need to find specific downtimes, most likely at odd times of the day or month, to perform software updates or simply accept that certain physical areas may lack network connectivity for a period of time while performing software updates.
[0014] The NMS can manage software updates, potentially including making software updates available to APs and managing which APs have completed software updates. One technique for updating such software includes installing a new version of any updated software (e.g., from a software image that includes updates to various daemons, databases, etc.) and restarting the AP, after which the new version of the software will be executed. However, this technique can disrupt the AP's ability to handle network traffic while the restart of the AP is performed. For example, restarting the AP can interrupt service to user devices connected to the communication network via the AP, causing the user devices to be disconnected from the communication network, potentially with no other available APs to transfer to in order to regain network connectivity. Some software update methods attempt to group APs for the purpose of performing software updates; however, these schemes often result in an excessive number of partitions, which prolongs the overall software update time because each partition is updated serially.
[0015] Certain implementations of the present disclosure use a vertex coloring algorithm to partition APs for software updates, which is an example of a graph coloring algorithm. The NMS or other suitable computer system can obtain network information of the communication network to which the software update is to be deployed, which network information can include network topology information and / or other information. The network topology information can include identification of network devices (e.g., APs) and neighbor information of the network devices (e.g., neighbor APs of each AP), potentially in the form of a radio frequency (RF) neighbor graph, or such a neighbor graph can be generated therefrom. Other network information can include network load, etc. The NMS can determine the number of partitions in which to divide the APs based on the network information.
[0016] The NMS then uses a vertex coloring algorithm (e.g., a modified version of the DSatur vertex coloring algorithm) to partition the APs into a determined number of partitions based on network information, including network topology information. The vertex coloring algorithm can be an iterative process that assigns APs to partitions one by one until the APs are assigned to the corresponding partitions. Generally speaking, the vertex coloring algorithm attempts to assign an AP to a partition that does not have a neighboring node assigned to the AP, but varies when this goal is not possible.
[0017] Certain implementations of the present disclosure may provide one or more technical advantages. Certain implementations may implement a more strategic approach to updating software on deployed APs and across an entire communications network, allowing a subset of APs to remain active while other APs are restarted as part of the update process. For example, relative to certain other techniques for partitioning APs for software updates, certain implementations may reduce the number of partitions, which may reduce overall software update time. As a specific example, for dense deployments of APs, certain implementations may generate two to six partitions, rather than the twenty or more partitions generated using other techniques for partitioning APs for software updates (e.g., RF channel-based partitioning). Certain implementations may allow the number of partitions to be customized based on the actual user device load on the communications network. For example, using only two partitions, if appropriate, may allow for faster updates to a lightly loaded communications network. In certain implementations, the number of partitions may remain the same even if additional RF channels are dynamically created by the operation of the communications network, potentially increasing the predictability of software update times. Of course, for any of these examples, the specific number of partitions may depend on various factors.
[0018] Certain implementations can reduce network disruptions relative to other solutions for performing real-time software updates, which can reduce or eliminate negative impacts on an organization during software updates. In scenarios where software updates are provided or managed by a third party (e.g., a service provider), reduced disruptions to the communication network can increase customer confidence in the software update process.
[0019] Go to the attached figure, Figure 1 An example system 100 for updating APs of a communication network according to certain implementations is shown. In the example shown, system 100 includes a managed communication network 102, an update management system 104, and a communication network 106. Although a particular implementation of system 100 is shown and described, this disclosure contemplates any suitable implementation of system 100.
[0020] In general, the update management system 104 is configured to enable potential real-time software updates for one or more APs of the managed communication network 102. In some implementations, the update management system 104 can be configured to determine a number of partitions into which to divide the APs of the managed communication network 102. In some implementations, the update management system 104 is configured to partition the APs of the managed communication network 102 into the determined number of partitions based on a vertex shading algorithm. In some implementations, the update management system 104 is configured to partition the APs into the determined number of partitions based on an iterative process that includes selecting a current AP for a current iteration of the iterative process from among the APs that are not yet assigned to a partition in the number of partitions; identifying a selected partition to be assigned to the current AP based on one or more partitions assigned to neighboring APs of the current AP; in response to identifying the selected partition, assigning the selected partition to the current AP; and in response to determining that one or more APs are not yet assigned to a partition, performing a next iteration of the iterative process.
[0021] Then, the update management system 104 is configured to, in response to determining that the AP has been assigned to a corresponding partition in the determined number of partitions, send a software update instruction to the AP. The software update instruction causes the APs in a first partition in the number of partitions to perform a reboot to install the software update on the APs in the first partition at a different time than the APs in a second partition in the number of partitions perform a reboot to install the software update on the APs in the second partition.
[0022] The managed communication network 102 may include controllers, APs, switches, routers, etc., for providing network connectivity to user devices. The managed communication network 102 may be a facility or may span multiple facilities, and may be located in a general geographic location or may span multiple geographic locations.
[0023] The managed communication network 102 may include one or more APs 108a-108j, which may be generally referred to as APs 108, and one or more user devices 110a-110p, which may be generally referred to as user devices 110. Figure 1 The managed communication network 102 is shown including a particular number of APs 108 and user devices 110 , but the managed communication network 102 may include any suitable number of APs 108 and user devices 110 .
[0024] Generally speaking, the AP 108 may provide an access point to a communication network, such as the managed communication network 102. The AP 108 may control network access for user devices 110 and, in some implementations, may authenticate the user devices 110 to connect to the AP 108 and, through the AP 108, potentially connect to other devices within or outside the managed communication network 102. The AP 108 may be implemented using any suitable combination of hardware, firmware, and software configured to provide wireless network connectivity to wireless user devices, such as the user device 110. The AP 108 may communicate with the network through a connection that may be a wired or wireless interface.
[0025] Each WAP 102 may include a device (such as a wireless router) that allows wireless devices (e.g., client devices 108) to connect to a WLAN implemented by some or all of the computing environment 100. Each WAP 102 may act as a radio transmitter for the WLAN. Each WAP 102 may convert network traffic into radio signals and transmit these signals to a wireless-enabled processing device. For example, each WAP 102 may act as a bridge to a wired local area network (LAN). In the illustrated example, each WAP 102 may be connected to a wired network via a WLAN controller 104, which in turn may be coupled to a cable to allow wireless-enabled computers (e.g., client devices 108) to access the wired network.
[0026] The APs 108 can be dispersed throughout a physical environment (e.g., throughout a facility or campus) to provide connectivity to the user devices 110 as they move through the physical environment. The present disclosure contemplates physical environments in which the APs are dispersed across one or more geographic locations, potentially spanning a large area and potentially including multiple geographic areas that are physically distant from one another (e.g., different buildings and / or sites). The APs 108 can be spaced apart in two or more dimensions. For example, the managed communications network 102 can be a commercial facility, and the APs 108 can be dispersed throughout the commercial facility to provide network access to the user devices 110 to other devices of the managed communications network and / or to other communications networks (e.g., the Internet).
[0027] User device 110 can represent any type of computing device capable of reading machine-executable instructions and having a network connection. Examples of computing devices may include servers, desktop computers, laptop computers, tablet computers, thin clients, mobile devices, personal digital assistants (PDAs), smartphones, printers, and Internet of Things devices or any other suitable type of computing device. In some embodiments, user device 110 includes a wireless network interface (e.g., a wireless network interface card (NIC) that allows user device 110 to perform wireless communications with another device (such as one or more APs 108)).
[0028] One or more structures may be located within the physical environment in which the managed communication network 102 is implemented. These structures may include walls, floors, furniture, windows, or other potential obstacles that may interfere with or otherwise hinder the ability of a user device 110 to connect to a particular AP 108. Furthermore, the APs 108 may have a limited range within which the user device 110 can connect to them. In some implementations, the APs 108 may be positioned throughout the physical environment in a manner that facilitates their availability to user devices 110 regardless of where the user devices 110 are located within the physical environment. In certain implementations, the APs 108 may be positioned throughout the physical environment in a manner that provides full or partial overlap of the coverage areas of the APs 108, potentially providing redundant, available connections in certain areas. This approach may increase the chances of a user device 110 finding an available AP 108 for connection even if one or more APs 108 are temporarily or permanently out of service, such as when an AP 108 experiences technical issues, reboots, or is otherwise unavailable.
[0029] Based on the ability of the user devices 110 to connect to the corresponding AP 108, each AP 108 can provide network connectivity to multiple user devices 110. As the user devices 110 move around the physical environment, the user devices 110 can maintain network connectivity by sequentially connecting to the multiple APs 108 (e.g., potentially based on the AP 108 that provides the strongest signal to the network and / or based on other suitable factors). For example, in the case where an enterprise associated with the managed communication network 102 occupies an entire floor of an office building, multiple APs 108 can be positioned throughout the floor. As the user devices 110 move from one end of the floor to the other, the user devices 110 can sequentially connect to the multiple APs 108 to maintain network connectivity.
[0030] The AP 108 may include any suitable combination of hardware, firmware, and software. For the purposes of this disclosure, software is understood to include software, firmware, or both. The AP 108 may execute or otherwise operate the AP 108 software to provide some or all of the functionality of the AP 108. The AP 108 software may be updatable. For example, the AP 108 may be configured to receive and install software updates according to the techniques described herein. In some implementations, installing a software update on the AP 108 may involve restarting the AP 108. For example, in some scenarios, a restart of the AP 108 may be performed to complete a software update for the AP 108.
[0031] The AP 108 can be configured to provide certain network information to one or more other devices of the system 100. For example, the AP 108 can provide network information to the update management system 104, either directly or, potentially indirectly, through one or more other devices that are configured to provide network information to the update management system 104. The content of the network information is described in more detail below, but can include information useful to the update management system 104 for managing software updates for the AP 108. In addition to managing software updates for the AP 108, some or all of this network information can be provided to another system associated with the update management system 104 for one or more purposes other than managing software updates for the AP 108. For example, the update management system 104 can be, or can be part of, an NMS, and the NMS can collect network information for various purposes associated with managing the managed communication network 102.
[0032] The update management system 104 can be configured to control part or all of the managed communication network 102, including the AP 108. For example, the update management system 104 can be a central control point accessible to administrators of the managed communication network 102. In some implementations, the update management system 104 can be an NMS, or can be part of an NMS. The update management system 104 is a computer system configured to control software updates for the AP 108.
[0033] The update management system 104 can be (or can be a portion of) a computer system including any suitable components. Suitable components can include one or more processors, one or more application-specific integrated circuits (ASICs), microcontrollers, memory, and / or other suitable components. The update management system 104 can be a physical device (e.g., an NMS computer). The update management system 104 can receive commands from a user interface and display output using the user interface. The user interface can be a command line interface, a graphical user interface, a web interface, or other suitable type of interface. The update management system 104 can process commands from the user interface, validate the commands, and execute the logic specified by the commands. The update management system 104 can output the results of the commands via the user interface. An administrator can use the user interface to access the update management system 104. The user interface can be a central access point for the update management system 104.
[0034] From time to time, the update management system 104 may seek to deploy software updates to the APs 108. For purposes of this disclosure, software updates may include software updates, firmware updates, or both. As described in greater detail subsequently, the update management system 104 may coordinate software updates for the APs 108. As described above, in certain computing environments, it may be desirable to perform so-called real-time updates. Real-time updates generally refer to performing software updates while the communication network (e.g., the managed communication network 102) is available to carry, and may actually be carrying, real-time traffic (e.g., associated with user devices 110). For example, real-time updates for the APs 108 may include software updates while the APs 108 are at least potentially available to serve user devices 110 (although at any particular time, a given AP 108 may or may not actually be serving any user devices 110).
[0035] The update management system 104 can store or otherwise access software updates and can provide those software updates to the AP 108. A software update can include multiple stages. For example, a software update can include downloading the software update to the AP 108 and activating the software update. The software update can be downloaded to the AP 108 in any suitable manner. For example, the AP 108 can periodically (or at suitable intervals or instances) check with the update management system 104 to determine whether a software update is available and, if so, request that the update management system 104 send the software update to the AP 108. As another example, the update management system 104 can notify the AP 108 when a software update is available. Activating the software can include installing the software update on the AP 108, such as by running one or more installation programs or in other suitable manners. To complete activation of some software updates, the AP 108 can be restarted, which can temporarily make the AP 108 unavailable to the user device 110.
[0036] Generally speaking, the update management system 104 is configured to enable potentially real-time software updates of one or more APs of the managed communication network 102. As part of managing software updates for the AP 108, the update management system 104 can partition the AP 108 into multiple partitions for deploying software updates to the AP 108. Dividing the AP 108 into partitions for deploying software updates to the AP 108 can stagger the time at which the AP 108 restarts to activate the software updates and become unavailable to the user device 110.
[0037] The update management system 104 can partition the APs 108 using a vertex shading algorithm. Prior to applying the vertex shading algorithm, the update management system 104 can be configured to determine a number of partitions into which the APs 108 of the managed computing network 102 will be divided. The update management system 104 can then be configured to partition the APs 108 of the managed communication network 102 into the determined number of partitions according to the vertex shading algorithm. In some implementations, the update management system 104 is configured to partition the APs 108 into the determined number of partitions according to an iterative process that includes selecting a current AP 108 for a current iteration of the iterative process from among the APs 108 that are not yet assigned to the number of partitions; identifying a selected partition to be assigned to the current AP 108 based on one or more partitions assigned to neighboring APs 108 of the current AP 108; assigning the selected partition to the current AP 108 in response to identifying the selected partition; and performing a next iteration of the iterative process in response to determining that one or more APs 108 are not yet assigned to a partition.
[0038] Then, the update management system 104 is configured to, in response to determining that the AP 108 has been assigned to a corresponding partition in the determined number of partitions, send a software update instruction to the AP 108. The software update instruction causes the AP 108 in a first partition in the number of partitions to perform a reboot to install the software update on the AP 108 in the first partition at a different time than the APs 108 in one or more partitions in the number of partitions perform a reboot to install the software update on the APs 108 in the other partitions. In some implementations, the APs 108 in all partitions are updated (specifically, rebooted) at different times.
[0039] Generally speaking, some implemented vertex shading algorithms attempt to assign neighbor APs to different partitions. This can increase the chance that a user device 110 disconnected from a first AP 108 for the first AP 108 to restart can connect to a second AP 108 that is a neighbor of the first AP 108.
[0040] The update management system 104 can communicate with components of the managed communication system 102 via a communication network 106. The communication network 106 can facilitate wireless and / or wired communications. The communication network 106 can communicate, for example, IP packets, frame relay frames, ATM cells, voice, video, data, and other suitable information between network addresses. The communication network 106 can include one or more local area networks (LANs), radio access networks (RANs), metropolitan area networks (MANs), wide area networks (WANs), mobile networks (e.g., using WiMax (802.16), WiFi (802.11), 3G, 4G, 5G, or any other suitable wireless technology in any suitable combination), all or a portion of the global computer network known as the Internet, and / or any other communication system or any suitable combination of systems at one or more locations, any of which can be any suitable combination of wireless and wired. The communication network 106 can include controllers, access points, switches, routers, and the like for forwarding traffic between the update management system 104 and the managed communication network 102. In some implementations, at least a portion of the communication network 106 can be an Ethernet network.
[0041] The update management system 104 may receive network information from components of the managed communication network 102. For example, the network information may be received from the AP 108 and / or other components of the managed communication network 102 (e.g., from one or more controllers, routers, switches, or other components). The network information may include network topology information, network performance information, and / or any other suitable information. For example, the network information may include an identifier of the AP 108, neighbor information of the AP 108, distance information of the AP 108, traffic / load information of the AP 108, and / or any other suitable information.
[0042] The update management system 104 may store network information, may receive the network information from network devices in the managed communication network 102, or may otherwise determine the network information from network information received by network devices in the managed communication network 102. Figure 2 Network information is described in more detail. The update management system 104 may use the network information to identify APs 108 of the managed communication network 102, determine the number of APs 108 of the managed communication network 102, determine neighbors of APs 108, determine distances between APs 108, determine network traffic and / or network load of the managed communication network 102, and / or for any other suitable purpose. Some or all of the network information and / or information determined from the network information may be used to determine a number of partitions into which to divide the APs 108 and / or to divide the APs 108 into the determined number of partitions using a vertex shading algorithm.
[0043] Although Figure 1 A particular configuration of components is shown, but the present disclosure contemplates other suitable configurations. For example, although Figure 1 Certain components are shown as being part of the same device, but any of these components may be grouped into a collection of one or more components that may exist and execute as part of any number of separate and operably connected devices. As another example, a single component may be configured to execute the Figure 1 Therefore, the implementation disclosed herein should not be limited to all or any part of the functions performed by the components shown in FIG. Figure 1 Configuration of components shown.
[0044] Figure 2 An example update management system 104 is shown according to some implementations. In the example shown, the update management system 104 includes one or more processors 200, memory 202, and one or more interfaces 204, all of which can communicate using a link 206 and, for simplicity, all of which may be referred to in the singular. The components of the update management system 104 may be implemented in any suitable combination of hardware, firmware, and software. Figure 1 The features of the system 100 are shown to describe portions of the update management system 104 .
[0045] The processor 200 may be any component or collection of components suitable for performing computing and / or other processing-related tasks. The processor 200 may be, for example, a microprocessor, a microcontroller, a control circuit, a digital signal processor, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a system on a chip (SoC), or a combination thereof. The processor 200 may include one or more processing cores. The processor 200 may include any suitable number of processors, or multiple processors may collectively form a single processor 200.
[0046] The memory 202 may include any suitable combination of volatile memory, non-volatile storage, and / or virtualization thereof. For example, the memory may include any suitable combination of magnetic media, optical media, random access memory (RAM), read-only memory (ROM), removable media, and / or any other suitable memory device. The memory 202 may include data structures for organizing and storing all or a portion of the stored data. The memory 202 may include non-transitory computer-readable media that stores programs executed by one or more of the one or more processors 200. One or more modules of the update management system 104 may be embodied in part or in whole as software and / or hardware for performing any of the functions described herein. For example, one or more modules of the update management system 104 may be embodied as software.
[0047] Interface 204 represents an interface that can be used from a communication network (e.g., Figure 1 106) receives information and transmits it to the user through the communication network (e.g., Figure 1 106) or both. Interface 204 represents any suitable computer component for transmitting information to or from a communication network 106. Interface 204 represents any real or virtual port or connection, including any suitable combination of hardware, firmware, and software, or a virtual port or connection including protocol conversion and data processing capabilities, to facilitate communication over a LAN, WAN, or other communication system that allows for the exchange of information. Interface 204 can facilitate wireless and / or wired communication.
[0048] Link 206 may include any suitable wired or wireless communication medium for communicating with each other among the components of update management system 104. For example, link 206 may include any suitable combination of buses or communication networks.
[0049] Returning to memory 202, in the example shown, memory 202 stores one or more software versions 208a-208n (generally referred to as software version / version(s) 208), network information 210, update management logic 212, partition information 214, and update plan 216. Each of these is described in more detail below.
[0050] Software version 208 includes Figure 1 For example, software version 208 may include one or more versions of software installed on the AP 108. Figure 1 One or more past versions of the software on the AP 108. Additionally or alternatively, the software version 208 may include the software to be installed on the AP 108. Figure 1 One or more versions of software to be installed on some or all of the APs 108. For example, software version 208 may include Figure 1 Software updates on the AP 108. The software version 208 may include versions / updates of software and / or firmware.
[0051] The software version 208 can be a software package stored in a repository, which can be a file store, a key-value store, or another suitable type of storage device. The repository can be local to the update management system 104 (e.g., stored in a memory of the update management system 104) or remote from the update management system 104 (e.g., a remote file server accessible to the update management system 104).
[0052] Network information 210 may include information about managed communications networks (e.g., Figure 1 The network information 210 may include information associated with the managed communication network 102. Figure 1 AP ID of AP 108, Figure 1 AP neighbor information of AP 108, Figure 1 The distances between neighboring APs 108, network traffic / load information, and / or any other suitable information. At least a portion of the network information 210 may include and / or may be used to determine network topology information and / or network performance information (e.g., network traffic / load information). For example, at least a portion of the network information 210 may include or may be used to determine a neighbor map of APs 108 of the managed communication network 102, an example of which is shown in FIG. Figure 4 is shown and referenced in Figure 4 Describe an example thereof.
[0053] The AP ID can take any suitable form, and potentially can take multiple forms. For example, the AP ID can be reported by the AP 108 in a first format (e.g., a service set identifier (SSID) and / or a basic service set identifier (BSSID)), and the update management system 104 can assign another name (e.g., AP4) that is mapped to the AP ID.
[0054] AP neighbor information may include an identification of each of the APs 108 neighboring APs 108. The distance between neighboring APs 108 may include information indicating the distance between neighboring APs 108. In some implementations, the AP neighbor information and the distance between neighboring APs 108 may be determined using RF information associated with the APs 108. For example, the RF neighbor data may be generated by each AP 108. For example, each AP 108 may correspond to other APs 108 in the RF domain via electronic devices. Each AP 108 may learn the path loss of its neighboring APs 108 from media access control (MAC) beacon frames or over-the-air (OTA) communications. For example, as defined in Institute of Electrical and Electronics Engineers (IEEE) 802.11 (e.g., a LAN protocol suite), MAC beacon frames may include information about a device (e.g., an AP 108), including an SSID, one or more BSSIDs, a frequency channel, supported rates, and / or other possible information.
[0055] Each AP 108 may periodically send RF data and / or neighbor path loss data to the update management system 104 via the communication network 106. The update management system 104 may use the path loss data to create connected weighted neighbor graph(s), where each vertex (e.g., node) of the weighted neighbor graph corresponds to an AP 108, and each edge of the weighted neighbor graph corresponds to a link between an AP 108 and a neighbor AP 108. In some implementations, if the path loss metric between two APs 108 exceeds a threshold, the two APs 108 are not considered neighbors. In some implementations, if the path loss metric between two APs 108 is less than a threshold, the two APs 108 may be considered neighbors. In some scenarios, user devices 110 may be able to roam between neighboring APs 108 with little or no disassociation or data loss.
[0056] In some implementations, the update management system 104 can determine the distances between the APs 108 based on the network information 210 (e.g., path loss information). Additionally or alternatively, one or more devices associated with the managed communication network 102 can determine the distances between the APs 108 and can communicate these distances to the update management system 104 as part of the network information 210. Although the use of path loss measurements is described as a basis for determining the distances between the APs 108, the distances between the APs 108 can be determined in any suitable manner.
[0057] Network performance information, such as network traffic / load information, may include information received from the managed communication network 102 (such as from the AP 108 and / or other network devices) indicating the amount of traffic handled by the managed communication network 102. For example, the network traffic / load information may indicate the load on the managed communication network by the update management system 104. The update management system 104 may track the network traffic / load information over time. The update management system 104 may use the network traffic / load information as part of determining the number of partitions in which to divide the AP 108 to perform software updates, determining when to indicate a software update to the AP 108, and / or for other suitable reasons.
[0058] like Figure 2 As shown, network information 218 may be received by update management system 104. For example, update management system 104 may receive Figure 1 Receive network information 218 from the AP 108 of the managed communication network 102 and / or from the AP 108 that can aggregate information from Figure 1 One or more other elements of the network information of the APs 108 of the managed communications network 102 may receive the network information 218. For example, one or more network controllers and / or network switches of the managed communications network 102 may aggregate information received from some or all of the APs 108 and may report the information or a derivative of the information as part of the network information 218. In some implementations, the network information may be received from the APs 108, if appropriate. Figure 1 The user device 110 of the managed communication network 102 receives a portion of the network information 218.
[0059] Network information 218 may include Figure 1 AP ID of AP 108, Figure 1 AP neighbor information of AP 108, Figure 1 The distance between neighbor APs 108 is given by Figure 1 108, path loss information recorded by AP 108, and / or any other suitable information. Any information described as being included in network information 218 may be stored as part of network information 210, and any information described as being included in network information 210 may be received as part of network information 218.
[0060] The update management system 104 can store some or all of the network information 218 directly as the network information 210. Additionally or alternatively, the update management system 104 can determine certain information from the network information 218 and then store the determined information as part of the network information 210. For example, to the extent that the network information 218 does not directly identify the neighbors of the AP 108, the network information 218 can include certain information (e.g., RF measurements, etc.) that can be used by the update management system 104 to determine the neighbors of the AP 108, estimates of distances between APs 108, and / or other suitable information.
[0061] The update management logic 212 may include instructions for analyzing some or all of the network information 210 / 218; determining a number of partitions into which to partition the AP 108; partitioning the AP 108 into the determined number of partitions based on a vertex shading algorithm and using at least a portion of the network information 210 / 218; and sending software update instructions 220 (as described below) to the AP 108 to perform a software update. The update management logic 212 may perform the partitioning according to the techniques described in this disclosure.
[0062] The update management logic 212 may process the network information 218 to determine identities of the APs 108 of the managed communications network 102, the number of APs 108 of the managed communications network 102, the neighbors of the APs 108, distances between some or all of the APs 108 (e.g., distances between neighboring APs 108), network traffic and / or network load of the managed communications network 102, and / or any other suitable network information 210. The network information 218 may include some of the network information 210 and / or the update management logic 212 may analyze the network information 218 to determine some of the network information 210.
[0063] The update management logic 212 can determine the number of partitions into which to divide the AP 108 to perform the software update. This disclosure contemplates the update management logic using any suitable process or algorithm to determine the number of partitions into which to divide the AP 108 to perform the software update. Some or all of the information in the network information 210 can be used to determine the number of partitions into which to divide the AP 108.
[0064] In some implementations, the number of partitions into which the APs 108 are to be divided can be determined based on the current user device load on the managed communication network 102 (e.g., the number of user devices 110 in the managed communication network 102, as can be determined from the network information 210 / 218). For example, assume that the managed communication network 102 includes 500 APs 108, and each AP 108 can provide service to an average of 10 user devices 110. In this example, if 2,500 user devices 110 are currently connected, the load is 50%, which can be carried by only 250 APs 108. If the number of partitions is selected to be 3, approximately 165 APs 108 (~500 / 3) can be restarted, while the remaining 335 APs 108 can provide service to the user devices 110. As another example, if 3,500 user devices 110 are currently connected, the load is 70%. If the number of zones is selected to be 5, then when approximately 100 APs 108 are restarted, the remaining 400 APs 108 can provide services for the user equipment 110 .
[0065] As just one specific example, the number of sectors into which to divide AP 108 may be determined according to the following formula:
[0066]
[0067] In this example, C AP represents the number of user devices 110 that a single AP 108 can handle (e.g., the user device capacity of a single AP 108); A represents the number of APs 108 in the managed communication network 102; C represents the number of user devices 110 connected to the managed communication network 102 (e.g., the APs 108 connected to the managed communication network 102); R U is the redundancy rate during software update; and P represents the number of partitions.
[0068] To provide additional explanation of this example formula, some additional variables and associated details may be helpful. For example, R may represent the redundancy rate of the network (e.g., managed communication network 102) in which the AP operates, and A P may represent the number of APs 108 in the partition, Au may represent the number of APs 108 that are up and running during the partition's restart (e.g., from partitions other than the partition being restarted), and Ac may represent the number of APs 108 suitable for carrying the current client load (e.g., the current number of user devices 110 in the managed communication network 102). According to certain embodiments, the following equations describe certain relationships between these variables.
[0069] A u =AAP
[0070]
[0071] To further describe the redundancy ratio (R), during the restart of a partition, the remaining operational APs 108 (A U It may be desirable to have a client capacity (e.g., the capacity of the AP 108 to serve the user devices 110) sufficient to carry the network client load C (e.g., the number of user devices 110 connected to the managed communications network 102) as well as some additional capacity to provide redundancy. U R may be the redundancy ratio during the restart of the partition, which may be the ratio of additional APs 108 desired, such as the number of APs 108 suitable for carrying the current client load (e.g., the current number of user devices 110 in the managed communication network 102). For example, if 100 APs 108 are sufficient to carry the current client load, and the desired redundancy ratio (R u ) is 0.25, then it may be appropriate to keep 125 APs 108 powered on during the reboot of the partitioned APs 108.
[0072] In some embodiments, the following equation may describe the number of APs 108 (Au) that are up and running during a restart of a partition (eg, from partitions other than the partition being restarted).
[0073] A u =A C +R u A C
[0074] In certain embodiments, the following equation may represent the number (Ac) of APs 108 suitable for carrying the current client load (eg, the current number of user devices 110 in the managed communication network 102).
[0075]
[0076] Making appropriate substitutions yields the following equation.
[0077]
[0078] Appropriate simplifications can produce the following equation.
[0079]
[0080] From the above equation for the number of APs 108 that are up and running during a restart of a partition, the following equation can be determined.
[0081]
[0082] Rearranging the above equation yields the following equation.
[0083]
[0084] Using the common denominator C AP Rewriting the right side produces the following equation and associated rewrite.
[0085]
[0086] Since this equation may yield a fraction, it may be desirable to upper bound this value as represented by the following equation, which corresponds to the example equation described above for determining the number of partitions into which to divide AP 108.
[0087]
[0088] In some implementations, the "current" traffic / load of the managed communication network 102 and / or associated APs 108 generally refers to the approximate time at which partitioning is performed and / or a software update (e.g., an AP restart associated with a software update) is performed. This can allow the number of partitions to be determined to flexibly adapt to the network conditions of the managed communication network 102. In some scenarios, a managed communication network 102 experiencing a heavy load may require a different number of partitions than a lightly loaded communication network 102. The present disclosure is not limited to this interpretation of "current" traffic / load.
[0089] For the purpose of performing software updates for the APs 108, the update management logic 212 may partition the APs 108 into a determined number of partitions based on a vertex shading algorithm. In some implementations, the vertex shading algorithm is an iterative process that the update management logic 212 applies to the APs 108 one by one until some or all of the APs 108 are assigned to a partition within the number of partitions. In some implementations, the vertex shading algorithm applied by the update management logic 212 is a modified version of the DSatur vertex shading algorithm. While the vertex shading algorithm can be thought of as a color entry in a color set, it should be understood that color is merely a metaphor for groups. In this example, for the purpose of updating the AP's software, the groups are the partitions of the AP.
[0090] Reference below Figure 6A-Figure 6B , describes additional details of an example vertex shading algorithm according to some embodiments. However, in general, some implementations of the vertex shading algorithm may attempt to assign an AP 108 to a partition to which neighboring APs 108 are not assigned, with variations when this goal is not possible. The update management logic 212 may use the network information 210 to generate a neighbor graph (e.g., an RF neighbor graph), an example of which is described in Figure 4is shown and referred to below Figure 4 , and the update management logic 212 may access the neighbor graph as part of applying a vertex shading algorithm to partition the AP 108 into a determined number of partitions.
[0091] In some implementations, to perform the iterative process, the update management logic 212 may select an AP 108 during each iteration and assign the AP 108 to one of a determined number of partitions according to the vertex shading algorithm. The AP 108 may initially be marked as unpartitioned, and the partition may initially have zero assigned APs 108. In some implementations, when at least one AP 108 remains unassigned to a partition, the update management logic 212 may perform the following iterative process:
[0092] (1) Select the next AP 108 to be assigned to the zone, such as selecting the AP 108 with the largest number of neighbor APs 108 assigned to the zone from the remaining unzoned APs 108. If there are multiple APs 108 with the same largest number of neighbor APs 108 assigned to the zone (e.g., these APs 108 are tied to have the largest number of neighbor APs 108 assigned to the zone), the update management logic 212 may select the AP 108 with the most neighbor APs 108 from these APs 108 (e.g., regardless of whether these neighbor APs 108 are assigned zones or remain unassigned zones). If multiple APs 108 remain tied under this additional test, the update management logic 212 may select any AP 108 that remains unassigned to the zone. The selected AP 108 may be referred to as the current AP 108.
[0093] (2) The update management logic 212 may then assign a partition to the current AP 108. In this example, to select a partition to assign to the current AP 108, the update management logic 212 may identify the partitions of any neighbor APs 108 that are not yet assigned to the current AP 108 (e.g., using a partition ID). If multiple partitions are not yet assigned to any neighbor APs 108 of the current AP 108, the update management logic 212 may select the partitions of the fewest number of APs 108 that are assigned to all APs 108 (e.g., all APs 108 of the managed communication system 102). If the update management logic 212 cannot identify any partitions of any neighbor APs 108 that are not assigned to the current AP 108 (e.g., using a partition ID), the update management logic 212 may select the partitions of the fewest neighbor APs 108 that are assigned to the current AP 108 (e.g., using a partition ID).
[0094] The update management logic 212 may then assign the current AP 108 selected at step (1) to the partition selected at step (2). The update management logic 212 may then return to step (1) to attempt to select another AP 108 as the current AP 108 for another iteration of the iterative process. If all APs 108 have been assigned to partitions, the iterative process may end.
[0095] The update management logic 212 may use some or all of the network information 210 to partition the APs 108 into a determined number of partitions using a vertex shading algorithm. For example, the update management logic 212 may use the AP IDs to determine the set of APs 108 to partition for the software update. As another example, the update management logic 212 may use the number of APs, neighbor information, and traffic / load information when determining the number of partitions. As another example, the update management logic 212 may use the neighbor information as part of applying the vertex shading algorithm (e.g., when determining which partition to assign to the AP 108 that is the subject of the current iteration of the iterative process) and may use the API ID for the purpose of recording the partition assignments to the APs 108. Although the update management logic 212 is described as using specific network information 210 to perform specific operations, the update management logic 212 may use any suitable network information 210 and / or other information to perform specific operations.
[0096] The update management logic 212 may determine an update plan that instructs the AP 108 to install updates and reboot. Figure 2 The updated plan 216 describes additional details.
[0097] The update management logic 212 may send software update instructions to cause the AP 108 to install the software update, including activating the software update (such as by rebooting). Figure 2 The software update instructions 220 are described in more detail in the software update instructions.
[0098] The update management logic 212 may store the assignments of the APs 108 to the partitions as partition information 214. The partition information 214 may include current and potentially historical mappings of the APs to the partitions. When the update management logic 212 assigns the APs 108 to the partitions, the update management logic 212 may update the partition information 214 to reflect the updated assignments of the APs 108 to the partitions (e.g., by storing the updated assignments of the APs 108 to the partitions in the partition information 214). As part of applying the vertex shading algorithm, the update management logic 212 may access the partition information 214 (e.g., to determine the assignments of the APs 108 to the partitions during an iterative process, if appropriate).
[0099] The partition information 214 may be (or may include) a data structure (e.g., a table) having entities (e.g., rows) that map APs 108 (e.g., as represented by AP IDs) to corresponding partitions to which the APs 108 have been assigned. Additionally or alternatively, the table may include an entity (e.g., a row) corresponding to a partition and a second column that lists the APs 108 (e.g., as represented by AP IDs) assigned to the partition. Although primarily described as a table, the partition information 214 may have any suitable data structure. Figure 3 Additional details regarding examples of at least a portion of the partition information 214 are shown and described.
[0100] The update plan 216 may store a schedule of when partitions of the AP 108 are to be restarted. The update plan 216 may include an ordered list of partitions (e.g., P1, P2, P3, P4, etc.), specific times of restarts indicated by the update management system 104 and / or performed by the partitioned AP 108, and / or other suitable information. The update plan 216 may specify that the determined partitions of the AP 108 be updated sequentially, rather than two partitions being updated simultaneously; however, the present disclosure contemplates an update plan 216 that specifies that two or more partitions of the AP 108 be updated simultaneously, if appropriate for a given implementation.
[0101] The software update instructions 220 may be communicated by the update management logic 212. The software update instructions 220 may include instructions communicated by the update management system 104 (e.g., the update management logic 212) to the AP 108 to cause the AP 108 to perform a software update according to the update plan 216. The software update instructions 220 cause the AP 108 of a first one of the determined partitions to perform a reboot to install the software update on the AP 108 of the first partition at a different time than the AP 108 of a second one of the determined partitions (and potentially all other partitions) performs a reboot to install the software update on the AP 108 of the second partition (and potentially all other partitions). In some implementations, the software update instructions 220 cause the partitions to be updated sequentially, such as the AP 108 of the first partition is updated first, the AP 108 of the second partition is updated second, the AP 108 of the third partition is updated next, and so on until all partitions (APs 108 of all partitions) have been updated. However, this disclosure contemplates that some partitions may be updated concurrently, if appropriate.
[0102] The software update instructions 220 may cause the AP 108 to reboot immediately or according to another suitable time frame to install the software update, which may cause the AP 108 to be disconnected from the user device 110 or otherwise unavailable to the user device 110. If available, the disconnected user device 110 can potentially connect to an AP 108 in another partition to continue service. For example, the user device 110 can connect to an AP 108 in another partition other than the partition of the AP 108 from which the user device 110 was disconnected. The design of the vertex shading algorithm can improve the availability of the AP 108 in the other partition (with minimal interruption) to the user device 110 that was previously connected to the AP 108 in the partition in which the AP 108 was rebooted. The user device 110 that is disconnected from the rebooting AP 108 in the rebooting partition can be moved to another AP 108 in another partition (e.g., another nearby AP 108 from another partition) in any suitable manner.
[0103] The software update instructions 220 may include a software update (e.g., one or more files that include and / or are capable of installing the software update). Additionally or alternatively, the software update may be provided separately to the user device 110, and the software update instructions 220 may provide instructions regarding when the user device 110 activates the software update (e.g., at least in part by restarting). The AP 108 may obtain the software update (e.g., the software update image) in any suitable manner, such as through a network connection (e.g., via the communication network 106), from a software repository, from a USB device plugged into a USB port of the AP 108, etc.
[0104] The update management logic 212 may re-partition the APs 108 at any suitable time, whether according to a set schedule or otherwise. For example, the update management logic 212 may re-determine the appropriate number of partitions and perform an iterative process of assigning the APs 108 to the determined number of partitions to account for changes in the load of the managed communication network 102, the addition or removal of APs 108 from the managed communication network 102, or for any other suitable reason. In some implementations, the update management logic 212 may sometimes or always re-partition before deploying a software update.
[0105] Interface 204 facilitates communication via one or more communication media, such as Figure 1106). In some implementations, interface 204 includes one or more ports. Interface 204 can facilitate the communication (including sending and / or receiving) of network information 218, software update instructions 220, and / or other suitable information. Interface 204 can be implemented using any suitable combination of hardware, firmware, and software.
[0106] The update management system 104 may be implemented using any suitable combination of hardware, firmware, and software. Some or all components of the update management system 104 may include programs for execution by the processor 200 that include instructions for performing some or all of the functions of the update management system 104. As just two examples, the update management logic 212 and the update schedule 216 (as well as any other components of the update management system 104) may include programs for execution by the processor 200 that include instructions for performing some or all of the functions of the update management system 104, including performing a determination of a number of partitions for partitioning the AP 108 and dividing the AP 108 into the determined number of partitions according to a vertex shading algorithm.
[0107] At least a portion of the memory 202 may be considered a computer-readable medium on which computer code (e.g., instructions, such as may be associated with the update management logic 212) is stored. References to computer-readable media, computer-readable storage media, computer program products, tangibly embodied computer programs, and the like, or controllers, circuit systems, computers, processors, and the like should be understood to encompass not only computers having different architectures (such as single-processor or multi-processor architectures and sequential (von Neumann) or parallel architectures), but also application-specific circuits (such as FPGAs, ASICs, signal processing devices, and other devices). References to computer programs, instructions, logic, code, and the like should be understood to encompass software or firmware for a programmable processor, such as the programmable content of a hardware device, whether instructions for a processor or configuration settings for a fixed-function device, gate array, or programmable logic device.
[0108] Although Figure 2 A particular configuration of components is shown, but the present disclosure contemplates other suitable configurations. For example, although Figure 2 Certain components are shown as being part of the same device, but any of these components may be grouped into a collection of one or more components that may exist and perform as part of any number of separate and operatively connected devices. As another example, a single component may be configured to perform the operations performed by Figure 2 Therefore, the implementation disclosed herein should not be limited to all or any part of the functions performed by the components shown. Figure 2 Configuration of components shown.
[0109] Figure 3 An example partition allocation table 300 according to some implementations is shown. Specifically, Figure 1 and Figure 2 The update management system 102 (e.g., Figure 2 The partition allocation table 300 shows the APs (eg, Figure 1 The partition allocation table 300 may be Figure 2 Part of the partition information 214. Although shown in a tabular format, the partition assignments may be stored in any suitable format.
[0110] In the example shown, the partition assignment table 300 includes columns 302 and 304. Column 302 includes columns corresponding to the APs 108 that are divided into partitions (e.g., Figure 1 108 of the managed communication network 102. In this example, column 302 includes AP IDs from AP1 to APN, where N is any suitable integer greater than 18. Of course, while the zone assignment table 300 is shown as including a specific number of AP IDs (corresponding to a specific number of APs 108), the zone assignment table 300 may include any suitable number of AP IDs for the managed communication network. Column 304 includes a zone ID that identifies the corresponding zone assigned to the AP 108 identified by the AP ID shown in column 302. The AP IDs and zone IDs may have any suitable format.
[0111] In the example shown, some APs have been assigned zones (e.g., AP1, AP3, AP4, AP5, AP7, AP8, AP9, AP11, AP12, AP13, AP14, AP15, AP17, AP18, and APN have been assigned zones 2, 2, 1, 5, 5, 4, 1, 5, 3, 3, 5, 4, 1, 2, and 3, respectively), while other APs have not been assigned zones (e.g., AP2, AP6, AP10, and AP16). This may mean Figure 1 The update management system 104 (e.g., Figure 2 The update management logic 212 of the AP 108 is in the process of applying a vertex shading algorithm to divide the AP 108 into partitions. Although shown as including a single mapping of APs 108 to partitions, the present disclosure contemplates storing a historical mapping if appropriate. Figure 1 Update management system 104.
[0112] Figure 4An example neighbor map 400 and associated partitions of APs according to certain implementations are shown. Generally speaking, a neighbor map of a communication network can provide a visualization of certain devices in the communication network (e.g., in this example, APs of a managed communication network), the neighbor relationships of these devices, and possibly the relative distances (e.g., in a scaled manner) among or between these devices. The neighbor map 400 can be obtained from Figure 2 The network information 210 / 218 determines the managed communication network (e.g., Figure 1 The neighbor map 400 may or may not be generated and may or may not be displayed (e.g., by Figure 1 and Figure 2 An update management system 104) is used to execute the partitioning algorithm of the present disclosure.
[0113] In the example shown, the neighbor graph 400 includes vertices 402 and edges 404, which are connecting lines between the vertices 402. The vertices 402 may represent APs 406, and the edges 404 may represent neighbor relationships between the APs 406 corresponding to the vertices 402 connected by the edges 404. In some implementations, the APs 406 may be Figure 1 The example of AP 108 and AP 406 may be similar to Figure 1 The managed communication network 102 is a portion of a managed communication network.
[0114] The edge 404 may indicate that the APs 406 corresponding to the vertices 402 connected by the edge 404 can hear each other and are neighbors. Figure 2 The network information 218 received by the update management system 104 may include path loss information that can be used to determine the distance between APs 406. User devices or APs can send broadcast messages, and RF neighbor data can be used to identify devices that can receive the broadcast messages. Any loss of broadcast messages can correspond to neighbor path loss data and identify the strength or weakness of the network connection from a particular location. The path loss associated with an edge 404 can indicate how far the AP 406 corresponding to the vertex 402 connected by the edge 404 is. For example, a lower path loss can indicate that the AP 406 is closer than a higher path loss can indicate. As described above, path loss represents only one technique for determining the distance between APs (such as AP 406). If there is no edge 404 between two vertices 402, the APs 406 corresponding to those vertices 402 may not be able to hear each other.
[0115] According to certain implementations of the present disclosure, an update management system (e.g., Figure 1 and Figure 2The update management system 104 may have determined the number of partitions into which to divide AP 406 and may have used a vertex shading algorithm to divide AP 406 into the determined number of partitions. In the example shown, the number of partitions determined for AP 406 is five, including partitions P1, P2, P3, P4, and P5. As shown in legend 408, partitions P1 through P5 are shown using corresponding types of shading. Vertex 402 is shaded according to the partition to which it is assigned to AP 406.
[0116] Generally speaking, if Figure 4 As can be observed in the example of FIG, the AP 406 has been partitioned in such a way that neighbor APs 406 are assigned to different partitions, although the present disclosure contemplates that some neighbor APs 406 are assigned to the same partition, which may be due to the application of the algorithm of the present disclosure and / or other factors. This distribution of partitions can help ensure that when a particular AP 406 restarts (and other APs assigned to the same partition as the particular AP 406), user devices connected to the particular AP 406 can maintain service with little interruption by connecting to another neighbor AP 406 of the particular AP 406, which may be assigned to another partition that is not restarted at the same time.
[0117] It should be understood that the specific assignment of APs 406 is for illustrative purposes only. Additionally, the specific division of APs 406 into zones P1 through P5 shown is for illustrative purposes only. Furthermore, the number of zones (5) is for illustrative purposes only and may or may not have any relationship to the specific number of APs 406 represented in neighbor map 400.
[0118] Figure 5 An example method 500 for updating an AP of a communication network according to some implementations is shown. The method 500 will be described using the managed communication network 102, the AP 108, the user device 110, and the update management system 104 as examples. In some implementations, some or all of the operations of the method 500 are performed by the update management system 104 (e.g., by Figure 2 Update management logic 212).
[0119] At step 502, the update management system 104 may obtain network information 210 of the AP 108 of the managed communication network 102. As described above, the AP 108 is configured to provide access to the communication network to one or more user devices 110. For example, the AP 108 may provide the user devices 110 with access to the managed communication network 102 and / or other communication networks (e.g., the communication network 106). The network information 210 may include topology information of the managed communication network 102, network performance information of the managed communication network 102, and / or any other suitable information. For example, the network information 210 may include Figure 1 AP ID of AP 108, Figure 1 AP neighbor information of AP 108, Figure 1 The distances between neighbor APs 108, network traffic / load information, and / or any other suitable information.
[0120] The managed communication network 102 may include APs 108 in various arrangements. For example, the APs 108 may include a first AP 108, a second AP 108, a third AP 108, and a fourth AP 108. In a specific implementation, the first AP 108 is a neighbor of the second AP 108; the second AP 108 is a neighbor of the third AP 108; the first AP 108 and the third AP 108 are neighbors; and the fourth AP 108 is not a neighbor of the first AP 108, the second AP 108, or the third AP 108.
[0121] At step 504, the update management system 104 can determine, based on the network information 210, the number of partitions in which to divide the AP 108 to deploy software updates to the AP 108. The update management system 104 can determine the number of partitions based on any suitable information and in any suitable manner.
[0122] For example, the update management system 104 may determine the number of partitions based on one or more of the number of APs 108, the number of user devices 110 served by the APs 108, the time of day at which a software update will be performed (e.g., which will indicate a reboot of the APs 108), network traffic associated with the APs 108, and / or any other suitable information, each of which may be specified or otherwise determined from the network information 210. The number of user devices 110 served by the APs 108 may be an actual number at a particular (possibly current) time, an average over a time period, or another measure of the number of user devices 110 served by the APs 108. The network traffic associated with the APs 108 may be a measure of network traffic at a particular (possibly current) time, an average over a time period, or another measure of network traffic associated with the APs 108. In one example, the update management system 104 may determine the number of partitions based on the number of APs 108 and the number of user devices 110 served by the APs 108.
[0123] At step 506, the update management system 104 may partition the AP 108 into the determined partitions according to the vertex shading algorithm implemented by the update management logic 212. For example, using the network information 210, the update management logic 212 may generate a neighbor graph (e.g., Figure 4 , a neighbor graph 400) in which APs 108 may correspond to vertices of the neighbor graph and neighbor relationships of APs 108 may correspond to edges of the neighbor graph. In some implementations, using the neighbor graph, the update management system 104 divides the APs 108 into determined partitions such that each AP 108 is assigned to a single corresponding partition and APs 108 of one partition do not overlap with APs 108 of another partition. The vertex coloring algorithm may attempt to divide the APs 108 into a determined number of partitions such that adjacent APs 108 are not assigned to the same partition; however, in some instances, one or more sets of adjacent APs 108 are assigned to the same partition. Figure 6A-Figure 6B Additional details are described regarding an example iterative process for dividing the AP 108 into a determined number of partitions.
[0124] At step 508, the update management system 104 may send a software update instruction 220 to the AP 108. The software update instruction 220 causes the AP 108 of a first of the determined partitions to reboot to install the software update on the AP 108 of the first partition at a different time than the APs 108 of one or more other of the determined partitions reboot to install the software update on the APs 108 of the other partitions. In some implementations, the software update instruction 220 causes the partitions to be updated sequentially, such that the AP 108 of the first partition is updated first, the AP 108 of the second partition is updated second, the AP 108 of the third partition is updated next, and so on until all the partitions (and all the APs 108 of the partitions) have been updated. In some implementations, the APs 108 of all the partitions are updated (specifically, rebooted) at different times. However, the present disclosure contemplates that some partitions may be updated simultaneously, if appropriate.
[0125] The software update instructions 220 may cause the AP 108 to reboot immediately or according to another suitable time frame to install the software update, which may cause the AP to be disconnected from the user device 110 or otherwise unavailable to the user device 110. If available, the disconnected user device 110 can potentially connect to an AP 108 in another sector to continue service. For example, the user device 110 can connect to an AP 108 in another sector other than the sector of the AP 108 from which the user device 110 was disconnected.
[0126] The software update instructions 220 may include a software update (e.g., one or more files that include and / or are capable of installing the software update). Additionally or alternatively, the software update may be provided separately to the user device 110, and the software update instructions 220 may provide instructions regarding when the user device 110 activates the software update (e.g., at least in part by restarting). The AP 108 may obtain the software update (e.g., the software update image) in any suitable manner, such as through a network connection (e.g., via the communication network 106, from a software repository, from a USB device plugged into a USB port of the AP 108, etc.).
[0127] Figure 6A-Figure 6B An example method 600 for partitioning APs of a communication network into partitions using a vertex shading algorithm is shown according to some implementations. The method 600 will be described using the managed communication network 102, APs 108, user devices 110, and update management system 104 as examples. In some implementations, some or all of the operations of the method 600 are performed by the update management system 104 (e.g., by Figure 2 's update management logic 212) to execute.
[0128] Method 600 can be an iterative process. In some implementations, at the start of method 600, APs 108 are initially classified as unsegmented, and each segment initially does not include an assigned AP 108. Additionally, in some implementations, update management system 102 (e.g., update management logic 212) has already determined the number of segments into which APs 108 are to be divided. In some implementations, using network information 210, update management logic 212 may have already generated a neighbor graph (e.g., Figure 4 4 ), where APs 108 may correspond to vertices of the neighbor graph and neighbor relationships of APs 108 may correspond to edges of the neighbor graph. During the application iteration process, the update management system accesses network information 210, the generated neighbor graph, partition information 214, and / or any other suitable information.
[0129] At step 602, the update management system 104 can select a current AP 108 from the APs 108 (if any) in the managed communication network 102 that have not yet been assigned to a partition in the determined plurality of partitions based on the network information 210. This disclosure contemplates any suitable technique for the update management system 104 to make this selection. Steps 602a through 602h illustrate example techniques for the update management system 104 to make this selection.
[0130] At step 602a, the update management system 104 may attempt to identify a first specific AP 108 having the largest number of neighbor APs 108 assigned to a partition from among the one or more APs 108 that are still not assigned to a partition. At step 602b, the update management system 104 may determine whether the first specific AP 108 having the largest number of neighbor APs 108 assigned to a partition was identified at step 602a. In some implementations, steps 602a and 602b may be combined into a single determination.
[0131] If the update management system 104 is unable to identify a first specific AP 108 with the largest number of neighbor APs 108 assigned to a partition from among the one or more APs 108 that are not yet assigned to a partition, the method 600 may proceed to step 602h, which will be described in more detail below. If the update management system 104 is unable to identify a first specific AP 108 with the largest number of neighbor APs 108 assigned to a partition from among the one or more APs 108 that are not yet assigned to a partition, the method 600 may proceed to step 602c. At step 602c, the update management system 104 may determine whether a plurality of APs 108 with the largest number of neighbor APs 108 assigned to a partition has been identified from among the one or more APs 108 that are not yet assigned to a partition. If the update management system 104 determines that multiple APs 108 are not identified (e.g., only the first particular AP 108 is identified), the method 600 can continue to 602d, where the update management system 104 identifies the first particular AP 108 as the current AP 108, and the method 600 can continue to step 604 using the first particular AP 108 as the current AP 108.
[0132] Returning to step 602c, if the update management system 104 determines that multiple APs 108 have been identified (e.g., multiple APs 108 that are bound to have the largest number of neighbor APs 108 that have been assigned to a zone from among the one or more APs 108 that have not yet been assigned to a zone), the method 600 may proceed to step 602e. At step 602e, the update management system 104 may attempt to identify a second specific AP 108 from the multiple candidate APs 108 identified at steps 602a-602c. In some implementations, the update management system 104 may select the AP 108 with the largest number of neighbor APs 108 as the second specific AP 108, regardless of whether these neighbor APs 108 have been assigned to a zone. At step 602f, the update management system 104 may determine whether the second specific AP 108 was identified at step 602e. If the update management system 104 is able to identify the second specific AP 108 at steps 602e-602f, the update management system 104 may identify the second specific AP 108 as the current AP 108, and the method 600 may continue to step 604 using the second specific AP 108 as the current AP 108. If the update management system 104 is unable to identify the second specific AP 108 (e.g., at steps 602e-602g), the method 600 may continue to step 602h.
[0133] At step 602h, the update management system 104 may identify any third specific AP 108 from the one or more APs 108 that have not yet been assigned to a partition as the current AP 108, and the method 600 may proceed to step 604 using the third specific AP 108 as the current AP 108. Thus, in the illustrated example, the update management system 104 may proceed to step 602h when it is unable to identify the first specific AP 108 (the AP 108 with the largest number of neighbor APs 108 that have been assigned to a partition from the one or more APs 108 that have not yet been assigned to a partition) or the second specific AP (the AP 108 with the largest number of neighbor APs 108 identified at steps 602a-602c, regardless of whether the neighbor APs 108 have been assigned to a partition).
[0134] At step 604, the update management system 104 can determine the current partition to assign to the current AP 108 based on which partitions are assigned to neighboring APs 108 of the current AP 108. This disclosure contemplates any suitable technique for the update management system 104 to make this determination. Steps 604a through 604h illustrate example techniques for the update management system 104 to make this determination.
[0135] At step 604a, the update management system 104 may attempt to identify one or more unassigned zones of neighboring APs 108 of the current AP 108. At step 604b, the update management system 104 may determine whether any unassigned zones were identified at step 604a. In some implementations, steps 604a and 604b may be combined into a single determination.
[0136] If the update management system 104 is unable to identify one or more unassigned partitions of the neighbor AP 108 of the current AP 108, the method 600 may continue to step 604h, which will be described in more detail below. If the update management system 104 identifies one or more unassigned partitions of the neighbor AP 108 of the current AP 108, the method 600 may continue to step 604c. At step 604c, the update management system 104 may determine whether multiple unassigned partitions of the neighbor AP 108 of the current AP 108 were identified at step 604a. If the update management system 104 determines that multiple unassigned partitions of the neighbor AP 108 of the current AP 108 were not identified (e.g., only one unassigned partition of the neighbor AP 108 was identified), the method 600 may continue to 604d, where the update management system 104 identifies a single unassigned partition of the neighbor AP 108 as the current partition, and the method 600 may continue to step 606 using the single unassigned partition as the current partition.
[0137] Returning to step 604c, if the update management system 104 determines that multiple unassigned partitions of neighboring APs 108 of the current AP 108 were identified at step 604a, the method 600 can proceed to step 604e. At step 604e, the update management system 104 can attempt to identify a first specific unassigned partition among the multiple unassigned partitions as being assigned to the least number of APs 108. At step 604f, the update management system 104 can determine whether the first specific partition was identified at step 604e. If the update management system 104 is able to identify the first specific partition at steps 604e-604f, the update management system 104 can identify the first specific partition as the current partition, and the method 600 can proceed to step 604 using the first partition as the current partition. If the update management system 104 is unable to identify the first specific partition (e.g., at steps 604e-604g), the method 600 can proceed to step 604h.
[0138] At step 604h, the update management system 104 may identify a second specific partition assigned to the neighbor APs 108 of the current AP 108, to which the least number of neighbor APs 108 have been assigned, from among the one or more partitions assigned to the neighbor APs 108 of the current AP 108. In other words, if the update management system 104 cannot identify an unassigned partition from among the neighbor APs 108 of the current AP 108 (e.g., at steps 604a-604g), then at step 604h, the update management system 104 may identify the partition assigned to the neighbor APs 108 of the current AP 108 the least number of times as the second specific partition, and identify the second specific partition as the current partition.
[0139] At step 606, the update management system 104 can assign the current partition to the current AP 108. In some implementations, the update management system 104 can update the partition information 214 to reflect the assignment of the current partition to the current AP 108.
[0140] At step 608, the update management system 104 may determine whether any APs 108 remain unassigned to a partition. If the update management system 104 determines at step 608 that one or more APs 108 remain unassigned to a partition, the method 600 may return to step 602 to perform the next iteration of the iterative process of the method 600. If the update management system 104 determines at step 608 that no APs 108 remain unassigned to a partition (e.g., all APs 108 have been assigned to a partition), the method 600 may terminate, possibly returning to step 602. Figure 5 Step 508 of the embodiment may be used to send the software update instructions 220 according to the partitioning of the AP 108.
[0141] Figure 7 An example method 700 for updating an AP of a communication network according to some implementations is shown. The method 700 will be described using the managed communication network 102, AP 108, user device 110, and update management system 104 as examples. In some implementations, some or all of the operations of the method 700 are performed by the update management system 104 (e.g., by Figure 2 's update management logic 212) to execute.
[0142] At step 702, the update management system 104 may partition the AP 108 into a plurality of partitions according to an iterative process. In some implementations, the update management system 104 may have predetermined the number of partitions into which to partition the AP 108. In some implementations, the update management logic 212 may have generated a neighbor graph (e.g., Figure 4 4 ), where APs 108 may correspond to vertices of the neighbor graph and neighbor relationships of APs 108 may correspond to edges of the neighbor graph. In applying an iterative process, the update management system accesses network information 210, the generated neighbor graph, partition information 214, and / or any other suitable information. In some implementations, the iterative process includes steps 702a-702d described below.
[0143] At step 702a, the update management system 104 may select a current AP 108 for a current iteration of the iterative process from the APs 108 that are still not assigned to a partition in the number of partitions. At step 702b, the update management system 104 may identify a selected partition to be assigned to the current AP 108 based on one or more partitions assigned to neighboring APs 108 of the current AP 108. At step 702c, the update management system 104 may assign the selected partition to the current AP 108 in response to identifying the selected partition. At step 702d, the update management system 104 may perform the next iteration of the iterative process in response to determining that one or more of the APs 108 are still not assigned to a partition after assigning the selected partition to the current AP 108.
[0144] At step 704, the update management system 104 can, in response to determining that the AP 108 (e.g., all APs 108 of the managed communication network 102) has been assigned a corresponding partition in the determined partitions, send a software update instruction 220 to the AP 108. The software update instruction 220 causes the AP 108 of a first partition in the plurality of partitions to perform a reboot to install the software update (e.g., software version 208) on the AP 108 in the first partition at a different time than the AP 108 of a second partition in the plurality of partitions performs a reboot to install the software update (e.g., software version 208) on the AP 108 in the second partition.
[0145] Figure 8 800 according to some implementations. As described above, implementations of the present disclosure may be implemented using a computing device. For example, Figure 1-Figure 7 All or any portion of the components or methods shown in (eg, system 100, update management system 104, AP 108, user device 110, and methods 500-700) may be implemented, at least in part, using one or more computing devices, such as computing device 800.
[0146] The computing device 800 may include one or more computer processors 802, non-persistent memory 804 (e.g., volatile memory such as random access memory (RAM), cache memory, etc.), persistent memory 806 (e.g., a hard disk, an optical drive such as a compact disk (CD) drive or a digital versatile disk (DVD) drive, flash memory, etc.), a communication interface 812 (e.g., a Bluetooth interface, an infrared interface, a network interface, an optical interface, etc.), an input device 810, an output device 808, and many other elements and functions. Each of these components is described below.
[0147] In some implementations, the computer processor(s) 802 may be integrated circuits for processing instructions. For example, the computer processor(s) may be one or more cores or micro-cores of a processor. The processor 802 may be a general-purpose processor configured to execute program code included in software that is executed on the computing device 800. The processor 802 may be a special-purpose processor in which certain instructions are included in the processor design. Although Figure 8 Only one processor 802 is shown, but computing device 800 may include any number of processors.
[0148] The computing device 800 may also include one or more input devices 810, such as a touch screen, keyboard, mouse, microphone, touchpad, electronic pen, motion sensor, or any other type of input device. The input device 810 may allow a user to interact with the computing device 800. In some implementations, the computing device 800 may include one or more output devices 808, such as a screen (e.g., liquid crystal display (LCD), plasma display, touch screen, cathode ray tube (CRT) monitor, projector, or other display device), printer, external memory, or any other output device. The one or more output devices may be the same or different from the input device(s). The input and output devices may be connected to the computer processor(s) 802, non-persistent memory 804, and persistent memory 806, locally or remotely. There are many different types of computing devices, and the input and output devices may take other forms. In some cases, a multimodal system may allow a user to provide various types of input / output to communicate with the computing device 800.
[0149] Additionally, the communication interface 812 can facilitate connecting the computing device 800 to a network (e.g., a LAN, a WAN), such as the Internet, a mobile network, or any other type of network, and / or to another device, such as another computing device. The communication interface 812 can perform or facilitate the reception and / or transmission of wired or wireless communications using wired and / or wireless transceivers, including utilizing an audio jack / plug, a microphone jack / plug, a Universal Serial Bus (USB) port / plug, Ports / plugs, Ethernet ports / plugs, Fiber optic ports / plugs, Proprietary wired ports / plugs, Bluetooth Wireless signal transmission, Bluetooth Low energy (BLE) wireless signal transmission, Wireless signal transmission, radio frequency identification (RFID) wireless signal transmission, near field communication (NFC) wireless signal transmission, dedicated short range communication (DSRC) wireless signal transmission, 802.11 Wi-Fi wireless signal transmission, WLAN signal transmission, visible light communication (VLC), Worldwide Interoperability for Microwave Access (WiMAX), IR communication wireless signal transmission, public switched telephone network (PSTN) signal transmission, integrated services digital network (ISDN) signal transmission, 3G / 4G / 5G / LTE cellular data network wireless signal transmission, ad-hoc network signal transmission, radio wave signal transmission, microwave signal transmission, infrared signal transmission, visible light signal transmission, ultraviolet light signal transmission, wireless signal transmission along the electromagnetic spectrum, or a combination thereof.
[0150] The communication interface 812 may also include one or more global navigation satellite system (GNSS) receivers or transceivers for determining the location of the computing device 800 based on one or more signals received from one or more satellites associated with one or more GNSS systems. GNSS systems include, but are not limited to, the United States-based Global Positioning System (GPS), the Russian-based Global Navigation Satellite System (GLONASS), the Chinese-based BeiDou Navigation Satellite System (BDS), and the European-based Galileo GNSS. There is no restriction on operation on any particular hardware arrangement, and therefore, the basic features herein may be easily replaced by improved hardware or firmware arrangements during development.
[0151] The term computer-readable medium includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other media that can be used to store, contain, or carry (a plurality of) instructions and / or data. Computer-readable media may include non-transient media, in which data can be stored and which do not include carrier waves and / or transient electronic signals that are wireless or propagated by wired connections. Examples of non-transient media may include, but are not limited to, disks or tapes, optical storage media such as CDs or DVDs, flash memory, memory, or storage devices. Code and / or machine-executable instructions may be stored on the computer-readable medium, and these codes and instructions may represent any combination of steps, functions, subroutines, programs, routines, subroutines, modules, software packages, classes, or instructions, data structures, or program statements. By transmitting and / or receiving information, data, independent variables, parameters, or memory contents, a code segment may be coupled to another code segment or a hardware circuit. Information, independent variables, parameters, data, etc. may be transmitted, forwarded, or transmitted via any suitable means, and suitable means include memory sharing, message passing, token passing, network transmission, etc.
[0152] All or any portion of the components of the computing device 800 may be implemented in circuitry. For example, these components may include and / or may be implemented using electronic circuits or other electronic hardware, which may include one or more programmable electronic circuits (e.g., a microprocessor, a graphics processing unit (GPU), a digital signal processor (DSP), a CPU, and / or other suitable electronic circuits), and / or may include and / or may be implemented using computer software, firmware, or any combination thereof to perform the various operations described herein. In some aspects, computer-readable storage devices, media, and memories may include cables or wireless signals containing bitstreams, etc. However, when referred to, non-transitory computer-readable storage media explicitly excludes media such as energy, carrier signals, electromagnetic waves, and the signals themselves.
[0153] Some implementations may not provide the following technical advantages, or may provide some or all of the following technical advantages. These and other potential technical advantages may be described elsewhere in this disclosure, or may be obvious to those skilled in the art based on this disclosure.
[0154] Certain implementations of the present disclosure may provide one or more technical advantages. Certain implementations may implement a more strategic approach to updating software on APs deployed and operating throughout a communications network, allowing a subset of APs to remain active while other APs are restarted as part of the update process. For example, relative to certain other techniques for partitioning APs for software updates, certain implementations may reduce the number of partitions, which may reduce overall software update time. As a specific example, for a dense deployment of APs, certain implementations may generate two to six partitions, rather than the twenty or more partitions generated using other techniques for partitioning APs for software updates (e.g., RF channel-based partitioning). Certain implementations may allow the number of partitions to be customized based on the actual user device load on the communications network. For example, using only two partitions, if appropriate, may allow for faster updates to a lightly loaded communications network. In certain implementations, the number of partitions may remain the same even if additional RF channels are dynamically created by the operation of the communications network, potentially increasing the predictability of software update times. Of course, for any of these examples, the specific number of partitions may depend on various factors.
[0155] Certain implementations can reduce network disruptions relative to other solutions for performing real-time software updates, which can reduce or eliminate negative impacts on an organization during software updates. In scenarios where software updates are provided or managed by a third party (e.g., a service provider), reduced disruptions to the communication network can increase customer confidence in the software update process.
[0156] It will be understood that the systems and methods described in this disclosure may be combined in any suitable manner.
[0157] Although the present disclosure describes or shows the specific operations that occur in a particular order, the present disclosure considers the operation that occurs in any suitable order.In addition, the present disclosure considers to repeat one or many any suitable operations in any suitable order.Although the present disclosure describes or shows the specific operations that occur in order, the present disclosure considers any suitable operation that occurs substantially simultaneously under appropriate circumstances.Under appropriate circumstances, any suitable operation described or shown herein or the sequence of operation can be interrupted, suspended or otherwise controlled by another process (such as operating system or core).These behaviors can operate in an operating system environment, or operate as all or most of the independent routines that occupy system processing.
[0158] Although the present disclosure has been described with reference to illustrative implementations, this description is not intended to be construed in a limiting sense. Various modifications and combinations of the illustrative implementations, as well as other implementations of the present disclosure, will be apparent to those skilled in the art by reference to the description. Accordingly, the appended claims are intended to cover any such modifications or implementations.
Claims
1. A computer system comprising: one or more processors; as well as One or more non-transitory computer-readable storage media storing a program for execution by the one or more processors, the program comprising instructions for: Obtaining network information for a plurality of access points (APs), the plurality of APs being configured to provide access to a communication network to one or more user equipment; determining, based on the network information, a plurality of partitions in which to divide the plurality of APs for deploying software updates to the plurality of APs; Dividing the plurality of APs into the plurality of partitions according to a vertex shading algorithm, the APs in the plurality of APs corresponding to vertices of the vertex shading algorithm, and neighbor relationships of the APs in the plurality of APs corresponding to edges of the vertex shading algorithm; as well as A software update instruction is sent to the multiple APs, wherein the software update instruction causes the APs of a first partition of the multiple partitions to perform a restart for installing the software update on the APs of the first partition at a time different from when the APs of a second partition of the multiple partitions perform a restart for installing the software update on the APs of the second partition.
2. The computer system according to claim 1, wherein the network information comprises: a device identifier for each AP in the plurality of APs; as well as Neighbor information for each of the plurality of APs.
3. The computer system of claim 1 , wherein: The instructions also include instructions for determining, based on the network information: the number of APs in the plurality of APs; as well as the number of user devices served by the plurality of APs; as well as The instructions for determining the plurality of partitions include instructions for determining the plurality of partitions based on the number of APs in the plurality of APs and the number of user devices served by the plurality of APs.
4. The computer system of claim 1 , wherein: The plurality of APs include a first AP, a second AP, a third AP, and a fourth AP; The first AP is a neighbor of the second AP; The second AP is a neighbor of the third AP; The first AP and the third AP are not neighbors; as well as The fourth AP is not a neighbor of the first AP, the second AP, or the third AP.
5. The computer system of claim 1 , wherein the instructions for dividing the plurality of APs into the plurality of partitions according to the vertex shading algorithm comprise instructions for performing an iterative process for each of the plurality of APs, the iterative process comprising: selecting a current AP from one or more APs in the plurality of APs that are still not assigned to a partition in the plurality of partitions according to the network information; determining a current partition to be assigned to the current AP based on those partitions of the plurality of partitions that are assigned to neighboring APs of the current AP; Assigning the current partition to the current AP; as well as In response to determining that one or more APs of the plurality of APs are still not assigned to a partition of the plurality of partitions, a next iteration of the iterative process is performed.
6. The computer system of claim 5 , wherein the instructions for selecting the current AP from the one or more APs in the plurality of APs that have not yet been assigned to a partition in the plurality of partitions based on the network information comprise instructions for: attempting to identify, from the one or more APs in the plurality of APs that are still not assigned to a zone, a first particular AP having a largest number of neighbor APs that have been assigned to a zone in the plurality of zones; identifying the first specific AP as the current AP in response to identifying the first specific AP having the largest number of neighbor APs that have been assigned to partitions among the plurality of partitions from among the one or more APs that have not yet been assigned to a partition among the plurality of APs; In response to identifying a plurality of candidate specific APs from the one or more APs from the plurality of APs that are still not assigned to a zone as having the same maximum number of neighbor APs that have been assigned to zones from the plurality of zones, attempting to identify a second specific AP from the plurality of candidate specific APs as having the maximum number of neighbor APs; identifying a second specific AP from the one or more APs from the plurality of APs that have not yet been assigned to a zone as a neighbor AP having the same maximum number of APs that have been assigned to zones from the plurality of zones, identifying the second specific AP as the current AP; as well as In response to the inability to identify a second specific AP from the one or more APs from the multiple APs that are still not assigned to a partition as a neighbor AP having the same maximum number of partitions assigned to the multiple partitions, any third specific AP from the one or more APs from the multiple APs that are still not assigned to a partition among the multiple partitions is identified as the current AP.
7. The computer system of claim 5 , wherein the instructions for determining the current partition to be assigned to the current AP based on those of the plurality of partitions that are assigned to neighboring APs of the current AP comprise instructions for: Attempting to identify one or more unassigned zones of neighboring APs of the current AP; In response to identifying a single unallocated zone of a neighbor AP of the current AP, identifying the single unallocated zone as the current zone; In response to identifying a plurality of unassigned zones of neighboring APs of the current AP, identifying a first particular unassigned zone of the plurality of unassigned zones as being assigned to a least number of APs of the plurality of APs, and identifying the first particular unassigned zone as the current zone; as well as In response to being unable to identify one or more unallocated partitions of the neighbor APs of the current AP, identifying a first specific allocated partition among the partitions of the neighbor APs of the current AP to which the least number of neighbor APs have been allocated, and identifying the first specific allocated partition as the current partition.
8. The computer system of claim 5, wherein: The plurality of APs are initially classified as unsectored; and Each of the plurality of zones does not include an assigned AP.
9. A computer-implemented method comprising: Obtaining network information for a plurality of access points (APs), the plurality of APs being configured to provide access to a communication network to one or more user equipment; determining, based on the network information, a plurality of partitions in which to divide the plurality of APs for deploying software updates to the plurality of APs; Dividing the plurality of APs into the plurality of partitions according to a vertex shading algorithm, the APs in the plurality of APs correspond to vertices of the vertex shading algorithm, and neighbor relationships of the APs in the plurality of APs correspond to edges of the vertex shading algorithm; as well as A software update instruction is sent to the multiple APs, wherein the software update instruction causes the APs of a first partition of the multiple partitions to perform a restart for installing the software update on the APs of the first partition at a time different from when the APs of a second partition of the multiple partitions perform a restart for installing the software update on the APs of the second partition.
10. The computer-implemented method of claim 9, wherein the network information comprises: a device identifier for each AP in the plurality of APs; as well as Neighbor information for each of the plurality of APs.
11. The computer-implemented method of claim 9, wherein: The method further includes determining, based on the network information: the number of APs in the plurality of APs; as well as the number of user devices served by the plurality of APs; as well as Determining the plurality of zones includes determining the plurality of zones according to the number of APs in the plurality of APs and the number of user equipment served by the plurality of APs.
12. The computer-implemented method of claim 9 , wherein dividing the plurality of APs into the plurality of partitions according to the vertex shading algorithm comprises performing an iterative process for each of the plurality of APs, the iterative process comprising: selecting a current AP from one or more APs in the plurality of APs that are still not assigned to a partition in the plurality of partitions according to the network information; determining a current partition to be assigned to the current AP based on those partitions of the plurality of partitions that are assigned to neighboring APs of the current AP; Assigning the current partition to the current AP; as well as In response to determining that one or more APs of the plurality of APs are still not assigned to a partition of the plurality of partitions, a next iteration of the iterative process is performed.
13. The computer-implemented method of claim 12 , wherein selecting the current AP from the one or more APs in the plurality of APs that have not yet been assigned to a partition in the plurality of partitions based on the network information comprises: attempting to identify, from the one or more APs in the plurality of APs that are still not assigned to a zone, a first particular AP having a largest number of neighbor APs that have been assigned to a zone in the plurality of zones; as well as In response to identifying the first specific AP having the largest number of neighbor APs assigned to partitions among the plurality of partitions from the one or more APs among the plurality of APs that are still not assigned to partitions, identifying the first specific AP as the current AP.
14. The computer-implemented method of claim 12 , wherein selecting the current AP from the one or more APs in the plurality of APs that have not yet been assigned to a partition in the plurality of partitions based on the network information comprises: attempting to identify, from the one or more APs in the plurality of APs that are still not assigned to a zone, a first particular AP having a largest number of neighbor APs that have been assigned to a zone in the plurality of zones; In response to identifying a plurality of candidate specific APs from the one or more APs from the plurality of APs that are still not assigned to a zone as having the same maximum number of neighbor APs that have been assigned to zones from the plurality of zones, attempting to identify a second specific AP from the plurality of candidate specific APs as having the maximum number of neighbor APs; as well as In response to identifying a second specific AP from the one or more APs from the plurality of APs that are still not assigned to a zone as a neighbor AP having the same maximum number of APs assigned to zones from the plurality of zones, identifying the second specific AP as the current AP.
15. The computer-implemented method of claim 12 , wherein selecting the current AP from the one or more APs in the plurality of APs that have not yet been assigned to a partition in the plurality of partitions based on the network information comprises: attempting to identify, from the one or more APs in the plurality of APs that are still not assigned to a zone, a first particular AP having a largest number of neighbor APs that have been assigned to a zone in the plurality of zones; In response to identifying a plurality of candidate specific APs from the one or more APs from the plurality of APs that are still not assigned to a zone as having the same maximum number of neighbor APs that have been assigned to zones from the plurality of zones, attempting to identify a second specific AP from the plurality of candidate specific APs as having the maximum number of neighbor APs; as well as In response to the inability to identify a second specific AP from the one or more APs from the multiple APs that have not yet been assigned to a partition as a neighbor AP having the same maximum number of partitions that have been assigned to the multiple partitions, any third specific AP from the one or more APs from the multiple APs that have not yet been assigned to a partition among the multiple partitions is identified as the current AP.
16. The computer-implemented method of claim 12 , wherein determining the current zone to be assigned to the current AP based on those of the plurality of zones that are assigned to neighbor APs of the current AP comprises: Attempting to identify one or more unassigned zones of neighboring APs of the current AP; as well as In response to identifying a single unallocated zone of a neighbor AP of the current AP, the single unallocated zone is identified as the current zone.
17. The computer-implemented method of claim 12, wherein determining the current zone to be assigned to the current AP based on those zones of the plurality of zones that are assigned to neighbor APs of the current AP comprises: Attempting to identify one or more unassigned zones of neighboring APs of the current AP; as well as In response to identifying a plurality of unassigned zones of neighboring APs of the current AP, identifying a first particular unassigned zone of the plurality of unassigned zones as being assigned to a least number of APs among the plurality of APs, and identifying the first particular unassigned zone as the current zone.
18. The computer-implemented method of claim 12, wherein determining the current zone to be assigned to the current AP based on those of the plurality of zones that are assigned to neighbor APs of the current AP comprises: Attempting to identify one or more unassigned zones of neighboring APs of the current AP; as well as In response to being unable to identify one or more unallocated partitions of the neighbor APs of the current AP, identifying a first specific allocated partition among the partitions of the neighbor APs of the current AP to which the least number of neighbor APs have been allocated, and identifying the first specific allocated partition as the current partition.
19. The computer-implemented method of claim 12, wherein: The plurality of APs are initially classified as unsectored; and Each of the plurality of zones does not include an assigned AP.
20. One or more non-transitory computer-readable storage media storing a program for execution by one or more processors, the program comprising instructions for: The plurality of access points AP are divided into a plurality of partitions according to an iterative process, wherein the iterative process includes: selecting a current AP for a current iteration of the iterative process from one or more APs of the plurality of APs that have not yet been assigned to a partition of the plurality of partitions; identifying a selected partition to be assigned to the current AP based on one or more partitions assigned to neighboring APs of the current AP; In response to identifying the selected partition, assigning the selected partition to the current AP; as well as In response to determining that after assigning the selected partition to the current AP, one or more APs of the plurality of APs are still not assigned to a partition of the plurality of partitions, performing a next iteration of the iterative process; as well as In response to determining that the AP among the multiple APs has been assigned a corresponding partition among the multiple partitions, a software update instruction is sent to the multiple APs, and the software update instruction causes the APs of a first partition of the multiple partitions to perform a restart for installing the software update on the APs of the first partition at a different time than the APs of a second partition of the multiple partitions perform a restart for installing the software update on the APs of the second partition.