A wireless computing device roaming between access points implementing a wireless network may evaluate the access points to omit from roaming consideration any access points with measured signal strengths that do not exceed the signal strength of an AP currently connected to the device by at least a threshold amount. Such omission, however, can lead to suboptimal roaming behavior.
The accompanying figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views, together with the detailed description below, are incorporated in and form part of the specification, and serve to further illustrate embodiments of concepts that include the claimed invention, and explain various principles and advantages of those embodiments.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.
The apparatus and method components have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.
Examples disclosed herein are directed to a method in a controller, the method comprising: establishing a connection with a wireless network; performing a roam scan to detect a plurality of access points of the wireless network; determining that a first access point of the plurality of detected access points satisfies a signal strength criterion; determining that a second access point of the plurality of detected access points is physically co-located with the first access point; and selecting a roaming destination from the first access point and the second access point.
Additional examples disclosed herein are directed to a wireless computing device, comprising: a memory; a communications interface; and a processor configured to: establish a connection with a wireless network; perform a roam scan to detect a plurality of access points of the wireless network; determine that a first access point of the plurality of detected access points satisfies a signal strength criterion; determine that a second access point of the plurality of detected access points is physically co-located with the first access point; and select a roaming destination from the first access point and the second access point.
The physical APs 104 are referred to as such because each physical AP 104 includes an enclosure housing one or more controllers, transceivers, antenna assemblies, and the like. A given network, identified by a service set identifier (SSID), can be implemented by a plurality of APs. For example, the network can be implemented by distinct APs operating at different frequency bands, such as one or more of a 2.4 GHz band, a 5 GHz band, a 6 GHz band, and the like. Client devices within the network, such as a wireless computing device 108 (e.g., a mobile computer, a smartphone, a mobile printer, a barcode scanner, a tablet computer, or the like), can roam between the access points implementing the network, according to signal strength, congestion, band preferences at the client devices, and the like.
The access points implementing the network need not be physically distinct from one another. For example, each physical access point 104 can include sufficient hardware resources (e.g., transceivers, controllers, antenna arrays, and the like) to implement more than one access point. In the illustrated example, the physical AP 104-1 implements three APs 112-1, 116-1, and 120-1. The physical AP 104-2 implements two APs 116-2 and 120-2, and the physical AP 104-3 implements two APs 116-3 and 120-3. The APs 112, 116, and 120 all implement a common network, e.g., having a single SSID. Further, in this example the AP 112-1 operates on a 2.4 GHz band, while the APs 116 operate on a 5 GHz band, and the APs 120 operate on a 6 GHz band. The network, in other words, is deployed by seven APs, which are housed in three distinct physical APs 104.
The device 108 is illustrated as having established a connection 122 with the AP 120-1. As the device 108 travels, e.g., in a direction 124, the device 108 may approach an outer extent of a coverage area 124-1 associated with the physical AP 104-1, and enter a coverage area 124-3 associated with the physical AP 104-3.
When the device 108 approaches the outer extent of the coverage area 124-1 and enters the coverage area 124-3, the device 108 may detect a roaming condition (also referred to as a roam trigger), such as a reduction in signal strength (e.g., a Received Signal Strength Indicator, or RSSI) from the AP 120-1 below a threshold. In response to detecting the roam trigger, the device 108 can collect data identifying a plurality of access points, such as the APs 112-1, 116-1, 120-1, 116-3, and 120-3, to be evaluated as candidates for roaming to. Each of the above-mentioned APs may have a distinct identifier (e.g., a Basic Service Set Identifier or BSSID). The identifier of each AP can include a Media Access Control (MAC) address. Each physical AP 104 can include a controller configured to assign virtual MAC addresses to the individual APs implemented at that physical AP 104, to allow the device 108 to distinguish between and selectively connect with individual APs 112, 116, and 120.
Having collected the data identifying the above-mentioned APs 112, 116, and 120, the device 108 can be configured to retain for further evaluation only those APs that satisfy a signal strength criterion. Also referred to as an RSSI delta check, the signal strength criterion for a given roaming candidate AP can include a comparison of a signal strength measurement from the AP 120-1 (to which the device 108 is currently connected) with a signal strength measurement from the roaming candidate AP. When the signal strength measurement from the roaming candidate AP exceeds the signal strength measurement from the AP 120-1 by at least a threshold amount (e.g., a threshold corresponding to a different in received power of about 5 dBm, although a wide variety of other thresholds and measurement units are also contemplated), the roaming candidate AP can be retained at the device 108 for further evaluation. When the difference does not exceed the threshold, the roaming candidate AP can be discarded. The signal strength criterion can mitigate frequent roam operations back and forth between APs as the device 108 travels between APs.
The signal strength criterion, however, can also lead to the omission of suitable roaming candidates at the device 108. For example, with the device 108 in the position shown in
The device 108 is configured to implement roaming functionality, discussed below in greater detail, that mitigates the omission of suitable roaming candidates by discovering whether APs are physically co-located (e.g., as in the case of the APs 116-3 and 120-3), and exempting certain APs from the signal strength criterion mentioned above under some conditions. As a result of this functionality, the device 108 can therefore retain not only the AP 116-3, but also the AP 120-3, as roaming candidates, and can select the AP 120-3 as a roaming destination, rather than being forced to select the AP 116-3 in the absence of other options.
Certain internal components of the device 108 are also illustrated in
The device 108 also includes a communications interface 142, enabling the device 108 to establish connections with WLANs, such as the network implemented by the APs mentioned above and shown in
The device 108 can include further components (not shown), including output devices such as a display, a speaker, and the like, as well as input devices such as a keypad, a touch screen, a microphone, and the like.
Turning to
At block 205, the device 108 is configured to establish a connection with the network, e.g., with a selected one of the APs implementing the network. As shown in
In response to detecting the roam trigger, the device 108 initiates the roam scan. The roam scan can include cycling the communications interface 142 through a plurality of frequency bands and/or channels within such bands, to detect beacon data broadcast periodically by each AP 112, 116, and 120. In some examples, the roam scan can also include transmitting probe requests, and receiving probe responses, from the APs 112, 116, and 120. Through performance of the roam scan, the device 108 detects a plurality of APs in the vicinity of the device 108, via the receipt of identifying data for each of the detected APs.
Turning to
The identifying data collected at block 210 can be stored at the device 108 for further processing. For example,
Returning to
Turning to
As seen from
Referring again to
The device 108 can identify co-located APs at block 225 from the identifying data obtained at block 210. In some examples, the device 108 can extract an identifier of a co-located AP directly from identifying data received from an AP. Turning to
In some systems, certain APs may make use of the RNR element, while other APs may omit the RNR element. The device 108 can therefore determine, at block 225, whether any APs added to the roam candidate list 400 at block 220 provided RNR elements identifying other APs. The device 108 can also determine at block 225 whether any of the APs that did not satisfy the determination at block 215 provided RNR elements identifying other APs that appear on the roam candidate list 400.
In other examples, instead of or in addition to the use of the RNR or other suitable elements that explicitly identify co-located APs, the device 108 can be configured to identify co-located APs based on comparisons of AP identifiers such as the BSSIDs shown in
As will now be apparent, the identification of co-located APs at block 225, in the specific example illustrated in
Following the performance of blocks 215, 220 and 225 (as well as 230 if co-located APs are present), or following a negative determination at block 215 or block 225, the device 108 proceeds to block 235. At block 235, the device 108 is configured to select a roam action according to the roam candidates (e.g., according to the list 400). A wide variety of mechanisms can be implemented to select a roam action. For example, the device 108 can be configured to select a destination AP to roam to by scoring or otherwise prioritizing each of the APs on the list 400, and selected the highest-scoring AP. Scoring or prioritizing can be based on any combination of signal strength measurements, operating band (e.g., relative to a preferred operating band stored at the device 108), measured congestion, and the like.
The performance of blocks 225 and 230 allow the device 108 to retain as roam candidates APs that may otherwise be discarded as roam candidates due to insufficient signal strength. In the example illustrated in
While the discussion above of the roaming functionality implemented by the device 108 contemplates evaluating the signal strength criterion for each discovered AP before identifying co-located APs, in other examples, the device 108 can traverse the list of APs discovered at block 210 in sequence. For example, turning to
At block 605, having obtained identifying data (e.g., the identifying data 300, 304, 308, 312, and 316 from the APs 112-1, 116-1, 120-1, 116-3, and 120-3) at block 210, the device 108 can be configured to add the currently connected AP (e.g., the AP 120-1) to a “pass” list of devices satisfying the signal strength criterion. The device 108 can also be configured to add any co-located APs identified in an RNR element and/or by BSSID similarity to a “bypass” list.
At block 610, the device 108 is configured to determine whether discovered APs remain to be processed. When the determination is affirmative, the device 108 selects the next AP, e.g., in descending order of signal strength measurement, and proceeds to block 615. Using the signal strength measurements from
At block 625, the device 108 also adds the AP 120-3 to the bypass list 704, as the AP 120-3 is co-located with the AP 116-3.
When no APs remain to be processed, the determination at block 610 is negative, and the device 108 proceeds to block 325, to select a roaming destination from the APs identified in both the lists 700a and 704a.
The device 108 can also implement additional roam trigger criteria, in some examples. In particular, the device 108 can be configured to maintain a preferred band indication, e.g., indicating that APs operating in the 6 GHz band are preferentially selected, when available. In addition to other roam trigger criteria used to initiate a roam scan at block 210, the device 108 can also determine whether an AP co-located with the currently connected AP exists (e.g., from the results of a previous performance of block 210) and operates in the preferred band. When the determination is affirmative, the device 108 can initiate a roam scan, as described above.
In the foregoing specification, specific embodiments have been described. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present teachings.
The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential features or elements of any or all the claims. The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued.
Moreover in this document, relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms “comprises,” “comprising,” “has”, “having,” “includes”, “including,” “contains”, “containing” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises, has, includes, contains a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by “comprises . . . a”, “has . . . a”, “includes . . . a”, “contains . . . a” does not, without more constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises, has, includes, contains the element. The terms “a” and “an” are defined as one or more unless explicitly stated otherwise herein. The terms “substantially”, “essentially”, “approximately”, “about” or any other version thereof, are defined as being close to as understood by one of ordinary skill in the art, and in one non-limiting embodiment the term is defined to be within 10%, in another embodiment within 5%, in another embodiment within 1% and in another embodiment within 0.5%. The term “coupled” as used herein is defined as connected, although not necessarily directly and not necessarily mechanically. A device or structure that is “configured” in a certain way is configured in at least that way, but may also be configured in ways that are not listed.
Certain expressions may be employed herein to list combinations of elements. Examples of such expressions include: “at least one of A, B, and C”; “one or more of A, B, and C”; “at least one of A, B, or C”; “one or more of A, B, or C”. Unless expressly indicated otherwise, the above expressions encompass any combination of A and/or B and/or C.
It will be appreciated that some embodiments may be comprised of one or more specialized processors (or “processing devices”) such as microprocessors, digital signal processors, customized processors and field programmable gate arrays (FPGAs) and unique stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the method and/or apparatus described herein. Alternatively, some or all functions could be implemented by a state machine that has no stored program instructions, or in one or more application specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic. Of course, a combination of the two approaches could be used.
Moreover, an embodiment can be implemented as a computer-readable storage medium having computer readable code stored thereon for programming a computer (e.g., comprising a processor) to perform a method as described and claimed herein. Examples of such computer-readable storage mediums include, but are not limited to, a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a ROM (Read Only Memory), a PROM (Programmable Read Only Memory), an EPROM (Erasable Programmable Read Only Memory), an EEPROM (Electrically Erasable Programmable Read Only Memory) and a Flash memory. Further, it is expected that one of ordinary skill, notwithstanding possibly significant effort and many design choices motivated by, for example, available time, current technology, and economic considerations, when guided by the concepts and principles disclosed herein will be readily capable of generating such software instructions and programs and ICs with minimal experimentation.
The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter.