System and method for wireless roaming
By evaluating and adjusting the quality score of wireless access points, intelligent roaming decisions are realized, and the risks and returns of wireless roaming decisions in the prior art are solved, and the performance and user experience of wireless devices are improved.
Patent Information
- Application Number
- CN202380043626.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-02
- Filing Date
- 2023-05-25
- Publication Date
- 2024-12-27
AI Technical Summary
The existing wireless roaming methods are mainly based on static physical attribute decisions, and fail to effectively consider the risks and returns of roaming, resulting in unnecessary access point transformation or selection of suboptimal access points, affecting the performance and user experience of wireless devices.
By evaluating the quality scores of the current access point and candidate access point, adjust the score based on roaming reasons, select the target access point with the highest quality score, and realize intelligent roaming decisions. This method monitors and updates access point data to optimize wireless connections by taking into account factors such as signal strength, signal-to-noise ratio, historical performance and recommendations of network policy modules.
Improves the reliability and performance of the wireless experience, reduces data drop and delay, avoids unnecessary access point transitions, optimizes connectivity for streaming and other real-time applications, and improves user experience.
Smart Images

Figure CN119213810A_ABST
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority and the benefit of the filing date of U.S. Patent Application No. 17 / 830,537, filed on June 2, 2022, the entire disclosure of which is expressly incorporated herein by reference. This application is related to U.S. Patent Application No. 17 / 830,559, filed on June 2, 2022, and entitled “Predictive Data Rates for Wireless Roaming and Selection,” the entire disclosure of which is expressly incorporated herein by reference. Background Art
[0002] Wireless roaming may occur when a device configured for wireless communication transitions from one access point to another, for example, in search of better performance. Wireless roaming is common in home, public, and enterprise networks, where multiple access points that provide connectivity for network services are used to increase the coverage area of the network. Failure to make appropriate roaming decisions may result in a wireless device making unnecessary transitions between access points, or selecting a suboptimal access point that may not support the service utilized by the device. This may degrade the performance of the wireless device, for example due to data packet loss or failure to buffer streaming content.
[0003] Many existing roaming methods are static, measurement-only methods that make roaming decisions by comparing certain physical attributes of connection options. Physical attributes typically include signal strength, signal-to-noise ratio (SNR), wireless channel, frequency band, or some combination of all of them. The decision to roam is often made simply by deciding whether the signal strength (or other attribute) of a candidate connection at a given point in time is higher than some threshold of an existing connection. Summary of the invention
[0004] Various aspects of the present disclosure provide technical solutions to technical problems involved in wireless roaming. The methods disclosed herein enable wireless computing devices (sometimes referred to herein as "stations") to make intelligent roaming decisions based on possible disadvantages (sometimes referred to as the "risks" of roaming), resources required to achieve roaming (sometimes referred to as the "costs" of roaming), and possible benefits of roaming (sometimes referred to herein as the "rewards" of roaming). This technical solution can help maximize the likelihood of a reliable, high-performance wireless experience. In this way, the systems and methods described herein can avoid dropped data packets, maintain adequate buffering for streaming apps, and avoid latency and other issues that may adversely affect the operation of a user's wireless device.
[0005] According to one aspect, a method for determining roaming is provided. The method includes: when a computing device is wirelessly connected to a current access point, determining by one or more processors of the computing device whether to consider roaming, the computing device is within the wireless coverage of multiple access points, the multiple access points including the current access point and at least one candidate access point different from the current access point; after the one or more processors determine to consider roaming, generating by the one or more processors a roaming reason; determining by the one or more processors a quality score of at least one access point in the multiple access points based at least in part on the roaming reason; after the determination, selecting by the one or more processors a target access point with a highest quality score from the multiple access points; and when the target access point is not the current access point, determining by the one or more processors to roam from the current access point to the target access point.
[0006] In one example, the method further includes: when the target access point is not the current access point, roaming, by the transceiver of the computing device, from the current access point to the target access point. The quality score of each corresponding access point may indicate a physical layer connection quality of the corresponding access point.
[0007] In one scenario, determining a quality score may include: calculating a quality score for each of a plurality of access points; and adjusting a quality score of at least one of the plurality of access points based at least in part on a roaming reason. Calculating the quality score may be based on at least one physical attribute of a corresponding access point in the plurality of access points. The at least one physical attribute may include one or more of signal strength, signal strength speed, signal-to-noise ratio, or frequency band. Adjusting the quality score of at least one of the plurality of access points may be based at least in part on one or more of: historical performance of a corresponding access point in the plurality of access points based on one or more previously connected access points within a selected time frame; a roaming suggestion or disconnect indication provided by a current access point; or power consumption for changing a network or subnet.
[0008] In one scenario, determining whether to consider roaming may include evaluating one or more of: the connection quality of the current access point reported by a network protocol stack or a network policy module of the computing device; system requirements of the computing device; applications currently running on the computing device; the current operating environment of the computing device; or a quality score of the current access point.
[0009] In one example, the method further includes: recording, monitoring and updating data associated with each access point for approximating the connection quality of the access point. The data associated with each access point may be related to one or more of the following: open system interconnection (OSI) layer 1, OSI layer 2, OSI layer 3, or a wireless local area network (WLAN) management module. The data associated with OSI layer 1 may include one or more of the following: exponentially weighted moving average signal strength, signal strength speed, exponentially weighted moving average signal-to-noise ratio, channel or channel bandwidth. The data associated with OSI layer 2 may include one or more of the following: exponentially weighted moving average physical layer rate, radio resource management report, or transition management indication. The data associated with OSI layer 3 may include one or more of the following: current Internet reachability, historical Internet reachability, or gateway reachability. The data associated with the WLAN management module may include historical data indicating one or more of the following: connection time, connection duration, disconnection reason, disconnection signal strength, or average transmission physical layer rate.
[0010] In one scenario, roaming reasons may include one or more of the following: a) Internet unreachable; b) no route to gateway; c) failure to receive address; d) failure to meet rate requirements; e) impending disconnection; f) connection signal strength below threshold; g) insufficient signal; or h) suboptimal connection that does not meet one or more criteria.
[0011] According to another aspect, a system is provided. The system includes: a transceiver configured to establish a wireless connection with a first access point of a plurality of access points, the transceiver being within a wireless coverage range of each of the plurality of access points; and one or more processors operatively coupled to the transceiver. The one or more processors may be configured to: determine whether to consider roaming; generate a roaming reason after determining to consider roaming; determine a quality score of at least one access point of the plurality of access points based at least in part on the roaming reason; after determining, select a target access point having a highest quality score from the plurality of access points; and when the target access point is not the first access point, determine to roam from the first access point to the target access point.
[0012] In one example, the one or more processors may be further configured to instruct the transceiver to roam from the first access point to the target access point when the target access point is not the first access point.
[0013] The one or more processors may be configured to determine a quality score by: calculating a quality score for each of a plurality of access points; and adjusting the quality score of at least one of the plurality of access points based at least in part on a roaming reason. The one or more processors may be configured to calculate a quality score for each of the plurality of access points based on at least one physical attribute of a corresponding access point of the plurality of access points. The at least one physical attribute may include one or more of signal strength, signal strength speed, signal-to-noise ratio, or frequency band. The one or more processors may be configured to adjust the quality score of at least one of the plurality of access points based at least in part on one or more of: historical performance of a corresponding access point of the plurality of access points based on one or more previously connected access points within a selected time frame; a roaming suggestion or disconnect indication provided by a first access point; or power consumption for changing a network or subnet.
[0014] The one or more processors may be configured to determine whether to consider roaming by evaluating one or more of: a connection quality of a first access point reported by a network protocol stack or a network policy module of the system; system requirements of the system; applications currently running on the system; a current operating environment of the system; or a quality score of the first access point.
[0015] A further aspect provides a non-transitory computer-readable medium including computer-readable instructions. The instructions, when executed by a processor, cause the processor to: determine whether to consider roaming when a computing device is wirelessly connected to a current access point, the computing device being within wireless coverage of a plurality of access points, the plurality of access points including the current access point and at least one candidate access point different from the current access point; generate a roaming reason after the processor determines to consider roaming; determine a quality score of at least one access point in the plurality of access points based at least in part on the roaming reason; select a target access point having a highest quality score from the plurality of access points; and determine to roam from the current access point to the target access point when the target access point is not the current access point. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] Figure 1 An example access point environment supporting wireless roaming according to various aspects of the present disclosure is illustrated.
[0017] Figure 2A A functional diagram illustrating an example station including a system for determining roaming according to aspects of the present disclosure.
[0018] Figure 2B Another functional diagram illustrating an example station including a system for determining roaming according to aspects of the present disclosure.
[0019] Figure 3A signal strength / speed score table is illustrated according to aspects of the present disclosure.
[0020] Figure 4 A signal-to-noise ratio score table is illustrated according to aspects of the present disclosure.
[0021] Figure 5 A frequency band reward / penalty table according to aspects of the present disclosure is illustrated.
[0022] Figure 6 A score adjustment table for selection according to aspects of the present disclosure is illustrated.
[0023] Figure 7 Illustrate a flow chart illustrating an exemplary method for deciding to roam according to aspects of the present disclosure.
[0024] Figure 8 Illustrate a flow chart illustrating another exemplary method for deciding to roam according to aspects of the present disclosure.
[0025] Fig. 9 A state-based roaming method according to aspects of the present disclosure is illustrated. DETAILED DESCRIPTION
[0026] Existing methods may have technical problems that lead to poor roaming decisions. For example, some wireless devices may greedily seek better performance and roam too aggressively, which can lead to frequent interruptions to connectivity. In another example, some wireless devices may default to delaying roaming decisions, causing them to maintain insufficient connections for longer periods of time when there are better alternatives available. Some methods used to make decisions have the following technical problems. For example, they may not consider problems associated with roaming, such as potential interruptions of the user's pending tasks due to roaming. Further, they may not consider or anticipate the benefits of roaming, such as potential improvements in the overall user experience due to roaming. In addition, they may not adapt the decision logic based on previous experience, resulting in repeated poor decisions. All of these may adversely affect the performance of wireless devices. For example, in a client computing device streaming an app, game, movie, or other content, a connectivity interruption may cause data buffering problems or interruptions to real-time interactions such as during a video conference.
[0027] Technical solutions are directed to implementing intelligent roaming decisions for wireless devices based on issues such as potential disruption to a user's experience of using a network connection and benefits such as potential improvements to the user experience and enhanced device functionality. The technical solution may include both selecting an initial access point (e.g., when the wireless device boots up) and deciding whether to transition (roam) to a different access point after selecting the initial access point. One embodiment involves making automatic roaming decisions by a computing device, which includes evaluating a current connection (if any), evaluating candidate connections, and then making an assessment based on certain criteria. The system may determine a quality score for each connection and automatically decide to roam to the connection with the highest quality score.
[0028] When evaluating the current connection, the system can take into account various aspects such as signal strength, system requirements, user needs, and historical connection performance. User needs can be determined based on the application currently running on the computing device. For example, the computing device may have one or more of the following in progress: an ongoing podcast download or media streaming, an ongoing large file transfer, or an ongoing cloud game. User needs can affect the quality score of the connection. For example, podcast downloads, media streaming, and large file transfers may attach importance to the stability of the connection, resulting in the quality score being severely affected by the stability of the connection. On the other hand, cloud games may attach importance to the latency of the connection, resulting in the quality score being severely affected by the latency of the connection.
[0029] Similar information may be considered when evaluating candidate connections, to the extent it is available for different connections. Here, for some candidates, there may be little historical connection performance information available, as these candidates may not have been used by the wireless device within a certain time frame (e.g., within the past 12 hours, past 7 days, or other historical time frame), which in turn may cause their quality scores to decrease. Based on these evaluations, the system assesses the pros and cons of changing from the current connection to a different connection. For example, roaming to a connection that has performed well in the past may have fewer downsides or be less likely to cause disruption to the user, whereas roaming when the app involves latency-dependent tasks (e.g., streaming a movie or other content) is more likely to cause disruption (and therefore has a higher "risk").
[0030] The technical solution disclosed herein can be beneficial to any project, station or device that implements Wi-Fi roaming. For stationed stations, the technical solution disclosed herein can result in a reduction in disconnections caused by forced disassociation of access points. By considering Internet accessibility in roaming decisions, stationed stations can spend less time in unreachable states. Further, the technical solution can result in a reduction in roaming scans because the selected access points better meet system requirements. Further, the technical solution can result in improvements in non-signal strength measurements (e.g., Internet accessibility, peak PHY rate) and reduced occurrences of unmet system requirements. Additionally, the technical solution can result in a decrease in average signal strength because roaming can result in the selection of access points with good overall performance rather than access points with strong signals. For mobile stations, as with stationed stations, the technical solution can result in a reduction in the number of disconnections forced by access points, a reduction in the time spent in unreachable states, a reduction in roaming scans, and improvements in non-signal strength related metrics. For mobile stations, the technical solution can result in an increase in average signal strength because the technical solution can select better access points faster and leave poorer access points. The present technology will now be described with respect to the following exemplary systems and methods.
[0031] Note that in the following discussion, the term "station" or "STA" is used to refer to a computing device (also referred to as a "wireless device") that can connect to a wireless network. The device can be mobile or stationary. The term "station" or "STA" corresponds to a client device, such as a user's mobile phone, their tablet, netbook or other laptop PC, a wearable device (e.g., a smart watch or head-mounted display), etc. The term "access point" or "AP" is used to refer to a device through which a station can connect to a basic service set ("BSS") within a wireless network. The term "current access point" is used to refer to the access point to which the station is currently connected. The term "candidate access point" is used to refer to an available access point that the station can join. Candidate access points may include the current access point. The term "basic service set" or "BSS" is used to refer to a subset of a network that includes an access point and its associated stations. The term "extended service set" or "ESS" is used to refer to one or more BSSs that form a larger single network. The term "local roaming" describes the situation where a station moves from one BSS to another within an ESS. In the following discussion, unless otherwise specified, roaming refers to local roaming. The term "current BSS" is used to refer to the BSS to which a station currently belongs. The term "candidate BSS" is used to refer to available BSSs that a station can join. Candidate BSSs may include the current BSS. The term "non-candidate BSS" is used to refer to a BSS that is not a current or candidate. The term "exponentially weighted moving average" or "EWMA" is used to refer to a technique for averaging time series data in which older data is given an exponentially lower weight. This technique can be used to smooth volatility in time series data, especially when the measurements themselves have uncertainty. 1. Overview
[0032] Figure 1 An example access point environment 100 supporting roaming according to aspects of the present disclosure is illustrated. The access point environment 100 may include multiple access points 102a, 102b, and 102c, each with its own corresponding BSS 104a, 104b, or 104c. Each BSS may provide network coverage, such as Internet coverage, to one or more stations located within a corresponding geographic coverage area. For example, a first access point 102a or a first BSS 104a may provide network coverage to stations 110a, 110b, and 110c. A second access point 102b or a second BSS 104b may provide network coverage to stations 110a, 110d, and 110e. A third access point 102c or a third BSS 104c may provide network coverage to stations 110a, 110f, and 110g. A station may be covered by more than one access point or BSS. As Figure 1As shown, station 110a can communicate with any of the first BSS 104a, the second BSS 104b, and the third BSS 104c. In one example, station 110a can be currently connected to access point 102a or BSS 104a, while residing in a location reachable by other access points 102b and 102c or other BSSs 104b and 104c. These other access points 102b and 102c can be considered as candidate access points. These other BSSs 104b and 104c can be considered as candidate BSSs. In other examples, different arrangements are possible.
[0033] refer to Figure 2A and Figure 2B 200a and 200b, the station 110a may include one or more processors 202, a transceiver 204, and a memory 206. The station 110a may include a BSS assessment system 214. The system 214 may be implemented or controlled by the one or more processors 202. The system 214 may assess the station's connection to any BSS and make informed roaming decisions. The modules and instructions within the system 214 may be executable by the one or more processors 202.
[0034] In such Figure 2A In the illustrated example 200a, the system 214 can be part of a wireless local area network (WLAN) implementation 208. The WLAN implementation 208 can include a WLAN management module 210 and a WLAN specification and driver implementation 212. The WLAN management module 210 can handle logic and decision making related to WLAN functionality. The WLAN management module 210 can maintain a system-level application programming interface (API) for WLAN connectivity, thereby ensuring secure, non-contention actions such as connection selection, scanning, and data persistence, etc. In one configuration, the system 214 can be implemented as part of the WLAN management module 210. In an embodiment, the system 214 can be implemented as part of the WLAN management module 210. Figure 2B In the illustrated example 200 b , the system 214 may be implemented without the WLAN management module 210 .
[0035] The system 214 can collect and record data about the current access point 102a or current BSS 104a, and candidate access points 102b and 102c or candidate BSSs 104b and 104c, and use this data to approximate the connection quality of each access point or each BSS. The system 214 can continuously monitor and update this data. The system 214 can determine the adequacy of the current access point or current BSS by evaluating how well the current connection meets the system requirements, compare the current access point with the candidate access points or compare the current BSS with the candidate BSSs 104b and 104c, select a target BSS for roaming based on the comparison, and ultimately make a decision to roam if the rewards and necessity of roaming outweigh the risks.
[0036] The transceiver 204 may be configured to establish a connection with any selected access point or any selected BSS. Initially, the transceiver 204 may establish a connection with a first access point to join a first BSS (such as BSS 104a). Once the system 214 makes any roaming decisions, it may instruct the transceiver 204 to perform roaming. When the system 214 determines to roam to a second access point 102b or a second BSS (such as BSS 104b), the transceiver 204 may roam from the first access point to the second access point to join the second BSS. These operations may be performed according to a state-based roaming method, as discussed further below. 2. Record connection quality data
[0037] The system 214 may include a storage network manager 220 for storing data associated with each network stored on the station 110a. As shown, the storage network manager 220 may reside in the memory 206. The network data stored in the storage network manager 220 may include data about candidate access points or candidate BSSs within the network and the current access point or current BSS. The system 214 may rely on the data to evaluate how well or poorly the current access point or current BSS 104a meets the system requirements, and how well or poorly each candidate access point or candidate BSS may meet the system requirements.
[0038] The data for each access point or BSS may be recorded in a data structure 222, such as a connection quality data structure. The values stored in the data structure 222 may change as access to new information is gained, such as signal strength or other information obtained by the transceiver 204. The data structure may be flexible. The data structure may be read and modified from time to time. The data structure 222 for each access point or BSS may include one or more of the following: data 224 associated with layer 1 of the Open Systems Interconnection (OSI), data 226 associated with OSI layer 2, data 228 associated with OSI layer 3, and data 230 associated with the WLAN management module. Figure 2A In the illustrated example 200a, the data structure 222 may include one or more of OSI layer 1 data 224, OSI layer 2 data 226, OSI layer 3 data 228, and WLAN management module data 230. Figure 2B In the example 206b shown, the data structure 222 may include one or more of OSI layer 1 data 224, OSI layer 2 data 226, and OSI layer 3 data 228. The following list describes example data that may be included in the data structure 222 for each access point or BSS. This list may not be exhaustive. All the contents in the list may not necessarily need to be stored for each access point or BSS, or may not need to be stored at all. Some of the data may only be useful for a short time after they are acquired, such as Internet reachability, which may be useful within a maximum time period (such as 1-120 seconds, or more or less). In an example, some temporary data (such as signal strength) that is useful for a very short time (e.g., less than 2-5 seconds) may not need to be stored at all. 2.1 Layer 1 Data
[0039] The OSI layer 1 data 224 may include physical layer data, such as radio frequency (RF) data, including but not limited to EWMA signal strength, signal strength velocity, EWMA SNR, channel, and channel bandwidth. In particular, the EWMA signal strength may refer to an exponentially weighted moving average or smoothed signal strength value from a received signal strength indicator (RSSI) or a received channel power indicator (RCPI), measured in decibel milliwatts (dBm). The signal strength velocity may refer to the rate at which the EWMA signal strength changes over time, measured in dBm / s. The EWMA SNR may refer to an exponentially weighted moving average or smoothed signal-to-noise ratio, measured in dBm. A channel may refer to a channel on which an access point or BSS operates, which may also be used to determine a frequency band. A channel bandwidth may refer to the width of a channel being used, measured in megahertz (MHz). dBm is a logarithmic unit that is taken into account when calculating a moving average between multiple measurements. To calculate the arithmetic mean of dBm, the dBm can be converted to mW to calculate the linear average and then the mW can be converted back to dBm. The logarithmic scale can be considered when selecting values such as range, variance and threshold for signal strength, SNR and speed. 2.2 Layer 2 Data
[0040] OSI layer 2 data 226 may include link layer data, including but not limited to EWMA physical layer (PHY) rates, radio resource management (RRM) reports, and BSS transition management (BTM) indications. EWMA PHY rates may refer to exponentially weighted moving averages or smoothed transmit physical layer (TX PHY) rates and receive physical layer (RX PHY) rates from access points determined by firmware, measured in megabits per second (Mbps). RRM reports may refer to reports that provide information about the RF environment, including radio measurement reports, link measurement reports, and neighbor reports. BTM indications may include roaming recommendations or disconnection indications from access points. In one example, the BTM indications may indicate which BSSs the access point has recommended.
[0041] The PHY rate can vary significantly. When a station is idle and has no data to transmit, the rate can drop to very low. In one example, to get an accurate idea of the rate that can be achieved, the idle rate can be filtered out so that the rate is only considered when data is actually flowing. EWMA can then be used to smooth the remaining values. The EWMA value can be used to calculate the connection average.
[0042] In some scenarios, measurements may not be obtained at perfect intervals. For example, in the case of PHY rates, some of the periodic measurements may be dropped because the station is idle. Therefore, the system 214 can weight older data even if it is the most recent available data. The system 214 can use time in the EWMA weights, rather than the number of measurements. The amount of weight a new measurement has in the average can be proportional to the time since the last adjusted measurement. 2.3 Layer 3 Data
[0043] OSI layer 3 data 228 may include network layer data from a network protocol stack ("netstack") or a network policy module. The network layer data may include, but is not limited to, current Internet reachability, historical Internet reachability, and gateway reachability. Current and / or historical Internet reachability may indicate wider area network connectivity. Gateway reachability may indicate connectivity to the rest of the local area network. 2.4 WLAN Policy Module Data
[0044] The WLAN management module data 230 may include historical data for each connection. The historical data may be up to a historical time threshold. The historical data may include, but is not limited to, connection time, connection duration, disconnection reason, disconnection signal strength, and average TX PHY rate. Connection time data may refer to the time required to connect to an access point or BSS. Connection duration may refer to how long a connection is maintained. Disconnection reason may include the cause of the disconnection. Disconnection signal strength may refer to the signal strength value at the time of disconnection. Average TX PHY rate may refer to the average non-idle TX PHY rate over the connection duration. The historical data for each connection may be saved for a certain period of time (e.g., a day, a week, a month, or longer or shorter), and may be overwritten or deleted by updated data once that amount of time has passed. 2.5 Other data
[0045] In addition to the examples provided above, the data structure 222 for each access point or BSS may also include other data, such as Dynamic Host Configuration Protocol (DHCP) statistics, packet loss, and more specific reachability targets, etc. The specific reachability targets may take into account certain nuances. In one example, the BSS may show reachability to the Internet most of the time, but frequently lose the connection briefly (e.g., a few seconds or so). In another example, the BSS may be able to reach certain parts of the Internet, but may not be able to reach specific hosting servers required for functionality of a certain device (e.g., software package servers, update servers, cache servers that store web pages or other content, etc.). And in a third example, the specific reachability target may depend on the reachability API from the network policy module. 3. Monitor and update connection quality data
[0046] The system 214 may periodically monitor the recorded data for each access point or BSS, the system requirements of the station 110a, and feedback from other system components. Whenever new data is available, the system 214 may update the data for each access point or BSS. In one example, the system 214 may periodically update one or more data for the current access point 102a or BSS 104a, such as every second or every minute (or more frequently or less frequently). For example, the signal strength and signal-to-noise ratio of the current access point 102a or BSS 104a may be updated every second.
[0047] The system 214 may perform a passive scan or a burst of several active scans to discover any candidate access points or BSSs within the communication range of the station 110a. A passive roaming scan may observe all available access points or BSSs in the environment that the wireless device / station can detect. An active scan may be run faster on a specific channel that targets one or more specific known access points or BSSs. By performing a burst of active scans or performing several bursts of active scans in rapid succession (e.g., within a few milliseconds or seconds), the RSSI speed may be determined and stored as part of the access point or BSS data. The system 214 may compile a list of candidate access points or candidate BSSs and update the list and data for each candidate access point or candidate BSS after each roaming scan.
[0048] In one example, a scan manager 216 implemented or controlled by one or more processors can manage the frequency of roaming scans. A timer can be used after each roaming attempt to prevent roaming scans from occurring too frequently. The scan manager 216 can support bursts of active scans. The scan manager 216 can help improve scan efficiency (such as batching) and manage different scan types. In one example, by batching passive scans for roaming with scans for other reasons, data for candidate access points or candidate BSSs can be updated more often without adding additional computational or other resource costs.
[0049] In another example, instead of initiating a roaming scan, the system 214 can discover any candidate access points or candidate BSSs and update its data to learn about the candidate access points or candidate BSSs based on RRM reports, BTM indications, and any previous scans. RRM reports and / or BTM indications can be relied upon to help eliminate the need to perform a roaming scan. RRM reports and / or BTM indications can indicate the RF environment, thereby reducing the frequency of needing to perform a full passive scan.
[0050] Some data may only be valuable for a short period of time. For such data, old values may be overwritten as new values are obtained to ensure that only recent data is considered in the evaluation. System 214 may choose to use previous values when calculating new values such as the EWMA signal strength of the current access point 102a or BSS 104a. The most recent signal strength measurements may be factored into the EWMA, at which point the old signal strength measurements are no longer needed. These old data values may be discarded immediately after use.
[0051] Some data, such as Internet connectivity or channels, may be relevant for a longer period of time. However, such data may eventually become stale. Here, the relevance of the data may time out after a certain amount of time since the data was last observed in a scan result or RRM report. Some data may be unlikely to change or may provide long-term value, such as historical disconnections and channels, etc. Once such data exceeds a certain age, or if new information indicates a change, such data may be cleared. System 214 may update data for each access point or each BSS as follows. 3.1 Layer 1 Data
[0052] For the current access point 102a or the current BSS 104a, OSI layer 1 data 224 measurements may be observed at regular intervals (such as every second) in the state machine 218 at the WLAN management module 210. The state machine 218 may maintain the state of the current connection (e.g., connected state, connecting state, or disconnected state) and assist in moving between different states. Based on the measurements obtained in the state machine 218, the system 214 may update the OSI layer 1 data 224, such as EWMA signal strength, SNR value, and / or speed. The OSI layer 1 data may be updated autonomously by other methods.
[0053] For candidate access points 102b and 102c or candidate BSSs 104b and 104c, OSI layer 1 data 224 measurements may be collected by system 214 when the candidate access points or candidate BSSs are observed in a roaming scan. System 214 may perform several bursts of active scans for some of the candidate access points or candidate BSSs to collect time series data for EWMA and velocity calculations. When there is no roaming scan, OSI layer 1 data 224 measurements may be obtained from RRM reports generated by other stations or access points to which the current BSS is connected. 3.2 Layer 2 Data
[0054] The PHY rate of the current access point 102a or the current BSS 104a may be observed by the state machine 218. When the WLAN management module 210 receives RRM reports from access points, the system 214 may use the RRM reports to update the reported data of any access point or BSS, such as channel, frequency, etc. Additional metadata from the RRM reports may be stored in separate RRM report fields to be saved along with other data in the access point or BSS data structure 222. The RRM report fields may include, but are not limited to, data from link measurement reports, observations of candidate access points or candidate BSSs in neighbor reports, and the like.
[0055] When the WLAN management module 210 receives the BTM response, the system 214 may update the BTM indication of the proposed access point or BSS to indicate that the current access point recommends that the station transition to the proposed access point or BSS. 3.3 Layer 3 Data
[0056] OSI layer 3 data 228 can be collected primarily through feedback from other system components, including but not limited to netstack and network policy, etc. Netstack or network policy can transmit status information about its connectivity status view to the WLAN management module, including but not limited to Internet reachability and DHCP statistics, etc. 3.4 WLAN Policy Module Data
[0057] WLAN management module data 230 may be collected by state machine 224. When a connection to an access point or BSS occurs, the connection time may be recorded. When a disconnection occurs, such as when an unexpected disconnection or connection failure occurs, the reason for the disconnection and the duration of the connection may be recorded. The average non-idle TX PHY rate over the duration of the connection may be calculated and stored. 3.5 Other data collection / update methods
[0058] Any data within data structure 222, such as OSI layer 1 data 224, OSI layer 2 data 226, and OSI layer 3 data 228, may be collected and / or updated by other methods independent of WLAN management module 210 or any of its components. 4. Consider roaming
[0059] System 214 may determine whether to consider roaming based on the adequacy of the current connection and the risk of roaming. The better the current connection, the greater the risk of leaving it. The quality of the connection of an access point or BSS may be determined using the physical properties of the access point or BSS (such as signal strength), system requirements of station 110a, user intent, and historical performance of the access point or BSS (such as how reliable the connection has been in the past).
[0060] The risk of roaming may depend on the current access point or current BSS connection quality. For example, if the current connection is not sufficient for some requirements, or if the current connection has low quality, the risk of roaming may be low and the likelihood of roaming increases. If the current connection throughput is low but sufficient for all system requirements, the risk of roaming may be high and the likelihood of roaming decreases because it would involve interrupting the working connection. If the same connection has historically performed well, roaming may be riskier and less likely. In one example, the system 214 may determine whether to consider roaming based on one or more of: feedback about the current connection and system requirements, a score for the current access point or BSS, and other factors. Further details on these processes are provided below. 4.1 Evaluation Feedback and System Requirements
[0061] System 214 may determine whether to consider roaming based on feedback from other systems of the station (client device). Feedback may indicate that the current connection is insufficient and roaming should be considered. Components such as network policy and netstack may transmit feedback to system 214 about the current connection or system requirements from their perspective. Such feedback may be associated with OSI layer 2 data 226 and OSI layer 3 data 228. System 214 may use status reports to determine whether roaming should be considered.
[0062] In one example, the netstack L3 status feedback may show that the Internet cannot be reached when using the current access point or BSS. Based on this feedback, the system 214 may determine that roaming should be considered. In another example, the user intent from the network policy may indicate that the current access point or BSS is a soft access point for an Internet of Things (IoT) device, where the soft access point is used for device settings. Based on the user intent (e.g., device settings), the system 214 may determine that roaming should not occur. In a further example, the BTM indication may provide feedback to the system 214 that the access point suggests roaming to a different access point or BSS and that disconnection is about to occur. Based on this feedback, the system 214 may determine that roaming should be considered. In yet another example, the system 214 may receive system requirements for connection requirements for applications running on the system from the network policy.
[0063] System requirements may include, but are not limited to, Internet reachability (i.e., whether the system requires an Internet connection), specific network requirements, and different data rate requirements for certain applications. For example, if an application requires a certain rate, such as 50 Mbps, but the current access point or BSS is only capable of 25 Mbps. Based on the system requirements, the system 214 may determine that roaming should be considered. In another example, if an application needs to be located on a specific access point or BSS to perform certain functions, such as a smart home device needs to be located on a certain Wi-Fi connection, the system 214 may determine that roaming should not be considered when the current access point or BSS is the required access point or BSS. 4.2 Scoring BSS
[0064] The system 214 can periodically calculate a quality score for the current access point or BSS by using data for the current access point or BSS (e.g., specifically by using OSI layer 1 data 224). The quality score can serve as a measure of the quality of the physical layer connection. If the quality score indicates that the current connection is poor, or that the current connection may become poor in the near future, based on a comparison with a tunable threshold, the system 214 can determine that roaming should be considered, even if feedback from other components is already acceptable. For example, on a scale of 1 to 100, poor connection quality can be a score below 30, where 30 can represent a threshold for reasonable performance. The threshold, such as 30, can vary based on implementation details, testing, tuning, and device type. An example of a degraded connection can be a connection whose score decreases over time, approaching a certain threshold for reasonable performance.
[0065] The quality score may take into account the OSI layer 1 data 224 in aggregate. Each OSI layer 1 data point may not indicate much about quality when considered individually. However, when considered in aggregate, such OSI layer 1 data 224 may indicate physical layer connection quality. In one example, the quality score may be calculated based on the following data: EWMA signal strength, signal strength speed, and EWMA SNR. A bonus or penalty may then be applied to the quality score using frequency bands.
[0066] Based on the EWMA signal strength and signal strength speed, the system 208 can Figure 3 The corresponding scores are found in the exemplary EWMA signal strength / speed score table 300 shown in FIG. Here, the EWMA signal strength and signal strength speed are combined into Figure 3The single score table shown here is not used because the effect of signal speed on the connection quality score depends on the EWMA signal strength. For example, for an access point or BSS with strong signal strength, stability is preferred over change. Therefore, a low speed should result in a higher connection quality score than a high positive or negative speed. On the other hand, for an access point or BSS with weak signal strength, improving signal strength may be preferred over stability. Therefore, a high positive speed should result in a higher connection quality score than a low speed. Therefore, the EWMA signal strength and signal strength speed are combined into a table like Figure 3 Single score sheet shown.
[0067] Based on the EWMA SNR, the system 214 can Figure 4 The system 214 can look up its corresponding score in the exemplary EWMA SNR score table 400 shown. Figure 5 The corresponding score can be found in the exemplary frequency band reward / penalty table 500 shown. When there is no specific requirement for 2.4 GHz, the frequency band of 5 GHz can generally be preferred. 6 GHz can be highly desired. Therefore, when the frequency band is 2.4 GHz, a penalty represented by a score of -10 can be assigned. When the frequency band is 6 GHz, an incremental boost represented by a score of 5 can be assigned. When the frequency band is 5 GHz, there can be no penalty, no boost, and a score of 0 can be assigned. The values in tables 300, 400, and 500 are example values and are presented for illustration purposes only. The values presented in tables 300, 400, and 500 can change based on further tuning performed through testing and metric collection.
[0068] The system 214 can calculate the quality score by summing up the scores obtained through tables 300, 400, and 500. In one example, the quality score can be calculated using a simple weighting system according to the following formula. The following equation is an example equation and is presented for illustration purposes only. The equation can change based on testing and metric collection. Assume weights A and B, where A + B = 1: Quality score = A * EWMA signal strength / speed score + B * EWMA SNR score + band bonus / penalty
[0069] To illustrate how the quality score may be calculated, in one example, A is 0.7 and B is 0.3. Here, the values of A and B are example values and are presented for illustration purposes only. These values may change based on further tuning through testing and metric collection. The OSI layer data 224 for the access point or BSS may include an EWMA signal strength at -55 dBm, a signal strength speed at -1.5 dBm / s, an SNR at 25 dBm, and a frequency band at 2.4 GHz. Based on the EWMA signal strength of -55 dBm and the signal strength speed of -1.5 dBm / s, according to Table 300, the corresponding EWMA signal strength / speed score is 90. Based on the SNR of 25 dBm, according to Table 400, the corresponding EWMA SNR score is 85. Based on the frequency band of 2.4 GHz, according to Table 500, the corresponding frequency band reward / penalty is -10. Therefore, the quality score is calculated as follows: Quality score = 0.7 * EWMA signal strength / speed score + 0.3 * SNR score + band bonus / penalty Quality score = 0.7 * 90 + 0.3 * 85 – 10 Quality Score = 78.5
[0070] In another example, A is 0.6 and B is 0.4. The OSI layer data 224 for the access point or BSS may include an EWMA signal strength at -67 dBm, a signal strength speed at +5.5 dBm / s, an SNR at 20 dBm, and a frequency band at 5 GHz. Based on the EWMA signal strength of -67 dBm and the signal strength speed of +5.5 dBm / s, the EWMA signal strength / speed score is 60 according to table 300. Based on the SNR of 20 dBm, the EWMA SNR score is 50 according to table 400. Based on the 5 GHz frequency band, the frequency band bonus / penalty score is 0 according to table 500. Therefore, the quality score is calculated as follows: Quality score = 0.6 * EWMA signal strength / speed score + 0.4 * SNR score + band bonus / penalty Quality score = 0.6 * 60 + 0.4 * 50 + 0 Quality score = 56 4.3 Other factors
[0071] In addition to the feedback evaluation and system requirements described in Section 4.1, and the quality scores described in Section 4.2, the system 214 may determine whether to consider roaming based on other factors such as external reports of connectivity quality. External reports of connectivity quality may include one or more of the following: the current usage context and the current operating environment of station 110a. The current usage context may refer to an application currently running on station 110a. External reports of connectivity quality may be obtained from a general processing architecture or from other modules in station 110a. In one example, the current usage context may indicate that a podcast download or media streaming is in progress. Alternatively, the current usage context may indicate that station 110a is in peer-to-peer communication with a co-located station, such as an ongoing file transfer between two stations. In the above example, system 214 may determine that roaming should not be considered until the ongoing work is completed.
[0072] In another example, in a residence with multiple smart displays and / or smart speakers, station 110a may be one of the smart displays / speakers. The current usage context may indicate that station 110a is the clock leader among the multiple smart displays and / or speakers. In this case, system 214 may determine that roaming should not be considered for station 110a because if station 110a disconnects from the other smart displays / speakers, those smart displays / speakers may need to run algorithms to determine a new clock leader to establish a connection with.
[0073] In yet another example, if an application or other external system indicates that the user is performing a latency-dependent task, such as streaming, the system 214 may determine whether to consider roaming based on the current latency. If the current latency is reported as poor, the system 214 may determine that roaming should be considered to find an access point or BSS that provides better latency. If the current latency is reported as good (e.g., meets criteria, such as a latency threshold for streaming content), the system 214 may determine that roaming should not be considered because roaming may cause interruptions to latency-dependent tasks. 4.4 Roaming Reasons
[0074] Based on the feedback evaluation and system requirements described in Section 4.1, the quality scores described in Section 4.2, and other factors described in Section 4.3, the system 214 can determine whether to consider roaming. Once the system 214 determines that roaming should be considered, the system 214 can generate one or more roaming reasons that can be used for candidate access point or candidate BSS selection. Each roaming reason can summarize why roaming is being considered and how important it may be for the station to roam from a current access point or BSS to a different access point or BSS.
[0075] Roaming reasons may be of the following types, including but not limited to InternetUnreachable, GatewayUnreachable, FailedToAquireAddress, InsufficientRate, BTMDisconnectImminent, InsufficientSignal, DegradingSignal, and SuboptimalSignal. InsufficentSignal, BTMDisconnectImminent, and InsufficientRate may be considered highly important because they may indicate non-functional WLAN behavior. InternetUnreachable may be considered highly important if the device or user requires Internet connectivity for their use case. DegradingSignal and SuboptimalSignal may be considered less important because they indicate that the WLAN is functioning normally, albeit not optimally.
[0076] InternetUnreachable may indicate that Internet is needed but cannot be reached using the current access point or current BSS. GatewayUnreachable may indicate that there is no route to the gateway. FailedToAquireAddress may indicate a failure to receive an address (DHCP or static). InsufficientRate may indicate that the current access point or current BSS cannot achieve the rate required by the system requirements. BTMDisconnectImminent may indicate that the access point has suggested roaming and that a disconnect may be imminent. InsufficientSignal may indicate very poor connection strength based on OSI layer 1 data 224 measurements. DegradingSignal may indicate insufficient signal, or that a disconnect may be imminent, based on degraded OSI layer 1 data 224 measurements. SubpotimalSignal may indicate a functioning but suboptimal connection, and the need to seek a better access point or BSS, based on OSI layer 1 data 224 measurements. 5. Evaluate candidate connections
[0077] Once the system 214 determines that roaming should be considered, the system 214 can then determine which candidate access point or candidate BSS should be connected to. If the system 214 identifies an access point or BSS that is better than the current access point or BSS, the system 214 can continue to roam. On the other hand, if there is no access point or BSS that is better than the current access point or BSS, the system 214 can decide not to roam. The system 214 can calculate the quality score of each candidate access point or candidate BSS using the scoring process described in Section 4.2. The quality score of each candidate access point or BSS can be calculated based on the corresponding physical quality of its connection (such as EWMA signal strength, signal strength speed and EWMA SNR, frequency band, etc.). The score of each candidate access point or BSS can represent the physical layer connection quality of the candidate access point or BSS. The system 214 can compare all candidate access points or candidate BSSs to determine the "best" access point or BSS for the current situation by considering their quality scores, any roaming reasons, historical data for each access point or BSS, and BTM indications. The historical data for each access point or BSS may include, for example, Internet reachability and disconnection reasons. 5.1 Adjusting the score
[0078] The system 214 can adjust the quality score based on the potential disadvantages (e.g., risks), possible resource impacts (e.g., costs), and / or potential benefits (e.g., rewards) involved with roaming. The adjustment, if any, can help account for the necessity and risk of roaming by lowering the quality score of the current access point or BSS if the quality score of the current access point or BSS proves to be insufficient, increasing the quality scores of candidate access points or candidate BSSs that achieve the purpose of roaming, and favoring stability when the reason for roaming is not critical. In particular, the system 214 can adjust the quality score of each access point or BSS based on the reason for roaming, historical data, and BTM indications. Figure 6 Score adjustment table 600 is illustrated, suggesting adjustments based on these attributes. First, system 214 can adjust the quality score based on the roaming reason. The roaming reason determined in Section 4.4 can provide the purpose that system 214 hopes to achieve via roaming, and can help determine how much risk to accept when choosing to roam. For example, the less adequate the current access point or current BSS, the more urgent roaming is, and thus the greater the acceptable risk. In addition, the worse the existing connection, the less loss there is in roaming, and thus a more aggressive roaming decision can be made.
[0079] The system 214 can factor the roaming reasons determined in Section 4.4 into the quality score to ensure that a candidate access point or candidate BSS is more likely to be selected that achieves the purpose of roaming and addresses any deficiencies of the current connection, and to measure the criticality of roaming. When the roaming reasons indicate that there is not much performance loss, the system 214 can downgrade the quality score of the current access point or current BSS. By way of example, Figure 6 As shown, when roaming is critical, the system 214 may reduce the quality score of the current access point or current BSS by 50. When roaming is important, the system 214 may reduce the quality score of the current access point or current BSS by 15. In the case of risk-averse roaming, the system 214 may increase the quality score of the current access point or current BSS by 15. For any access point or BSS recommended by the BTM indication, the system 214 may increase its quality score by 25. When the roaming reason type is DegradingSignal, the system 214 may not make any adjustments, but may consider roaming to be worthwhile.
[0080] In addition, the system 214 can adjust the quality score of each candidate access point or BSS based on historical data for the candidate access point or BSS. The historical data may include historical performance, indicating how well the candidate access point or BSS performed in the past (e.g., in the past 30 minutes, past 12 hours, past 7 days, or other time frame). Roaming to a connection that performed well in the past may carry less risk. If the past performance of the candidate access point or BSS was good, the system 214 may increase the quality score of the candidate access point or BSS because roaming to the candidate access point or BSS carries less risk. On the other hand, if the past performance of the candidate access point or BSS was poor, the system 214 may lower the quality score of the candidate access point or BSS because poor past performance may indicate unstable future performance. The historical data may include, but is not limited to, Internet reachability, disconnect reason codes, and connection duration. Reference Figure 6, for any access point or BSS showing historical Internet reachability, the system 214 may increase its quality score by 10. For any access point or BSS with a historical FailedToConnect reason code, the system 214 may decrease its quality score by 5. For any access point or BSS with a historical connection duration of less than 1 minute, the system 214 may decrease its quality score by 15 because there is reason to believe that the connection may be unstable in the future. If the historical connection duration is less than 5 minutes, but not less than 1 minute, the system 214 may decrease the quality score by 5. If the historical connection duration is greater than 60 minutes, the system 214 may increase the quality score by 10. For any access point or BSS showing historical Internet reachability, the system 214 may increase its BSS score by 10. Further, the system 214 may adjust the quality score based on the BTM indication. For any access point or BSS suggested by the current access point, the system 214 may increase its quality score by 15.
[0081] Figure 6 The adjustment types and values presented in are for illustration purposes only. The adjustment types may not be limited to roaming reasons, historical data, and BTM indications. Figure 6 The types and magnitudes of adjustments presented in the may change based on further tuning through testing and metric collection. In addition to the roaming reason, historical data, and BTM indications, the quality score may also be adjusted based on other factors, such as one or more of the following: the cost of changing networks or subnets, and the power consumption for changing networks or subnets. Roaming to a connection may interrupt the connectivity to the user, making it more expensive than a connection that can occur seamlessly. For example, station 110a may maintain an IP address with which other devices or stations can actively communicate. Roaming to a candidate access point or BSS may bring potential costs and risks. For example, roaming to a candidate access point or BSS may result in a change in the IP address of the station, which in turn may result in a higher level connection being torn down and recreated, and may potentially result in an interruption to the user. In view of these potential costs and risks, the system 214 may decide that roaming to the candidate access point or BSS is not worth it. In order to mitigate the above costs and risks, the system 214 may reduce the quality score of the candidate access point or BSS.
[0082] In yet another example, the current access point or BSS to which station 110a is connected may not provide sufficient rate. A candidate access point or BSS may provide a better rate than the current access point or BSS. System 214 may then increment the quality score of the candidate access point or BSS. The increase in the score may be considered an expected return. 5.2 Selecting the “best” access point or BSS
[0083] Once the system 214 has finished adjusting the quality scores, the system 214 may compare all access points or BSSs, including the current access point or BSS and all candidate access points or BSSs, and select the access point or BSS with the highest score as the "best" access point or BSS. If the selected access point or BSS is the current access point or BSS, or if the current access point or BSS has the highest score, the system 214 may not initiate roaming. If the selected access point or BSS is not the current access point or BSS, and the expected improvement is worth the risk of roaming, the system 214 may initiate roaming to the selected access point or BSS. 6. Other considerations
[0084] The system 214 may include additional implementations to account for some of the other considerations detailed below. 6.1 Preventing Jitter
[0085] Jitter may occur when the system 214 is tuned to roam too easily or when all candidate access points or BSSs show poor performance. For example, roaming may not be needed when the current connection is functioning normally but a better connection may be available. To prevent jitter, the system 214 may perform an evaluation of roaming, such as determining the degree of success of roaming. Such an evaluation may be valuable for preventing jitter and providing information for future roaming decisions. The system 214 may record the most recent roaming reasons for each access point or BSS. The system 214 may use the most recent roaming reasons to roam to a particular access point or BSS to determine whether the access point or BSS achieves the purpose identified in the roaming reason. When deciding whether to roam to the access point or BSS, the system 214 may consider the evaluation results, the most recent roaming reasons for any access point or BSS, and / or any other historical metrics. Evaluating the evaluation results, the most recent reasons, and / or any other historical metrics can help prevent jumping between suboptimal access points or BSSs or constantly seeking better performance, and ensure that incorrect roaming decisions are not made repeatedly. In another example, system 214 can implement a timer to perform adjustments to the quality score in order to avoid adjusting the quality score too frequently, thereby reducing the frequency of roaming. 6.2 Consider periodic roaming
[0086] Even if the current connection is sufficient, it may sometimes be beneficial to consider roaming and evaluate candidate access points or BSSs. For example, a station may be connected to a 2.4 GHz access point or BSS that is sufficient for the station, but a 5 GHz access point or BSS may provide better performance. To address this issue, system 214 may consider roaming periodically, even if there is no critical roaming reason. There may be inherent risks in roaming when the current connection is sufficient. To mitigate such risks, system 214 may consider roaming when stability is not critical and power is not in short supply. System 214 may also ensure that any selected access point or BSS is extremely risk-averse. When deciding to roam, system 214 may largely favor a stable current connection and only perform roaming when the selected candidate access point or BSS provides a significant expected advantage. 6.3 Roaming Profile
[0087] System 214 can use profiles for each station, where each profile can store value parameters for determining and / or evaluating roaming. These value parameters can be tuned to improve the performance of each station. These value parameters can vary from station to station, depending on the hardware, power usage, and characteristics of the station. For example, a laptop may have a different set of considerations than a stationary device, so it will have a different profile. Profiles can enable engineers to change these value parameters for different stations without changing the underlying code. Each profile can have an identifier that can be recorded to help engineers debug problems. 7. Use Case Scenario
[0088] In a first example, the current connection may be stable and high performing. For example, the current access point or BSS may have a strong EWMA signal strength and a stable EWMA SNR. The signal strength rate of the current access point or BSS may be close to 0. Therefore, the current access point or BSS may have a high quality score. Based on the high quality score of the current access point or BSS, the system 214 may decide that the current access point or BSS is sufficient and roaming should not be considered, thereby eliminating any need to evaluate any candidate access points or BSSs.
[0089] In a second example, the current connection may be stable and good, and a candidate access point or BSS with better performance may be online. Similar to the first example, the current access point or BSS may have a strong EWMA signal strength and a stable EWMA SNR. The signal strength rate of the current access point or BSS may be close to 0. The system 214 may calculate a high quality score for the current access point or BSS. Based on the high quality score of the current access point or BSS, the system 214 may decide that the current access point or BSS is sufficient and roaming should not be considered, thereby eliminating any need to evaluate a candidate access point or BSS, even if the performance of the candidate access point or BSS is high.
[0090] In a third example, the current access point or BSS coverage may overlap with the candidate access point or BSS coverage. When station 110a moves from the coverage area of the current access point or BSS to the coverage area of the candidate access point or BSS, the EWMA signal strength and EWMA SNR of the current access point or BSS may decrease, and the signal strength speed of the current access point or BSS may become slightly negative. System 214 may determine that roaming should be considered and identify SuboptimalSignal as the roaming reason. The candidate access point or BSS may show better speed and signal, resulting in a higher quality score than the current access point or BSS. Therefore, system 214 may decide to roam to the candidate access point or BSS.
[0091] In a fourth example, the current connection may be static but weak, and a better candidate access point or BSS may come online. For the current access point or BSS, its EWMA signal strength and EWMA SNR may be low, and its signal strength speed may be close to 0. The system 214 may determine that roaming should be considered and identify InsufficientSignal as the roaming reason. The candidate access point or BSS may show better signal strength and SNR. The speed of the candidate access point or BSS may be close to 0. The candidate access point or BSS may have a higher quality score than the current access point or BSS. Therefore, the system 214 may decide to roam to the candidate access point or BSS.
[0092] In a fifth example, the current connection may be static, available but weak. The candidate access point or BSS may also be weak. The signal strength and SNR may be low for the current access point or BSS, and its speed may be close to 0. The system 214 may determine that roaming should be considered and identify InsufficientSignal as the roaming reason. The system 214 may determine that the current access point or BSS has the highest quality score, or that the current access point or BSS has the same score as the candidate access point or BSS. Therefore, the system 214 may decide not to initiate roaming.
[0093] In the sixth example, the station can be converted from the coverage area of the current access point or BSS to the coverage area of the candidate access point or BSS, where the two coverage areas may hardly overlap each other. For the current access point or BSS, during this transition process, its signal strength and SNR may be reduced, and its speed may be close to negative. Access point or BSS selection can be performed twice. By way of example, when the connection to the current access point or BSS is degraded, the system 214 can determine that roaming should be considered, and SuboptimalSignal is identified as a roaming reason. However, the candidate access point or BSS may not be visible, or may not show enough expected performance to be better than the current access point or BSS. In this case, since the current access point or BSS and the candidate access point or BSS are not ideal, the station will continue to stay on the current access point or BSS because at least the current access point or BSS is operating normally. Then, when the connection to the current access point or BSS is further degraded, the system 214 can determine that roaming should be considered, and InsufficientSignal is identified as a roaming reason. The current access point or BSS may be barely functioning or not functioning properly now, while the candidate access point or BSS may be more in range and potentially provide better performance, resulting in a higher quality score than the quality score of the current access point or BSS. Therefore, the system 214 may decide to roam to the candidate access point or BSS.
[0094] In a seventh example, the station may quickly transition out of the coverage area of the current access point or BSS. The signal strength and SNR may degrade for the current access point or BSS. The current access point or BSS may have a high negative velocity. The system 214 may decide that roaming should be considered and identify the DegradingSignal as the roaming reason.
[0095] In an eighth example, the current access point or BSS may provide a suboptimal connection to the station. The station may quickly pass through the coverage area of a better candidate access point or BSS. For the current access point or BSS, its signal strength and SNR scores may be low, and its speed may be close to 0. The system 214 may decide that roaming should be considered and identify SuboptimalSignal as the roaming reason. The candidate access point or BSS may have high signal strength and stable SNR, but its speed may be high. Therefore, the quality score of the candidate access point or BSS may be lower than the quality score of the current access point or BSS. Therefore, the system 214 may determine that the current access point or BSS has the highest score and decide not to initiate roaming.
[0096] In a ninth example, a station may be moving through an office, and one or more applications running on the station rely on active Internet service. Therefore, it is important to maintain good connection strength. To ensure smooth roaming, the system 214 may identify a SuboptimalSignal as a roaming reason and avoid any roaming that may result in poor connection strength.
[0097] In the tenth example, the current access point or BSS may show a strong signal, but no Internet reachability. The candidate access point or BSS may show a similar signal. The system 214 may decide that roaming should be considered and identify InternetUnreachable as the roaming reason. Based on their similar signal strengths, the quality score of the current access point or BSS may be similar to the quality score of the candidate access point or BSS. Since the current access point or BSS does not have Internet reachability, the system 214 may downgrade the quality score of the current access point or BSS. Therefore, the quality score of the current access point or BSS may be lower than the quality score of the candidate access point or BSS. Therefore, the system 214 may decide to roam to the candidate access point or BSS.
[0098] In the eleventh example, the current access point or BSS may show a lack of reachability, such as no Internet and / or gateway reachability. The candidate access point or BSS may show a relatively weaker signal compared to the current access point or BSS or other access points or BSSs, but has historical reachability. The system 214 may decide that roaming should be considered and identify InternetUnreachable and / or GatewayUnreachable as roaming reasons. Based on signal strength, the quality score of the current access point or BSS may be higher than the quality score of the candidate access point or BSS. Since the current access point or BSS lacks reachability, the system 214 may downgrade the quality score of the current access point or BSS. Since the candidate access point or BSS has historical reachability, the system 214 may increment the quality score of the candidate access point or BSS. Therefore, the quality score of the candidate access point or BSS may exceed the quality score of the current access point or BSS. Therefore, the system 214 may decide to roam to the candidate access point or BSS.
[0099] In the twelfth example, the station may be connected to the current access point or BSS. There may be two candidate access points or BSSs, including a first candidate access point or BSS and a second candidate access point or BSS. The station may receive a BTM indication from the current access point associated with the current access point or BSS, which BTM indication suggests one of two alternative candidate access points or BSSs, such as suggesting the first candidate access point or BSS. The system 214 may decide that roaming should be considered and identify BTMDisconnectImminent as a roaming reason. Due to their similar signal strengths, the quality scores of the two candidates may be similar. When the first candidate access point or BSS is suggested according to the BTM indication, the system 214 may increment the score of the first candidate access point or BSS. Therefore, the first candidate access point or BSS may have the highest score. Therefore, the system 214 may decide to roam to the first candidate access point or BSS. 8. Access Point or BSS Evaluation Considerations
[0100] The access point or BSS assessment disclosed herein essentially analyzes the environment of client devices (stations) and the interaction of these devices with the environment. In addition to data about device usage and predicted user intent, data for each access point or BSS may also be stored on the station. SSID and BSSID cleanup may be employed, where the data for each access point or BSS (including signal strength, changes in signal strength, noise, rate and / or connectivity status, etc.) does not include information that may be associated with the user of the client device. 9. Access Point or BSS Evaluation Process
[0101] Figure 7 A flow chart illustrating a process for evaluating access points to determine roaming. At 702, the processor 202 may determine whether to consider roaming when a computing device (such as a station) is connected to a current access point. The computing device may be within the coverage of each of a plurality of access points. The plurality of access points may include a current access point and at least one candidate access point different from the current access point. At 704, the processor 202 may generate a roaming reason after the processor 202 determines to consider roaming. At 706, the processor 202 may determine a quality score of at least one of the plurality of access points based at least in part on the roaming reason. At 708, the processor 202 may select a target access point having a highest quality score from the plurality of access points. At 710, when the target access point is not the current access point, the processor 202 may determine to roam from the current access point to the target access point.
[0102] In one example, when the target access point is not the current access point, the processor 202 may instruct the transceiver 204 to roam from the current access point to the target access point. The quality score may indicate the physical layer connection quality of its corresponding access point. The processor 202 may determine the quality score by calculating the quality score of each of the multiple access points and adjusting the quality score of at least one of the multiple access points based at least in part on the roaming reason. The processor 202 may calculate the quality score of each of the multiple access points based on at least one physical attribute of the corresponding access point of the multiple access points. The at least one physical attribute may include signal strength, signal strength speed, signal-to-noise ratio (SNR), and frequency band. The processor 202 may adjust the quality score of at least one of the multiple access points based at least in part on one or more of the following: historical performance of the corresponding access point of the multiple access points, roaming advice or disconnection indication provided by the current access point, or power consumption for changing the network or subnet.
[0103] The processor 202 may determine whether to consider roaming by evaluating one or more of the following: the connection quality of the current access point reported by the network protocol stack or network policy module of the computing device, the system requirements of the computing device, an external report of the connectivity quality of one or more of the current usage context and the current operating environment of the computing device, and the quality score of the current access point. The processor 202 may record the data associated with each access point into the memory 206 for approximate calculation of the connection quality of the access point. The processor 202 may monitor and update the data. The data may be stored in the memory 206. The data associated with each access point may be related to one or more of the following: OSI layer 1, 2, 3 or WLAN management module. The data associated with OSI layer 1 may include one or more of the following: EWMA signal strength, signal strength speed, EWMA SNR, channel and channel bandwidth. The data associated with OSI layer 2 may include one or more of the following: EWMAPHY rate, RRM report and BTM indication. The data related to OSI layer 3 may include one or more of the following: current internet reachability, historical internet reachability, and gateway reachability. The data related to the WLAN management module may include historical data indicating one or more of the following: connection time, connection duration, disconnection reason, disconnection signal strength, and average TX PHY rate.
[0104] The one or more processors 202 may initiate a roaming scan to obtain data associated with at least one candidate BSS. In one example, the roaming reason may include one or more of the following: Internet unreachable, no route to a gateway, failure to receive an address, failure to meet rate requirements, impending disconnection, poor connection strength, insufficient signal, and suboptimal connection.
[0105] Figure 8 A flowchart illustrating another process for evaluating an access point or BSS to determine roaming. At 802, the memory 206 may record data associated with each of a plurality of access points or BSSs within the communication range of the station 110a. The plurality of access points or BSSs may include a current access point or BSS to which the station 110a is connected and at least one candidate access point or BSS. At 804, one or more processors 202 may calculate a quality score of the current access point or BSS based on the recorded data associated with the current access point or BSS. The quality score of the current access point or BSS may indicate the physical layer connection quality of the current access point or BSS. At 806, the processor 202 may determine whether to consider roaming by evaluating at least one of the following: feedback about the current access point or BSS, the system requirements of the station, the current usage context of the station, and the score of the current access point or BSS. At 808, the processor 202 may generate a roaming reason after the processor 202 decides to consider roaming. At 810, the processor 202 may calculate a quality score for each of the at least one candidate access point or BSS based on the recorded data associated with each of the at least one candidate access point or BSS. The score of each of the at least one candidate access point or BSS may indicate the physical layer connection quality of each candidate access point or BSS. At 812, the processor 202 may adjust the quality score of at least one of the multiple access points or BSSs based on one or more of the following: a roaming reason, historical data of corresponding access points or BSSs of the multiple access points or BSSs, and a BTM indication of the current access point or BSS. After the adjustment, at 814, the processor 202 may select a target access point or BSS with the highest score from the multiple access points or BSSs. At 816, when the target access point or BSS is not the current access point or BSS, the processor 202 may determine to roam from the current access point or BSS to the target access point or BSS. 10. Example of state-based roaming method
[0106] Fig. 9 An example 900 of a state-based roaming method that can be employed by the state machine 224 executed by the processor 202 is illustrated. Here, solid-line boxes indicate different states, containers indicate data sources, solid-line arrows indicate state transitions, and dashed-line arrows indicate data flows. States include a connected state 902, an evaluating current connection state 904, an evaluating candidate connection state 906, an evaluating state 908, a roaming state 910, and a connecting state 912. Data source 914 provides data to evaluate the current connection state 904, and data source 916 provides data to evaluate the candidate connection state 906.
[0107] When in the connected state 902, the station (client device) is wirelessly connected to a serving access point or BSS (e.g., Figure 1 One or more other access points or BSSs (e.g., Figure 1 904b and 104c) may be suitable roaming candidates. As shown by arrow 918, periodically (such as every N seconds) or upon a specific conditional event (e.g., a signal), the state can transition to the Evaluate Current Connection state 904. Here, data from the data source 914 is evaluated. This data may include one or more of signal data, data rates, reachability information, system requirements, etc. When it is determined that the current connection is sufficient, the state returns to the Connected state 902, as shown by arrow 920.
[0108] Once it is determined that the current connection is insufficient, as indicated by arrow 922, the state transitions to the Evaluate Candidate Connections state 906. Here, data from the data source 916 is evaluated. This data may include one or more of scan signal data, historical data, BTM indications, etc. Upon evaluation, the state machine proceeds to the Evaluate state 908, where the data flow includes the current connection evaluation and the reason for roaming (if applicable), as indicated by the dashed arrow 924. At box 908, the evaluation includes a risk / cost / reward evaluation, such as described in the various scenarios and examples above. Therefore, rather than just selecting the access point or BSS with the best score (a proxy for connection quality), the system is able to evaluate the risk (e.g., via the current connection quality), the expected reward (e.g., based on the candidate connection quality and user / system requirements), and the cost (e.g., the cost and / or power consumption of changing networks, subnets), and determine whether roaming is the best decision at this point in time. Here, if the system (eg, BSS assessment system 214 ) determines that roaming is not currently the best option, the state returns to connected state 902 , as indicated by arrow 926 .
[0109] However, when it is determined that roaming is currently the best option, then the state transitions to the roaming state 910, as indicated by arrow 928. Once roaming is complete, the state transitions to the connecting state 912, which includes the selected roaming candidate data, as indicated by dashed arrow 930. From here, the state will enter the connecting state 902 using the roaming candidate data. 11. Alternative roaming factors
[0110] When analyzing whether to roam, there may be other factors that may be used alternatively or in addition to the above factors. This may include using predictive data rates to make network and / or access point selections by wireless computing devices. As discussed in detail in co-pending application No. 17 / 830,559, entitled "Predictive Data Rates for Wireless Roaming and Selection," this may include modeling various firmware and hardware combinations that evaluate various characteristics and performance of communication links. The result is a reliable method for selecting a network and / or access point, thereby providing a high-performance wireless experience to the user.
[0111] By way of example, the prediction system may be configured to predict the data rate of an access point or BSS before a network connection is formed between the wireless device and the access point or BSS. The predicted data rate may be very close to the data rate that the firmware running on the wireless device will select when forming a connection with the BSS. In this scenario, the prediction system may predict the data rate of the BSS or access point based on data associated with the BSS or access point, including one or more of the following: signal strength, signal strength speed, signal-to-noise ratio (SNR), frequency band, 802.11 mode, and historical data based on one or more previous connections, etc.
[0112] The prediction system can implement one or more machine learning models to perform data rate prediction. According to one aspect, the model can be a multivariate nonlinear regression model. By way of example, the machine learning model can adopt a Transformer-type architecture, a convolutional neural network (CNN), a recurrent neural network (RNN), a long short-term memory (LSTM) network, or a combination thereof. Other machine learning architectures can be used as long as they support multivariate nonlinear regression. The machine learning model can be trained with preprocessed information, which includes, for example, test data and production data.
[0113] Thus, the system may alternatively or additionally utilize predicted data rates before making a roaming decision when evaluating potential issues (eg, risks and costs) and benefits (eg, returns). 12. Example System Components
[0114] The memory 206 may be a database storing information accessible by the processor 202, including, but not limited to, instructions and data (e.g., BSS evaluation system 214) that may be executed or otherwise used by the processor. The memory may be any type capable of storing information accessible by the processor, including computing device readable media. The memory may be a non-temporary medium, such as a hard drive, a memory card, an optical disk, a solid state, etc. The system may include different combinations of the foregoing, whereby different portions of instructions and data are stored on different types of media. The instructions may be any set of instructions (such as machine code) to be directly executed by the processor or any set of instructions (such as scripts) to be indirectly executed. For example, the instructions may be stored as computing device code on a computing device readable medium. In this regard, the terms "instructions", "modules", and "programs" may be used interchangeably herein. The instructions may be stored in an object code format for direct processing by the processor, or in any other computing device language, including scripts or independent source code module sets that are interpreted or compiled in advance on demand.
[0115] Processor 202 may be any conventional processor, such as a commercially available GPU, CPU, TPU, etc. Alternatively, each processor may be a dedicated device such as an ASIC or other hardware-based processor. FIG. 2A to FIG. 2B The processors and memories are functionally illustrated as being within the same box, but such devices may actually include multiple processors, computing devices, or memories that may or may not be stored within the same physical housing. Similarly, the memory may be a hard drive or other storage medium located in a housing different from that of the processor (e.g., located in a cloud computing system). Therefore, references to processors or computing devices will be understood to include references to a collection of processors or computing devices or memories that may or may not operate in parallel. Processor 202 may access memory 206 via one or more networks.
[0116] Each of the stations 110a-g may include a computing system and / or a desktop computer. Each station 110a-g may include one or more components typically used in conjunction with a computing device, such as the processor and memory described above, and a user interface subsystem for receiving input from a user and presenting information (e.g., text, images, and / or other graphical elements) to the user. The user interface subsystem may include one or more user input components (e.g., at least one front (user) camera, a mouse, a keyboard, a touch screen, and / or a microphone) and one or more display devices (e.g., a monitor having a screen or any other electrical device operable to display information (e.g., text, images, and / or other graphical elements)). Other output devices, such as speakers, may also provide information to the user. Example stations include, but are not limited to, mobile phones, laptops, smart home devices such as smart displays or speakers, and the like.
[0117] Each BSS 104a-c may support a network. The network may include a variety of configurations and protocols, including short-range communication protocols such as Bluetooth™, Bluetooth LE™, the Internet, the World Wide Web, an intranet, a virtual private network, a wide area network, a local network, a private network using one or more company-proprietary communication protocols, Ethernet, Wi-Fi, and HTTP, and various combinations of the foregoing. Such communications may be facilitated by any device capable of sending data to and from other computing devices, such as a modem and a wireless interface.
[0118] Although the technology herein has been described with reference to specific embodiments, it should be understood that these embodiments are only illustrative of the principles and applications of the present technology. Therefore, it should be understood that various modifications may be made to the illustrative embodiments, and other arrangements may be designed without departing from the spirit and scope of the present technology as defined by the appended claims.
Claims
1. A method for determining roaming, comprising: determining, by one or more processors of the computing device, whether to consider roaming when the computing device is wirelessly connected to a current access point, the computing device being within wireless coverage of a plurality of access points, the plurality of access points including the current access point and at least one candidate access point different from the current access point; generating, by the one or more processors, a roaming reason after the one or more processors determine that roaming is to be considered; determining, by the one or more processors, a quality score for at least one access point of the plurality of access points based at least in part on the roaming reason; After the determining, selecting, by the one or more processors, a target access point having a highest quality score from among the plurality of access points; as well as When the target access point is not the current access point, the one or more processors determine to roam from the current access point to the target access point.
2. The method of claim 1, further comprising: When the target access point is not the current access point, roaming from the current access point to the target access point is performed by a transceiver of the computing device.
3. The method of claim 1, wherein the quality score for each corresponding access point indicates a physical layer connection quality of the corresponding access point.
4. The method of claim 1, wherein determining the quality score comprises: calculating the quality score for each access point of the plurality of access points; as well as The quality score of at least one access point of the plurality of access points is adjusted based at least in part on the roaming reason.
5. The method of claim 4, wherein: Calculating the quality score is based on at least one physical property of a corresponding access point in the plurality of access points; and The at least one physical property includes one or more of: signal strength, signal strength speed, signal-to-noise ratio, or frequency band.
6. The method of claim 4, wherein adjusting the quality score of at least one of the plurality of access points is based at least in part on one or more of: based on historical performance of a corresponding access point in the plurality of access points of one or more previous connections within a selected time frame; a roaming advice or disconnection indication provided by the current access point; or Used to change the power consumption of a network or subnet.
7. The method of claim 1 , wherein determining whether to consider roaming comprises evaluating one or more of: a connection quality of the current access point as reported by a network protocol stack or a network policy module of the computing device; system requirements of the computing device; an application currently running on the computing device; the current operating environment of the computing device; or The quality score of the current access point.
8. The method of claim 1, further comprising: Data associated with each access point is recorded, monitored, and updated for use in approximating the connection quality of the access point.
9. The method of claim 8, wherein the data associated with each access point is related to one or more of: Open Systems Interconnection (OSI) layer 1, OSI layer 2, OSI layer 3, or a Wireless Local Area Network (WLAN) management module.
10. The method of claim 9, wherein the data related to the OSI layer 1 comprises one or more of: exponentially weighted moving average signal strength, signal strength velocity, exponentially weighted moving average signal to noise ratio, channel, or channel bandwidth.
11. The method of claim 9, wherein the data related to the OSI layer 2 comprises one or more of: an exponentially weighted moving average physical layer rate, a radio resource management report, or a transition management indication.
12. The method of claim 9, wherein the data related to the OSI layer 3 comprises one or more of: current Internet reachability, historical Internet reachability, or gateway reachability.
13. The method of claim 9, wherein the data associated with the WLAN management module includes historical data indicating one or more of: connection time, connection duration, disconnection reason, disconnection signal strength, or average transmit physical layer rate.
14. The method of claim 1, wherein the roaming reason comprises one or more of the following: a) The Internet is unreachable; b) There is no route to the gateway; c) Failure to receive address; d) Failure to meet rate requirements; e) impending disconnection; f) connection signal strength below the threshold; g) insufficient signal; or h) Suboptimal connections that do not meet one or more criteria.
15. A system comprising: a transceiver configured to establish a wireless connection with a first access point of a plurality of access points, the transceiver being within a wireless coverage range of each access point of the plurality of access points; as well as one or more processors operatively coupled to the transceiver, the one or more processors configured to: Determine whether to consider roaming; generating a roaming reason after determining that roaming is considered; determining a quality score for at least one access point of the plurality of access points based at least in part on the roaming reason; After the determining, selecting a target access point having a highest quality score from among the plurality of access points; as well as When the target access point is not the first access point, it is determined to roam from the first access point to the target access point.
16. The system of claim 15, wherein the one or more processors are further configured to instruct the transceiver to roam from the first access point to the target access point when the target access point is not the first access point.
17. The system of claim 15, wherein the one or more processors are configured to determine the quality score by: calculating the quality score for each access point in the plurality of access points; and The quality score of at least one access point of the plurality of access points is adjusted based at least in part on the roaming reason.
18. The system of claim 17, wherein the one or more processors are configured to calculate the quality score for each of the plurality of access points based on at least one physical attribute of a corresponding access point in the plurality of access points, the at least one physical attribute comprising one or more of: signal strength, signal strength speed, signal-to-noise ratio, or frequency band.
19. The system of claim 17, wherein the one or more processors are configured to adjust the quality score of at least one of the plurality of access points based at least in part on one or more of: based on historical performance of a corresponding access point in the plurality of access points of one or more previous connections within a selected time frame; a roaming advice or disconnection indication provided by the first access point; or Used to change the power consumption of a network or subnet.
20. The system of claim 15, wherein the one or more processors are configured to determine whether to consider roaming by evaluating one or more of the following: a connection quality of the first access point as reported by a network protocol stack or a network policy module of the system; System requirements for said system; the applications currently running on the system; the current operating environment of the system; or The quality score of the first access point.
21. A non-transitory computer-readable medium comprising computer-readable instructions that, when executed by a processor, cause the processor to: determining whether to consider roaming when the computing device is wirelessly connected to a current access point, the computing device being within wireless coverage of a plurality of access points, the plurality of access points including the current access point and at least one candidate access point different from the current access point; generating a roaming reason after the processor determines that roaming is to be considered; determining a quality score for at least one access point of the plurality of access points based at least in part on the roaming reason; selecting a target access point having a highest quality score from among the plurality of access points; as well as When the target access point is not the current access point, it is determined to roam from the current access point to the target access point.
Citation Information
Patent Citations
System and Method for Wireless Roaming
US20230396978A1
Predictive Data Rates for Wireless Roaming and Selection
US20230397098A1
Cited By
Wireless roaming optimization method and system of mobile equipment
CN119815376A
Wireless roaming optimization method and system for mobile device
CN119815376B