Device position determination based on directional information of signal

By combining distance measurement and signal direction information, the Network Management System (NMS) solves the ambiguity problem in target device location determination, achieving more accurate device positioning, especially under sparse reference devices or environmental interference.

CN120507714APending Publication Date: 2025-08-19JUNIPER NETWORKS INC
View PDF 18 Cites 0 Cited by

Patent Information

Application Number
CN202510160928.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2025-01-29
Filing Date
2025-02-13
Publication Date
2025-08-19

AI Technical Summary

Technical Problem

Existing technologies are prone to ambiguity or inaccuracy when determining the location of a target device based on distance measurement, especially when reference devices are sparse or there is environmental interference, which can lead to the incorrect placement of the target device on the site map.

Method used

By combining distance measurement and signal direction information, the location of the target device is determined using a network management system (NMS), and the direction information is used to correct or eliminate multiple possible locations, thereby improving positioning accuracy.

Benefits of technology

It improves the positioning accuracy of the target device on the site map, especially in the case of sparse reference devices or environmental interference, reduces the uncertainty of location determination, and achieves more accurate device placement.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120507714A_ABST
    Figure CN120507714A_ABST
Patent Text Reader

Abstract

The invention relates to device position determination based on directional information of a signal. Techniques describe a network management system that includes a memory and processing circuitry configured to obtain a distance measurement between at least two devices at a site, the at least two devices include at least one reference device positioned at a known position and a target device positioned at an unknown position relative to the at least one reference device. The processing circuitry may also be configured to obtain direction information specifying a direction of one or more signals transmitted between the at least one reference device and the target device. The processing circuitry may also be configured to determine a plurality of possible positions of the target device relative to the at least one reference device based on the distance measurements and the directional information. The processing circuitry may also be configured to determine a candidate position from the plurality of possible positions based on the directional information.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims the benefit of U.S. Patent Application No. 19 / 040,194, filed on January 29, 2025, which claims the benefit of U.S. Provisional Patent Application No. 63 / 554,409, filed on February 16, 2024, all of which are incorporated herein by reference. Technical Field

[0002] The present disclosure relates generally to computer networks and, more particularly, to monitoring and troubleshooting computer networks. Background Art

[0003] Commercial venues or sites, such as offices, hospitals, airports, stadiums, or retail stores, typically install complex wireless network systems (including a network of wireless access points (APs)) throughout the venue to provide wireless network services to one or more wireless client devices (or simply "clients"). An AP is a physical electronic device that enables other devices to wirelessly connect to a wired network using various wireless network protocols and technologies, such as wireless local area network protocols (i.e., "WiFi") that conform to one or more IEEE 802.11 standards, Bluetooth / Bluetooth Low Energy (BLE), mesh networking protocols (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, incorporate wireless communication technology and can be configured to connect to a compatible wireless access point when the device is within range of the access point in order to access the wired network. In the case of a client device running a cloud-based application, such as a Voice over Internet Protocol (VOIP) application, a streaming video application, a gaming application, or a video conferencing application, data is exchanged during an application session from the client device through one or more APs and one or more wired network devices (e.g., switches, routers, and / or gateway devices) to reach a cloud-based application server. Summary of the Invention

[0004] In general, this disclosure describes one or more techniques for determining the location of a device at a site based on directional information from signals. For example, a network management system configured to manage a wireless network at a site can determine the location (e.g., relative distances between devices) and / or orientation (e.g., rotational positions) of devices at the site and use these determinations to place the devices on a site map used to understand the deployment of devices at the site. The network management system can use, for example, a positioning algorithm (e.g., multilateration) to determine the location of a target device based on distances between a target device (e.g., a target access point or target client device) and one or more reference devices (e.g., reference access points). For example, the network management system can obtain a distance measurement (e.g., a measurement determined based on a fine timing measurement protocol) between at least one reference device and the target device based on one or more wireless signals exchanged between the at least one reference device and the target device, and determine the location of the target device at the site based on the distance measurement. However, determining the location of a target device based solely on distance measurements can produce ambiguous results, such as when the target device is determined to be in two or more possible locations that are equidistant or nearly equidistant from at least one reference device, referred to herein as "flip ambiguity," which can further lead to incorrect placement of the target device on the site map. Additionally, environmental interference, lack of reference devices, and / or other factors may cause inaccuracies in the distance measurements used to determine the location of the target device.

[0005] The techniques described herein utilize directional information from signals transmitted between at least one reference device and a target device to supplement distance measurements used to determine the location of a target device at a site, thereby resolving ambiguities or compensating for inaccurate distance measurements. For example, a network management system may obtain directional information specifying the direction of one or more signals (e.g., Bluetooth Low Energy (BLE) signals, etc.) transmitted between an antenna of at least one reference device and an antenna of a target device. Based on the distance measurements and the directional information, the network management system may detect positioning errors for one or more devices, such as determining that the target device has two or more possible locations. The network management system may determine a candidate location for the target device from the two or more possible locations of the target device based on the directional information. For example, the network management system may determine a relative orientation between the at least one reference device and the target device based on the directional information specifying the direction of one or more signals between the at least one reference device and the target device. This relative orientation may indicate a candidate location of the target device relative to the reference device.

[0006] In one example, the present disclosure relates to a network management system comprising a memory and one or more processors in communication with the memory and configured to obtain a distance measurement between at least two devices at a site, wherein the at least two devices include at least one reference device located at a known location at the site and a target device located at an unknown location at the site relative to the at least one reference device. The one or more processors may also be configured to obtain direction information specifying a direction of one or more signals transmitted between the at least one reference device and the target device. The one or more processors may also be configured to determine two or more possible locations of the target device relative to the at least one reference device based on the distance measurement and the direction information. The one or more processors may also be configured to determine a candidate location from the two or more possible locations of the target device relative to the at least one reference device based on the direction information.

[0007] In another example, the present disclosure relates to a method comprising: obtaining a distance measurement between at least two devices at a site, wherein the at least two devices include at least one reference device positioned at a known location of the site and a target device positioned at an unknown location of the site relative to the at least one reference device. The method further comprises: obtaining direction information specifying a direction of one or more signals transmitted between the at least one reference device and the target device. The method further comprises: determining two or more possible locations of the target device relative to the at least one reference device based on the distance measurement and the direction information. The method further comprises: determining a candidate location from the two or more possible locations of the target device relative to the at least one reference device based on the direction information.

[0008] In another example, the present disclosure relates to a non-transitory computer-readable storage medium comprising instructions that, when executed, cause one or more processors to obtain a distance measurement between at least two devices at a site, wherein the at least two devices include at least one reference device located at a known location at the site and a target device located at an unknown location at the site relative to the at least one reference device. The instructions may also cause the one or more processors to obtain direction information specifying a direction of one or more signals transmitted between the at least one reference device and the target device. The instructions may also cause the one or more processors to determine two or more possible locations of the target device relative to the at least one reference device based on the distance measurement and the direction information. The instructions may also cause the one or more processors to determine a candidate location from the two or more possible locations of the target device relative to the at least one reference device based on the direction information.

[0009] 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 these techniques will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Figure 1A is a block diagram of an example network system including a network management system, in accordance with one or more techniques of this disclosure.

[0011] Figure 1B It shows Figure 1A A block diagram of a network system with additional exemplary details is provided.

[0012] Figure 2 is a block diagram of an example access point device in accordance with one or more techniques of this disclosure.

[0013] Figure 3 is a block diagram of an example network management system in accordance with one or more techniques of this disclosure.

[0014] Figure 4 is a block diagram of an example user equipment apparatus in accordance with one or more techniques of this disclosure.

[0015] Figure 5 is a block diagram of an example network device, such as a router or switch, in accordance with one or more techniques of this disclosure.

[0016] Figure 6 An example of determining the location of a target device based on direction information of a signal according to one or more techniques of this disclosure is shown.

[0017] Figure 7 An example of determining the positions of a target device and a restricted reference device based on signal direction information according to one or more techniques of this disclosure is shown.

[0018] Figure 8 An example of determining the positions of a target device and a single reference device based on signal direction information according to one or more techniques of this disclosure is shown.

[0019] Figure 9 is a flow diagram illustrating example operations for locating a device at a site in accordance with one or more techniques of this disclosure. DETAILED DESCRIPTION

[0020] Figure 1Ais a block diagram of an exemplary network system 100 including a network management system (NMS) 130 according to one or more techniques of this disclosure. The exemplary network system 100 includes a plurality of sites 102A through 102N, at which network service providers manage one or more wireless networks 106A through 106N, respectively. Figure 1A In FIG. 1 , each site 102A- 102N is shown as including a single wireless network 106A- 106N, respectively, but in some examples, each site 102A- 102N may include multiple wireless networks, and the present disclosure is not limited in this respect.

[0021] Each site 102A to 102N includes multiple network access server (NAS) devices, such as access points (APs) 142, switches 146, and routers (not shown). For example, site 102A includes multiple APs 142A-1 to 142A-N (collectively referred to herein as "APs 142A"). Similarly, site 102N includes multiple APs 142N-1 to 142N-M (collectively referred to herein as "APs 142N"). 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.

[0022] Each site 102A through 102N also includes one or more client devices, otherwise referred to as user equipment devices (UEs), and generally referred to as UEs or client devices 148, representing the various wireless-enabled devices within each site. For example, multiple UEs 148A-1 through 148A-N are currently located at site 102A. Similarly, multiple 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 of devices. References to "N" need not be the same number for different elements. Similarly, references to "M" need not be the same number for different elements.

[0023] 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, but in other examples, each site 102 may include more or fewer switches and / or routers. Additionally, the APs and other wired client devices at a given site may be connected to two or more switches and / or routers. Additionally, two or more switches at a site may 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.

[0024] The exemplary network system 100 also includes various network components for providing network services (including, for example, authentication) within the wired network, including: an authorization and accounting (AAA) server 110 for authenticating users and / or UEs 148, a dynamic host configuration protocol (DHCP) server 116 for dynamically assigning a network address (e.g., an IP address) to the UE 148 upon authentication, a domain name system (DNS) server 122 for resolving domain names into network addresses, a plurality of servers 128A through 128N (collectively, “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 connected together via one or more networks 134 (eg, the Internet and / or a corporate intranet).

[0025] exist Figure 1AIn the example of FIG11 , NMS 130 is a cloud-based computing platform that manages wireless networks 106A through 106N at one or more of sites 102A through 102N. As further described herein, NMS 130 provides an integrated suite of management tools and implements various techniques 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. In some examples, NMS 130 outputs notifications (such as alarms, warnings, graphical indicators on a dashboard, log messages, text / 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. Furthermore, in some examples, NMS 130 operates in response to configuration input received from administrators interacting with and / or operating administrator device 111.

[0026] Administrators and administrator devices 111 may include IT personnel and administrator computing devices associated with one or more of the 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 and / or located at a different location from NMS 130, such that administrator device 111 can communicate with NMS 130 via network 134 or other communication means.

[0027] In some examples, one or more of the NAS devices (e.g., AP 142, switch 146, and router) can be connected to edge devices 150A through 150N via physical cables (e.g., Ethernet cables). Edge device 150 includes a cloud-managed wireless local area network (LAN) controller. Each of edge devices 150 can include a local device at site 102 that communicates with NMS 130 to extend certain microservices from NMS 130 to the local NAS device, while using NMS 130 and its distributed software architecture for scalable and resilient operations, management, troubleshooting, and analysis.

[0028] Each of the network devices of network system 100 (e.g., servers 110, 116, 122, and / or 128, AP 142, UE 148, switch 146, and any other servers or devices attached to or forming part of 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 of the network devices of 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 it is owned and / or associated with an entity different from NMS 130, such that NMS 130 does not directly receive, collect, or otherwise access the logged state and other data of the third-party network device. In some examples, edge device 150 may provide an agent through which the logged state and other data of the third-party network device can be reported to NMS 130.

[0029] In some examples, NMS 130 monitors network data 137 (e.g., one or more service level expectation (SLE) metrics) received from wireless networks 106A through 106N at each site 102A through 102N, respectively, and manages network resources (such as AP 142 at each site) to deliver a high-quality wireless experience to end users, IoT devices, and clients at the site. For example, NMS 130 may include a virtual network assistant (VNA) 133 that implements an event processing platform for providing real-time insights and simplified troubleshooting for IT operations, and automatically takes corrective actions or provides recommendations to proactively resolve wireless network issues. For example, 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 AP 142 and / or nodes within network 134. For example, VNA 133 of NMS 130 may include an underlying analysis and network error identification engine and alert 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.

[0030] Other exemplary details of the operations implemented by the VNA 133 of the NMS 130 are described in U.S. Patent No. 9,832,082, issued on November 28, 2017, and entitled “Monitoring Wireless Access Point Events”; U.S. Publication No. US 2021 / 0306201, issued on September 30, 2021, and entitled “Network System Fault Resolution Using a Machine Learning Model”; U.S. Patent No. 10,985,969, issued on April 20, 2021, and entitled “Systems and Methods for a Virtual Network Assistant”; U.S. Patent No. 10,958,585, issued on March 23, 2021, and entitled “Methods and Apparatus for Facilitating Fault Detection and / or Predictive Fault Detection”; U.S. Patent No. 10,958,585, issued on March 23, 2021, and entitled “Method for Spatio-Temporal No. 10,958,537, entitled “Modeling” for AP Error Codes Over BLE Advertisements, and U.S. Patent No. 10,862,742, issued 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.

[0031] In operation, NMS 130 observes, collects, and / or receives network data 137, which may take the form of data extracted from messages, counters, and statistics, for example. According to one particular implementation, a computing device is part of NMS 130. According to other implementations, 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 VNA 133 may be part of NMS 130, may execute on other servers or execution environments, or may be distributed to nodes within network 134 (e.g., routers, switches, controllers, gateways, etc.).

[0032] NMS 130, or more specifically, device location module 136, for example, can determine the location of a device at site 102. For example, device location module 136 can implement a location algorithm (such as multilateration) to determine the location of a target device (e.g., an AP, UE, etc.) at site 102A based on distance measurements between the target device at site 102A and one or more reference devices (e.g., APs whose locations are known). For example, an AP pair (e.g., AP 142A-1 and AP 142A-N) of AP 142A at site 102A can exchange one or more signals to determine the distance between AP 142A-1 and AP 142A-N according to a fine timing measurement (FTM) protocol. The FTM protocol can be implemented to determine the distance measurement based on round-trip time (RTT) measurements of wireless signals (e.g., Wi-Fi signals) exchanged between AP 142A-1 and AP 142A-N according to, for example, the FTM protocol as described in IEEE 802.11-2016. In this example, the location of AP 142A-1 at site 102A is known (and may represent a reference device), while the location of AP 142A-N at site 102A is unknown (and may represent a target device). AP 142A-1 and / or AP 142A-N may determine a distance measurement between AP 142A-1 and AP 142A-N based on a two-way time-of-flight (ToF) estimate (or round-trip time (RTT)) of one or more wireless signals exchanged between AP 142A-1 and AP 142A-N. NMS 130 may obtain the distance measurement between AP 142A-1 and AP 142A-N and, based on the distance measurement between AP 142A-1 and AP 142A-N, NMS 130 may determine the location of target device AP 142A-N relative to reference device AP 142A-1. NMS 130 may obtain distance measurements between other APs in AP 142A at site 102A. NMS 130 may also determine the orientation (e.g., the rotational position) of AP 142 at site 102A based on, for example, reference APs whose locations are known. The orientation of AP 142 may indicate the rotational direction of target device AP 142-N relative to reference device AP 142A-1.Additional examples of determining the location of a device and placing the device on a site map are described in U.S. patent application Ser. No. 17 / 811,784, filed on July 11, 2022, entitled “Determining Locations of Deployed Access Points,” and additional examples of determining the orientation of a device are described in U.S. patent application Ser. No. 17,651,526, filed on February 17, 2022, entitled “Determining Orientation of Deployed Access Points,” each of which is incorporated herein by reference in its entirety. Although the examples described above are described with respect to AP 142 determining distance measurements between APs 142 of site 102, in some examples, NMS 130 can determine distance measurements between APs. For example, NMS 130 can obtain FTM data from AP 142 and determine distance measurements between AP 142 based on the FTM data.

[0033] Based on the determined location and orientation of AP 142A at site 102A, NMS 130 may generate a site map that places AP 142A on a map of site 102A (e.g., placing a computer-generated icon representing AP 142 on the site map). NMS 130 may maintain and manage the site map and provide the site map to administrators of the network to enable the administrators to understand and / or enhance the deployment of devices at the site, such as for indoor wayfinding and asset location, and / or other applications. The site map may include recommendations for site managers regarding the placement of new devices and / or the rearrangement of devices already installed at the site to improve location resolution through more accurate device positioning, which may enable faster resolution of coverage gaps or channel interference. Continuing with the example described above, NMS 130 may generate a map outlining the dimensions of site 102A based on an image, blueprint, description, etc. of site 102A provided by an administrator of site 102A. NMS 130 may place a reference device (eg, AP 142A-1 , whose location is known) on a map and place a target device (eg, AP 142A-N) on a map based on the target device's location determined from distance measurements between AP 142A-1 and APs 142A-N.

[0034] In some instances, using multilateration to determine the location of a device in a wireless network may result in ambiguous results (e.g., due to uncertainty and / or errors in distance measurements based on fine timing measurements), such as when a device has two or more possible locations that are equidistant or nearly equidistant from at least one reference device. For example, a distance measurement of a target device determined using multilateration may apply equally to two different locations of the target device. Ambiguous results may arise in instances where the device is located in more isolated and / or marginal portions of a site (which typically have a lower density of reference devices). In situations where there are fewer reference devices and, therefore, less data to determine the device's location, the location determination may be inaccurate, which may further result in incorrect placement of the device on a site map.

[0035] According to one or more techniques of this disclosure, NMS 130 is configured to determine the location of devices within site 102 based on directional information from signals. For example, in addition to distance measurements, device location module 136 of NMS 130 may also obtain directional information (e.g., directional information indicating a cardinal direction in degrees or radians relative to the reference device) from signals transmitted between the antenna of at least one reference device and the antenna of a target device. This directional information may be included in wireless signals, such as those of a personal area network communication protocol (e.g., Bluetooth Low Energy (BLE) signals or other 2.4 GHz signals). Based on the directional information from signals transmitted between APs 142, such as when an AP is determined to be in two or more possible locations, device location module 136 of NMS 130 may determine whether any positioning errors exist for APs 142. NMS 130 may, for example, determine whether directional information for a given AP (e.g., AP 142A-1) determined from signals transmitted between AP 142A-1 and a target AP (e.g., AP 142A-N) is inconsistent with an expected direction to AP 142A-N (e.g., obtained from the determination of the AP's orientation described above), and may generate a flag or other value indicating a difference in direction to the target device. For example, NMS 130 may obtain directional information from AP 142A-1 specifying a first direction of BLE signals transmitted between AP 142A-1 and AP 142A-N, and compare the first direction to a second direction indicating the expected direction to AP 142A-N. NMS 130 may determine that the first direction is inconsistent with the second direction, and may generate a flag indicating a difference in directional information for AP 142A-N relative to AP 142A-1. NMS 130 may identify differences in directional information for other APs 142 and generate a flag or other value for each instance in which a difference in directional information is identified. NMS 130 may compare the number of signatures to a threshold, and if the threshold is met, NMS 130 may determine that there may be an error in the determined location of AP 142, such as the AP having two or more possible locations.

[0036] Alternatively or additionally, NMS 130 may determine whether the distribution of possible locations of the target device forms a multimodal distribution. For example, NMS 130 may generate a density map based on the distance measurements between APs 142 (e.g., using a probability density function) and identify, for example, local maxima in the density map that may indicate possible locations of the target device. If the distribution of distance measurements between APs 142 is multimodal (e.g., more than one local maximum in the density map), NMS 130 may determine that there may be an error in the determined location of AP 142, such as the AP having two or more possible locations.

[0037] In response to determining that the target AP has two or more possible locations, NMS 130 may resolve ambiguity in the multiple possible locations of the target device based on the directional information of the signal. For example, NMS 130 may determine a candidate location of target device 142A-N from the two or more possible locations of target device 142A-N based on the directional information of the BLE signal transmitted between the antenna of reference device AP 142A-1 and the antenna of target device AP 142A-N. In some examples, NMS 130 may determine the candidate location based on the directional information indicating the direction in which one or more reference APs receive the most acoustic directional beam from the target AP and / or the direction in which the target AP receives the most acoustic directional beam from the one or more reference APs, such as Figure 6 Further described in .

[0038] In some examples, NMS 130 may alternatively or additionally determine candidate locations of the target device based on information obtained from neighboring devices near the target device, such as Figure 6 For example, information from a neighboring device near the target device (e.g., within Wi-Fi signal range) may indicate that the neighboring device detected a wireless signal from the target device, and therefore the target device is likely located near the neighboring device. Alternatively, the NMS 130 may exclude possible locations of the target device where the neighboring device did not detect a wireless signal from the target device. In some examples, the NMS 130 may confirm the determination of candidate locations based on the direction information using the determination of candidate locations based on information indicating whether the neighboring device detected a wireless signal from the target device.

[0039] In some examples where there are a limited number of reference devices (and therefore a limited number of distance measurements), the NMS 130 may add an error bias to the target device's possible location based on the signal specifying direction information that deviates from the signal's expected direction, such as Figure 7As further described in [ 142A-1 ], as an example, AP 142A-1 may expect to receive a BLE signal from AP 142A-N in a first direction (e.g., southwest) based on a distance measurement between AP 142A-N and AP 142A-1. In this example, NMS 130 may obtain direction information of the BLE signal received by AP 142A-1 from AP 142A-N, which specifies a second direction (e.g., southeast) that is inconsistent with the first direction, and in response, NMS 130 may add an error bias to the possible locations corresponding to the first direction to indicate that the possible location of AP 142A-N in the first direction is an unlikely location for AP 142A-N. In this manner, by adding an error bias to the possible locations corresponding to the direction of the signal that deviates from the expected direction of the signal, NMS 130 may compress the multimodal distribution of possible locations of the target device into a single possible candidate location.

[0040] In some examples, the NMS 130 may alternatively or additionally exclude possible locations of the target device where only a single reference device can perform distance measurements, such as Figure 8 , further described in . A target device may be referred to herein as an "isolated target device." In these examples, the target device is within range of a Wi-Fi signal (e.g., a 5 GHz signal) from only a single reference device, but may also be within range of BLE signals (e.g., a 2.4 GHz signal) from one or more other devices that are unable to detect the Wi-Fi signal from the target device. Due to the lack of a reference device, the NMS 130 may determine the location of the target device with a greater degree of uncertainty, such as within a large window of possible locations (i.e., two or more locations). The NMS 130 may exclude possible locations of the target device, such as by determining a probability window (e.g., a narrow area representing possible locations of the target device) based on directional information of BLE signals transmitted between one or more other devices that are unable to detect the Wi-Fi signal from the target device.

[0041] The techniques of the present disclosure provide one or more technical advantages and practical applications. For example, by applying directional information to a positioning algorithm, the techniques described herein can disambiguate possible locations of a target device (e.g., equidistant points representing possible locations of the target device or possible locations with a greater degree of uncertainty), thereby providing a more accurate estimate of the location of the target device. Furthermore, by integrating directional information into a positioning algorithm, the techniques described herein can provide a more accurate estimate of the location of the target device with fewer measurements, such as when fine timing measurement data is sparse due to fewer reference devices and / or degraded signals caused by walls or other environmental interference. For example, directional information adds a degree of validity to fewer measurements, thereby allowing for more accurate positioning with fewer unknown locations.

[0042] Although the techniques of this disclosure are described in this example as being performed by NMS 130, the techniques described herein may be performed by any other computing device, system, and / or server, and the disclosure is not limited in this respect. For example, one or more computing devices configured to perform the functions of the techniques of this disclosure may reside in a dedicated server, or be included in any other server other than NMS 130, or may be distributed throughout network 100 and may or may not form part of NMS 130.

[0043] Figure 1B It shows Figure 1A In this example, Figure 1B The NMS 130 is shown configured to operate according to an artificial intelligence / machine learning based computing platform that provides a cross-domain communication between “clients” (e.g., user devices 148 connected to the wireless network 106 and the wired LAN 175) ( Figure 1B ) to the "cloud" (e.g., cloud-based application services 181 that may be hosted by computing resources within a data center 179) ( Figure 1B Comprehensive automation, insights, and assurance (WiFi Assurance, Wired Assurance, and WAN Assurance) for the far right side of the network.

[0044] As described herein, NMS 130 provides an integrated suite of management tools and implements 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. For example, network management system 130 can be configured to proactively monitor and adaptively configure network 100 to provide self-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 radio frequency (RF) optimization with reinforcement learning.

[0045] like Figure 1B As shown in the example of [ 1 ], AI-driven NMS 130 also provides configuration management, monitoring, and automated oversight of a software-defined wide area network (SD-WAN) 177, which operates as an intermediate network that communicatively couples wireless network 106 and wired LAN 175 to data center 179 and application services 181. Typically, SD-WAN 177 provides seamless, secure, traffic-engineered connectivity between a "hub" router 187A in a wired network 175 (such as a branch or campus network) hosting wireless network 106, and further upstream, a "hub" router 187B toward cloud-based application services 181. 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, SD-WAN 177 extends software-defined networking (SDN) capabilities to the WAN and allows networks to decouple the underlying physical network infrastructure from virtualized network infrastructure and applications, enabling flexible and scalable network configuration and management.

[0046] 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 client device 148 to direct traffic along a selected path (e.g., path 189) to 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, as 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., known as Security Vector Routing (SVR).

[0047] Additional information about session-based routing and SVR is provided in U.S. Patent No. 9,729,439, entitled “COMPUTER NETWORK PACKETFLOW CONTROLLER,” issued on August 8, 2017; U.S. Patent No. 9,729,682, entitled “NETWORK DEVICE AND METHOD FOR PROCESSING A SESSION 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; U.S. Patent No. 9,871,748, entitled “ROUTER WITH OPTIMIZED STATISTICAL FUNCTIONALITY,” issued on January 16, 2018; and U.S. Patent No. 9,871,748, entitled “NAME-BASED ROUTING SYSTEM AND U.S. Patent No. 9,985,883, issued on May 29, 2018, entitled “LINK STATUS MONITORING BASED ON PACKET LOSS DETECTION”; U.S. Patent No. 10,200,264, issued on February 5, 2019, entitled “STATEFUL LOADBALANCING IN A STATELESS NETWORK”; U.S. Patent No. 10,277,506, issued on April 30, 2019, entitled “NETWORK PACKET FLOW CONTROLLER WITH EXTENDED SESSION MANAGEMENT”; and U.S. Patent No. 10,432,522, issued on October 1, 2019, entitled “NETWORK PACKET FLOW CONTROLLER WITH EXTENDED SESSION MANAGEMENT”; and U.S. Patent No. 10,432,522, issued on July 27, 2021, entitled “IN-LINE PERFORMANCE 11,075,824, each of which is incorporated herein by reference in its entirety.

[0048] 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 local 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 cohesive network of devices, often from different vendors with different configuration protocols, syntaxes, and software versions, is often difficult to achieve. Therefore, by requiring the user / system to specify only declarative requirements that specify desired outcomes applicable to the various different types of devices, management and configuration of network devices becomes more efficient. Further exemplary details and techniques for intent-based network management systems are described in U.S. Patent No. 10,756,983, entitled “Intent-based Analytics,” and U.S. Patent No. 10,992,543, entitled “Automatically generating an intent-based network model of an existing computer network,” each of which is incorporated by reference.

[0049] According to the techniques described in this disclosure, the NMS 130 can obtain distance measurements between at least two devices. The NMS 130 can obtain distance measurements between, for example, a target device located at an unknown location and at least one reference device located at a known location. The target device can include a client device 148 or a device in the wireless network 106, such as an access point (e.g., Figure 1A The target device and / or reference device may be a wireless AP 142 or other device configured to exchange wireless signals for determining distances between devices. The at least one reference device may include a device in the wireless network 106. Although described with respect to devices in the wireless network 106, the target device and / or the reference device may include devices configured to exchange wireless signals in other networks.

[0050] The NMS 130 may determine the location of the target device based on a distance measurement between the target device and at least one reference device. For example, the NMS 130 may obtain information from the target device, the reference device, and / or other devices connected to the target device or reference device, such as from a network device in the wired network 175, the SD-WAN 177, and / or from a cloud-based application service 181 (which may be hosted by a computing resource in a data center 179 that is communicatively coupled to the target device or reference device). Figure 1B Based on the obtained distance measurements, NMS 130 may apply a positioning algorithm (such as multilateration) to determine the likely location of the target device.

[0051] The NMS 130 may eliminate possible locations based on directional information specifying the direction of a signal (e.g., a BLE signal) transmitted, for example, between an antenna of the target device and an antenna of the reference device. For example, the NMS 130 may obtain directional information of a signal transmitted according to a personal area network communication protocol implemented in the wireless network 106, such as Bluetooth / Bluetooth Low Energy (BLE) or other communication protocols that may include directional information of the transmitted signal. In some examples, the NMS 130 may obtain directional information from the target device, the reference device, and / or other devices connected to the target device or reference device, such as from a network device in the wired network 175, the SD-WAN 177, and / or from a cloud-based application service 181 (which may be hosted by computing resources within a data center 179 that is communicatively coupled to the target device or reference device). Figure 1B (rightmost side of the image). NMS 130 may determine candidate locations for the target network device based on the directional information. For example, NMS 130 may exclude possible locations of the target device based on directional information indicating that the direction of a signal transmitted between the target device and the reference device is inconsistent with an expected direction of the signal.

[0052] Figure 2 is a block diagram of an example access point (AP) device 200 , in accordance with one or more techniques of this disclosure. Figure 2 The exemplary access point 200 and device location module 236 shown may be used to implement at least some of the functionality of any of the APs 142 and the device location module 136 of FIG. 1 , respectively, as described herein with respect to FIG. Figure 1A As shown and described.

[0053] exist Figure 2In the example of FIG, access point 200 includes a wired interface 230, wireless interfaces 220A-220B, one or more processors 206, memory 212, and input / output 210 coupled together via bus 214, through which the various elements can exchange data and information. 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). Wired interface 230 couples access point 200 directly or indirectly to a wired network device within a wired network, such as a wireless network device, via a cable (e.g., an Ethernet cable). Figure 1A One of the switches 146 in.

[0054] The first wireless interface 220A and the second wireless interface 220B represent wireless network interfaces and include receivers 222A and 222B, respectively, each including a receiving antenna via which the access point 200 can receive data from wireless communication devices such as Figure 1A The first wireless interface 220A and the second wireless interface 220B further include transmitters 224A and 224B, respectively, each of which includes a transmitting antenna, via which the access point 200 can transmit wireless signals to wireless communication devices such as wireless devices. Figure 1A In some examples, the first wireless interface 220A may implement a first communication protocol, such as WI-FI 802.11 (e.g., 2.4 GHz and / or 5 GHz), and the second wireless interface 220B may implement a second communication protocol, such as Bluetooth and / or Bluetooth Low Energy (BLE).

[0055] The processor(s) 206 are programmable, hardware-based processors configured to execute software instructions (such as those defining software or a computer program) stored to a computer-readable storage medium (such as the memory 212), 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 the processor(s) 206 to perform the techniques described herein.

[0056] Memory 212 includes one or more devices configured to store programming modules and / or data associated with the operation of access point 200. For example, 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 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 processor(s) 206 to perform the techniques described herein.

[0057] In this example, memory 212 stores executable software including an application programming interface (API) 240, a communication manager 242, configuration settings 250, a device status log 252, a data store 254, a log controller 255, and a device location module 236. Device status log 252 includes a list of events specific to access point 200. Events may include logs of both correct and error events, such as, for example, memory status, reboot or restart events, crash events, cloud disconnect with self-recovery events, low link speed or link speed swing events, Ethernet port status, Ethernet interface packet errors, upgrade failure events, firmware upgrade events, configuration changes, etc., along with time and date stamps for each event. Log controller 255 determines the device's logging level based on instructions from NMS 130. The data 254 may store any data used and / or generated by the access point 200, including data collected from the UE 148 (such as data used to calculate one or more SLE metrics) that is sent by the access point 200 for cloud-based management of the wireless network 106A by the NMS 130. The device location module 236 may include computer-readable instructions for determining a range measurement and direction information between the access point 200 and another device (a reference or target device) in communication with the access point 200 to determine the location of the access point 200 or other device in communication with the access point 200, as further described below.

[0058] Input / output (I / O) 210 represents physical hardware components that enable user interaction, such as buttons, a touch screen, a display, and the like. Although not shown, memory 212 typically stores executable software for controlling the user interface with respect to input received via I / O 210. Communications manager 242 includes program code that, when executed by processor 206, enables access point 200 to communicate with UE 148 and / or network 134 via interfaces 230 and / or any of 220A-220B. Configuration settings 250 include any device settings for access point 200, such as the radio settings for each of wireless interfaces 220A-220B. These settings can be manually configured or remotely monitored and managed by NMS 130 to optimize wireless network performance on a periodic basis (e.g., hourly or daily).

[0059] As described herein, the AP device 200 can measure and report network data from the status log 252 to the NMS 130. The network data can include event data, telemetry data, and / or other SLE-related data. The network data can include various parameters indicating the performance and / or status of the wireless network. The parameters can be measured and / or determined by one or more of the UE devices and / or one or more of the APs in the wireless network. The NMS 130 can determine one or more SLE metrics based on the SLE-related data received from the APs in the wireless network and store the SLE metrics as network data 137 ( Figure 1A ).

[0060] According to the techniques described herein, in some examples, access point 200 may include a device location module 236 configured to determine the location of access point 200 or another device communicating with access point 200 based on directional information from signals transmitted between access point 200 and the other device communicating with access point 200. In instances where access point 200 operates as a reference device for a target device, device location module 236 may instruct wireless interface 220A, for example, to transmit a wireless signal (e.g., a Wi-Fi signal) to the target device and determine the distance between access point 200 and the target device. Device location module 236 may determine the distance between access point 200 and the target device based on distance measurements determined according to the FTM protocol described in IEEE 802.11-2016. For example, device location module 236 may perform bidirectional Time of Flight (ToF) estimation of wireless signals transmitted between access point 200 and the target device. Device location module 236 may implement a location algorithm, such as a multilateration technique, to determine the likely location of the target device using the distance measurements. For example, the device location module 236 may plot possible locations of the target device based on a probability distribution function and determine whether the distribution forms a multimodal distribution (where more than one local maximum exists in the distribution), which may indicate multiple possible locations of the target device relative to the access point 200 .

[0061] In response to determining the multiple possible locations of the target device, the device positioning module 236 can obtain directional information specifying the direction of the wireless signal transmitted between the access point 200 and the target device. For example, the device positioning module 236 can determine the direction of the wireless signal transmitted between the access point 200 and the target device. The device positioning module 236 can determine the direction of the wireless signal based on, for example, the direction in which the strongest directional beam signal originating from the target device is received by the receiving antenna of the wireless interface 220B, or more specifically, the receiver 222B.

[0062] In operation, device positioning module 236 may determine whether there is any positioning error in the expected direction of the target device relative to AP 200 based on the direction information. Device positioning module 236 may determine a difference between the direction information specifying the direction of a wireless signal transmitted between access point 200 and the target device and the expected direction of the target device's location (e.g., determined based on a distance measurement between the target device and access point 200). For example, device positioning module 236 may determine whether the direction information of the target device relative to AP 200 is inconsistent with the relative direction of the target device to AP 200. Device positioning module 236 may generate a flag or other value indicating the determined difference in the direction of the target device relative to AP 200. For example, device positioning module 236 may obtain direction information specifying a first direction of a BLE signal transmitted between wireless interface 220B and the wireless interface of the target device and compare the first direction to a second direction indicating the relative direction of the target device relative to AP 200. Device positioning module 236 may determine that the first direction is inconsistent with the second direction and may generate a flag indicating the difference in the direction of the target device relative to AP 200.

[0063] In some examples, device-location module 236 may alternatively or additionally determine a location error by identifying whether the distribution of possible locations of the target device forms a multimodal distribution. For example, device-location module 236 may generate a density map based on distance measurements between AP 200 and the target device (e.g., using a probability density function). Device-location module 236 may identify, for example, local maxima in the density map that may indicate possible locations of the target device. If device-location module 236 identifies more than one local maximum in the density map, device-location module 236 may determine that the distribution of distance measurements between AP 200 and the target device is multimodal. In response to determining that the distribution is multimodal, device-location module 236 may determine that there may be an error in the determined location of the target device, such as that the target device has two or more possible locations.

[0064] In response to the device positioning module 236 determining an error in the expected location of the target device, the device positioning module 236 may resolve any ambiguity in the multiple possible locations of the target device based on the direction information. For example, the device positioning module 236 may determine a candidate location of the target device from two or more possible locations of the target device based on the direction information of the BLE signal transmitted between the antenna of the wireless interface 220B and the antenna of the target device. For example, the device positioning module 236 may determine the candidate location of the target device based on an error bias of the possible locations in a multimodal distribution of possibilities applied to the possible locations of the target device. In these examples, the device positioning module 236 may add an error bias to the possible locations of the target device in the multimodal distribution (in which the direction specified in the direction information of the signal transmitted between the AP 200 and the target device deviates from the direction of the possible location of the target device determined by the distance measurement) to reduce the multimodal distribution to a single candidate location corresponding to the direction specified in the direction information. The device positioning module 236 may send the candidate location to a network management system (e.g., Figure 1A NMS 130) to place the target device on the site map relative to access point 200. In instances where access point 200 is the target device, access point 200 may operate substantially similarly to an access point operating as a reference device, as described above.

[0065] In some instances, the access point 200 may determine that the target device may be an isolated target device (e.g., a device having two or fewer reference devices that can be used to determine the position and / or orientation of the target device based on distance measurements). For example, the device positioning module 236 may determine that the target device has fewer than three distance measurements and may label the target device as an isolated target device with a limited amount of data to triangulate the position of the target device. The device positioning module 236 may determine a candidate position for the isolated target device based on the distance measurements, for example, by adding an error bias to the possible positions of the target device in a multimodal distribution in which the position direction of the target device deviates from the direction of the BLE signal.

[0066] In some examples where there is only one reference device to perform distance measurements, the device location module 236 can determine a probability window of candidate locations (e.g., a narrow area representing the possible locations of the access point 200). For example, the device location module 236 can determine a large probability band of possible locations for the target device based on the distance measurement between the target device and the single reference device. The device location module 236 can refine the probability band of possible locations to a probability window of the most likely location for the target device. For example, the device location module 236 can determine the probability window of candidate locations based on directional information of BLE signals transmitted between one or more other devices and the target device, where the target device is not within range of the Wi-Fi signals of the one or more other devices.

[0067] Figure 3 is a block diagram of an exemplary network management system (NMS) 300 according to one or more techniques of this disclosure. NMS 300 may be used to implement, for example, Figure 1A to Figure 1B In such an example, NMS 300 is responsible for monitoring and management of one or more wireless networks 106A through 106N at sites 102A through 102N, respectively.

[0068] NMS 300 includes a communication interface 330, one or more processors 306, a user interface 310, a memory 312, and a database 318. The various elements are coupled together via a bus 314, through which the various elements can exchange data and information. In some examples, NMS 300 receives data from client devices 148, APs 142, switches 146, and other network nodes within network 134 (e.g., Figure 1B One or more of the routers 187 of the wireless network 106A-106N receives the data, which may be used to calculate one or more SLE metrics and / or update the network data 316 in the database 318. The NMS 300 analyzes the data for cloud-based management of the wireless networks 106A-106N. In some examples, the NMS 300 may be Figure 1A or a portion of another server shown in or a portion of any other server.

[0069] The processor 306 executes software instructions (such as those defining software or a computer program) stored to a computer-readable storage medium (such as the memory 312), 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 the one or more processors 306 to perform the techniques described herein.

[0070] 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 The communication interface 330 includes a receiver 332 and a transmitter 334 through which the NMS 300 receives data from the client device 148, the AP 142, the switch 146, the servers 110, 116, 122, 128, and / or any other network such as a local area network. Figure 1A 300 receives data and information from / sends data and information to any of the other network nodes, devices, or systems that are part of the network system 100 shown in FIG. In some scenarios where the network system 100 described herein includes "third-party" network devices owned by and / or associated with an entity other than the NMS 300, the NMS 300 does not receive, collect, or otherwise access network data from the third-party network devices.

[0071] The data and information received by NMS 300 may include, for example, data from client devices AP 148, AP 142, switch 146, or other network nodes (e.g., Figure 1B The NMS 300 may also transmit the data to any of the network devices (such as the client device 148, the AP 142, the switch 146, or other network nodes within the network 134, or the management device 111) via the communication interface 330 to remotely manage the wireless networks 106A to 106N and a portion of the wired network.

[0072] The memory 312 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 312 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.

[0073] In this example, the memory 312 includes an API 320, an SLE module 322, a virtual network assistant (VNA) / AI engine 350, a radio resource management (RRM) engine 360, and a device location module 356. The NMS 300 may also include a server configured for remote monitoring and management of the wireless networks 106A to 106N and a portion of the wired network, including the APs 142 / 200, switches 146, or other network devices (e.g., Figure 1B any other programming module, software engine and / or interface for remote monitoring and management of any of the routers 187).

[0074] The SLE module 322 is capable of setting and tracking thresholds for SLE metrics for each of the networks 106A to 106N. The SLE module 322 further analyzes SLE-related data collected by an AP (such as any of the APs 142) from UEs in each of the wireless networks 106A to 106N. For example, the APs 142A-1 to 142A-N collect SLE-related data from the UEs 148A-1 to 148A-N currently connected to the wireless network 106A. This data is sent to the NMS 300, where it is executed by the SLE module 322 to determine one or more SLE metrics for each of the UEs 148A-1 to 148A-N currently connected to the wireless network 106A. This data is sent to the NMS 300 in addition to any network data collected by the one or more APs 142A-1 to 142A-N in the wireless network 106A and stored in the database 318 as, for example, network data 316.

[0075] The RRM engine 360 monitors one or more metrics for each site 102A to 102N in order to understand and optimize the RF environment at each site. For example, the RRM engine 360 can monitor the coverage and capacity (SLE) metrics of the wireless network 106 at site 102 to identify potential issues with SLE coverage and / or capacity in the wireless network 106 and adjust the radio settings of the access points at each site to address the identified issues. For example, the RRM engine can determine the channel and transmit power distribution of all APs 142 across each network 106A to 106N. For example, the RRM engine 360 can monitor events, power, channels, bandwidth, and the number of clients connected to each AP. The RRM engine 360 can also automatically change or update the configuration of one or more APs 142 at site 102 in order to improve the coverage and capacity (SLE) metrics and thereby provide an improved wireless experience for users.

[0076] The VNA / AI engine 350 analyzes data received from the network devices as well as its own data to identify when an unexpected abnormal state is encountered at one of the network devices. For example, the VNA / AI engine 350 can identify the root cause of any unexpected state or abnormal state, such as any poor SLE metric indicating a connection problem at one or more network devices. In addition, the VNA / AI engine 350 can automatically invoke one or more corrective measures intended to address the identified root cause of one or more poor SLE metrics. Examples of corrective measures that can be automatically invoked by the VNA / AI engine 350 can include, but are not limited to, invoking RRM 360 to restart one or more APs, adjusting / modifying the transmit power of a specific radio in a specific AP, adding an SSID configuration to a specific AP, changing the channel on an AP or a group of APs, etc. Corrective measures can also include restarting switches and / or routers, invoking the download of new software to APs, switches, or routers, etc. These corrective measures are given for example purposes only, and the present disclosure is not limited in this respect. If automatic corrective actions are not available or sufficient to address the root cause, the VNA / AI engine 350 can proactively provide a notification that includes recommended corrective actions to be taken by IT personnel (e.g., a site or network administrator using the administrator device 111) to resolve the network error.

[0077] The device location module 356 can determine the location of the target network device. The device location module 356 can include Figure 2

[0066] This disclosure provides exemplary or alternative implementations of the device location module 236. For example, the device location module 356 may determine a distance measurement between a target device and at least one reference device according to the FTM protocol (e.g., by receiving RTT data from the at least one reference device and / or the target device). The device location module 356 may also obtain direction information for signals transmitted between the target device and the at least one reference device. The device location module 356 may determine two or more possible locations of the target device based on the distance measurement and the direction information (e.g., by determining that an expected direction of the target device relative to the at least one reference device is inconsistent with the direction information). The device location module 356 may determine a candidate location from the two or more possible locations based on the direction information.

[0078] exist Figure 3In the example of FIG, device location module 356 may include distance module 358, orientation module 359, direction verification module 362, correction module 363, and site mapping module 364. Distance module 358 may obtain distance measurements between a target device located at an unknown location within a site and one or more reference devices located at known locations within the site. Distance module 358 may determine an approximate location of the target device based on the distance measurements between the target device and the one or more reference devices. Orientation module 359 may obtain received signal strength measurements of wireless signals originating from one or more antennas of the target device and received by one or more antennas of the reference devices, or vice versa. For example, orientation module 359 may determine an orientation angle at which the target device is located relative to the reference devices based on the received signal strength measurements. Direction verification module 362 may obtain direction information for signals transmitted between the target device and the one or more reference devices. Direction verification module 362 may determine, for example, a difference between the direction of the target device as determined by orientation module 359 and the direction information. Correction module 363 may determine a candidate location based on the direction information to correct for any differences. The site map module 364 can generate a map including relative locations of the target device and the one or more reference devices based on the known locations of the one or more reference devices and the candidate locations of the target device.

[0079] The distance module 358 can determine the location of the target device at the site based on distance measurements between the target device and one or more reference devices. For example, the distance module 358 can obtain distance measurements determined based on RTT measurements of wireless signals exchanged between the target device and the one or more reference devices. The distance module 358 can implement a positioning algorithm (e.g., multilateration) to determine one or more possible locations of the target device based on distance measurements specifying the distance at which the target device is positioned relative to the one or more reference devices. In general, the distance module 358 can determine the possible location of any device at the site based on distance measurements between devices at the site.

[0080] The orientation module 359 may determine the orientation of the target device (e.g., the rotational position of the device relative to other devices at the site) based on the distance measurement. For example, the orientation module 359 may obtain a distance measurement determined based on a received signal strength measurement of wireless signals transmitted by one or more antennas of a reference device and received by one or more antennas of the target device, or vice versa. The orientation module 359 may determine the orientation of the target device based on an orientation angle, included in the distance measurement, specifying the rotational position of the target device relative to the reference device. In some examples, the orientation module 359 may determine the orientation of the target device based on the orientation angles of reference devices with known positions at the site. The orientation module 359 may determine the orientation of the target device as an indication of the rotational direction of the target device relative to the one or more reference devices. The orientation module 359 may obtain one or more possible positions of the target device determined by the distance module 358. The orientation module 359 may adjust the possible position of the target device based on the determined orientation.

[0081] The direction verification module 362 can determine the difference between the expected location of the target device and the direction information of wireless signals transmitted between the target device and one or more reference devices. The direction verification module 362 obtains the direction information of the signals transmitted between the target device and at least one reference device at the site. For example, the direction verification module 362 can obtain direction information from the target device and / or the reference device based on the BLE signals transmitted between the target device and the reference device, the direction information including the direction of the target device relative to the reference device. The direction verification module 362 can collect direction information between devices at the site in parallel or simultaneously with the distance module 358 and / or the orientation module 359 collecting distance measurements between devices at the site. The direction verification module 362 can check for differences between the expected direction of the target device relative to the reference device and the direction information of the signals transmitted between the target device and the reference device. For example, the direction verification module 362 can determine the expected direction of the target device relative to the reference device based on the possible location of the target device determined by the distance module 358 and / or the orientation module 359. The direction verification module 362 can flag a discrepancy in response to determining that the expected direction of the target device relative to the reference device and the direction information between the target device and the reference device are inconsistent. For example, the direction information module 362 can flag a discrepancy, such as when the expected direction of the target device relative to the reference device is inconsistent by at least 45 degrees compared to the direction information in the signal transmitted between the target device and the reference device. The direction verification module 362 can flag multiple discrepancies by determining multiple discrepancies based on the expected directions of the target device and multiple devices being consistent with the corresponding direction information. The direction verification module 362 can determine a positioning error (e.g., the target device is located in two or more possible locations) based on the number of flagged discrepancies for the target device meeting a threshold. In response to determining a positioning error, the direction verification module 362 can relay an indication of the positioning error (e.g., the target device is located in two or more possible locations) and the direction information to the correction module 363.

[0082] Correction module 363 may correct the positioning error based on the directional information. Correction module 363 may determine a candidate location from two or more possible locations of the target device (e.g., as indicated in the positioning error) based on the directional information. In some instances, correction module 363 may select a candidate location from the two or more possible locations based on a possible location that is consistent with the directional information. In some examples, correction module 363 may exclude a possible location from the two or more possible locations based on a possible location that is inconsistent with the directional information. If correction module 363 determines that more than one candidate location is inconsistent with the directional information, correction module 363 may re-determine whether the more than one candidate location results in a discrepancy when compared with directional information associated with the target device and one or more additional reference devices. For example, correction module 363 may obtain additional directional information from a signal transmitted between the target device and another reference device, which may be located at a different level at the site (e.g., above or below the candidate location).

[0083] Additionally or alternatively, direction verification module 362 may generate a density map of possible locations. In some instances, direction verification module 362 may generate the density map of possible locations based on distance measurements obtained by distance module 358 and / or orientation module 359. Direction verification module 362 may determine that the density map is multimodal. In other words, direction verification module 362 may determine more than one local maximum in the density map of possible locations. Direction verification module 362 may add an error bias to the density map of possible locations based on directional information from signals transmitted between the target device and at least one reference device. Direction verification module 362 may send the density map of possible locations with the applied error bias to correction module 363. Correction module 363 may determine candidate locations based on the density map of possible locations with the applied error bias. For example, correction module 363 may determine candidate locations by eliminating possible locations from the density map based on the degree of error bias applied to the possible locations. Correction module 363 may send the candidate locations to site mapping module 364. The site mapping module 364 may place a user interface element (eg, a computer-generated icon representing the device) on the site map that indicates the location of the target device based on the candidate location.

[0084] In some examples, direction verification module 362 may mark the target device as an isolated device. When the target device is associated with fewer than three reference devices, direction verification module 362 may determine that the target device is an isolated device. Direction verification module 362 may determine that an isolated target device has inherent positioning errors due to a lack of data available to determine the target device's location. For example, direction verification module 362 may determine that the target device has fewer than three distance measurements and may mark the target device as an isolated target device with a limited amount of data to triangulate the target device's location. In this example, direction verification module 362 may obtain direction information between the target device and other devices that may be near the target device's possible location but are isolated from the target device due to an inability to communicate with the target device to determine distance measurements. Direction verification module 362 may provide the direction information to correction module 363. Correction module 362 may use the direction information to eliminate possible locations of the target device and / or refine the target device's location to a window of probabilities for where the target device may be located.

[0085] The techniques disclosed herein provide one or more technical advantages and practical applications. For example, the NMS 300 utilizes a new dimension of data (e.g., directional information derived from directional signals transmitted and received by a target device and / or one or more reference devices) to verify and / or further refine the placement of a target device on a site map. The NMS 300 can obtain directional information to disambiguate possible locations of the target device on the site map that may be associated with two or more equidistant points relative to one or more reference devices. The NMS 300 can disambiguate the possible locations by eliminating at least one of these possible locations based on a discrepancy between the expected direction of the target device relative to the reference devices and the corresponding directional information. The NMS 300 can also improve sparse FTM data in marginal portions of a map. The NMS 300 can use directional information to add a degree of validity to smaller distance increments. In this way, the NMS 300 can apply directional information to more accurately locate devices with fewer known locations (e.g., fewer reference devices). In general, the NMS 300 may rely on directional information of signals transmitted between devices at a site as a reliable source of information, as compared to the locations of devices determined based on distance measurements.

[0086] Although the techniques of this disclosure are described in this example as being performed by NMS 130, the techniques described herein may be performed by any other computing device, system, and / or server, and the disclosure is not limited in this respect. For example, one or more computing devices configured to perform the functions of the techniques of this disclosure may reside in a dedicated server, or be included in any other server other than NMS 130, or may be distributed throughout network 100 and may or may not form part of NMS 130.

[0087] Figure 4 An example user equipment (UE) apparatus 400 is shown, in accordance with one or more techniques of this disclosure. Figure 4 The exemplary UE device 400 and device location module 436 shown in FIG can be used to implement the Figure 1A Any of the UE 148 and device location module 134 shown and described. The UE device 400 may include any type of wireless client device, and the present disclosure is not limited in this respect. For example, the 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. In some examples, the UE 400 may also include a wired client-side device, for example, an IoT device such as a printer, a security sensor or device, an environmental sensor, or any other device connected to a wired network and configured to communicate via one or more wireless networks.

[0088] UE device 400 includes a wired interface 430, wireless interfaces 420A-420C, one or more processors 406, 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. The wired interface 430 represents a physical network interface and includes a receiver 432 and a transmitter 434. The wired interface 430 can be used, if desired, to connect to the network via a cable (such as a Figure 1A The UE 400 is coupled directly or indirectly to a wired network device (such as a Figure 1A one of the switches 146).

[0089] The first wireless interface 420A, the second wireless interface 420B, and the third wireless interface 420C include receivers 422A, 422B, and 422C, respectively, each of which includes a receiving antenna via which the UE 400 can receive data from a wireless communication device such as a Figure 1A AP 142, Figure 2The first wireless interface 420A, the second wireless interface 420B and the third wireless interface 420C further include transmitters 424A, 424B and 424C, respectively. Each transmitter includes a transmitting antenna, and the UE 400 can transmit wireless signals to wireless communication devices (such as Figure 1A AP 142, Figure 2 The 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.

[0090] The processor(s) 406 execute software instructions (such as those defining software or a computer program) stored to a computer-readable storage medium (such as the memory 412), such as a non-transitory computer-readable medium including storage (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 the processor(s) 406 to perform the techniques described herein.

[0091] 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 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 one or more processors 406 to perform the techniques described herein.

[0092] In this example, the memory 412 includes an operating system 440, applications 442, a communication module 444, configuration settings 450, data storage 454, and a device location module 436. 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 420C. The configuration settings 450 include device settings that are set for the UE 400 for each of the wireless interfaces 420A-420C and / or the cellular interface 420C.

[0093] The data store 454 may include, for example, a status / error log that includes a list of events specific to the UE 400. Depending on the logging level based on instructions from the NMS 130, the events may include a log of both normal events and error events. The data store 454 may store any data used and / or generated by the UE 400 (such as data used to calculate one or more SLE metrics or identify relevant behavioral data), which is collected by the UE 400 and transmitted directly to the NMS 130 or to any of the APs 142 in the wireless network 106 for further transmission to the NMS 130.

[0094] As described herein, UE 400 may measure and report network data from data store 454 to NMS 130. The network data may include event data, telemetry data, and / or other SLE-related data. The network data may include various parameters indicating the performance and / or status of the wireless network. NMS 130 may determine one or more SLE metrics based on the SLE-related data received from UEs or client devices in the wireless network and store the SLE metrics as network data 137 ( Figure 1A ).

[0095] Optionally, UE device 400 may include an NMS agent 456. NMS agent 456 is a software agent of NMS 130 installed on UE 400. In some examples, NMS agent 456 may be implemented as a software application running on UE 400. NMS agent 456 collects information from UE 400, including detailed client device attributes, including insights into UE 400 roaming behavior. This information provides insight into client roaming algorithms, as roaming is a client device decision. In some examples, NMS agent 456 may display client device attributes on UE 400. NMS agent 456 sends client device attributes to NMS 130 via the AP device to which UE 400 is connected. NMS agent 456 may be integrated into custom applications or as part of a location application. NMS agent 456 may be configured to identify device connection type (e.g., cellular or Wi-Fi) along with the corresponding signal strength. For example, NMS agent 456 identifies access point connections and their corresponding signal strength. The NMS agent 456 can store information specifying the APs identified by the UE 400 and their corresponding signal strengths. The NMS agent 456 or other elements of the UE 400 also collect information about which APs the UE 400 is connected to, which also indicates which APs the UE 400 is not connected to. The UE 400's NMS agent 456 sends this information to the NMS 130 via the AP to which it is connected. In this way, the UE 400 not only sends information about the AP to which the UE 400 is connected, but also about other APs that the UE 400 identifies but is not connected to, and their signal strengths. The AP, in turn, forwards this information to the NMS, including information about other APs identified by the UE 400 besides itself. This additional level of granularity enables the NMS 130, and ultimately the network administrator, to better determine the Wi-Fi experience directly from the perspective of the client device.

[0096] In some examples, the NMS agent 456 further enriches the client device data utilized at the service level. For example, the NMS agent 456 can go beyond basic fingerprinting to provide supplemental details of attributes, such as device type, manufacturer, and different versions of the operating system. Among the detailed client attributes, the NMS 130 can display the radio hardware and firmware information of the UE 400 received from the NMS client agent 456. The more details the NMS agent 456 can extract, the better the VNA / AI engine gets at high-level device classification. The VNA / AI engine of the NMS 130 continuously learns and becomes more accurate in its ability to distinguish between device-specific issues or broad device issues, such as specifically identifying that a specific operating system version is affecting certain clients.

[0097] In some examples, the NMS agent 456 can cause the user interface 410 to display a prompt prompting the end user of the UE 400 to provide location permission before the NMS agent 456 can report the device's location, client information, and network connection data to the NMS. The NMS agent 456 will then begin reporting connection data along with the location data to the NMS. In this way, the end user of the client device can control whether to enable the NMS agent 456 to report client device information to the NMS.

[0098] In some examples, the UE device 400 includes a device location module 436. In examples where the UE device 400 is a fixed UE device that an administrator wants to place on a map to suggest improvements to network coverage and / or diagnose network problems, the UE device 400 can be configured to include the device location module 436. The device location module 436 of the UE device 400 can include Figure 2 The device positioning module 236 or Figure 3 An exemplary or alternative implementation of the device location module 336 is provided.

[0099] Figure 5 is a block diagram illustrating an exemplary network device 500 according to one or more techniques of this disclosure. In one or more examples, the network device 500 implements Figure 1A Devices or servers of the network 134, such as the switch 146, the AAA server 110, the DHCP server 116, the DNS server 122, the network server 128, etc., or supporting Figure 1B another network device, e.g., a router 187, of one or more of the wireless network 106, wired LAN 175, or SD-WAN 177, or data center 179.

[0100] In this example, network device 500 includes a wired interface 502 (e.g., an Ethernet interface), a processor 506, input / output 508 (e.g., a display, buttons, keyboard, keypad, touch screen, mouse, etc.), wireless interfaces 520A and 520B (e.g., a personal area network interface or a local area network interface, etc.), and memory 512, coupled together via bus 514. The various components can exchange data and information via the bus. Wired interface 502 couples network device 500 to a network, such as an enterprise network. Although only one interface is shown by way of example, network nodes can and typically do have multiple communication interfaces and / or multiple communication interface ports. Wired interface 502 includes a receiver 520 and a transmitter 522.

[0101] Memory 512 stores executable software applications 532, an operating system 540, and data / information 530. Data 530 may include system logs and / or error logs that store event data (including behavioral data) for network device 500. In examples where network device 500 comprises a "third-party" network device, the same entity does not own or have access to both the AP or wired client-side device and network device 500. Thus, in examples where network device 500 is a third-party network device, NMS 130 does not receive, collect, or otherwise access network data from network device 500.

[0102] In examples where the network device 500 includes a server, the network device 500 can receive data and information, e.g., including operation-related information (e.g., registration requests, AAA services, DHCP requests, Simple Notification Service (SNS) lookups, and web page requests), via the receiver 520, and send data and information, e.g., including configuration information, authentication information, web page data, etc., via the transmitter 522.

[0103] In examples where network device 500 comprises a wired network device, network device 500 can be connected to one or more APs or other wired client-side devices, such as IoT devices, via wired interface 502. For example, network device 500 can include multiple wired interfaces 502, and / or wired interface 502 can include multiple physical ports for connecting to multiple APs or other wired client-side devices within a site via corresponding Ethernet cables. In some examples, each of the APs or other wired client-side devices connected to network device 500 can access a wired network via wired interface 502 of network device 500. In some examples, one or more of the APs or other wired client-side devices connected to network device 500 can each draw power from network device 500 via corresponding Ethernet cables and Power over Ethernet (PoE) ports of wired interface 502.

[0104] In examples where the network device 500 includes a session-based router that employs a stateful, session-based routing scheme, the network device 500 can be configured to independently perform path selection and traffic engineering. Using session-based routing can enable the network device 500 to avoid using a centralized controller (such as an SDN controller) to perform path selection and traffic engineering, and to avoid the use of tunnels. In some examples, the network device 500 can implement session-based routing as Secure Vector Routing (SVR) provided by Juniper Networks. In examples where the network device 500 includes a session-based router operating as a network gateway for a site of an enterprise network (e.g., Figure 1B In the case of router 187A), the network device 500 can communicate with the network device 500 through the underlying physical WAN (e.g., Figure 1BSD-WAN 177) with one or more other session-based routers operating as network gateways for other sites of the enterprise network (e.g., Figure 1B Router 187B) establishes multiple peer paths (e.g., Figure 1B The network device 500 operating as a session-based router may collect peer path level data and report the peer path data to the NMS 130.

[0105] In examples where the network device 500 includes a packet-based router, the network device 500 may employ a packet-based or flow-based routing scheme to forward packets according to defined network paths established, for example, by a centralized controller that performs path selection and traffic engineering. In examples where the network device 500 includes a packet-based router operating as a network gateway for a site of an enterprise network (e.g., Figure 1B In the case of router 187A), the network device 500 can communicate with the network device 500 through the underlying physical WAN (e.g., Figure 1B SD-WAN 177) with one or more other packet-based routers operating as network gateways for other sites of the enterprise network (e.g., Figure 1B Router 187B) establishes multiple tunnels (for example, Figure 1B The network device 500 operating as a packet-based router may collect data at the tunnel level, and the tunnel data may be obtained by the NMS 130 via an API or open configuration protocol, or the tunnel data may be reported to the NMS 130 by the NMS agent 544 or other modules running on the network device 500.

[0106] The data collected and reported by network device 500 may include periodically reported data and event-driven data. Network device 500 is configured to collect logical path statistics and data extracted from messages and / or counters at the logical path (e.g., peer path or tunnel) level via Bidirectional Forwarding Detection (BFD) probes. In some examples, network device 500 is configured to collect statistics and / or sample other data according to a first periodic interval (e.g., every 3 seconds, every 5 seconds, etc.). Network device 500 may store the collected and sampled data as path data, for example, in a buffer.

[0107] In some examples, network device 500 optionally includes an NMS agent 544. NMS agent 544 may periodically create packets of path data according to a second periodic interval (e.g., every 3 minutes). The collected and sampled data periodically reported in the statistical data packets may be referred to herein as "oc statistics." In some examples, the statistical data packets may also include details about clients connected to network device 500 and associated client sessions. NMS agent 544 may then report the statistical data packets to NMS 130 in the cloud. In other examples, NMS 130 may request, retrieve, or otherwise receive the statistical data packets from network device 500 via an API, open configuration protocol, or another communication protocol. The statistical data packets created by NMS agent 544 or another module of network device 500 may include a header identifying network device 500, as well as statistics and data samples from each of the logical paths of network device 500. In other examples, NMS agent 544 reports event data to NMS 130 in the cloud upon the occurrence of certain events at network device 500. Event-driven data may be referred to herein as "oc events."

[0108] In some examples, the network device 500 includes a device location module 536. The device location module 536 of the network device 500 may include Figure 2 The device positioning module 236 or Figure 3 An exemplary or alternative implementation of the device location module 336 is provided.

[0109] Figure 6 An example of determining the location of a target device based on signal direction information according to one or more techniques of this disclosure is shown. Figure 6 In the example of , the apparatus 600 may include apparatuses 600A to 600E (collectively referred to herein as “apparatus 600 ”). Figure 6 The site 602 and devices 600A to 600E may include Figure 1A The apparatus 600 may include an exemplary or alternative implementation of the UE 148, as well as other apparatuses at the site 602. For example purposes only, Figure 6 Can be compared to Figure 1A Have a discussion.

[0110] exist Figure 6In an example, devices 600A, 600B, and 600C (collectively referred to herein as "reference devices 600A-600C") may have a known location at site 602, and device 600D (referred to herein as "target device 600D") may have an unknown location at site 602. Reference devices 600A-600C and / or target device 600D may determine a distance measurement between devices 600. For example, one or more of reference devices 600A-600C may transmit a signal, such as a 5 GHz Wi-Fi signal, to target device 600D and may determine, for example, the RTT of the signal transmitted to and from target device 600D. Based on the RTT of the signal transmitted to and from target device 600D, reference devices 600A-600C may apply a positioning algorithm, such as a multilateration technique, to determine the location of target device 600D. In some examples, the target device 600D and / or the reference devices 600A- 600C may send distance measurement results (eg, RTT data) to the NMS 130 .

[0111] exist Figure 6 In the example shown in FIG. 1 , target device 600D is represented as two possible locations, indicated by 600D-1 and 600D-2, where the possible locations 600D-1 and 600D-2 are equidistant or nearly equidistant from reference devices 600A through 600C. In other words, target device 600D is shown as being located at either possible location 600D-1 or possible location 600D-2. Reference devices 600A through 600C can determine that the distance to target device 600D applies equally to both the first location (shown as 600D-1) and the second location (shown as 600D-2).

[0112] NMS 130 may determine that device 600D has two possible locations. For example, NMS 130 may obtain directional information for signals transmitted between reference device 600A and target device 600D. NMS 130 may compare the directional information for signals transmitted between reference device 600A and target device 600D (e.g., signals received by reference device 600A from target device 600D in a northeastern direction) with the expected location direction of target device 600D relative to reference device 600A (e.g., southeastern direction), and determine that the directional information for signals transmitted between device 600A and target device 600D is inconsistent with the expected location direction of target device 600D relative to reference device 600A. NMS 130 generates a flag indicating the difference in the direction of location 600D-1 relative to device 600A. Similarly, NMS 130 may obtain directional information for signals transmitted between reference device 600B and target device 600D. NMS 130 may compare the directional information of signals transmitted between reference device 600B and target device 600D (e.g., signals received by reference device 600B from target device 600D in a northeastern direction) with the expected location direction of target device 600D relative to reference device 600B (e.g., southwest), and determine that the directional information of signals transmitted between reference device 600B and target device 600D is inconsistent with the expected location direction of target device 600D relative to reference device 600B. NMS 130 generates a flag indicating the difference in the direction of location 600D-1 relative to device 600B. NMS 130 continues the process of identifying differences in the direction of target device 600D relative to other reference devices. NMS 130 may calculate multiple flags (e.g., three) and compare the number of flags to a threshold. If the threshold is met, NMS 130 may determine that the positioning of device 600 is inaccurate (e.g., device 600D has two possible locations).

[0113] In some examples, NMS 130 may generate a distribution of possible locations of target device 600D based on the distance measurements between devices 600. NMS 130 may determine that the positioning of device 600 is erroneous (e.g., device 600D has two possible locations) based on determining whether the distribution of possible locations of target device 600D forms a multimodal distribution (such as a multimodal distribution having a first local maximum indicating a first location 600D-1 and a second local maximum indicating a second location 600D-2).

[0114] The NMS 130 may determine a candidate position of the target device 600D based on directional information of directional beams transmitted between the reference devices 600A to 600C and the target device 600D. The reference devices 600A to 600C and the target device 600D may transmit a directional beam or a set of directional beams using directional antennas. The reference devices 600A to 600C and the target device 600D may each listen for directional beams from other devices. The reference devices 600A to 600C and the target device 600D may, for example, listen for a beam with the highest signal strength (referred to herein as the loudest or strongest directional beam) from another device and assign an orientation to the other device relative to the direction of the device that transmitted the loudest directional beam. Figure 6 In the example shown in FIG. 1 , NMS 130 may receive directional information indicating that reference device 600A receives the loudest directional beam from target device 600D at a specific angle in the east direction. Similarly, NMS 130 may receive directional information indicating that reference device 600B receives the loudest directional beam from target device 600D at a specific angle in the northeast direction, and / or receive directional information indicating that reference device 600C receives the loudest directional beam from target device 600D at a specific angle in the north direction. In some examples, each of reference devices 600A to 600C may receive multiple loud directional beams from another device, and the multiple loud directional beams may be normalized. Based on the directional information indicating the direction in which reference devices 600A to 600C receive the loudest directional beam from target device 600D, NMS 130 may determine that target device 600D is at the location indicated by 600D-2.

[0115] In some examples, NMS 130 may additionally or alternatively determine the location of target device 600D based on the direction in which target device 600D receives the loudest directional beam from reference devices 600A through 600C. For example, NMS 130 may determine that target device 600D is in the northeast direction indicated by location 600D-2 based on the direction in which target device 600D receives the loudest directional beam from one or more of reference devices 600A through 600C. For example, NMS 130 may receive directional information indicating that target device 600D receives the loudest directional beam from reference device 600A in a west direction at a specific angle. Similarly, NMS 130 may receive directional information indicating that target device 600D receives the loudest directional beam from reference device 600B in a southwest direction at a specific angle, and / or receive directional information indicating that target device 600D receives the loudest directional beam from reference device 600C in a south direction at a specific angle. Based on the direction information indicating the direction in which the target device 600D receives the most acoustic directional beam from the reference devices 600A to 600C, the NMS 130 may determine that the target device 600D is east of the reference device 600A, northeast of the reference device 600B, and north of the reference device 600C.

[0116] In some examples, the NMS 130 may eliminate possible locations based on directional information indicating the direction in which the reference devices 600A to 600C and / or the target device 600D receive the loudest directional beam from other APs. For example, the NMS 130 may eliminate the location 600D-1 as a possible location of the target device 600D based on directional information indicating that the reference devices 600A to 600C and / or the target device 600D receive the loudest directional beam from a direction inconsistent with the location of the location 600D-1.

[0117] In some examples, NMS 130 may obtain information from a device (such as device 600E) that is near the possible location of target device 600D as indicated by 600D-1. Figure 6 In the example of FIG. 6 , the NMS 130 may obtain information indicating whether the device 600E detects a signal from the target device 600D. For example, if the device 600E does not detect a signal from a device located at the location indicated by 600D-1, the NMS 130 may eliminate the location 600D-1 as a possible location of the device 600D, thereby making the location 600D-2 a more likely location of the target device 600D. The NMS 130 may use the determination of the device 600E to confirm that the location 600D-2 is the correct location of the target device 600D and that the determination of the device 600E does not conflict with the direction information of the signals transmitted between the reference devices 600A to 600C and the target device 600D.

[0118] Figure 7 An example of determining the position of a target device and a limited reference device based on signal direction information according to one or more techniques of this disclosure is shown. Figure 7 In the example of FIG, site 702 may include apparatuses 700A, 700B, and 700D (collectively referred to herein as “apparatuses 700 ”). Figure 7 The site 702 and apparatus 700 may include Figure 1A The apparatus 700 may include an exemplary or alternative implementation of the site 102 and the AP 142. Figure 1A For example purposes only, Figure 7 Can be compared to Figure 1A Have a discussion.

[0119] exist Figure 7 In the example of FIG, devices 700A and 700B (collectively referred to herein as “reference devices 700A-700B”) may have known locations at site 702, and device 700D (referred to herein as “target device 700D”) may have an unknown location at site 702. NMS 130 may determine the location of target device 700D at site 702. Figure 7 In the example of FIG. 7 , reference devices 700A and 700B may be the only reference devices that can be used to determine the location of target device 700D. One or more of reference devices 700A and 700B may transmit a signal, such as a 5 GHz Wi-Fi signal, to target device 700D and may determine, for example, the RTT of the signal transmitted to and from target device 700D. Based on the RTT of the signal transmitted to and from target device 700D, reference devices 700A and 700B may apply a positioning algorithm, such as a multilateration technique, to determine the location of target device 700D. In these examples, if target device 700D is an isolated device (where fewer than three distance measurements are present (e.g., a first distance measurement between reference device 700A and target device 700D and a second distance measurement between reference device 700B and target device 700D) to determine the location of target device 700D), then determination of the location of target device 700D may result in two possible locations, as indicated by 700D-1 and 700D-2, where possible locations 700D-1 and 700D-2 are equidistant or nearly equidistant from reference devices 700A-700B. In other words, the distance that reference devices 700A-700B can determine to target device 700D based on a limited number of distance measurements may be equally applicable to the first possible location (as indicated by 700D-1) and the second possible location (as indicated by 700D-2).

[0120] NMS 130 may determine that target device 700D is an isolated device based on the presence of fewer than three distance measurements (e.g., a first distance measurement between reference device 700A and target device 700D and a second distance measurement between reference device 700B and target device 700D). In response to determining that target device 700D is an isolated device, NMS 130 may determine a candidate location for target device 700D based on directional information transmitted between reference devices 700A and 700B and target device 700D. For example, NMS 130 may obtain directional information indicating that reference device 700A is receiving a directional beam from target device 700D in a southeast direction at a specific angle relative to reference device 700A. Similarly, NMS 130 may obtain directional information indicating that reference device 700B is receiving a directional beam from target device 700D in a south direction at a specific angle relative to reference device 700B. Additionally or alternatively, the NMS 130 may obtain direction information indicating that the target device 700D receives a directional beam from the reference device 700A in a northwest direction at a specific angle relative to the target device 700D. Similarly, the NMS 130 may obtain direction information indicating that the target device 700D receives a directional beam from the reference device 700B in a north direction at a specific angle relative to the target device 700D.

[0121] The NMS 130 may determine whether the directional information of the signals transmitted between the reference devices 700A-700B and the target device 700D deviates from the direction in which the reference devices 700A-700B expect to receive signals from the target device 700D. For example, if the reference device 700A expects to receive a directional beam from the target device 700D at a specific angle in the northwest direction (e.g., as shown at position 700D-1), but the NMS 130 determines that the directional information of the signals transmitted between the reference device 700A and the target device 700D indicates that the reference device 700A receives a directional beam from the target device 700D at a specific angle in the southeast direction, the NMS 130 may exclude position 700D-1 as a candidate position of the target device 700D (e.g., by applying an error bias). Similarly, if the reference device 700B expects to receive a directional beam from the target device 700D at a specific angle in the northwest direction (e.g., as shown at position 700D-1), but the NMS 130 determines that the direction information of the signal transmitted between the reference device 700B and the target device 700D indicates that the reference device 700B receives a directional beam from the target device 700D at a specific angle in the southeast direction, the NMS 130 may exclude position 700D-1 as a candidate position of the target device 700D (e.g., by applying an error bias).

[0122] Figure 8An example of determining the position of a device relative to a single reference device based on signal direction information according to one or more techniques of this disclosure is shown. Figure 8 In the example of FIG, site 802 may include devices 800A to 800D (collectively referred to herein as “devices 800 ”). Figure 8 The site 802 and devices 800A to 800D may include Figure 1A For example purposes only, Figure 8 Can be compared to Figure 1A Have a discussion.

[0123] exist Figure 8 In an example, device 800A (referred to herein as "reference device 800") may have a known location at site 802, and device 800D (referred to herein as "target device 800D") may have an unknown location at site 802. In this example, reference device 800A may be the only reference device that can determine a distance measurement relative to target device 800D based on, for example, the FTM protocol (e.g., because target device 800D is within communication range of reference device 800A). For example, devices 800B and 800C may be unable to transmit 5 GHz Wi-Fi signals to target device 800D and, therefore, may be unable to determine the distance between device 800B and target device 800D or the distance between device 800C and target device 800D according to the FTM protocol, whereas reference device 800A may be able to transmit 5 GHz Wi-Fi signals to target device 800D and may be able to determine an estimated or expected location of target device 800D according to the FTM protocol. The target device 800D may be referred to herein as an isolated device because there is only a single reference device 800A that can perform distance measurements of the target device 800D.

[0124] In this example, the NMS 130 may determine the location of the target device 800D based on the direction information of the signals transmitted between the devices 800A to 800C and the target device 800D. For example, the NMS 130 may further refine the location of the target device 800D based on the direction information of the signals transmitted between the device 800B and the target device 800D and / or between the device 800C and the target device 800D. As described above, the signals transmitted between the devices 800A to 800C and the target device 800D may include BLE signals or other signals transmitted at a lower frequency (e.g., a WI-FI signal transmitted at 2.4 GHz) and may reach a greater distance. Figure 8In the example of FIG. 8 , the NMS 130 may obtain direction information of signals transmitted between the devices 800A to 800C and the target device 800D. The NMS 130 may refine the estimated position of the target device 800D into a position window 888 based on the direction information of the signals.

[0125] NMS 130 may narrow down the two or more possible locations of target device 800D determined based on the distance measurement between reference device 800A and target device 800D to candidate locations, represented as location window 888. NMS 130 may determine location window 888 by narrowing down probability bands specifying two or more possible locations of target device 800D (e.g., probability bands around target device 800D determined based on the distance measurement between reference device 800A and target device 800D and based on directional information of signals transmitted between reference device 800A and target device 800D, as shown by probability band 886). Location window 888 may be a simplified version of probability bands 886 specifying possible locations of target device 800D based on directional information between target device 800D and devices 800A through 800C. In some instances, NMS 130 may determine location window 888 as a candidate location based on directional information of signals transmitted between reference device 800A and target device 800D. In some examples, NMS 130 may add weights to the directional information of signals transmitted between devices 800A to 800C and target device 800D. NMS 130 may determine candidate locations as location window 888 based on the weights added to the directional information. For example, NMS 130 may determine location window 888 as a range of possible locations based on the intersection of directional beams received by target device 800D from devices 800A to 800C.

[0126] Figure 9 is a flowchart illustrating exemplary operations for locating a device at a site according to one or more techniques of this disclosure. For purposes of example only, Figure 9 Can be compared to Figure 1A Have a discussion.

[0127] The NMS 130 may obtain a distance measurement between at least two devices at a site, wherein the at least two devices include at least one reference device located at a known location at the site and a target device located at an unknown location at the site relative to the at least one reference device (902). For example, the at least one reference device may transmit a signal (e.g., a 5 GHz signal) to the target device to determine a distance measurement between the target device and the at least one reference device according to an FTM protocol. In this example, the NMS 130 may obtain the distance measurement from the at least one reference device.

[0128] NMS 130 may obtain direction information specifying a direction of one or more signals transmitted between at least one reference device and the target device (904). For example, NMS 130 may obtain direction information from at least one reference device specifying a direction in which an antenna of the at least one reference device receives the loudest BLE signal from the target device. Alternatively or additionally, NMS 130 may obtain direction information from the target device specifying a direction in which an antenna of the target device receives the loudest BLE signal from the at least one reference device.

[0129] The NMS 130 may determine two or more possible locations of the target device relative to the at least one reference device based on the distance measurement and the direction information (906). The NMS 130 may check for differences between the expected location direction of the target device relative to the at least one reference device and the direction information of the signal transmitted between the at least one reference device and the target device, and may flag any differences. In response to the NMS 130 determining that the number of flagged differences meets a threshold (e.g., a predetermined number of flags), the NMS 130 may trigger a correction process to resolve positioning errors (e.g., flip ambiguity) associated with the expected direction. In some examples, the NMS 130 may alternatively or additionally trigger the correction process by determining that a probability distribution of possible locations of the target device based on the distance measurement is multimodal, such that a local maximum of the probability distribution represents two or more possible locations. The NMS 130 may initiate the correction process by creating a multimodal distribution of possible locations and applying an error bias to the possible locations based on the direction information.

[0130] The NMS 130 may determine a candidate location from two or more possible locations of the target device relative to the at least one reference device based on the direction information (908). For example, the NMS 130 may determine the candidate location of the target device by selecting a local maximum from a multimodal distribution with a minimum amount of error bias. In some instances, the NMS 130 may cluster the possible locations (e.g., local maxima from the multimodal distribution) by grouping possible locations that are similar or adjacent to each other. The NMS 130 may eliminate possible locations (e.g., local maxima from the multimodal distribution or local maxima from a cluster) based on the error bias until one or more possible locations with the minimum amount of error bias remain. The NMS 130 may determine the one or more candidate locations as the one or more remaining possible locations. The NMS 130 may redirect the target device based on the one or more candidate locations. In instances where the NMS 130 determines multiple candidate locations, the NMS 130 may determine whether there is a difference between the direction information and the direction of the target device relative to the at least one reference device based on the expected direction of each of the candidate locations. The NMS 130 may place a user interface element indicating the location of the target device on the site map based on the candidate location with the least number of label differences.

[0131] The techniques described herein may be implemented in hardware, software, firmware, or any combination thereof. The various features described as modules, units, or components may be implemented together in an integrated logic device, or individually as discrete but interoperable logic devices or other hardware devices. In some cases, the various features of the electronic circuit system may be implemented as one or more integrated circuit devices, such as an integrated circuit chip or chipset.

[0132] If implemented in hardware, the present disclosure may relate to a device such as a processor or an integrated circuit device such as an integrated circuit chip or chipset. Alternatively or additionally, if implemented in software or firmware, the techniques may be implemented at least in part via a computer-readable data storage medium that includes instructions that, when executed, cause a processor to perform one or more of the methods described above. For example, the computer-readable data storage medium may store such instructions for execution by a processor.

[0133] The computer-readable medium may form part of a computer program product, which may include packaging materials. The computer-readable medium may include computer data storage media, such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read-only memory (EEPROM), flash memory, magnetic or optical data storage media, etc. In some examples, an article of manufacture may include one or more computer-readable storage media.

[0134] In some examples, computer-readable storage media may include non-transitory media. The term "non-transitory" may indicate that the storage medium is not incorporated into a carrier wave or propagating signal. In some examples, non-transitory storage media may store data that changes over time (e.g., in RAM or cache).

[0135] The code or instructions may be software and / or firmware executed by a processing circuit system including one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other equivalent integrated or discrete logic circuit systems. Thus, the term "processor" as used herein may refer to any of the aforementioned structures or any other structure suitable for implementing the techniques described herein. Additionally, in some aspects, the functionality described in this disclosure may be provided within software modules or hardware modules.

Claims

1. A network management system comprising: Memory; as well as one or more processors in communication with the memory and configured to: obtaining a distance measurement between at least two devices at a site, wherein the at least two devices include at least one reference device positioned at a known location at the site and a target device positioned at an unknown location at the site relative to the at least one reference device; obtaining direction information specifying a direction of one or more signals transmitted between the at least one reference device and the target device; determining two or more possible positions of the target device relative to the at least one reference device based on the distance measurement and the direction information; and A candidate position is determined from the two or more possible positions of the target device relative to the at least one reference device based on the direction information.

2. The network management system according to claim 1, wherein: To determine the candidate position from the two or more possible positions of the target device relative to the at least one reference device, the one or more processors are configured to: determining a multimodal distribution of the two or more possible locations of the target device; applying a bias to at least one of the two or more possible positions based on the directional information; as well as The candidate position is determined based on applying the bias to at least one of the two or more possible positions based on the direction information.

3. The network management system according to claim 1, wherein: To determine the candidate position from the two or more possible positions of the target device relative to the at least one reference device, the one or more processors are configured to: A probability window is determined as the candidate position based on the direction information.

4. The network management system according to any one of claims 1 to 3, wherein: To determine the two or more possible positions of the target device relative to the at least one reference device, the one or more processors are configured to: determining a difference between a first direction indicating a location direction of the target device and a second direction indicating a direction of a signal of the one or more signals transmitted between the at least one reference device and the target device, wherein the first direction is determined based on the distance measurement; and One or more markers are generated based on the differences.

5. The network management system according to claim 4, wherein: The one or more processors are further configured to: determining a quantity of the one or more markers; comparing the quantity of the one or more markers to a threshold; and The candidate position is determined based on determining that the number of the markers satisfies the threshold.

6. The network management system according to any one of claims 1 to 3, wherein: To determine the candidate location, the one or more processors are further configured to: The possible location is eliminated from the two or more possible locations based on determining whether a device proximate to the target device detects a signal from the target device from the possible location.

7. The network management system according to any one of claims 1 to 3, wherein: The one or more processors are further configured to place a user interface element indicating a location of the target device on a site map of the site based on the candidate location.

8. A network management method, comprising: obtaining, by one or more processors, a distance measurement between at least two devices at a site, wherein the at least two devices include at least one reference device positioned at a known location at the site and a target device positioned at an unknown location at the site relative to the at least one reference device; obtaining, by the one or more processors, direction information specifying a direction of one or more signals transmitted between the at least one reference device and the target device; determining two or more possible positions of the target device relative to the at least one reference device based on the distance measurement and the direction information; and A candidate position is determined from the two or more possible positions of the target device relative to the at least one reference device based on the direction information.

9. The network management method according to claim 8, wherein: Determining the candidate position from the two or more possible positions of the target device relative to the at least one reference device includes: determining a multimodal distribution of the two or more possible locations of the target device; applying a bias to at least one of the two or more possible positions based on the direction information; and The candidate position is determined based on applying the bias to at least one of the two or more possible positions based on the direction information.

10. The network management method according to claim 8, wherein: Determining the candidate position from the two or more possible positions of the target device relative to the at least one reference device includes: A probability window is determined as the candidate position based on the direction information.

11. The network management method according to any one of claims 8 to 10, wherein: Determining the two or more possible positions of the target device relative to the at least one reference device includes: determining a difference between a first direction indicating a location direction of the target device and a second direction indicating a direction of a signal of the one or more signals transmitted between the at least one reference device and the target device, wherein the first direction is determined based on the distance measurement; and One or more markers are generated based on the differences.

12. The network management method according to claim 11, further comprising: determining a quantity of the one or more markers; comparing the quantity of the one or more markers to a threshold value; as well as The candidate position is determined based on determining that the number of the markers satisfies the threshold.

13. The network management method according to any one of claims 8 to 10, wherein: Determining the candidate location includes: The possible location is eliminated from the two or more possible locations based on determining whether a device proximate to the target device detects a signal from the target device from the possible location.

14. The network management method according to any one of claims 8 to 10, further comprising: A user interface element indicating a location of the target device is placed on a site map of the site based on the candidate location.

15. A computer-readable medium encoded with instructions for causing one or more programmable processors to be configured as the network management system according to any one of claims 1 to 7, or to be configured to execute the network management method according to any one of claims 8 to 14.

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