Patent Publication Number: US-9843494-B2

Title: Channel availability checks with device monitoring

Description:
BACKGROUND 
     Wireless master devices may use available Dynamic Frequency Selection (DFS) channels in addition to typically used wireless local area network channels. For example, access points may use different wireless channels of a DFS band in order to prevent interference caused by using the same wireless local area network channels used by other nearby devices. 
     SUMMARY 
     The following presents a simplified summary of the innovation in order to provide a basic understanding of some aspects described herein. This summary is not an extensive overview of the disclosed subject matter. It is intended to neither identify key elements of the disclosed subject matter nor delineate the scope of the disclosed subject matter. Its sole purpose is to present some concepts of the disclosed subject matter in a simplified form as a prelude to the more detailed description that is presented later. 
     Another implementation provides for a system for performing a channel availability check. The system can include a processor and a computer-readable memory storage device storing executable instructions that can be executed by the processor to cause the processor to initiate a first connection on a first wireless channel with a subordinate device and transmit a beacon to the subordinate device, and to monitor the first wireless channel for a first predetermined amount of time for a connection request from the subordinate device in response to the beacon. The system can include executable instructions that can be executed by the processor to cause the processor to perform the channel availability check to detect energy profiles on a second wireless channel for a second predetermined amount of time after the first predetermined amount of time. The processor can cycle between transmitting the beacon and monitoring the first wireless channel and performing the channel availability check on the second wireless channel until a threshold time is exceeded, the connection request is detected, or an energy profile is detected. The system also can include executable instructions that can be executed by the processor to cause the processor to migrate the first connection to the second wireless channel if the threshold time is exceeded. 
     Another implementation provides method for performing a channel availability check. The method can include initiating, via a processor of a master device, a first connection on a first wireless channel with a subordinate device. The method can also include transmitting, via the processor, a beacon to the subordinate device. The method can further include monitoring, via the processor, the first wireless channel for a first predetermined amount of time for a connection request from the subordinate device in response to the beacon. The method can also further include performing the channel availability check to detect energy profiles on a second wireless channel for a second predetermined amount of time after the first predetermined amount of time. The processor can cycle between transmitting the beacon and monitoring the first wireless channel and performing the channel availability check on the second wireless channel until a threshold time is exceeded, the connection request is detected, or an energy profile is detected. 
     Another implementation provides for one or more computer-readable memory storage devices for storing computer readable instructions that, when executed by one or more processing devices, instruct the performance of a channel availability check. The computer-readable instructions can include code to initiate a first connection on a first wireless channel with a subordinate device and transmit a beacon to the subordinate device. The computer-readable instructions can include code to monitor the first wireless channel for a first predetermined amount of time for a connection request from the subordinate device in response to the beacon. The computer-readable instructions can include code to perform the channel availability check to detect energy profiles on a second wireless channel for a second predetermined amount of time after the first predetermined amount of time. The one or more processing devices can cycle between transmitting the beacon and monitoring the first wireless channel and performing the channel availability check on the second wireless channel until a threshold time is exceeded, the connection request is detected, or an energy profile is detected. The computer-readable instructions can include code to migrate the first connection to a second connection on the second wireless channel if the threshold time is exceeded. 
     The following description and the annexed drawings set forth in detail certain illustrative aspects of the disclosed subject matter. These aspects are indicative, however, of a few of the various ways in which the principles of the innovation may be employed and the disclosed subject matter is intended to include all such aspects and their equivalents. Other advantages and novel features of the disclosed subject matter will become apparent from the following detailed description of the innovation when considered in conjunction with the drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of an example operating environment configured for implementing various aspects of the techniques described herein; 
         FIG. 2  is a timing diagram of an example radar waveform compared to an example duty cycle according to techniques described herein; 
         FIG. 3  shows a process flow diagram of an example method for performing cyclical channel availability checks; 
         FIG. 4  is a block diagram of an example system for performing cyclical channel availability checks; and 
         FIG. 5  is a block diagram showing an example tangible, computer-readable storage medium that can be used to perform cyclical channel availability checks. 
     
    
    
     DETAILED DESCRIPTION 
     Wireless communications are subject to noise from a variety of interference sources, especially in the crowded ISM (Instrumentation, Scientific, and Medical) bands commonly used for local wireless networks. Such interference can degrade user experience. In human interface devices, where latency and responsiveness are commonly expected to operate in the single digit millisecond range, interference adds uncertainty and degrades the human interface experience. For example, in gaming consoles and PC-based gaming configurations that have low latency, connected human interface devices such as controllers may become unusable due to effects of interference on latency. 
     In some embodiments, human interface wireless connections can be operated in a frequency band that has few, if any, interference sources. For example, some bands of the wireless spectrum are used infrequently and thus commonly available. Recognizing that some frequency band allocations for radar and other military usage are rarely occupied across the broader population, the Federal Communications Commission (FCC) and international regulatory bodies have initiated the concept of fair usage or “Dynamic Frequency Allocation”. The process of entering these channels is known as “Dynamic Frequency Selection” (DFS). The frequency bands involved are commonly known as DFS channels. 
     DFS includes a Channel Availability Check (CAC) process. The CAC process is a clearance process for using DFS that can take anywhere from 60 seconds to several minutes to determine if each DFS channel is available and can be used. During the CAC period of the DFS as currently implemented, the access point is unavailable to respond to subordinate device requests. Access points are unable to interact with subordinate devices during the CAC period because the currently approved method has the access points abandon all other activities in order to perform CAC 100% of the time for 60 seconds. Once the access point determines that the DFS channel is clear of radar, the access point can then occupy that channel. After DFS operation is initiated, approved DFS subordinate devices may then operate with the access point (AP) in this band of a DFS channel. However, there are certain classes of wireless devices that cannot allow long disruptions in subordinate service. For example, human interface devices are expected to operate in the single digit millisecond range with respect to latency. Furthermore, the current CAC process may not detect all radar signals due to the length of the pulse repetition period of some radar such as weather radar. 
     This disclosure describes techniques to perform an improved channel availability check (CAC). In particular, using a partial duty cycle, the duration of a CAC can be extended to 15 minutes or more while maintaining availability of a master wireless device to one or more subordinate devices by cycling between monitoring for responses to beacons and performing the CAC. The beacon can thus act as a time synchronization element. In addition to keeping client devices informed of the general housekeeping functions, such as current operating channel and perspective future channel changes, the beacon can provide a time tick so that quiescent wireless client devices know when to signal for attention with a high probability of being heard. As used herein, duty cycle refers to a fraction or percentage of cycle time that a CAC is performed. A beacon, as used herein, refers to a management frame that contains information about a wireless local area network. A cycle refers to a combination of a period of monitoring a first channel for connection requests with a period of performing a CAC. For example, a beacon can be sent to one or more subordinate devices via a non-DFS channel at a predetermined interval such as every 100 milliseconds or any other suitable time period. A CAC may be performed on a potentially available DFS channel for a predetermined time after monitoring for a connection request from any number of subordinate devices in response to the beacon for another predetermined time. Once a predetermined threshold full CAC time is exceeded, such as at least 15 minutes or any other suitable time, then the DFS channel may be considered tested and the master and subordinate devices may begin using the DFS channel. For example, the full CAC time can be equal to any time period including but not limited to 15 minutes. In some examples, in-service monitoring may be performed while the master device is servicing subordinate devices on the tested DFS channel. 
     The techniques thus enable maintenance of uninterrupted data transmission between two wireless devices, while improving upon regulatory detection requirements on DFS channels. For example, the techniques allow wireless devices to avoid the inhibitive “dead space” incurred with the 100% duty cycle CAC scan of the current DFS CAC entry as discussed in greater detailed with respect to  FIG. 1  below. In addition, the techniques herein enable more efficient wireless channel migration by scanning additional wireless channels and detecting available channels via a single integrated circuit. Moreover, the techniques improve the detectability of radar signatures during a CAC scan by increasing the amount of time that the scan is performed. These techniques are described in more detail herein. 
     As a preliminary matter, some of the figures describe concepts in the context of one or more structural components, variously referred to as functionality, modules, features, elements, or the like. The various components shown in the figures can be implemented in any manner, such as software, hardware, firmware, or combinations thereof. In some cases, various components shown in the figures may reflect the use of corresponding components in an actual implementation. In other cases, any single component illustrated in the figures may be implemented by a number of actual components. The depiction of any two or more separate components in the figures may reflect different functions performed by a single actual component.  FIG. 7 , discussed below, provides details regarding one system that may be used to implement the functions shown in the figures. 
     Other figures describe the concepts in flowchart form. In this form, certain operations are described as constituting distinct blocks performed in a certain order. Such implementations are exemplary and non-limiting. Certain blocks described herein can be grouped together and performed in a single operation, certain blocks can be broken apart into multiple component blocks, and certain blocks can be performed in an order that differs from that which is illustrated herein, including a parallel manner of performing the blocks. The blocks shown in the flowcharts can be implemented by software, hardware, firmware, manual processing, or the like. As used herein, hardware may include computer systems, discrete logic components, such as application specific integrated circuits (ASICs), or the like. 
     As to terminology, the phrase “configured to” encompasses any way that any kind of functionality can be constructed to perform an identified operation. The functionality can be configured to perform an operation using, for instance, software, hardware, firmware, or the like. The term, “logic” encompasses any functionality for performing a task. For instance, each operation illustrated in the flowcharts corresponds to logic for performing that operation. An operation can be performed using, software, hardware, firmware, or the like. The terms, “component,” “system,” and the like may refer to computer-related entities, hardware, and software in execution, firmware, or combination thereof. A component may be a process running on a processor, an object, an executable, a program, a function, a subroutine, a computer, or a combination of software and hardware. The term, “processor,” may refer to a hardware component, such as a processing unit of a computer system. 
     Furthermore, the disclosed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computing device to implement the disclosed subject matter. The term “article of manufacture,” as used herein is intended to encompass a computer program accessible from any computer-readable storage device or media. Computer-readable storage media include magnetic storage devices, e.g., hard disk, floppy disk, magnetic strips, optical disk, compact disk (CD), digital versatile disk (DVD), smart cards, flash memory devices, among others. Moreover, computer-readable storage media does not include communication media such as transmission media for wireless signals. In contrast, computer-readable media, i.e., not storage media, may include communication media such as transmission media for wireless signals. 
       FIG. 1  is a block diagram of an example operating environment configured for implementing various aspects of the techniques described herein. The example system of  FIG. 1  is referred to generally by the reference number  100 . 
     The example system  100  includes a master device  102  and a subordinate device  104 . The master device  102  includes a master radio  106 , a cyclical Channel Availability Check (CAC) module, and an antenna  110  that is coupled to the master radio  106 . The subordinate device  104  includes a subordinate radio  112  coupled to an antenna  114 . Antenna  110  is shown sending a beacon  116  and receiving a connection request  118 . Antenna  114  is likewise shown sending connection request  118  and receiving beacon  116 . 
     In the example system  100 , to maintain uninterrupted services between the master device  102  and the subordinate device  104 , and at the same time meet regulatory detection probability requirements on the DFS channels, the master device  102  may momentarily check a status of the subordinate device  104  and spend a majority of time performing a CAC on a partial duty cycle basis extended for a period of time that exceeds a minimum threshold. In some embodiments, the minimum threshold can represent any suitable period of time such as 15 minutes, among others. For example, the partial duty cycle basis may be 93%, which indicates that the master device  102  may spend approximately 93% of a time period performing a CAC. In some examples, a cycle may last a fraction of a second and be repeated for an extended period of time. A cycle can include a period of monitoring for a connection request from a subordinate device and a period of performing a CAC. 
     According to techniques described herein, the cyclical CAC module  108  can allow the master device to transmit a beacon  116  on a non-DFS wireless channel via a master radio  106  and listen for a connection request  118  via the master radio from a subordinate device for a first predetermined amount of time. For example, the first predetermined amount of time may be up to 5 milliseconds, or any other suitable time. If the master device  102  does not detect connection request  118  from the subordinate device  104  within the first predetermined amount of time after transmitting the beacon  116 , the master device  102  can switch over to a DFS channel and perform a CAC check on the DFS channel. For example, the master device  102  can switch over to a DFS channel within a short time such as 1 millisecond and perform CAC for at least a second predetermined amount of time such as 93 milliseconds, or any other suitable time. After performing the CAC, the master device  102  can switch over to a non-DFS channel within another short period of time such as 1 millisecond and send another beacon  116  to the subordinate device  104  via the master radio again. This process can be referred to as a 93% duty cycle CAC. For example, 93 of a total of 100 milliseconds in the repeated cycle can be allocated for the CAC scan. In some examples, the 93% duty cycle can be repeated over a 100 milliseconds time frame. In some embodiments, the master device  102  can spend any suitable amount of time performing a CAC check on a DFS channel and any suitable amount of time monitoring for connection requests in response to beacons. In some examples, the 93% duty cycle CAC can also be performed within an extended CAC duration of at least 15 minutes instead of, for example, the 60 seconds CAC typically use to assess the presence of radar on a DFS channel. By increasing the CAC duration from 60 seconds to at least 15 minutes, the techniques described herein enable more reliable detection of energy profiles such as an energy profile for radar. For example, weather radars may be particularly detected more reliably due to the long scanning intervals of weather radars. 
     In some examples, if there is an interruption from a subordinate device  104  within the CAC duration, the master device  102  can stop the CAC process and service the subordinate device  104  on the non-DFS channel. Thus, the techniques herein avoid the one minute down time associated with traditional CAC scans, allowing a subordinate device  104  to be serviced by the master device  102 . If there is no interruption from a subordinate device  104  via connection requests  118  during the CAC duration, the master device  102  can continue to perform the CAC scan. If the CAC process clears the channel for the presence of radar, the master device  104  can then occupy the DFS channel and begin an in-service monitoring process. As used herein, an in-service monitoring process refers to a monitoring process in which an access point (AP) can listen for radar signatures when not sending data to clients. For example, the in-service monitoring may be performed on a DFS channel being used for an active connection once one or more clients have entered the DFS band. When interactive communication is occurring between the AP and clients, the listen process can be sporadic with a variable interval for listening that is driven by the data content of the communications. 
     Still referring to  FIG. 1 , during in-service monitoring, the master device  102  can begin to transmit beacons at regular intervals, such as every 100 milliseconds or any other suitable time period, on the DFS channel, and then switch to receiver mode to listen for connection requests from the subordinate device  104  and at the same time monitor for radar. The master device  102  may thus be able to monitor for radar while in a receiver mode. If the master device  102  detects radar during in-service monitoring, the master device  102  will communicate to the subordinate device  104  to vacate the DFS channel and move to a non-DFS channel. For example, the master device  102  can initiate a new connection on the non-DFS channel and send a beacon to the subordinate device  104  with the new channel. The subordinate device  104  can then migrate to the new channel in response to the beacon. 
     As discussed in detail with respect to  FIG. 2  below, the 93% duty cycle CAC statistically exceeds FCC radar detection success rate requirements. For example, an aggregate success rate of 80% should pass for radar type 1 to 4 under applicable FCC requirements. For type 5 and 6 radar, the aggregate success rate should pass 80%, and 70%, respectively. As discussed below, the present techniques exceed these detection success requirements while also avoiding the one minute down time associated with traditional CAC scans. 
     The diagram of  FIG. 1  is not intended to indicate that the example system  100  is to include all of the components shown in  FIG. 1 . Rather, the example system  100  can include fewer or additional components not illustrated in  FIG. 1  (e.g., additional devices, radios, antennas, etc.). 
       FIG. 2  is a timing diagram of an example radar waveform compared to an example duty cycle according to techniques described herein. The example timing diagram of  FIG. 2  is generally referred to by the reference number  200  and can be implemented by, for example, the master device  102  of  FIG. 1  or the computing device  402  of  FIG. 4 . 
     In  FIG. 2 , a series of radar bursts  202  are shown with a burst period  204  of one to seven seconds. A timeline  206  depicts a radar burst  202  in detail. The radar burst  202  includes a plurality of pulses  208  having a pulse period  210  and a pulse width  212 . Below the timeline  206 , a duty cycle  200  of length 100 milliseconds  214  is shown on another timeline  216 . The duty cycle  200  begins at non-DFS start time  218 . For an amount of time of about 5 milliseconds, the master radio is using a non-DFS channel  220 . A one millisecond channel switching time  222  is shown between the non-DFS channel setting  220  and a channel availability check (CAC)  224  having a duration time of about 93 milliseconds. Another one millisecond channel switching time  222  is shown following the CAC check  224 . The end of the second 1 millisecond switching time  222  also marks the end  228  of one CAC cycle  200 . 
     As shown in  FIG. 2 , radar signals may be grouped into radar bursts  202  having burst periods typically between one and seven seconds. Each radar burst  202  may include a plurality of radar  208  pulses having a pulse period  210  and pulse width  212  that may vary based on radar type. For example, for radar type 5, pulse period and pulse width are 1 millisecond, and 50 microseconds, respectively. 
     As can be seen in  FIG. 2 , a CAC with a duty cycle of 93% and a total cycle time of 100 milliseconds can detect most radar within the duration time of 93 milliseconds. Using statistics, the probability of a particular success rate using the present techniques can be calculated given a particular radar. For example, type 5 radar can be calculated because type 5 radar is the hardest to detect due to the longer pulse period that radar 5. As calculated statistically, the cumulative probability of detecting a radar type 5 at a success rate of 80% or higher is 99.9959%. As the FCC threshold success rate is 80%, the present techniques more than exceed the FCC threshold success rate. 
     Still referring to  FIG. 2 , to simulate the probability of radar detection for 93% duty cycle CAC, a non-DFS start time  218  can be randomly generated between 0 to 100 milliseconds. As seen in the CAC duty cycle alignment with the radar waveform, the non-DFS start time  218  depicts the start time when the master radio occupies a non-DFS channel to send a beacon to a subordinate device. The CAC start time  226  can be 6 milliseconds after the non-DFS start time. At this time, the master radio can switch to a DFS channel and start the CAC. The CAC duration time  230  is the duration of time the master radio spent on CAC that is aligned to the radar pulses. If the CAC duration time  230  is less than the duration of two radar pulses, the master radio may fail to detect radar. Otherwise, if the CAC duration time is greater than or equal to the duration of two radar pulses, the master radio can successfully detect radar. A large number of simulations were performed using the 93% partial duty cycle and the probability of detecting a type 5 radar operating on a DFS channel was shown to exceed 80%. 
     The diagram of  FIG. 2  is not intended to indicate that the example timing diagram  200  is to include all of the components shown in  FIG. 2 . Rather, the example timing diagram  200  can include fewer or additional components not illustrated in  FIG. 2  (e.g., additional radar bursts, pulses, duty cycles, etc.) 
       FIG. 3  shows a process flow diagram of an example method for performing cyclical CAC checks. The example method is generally referred to by the reference number  300  and can be implemented using computer  402  as described below. The example method  300  can be performed by the example system  100  using the example CAC check  200 , or the master device  102  of  FIG. 1 . 
     At block  302 , the master device initiates, via a processor of the master device, a first connection on a non-DFS wireless channel with a subordinate device. For example, the non-DFS channel may be a wireless local area network channel. Since non-DFS channels are pre-cleared for commercial use, the master device may use the non-DFS channel without any monitoring. For example, a beacon with the non-DFS wireless channel may have been transmitted and received by the subordinate device, and the subordinate device may have transmitted a connection request to the master device. The master device may service the subordinate device on the non-DFS channel at 100% duty cycle. 
     At block  304 , the master device transmits, via the processor, a beacon to the subordinate device. For example, the beacon can be a management frame for wireless local area networks that contains information about the wireless network. In some examples, the transmitted beacon can be the beginning of a cycle that ends at block  324  and starts again at block  304 . For example, the cycle may last 100 milliseconds to coincide with the typical length of a default wireless beacon interval. In some examples, the cycle may begin after a period of time of subordinate device inactivity. For example, the CAC cycle may begin after a predetermined number of beacons have been sent out by the master device and no connection request was received in response. 
     At block  306 , the master device monitors, via the processor, the non-DFS wireless channel for a first predetermined amount of time for a connection request from the subordinate device in response to the beacon. For example, the connection request may be associated with an event from the subordinate device. The event may be, for example, an input from the subordinate device. For example, the input may correspond to the push of a button on a wireless controller or any other suitable input from the wireless controller or another input device. 
     At block  308 , the master device determines whether a connection request is detected. If a connection request is detected, then the method proceeds at block  310 . If no connection request is detected, then the method may proceed at block  312 . 
     At block  310 , the master device stops the CAC and services a subordinate connection request. For example, the subordinate connection request may correspond to an input from the subordinate device. The master device may service the connection request and receive the input from the subordinate device. The subordinate device can then be serviced via the non-DFS wireless channel as usual for any amount of time. In some examples, once a predetermined time of inactivity at the subordinate device has passed, or a predetermined amount of beacons have been sent without any connection response, then the master device may again start the CAC cycle by transmitting a beacon to the subordinate device as described in block  304  above. 
     At block  312 , the master device switches to a DFS wireless channel. In some embodiments, although DFS is used for example, the DFS channel may be any wireless channel subject to restrictions on usage similar to DFS channels. The master device may tune the master radio to the frequency of the DFS wireless channel to monitor for radar signals, among other energy profiles. 
     At block  314 , the master device performs the channel availability check to detect energy profiles on the DFS wireless channel for a second predetermined amount of time after the first predetermined amount of time. For example, the second predetermined amount of time can be a function of the duty cycle to the total time of one cycle. Thus, if the duty cycle is 93% and the total time of one cycle is 100 milliseconds, then the second predetermined amount of time can be 93 milliseconds. In some embodiments, the second predetermined amount of time and the first predetermined period of time can be represented by a formula or ratio. For example, the master device can perform a CAC check for a second predetermined period of time in relation to a first period of time in which the master device attempts to detect a connection request from a subordinate device. 
     At block  316 , the master device determines whether an energy profile has been detected. For example, the energy profile may correspond to any suitable radar type such as radar type 1, 2, 3, 4, 5, or 6. In some examples, the energy profile may correspond to a weather radar. If an energy profile is detected, then the method may continue at block  318 . If no energy profile is detected during the second predetermined amount of time, then the method can continue at block  324 . 
     At block  318 , the master device restarts the CAC using a different DFS channel. For example, the master device may have a store of potentially available DFS channels and restart the CAC using another channel from the list of potentially available DFS channels. In some examples, the master device may also store the detected energy profile in a temporary black list. For example, the detected energy profiles may not be selected for CAC for a predetermined amount of time after detection. 
     At block  320 , the master device determines whether a CAC threshold time has been exceeded. For example, threshold time may be a full CAC time that can be equal to any time period, including but not limited to 15 minutes. 
     If the CAC threshold time has been exceeded, then the method proceeds to block  322 , and the CAC ends. If the CAC threshold time has not been exceeded, then the method can proceed to block  324 . For example, the CAC threshold time may be equal to a full CAC time of 15 minutes or more. 
     At block  322 , the master device stops the CAC. Once the CAC is stopped, the master device can create a second connection via the tested DFS channel and send a beacon to the subordinate device(s) including the DFS channel. In some examples, the master device may then perform in-service monitoring on the DFS channel while servicing the subordinate device(s). If the master device detects an energy profile during in-service monitoring, then the master device may create a third connection on the non-DFS wireless channel and migrate the subordinate device(s) from the second connection on the DFS channel to the third connection on the non-DFS channel. For example, the master device may send a beacon including the non-DFS channel and an instruction to migrate to the non-DFS channel. 
     At block  324 , the master device switches, via the processor, to the first wireless channel. For example, the master device may tune the master radio to the frequency of the first non-DFS wireless channel. The method may then continue to block  304 , where the master device may send another beacon to the subordinate device(s). As described above, the CAC cycle may continue until a connection request is detected at block  308 , an energy profile is detected at block  316 , or the CAC threshold time is exceeded at block  320 . 
     In some examples, the CAC check may be performed to clear a DFS channel for radar or other preferred uses before using the channel. For example, the master device may use the DFS channel if there is no radar or other applications currently using the DFS channel. In some examples, the master device and/or the subordinate device may have a predetermined transmitting power. For example, the predetermined transmitting power may be 10 milliwatts or less when transmitting at DFS frequencies. Operating at a low power may reduce the potential for the master or subordinate device to interfere with devices having priority over the DFS frequencies. 
     This process flow diagram is not intended to indicate that the blocks of the method  300  are to be executed in any particular order, or that all of the blocks are to be included in every case. Further, any number of additional blocks not shown may be included within the method  300 , depending on the details of the specific implementation. 
       FIG. 4  is a block diagram of an example system for performing cyclical channel availability checks. The example system  400  includes a computer  402 . The computer  402  includes a processing unit  404 , a system memory  406 , and a system bus  408 . For example, the computer  402  may be the master device  102  of  FIG. 1  above. In some examples, the computer  402  can be a gaming console. 
     The system bus  408  couples system components including, but not limited to, the system memory  406  to the processing unit  404 . The processing unit  404  can be any of various available processors. Dual microprocessors and other multiprocessor architectures also can be employed as the processing unit  404 . 
     The system bus  408  can be any of several types of bus structure, including the memory bus or memory controller, a peripheral bus or external bus, and a local bus using any variety of available bus architectures known to those of ordinary skill in the art. The system memory  406  includes computer-readable storage media that includes volatile memory  410  and nonvolatile memory  412 . 
     The basic input/output system (BIOS), containing the basic routines to transfer information between elements within the computer  402 , such as during start-up, is stored in nonvolatile memory  412 . By way of illustration, and not limitation, nonvolatile memory  412  can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. 
     Volatile memory  410  includes random access memory (RAM), which acts as external cache memory. By way of illustration and not limitation, RAM is available in many forms such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), SynchLink™ DRAM (SLDRAM), Rambus® direct RAM (RDRAM), direct Rambus® dynamic RAM (DRDRAM), and Rambus® dynamic RAM (RDRAM). 
     The computer  402  also includes other computer-readable media, such as removable/non-removable, volatile/non-volatile computer storage media.  FIG. 4  shows, for example a disk storage  414 . Disk storage  414  includes, but is not limited to, devices like a magnetic disk drive, floppy disk drive, tape drive, Jaz drive, Zip drive, LS-210 drive, flash memory card, or memory stick. 
     In addition, disk storage  414  can include storage media separately or in combination with other storage media including, but not limited to, an optical disk drive such as a compact disk ROM device (CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive (CD-RW Drive) or a digital versatile disk ROM drive (DVD-ROM). To facilitate connection of the disk storage devices  414  to the system bus  408 , a removable or non-removable interface is typically used such as interface  416 . 
     It is to be appreciated that  FIG. 4  describes software that acts as an intermediary between users and the basic computer resources described in the suitable operating environment  400 . Such software includes an operating system  418 . Operating system  418 , which can be stored on disk storage  414 , acts to control and allocate resources of the computer  402 . 
     System applications  420  take advantage of the management of resources by operating system  418  through program modules  422  and program data  424  stored either in system memory  406  or on disk storage  414 . It is to be appreciated that the disclosed subject matter can be implemented with various operating systems or combinations of operating systems. 
     A user enters commands or information into the computer  402  through input devices  426 . Input devices  426  include, but are not limited to, a pointing device, such as, a mouse, trackball, stylus, and the like, a keyboard, a microphone, a joystick, a satellite dish, a scanner, a TV tuner card, a digital camera, a digital video camera, a web camera, and the like. For example, the subordinate device  104  of  FIG. 1  may be an input device  426 . The input devices  426  connect to the processing unit  404  through the system bus  408  via interface ports  428 . Interface ports  428  include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB). 
     Output devices  430  use some of the same type of ports as input devices  426 . Thus, for example, a USB port may be used to provide input to the computer  402 , and to output information from computer  402  to an output device  430 . 
     Output adapter  432  is provided to illustrate that there are some output devices  430  like monitors, speakers, and printers, among other output devices  430 , which are accessible via adapters. The output adapters  432  include, by way of illustration and not limitation, video and sound cards that provide a means of connection between the output device  430  and the system bus  408 . It can be noted that other devices and systems of devices provide both input and output capabilities such as remote computers  434 . 
     The computer  402  can be a server hosting various software applications in a networked environment using logical connections to one or more remote computers, such as remote computers  434 . The remote computers  434  may be client systems configured with web browsers, PC applications, mobile phone applications, and the like. The remote computers  434  can be a personal computer, a server, a router, a network PC, a workstation, a microprocessor based appliance, a mobile phone, a peer device or other common network node and the like, and typically includes many or all of the elements described relative to the computer  402 . 
     Remote computers  434  can be logically connected to the computer  402  through a network interface  436  and then connected via a communication connection  438 , which may be wireless. Network interface  436  encompasses wireless communication networks such as local-area networks (LAN) and wide-area networks (WAN). LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring and the like. WAN technologies include, but are not limited to, point-to-point links, circuit switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL). 
     Communication connection  438  refers to the hardware/software employed to connect the network interface  436  to the bus  408 . While communication connection  438  is shown for illustrative clarity inside computer  402 , it can also be external to the computer  402 . The hardware/software for connection to the network interface  436  may include, for exemplary purposes, internal and external technologies such as, mobile phone switches, modems including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards. 
     The computer  402  can further include a radio  440 . For example, the radio  440  can be a Dual Band 802.11 class monolithic Integrated Circuit (IC). The radio  440  may be a 1×1 radio configured to operate in different bands as discussed above with reference to  FIG. 1 . In some examples, the radio may be a 2×2 radio, a 3×3 radio, or any other suitable radio. 
     An example processing unit  404  for the server may be a computing cluster. Additionally, the disk storage  414  can include modules  422  and store various types of data  424  used to detect priority devices. For example, the disk storage  414  may be an enterprise data storage system, for example, storing data  424  such as energy profiles. The modules  422  include executable instructions that can be executed by the processor to cause the processor to perform the method  300  of  FIG. 3 . 
     The computer  402  includes one or more modules  422  configured to perform cyclical channel availability checks, including a monitor module  442 , a checker module  444 , and a migrator module  446 . The monitor module  442  can initiate a first connection on a first wireless channel with a subordinate device and transmit a beacon to the subordinate device. For example, the first wireless channel may be any non-DFS wireless channel. The monitor module  442  can also monitor the first wireless channel for a first predetermined amount of time for a connection request from the subordinate device in response to the beacon. In some examples, the beacon and the connection request may be transmitted at a predetermined transmitter power. For example, if the beacon or the connection request is transmitted using a DFS channel, then the beacon or connection request may be transmitted at a predetermined transmitted power of 10 milliwatts or less. The checker module  444  can perform the channel availability check to detect energy profiles on a second wireless channel for a second predetermined amount of time after the first predetermined amount of time. For example, the second wireless channel can be a dynamic frequency selection (DFS) channel. The monitor module  442  and the checker module  444  can cycle between transmitting the beacon and monitoring the first wireless channel and performing the channel availability check on the second wireless channel until a threshold time is exceeded, the connection request is detected, or an energy profile is detected. The migration module  446  can migrate the first connection to the second wireless channel if the threshold time is exceeded. For example, the threshold time may be equal to a full CAC time. For example, the full CAC time may be at least 15 minutes. 
     In some examples, the monitor module can stop cycling between performing the channel availability check and monitoring the first wireless channel if a connection request is detected, and service the subordinate device on the first wireless channel. In some examples, the monitor module can stop cycling between performing the channel availability check and monitoring the first wireless channel and service the subordinate device via the first wireless channel if the energy profile is detected. In some examples, the monitor module can monitor for the energy profile on the second wireless channel after the first connection is migrated. For example, the monitor module can perform in-service monitoring on a DFS channel. 
     It is to be understood that the block diagram of  FIG. 4  is not intended to indicate that the computing system  400  is to include all of the components shown in  FIG. 4 . Rather, the computing system  400  can include fewer or additional components not illustrated in  FIG. 4  (e.g., additional applications, additional modules, additional memory devices, additional network interfaces, additional MACs, etc.). Furthermore, any of the functionalities of the energy profile module  440  can be partially, or entirely, implemented in hardware and/or in a processor. For example, the functionality can be implemented with an application specific integrated circuit, in logic implemented in the processor, or in any other device. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-programmable Gate Arrays (FPGAs), Program-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), and Complex Programmable Logic Devices (CPLDs), etc. 
       FIG. 5  is a block diagram showing an example tangible, computer-readable storage medium that can be used to perform cyclical channel availability checks. The tangible, computer-readable storage media  500  can be accessed by a processor  502  over a computer bus  504 . Furthermore, the tangible, computer-readable storage media  500  can include code to direct the processor  502  to perform the current methods. 
     The various software components discussed herein can be stored on the tangible, computer-readable storage media  500 , as indicated in  FIG. 5 . For example, the tangible computer-readable storage media  500  can include a monitor module  506 , a checker module  508 , and a migrator module  510 . In some implementations, the monitor module  506  includes code to initiate a first connection on a first wireless channel with a subordinate device and transmit a beacon to the subordinate device. For example, the first wireless channel may be any non-DFS channel. The subordinate device may be a wireless controller. The monitor module  506  can also include code to monitor the first wireless channel for a first predetermined amount of time for a connection request from the subordinate device in response to the beacon. For example, the first predetermined amount of time may be up to five milliseconds. The checker module  508  can include code to perform the channel availability check to detect energy profiles on a second wireless channel for a second predetermined amount of time after the first predetermined amount of time. For example, the second predetermined amount of time may be 93 milliseconds. The monitor module  506  and checker module  508  may further include code to cycle between transmitting the beacon and monitoring the first wireless channel and performing the channel availability check on the second wireless channel until a threshold time is exceeded, the connection request is detected, or an energy profile is detected. For example, a cycle may have a duration of 100 milliseconds. The migrator module  510  may include code to migrate the first connection to a second connection on the second wireless channel if the threshold time is exceeded. 
     In some examples, the monitor module  506  may also include code to perform in-service monitoring on the second wireless channel after the first connection is migrated. For example, the monitor module  506  can monitor for energy profiles while the second wireless channel is used to service the subordinate device. In some examples, the migrator module  508  may include code to migrate the second connection back to the first wireless channel if an energy profile is detected. For example, if a radar signal is detected, the migrator module  508  may cause the master device and subordinate devices to migrate back to a non-DFS channel until another CAC is successfully completed. In some examples, the checker module  508  may include code to perform the channel availability check on a third wireless channel if the channel availability check detects a priority energy profile on the second wireless channel. For example, the third wireless channel may be another DFS channel that is potentially available for use. In some example, the monitor module  506  may also include code to service the subordinate device if the connection request is detected. For example, the monitor module  506  may cause a master device to service a subordinate device by responding to a detected connection request. 
     It is to be understood that any number of additional software components not shown in  FIG. 5  can be included within the tangible, computer-readable storage media  500 , depending on the specific application. Although the subject matter has been described in language specific to structural features and/or methods, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific structural features or methods described above. Rather, the specific structural features and methods described above are disclosed as example forms of implementing the claims. 
     Example 1 
     This example provides for an example system for performing a channel availability check. The example system includes a processor and a computer-readable memory storage device storing executable instructions that can be executed by the processor to cause the processor to initiate a first connection on a first wireless channel with a subordinate device and transmit a beacon to the subordinate device, and to monitor the first wireless channel for a first predetermined amount of time for a connection request from the subordinate device in response to the beacon. The example system also includes executable instructions that can be executed by the processor to cause the processor to perform the channel availability check to detect energy profiles on a second wireless channel for a second predetermined amount of time after the first predetermined amount of time, the processor to cycle between transmitting the beacon and monitoring the first wireless channel and performing the channel availability check on the second wireless channel until a threshold time is exceeded, the connection request is detected, or an energy profile is detected. The example system also includes executable instructions that can be executed by the processor to cause the processor to migrate the first connection to the second wireless channel if the threshold time is exceeded. Alternatively, or in addition, the processor can stop cycling between performing the channel availability check and monitoring the first wireless channel if a connection request is detected, and service the subordinate device on the first wireless channel. Alternatively, or in addition, the processor can stop cycling between performing the channel availability check and monitoring the first wireless channel and service the subordinate device via the first wireless channel if the energy profile is detected. Alternatively, or in addition, the processor can monitor for the energy profile on the second wireless channel after the first connection is migrated. Alternatively, or in addition, the threshold time can exceed a predetermined full CAC value. Alternatively, or in addition, the beacon and the connection request are to be transmitted at a predetermined transmitted power. Alternatively, or in addition, the second wireless channel can be a dynamic frequency selection (DFS) channel. 
     Example 2 
     This example provides for an example method for performing a channel availability check. The example method includes initiating, via a processor of a master device, a first connection on a first wireless channel with a subordinate device. The example method includes transmitting, via the processor, a beacon to the subordinate device. The example method also includes monitoring, via the processor, the first wireless channel for a first predetermined amount of time for a connection request from the subordinate device in response to the beacon. The example method further includes performing the channel availability check to detect energy profiles on a second wireless channel for a second predetermined amount of time after the first predetermined amount of time, the processor to cycle between transmitting the beacon and monitoring the first wireless channel and performing the channel availability check on the second wireless channel until a threshold time is exceeded, the connection request is detected, or an energy profile is detected. Alternatively, or in addition, the example method may include stopping the channel availability check and servicing the subordinate device on the first wireless channel if the connection request is detected. Alternatively, or in addition, the example method may include stopping the channel availability check and performing the channel availability check on a third wireless channel if the energy profile is detected. Alternatively, or in addition, the example method may include migrating the first connection to a second connection on the second wireless channel if the threshold time is exceeded without any detected energy profile and without any detected connection request. Alternatively, or in addition, the example method may include performing in-service monitoring to detect energy profiles on the second wireless channel and migrating the second connection to a third connection on the first wireless channel if an priority energy profile is detected on the second wireless channel. Alternatively, or in addition, the master device and the subordinate device may operate at a predetermined transmitter power. Alternatively, or in addition, the threshold time may exceed a predetermined full CAC value. Alternatively, or in addition, the second wireless channel may be a dynamic frequency selection (DFS) channel. 
     Example 3 
     This example provides for an example one or more computer-readable memory storage devices for storing computer readable instructions that, when executed by one or more processing devices, instruct the performance of a channel availability check. The computer-readable instructions may include code to initiate a first connection on a first wireless channel with a subordinate device and transmit a beacon to the subordinate device. The computer-readable instructions may include code to monitor the first wireless channel for a first predetermined amount of time for a connection request from the subordinate device in response to the beacon. The computer-readable instructions may include code to perform the channel availability check to detect energy profiles on a second wireless channel for a second predetermined amount of time after the first predetermined amount of time, the one or more processing devices to cycle between transmitting the beacon and monitoring the first wireless channel and performing the channel availability check on the second wireless channel until a threshold time is exceeded, the connection request is detected, or an energy profile is detected. The computer-readable instructions may include code to migrate the first connection to a second connection on the second wireless channel if the threshold time is exceeded. Alternatively, or in addition, the computer-readable instructions may include code to perform in-service monitoring on the second wireless channel after the first connection is migrated. Alternatively, or in addition, the computer-readable instructions may include code to migrate the second connection back to the first wireless channel if an energy profile is detected. Alternatively, or in addition, the computer-readable instructions may include code to perform the channel availability check on a third wireless channel if the channel availability check detects a priority energy profile on the second wireless channel. Alternatively, or in addition, the computer-readable instructions may include code to service the subordinate device if the connection request is detected. 
     What has been described above includes examples of the disclosed subject matter. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the disclosed subject matter, but one of ordinary skill in the art may recognize that many further combinations and permutations of the disclosed subject matter are possible. Accordingly, the disclosed subject matter is intended to embrace all such alterations, modifications, and variations that fall within the spirit and scope of the appended claims. 
     In particular and in regard to the various functions performed by the above described components, devices, circuits, systems and the like, the terms (including a reference to a “means”) used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component, e.g., a functional equivalent, even though not structurally equivalent to the disclosed structure, which performs the function in the herein illustrated exemplary aspects of the disclosed subject matter. In this regard, it will also be recognized that the innovation includes a system as well as a computer-readable storage media having computer-executable instructions for performing the acts and events of the various methods of the disclosed subject matter. 
     There are multiple ways of implementing the disclosed subject matter, e.g., an appropriate API, tool kit, driver code, operating system, control, standalone or downloadable software object, etc., which enables applications and services to use the techniques described herein. The disclosed subject matter contemplates the use from the standpoint of an API (or other software object), as well as from a software or hardware object that operates according to the techniques set forth herein. Thus, various implementations of the disclosed subject matter described herein may have aspects that are wholly in hardware, partly in hardware and partly in software, as well as in software. 
     The aforementioned systems have been described with respect to interaction between several components. It can be appreciated that such systems and components can include those components or specified sub-components, some of the specified components or sub-components, and additional components, and according to various permutations and combinations of the foregoing. Sub-components can also be implemented as components communicatively coupled to other components rather than included within parent components (hierarchical). 
     Additionally, it can be noted that one or more components may be combined into a single component providing aggregate functionality or divided into several separate sub-components, and any one or more middle layers, such as a management layer, may be provided to communicatively couple to such sub-components in order to provide integrated functionality. Any components described herein may also interact with one or more other components not specifically described herein but generally known by those of skill in the art. 
     In addition, while a particular feature of the disclosed subject matter may have been disclosed with respect to one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application. Furthermore, to the extent that the terms “includes,” “including,” “has,” “contains,” variants thereof, and other similar words are used in either the detailed description or the claims, these terms are intended to be inclusive in a manner similar to the term “comprising” as an open transition word without precluding any additional or other elements.