Automatic grouping of deployed access points
By generating the neighbor relationship network diagram of AP and applying the spectrum clustering algorithm to automatically group and identify wireless access points, the problem of time-consuming manual packet errors is solved, and efficient and accurate wireless network deployment and optimization is achieved.
Patent Information
- Application Number
- CN202380089802.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-12-30
- Filing Date
- 2023-12-29
- Publication Date
- 2025-08-15
AI Technical Summary
In high-rise buildings or multi-built environments, manually determining and inputting group information of wireless access points (APs) is error-prone and time-consuming, affecting the deployment efficiency and accuracy of wireless networks.
The network diagram of neighbor relationship between APs is generated through the network management system (NMS), and spectral clustering algorithms such as k-mean clustering algorithm are applied to automatically group APs and assign unique identifiers to each cluster, such as floor numbers, to realize automatic positioning and position determination of APs.
It reduces labor costs, improves the efficiency and accuracy of wireless network deployment, supports rapid and dynamic deployment and optimizes wireless network performance, and improves user experience.
Smart Images

Figure CN120500872A_ABST
Abstract
Description
[0001] priority
[0002] This application claims the benefit of U.S. Provisional Patent Application No. 63 / 478,025, filed December 30, 2022, the entire contents of which are incorporated herein by reference. Technical Field
[0003] The present disclosure relates generally to computer networks and, more particularly, to automated deployment and monitoring of wireless networks. Background Art
[0004] Commercial venues, such as offices, hospitals, airports, stadiums, or retail stores, typically include a network of wireless access points (APs) installed throughout the venue to provide wireless network services to one or more wireless client devices. The APs enable client devices to wirelessly connect to a wired network using a variety of wireless network protocols and technologies, such as a wireless local area network protocol (i.e., "Wi-Fi") that complies with one or more IEEE 802.11 standards, Bluetooth / Bluetooth Low Energy (BLE), a mesh network protocol (such as ZigBee), or other wireless network technologies. Many different types of wireless client devices, such as laptops, smartphones, tablets, wearable devices, appliances, and Internet of Things (IoT) devices, have integrated wireless communication technologies and can be configured to connect to a wireless access point to access the wired network when the device is within range of a compatible wireless access point. Location services that can be provided in conjunction with wireless networks include wayfinding, location-based proximity notifications, asset tracking, and location-based analytics that derive insights from analyzing customer movements within the venue. Summary of the Invention
[0005] Generally, the present disclosure describes techniques for automatically grouping one or more deployed access points (APs) in a wireless network for learning a wireless network environment. Wireless network systems (e.g., Wi-Fi systems) are often deployed in high-rise buildings or other buildings spanning multiple floors. When a wireless network system is deployed in such an environment, multiple teams of technicians may install multiple APs on each floor to provide one or more wireless networks throughout the multi-story structure. For example, one or more deployed APs may be grouped based on specific floors within a multi-story structure at a site and / or based on specific buildings within a multi-building site. For example, floor information for an AP group (also referred to herein as an "AP cluster") may include, for example, the specific floor number within the multi-story structure where the AP group is installed. This floor information can be used to determine the location of the deployed APs and to learn and optimize the wireless network environment provided by the wireless network. Typically, during installation, installers manually determine and enter group information (e.g., specific floor number and / or building information) for the deployed APs. However, manually determining and entering AP group information into a database is error-prone and time-consuming. The techniques described in the present disclosure can provide for automatically grouping one or more deployed APs in a wireless network for learning a wireless network environment.
[0006] In one example, a network management system (NMS) that manages a wireless network of one or more sites is configured to generate a network graph of multiple APs deployed at the site, the network graph representing neighbor relationships between the deployed APs. The neighbor relationships between the deployed APs can be based on detected radio signals of the APs. The NMS is configured to generate a matrix representation of the network graph and apply a clustering algorithm to the matrix representation of the network graph to form AP groups. For example, the NMS can generate a network graph of multiple deployed APs based on received signal strength indication (RSSI) values (of Wi-Fi signals, Bluetooth signals, or other radio signals), wherein the nodes in the network graph represent APs, and the connectivity of the nodes within the network graph can represent the communication relationship between the APs. The network graph can be represented by a Laplacian matrix (L), wherein the Laplacian matrix is the difference between a degree matrix (D) (e.g., a diagonal matrix including information about the degree of each node (i.e., vertex) in the network graph) and an adjacency matrix (A) including information about the adjacency of the nodes in the network graph (e.g., L=DA). The NMS can apply a spectral clustering algorithm (e.g., a k-means clustering algorithm) to the eigenvalues and eigenvectors of the Laplacian matrix of the network graph to form AP clusters, each of which can represent APs deployed on the same floor in a multi-story structure (or the same area in the same building or multi-building site). For example, the NMS can form clusters based on the communication density between nodes in the network graph and / or how the nodes are connected. Based on the AP clusters, the NMS can determine the location (e.g., x, y coordinates) of the APs (e.g., the placement of the APs on a map), which can then be used to learn and optimize the wireless network environment provided by the wireless network.
[0007] The technology disclosed herein provides one or more technical advantages and practical applications. For example, automatic grouping of one or more deployed APs can reduce costs and improve efficiency compared to the time-consuming and error-prone manual process of determining and entering a list of APs belonging to each AP group to set up a wireless network. Significant labor savings can be achieved because technicians do not need to manually determine and enter the group information of deployed APs into a database at installation time. The technology also uses automatic grouping of deployed APs to facilitate automatic positioning and floor determination of APs, thereby reducing the need to send technicians for regular manual site surveys to keep floor information updated. This can be used for rapid and dynamic deployment and configuration of wireless networks (e.g., automatically detecting when an AP has been removed, one or more APs have been moved to a different floor in a multi-story structure, or a new AP has been installed) to provide highly accurate indoor location-based services at the site, which rely on accurately knowing the floor number on which each AP is installed. The technology also uses automatic grouping of deployed APs for radio frequency (RF) coverage optimization and radio resource management of APs at the site, such as channel and transmit power level selection, thereby supporting optimized network performance and improving the overall user experience of the wireless network.
[0008] In one example, the present disclosure is directed to a system comprising: a plurality of access point devices (APs) configured to provide a wireless network at a site, and a computing device implementing a network management system (NMS) that manages the plurality of APs, the computing device comprising: one or more processors, a memory comprising instructions that, when executed by the one or more processors, cause the one or more processors to: obtain network data indicating a communication relationship between a plurality of APs; generate a network map based on the network data; group the plurality of APs into a plurality of AP clusters based on the network map; and uniquely assign to each of the plurality of clusters an identifier from a plurality of identifiers that indicates a cluster in the plurality of clusters with respect to the site.
[0009] In another example, the present disclosure is directed to a method, comprising: obtaining, by a computing device implementing a network management system (NMS), network data, the NMS managing a plurality of access point devices (APs), the plurality of APs being configured to provide a wireless network at a site, the network data indicating a communication relationship between the plurality of APs; generating, by the computing device, a network map based on the network data; grouping, by the computing device, the plurality of APs into a plurality of AP clusters based on the network map; and uniquely assigning, by the computing device, to each of the plurality of clusters, one of a plurality of identifiers indicating a cluster of the plurality of clusters with respect to the site.
[0010] In another example, the present disclosure describes a non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to: obtain network data indicating a communication relationship between a plurality of access point devices (APs), the plurality of APs being configured to provide a wireless network at a site; generate a network map based on the network data; group the plurality of APs into a plurality of AP clusters based on the network map; and uniquely assign one of a plurality of identifiers to each of the plurality of clusters indicating a cluster of the plurality of clusters with respect to the site.
[0011] The details of one or more examples of the disclosed techniques are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the techniques will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Figure 1A is a diagram of an example network system 100 that automatically groups one or more of deployed access points (APs) for learning a wireless network environment according to one or more techniques of this disclosure.
[0013] Figure 1B It shows Figure 1A A block diagram of a network system with additional example details.
[0014] Figure 2 is a block diagram of an example access point device in accordance with one or more techniques of this disclosure.
[0015] Figure 3A is a block diagram of an example network management system configured to automatically group one or more deployed APs for learning a wireless network environment according to one or more techniques of this disclosure.
[0016] Figure 3B is a block diagram of an example AP grouping module configured to automatically group one or more deployed APs for learning a wireless network environment according to one or more techniques of this disclosure.
[0017] Figure 4 is a block diagram of an example user equipment apparatus in accordance with one or more techniques of this disclosure.
[0018] Figure 5 is a block diagram of an example network node, such as a router or switch, in accordance with one or more techniques of this disclosure.
[0019] Figures 6A to 6B is a conceptual diagram illustrating example grouping of one or more deployed APs for learning a wireless network environment according to one or more techniques of this disclosure.
[0020] Figure 7 is a conceptual diagram illustrating an example group map based on automatic grouping of one or more deployed APs in accordance with one or more techniques of this disclosure.
[0021] Figures 8A to 8B Other examples of automatically grouping one or more deployed access points (APs) in a wireless network according to the techniques described in this disclosure are shown.
[0022] Figure 9 is a flow chart of an example process by which a network management system automatically groups one or more deployed APs for learning a wireless network environment, in accordance with one or more techniques of this disclosure. DETAILED DESCRIPTION
[0023] Figure 1A FIG1 is a diagram of an example network system 100 in which a network management system (NMS) 130 automatically groups one or more deployed access points (APs) in a wireless network for learning the wireless network environment. The example network system 100 includes a plurality of sites 102A-102N, where a network service provider manages one or more wireless networks 106A-106N, respectively. Figure 1A In the embodiment, each station 102A-102N is shown as including a single wireless network 106A-106N, respectively. However, in some examples, each station 102A-102N can include multiple wireless networks, and the present disclosure is not limited in this respect. In addition, although examples will be described herein with respect to determining AP groups, the techniques described herein can also be applied to determining group information for any type of computing device in a wired or wireless network.
[0024] Each site 102A-102N includes a plurality of network access server (NAS) devices, such as access points (APs) 142, switches 146, and routers (not shown). For example, site 102A includes a plurality of APs 142A-1 through 142A-N. Similarly, site 102N includes a plurality of APs 142N-1 through 142N-M. Each AP 142 can be any type of wireless access point, including but not limited to a commercial or enterprise AP, a router, or any other device that connects to a wired network and is capable of providing wireless network access to client devices within the site. For purposes of this disclosure, a plurality of APs 142 are deployed on multiple floors of a building or other structure, or across multiple buildings or other structures, to establish a wireless network at site 102.
[0025] Each site 102A-102N also includes a plurality of client devices (also referred to as user equipment devices (UEs)) representing various wireless-enabled devices within each site, collectively referred to as UEs or client devices 148. For example, a plurality of UEs 148A-1 through 148A-N are currently located at site 102A. Similarly, a plurality of UEs 148N-1 through 148N-M are currently located at site 102N. Each UE 148 can be any type of wireless client device, including but not limited to a mobile device such as a smartphone, tablet or laptop computer, a personal digital assistant (PDA), a wireless terminal, a smartwatch, a smart ring, or other wearable device. UEs 148 can also include wired client-side devices, such as IoT devices (such as printers), security devices, environmental sensors, or any other device connected to a wired network and configured to communicate via one or more wireless networks 106. References to "N" or "M" can represent any number. References to "N" need not be the same number for different elements. Similarly, references to "M" are not necessarily the same number for different elements.
[0026] To provide wireless network services to UE 148 and / or communicate over wireless network 106, AP 142 and other wired client-side devices at site 102 are connected directly or indirectly to one or more network devices (e.g., switches, routers, etc.) via physical cables (e.g., Ethernet cables). Figure 1A In the example of , site 102A includes switch 146A to which each of APs 142A-1 through 142A-N at site 102A is connected. Similarly, site 102N includes switch 146N to which each of APs 142N-1 through 142N-M at site 102N is connected. Figure 1A 146 and all APs 142 at a given site 102 are connected to the single switch 146, but in other examples, each site 102 can include more or fewer switches and / or routers. In addition, the APs and other wired client-side devices at a given site can be connected to more than two switches and / or routers. In addition, two or more switches at a site can be connected to each other and / or to two or more routers, for example, via a mesh or partial mesh topology in a hub-and-spoke architecture. In some examples, the interconnected switches and routers comprise a wired local area network (LAN) that hosts the wireless network 106 at the site 102.
[0027] The example network system 100 also includes various network components for providing network services within the wired network, including, by way of example, an authentication, authorization, and accounting (AAA) server 110 for authenticating users and / or UEs 148, a dynamic host configuration protocol (DHCP) server 116 for dynamically allocating a network address (e.g., an IP address) to the UEs 148 after authentication, a domain name system (DNS) server 122 for resolving domain names into network addresses, a plurality of servers 128A-128N (collectively referred to as “servers 128”) (e.g., network servers, database servers, file servers, etc.), and a network management system (NMS) 130. Figure 1A As shown, the various devices and systems of network 100 are coupled together via one or more networks 134 (eg, the Internet and / or a corporate intranet).
[0028] exist Figure 1A In some examples, NMS 130 is a cloud-based computing platform that manages wireless networks 106A-106N at one or more sites 102A-102N. As further described herein, NMS 130 provides wireless network management tools and implements an integrated suite of various techniques disclosed herein. Generally, NMS 130 can provide a cloud-based platform for wireless network data acquisition, monitoring, activity logging, reporting, predictive analysis, network anomaly identification, and alert generation. In some examples, NMS 130 uses a combination of artificial intelligence, machine learning, and data science techniques to optimize user experience and simplify operations across any one or more of the wireless access domain, the wired access domain, and the SD-WAN domain. In some examples, NMS 130 outputs notifications (such as alarms, warnings, graphical indications on a dashboard, log messages, text / Short Messaging Service (SMS) messages, email messages, etc.) and / or recommendations regarding wireless network issues to site or network administrators (“administrators”) interacting with and / or operating administrator device 111. Additionally, in some examples, NMS 130 operates in response to configuration input received from an administrator interacting with and / or operating administrator device 111 .
[0029] Administrators and administrator devices 111 may include IT personnel and administrator computing devices associated with one or more sites 102. Administrator device 111 may be implemented as any suitable device for presenting output and / or accepting user input. For example, administrator device 111 may include a display. Administrator device 111 may be a computing system, such as a mobile or non-mobile computing device operated by a user and / or by an administrator. According to one or more aspects of the present disclosure, administrator device 111 may represent, for example, a workstation, a laptop or notebook computer, a desktop computer, a tablet computer, or any other computing device that can be operated by a user and / or present a user interface. Administrator device 111 may be physically separate from NMS 130 and / or located at a different location from the NMS, such that administrator device 111 can communicate with NMS 130 via network 134 or other communication means.
[0030] In some examples, one or more NAS devices, such as AP 142, switch 146, or router, can be connected to corresponding edge devices 150A-150N via physical cables (e.g., Ethernet cables). Edge device 150 includes a cloud-managed wireless local area network (LAN) controller. Each edge device 150 can include a local deployment device at site 102 that communicates with NMS 130 to extend certain microservices from NMS 130 to the local deployment NAS device, while using NMS 130 and its distributed software architecture for scalable and resilient operations, management, troubleshooting, and analysis.
[0031] Each network device of the network system 100 (e.g., servers 110, 116, 122, and / or 128, AP 142, UE 148, switch 146, and any other server or device attached to or forming part of the network system 100) may include a system log or error log module, wherein each of these network devices records the state of the network device, including normal operating conditions and error conditions. Throughout this disclosure, one or more network devices of the network system 100 (e.g., servers 110, 116, 122, and / or 128, AP 142, UE 148, and switch 146) may be considered a "third-party" network device when owned and / or associated with a different entity than the NMS 130, such that the NMS 130 does not receive, collect, or otherwise access the logged state and other data of the third-party network device. In some examples, the edge device 150 may provide an agent through which the logged state and other data of the third-party network device may be reported to the NMS 130.
[0032] In some examples, the NMS 130 monitors network data 137 (e.g., one or more service level expectation (SLE) metrics, signal strength measurements, device measurements, etc.) received from the wireless networks 106A-106N at each site 102A-102N, respectively, and manages network resources (such as the AP 142 at each site) to deliver a high-quality wireless experience to end users, IoT devices, and clients at the site. For example, the NMS 130 may include a virtual network assistant (VNA) 133 that implements an event processing platform for providing real-time insights and simplifying troubleshooting for IT operations, and automatically taking corrective actions or providing recommendations to proactively resolve wireless network issues. For example, the VNA 133 may include an event processing platform configured to process hundreds or thousands of concurrent streams of network data 137 from sensors and / or agents associated with the AP 142 and / or nodes within the network 134. For example, the VNA 133 of the NMS 130 may include an underlying analysis and network error identification engine and alarm system according to various examples described herein. The underlying analytics engine of the VNA 133 can apply historical data and models to the inbound event stream to calculate assertions, such as identified anomalies or predicted occurrences of events that constitute network error conditions. In addition, the VNA 133 can provide real-time alerts and reports to notify site or network administrators via the administrator device 111 of any predicted events, anomalies, trends, and can perform root cause analysis and automatic or assisted error remediation. In some examples, the VNA 133 of the NMS 130 can apply machine learning techniques to identify the root cause of an error condition detected or predicted from the stream of network data 137. If the root cause can be automatically resolved, the VNA 133 can invoke one or more corrective actions to correct the root cause of the error condition, thereby automatically improving the underlying SLE metrics and also automatically improving the user experience.
[0033] Other example details of the operations implemented by the VNA 133 of the NMS 130 are described in the following patents: U.S. Patent No. 9,832,082, published on November 28, 2017, and entitled “Monitoring Wireless Access Point Events”; U.S. Publication No. US2021 / 0306201, published on September 30, 2021, and entitled “Network System Fault Resolution Using a Machine Learning Model”; U.S. Patent No. 10,985,969, published on April 20, 2021, and entitled “Systems and Methods for a Virtual Network Assistant”; U.S. Patent No. 10,985,969, published on March 23, 2021, and entitled “Methods and Apparatus for Facilitating Fault Detection and / or Predictive Fault Detection”; Detection), U.S. Patent No. 10,958,585, published on March 23, 2021, entitled “Method for Spatio-Temporal Modeling,” and U.S. Patent No. 10,862,742, published on December 8, 2020, entitled “Method for Conveying AP Error Codes Over BLE Advertisements,” all of which are incorporated herein by reference in their entirety.
[0034] The NMS 130 observes, collects, and / or receives network data 137 from various client devices, such as SDK clients, named assets, and / or client devices connected to or not connected to the wireless network. The network data may include various states or parameters indicating one or more aspects of wireless network performance. The network data 137 may take the form of data extracted from messages, counters, and statistics, for example. The network data may be collected and / or measured by one or more UEs 148 and / or one or more AP devices 142 in the wireless network 106. Some of the network data 137 may be collected and / or measured by other devices in the network system 100, such as switches or firewalls. Network data, such as the network data 137 within the NMS 130, may be stored in a database or, alternatively, in an external database.
[0035] According to one specific implementation, the computing device is part of the NMS 130. According to other implementations, the NMS 130 may include one or more computing devices, dedicated servers, virtual machines, containers, services, or other forms of environments for executing the techniques described herein. Similarly, the computing resources and components that implement the VNA 133 may be part of the NMS 130, may be executed on other servers or execution environments, or may be distributed to nodes within the network 134 (e.g., routers, switches, controllers, gateways, etc.).
[0036] According to the techniques described in this disclosure, NMS 130 is configured to automatically group one or more deployed APs in a wireless network for learning the wireless network environment. Multiple APs can be deployed (e.g., installed) on multiple floors of a multi-story building or structure (or deployed across multiple buildings) to establish a wireless network at a site, such as APs 142A-1 to 142A-N deployed at site 102A. NMS 130 includes an AP grouping module 135 that is configured to automatically group one or more APs (e.g., AP 142A) and uniquely assign an identifier to each of the AP groups that indicates the AP's location in the group relative to site 102A.
[0037] For example, NMS 130 may obtain information (e.g., RSSI values) about detected radio signals from multiple APs (e.g., AP 142) (or any other device capable of providing wireless network access to client devices within the site), and based on the RSSI values, AP grouping module 135 may generate a graph-based representation of the multiple APs (also referred to herein as a "network graph" or "neighborhood graph"), which represents the connectivity relationships between the multiple APs (i.e., the neighborhood relationships between the multiple APs). The RSSI values may represent the strength (e.g., in decibel milliwatts (dBm)) of radio signals received by the APs, such as Wi-Fi signals, short-range wireless signals (e.g., Bluetooth signals), or any other radio signals. Nodes in the network graph may represent APs, and each connection between nodes in the network graph may represent that the AP can detect radio signals from other APs (or detect radio signals of a certain signal strength). For example, each connection between nodes in the graph may represent that the connected APs have detected each other's radio signals. In some examples, network system 100 may include a large number of connections between APs 142 (e.g., an AP may detect more than 10 other APs). In these examples, AP grouping module 135 can filter the network map of AP 142 to include APs with the strongest connectivity, thereby reducing the number of connections between APs within the network map and, therefore, using a smaller set of AP data. For example, APs 142A-N can detect radio signals from ten other APs within site 102A. In this example, AP grouping module 135 can apply an RSSI threshold (e.g., -70 dBm) to filter the network map of AP 142 to include a subset of the ten other APs, such as two of the ten APs representing the APs with the strongest connectivity (e.g., filtering out connections between APs with connectivity less than -70 dBm). In some examples, an administrator can specify the RSSI threshold via administrator device 111. In some examples, the network map of AP 142 is based on an average of RSSI values between APs over a period of time. Additional examples of network diagrams are described in U.S. patent application Ser. No. 17 / 804,780, filed on May 31, 2022, and entitled “Automatic Upgrade Planning,” the entire contents of which are incorporated herein by reference.
[0038] In response to generating the network graph of the APs, the AP grouping module 135 may generate a matrix representation of the network graph of the APs. For example, the AP grouping module 135 may generate a Laplacian matrix (L) representing the network graph of the APs, where the Laplacian matrix is the difference between: (1) a degree matrix (D), which is a diagonal matrix that specifies information about the degree of each node (e.g., the number of edges associated with the node, which indicates the number of connections the AP has with other APs), and (2) an adjacency matrix (A), which specifies information about the adjacency of nodes in the network graph (e.g., information identifying which APs have connectivity).
[0039] In response to generating a Laplacian matrix representing the network graph of APs, the AP grouping module 135 may calculate eigenvalues and eigenvectors based on the Laplacian matrix. An eigenvector is a vector that changes by a scalar factor when a linear transformation is applied to the vector. The scalar factor by which the eigenvector is scaled is called an eigenvalue. The number of eigenvectors calculated may be based on, for example, the number of desired clusters representing the number of floors in a multi-story structure (or the number of buildings or areas in a multi-building site). As further described below, the AP grouping module 135 may apply a spectral clustering algorithm (e.g., a k-means clustering algorithm) to the eigenvalues and eigenvectors of the Laplacian matrix of the network graph to form clusters of one or more APs. The value "k" may be based on, for example, the number of floors in a multi-story site or the number of buildings in a multi-building site. Each of the resulting clusters output by the k-means clustering algorithm may represent, for example, a densely distributed area of APs with strong connections to one another, and may therefore represent a group of APs for a particular floor in a multi-story structure (or a particular building or area in a multi-building site). The output of the k-means clustering algorithm may uniquely assign an identifier indicating the AP cluster with respect to the site (eg, a specific floor number among a plurality of floor numbers on which the AP cluster is installed).
[0040] The AP grouping module 135 can store the network map data in a database or other storage medium, such as network map data 138, for further monitoring and / or analysis. The network map data 138 can include values of a Laplacian matrix representing the network map of the APs and / or eigenvalues and eigenvectors calculated from the Laplacian matrix representing the network map of the APs. The AP grouping module 135 can also store the resulting group information (e.g., unique assignments to the AP groups) for each AP group in a database or other storage medium, such as AP group data 139, for further monitoring and / or analysis, such as for determining the locations of the APs in each AP group.
[0041] In addition, the NMS 130 can automatically generate one or more notifications and / or automatically invoke one or more actions based on the identifier assigned to the AP group (e.g., floor number). In another example, the identifier assigned to the AP group (e.g., floor number) can be used to provide positioning services for client devices associated with the wireless network.
[0042] Figure 1B It shows Figure 1A A block diagram of a network system with other example details is provided. In this example, Figure 1B An NMS 130 is shown that is configured to operate according to an artificial intelligence / machine learning based computing platform that provides Figure 1B The wireless network 106 and the wired LAN 175 network to the computing resources in the data center 179 ( Figure 1B The NMS 130 includes a virtual network assistant 133, an AP grouping module 135, network data 137, network map data 138, and AP group data 139.
[0043] As described herein, NMS 130 provides an integrated suite of management tools and implements the various technologies of the present disclosure. Generally, NMS 130 can provide a cloud-based platform for wireless network data acquisition, monitoring, activity logging, reporting, predictive analysis, network anomaly identification, and alert generation. For example, network management system 130 can be configured to proactively monitor and adaptively configure network system 100 to provide automated driving capabilities. Furthermore, VNA 133 includes a natural language processing engine to provide AI-driven support and troubleshooting, anomaly detection, AI-driven location services, and AI-driven RF optimization with reinforcement learning.
[0044] like Figure 1BAs shown in the example of , the AI-driven NMS 130 also provides configuration management, monitoring, and automated supervision of a software-defined wide area network (SD-WAN) 177, which operates as an intermediate network that communicatively couples the wireless network 106 and wired LAN 175 to a data center 179 and application services 181. Typically, the SD-WAN 177 provides seamless, secure, traffic-engineered connectivity between "spoke" routers 187A at the edge of the wired network 175 (such as a branch or campus network) hosting the wireless network 106, to "hub" routers 187B further up the cloud stack toward cloud-based application services 181. The SD-WAN 177 typically operates and manages an overlay network on an underlying physical wide area network (WAN) that provides connectivity to geographically separated customer networks. In other words, the SD-WAN 177 extends software-defined networking (SDN) capabilities to the WAN and allows the network to decouple the underlying physical network infrastructure from the virtualized network infrastructure and applications, making it possible to configure and manage the network in a flexible and scalable manner.
[0045] In some examples, the underlying routers of SD-WAN 177 can implement a stateful, session-based routing scheme in which routers 187A, 187B dynamically modify the contents of the original packet header originating from user device 148 to direct traffic along a selected path (e.g., path 189) toward application service 181 without the use of tunnels and / or additional labels. In this way, routers 187A, 187B can be more efficient and scalable for large networks because the use of tunnel-free, session-based routing can enable routers 187A, 187B to utilize significant network resources by eliminating the need to perform encapsulation and decapsulation at tunnel endpoints. Furthermore, in some examples, each router 187A, 187B can independently perform path selection and traffic engineering to control the flow of packets associated with each session, without requiring a centralized SDN controller for path selection and label distribution. In some examples, routers 187A, 187B implement session-based routing as provided by Juniper Networks, Inc., a Security Vector Router (SVR).
[0046] Additional information about session-based routing and SVR is described in the following patents: U.S. Patent No. 9,729,439, entitled “COMPUTER NETWORK PACKET FLOW CONTROLLER,” issued on August 8, 2017; U.S. Patent No. 9,729,682, entitled “NETWORK DEVICE AND METHOD FOR PROCESSING ASESSION USING A PACKET SIGNATURE,” issued on August 8, 2017; U.S. Patent No. 9,762,485, entitled “NETWORK PACKET FLOW CONTROLLER WITH EXTENDED SESSION MANAGEMENT,” issued on September 12, 2017; and U.S. Patent No. 9,762,485, entitled “ROUTER WITH OPTIMIZED STATISTICS,” issued on January 16, 2018. No. 9,871,748, entitled “Optimized Static Functionality”; No. 9,985,883, issued on May 29, 2018, entitled “Name-Based Routing System and Method”; No. 10,200,264, issued on February 5, 2019, entitled “Link Status Monitoring Based on Packet Loss Detection”; No. 10,277,506, issued on April 30, 2019, entitled “Stateful Load Balancing in a Stateless Network”; No. 10,277,506, issued on October 1, 2019, entitled “Network Packet Flow Controller with Extended Session Management” No. 10,432,522, entitled “PACKET FLOWCONTROLLER WITH EXTENDED SESSION MANAGEMENT”; and U.S. Patent Application Publication No. 2020 / 0403890, published on December 24, 2020, entitled “IN-LINE PERFORMANCE MONITORING,” the entire contents of each of which are incorporated herein by reference.
[0047] In some examples, the AI-driven NMS 130 can implement intent-based configuration and management of the network system 100, including the construction, presentation, and execution of intent-driven workflows for configuring and managing devices associated with the wireless network 106, the wired LAN network 175, and / or the SD-WAN 177. For example, declarative requirements express the desired configuration of network components without specifying the exact native device configuration and control flow. By utilizing declarative requirements, one can specify what should be accomplished, rather than how it should be accomplished. Declarative requirements can be contrasted with imperative instructions, which describe the exact device configuration syntax and control flow to implement the configuration. By utilizing declarative requirements rather than imperative instructions, users and / or user systems are relieved of the burden of determining the exact device configuration required to achieve the user / system's desired outcome. For example, when utilizing a variety of different types of devices from different vendors, specifying and managing the exact imperative instructions for configuring each device in the network is often difficult and cumbersome. The types and variety of devices in a network can change dynamically as new devices are added and device failures occur. Managing a variety of different types of devices from different vendors with different configuration protocols, syntaxes, and software versions to configure a cohesive network of devices is often difficult to implement. Therefore, by requiring the user / system to specify only declarative requirements that specify desired outcomes that apply across a variety of different types of devices, management and configuration of network devices becomes more efficient. Other example details and techniques of intent-based network management systems are described in the following patents: U.S. Patent 10,756,983, entitled "Intent-based Analytics," and U.S. Patent 10,992,543, entitled "Automatically generating an intent-based network model of an existing computer network," each of which is incorporated herein by reference in its entirety.
[0048] Figure 2 is a block diagram of an example access point (AP) device 200 configured in accordance with one or more techniques of this disclosure. Figure 2 The example access point 200 shown in FIG. 1 may be used to implement the Figure 1A Any of the illustrated and described AP devices 142. The access point device 200 may include, for example, a Wi-Fi, Bluetooth, and / or Bluetooth Low Energy (BLE) base station or any other type of wireless access point.
[0049] exist Figure 2In the example of FIG, the access point device 200 includes a wired interface 230, wireless interfaces 220A-220B, one or more processors 206, memory 212, and a user interface 210 (shown as "input / output 210"), and one or more indicators 276 coupled together via a bus 214, through which the various elements can exchange data and information. The wired interface 230 represents a physical network interface and includes a receiver 232 and a transmitter 234 for sending and receiving network communications (e.g., packets). The wired interface 230 couples the access point device 200 directly or indirectly to Figure 1A The first wireless interface 220A and the second wireless interface 220B represent wireless network interfaces and include a receiver 222A and a receiver 222B, respectively, each of which includes a receiving antenna via which the access point 200 can receive data from a wireless communication device such as a wireless communication device. Figure 1A The first wireless interface 220A and the second wireless interface 220B further include a transmitter 224A and a transmitter 224B, respectively, each of which includes a transmitting antenna, and the access point 200 can transmit wireless signals to a wireless communication device (such as a UE 148) via the transmitting antenna. Figure 1A In some examples, the first wireless interface 220A may include a Wi-Fi 802.11 interface (e.g., 2.4 GHz, 5 GHz, 6 GHz, or other wireless communication frequencies), and the second wireless interface 220B may include a Bluetooth interface and / or a Bluetooth low energy (BLE) interface. One or more wireless interfaces 220 may include an array of transmitting and / or receiving antennas. However, the above is provided for exemplary purposes only, and the present disclosure is not limited in this regard.
[0050] The processor 206 is a programmable hardware-based processor that is configured to execute software instructions (such as those defining software or a computer program) stored to a computer-readable storage medium (such as memory 212), such as a non-transitory computer-readable medium including a storage device (e.g., a disk drive or an optical drive) or memory (such as flash memory or RAM) or any other type of volatile or non-volatile memory, which stores instructions to cause the one or more processors 206 to perform one or more techniques described herein.
[0051] The memory 212 includes one or more devices configured to store programming modules and / or data associated with the operation of the access point device 200. For example, the memory 212 may include a computer-readable storage medium (such as a non-transitory computer-readable medium including a storage device (e.g., a magnetic disk drive or an optical disk drive) or a memory (such as flash memory or RAM), or any other type of volatile or non-volatile memory) that stores instructions to cause the one or more processors 206 to perform one or more techniques described herein.
[0052] In this example, memory 212 stores executable software and various data, including an application programming interface (API) 240, a communication manager 242, configuration settings 250, a round trip time (RTT) / RSSI log 252, a data storage device 254, and a control log 255. RTT / RSSI log 252 includes RTT values and / or RSSI values measured by AP 200 with respect to one or more other APs in the wireless network. Although example RTT and RSSI techniques are described herein, it should be understood that any method of estimating the distance between two APs may be used, including any type of Wi-Fi ranging technique and / or Bluetooth ranging technique, and the present disclosure is not limited in this respect.
[0053] RTT and / or RSSI values can be used to estimate the distance between two APs. For example, AP 200 can measure RSSI values of received wireless signals transmitted by one or more other APs and store the measured values in RTT / RSSI log 252. AP 200, NMS 130, or both can then use these RSSI values to estimate the distance between AP 200 and one or more other APs in the wireless network. As another example, AP 200 and one or more other APs can perform round-trip time (RTT) (e.g., time of flight (ToF)) measurements between each other and store the measured values in their respective RTT / RSSI logs 252. AP 200, NMS 130, or both can then use RTT techniques to estimate the distance between the two APs. An example Wi-Fi RTT technique is described by the IEEE 802.11mc (i.e., IEEE 802.11-2016) standard, which defines a fine time measurement (FTM) protocol that can be used to measure the round-trip time (RTT) of Wi-Fi signals. In some examples, AP 200 sends an RTT / RSSI value to NMS 130, and NMS 130 estimates the distance between AP 200 and one or more other APs based on the RTT / RSSI value received from each of the multiple APs. In other examples, each AP 200 estimates the distance between itself and one or more other APs in the wireless network based on the RTT or RSSI value and sends the estimated distance to NMS 130. The estimated distance between APs may also be determined by any other computing device, and the present disclosure is not limited in this respect. According to one or more techniques of the present disclosure, NMS 130 can obtain RTT or RSSI values and generate a network map of APs, which is then used to automatically group APs for learning the wireless network environment.
[0054] The network data stored in data storage device 254 may include, for example, data related to or associated with AP events and / or UE events. In some examples, network events are categorized as positive network events, neutral network events, and / or negative network events. Network events may include, for example, memory status, reboot events, crash events, Ethernet port status, upgrade failure events, firmware upgrade events, configuration changes, authentication events, DNS events, DHCP events, one or more types of roaming events, one or more types of proximity events, and the like, as well as a time and date stamp for each event. Control log 255 determines the logging level for the device based on instructions from NMS 130. Data 254 may store any data used and / or generated by access point device 200, including data collected from UE 148.
[0055] The communication manager 242 includes program code that, when executed by the processor 206, allows the access point 200 to communicate with the UE 148 and / or the network 134 via the interface 230 and / or any of the interfaces 220A-220B. Configuration settings 250 include any device settings of the access point 200, such as the radio settings for each of the wireless interfaces 220A-220B. These settings can be manually configured or can be remotely monitored and / or automatically managed or configured by the NMS 130 to optimize wireless network performance on a periodic basis (e.g., hourly or daily).
[0056] Input / output (I / O) 210 represents physical hardware components that enable interaction with a user, such as buttons, a touch screen, a display, etc. Although not shown, memory 212 typically stores executable software for controlling the user interface associated with input received via I / O 210 .
[0057] The indicator 276 includes, for example, one or more multi-color LEDs for visually conveying the status of the AP. For example, the AP 200 is configured to control the indicator 276 to flash a code consisting of one or more colors or patterns to indicate the status of the AP 200. The code may include one or more normal status codes (e.g., AP starting up, AP booting, AP connected to the cloud, at least one wireless client connected to the AP, AP upgrading, AP positioning mode, etc.) and / or one or more error status codes (e.g., insufficient power, no Ethernet link, one or more DHCP errors, one or more DNS errors, one or more cloud unreachable errors, one or more tunneling protocol errors, one or more boot configuration errors, one or more firmware errors, etc.).
[0058] Indicator 276 is positioned on a side of the AP (e.g., the top surface) and provides the installer with visual confirmation of the correct orientation of the AP during installation. For example, when the AP is deployed in a typical ceiling-mount configuration, indicator 276 should be visible to the installer and, therefore, generally face downward toward the floor rather than toward the ceiling. Similarly, when the AP is deployed in a floor-mount configuration, indicator 276 should generally face upward toward the ceiling, while in a wall-mount configuration, the indicator will generally face to the side. Thus, indicator 276 improves installation consistency by helping to ensure that all ceiling-mounted APs are installed with the same orientation, with the indicator facing downward, and that all floor-mounted APs are installed with the indicator facing upward. Thus, indicator 276 is a mechanism by which the system can rely on the assumption that the correct orientation for ceiling-mounted APs is with the indicator facing downward, and that the orientation for floor-mounted APs is with the indicator facing upward. Indicator 276 can also be used for troubleshooting purposes of deployed APs and / or for locating a specific AP.
[0059] Figure 3A is a block diagram of an example network management system (NMS) 300 configured to automatically group one or more deployed APs in a wireless network for learning the wireless network environment according to one or more techniques of the present disclosure. Figure 1A to Figure 1B 106N, including automatic grouping of APs for learning the wireless network environment. In some examples, the NMS 300 receives network data collected by the AP devices 142, such as network data including information about detected radio signals (e.g., RSSI values) used to determine connection relationships between deployed APs, and analyzes the data for cloud-based management of the wireless networks 106A-106N. In some examples, the NMS 300 may be a Figure 1A or a portion of another server shown in , or a portion of any other server or computing device.
[0060] NMS 300 includes a communication interface 330, one or more processors 306, a user interface 310, a memory 320, and a database 312. The various elements are coupled together via a bus 314, over which the various elements can exchange data and information.
[0061] The processor 306 executes software instructions (such as those defining software or a computer program) stored to a computer-readable storage medium (such as memory 320), such as a non-transitory computer-readable medium including a storage device (e.g., a disk drive or an optical drive) or memory (such as flash memory or RAM) or any other type of volatile or non-volatile memory, that stores instructions to cause the one or more processors 306 to perform the techniques described herein.
[0062] The communication interface 330 may include, for example, an Ethernet interface. The communication interface 330 couples the NMS 300 to a network and / or the Internet (such as Figure 1A ), and / or any local area network. The communication interface 330 includes a receiver 332 and a transmitter 334, through which the NMS 300 receives data from the AP device 142, the administrator device 111, the servers 110, 116, 122, 128, and / or any other network such as a local area network. Figure 1A to Figure 1BThe NMS 300 may receive data and information from / send data and information to any of the other devices or systems that are part of the network 100 shown in FIG. The data and information received by the NMS 300 may include, for example, network data and / or event log data received from the access points 142 that is used by the NMS 300 to remotely monitor and / or control the performance of the wireless networks 106A-106N and to automatically group the APs 142 for learning the wireless network environment of the sites 102. The NMS 300 may further send data via the communication interface 330 to any network device, such as the AP 142 of any of the network sites 102A-102N, to remotely manage the wireless networks 106A-106N.
[0063] The memory 320 includes one or more devices configured to store programming modules and / or data associated with the operation of the NMS 300. For example, the memory 320 may include a computer-readable storage medium (such as a non-transitory computer-readable medium including a storage device (e.g., a magnetic disk drive or an optical disk drive) or memory (such as flash memory or RAM) or any other type of volatile or non-volatile memory) that stores instructions to cause the one or more processors 306 to perform the techniques described herein.
[0064] In this example, memory 320 includes an API 322, an SLE module 324, a virtual network assistant (VNA) / AI engine 326, a radio resource management (RRM) engine 328, an AP grouping module 342, an AP positioning module 344, an AP orientation module 346, an AP floor module 348, and one or more machine learning models 350. NMS 300 may also include any other programming modules, software engines, and / or interfaces configured for remote monitoring and management of wireless networks 106A-106N, including remote monitoring and management of any of AP devices 142.
[0065] The RRM engine 328 monitors one or more metrics for each site 102A-102N to understand and optimize the power and / or radio frequency (RF) environment at each site. For example, the RRM engine 328 can monitor the coverage and capacity (SLE) metrics of the wireless network 106 at site 102 (e.g., managed by the SLE module 324) to identify potential coverage and / or capacity issues in the wireless network 106 and adjust the radio settings of the access points at each site to address the identified issues. The RRM engine 328 can determine the channel and transmit power distribution across all AP devices 142 in each network 106A-106N. The RRM engine 328 can monitor events, power, channels, bandwidth, and the number of clients and / or APs connected to each AP device. The RRM engine 328 can measure the strength of radio signals between client devices and APs and / or APs, such as RSSI values. The RSSI values for each of the multiple APs can be stored in a database or other storage medium, such as network data 314, for further monitoring and / or analysis. The RRM engine 328 can further automatically change or update the configuration of one or more AP devices 142 at the site 102 in order to improve the coverage and / or capacity SLE indicators and thereby provide an improved wireless experience for the user. In some examples, the RRM engine 328 can use information determined by the AP grouping module 342, the AP positioning module 344, the AP orientation engine 346, and / or the AP floor engine 348 to learn and optimize the wireless network environment provided by the wireless network.
[0066] The VNA / AI engine 326 analyzes network data received from the AP devices 142 and its own data to monitor the performance of the wireless networks 106A-106N. For example, the VNA engine 326 can identify when an anomaly or abnormal condition is encountered in one of the wireless networks 106A-106N. The VNA / AI engine 326 can use a root cause analysis module (not shown) to identify the root cause of any anomaly or abnormal condition. In some examples, the root cause analysis module utilizes artificial intelligence-based techniques to help identify the root cause of any poor SLE indicators at one or more of the wireless networks 106A-106N. In addition, the VNA / AI engine 326 can automatically invoke one or more remedial actions aimed at addressing the identified root cause of one or more poor SLE indicators. Examples of remedial actions that can be automatically invoked by the VNA / AI engine 326 can include, but are not limited to, invoking the RRM 328 to restart one or more AP devices and / or adjust / modify the transmit power of a specific radio in a specific AP device, adding a service set identifier (SSID) configuration to a specific AP device, changing the channel on an AP device or a group of AP devices, and the like. Remedial actions may also include restarting switches and / or routers, invoking new software downloads to AP devices, switches, or routers, etc. These remedial actions are provided for example purposes only, and the present disclosure is not limited in this respect. If automatic remedial actions are not available or are insufficient to address the root cause, the VNA / AI engine 326 may proactively and automatically provide a notification including recommended remedial actions for IT personnel to take to resolve the anomalous or abnormal wireless network operation.
[0067] The SLE module 324 enables establishing and tracking thresholds for one or more SLE metrics for each of the wireless networks 106A-106N. The SLE module 324 further analyzes network data (e.g., stored as network data 314) collected by AP devices and / or UEs associated with the wireless networks 106A-106N (e.g., any AP device 142 from the UE 148 in each wireless network 106A-106N). For example, the AP devices 142A-1 to 142A-N collect network data from the UEs 148A-1 to 148A-N currently associated with the wireless network 106A (e.g., named assets, connected / unconnected Wi-Fi clients). This data is sent to the NMS 300 and stored, for example, as network data 314, in addition to any network data collected by one or more APs 142A-1 to 142A-N in the wireless network 106A.
[0068] The NMS 300 executes the SLE module 324 to determine one or more SLE metrics for each UE 148 associated with the wireless network 106. The one or more SLE metrics can be further aggregated to each AP device at a site to understand the contribution of each AP device to the wireless network performance at that site. The SLE metrics track whether the service level of each specific SLE metric meets the configured threshold. In some examples, each SLE metric can also include one or more classifiers. If the metric does not meet the SLE threshold configured for the site, the failure can be attributed to a classifier to further understand how and / or why the failure occurred.
[0069] The AP location module 344, when executed by one or more processors of the NMS 300, causes the NMS 300 to automatically determine the x, y (and in some examples, z) coordinate position of each AP in each group of APs at a site in a global coordinate system for the site. For the purposes of the examples given in this disclosure, the global coordinate system is a Cartesian coordinate system in which the x, y plane is defined by horizontal planes substantially parallel to the floor and ceiling of a multi-story building. The z-axis of the global coordinate system is defined as being perpendicular to the xy plane. The origin of the global coordinate system is a fixed location defined at the site of the multi-story structure. However, the global coordinate system can be defined in any other manner, and the present disclosure is not limited in this respect. For example, the global coordinate system can include a Cartesian coordinate system in which the x, y, and z axes are defined differently with respect to the site. In other examples, the global coordinate system can include a spherical coordinate system, a latitude-longitude-based coordinate system, or any other system in which the location of one or more APs at a site can be uniquely identified.
[0070] Example techniques for automatically determining the x, y, and / or z coordinates and / or positions of one or more APs in a wireless network are described in the following patents: U.S. Patent Application No. 17 / 811,784, filed on July 11, 2022, and entitled “Determining Locations of Deployed Access Points,” U.S. Patent No. 11,422,224, published on August 23, 2022, and entitled “Location Determination Based on Phase Differences,” and U.S. Patent No. 11,696,092, published on July 4, 2023, and entitled “Multi-Wireless Device Location Determination,” each of which is incorporated herein by reference in its entirety. However, other techniques may also be used, and the present disclosure is not limited in this respect. Additionally or alternatively, the x, y, and / or z coordinates of each AP may be manually entered at installation, as a result of a site survey, or at any other time for storage by the NMS 300 or an associated database.
[0071] In some examples, the AP location module 344 can use the automatically grouped APs described in the present disclosure to automatically determine the floor locations of deployed APs, such as determining the floor numbers of the AP groups and / or the order of the AP group floors. Example techniques for automatically determining the floor locations of deployed APs are described in U.S. patent application Ser. No. 18 / 305,040, filed on April 21, 2023, and entitled “Systems and Methods of Determining Floor Locations of Deployed Access Points,” the entire contents of which are incorporated herein by reference.
[0072] The AP orientation module 344, when executed by one or more processors of the NMS 300, causes the NMS 300 to automatically determine the orientation of the deployed APs of each AP group in the global coordinate system of the site. For the purposes of this disclosure, the orientation angle of the AP is referred to as angle β, at which a fixed point on the AP is rotated about the y-axis of the global coordinate system of the site. Example techniques for automatically determining the orientation of one or more APs in a wireless network are described in U.S. patent application Ser. No. 17 / 651,526, filed on February 17, 2022, and entitled “Determining Orientation of Deployed Access Points,” the entire contents of which are incorporated herein by reference. However, other techniques may also be used, and the present disclosure is not limited in this respect. Additionally or alternatively, the orientation of each AP may be manually entered at the time of installation, as a result of a site survey, or at any other time for storage by the NMS 300 or an associated database.
[0073] According to one or more techniques of this disclosure, NMS 300 includes an AP grouping module 342 that, when executed by one or more processors of NMS 300 , enables NMS 300 to automatically group one or more deployed APs for learning a wireless network environment.
[0074] For example, the AP grouping module 342 is configured to generate a network map of the plurality of deployed APs based on RSSI values of the plurality of APs managed by the NMS 300, the network map representing neighbor relationships between the APs, and generate a matrix representation of the network map (e.g., a Laplacian matrix) for forming AP groups. The NMS 300 may store network map data (e.g., information from the network map and / or matrix), such as the network map data 315, for each of the plurality of APs in a database or other storage medium for further monitoring and / or analysis, such as by applying a clustering algorithm to the network map data 315 to form groups of the plurality of APs, as further described below.
[0075] Each group formed by applying the clustering algorithm includes one or more APs installed on the same floor of a multi-story structure at a site or within the same building at a multi-building site. Each AP group includes a unique identifier that indicates the AP group for the site, such as the specific floor number of the multiple floor numbers of the multi-story structure at the site (or the building numbers at the multi-building site) on which the AP group is installed. The NMS 300 can store group information (e.g., a unique identifier assigned to the AP group), such as AP group data 316, for each of the AP groups in a database or other storage medium for further monitoring and / or analysis, such as determining the location of deployed APs.
[0076] In some examples, the NMS 300 automatically generates one or more notifications and / or automatically invokes one or more actions based on the location, orientation, and / or group information of one or more of the plurality of APs or AP groups. In some examples, the NMS 300 uses the location, orientation, and / or group information stored or determined for one or more of the plurality of APs or AP groups to provide positioning services for one or more client devices associated with a wireless network at a site. Further details of the AP grouping module 342 are provided in Figure 3B Described below.
[0077] Figure 3B is a block diagram of an example AP grouping module 342 configured to automatically group one or more deployed APs for learning a wireless network environment according to one or more techniques of this disclosure.
[0078] Typically, each AP deployed within a site (e.g. Figure 1A The AP 142 of site 102A includes one or more wireless transmitters through which the AP transmits wireless signals, and one or more receivers that receive wireless signals from one or more other APs 142 and / or wireless client devices associated with the wireless network. In some examples, the receiving AP uses the power of the received wireless signal to determine a received signal strength (RSSI) associated with a wireless signal received by the AP and originating from (e.g., transmitted by) one or more other APs in the wireless network. Each AP can also be configured to measure a round-trip time (RTT) between the AP and one or more other APs based on a time of flight (ToF). The AP can store the RTT and / or RSSI values in, for example, Figure 2 The RTT / RSSI log 252 can be used to estimate the distance between two APs. The RSSI and / or RTT values and / or the corresponding estimated distance can also be sent from the AP to the NMS 130 / 300, where the RSSI and / or RTT values and / or the corresponding estimated distance can be stored. Figure 3A When executed by one or more processors of the NMS 300, the AP grouping module 342 may obtain RSSI and / or RTT values and / or corresponding estimated distances (e.g., Figure 3B The RTT / RSSI data 370 is automatically used to group one or more deployed APs in the wireless network for determining the locations of the deployed APs.
[0079] exist Figure 3BIn the example of FIG, the AP grouping module 342 of the NMS 300 may include one or more software modules and / or engines. When the software modules and / or engines are operated by one or more processors (e.g., Figure 3A When executed by the processor 306, the processor automatically groups one or more deployed APs. For example, the AP grouping module 342 may include a graph module 362 and a clustering module 364. The graph module 362 may obtain RTT / RSSI data 370 and, based on the RTT / RSSI data 370, generate a network graph of the plurality of APs representing neighbor relationships between the plurality of APs. The graph module 362 may generate the network graph based on one or more graph models, such as an undirected graph model or any other type of graph model.
[0080] In some examples, the map module 362 may include a filtering module 363 to filter the network map so that the network map uses a smaller set of AP data. For example, the filtering module 363 may apply, for example, an RSSI threshold to filter the network map of APs to reduce the set of APs with, for example, the strongest connectivity. For example, an administrator may specify an RSSI threshold (e.g., -70 dBm) via the user interface 310, and the filtering module 363 may use the threshold to filter out connections between APs with an RSSI below -70 dBm.
[0081] The clustering module 364 is configured to automatically group one or more APs based on neighbor relationships between multiple APs in the network graph. In this example, the clustering module 364 includes a matrix engine 365 that is configured to generate a matrix representation of the network graph of the APs, such as a Laplacian matrix. For example, the matrix engine 365 can generate a degree matrix (D), which is a diagonal matrix of information that specifies the degree of each node (e.g., the number of edges associated with the node, which represents the number of connections of the AP with other APs). The matrix engine 365 can also generate an adjacency matrix (A), which specifies information about the adjacency of nodes in the network graph (e.g., information that identifies which APs have connectivity). In order to generate a Laplacian matrix representing the network graph of the APs, the matrix engine 365 calculates the difference between the degree matrix and the adjacency matrix.
[0082] In response to generating a Laplacian matrix representing the network graph of the APs, the computation engine 366 of the clustering module 364 can calculate eigenvalues and eigenvectors based on the Laplacian matrix. An eigenvector is a vector that changes by a scalar factor when a linear transformation is applied to the vector. The scalar factor by which the eigenvector is scaled is called an eigenvalue.
[0083] The calculation engine 366 can apply a clustering algorithm, such as a k-means clustering algorithm or any other spectral clustering algorithm, to the eigenvalues and eigenvectors. For example, the administrator can specify a value of "k" via the user interface 310, which can represent the number of floors in a multi-story structure of a site or the number of buildings in a multi-building site, and the calculation engine 366 can calculate the number of eigenvectors based on the value k. The calculation engine 366 can apply a clustering algorithm to the eigenvalues calculated from the Laplacian matrix to determine how the nodes in the network graph are connected to each other. For example, the clustering algorithm can determine the number of zero (0) eigenvalues, which corresponds to the number of connected components (e.g., densely populated areas of APs) in the network graph. For example, if the number of zero eigenvalues is one, the clustering algorithm can determine that there is at least one connected component (e.g., a connection between densely populated areas of two APs). The calculation engine 366 can apply a clustering algorithm to the eigenvalues calculated from the Laplacian matrix to determine the connection density of the network graph (e.g., the higher the spectral gap, the greater the density of connections between nodes). For example, the clustering algorithm may determine that a first non-zero eigenvalue (e.g., the smallest non-zero eigenvalue) is referred to as a "spectral gap" or "eigenvalue gap," which corresponds to the density of connectivity in the network graph (e.g., the higher the spectral gap, the greater the density of connectivity between nodes). For example, if the spectral gap is close to zero, the clustering algorithm may determine that there are edges on the network graph that are not densely connected to other APs, and therefore a graph cut may be performed to separate the graph into independent groups. The clustering algorithm may also determine a second smallest eigenvalue, referred to as a "Fiedler value," which may represent the minimum graph cut required to separate the graph into two connected components (e.g., two densely populated areas of APs). The clustering algorithm may further determine a vector corresponding to the Fiedler value, referred to as a "Fiedler vector," to create labels for the AP groups.
[0084] The computation engine 366 can apply a clustering algorithm to the eigenvectors calculated from the Laplacian matrix to assign the data into clusters. For example, a row in the eigenvector matrix calculated from the Laplacian matrix can represent, for example, the connectivity properties of a particular AP (e.g., a node of a network graph). The computation engine 366 can apply a clustering algorithm to the eigenvalues to determine a Fiedler value, which is in turn used to determine a corresponding Fiedler vector within the eigenvector, which is used to determine which side of the graph cut the node belongs to, and uniquely assign an identifier indicating the group of APs about the site based on a k-means clustering algorithm. The identifier can include a number (e.g., a floor number, a building number, etc.), a color, a mark, or any other identifier indicating the group of APs about the site. In some examples, each AP group is assigned any indication, such as a numeric value, a color, non-numeric text, or any other type of indication. In some examples, the group information is stored in Figure 3A AP group data 316.
[0085] In some examples, an administrator can use user interface 310 to specify organization and / or site information for grouping APs (e.g., illustrated as organization / site data 370). For example, organization data 372 may include, for example, the name or other identifying information of the organization for which NMS 300 provides wireless network services. Organization data 372 may also include any other organization-specific information. Site data 374 may include information associated with each site of the organization, such as the name or other identifying information of each site, and may also include any other site-specific information. The site data 374 for each site is further associated with each of a plurality of floor / building map data 376, wherein the floor / building map data 376 includes information identifying the number of floors (or buildings) of each site, one or more anchor APs for each floor (or building), or any other identifying information for each floor (or building) of the site.
[0086] As an example, an administrator can use the user interface 310 at installation time (or at some other appropriate time) to specify a predetermined floor number and one or more anchor APs for each of the multiple floors. In this example, the clustering module 364 can determine that a particular floor may include a densely populated area of multiple APs (e.g., two AP subgroups on the particular floor). In this example, the one or more anchor APs are used to determine whether the densely populated area of multiple APs is located on the same floor, and the AP subgroups can be grouped into a single AP group on the same floor.
[0087] In some examples, the NMS 130 / 300 can use the group information to determine the location of the APs of each AP group. For example, as described above, the AP positioning module 344 of the NMS 300 can automatically determine the x, y (and in some examples, z) coordinate location of each AP of each AP group at a site in the global coordinate system of the site, such as described in U.S. Patent Application No. 17 / 811,784, U.S. Patent No. 11,422,224, and U.S. Patent No. 11,696,092, each of which is incorporated herein by reference in its entirety.
[0088] In some examples, the AP grouping module 342 includes a group map generator 380 configured to generate a site map (e.g., a floor map or building map of a site) based on the automatic grouping of one or more deployed APs. Figure 7 As described further below, group map generator 380 can generate a site map that includes a visualization of deployed AP groups within a site. As an example, group map generator 380 can generate a visualization of AP groups on a specified floor of a multi-story building or other structure.
[0089] Figure 4 An example user equipment (UE) apparatus 400 is shown. Figure 4 The example UE device 400 shown in FIG. 4 may be used to implement the Figure 1A Any of the UEs 148 shown and described. UE device 400 may include any type of wireless client device, and the present disclosure is not limited in this respect. For example, UE device 400 may include a mobile device such as a smartphone, a tablet or laptop computer, a personal digital assistant (PDA), a wireless terminal, a smart watch, a smart ring, or any other type of mobile or wearable device. UE 400 may also include any type of IoT client device, such as a printer, a security sensor or device, an environmental sensor, or any other connected device configured to communicate over one or more wireless networks.
[0090] According to one or more techniques of this disclosure, NMS 130 / 300 continuously (e.g., every 2 seconds or other appropriate time period) receives relevant network data from UE 148. Network data 454 may include, for example, RSSI measurements of one or more wireless signals received by UE 400 from one or more AP devices (RSSI measurements are measured by the AP devices), as well as any other network information obtained or measured by the UE.
[0091] UE device 400 includes a wired interface 430, wireless interfaces 420A-420C, one or more processors 406, a memory 412, and a user interface 410. The various components are coupled together via a bus 414, through which the various components can exchange data and information. Wired interface 430 includes a receiver 432 and a transmitter 434. If desired, wired interface 430 can be used to couple UE 400 to network 134 of FIG. 1 . First wireless interface 420A, second wireless interface 420B, and third wireless interface 420C include receivers 422A, 422B, and 422C, respectively, each of which includes a receive antenna, via which UE 400 can receive data from wireless communication devices (such as AP device 142, FIG. 1 ). Figure 2 The first wireless interface 420A, the second wireless interface 420B and the third wireless interface 420C further include a transmitter 424A, a transmitter 424B and a transmitter 424C, respectively. Each transmitter includes a transmitting antenna, and the UE 400 can transmit wireless signals to a wireless communication device (such as a wireless communication device) via the transmitting antenna. Figure 1A AP device 142, Figure 2The first wireless interface 420A may include a Wi-Fi 802.11 interface (e.g., 2.4 GHz and / or 5 GHz), and the second wireless interface 420B may include a Bluetooth interface and / or a Bluetooth low energy interface. The third wireless interface 420C may include, for example, a cellular interface through which the UE device 400 can connect to a cellular network.
[0092] The processor 406 executes software instructions (such as those defining software or a computer program) stored to a computer-readable storage medium (such as memory 412), such as a non-transitory computer-readable medium including storage (e.g., a disk drive or optical drive) or memory (such as flash memory or RAM) or any other type of volatile or non-volatile memory, that stores instructions to cause the one or more processors 406 to perform the techniques described herein.
[0093] Memory 412 includes one or more devices configured to store programming modules and / or data associated with the operation of UE 400. For example, memory 412 may include a computer-readable storage medium (such as a non-transitory computer-readable medium including a storage device (e.g., a magnetic disk drive or optical disk drive) or memory (such as flash memory or RAM), or any other type of volatile or non-volatile memory) that stores instructions to cause one or more processors 406 to perform one or more techniques described herein.
[0094] In this example, memory 412 includes an operating system 440, applications 442, a communication module 444, configuration settings 450, and data storage for network data 454. The data storage for network data 454 may include, for example, a status / error log that includes network data specific to UE 400. As described above, network data 454 may include any network data, events, and / or status that may be relevant to the determination of one or more roaming quality assessments. The network data may include event data, such as logs of normal events and error events recorded according to log levels based on instructions from a network management system (e.g., NMS 150 / 300). Data storage 454 may store any data used and / or generated by UE 400, such as network data used to determine proximity to a proximity zone, which is collected by UE 400 and sent to any AP device 142 in wireless network 106 for further transmission to NMS 150. In one example implementation, the data may include measured RSSI values for signals from various APs and / or measured RTT values for signal propagation between the UE and one or more APs.
[0095] The communication module 444 includes program code that, when executed by the processor 406, enables the UE 400 to communicate using any of the wired interface 430, the wireless interfaces 420A-420B, and / or the cellular interface 450C. The configuration settings 450 include any device settings that the UE 400 sets for each of the wireless interfaces 420A-420C and / or the cellular interface 420C.
[0096] Figure 5 1 is a block diagram illustrating an example network node 500 configured according to the techniques described herein. In one or more examples, the network node 500 implements a device or server attached to the network 134 of FIG. 1 , such as a router, a switch, an AAA server 110 , a DHCP server 116 , a DNS server 122 , a VNA 133 , an AP location module 135 , a Web server 128A-128X, or the like, or a network device such as, for example, a router, a switch, or the like.
[0097] In this example, network node 500 includes a communication interface 502 (e.g., an Ethernet interface), a processor 506, input / output 508 (e.g., a display, buttons, a keyboard, a keypad, a touch screen, a mouse, etc.), a memory 512, and component components 516 (e.g., hardware module components, such as circuit components, etc.), the various elements being coupled together via a bus 509 through which the various elements can exchange data and information. Communication interface 502 couples network node 500 to a network, such as an enterprise network.
[0098] Although only one interface is shown by way of example, those skilled in the art will appreciate that a network node may have multiple communication interfaces. Communication interface 502 includes a receiver 520, via which network node 500 may receive data and information (e.g., including data indicating the distance between APs and / or operation-related information such as registration requests, AAA services, DHCP requests, Simple Notification Service (SNS) lookups, and web page requests). Communication interface 502 includes a transmitter 522, via which network node 500 may transmit data and information (e.g., including location information, configuration information, authentication information, web page data, etc.).
[0099] Memory 512 stores executable software applications 532, operating system 540, and data / information 530. Data 530 includes system logs and / or error logs that store network data and / or proximity information of node 500 and / or other devices (such as wireless access points) based on log levels according to instructions from a network management system. In some examples, network node 500 may forward network data to a network management system (e.g., Figure 1A 、 Figure 1B or Figure 3A In some examples, the network node 500 may perform one or more techniques described herein for automatically grouping one or more APs.
[0100] Figures 6A to 6B is a conceptual diagram illustrating example grouping of one or more deployed APs for learning a wireless network environment according to one or more techniques of this disclosure. Figures 6A to 6B It's about Figure 3A NMS 300 and Figure 3B The NMS AP grouping module 362 in FIG.
[0101] exist Figure 6AIn the example of FIG, the graph module 362 can obtain RTT / RSSI data 370 of a specified AP (e.g., AP 142A of site 102A), and based on the RTT / RSSI data 370, the graph module 362 generates a network graph 600 of multiple APs representing neighbor relationships between the multiple APs. AP nodes 602A-602E (collectively referred to as "AP nodes 602") of the network graph 600 can represent the deployed AP 142A at site 102A, and each connection between the AP nodes 602 in the graph, for example, node connections 604A-604E (collectively referred to as "node connections 604"), can represent an AP that can detect radio signals from other APs. In this example, AP node 602A may represent an AP that detects radio signals of a certain signal strength from two other APs, represented by AP node 602B and AP node 602D, and is represented by node connection 604A connecting AP node 602A and AP node 602B, and node connection 604D connecting AP node 602A and AP node 602D. Similarly, AP node 602B may represent an AP that detects radio signals of a certain signal strength from two other APs, represented by AP node 602A and AP node 602C, and is represented by node connection 604A connecting AP 602B and AP node 602A, and node connection 604B connecting AP node 602B and AP node 602C, and so on.
[0102] Based on the network graph 600, the matrix engine 365 of the clustering module 364 can generate a degree matrix (D) 606, which is a diagonal matrix (in Figure 6A 6. (shown as element 612 in FIG. 1 ). In this example, each of AP node 602A, AP node 602B, and AP node 602C has two edges associated with it. Similarly, AP node 602D has three edges associated with AP node 602D, and AP node 602E has a single edge associated with AP node 602E.
[0103] The matrix engine 365 may also generate an adjacency matrix (A) 608 that specifies information about the adjacency of the AP nodes 602 in the network graph 600. In this example, each row and column may represent the adjacency of a particular AP node and include values indicating the adjacency of the particular AP node with another AP node. For example, in the adjacency matrix 608, row 614 may include values indicating the adjacency of AP node 602A with other AP nodes. The row immediately below row 614 may include values indicating the adjacency of AP node 602B with other AP nodes, and so on. Similarly, the leftmost column in the adjacency matrix 614 may include values indicating the adjacency of AP node 602A with other AP nodes, the column immediately to the right of the leftmost column may include values indicating the adjacency of AP node 602B with other AP nodes, and so on. In this example, AP node 602A is adjacent to AP node 602B and AP node 602D, respectively, and is represented by a value of 1 in each of the columns corresponding to AP node 602B and AP node 602D (e.g., as shown in FIG. Figure 6A 602C, and between AP node 602A and AP node 602E. Similarly, AP node 602B is adjacent to AP node 602A and AP node 602C, respectively, and is represented by a value of 1 in each of the columns corresponding to AP node 602A and AP node 602C, as shown in the row immediately below row 614, and so on. In this example, the adjacency matrix 608 includes values of 1 and 0 to indicate the detected connectivity of the AP nodes, but in other examples, other values may be included, such as weighted values indicating signal strength, signal direction, or other additional information about the signals. For example, the adjacency matrix 608 may alternatively include a value (or normalized value) indicating the signal strength of the detected signal (e.g., an RSSI value of a radio signal). In these examples, the use of weighted values in the adjacency matrix may indicate the amount of adjacency of the AP nodes. As an example, an RSSI value indicating a stronger signal strength in the adjacency matrix may indicate an adjacent AP node that is closer in adjacency (e.g., a strong neighbor), while an RSSI value indicating a weaker signal strength in the adjacency matrix may indicate an AP node that is farther in adjacency (e.g., an AP node that is not a neighbor and / or an AP node located on a different floor).
[0104] The matrix engine 365 can generate a Laplacian matrix 610 representing the network graph 600 by calculating the difference between the degree matrix 606 and the adjacency matrix 608. Figure 6B As further described in , the clustering module 364 can automatically group one or more deployed APs based on the Laplacian matrix 610 representing the network graph 600.
[0105] exist Figure 6B In the example of Figure 6A The Laplacian matrix 610 of the network is used to calculate eigenvalues (represented by eigenvalue matrix 620) and eigenvectors (represented by eigenvector matrix 622). In this example, eigenvector matrix 622 includes multiple rows, where each row represents, for example, connectivity properties of a particular AP (e.g., a node of the network graph). For example, row 624 in eigenvector matrix 622 may represent connectivity properties of AP node 602A, row 626 in eigenvector matrix 622 may represent connectivity properties of AP node 602B, and so on. The number of eigenvectors calculated may be based on, for example, the number of desired clusters representing the number of floors in a multi-story structure (or the number of buildings or areas in a multi-building site). In this example, eigenvector matrix 622 includes five calculated eigenvectors for AP nodes 602A-602E (represented by each column of eigenvector matrix 622), which may represent five floors in the multi-story structure. The computation engine 366 of the clustering module 364 may apply a clustering algorithm, such as a k-means clustering algorithm or any other spectral clustering algorithm, to the eigenvalues and eigenvectors to group one or more deployed APs. Figure 6B The example eigenvector matrix 622 shown in FIG. 6 is merely an example and may include any number of eigenvectors based on the number of desired clusters (eg, number of floors, number of buildings or areas, etc.).
[0106] In this example, the computing engine 366 may apply a clustering algorithm to the eigenvalues calculated from the Laplacian matrix 610 to determine how the AP nodes 602 in the network graph 600 are connected to each other. In this example, the computing engine 366 may apply a clustering algorithm to the eigenvalue matrix 620 and determine that the eigenvalue matrix 620 includes an eigenvalue of a single zero (0), which represents a connected component between two densely populated areas of the AP nodes 602, e.g., a connection between the AP group 630 and the AP group 632. The computing engine 366 may apply a clustering algorithm to the eigenvalue matrix 620 and determine that the first non-zero eigenvalue (e.g., spectral gap) of 0.8299 indicates that the two AP groups are nearly separated. The computing engine 366 may apply a clustering algorithm to the eigenvalue matrix 620 and determine that the second smallest eigenvalue (e.g., Fiedler value) of 2.0000 represents the minimum graph cut required to separate the graph into two connected components. In this example, the computation engine 366 of the clustering module 364 may determine that there are two AP groups, AP group 630 and AP group 632, based on the feature values.
[0107] The computation engine 366 can also determine a vector (e.g., a Fiedler vector) corresponding to the Fiedler value and use the Fiedler vector to create a label for the AP group. For example, the computation engine 366 can determine that the eigenvector (e.g., eigenvector 634) of the second column of the eigenvector matrix 622 corresponds to the Fiedler value and use eigenvector 634 to determine which side of the graph cut the node belongs to. In this example, AP node 602A, AP node 602B, and AP node 602C belong to AP group 630 because the eigenvectors for these AP nodes have negative values. Similarly, AP node 602D and AP node 602E belong to AP group 632 because the eigenvectors for these AP nodes have positive values.
[0108] As an example, an administrator may specify a value for "k" via user interface 310, which may represent the number of floors in a multi-story structure of a site or the number of buildings in a multi-building site. In this example, the administrator may specify a value of 2, which represents two floors in the multi-story structure of site 102A. Calculation engine 366 may uniquely assign group information (e.g., a floor number or a building number) to each of the AP groups based on a k-means clustering algorithm. In this example, calculation engine 366 may assign a first group to AP group 630 (e.g., floor number 1 associated with AP nodes 602A-602C) and a second group to AP group 632 (e.g., floor number 2 associated with AP nodes 602D-602E).
[0109] Figure 7is a conceptual diagram illustrating an example group map based on automatic grouping of one or more deployed APs according to one or more techniques of the present disclosure. Group map 700 is an example visualization of a floor map in a multi-floor structure. Group map 700 may be Figure 6B The group map generator in 380 is based on Figure 6A and Figure 6B The automatic grouping of AP nodes 602 is generated.
[0110] In this example, group map 700 includes two AP groups, for example, AP group 702 and AP group 704. AP group 702 includes AP node 706A, AP node 706B, and AP node 706C, and similarly, AP group 704 includes AP node 706D and AP node 706E. AP nodes 706A-706C may represent APs that are grouped into Figure 6B AP nodes 602A-602C and AP nodes 706D-706E within AP group 630 may represent AP nodes grouped into Figure 6B AP nodes 602D-602E within AP group 632.
[0111] In some examples, group map 700 includes a visualization of identifiers uniquely assigned to AP nodes of AP groups 702 and 704. For example, AP nodes 702D-702E can be configured with a first color indicating that AP nodes 702D-702E are located on a first floor of a multi-floor structure, and AP nodes 702A-702C can be configured with a second color indicating that AP nodes 702A-702C are located on a second floor of the multi-floor structure. In some examples, the AP nodes of each AP group are configured to display a number or any other indicia indicating that the AP group is located on a particular floor of the multi-floor structure.
[0112] Figures 8A to 8B Other examples of automatically grouping one or more deployed APs in a wireless network according to the techniques described in this disclosure are shown. Figures 8A to 8B It's about Figure 3A NMS 300 and Figure 3B As described herein, the clustering module 364 may determine the number of connected components (eg, a group of connected APs) before clustering the APs. Figure 8AIn the example shown, clustering module 364 can determine (e.g., by applying a breadth-first search (BFS) algorithm or other algorithm to the network graph of APs) that there are three connected components 802A-802C (collectively, "connected components 802"). Connected component 802A includes a first group of connected AP nodes, connected component 802B includes a second group of connected AP nodes, and connected component 802C includes a third group of connected AP nodes.
[0113] In this example, connected components 802 (e.g., connected component 802B) may include APs on different floors because one or more APs on a particular floor detect radio signals from one or more APs on a different floor (referred to as "penetration signals"). This may cause the number of AP clusters determined by clustering module 364 to not match the expected number of clusters (e.g., the number of AP groups is less than the number of floors). In these examples, clustering module 364 may compare the number of connected components to a value k in a k-means clustering algorithm (e.g., the number of floors in a multi-floor site or the number of buildings in a multi-building site). If clustering module 364 determines that the number of connected components is less than the value k (which may indicate that at least one connected component 802 includes APs on different floors), clustering module 364 may determine whether each connected component 802 is an isolated region of an AP node. To determine whether a connected component is an isolated region of an AP node, clustering module 364 may determine whether the connected component includes an anchor AP node. If the connected component does not have an anchor AP node, the clustering module 364 may determine that the connected component is an isolated region of AP nodes (because each cluster, such as a floor, includes at least one anchor AP node, and an AP group that does not include an anchor AP node is therefore an isolated region of AP nodes). In this example, the clustering module 364 may determine that the connected component 802B is an isolated region of AP nodes.
[0114] In response to determining that the connected component 802B is an isolated region of AP nodes, the clustering module 364 can compare the number of AP nodes in the isolated region to a threshold value (T) that specifies, for example, the assumed (i.e., expected) number of AP nodes for a given cluster (e.g., floor / building). As an example, the clustering module 364 can calculate the threshold value T based on the total number of AP nodes (e.g., the total number of APs across all floors) divided by a value k (which is based on the assumption that the AP nodes are evenly distributed across the floors). For example, if the total number of AP nodes is fifty (50) and the number of floors is five (5), the clustering module 364 can calculate the threshold value T to be ten (10), which can indicate that the expected number of AP nodes per floor is ten. If the number of AP nodes in the isolated region is greater than the threshold value M, the clustering module 364 can determine that the isolated cluster may include AP nodes from different floors. In this example, if the clustering module 364 determines that the number of AP nodes in the isolated area is greater than the threshold, the clustering module 364 can apply a spectral clustering algorithm to the isolated area to perform a graph cut to separate the isolated area of the AP node into separate groups. The number of cuts (N) for the isolated area can be calculated based on the number of AP nodes in the isolated area divided by the threshold T (rounded up if the calculated number of cuts for the isolated area is a decimal). For example, assume that the connected component 802B includes twenty (20) AP nodes and the threshold T specified for the expected number of AP nodes on each floor is ten (10). In this example, the clustering module 364 can perform two (2) graph cuts on the isolated area of the AP nodes (e.g., twenty AP nodes in the connected component 802B divided by the expected ten AP nodes on each floor). In response to performing the graph cuts on the isolated area of the AP nodes, the clustering module 364 can assign (or prompt the client to assign) an anchor AP node for each cut so that these cuts are no longer considered isolated areas of the AP nodes (so that each floor can have an assigned anchor AP node). Then, the clustering module 364 can be used to Figures 6A to 6B The clustering algorithm described in
[15] is used to generate a new adjacency matrix (wherein the isolated areas of the AP nodes are removed) using the connected components to again form clusters of one or more AP nodes of the wireless network (based on a value k that can represent the number of floors in a multi-floor structure of the site or the number of buildings in a multi-building site).
[0115] exist Figure 8B In the example shown, clustering module 364 may determine (e.g., by applying a BFS algorithm or other algorithm to the network graph of APs) that there are four connected components 804A-804D (collectively, "connected components 804"). Figure 8BIn the example shown, connected component 804A includes a first group of connected AP nodes, connected component 804B includes a second group of connected AP nodes, connected component 804C includes a third group of connected AP nodes, and connected component 804D includes a fourth group of connected AP nodes. In this example, clustering module 364 can determine that the number of connected components is greater than a value k for a k-means clustering algorithm (e.g., greater than the number of floors in a multi-floor site or the number of buildings in a multi-building site). Figure 8B In the example of FIG, clustering module 364 can determine that the number of connected components is greater than a value k (a specific number of floors (two floors) in this example), which can indicate that at least one connected component in connected components 804 includes APs on different floors. Based on determining that the number of connected components is greater than the value k, clustering module 364 can determine whether each connected component in connected components 804 is an isolated area of an AP node. Similar to the above description Figure 8A In the example shown in FIG, clustering module 364 can determine whether a connected component is an isolated region of an AP node based on whether the connected component includes an anchor AP node. In this example, clustering module 364 can determine that connected components 804C and 804D are isolated regions of an AP node. In response to determining that connected components 804C and 804D are isolated regions of an AP node, clustering module 364 can compare the number of AP nodes in a given isolated region with a threshold value T' for each of the isolated regions of the AP nodes, which threshold value specifies, for example, the total number of APs (at a site) divided by the total number of connected components. If the total number of APs in a given isolated region (e.g., connected component 804C) is greater than the threshold value T', clustering module 364 can apply a spectral clustering algorithm to the isolated region to perform graph cuts (based on a calculated number of cuts N, e.g., based on the number of AP nodes in the isolated region divided by the threshold value T') to separate the isolated regions of the AP nodes into separate groups. Clustering module 364 can also assign (or prompt the client to assign) an anchor AP node to each cut so that the cuts are no longer considered isolated regions of the AP nodes.
[0116] Then, the clustering module 364 can generate a new adjacency matrix using the connected components (where the isolation regions of the AP nodes are removed) to form clusters of the one or more APs of the wireless network again based on a new value k', which specifies the number of cuts of the one or more APs of the wireless network. As an example, the clustering module 364 can calculate the value k' based on the value k, which can specify the number of remaining clusters (e.g., the remaining clusters after the isolation regions of the AP nodes are removed) plus a value (X i ), which is a value for each connected component based on the number of AP nodes in a given connected component (M i) divided by the threshold T' (the total number of APs (of the site) divided by the total number of connected components). Therefore, the value k' can be expressed as k'=k+X i +X i+ 1...X i+n , where k is the remaining clusters, X i+n is a value calculated based on the number of AP nodes in a given connected component M divided by a threshold value T' (rounded to an integer if the calculated number of cuts for the isolation region is a fraction), and k' represents the number of cuts for the isolation region of the AP node. For example, assume that connected component 804A includes twenty-five (25) AP nodes, connected component 804B includes thirty (30) AP nodes, connected component 804C includes sixty-two (62) AP nodes, connected component 804D includes forty-three (43) AP nodes, and the threshold value T' specifies that the total number of APs (of the site) divided by the total number of connected components is twenty (20). In this example, the clustering module 364 can calculate a value of k' of nine (9) based on the value k (for the remaining clusters) plus one (e.g., the number of AP nodes in the connected component 804A divided by the threshold T' and rounded to an integer), plus one (e.g., the number of AP nodes in the connected component 804B divided by the threshold T' and rounded to an integer), plus three (e.g., the number of AP nodes in the connected component 804C divided by the threshold T' and rounded to an integer), plus two (e.g., the number of AP nodes in the connected component 804D divided by the threshold T' and rounded to an integer). The clustering module 364 can then apply a spectral clustering algorithm using k' to again form clusters of one or more AP nodes of the wireless network.
[0117] Figure 9 is a flow chart of an example process 900 by which a computing device automatically groups one or more deployed APs for learning a wireless network environment, according to one or more techniques of this disclosure. In some examples, the computing device includes one or more processors and / or AP grouping module 342 of the network management system 300, such as Figure 3A The processor 306 of the NMS 300 is shown.
[0118] exist Figure 9In the example of , the computing device obtains network data indicating a communication relationship between a plurality of APs (902). For example, the NMS 300 obtains network data such as RTT and / or RSSI data from the AP 142. Based on the network data, the computing device generates a network graph indicating an adjacency relationship between the plurality of APs (904). The computing device groups the plurality of APs into a plurality of clusters based on the network graph (906). For example, the NMS 300 generates a matrix representation (e.g., a Laplace matrix) of the network graph. The NMS 300 calculates eigenvalues and eigenvectors based on the matrix representation of the network graph, and applies a spectral clustering algorithm (e.g., a k-means clustering algorithm) to the eigenvalues and eigenvectors. Each of the result clusters output by the k-means clustering algorithm can represent, for example, a densely distributed area of APs that have strong connections to each other, and thus can represent a group of APs on a specific floor (specific building).
[0119] In some examples, the NMS 300 may determine whether the number of connected components does not match a predetermined number of clusters k (e.g., a predetermined number of floors). If the NMS 300 determines that the number of connected components is less than the value k, the NMS 300 may determine whether each connected component includes an anchor AP node, indicating an isolated AP region. If the connected component does not include an anchor node, the NMS 300 may compare the number of AP nodes in the connected component determined to be isolated regions with a threshold, such as a threshold calculated based on the total number of AP nodes at the site divided by the value k (which is based on the assumption that the number of AP nodes is evenly distributed across floors). If the NMS 300 determines that the number of AP nodes in the isolated region is greater than the threshold, the NMS 300 may apply a spectral clustering algorithm to the isolated region and perform a graph cut to separate the isolated region of AP nodes into one or more separate AP groups, mark each of the one or more separate AP groups with an anchor AP node (so that the cut is no longer considered an isolated region of AP nodes), and generate a new adjacency matrix in which the isolated region of AP nodes is removed from the adjacency matrix. The NMS 300 may apply a spectral clustering algorithm with the new adjacency matrix to again form clusters of one or more APs of the wireless network.
[0120] In some examples, if the NMS 300 determines that the number of connected components is greater than a value k, the NMS 300 may determine whether each connected component includes an anchor AP node, indicating an isolated AP region. If the connected component does not include an anchor node, the NMS 300 may compare the number of AP nodes in the connected component identified as isolated regions to a threshold, such as a threshold calculated based on the total number of AP nodes at the site divided by the total number of connected components. If the NMS 300 determines that the number of AP nodes in a given isolated region is greater than the threshold, the NMS 300 may apply a spectral clustering algorithm to the isolated region and perform a graph cut to separate the isolated region of AP nodes into one or more separate AP groups, and assign an anchor AP node to each of the one or more separate AP groups so that the cut is no longer considered an isolated region. The NMS 300 may then generate a new adjacency matrix using the connected components (with the isolated region of AP nodes removed) to re-form clusters of one or more APs of the wireless network. For example, the NMS 300 may calculate a new value k' that specifies the number of cuts to be performed on the one or more AP nodes of the wireless network. As an example, the NMS 300 may calculate a value k' based on a value k, which may specify the number of remaining clusters (eg, the remaining clusters after the isolation area of the AP node is removed) plus a value (X i ), which is a value for each connected component based on the number of AP nodes in a given connected component (M i ) divided by a threshold value T' (the total number of APs (of the site) divided by the total number of connected components). The NMS 300 may then apply a spectral clustering algorithm using k' to again form clusters of one or more AP nodes of the wireless network. The NMS 300 uniquely assigns one of a plurality of identifiers to each of the plurality of clusters indicating the cluster of the plurality of clusters with respect to the site (908). The output of the k-means clustering algorithm may uniquely assign an identifier indicating an AP group with respect to the site (e.g., a specific floor number from a plurality of floor numbers). In some examples, the computing device may use the group information to determine the location of the APs of each AP group. For example, as described above, the AP positioning module 344 of the NMS 300 may automatically determine the x, y (and in some examples, z) coordinate location of each AP of each AP group at the site in the global coordinate system of the site.
[0121] The techniques described herein can be implemented using software, hardware, and / or a combination of software and hardware. Various examples relate to devices, such as mobile nodes, mobile wireless terminals, base stations (e.g., access points), and communication systems. Various examples also relate to methods, such as methods of controlling and / or operating communication devices (e.g., wireless terminals (UEs), base stations, control nodes, access points, and / or communication systems). Various examples also relate to non-transitory machines, such as computers, readable media, such as ROM, RAM, CDs, hard disks, etc., which include machine-readable instructions for controlling the machine to implement one or more steps of the method.
[0122] It should be understood that the specific order or hierarchy of steps in the disclosed processes is an example of example methods. Based on design preferences, it should be understood that the specific order or hierarchy of steps in these processes can be rearranged while remaining within the scope of the present disclosure. The accompanying method claims present elements of the various steps in an example order and are not meant to be limited to the specific order or hierarchy presented.
[0123] In various examples, the devices and nodes described herein are implemented using one or more modules to perform steps corresponding to one or more methods, such as signal generation, transmission, processing, and / or reception steps. Thus, in some examples, various features are implemented using modules. Such modules can be implemented using software, hardware, or a combination of software and hardware. In some examples, each module is implemented as a separate circuit, wherein the device or system includes separate circuits for implementing the functionality corresponding to each described module. Many of the methods or method steps described above can be implemented using machine-executable instructions (such as software) included in a machine-readable medium such as a memory device (e.g., RAM, floppy disk, etc.) to control a machine (e.g., a general-purpose computer with or without additional hardware) in one or more nodes to implement all or part of the methods described above. Thus, among other things, various examples relate to machine-readable media (e.g., non-transitory computer-readable media) that include machine-executable instructions for causing a machine (e.g., a processor and associated hardware) to perform one or more of the steps of the methods described above. Some examples involve an apparatus including a processor configured to implement one, more than one, or all of the steps of one or more methods of an example aspect.
[0124] In some examples, one or more processors (e.g., CPUs) of one or more devices (e.g., communication devices such as wireless terminals (UEs) and / or access nodes) are configured to perform the steps of the methods described as being performed by the devices. The configuration of the processor can be achieved by using one or more modules (e.g., software modules) to control the processor configuration, and / or by including hardware (e.g., hardware modules) in the processor to perform the described steps and / or control the processor configuration. Accordingly, some but not all examples relate to a communication device (e.g., user equipment) having a processor, the processor including a module corresponding to each of the steps of the various described methods performed by the device in which the processor is included. In some but not all examples, the communication device includes a module corresponding to each of the steps of the various described methods performed by the device in which the processor is included. These modules can be implemented purely in hardware (e.g., as circuits), or can be implemented using software and / or hardware or a combination of software and hardware.
[0125] Some examples relate to computer program products comprising a computer-readable medium that includes code for causing a computer or computers to perform various functions, steps, actions, and / or operations (e.g., one or more of the steps described above). In some examples, a computer program product can, and sometimes does, include different code for each step to be performed. Thus, a computer program product can, and sometimes does, include code for each individual step of a method (e.g., a method of operating a communication device (e.g., a wireless terminal or node)). The code can be in the form of machine-executable instructions (e.g., computer-readable instructions stored on a computer-readable medium such as RAM (random access memory), ROM (read-only memory), or other types of storage devices). In addition to computer program products, some examples relate to processors configured to perform one or more of the various functions, steps, actions, and / or operations of one or more of the methods described above. Accordingly, some examples relate to processors (e.g., CPUs, graphics processing units (GPUs), digital signal processing (DSPs), etc.) configured to perform some or all of the steps of the methods described herein. The processors can be used, for example, in the communication devices or other devices described herein.
[0126] In view of the above description, numerous additional variations of the methods and devices of the various examples described above will be apparent to those skilled in the art. Such variations are considered to be within the scope of the present disclosure. These methods and devices can be used together with, and in various examples together with, BLE, LTE, CDMA, orthogonal frequency division multiplexing (OFDM), and / or various other types of communication technologies that can be used to provide a wireless communication link between an access node and a mobile node. In some examples, the access node is implemented as a base station, and the base station uses OFDM and / or CDMA to establish a communication link with a user equipment device (e.g., a mobile node). In various examples, the mobile node is implemented as a notebook computer, a personal data assistant (PDA), or other portable devices including receiver / transmitter circuits and logic and / or routines for implementing the method.
[0127] In the detailed description, numerous specific details are set forth to provide a thorough understanding of some examples. However, one skilled in the art will appreciate that some examples can be practiced without these specific details. In other instances, well-known methods, procedures, components, units, and / or circuits are not described in detail to avoid obscuring the discussion.
[0128] Some examples may be used in conjunction with various devices and systems, such as user equipment (UE), mobile device (MD), wireless station (STA), wireless terminal (WT), personal computer (PC), desktop computer, mobile computer, laptop computer, notebook computer, tablet computer, server computer, handheld computer, handheld device, personal digital assistant (PDA) device, handheld PDA device, onboard device, off-board device, hybrid device, vehicle device, non-vehicle device, mobile or portable device, consumer device, non-mobile or non-portable device, wireless communication station, wireless communication device, wireless access point (AP), wired or wireless router, wired or wireless modem, video device, audio device, audio-video (A / V) device, wired or wireless network, wireless local area network, wireless video local area network (WVAN), local area network (LAN), wireless LAN (WLAN), personal area network (PAN), wireless PAN (WPAN), etc.
[0129] Some examples may be used in conjunction with the following devices and / or networks: devices and / or networks operating in accordance with the existing Wireless Gigabit Alliance (WGA) specification (Wireless Gigabit Alliance, Inc., WiGig MAC and PHY Specification Version 1.1, April 2011, Final Specification) and / or future versions and / or derivatives thereof; devices and / or networks operating in accordance with the existing IEEE 802.11 standard (IEEE 802.11-2012, IEEE Standard for Information Technology - Telecommunications and Information Exchange between Local and Metropolitan Area Networks - Specific Requirements Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specification, March 29, 2012; IEEE 802.11ac-2013 ("IEEE Standard for Information Technology - Telecommunications and Information Exchange between Local and Metropolitan Area Networks - Specific Requirements Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specification, March 29, 2012); ... P802.11ac-2013, IEEE Standard for Information Technology - Telecommunications and Information Exchange between Systems - Local and Metropolitan Area Networks - Specific Requirements - Part 11: Wireless LAN Media Access Control (MAC) and Physical Layer (PHY) Specifications - Amendment 4: Very High Throughput Enhancements for Operation in the Sub-6 GHz Band, December 2013); IEEE 802.11ad ("IEEE P802.11ad-2012, IEEE Standard for Information Technology - Telecommunications and Information Exchange between Systems - Local and Metropolitan Area Networks - Specific Requirements - Part 11: Wireless LAN Media Access Control (MAC) and Physical Layer (PHY) Specifications - Amendment 3: Very High Throughput Enhancements for Operation in the Sub-6 GHz Band," December 28, 2012); IEEE-802.11REVmc ("IEEE Standard for Information Technology - Telecommunications and Information Exchange between Systems - Local and Metropolitan Area Networks - Specific Requirements - Part 11: Wireless LAN Media Access Control (MAC) and Physical Layer (PHY) Specifications - Amendment 3: Very High Throughput Enhancements for Operation in the Sub-6 GHz Band," December 28, 2012); 802.11-REVmc™ / D3.0, June 2014, Draft Standard for Information Technology - Specific Requirements for Telecommunications and Information Exchange between Local and Metropolitan Area Networks; Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications); IEEE 802.11-ay (P802.11ay Information Technology Standard - Telecommunications and Information Exchange between Local and Metropolitan Area Networks - Specific Requirements Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications - Amendment: Enhanced Throughput for Operation in Unlicensed Bands Above 45 GHz), devices and / or networks operating in accordance with IEEE 802.11-2016 (i.e., IEEE 802.11mc) and / or its future versions and / or derivatives; and devices and / or networks operating in accordance with existing Wireless Fidelity (Wi-Fi) Alliance (WFA) Peer-to-Peer (P2P) specifications (Wi-Fi P2P Technical Specification, 1.5, August 2014) and / or future versions and / or their derivatives; devices and / or networks operating according to existing cellular specifications and / or protocols (e.g., 3rd Generation Partnership Project (3GPP), 3GPP Long Term Evolution (LTE)) and / or future versions and / or their derivatives; units and / or devices operating as part of the above networks or using any one or more of the above protocols, etc.
[0130] Some examples may be used with one-way and / or two-way wireless communication systems, cellular wireless telephone communication systems, mobile phones, cellular phones, cordless phones, personal communication systems (PCS) devices, PDA devices including wireless communication devices, mobile or portable global positioning system (GPS) devices, devices including GPS receivers or transceivers or chips, devices including RFID elements or chips, multiple-input multiple-output (MIMO) transceivers or devices, single-input multiple-output (SIMO) transceivers or devices, multiple-input single-output (MISO) transceivers or devices, devices with one or more internal antennas and / or external antennas, digital video broadcasting (DVB) devices or systems, multi-standard wireless devices or systems, wired or wireless handheld devices (e.g., smartphones), wireless application protocol (WAP) devices, etc.
[0131] Some examples may be used in conjunction with one or more types of wireless communication signals and / or systems, such as radio frequency (RF), infrared (IR), frequency division multiplexing (FDM), orthogonal FDM (OFDM), orthogonal frequency division multiple access (OFDMA), FDM time division multiplexing (TDM), time division multiple access (TDMA), multi-user MIMO (MU-MIMO), spatial division multiple access (SDMA), extended TDMA (E-TDMA), general packet radio service (GPRS), extended GPRS, code division multiple access (CDMA), wideband CDMA (WCDMA), CDMA 2000, single carrier CDMA, multi-carrier CDMA, multi-carrier modulation (MDM), discrete multi-tone (DMT), Bluetooth, global positioning system (GPS), Wi-Fi, Wi-Max, ZigBee TM , Ultra Wideband (UWB), Global System for Mobile Communications (GSM), 2G, 2.5G, 3G, 3.5G, 4G, fifth generation (5G) or sixth generation (6G) mobile networks, 3GPP, Long Term Evolution (LTE), LTE-Advanced, Enhanced Data Rates for GSM Evolution (EDGE), etc. Other examples may be used in various other devices, systems and / or networks.
[0132] Some illustrative examples may be used in conjunction with a WLAN (wireless local area network), such as a Wi-Fi network. Other examples may be used in conjunction with any other suitable wireless communication network, such as a wireless local area network, a "piconet," a WPAN, a WVAN, and the like.
[0133] Some examples may be used in conjunction with wireless communication networks communicating in the 2.4 GHz, 5 GHz, and / or 60 GHz frequency bands. However, other examples may be implemented using any other suitable wireless communication frequency bands, such as extremely high frequency (EHF) frequency bands (millimeter wave (mmWave) frequency bands) (e.g., frequency bands within the frequency band between 20 GHz and 300 GHz), WLAN frequency bands, WPAN frequency bands, frequency bands according to the WGA specification, etc.
[0134] While only some simple examples of various device configurations have been provided above, it will be appreciated that numerous variations and permutations are possible. Furthermore, the technology is not limited to any particular channel, but is generally applicable to any frequency range / channel. Furthermore, and as discussed, the technology can be useful in unlicensed spectrum.
[0135] Although examples are not limited in this respect, discussions utilizing terms such as "process," "calculate," "compute," "determine," "establish," "analyze," "examine," etc. may refer to operations and / or processes of a computer, computing platform, computing system, communication system or subsystem, or other electronic computing device that manipulate and / or transform data represented as physical (e.g., electronic) quantities within the registers and / or memory of a computer into other data similarly represented as physical quantities within the registers and / or memory of a computer or other information storage media that can store instructions to perform the operations and / or processes.
[0136] Although examples are not limited in this regard, as used herein, the terms "plurality" and "multiple" may include, for example, "multiple" or "more than two." The terms "plurality" or "multiple" may be used throughout the specification to describe two or more components, devices, elements, units, parameters, circuits, etc. For example, "a plurality of stations" may include more than two stations.
[0137] It may be helpful to set forth definitions of certain words and phrases used in this document: the terms "include" and "comprising" and their derivatives mean inclusion without limitation; the term "or" is inclusive, meaning and / or; the phrases "associated with" and "associated with" and their derivatives may mean including, being included, interconnected, being interconnected, containing, being contained within, being connected to or connected with, being coupled to or coupled with, being communicable, cooperating, interleaved, juxtaposed, being proximate, being bound to or bound with, having, having a characteristic, and the like; the term "controller" means any device, system, or portion thereof that controls at least one operation, such device being implemented in hardware, circuitry, firmware, or software, or some combination of at least two. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. Definitions of certain words and phrases are provided in this document, and one of ordinary skill in the art will understand that in many, if not most, cases, such definitions apply to prior and future uses of such defined words and phrases.
[0138] Examples have been described with respect to communication systems and protocols, techniques, means, and methods for performing communications, such as in wireless networks, or generally in any communication network operating using any communication protocol. Such examples are home or access networks, wireless home networks, wireless corporate networks, etc. However, it should be understood that, in general, the systems, methods, and techniques disclosed herein will be equally applicable to other types of communication environments, networks, and / or protocols.
[0139] For explanation purposes, many details have been set forth to provide a thorough understanding of the present technology. However, it should be understood that, in addition to the specific details set forth herein, the present disclosure can be implemented in a variety of ways. In addition, although the examples shown herein show the various components of the juxtaposed system, it should be understood that the various components of the system can be located in the remote portion of a distributed network, such as a communication network, a node, in a domain host and / or the Internet, or in a dedicated security, unsafe and / or encryption system, and / or in a network operation or management device located inside or outside the network. As an example, a domain host can also be used to refer to any one or more aspects of the network or communication environment and / or transceivers and / or stations and / or access points described herein or any device, system or module that communicates therewith.
[0140] Thus, it should be understood that the components of the system can be combined into one or more devices, or split between devices, such as a transceiver, access point, station, domain host, network operation or management device, node, or collocated on a specific node of a distributed network (such as a communication network). As will be understood from the description below, and for reasons of computational efficiency, the components of the system can be arranged at any location within a distributed network without affecting its operation. For example, various components can be located in a domain host, a node, a domain management device such as a MIB, a network operation or management device, a transceiver, a station, an access point, or some combination thereof. Similarly, one or more functional portions of the system can be distributed between a transceiver and an associated computing device / system.
[0141] In addition, it should be understood that the various links (including any communication channels / elements / circuits connecting elements) can be wired or wireless links or any combination thereof or any other known or later developed elements that can provide data to the connected elements and / or transmit data from the connected elements. As used herein, the term module can refer to any known or later developed hardware, circuitry, software, firmware, or a combination thereof that can perform the function associated with the element. As used herein, the terms "determine," "account," and "calculate," and variations thereof, can be used interchangeably and include any type of method, process, technology, mathematical operation, or protocol.
[0142] Furthermore, while some examples described herein relate to a transmitter portion of a transceiver performing particular functions or a receiver portion of a transceiver performing particular functions, the present disclosure is intended to include corresponding and complementary transmitter-side or receiver-side functions, respectively, in the same transceiver and / or another transceiver, and vice versa.
[0143] Examples are described with respect to enhanced communications. However, it should be understood that, in general, the systems and methods herein will be equally applicable to any type of communication system in any environment utilizing any one or more protocols, including wired communications, wireless communications, power line communications, coaxial cable communications, fiber optic communications, etc.
[0144] About IEEE 802.11 and / or and / or The low power transceiver and associated communication hardware, software, and communication channels describe example systems and methods. However, to avoid unnecessarily obscuring the present disclosure, the following description omits well-known structures and devices that may be shown in block diagram form or otherwise summarized.
[0145] Although the above flow chart has been discussed with respect to specific events in sequence, it should be understood that the order can be changed without materially affecting the operation of the examples. In addition, the example techniques shown herein are not limited to the specific examples shown, but can also be used with other examples, and each described feature is individually and separately claimed.
[0146] The system described above may be implemented on a wireless telecommunication device / system such as an IEEE 802.11 transceiver, etc. Examples of wireless protocols that may be used with the technology include IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, IEEE 802.11ac, IEEE 802.11ad, IEEE 802.11af, IEEE 802.11ah, IEEE 802.11ai, IEEE 802.11aj, IEEE 802.11aq, IEEE 802.11ax, IEEE 802.11mc, Wi-Fi, LTE, 4G, WirelessHD, WiGig, WiGi, 3GPP, Wireless LAN, WiMAX, DensiFi SIG, UnifiSIG, 3GPP LAA (License Assisted Access), etc.
[0147] Additionally, the systems, methods, and protocols may be implemented to improve one or more of: a special purpose computer, a programmed microprocessor or microcontroller and peripheral integrated circuit components, an ASIC or other integrated circuit, a digital signal processor, a hard-wired electronic or logic circuit (such as a discrete component circuit), a programmable logic device (such as a PLD, PLA, FPGA, PAL), a modem, a transmitter / receiver, any similar means, etc. In general, any device capable of implementing a state machine can benefit from the various communication methods, protocols, and techniques according to the disclosure provided herein, which in turn can implement the methods shown herein.
[0148] Examples of processors described herein may include, but are not limited to, processors with 4G LTE integration and 64-bit computing. 800 and 801, 610 and 615, with 64-bit architecture A7 processor, M7 motion coprocessor, series, Core TM series processors, series processors, Atom TM series processors, Intel series processors, i5-4670K and i7-4770K 22nm Haswell, i5-3570K 22nm Ivy Bridge, FX TM series processors, FX-4300, FX-6300 and FX-8350 32nm Vishera, Kaveri processor, Texas Jacinto C6000 TM Automotive infotainment processors, Texas OMAP TM Automotive-grade mobile processors, Cortex TM -M processor, Cortex-A and ARM926EJ-S TM processor, At least one of the AirForce BCM4704 / BCM4703 wireless network processor, AR7100 wireless network processing unit, or other industrial equivalent processors may perform computing functions using any known or future developed standard, instruction set, library, and / or architecture.
[0149] In addition, the disclosed methods can be easily implemented in software using an object or object-oriented software development environment that provides portable source code that can be used on various computer or workstation platforms. Alternatively, the disclosed system can be implemented in part or in whole in hardware using standard logic circuits or VLSI designs. Whether software or hardware is used to implement the system according to the example depends on the speed and / or efficiency requirements of the system, the specific functions, and the specific software or hardware system or microprocessor or microcomputer system used. The communication systems, methods, and protocols shown herein can be easily implemented in hardware and / or software by a person of ordinary skill in the applicable field based on the functional description provided herein and utilizing the general basic knowledge of the computer and telecommunications fields using any known or later developed system or structure, device, and / or software.
[0150] Furthermore, the disclosed technology can be readily implemented in software and / or firmware that can be stored in a storage medium to enhance the performance of a programmed general-purpose computer in conjunction with a controller and memory, a dedicated computer, a microprocessor, etc. In these cases, the system and method can be implemented as a program embedded on a personal computer (such as an applet, JAVA.RTM., or CGI script), a resource residing on a server or computer workstation, a routine embedded in a dedicated communication system or system component, etc. The system can also be implemented by physically incorporating the system and / or method into a software and / or hardware system, such as the hardware and software system of a communication transceiver.
[0151] Thus, it is apparent that at least systems and methods for enhancing and improving conversational user interfaces have been provided. Many alternatives, modifications, and variations will be apparent to those of ordinary skill in the applicable arts. Accordingly, this disclosure is intended to include all such alternatives, modifications, equivalents, and variations that fall within the spirit and scope of this disclosure.
Claims
1. A system comprising: a plurality of access point devices (APs) configured to provide a wireless network at the site; as well as A computing device, implementing a network management system (NMS), wherein the network management system manages multiple APs, the computing device comprising: one or more processors, a memory comprising instructions that, when executed by the one or more processors, cause the one or more processors to: obtaining network data indicating communication relationships between the plurality of APs; generating a network graph based on the network data; Based on the network map, grouping the plurality of APs into a plurality of AP clusters; and One of a plurality of identifiers indicating a cluster of the plurality of clusters with respect to the site is uniquely assigned to each of the plurality of clusters.
2. The system according to claim 1, wherein: To group the plurality of APs into the plurality of clusters, the one or more processors are further configured to: Based on the network graph, generating a Laplacian matrix, wherein the Laplacian matrix is generated based on a difference between a degree matrix and an adjacency matrix, the degree matrix including information about the degree of each node in the network graph, and the adjacency matrix including information about the adjacency of nodes in the network graph; and Based on applying a k-means clustering algorithm to the Laplacian matrix, the multiple APs are grouped into k clusters based on neighbor relationships between the multiple APs.
3. The system according to claim 2, wherein: The adjacency matrix includes weighted values indicating the amount of adjacency of nodes in the network graph.
4. The system according to claim 2, wherein: The site comprises a multi-story structure, wherein k is the number of floors of the multi-story structure, and wherein each of the k clusters represents a cluster of APs for a particular floor of the k floors of the multi-story structure.
5. The system according to claim 2, wherein: The site comprises a multi-building site, wherein k is the number of buildings of the multi-building site, and wherein each of the k clusters represents a cluster of APs for a particular building among the k buildings of the multi-building site.
6. The system according to claim 1, wherein: The instructions further cause the one or more processors to: The network map indicating neighbor relationships between the plurality of APs is generated based on received signal strength indication (RSSI) values of wireless signals transmitted between the plurality of APs.
7. The system according to claim 1, wherein: The one of the plurality of identifiers comprises one or more of: a number representing a specific floor in a multi-story structure of the site; a color representing the specific floor in the multi-story structure of the site; a label representing the particular floor in the multi-floor structure of the site; A number representing a specific building in a multi-building site; a color representing the particular building in the multi-building site; as well as A label representing the particular building in the multi-building site.
8. The system according to claim 1, wherein: The one or more processors are further configured to: determining a number of connected components, wherein each of the connected components includes a set of connected APs; comparing the number of connected components to a first threshold, wherein the first threshold comprises a predetermined number of AP clusters; In response to determining that the number of connected components is less than the first threshold, determining whether the connected component is an isolated AP region based on determining whether the connected component does not include an anchor AP; In response to determining that at least one of the connected components does not include the anchor AP and is the isolated AP area, comparing the number of APs in the isolated AP area with a second threshold, wherein the second threshold comprises a total number of APs at the site divided by the predetermined number of AP clusters; In response to determining that the number of APs in the isolated AP area is greater than the second threshold, performing a graph cut in the network graph to divide the isolated AP area into one or more separate AP groups, and marking each of the one or more separate AP groups with an anchor AP; and The plurality of APs are grouped into the plurality of clusters excluding the one or more individual AP groups.
9. The system according to claim 1, wherein: The one or more processors are further configured to: determining a number of connected components, wherein each of the connected components includes a set of connected APs; comparing the number of connected components to a first threshold, wherein the first threshold comprises a predetermined number of clusters; In response to determining that the number of connected components is greater than the first threshold, determining whether the connected component is an isolated AP region based on determining whether the connected component does not include an anchor AP; In response to determining that at least one of the connected components does not include the anchor AP and is the isolated AP area, comparing the number of APs in the isolated AP area with a second threshold, wherein the second threshold comprises a total number of APs at the site divided by a predetermined number of AP clusters; In response to determining that the number of APs in the isolated AP area is greater than a threshold, performing a graph cut in the network graph to divide the isolated AP area into one or more AP groups, and marking each cut with an anchor AP; and The plurality of APs are grouped into the plurality of clusters excluding the one or more individual AP groups.
10. A method comprising: obtaining, by a computing device implementing a network management system (NMS), network data that manages a plurality of access point devices (APs) configured to provide a wireless network at a site, the network data indicating communication relationships between the plurality of APs; generating a network graph based on the network data by the computing device; The computing device groups the plurality of APs into a plurality of AP clusters based on the network map; and One of a plurality of identifiers indicating a cluster of the plurality of clusters with respect to the site is uniquely assigned by the computing device to each of the plurality of clusters.
11. The method according to claim 10, wherein: Grouping the plurality of APs into the plurality of clusters includes: The computing device generates a Laplacian matrix based on the network graph, wherein the Laplacian matrix is generated based on a difference between a degree matrix and an adjacency matrix, the degree matrix including information about the degree of each node in the network graph, and the adjacency matrix including information about the adjacency of nodes in the network graph; and The computing device applies a k-means clustering algorithm to the Laplacian matrix to group the multiple APs into k clusters based on neighbor relationships between the multiple APs.
12. The method according to claim 11, wherein The adjacency matrix includes weighted values indicating the amount of adjacency of nodes in the network graph.
13. The method according to claim 11, wherein The site comprises a multi-story structure, wherein k is the number of floors of the multi-story structure, and wherein each of the k clusters represents a cluster of APs for a particular floor of the k floors of the multi-story structure.
14. The method according to claim 11, wherein The site comprises a multi-building site, wherein k is the number of buildings of the multi-building site, and wherein each of the k clusters represents a cluster of APs for a particular building among the k buildings of the multi-building site.
15. The method according to claim 10, further comprising: The network map indicating neighbor relationships between the plurality of APs is generated by the computing device based on received signal strength indication (RSSI) values of wireless signals transmitted between the plurality of APs.
16. The method according to claim 10, wherein The one of the plurality of identifiers comprises one or more of: a number indicating a specific floor within the multi-story structure of the site; a color representing said particular floor in said multi-floor structure of said site; a label representing the particular floor in the multi-floor structure of the site; A number representing a specific building in a multi-building site; a color representing the particular building in the multi-building site; as well as A label representing the particular building in the multi-building site.
17. The method according to claim 10, further comprising: determining, by the computing device, a number of connected components, wherein each of the connected components includes a group of connected APs; comparing, by the computing device, the number of connected components with a first threshold, wherein the first threshold comprises a predetermined number of AP clusters; In response to determining that the number of the connected components is less than the first threshold, determining, by the computing device, whether the connected component is an isolated AP region based on determining whether the connected component does not include an anchor AP; In response to determining that at least one of the connected components does not include the anchor AP and is the isolated AP area, comparing, by the computing device, the number of APs in the isolated AP area with a second threshold, wherein the second threshold comprises a total number of APs at the site divided by the predetermined number of AP clusters; In response to determining that the number of APs in the isolated AP area is greater than the second threshold, performing, by the computing device, a graph cut in the network graph to divide the isolated AP area into one or more separate AP groups, and marking each of the one or more separate AP groups with an anchor AP; and The plurality of APs are grouped into the plurality of clusters excluding the one or more individual AP groups.
18. The method according to claim 10, further comprising: determining, by the computing device, a number of connected components, wherein each of the connected components includes a group of connected APs; comparing, by the computing device, the number of connected components with a first threshold, wherein the first threshold comprises a predetermined number of clusters; In response to determining that the number of the connected components is greater than the first threshold, determining, by the computing device, whether the connected component is an isolated AP region based on determining whether the connected component does not include an anchor AP; In response to determining that at least one of the connected components does not include the anchor AP and is the isolated AP area, comparing, by the computing device, the number of APs in the isolated AP area with a second threshold, wherein the second threshold comprises a total number of APs at the site divided by the number of the connected components; In response to determining that the number of APs in the isolated AP area is greater than the second threshold, performing, by the computing device, a graph cut in the network graph to divide the isolated AP area into one or more separate AP groups, and marking each of the one or more separate AP groups with an anchor AP; and The computing device groups the plurality of APs into the plurality of clusters while excluding the one or more individual AP groups.
19. A non-transitory computer-readable storage medium comprising instructions that, when executed, cause one or more processors to: obtaining network data indicating communication relationships between a plurality of APs; generating a network graph based on the network data; Based on the network graph, grouping the plurality of APs into a plurality of AP clusters; and One of a plurality of identifiers indicating a cluster of the plurality of clusters with respect to the site is uniquely assigned to each of the plurality of clusters.
20. The non-transitory computer-readable storage medium of claim 19, wherein: To group the plurality of APs into the plurality of clusters, the instructions further cause the one or more processors to: Based on the network graph, generating a Laplacian matrix, wherein the Laplacian matrix is generated based on a difference between a degree matrix and an adjacency matrix, the degree matrix including information about the degree of each node in the network graph, and the adjacency matrix including information about the adjacency of nodes in the network graph; and Based on applying a k-means clustering algorithm to the Laplacian matrix, the multiple APs are grouped into k clusters based on neighbor relationships between the multiple APs.
Citation Information
Patent Citations
Link status monitoring based on packet loss detection
US10200264B2
Stateful load balancing in a stateless network
US10277506B2
Network packet flow controller with extended session management
US10432522B2
Intent-based analytics
US10756983B2
Method for conveying AP error codes over BLE advertisements
US10862742B2