Abstract:
Systems and methods are described for managing channel selection among a plurality of mesh points in a wireless network. In one embodiment, a method includes receiving a first announcement that includes channel exclusion information from a first mesh point; managing a distributed channel exclusion list based on the announcement; and generating a second announcement to the first mesh point based on the channel exclusion list.

Description:
CROSS-REFERENCES TO RELATED APPLICATIONS 
     This patent application claims priority to U.S. Provisional Patent Application Ser. No. 61/447,730 filed Mar. 1, 2011 which is incorporated herein by reference in its entirety. 
    
    
     TECHNICAL FIELD 
     The present disclosure generally relates to methods and systems for communicating in a wireless network, and more particularly to methods and systems for selecting a channel in a wireless network. 
     BACKGROUND 
     A wireless network includes at least two network nodes sending and receiving data therebetween on a certain wireless channel. One such wireless network is a mobile mesh network that may or may not be connected to a network outside of the mesh network. Typically, the mesh network will include many more than two nodes, referred to as mesh points, which may be spread out over a large area. The mesh network is not necessarily fully connected. In general, mesh points in the network communicate over a single channel or some subset of available channels. In order to maintain all communicating mesh points on the same channel or subset of channels, the operator selects a channel and configures all mesh points with the same channel. 
     In typical network scenarios, some channels are less desirable for a number of reasons such as interference, signal quality, or the presence or susceptibility to radar interference. Some mesh points perform dynamic frequency selection where the presence of radar on a particular frequency is detected and a different frequency is chosen. The new frequency may be elected based on a tie-breaking method where the elected channel may not necessarily be the best channel, but is one that was chosen through an arbitrary or sub-optimal process. 
     As a result, it is desirable to provide a mechanism for mesh points to select a new channel based on known excluded channels in the network. Other desirable features and characteristics will become apparent from the subsequent detailed description and the appended claims, taken in conjunction with the accompanying drawings and this background of the invention. 
     BRIEF SUMMARY 
     According to various exemplary embodiments, systems and methods are described for managing channel selection among a plurality of mesh points in a wireless network. In one embodiment, a method includes receiving a first announcement that includes channel exclusion information from a first mesh point; managing a distributed channel exclusion list based on the announcement; and generating a second announcement to the first mesh point based on the channel exclusion list. 
     Other embodiments, features and details are set forth in additional detail below. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present invention will hereinafter be described in conjunction with the following drawing figures, wherein like numerals denote like elements, and 
         FIG. 1  is a block diagram of an exemplary wireless communication system that includes a channel management system in accordance with exemplary embodiments; 
         FIG. 2  is a block diagram illustrating data of a channel exclusion announcement that is processed by the channel management system in accordance with exemplary embodiments; 
         FIG. 3  is a dataflow diagram illustrating a channel manager module of the wireless communication system in accordance with exemplary embodiments; 
         FIG. 4  is a flowchart illustrating a channel management method that may be implemented by the channel manager module in accordance with exemplary embodiments; and 
         FIG. 5  is a flowchart illustrating a channel management method that may be implemented by the channel manager module in accordance with other exemplary embodiments. 
     
    
    
     DETAILED DESCRIPTION 
     The following detailed description of the invention is merely example in nature and is not intended to limit the invention or the application and uses of the invention. Furthermore, there is no intention to be bound by any theory presented in the preceding background or the following detailed description. As used herein, the term “module” refers to any hardware, software, firmware, electronic control component, processing logic, and/or processor device, individually or in any combination, including, without limitation: an application specific integrated circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and memory that executes one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality. 
     Turning now to the figures and with initial reference to  FIG. 1 , an exemplary wireless communication system for providing communications between one or more nodes or mesh points (hereinafter referred to as mesh points) is shown to include a channel management system in accordance with exemplary embodiments. Although the figures shown herein depict an example with certain arrangements of elements, additional intervening elements, devices, features, or components may be present in actual embodiments. It should also be understood that  FIG. 1  is merely illustrative and may not be drawn to scale. 
     In the example shown in  FIG. 1 , an exemplary wireless network  10  is shown to include a plurality of mesh points  12   a - 12   n . The mesh points  12   a - 12   n  communicate over a particular channel (e.g., channel  100 ) or a subset of channels. In the wireless network topology shown, mesh point  12   a  can communicate with mesh point  12   b  and mesh point  12   n . Mesh point  12   b  can communicate with mesh point  12   a , mesh point  12   c , and mesh point  12   n . Mesh point  12   c  can communicate with mesh point  12   b , and mesh point  12   n . Mesh point  12   n  can communicate with mesh point  12   b  and mesh point  12   c . Mesh point  12   a  cannot communicate directly with mesh point  12   c  however, can communicate indirectly through mesh point  12   b  or mesh point  12   n.    
     Each mesh point  12   a - 12   n  includes a channel manager module  14  that sends information about excluded channels learned locally and excluded channels learned from other mesh points  12   a - 12   n  in the form of a channel exclusion announcement (CEA)  16 . The CEAs  16  may be exchanged as part of a beacon or other period messages sent by the mesh point  12   a - 12   n . The CEAs  16  may include information such as, but not limited to, a regulatory class of the excluded channels, the excluded channels, and a distance from the originator of the exclusion for each excluded channel. 
       FIG. 2  illustrates one embodiment of the CEA  16 , with each field described in Table 1 below. 
     
       
         
               
               
               
             
           
               
                   
                 TABLE 1 
               
               
                   
                   
               
               
                   
                 Field 
                 Description 
               
               
                   
                   
               
             
             
               
                   
                 ID 
                 Vendor Proprietary IE ID 
               
               
                   
                 Length 
                 Length in bytes 
               
               
                   
                 OUI 
                 Organizational Unique Identifier 
               
               
                   
                 Version 
                 IE Version 
               
               
                   
                 Type 
                 IE Type 
               
               
                   
                 Subtype 
                 IE Subtype 
               
               
                   
                 Reg Class 1 . . . N 
                 The regulatory class of the excluded channel 
               
               
                   
                 CH 1 . . . N 
                 The excluded channel 
               
               
                   
                 Distance 
                 Distance, in hops, from the originator of the 
               
               
                   
                   
                 exclusion entry 
               
               
                   
                   
               
             
          
         
       
     
     With reference back to  FIG. 1 , from the CEAs  16 , the channel manager module  14  maintains a global exclusion list  18  of invalid channels. The channel may be considered invalid because radar was detected on the channel, or operator configuration specifies a channel is not to be used. The exclusion list  18  includes one or more entries  20   a - 20   n  (e.g., one for each excluded channel). Each entry  20   a - 20   n  includes fields  22 - 28 . Each field  22 - 28  stores information for a particular excluded channel. The fields include, for example, but are not limited to, an excluded channel  22 , a distance  24 , a count  26  or other timing mechanism, and a hold count  28  or other timing mechanism. 
     The distance  24  is used to prevent a given excluded channel from being endlessly propagated throughout the wireless network  10 . For example, the distance  24  of an originator of the exclusion is set to zero. At each hop, the distance  24  is incremented. If the distance  24  for the excluded channel is greater than the distance  24  stored in the exclusion list  18  for that excluded channel, the excluded channel is ignored. 
     The count  26  is used to remove excluded channels from the exclusion list  18  after an event has occurred. For example, the count  26  may be used as an aging mechanism to ensure that entries corresponding to radar events are removed after X time has passed; and/or to ensure entries corresponding to a mesh points  12   a - 12   n  with a statically configured excluded channel are removed from the exclusion list  18  when the mesh point  12   a - 12   n  leaves the wireless network  10 . The hold count  28  is used to allow time for an excluded channel to be aged out of neighboring exclusion lists  18  of neighboring mesh points  12   a - 12   n . For example, the hold count  28  may be used as an aging mechanism to hold the excluded channel in the list until Y time has passed. 
     Referring now to  FIG. 2 , and with continued reference to  FIG. 1 , a dataflow diagram illustrates various embodiments of the channel manager module  14  for the wireless network  10  that may be embedded within a mesh point  12   a - 12   n . Various embodiments of channel manager modules  14  according to the present disclosure may include any number of sub-modules embedded within the mesh point  12   a - 12   n . As can be appreciated, the sub-modules shown in  FIG. 2  may be combined and/or further partitioned to similarly manage channel selection in the wireless network  10 . In various embodiments, the channel manager module  14  includes a list manager module  30 , a channel data communication module  32 , and an exclusion list datastore  34 . 
     The list manager module  30  receives as input one or more channel exclusion announcements  36   a - 36   n . Based on the received channel exclusion announcements  36   a - 36   n , the list manager module  30  generates exclusion data  38  and stores the exclusion data  38  as the channel exclusion list  18  in the exclusion list datastore  34 . The exclusion data  38  includes the excluded channel  22 , the distance  24 , the count  26 , and the hold count  28 . The list manager module  30  sets the distance  24 , the count  26 , and the hold count  28  for each excluded channel  22  based on whether the excluded channel  22  is a new channel and based on the distance  24  provided in the received channel exclusion announcement  36   a - 36   n.    
     For example, when the excluded channel  22  is a newly excluded channel, the exclusion data  38  is updated by setting the distance  24  to distance (from the channel exclusion announcement  36   a - 36   n ) plus one, setting the count  26  to X (e.g., thirty seconds); and setting the hold count  28  to Y (e.g., five minutes or 300 seconds). In another example, when the excluded channel  22  is not a newly excluded channel (e.g., is already included as an entry  20   a - 20   n  in the exclusion list  18 ) and the associated distance  24  from the received channel exclusion announcement  36   a - 36   n  is less than the stored distance  24  from the exclusion list  18 , the exclusion list  18  is updated by keeping the distance  24  the same; setting the count  26  to Z (e.g., five seconds); and setting the hold count  28  to W (e.g., five minutes or 300 seconds). In yet another example, when the excluded channel  22  is not a newly excluded channel and the associated distance  24  from the channel exclusion announcement  36   a - 36   n  is greater than the stored distance  24  from the exclusion list  18 , the exclusion data  38  is not changed and the entry  20   a - 20   n  for the excluded channel  22  remains the same. 
     The channel data communication module  32  generates a channel exclusion announcement  40  based on the exclusion data  38  stored in the exclusion list datastore  34 . The channel data communication module  32  retrieves the exclusion list  18  from the exclusion list datastore  34  and evaluates each entry  20   a - 20   n  in the exclusion list  18 . For example, for each entry  20   a - 20   n  in the exclusion list  18 , the channel data communication module  32  evaluates the count  26 , and the hold count  28 . If the excluded channel  22  is a static entry, the entry  20   a - 20   n  containing the excluded channel  22  remains in the exclusion list  18 . If, however, the excluded channel  22  is not a static entry, the count  26  and the hold count  28  are decremented until they each reach zero. Thereafter, the entry  20   a - 20   n  containing the excluded channel  22  is removed from the exclusion list  18 . Once each entry  22   a - 22   n  in the exclusion list  18  has been evaluated, the channel data communication module  32  inserts the remaining excluded channel data  38  from the exclusion list  18  into the channel exclusion announcement  40 . The channel data communication module  32  then generates signals to transmit the channel exclusion announcement  40 , for example, as part of the beacon. 
     After exchanging the channel exclusion announcements  36   a - 36   n  and  40 , each mesh point  12   a - 12   n  has an exclusion list  18  with the same or similar entries  20   a - 20   n . Each mesh point  12   a - 12   n  can then determine a communication channel or a subset of communication channels based on the exclusion list  18 . 
     Referring now to  FIGS. 4 and 5 , and with continued reference to  FIGS. 1-3 , flowcharts illustrate channel management methods that can be performed by the channel manager module  14  of  FIGS. 1 and 3  in accordance with the present disclosure. As can be appreciated in light of the disclosure, the order of operation within the methods is not limited to the sequential execution as illustrated in  FIGS. 4 and 5 , but may be performed in one or more varying orders as applicable and in accordance with the present disclosure. 
       FIG. 4  illustrates a list management method that may be performed by the list manager module  30  in accordance with exemplary embodiments. The list manager method may be scheduled to run based on predetermined events, and/or can run continually at predetermined intervals during operation of the corresponding mesh point  12   a - 12   n.    
     In one example, the method may begin at  100 . It is determined whether a channel exclusion announcement  36   a - 36   n  is received at  110 . If the channel exclusion announcement  36   a - 36   n  is received at  110 , each channel in the channel exclusion announcement  36   a - 36   n  is evaluated at  120 - 170 . For example, it is determined whether the channel is a new channel for exclusion at  130 . If the channel is not a new channel for exclusion, rather the channel is already present in the exclusion list  18  at  130 , the distance associated with the channel is evaluated at  140 . If the distance is greater than the stored distance  24  for the channel at  140 , the exclusion list  18  is updated at  150  by setting the excluded channel  22  equal to the channel, setting the distance  24  equal to the distance in the exclusion list  18 , setting the count  26  equal to five seconds or other time, and setting the hold count  28  to five minutes or other time. If, however, the distance is less than the stored distance  24  for that channel at  140 , the channel is ignored at  160 . 
     If, at  130 , the channel exclusion announcement  36   a - 36   n  includes a new channel, the exclusion list  18  is updated at  170  by setting the excluded channel  22  to the new channel, setting the distance  24  to the distance in the channel exclusion announcement  36   a - 36   n  plus one, setting the count  26  to thirty seconds or other time, and setting the hold count  28  to five minutes or other time. 
     If, at  110 , there are no received channel exclusion announcements  36   a - 36   n , or once each channel in the channel exclusion announcement  36   a - 36   n  is evaluated at  120 , it is determined whether there are any configured exclusions at  180 . If there are configured exclusions at  180 , the exclusion list  18  is updated by setting the excluded channel  22  to the configured exclusion, by setting the distance  24  equal to zero, and by setting the count  26  to thirty seconds or other time, and setting the hold count  28  to zero. Thereafter the method may end at  200 . 
       FIG. 5  illustrates a channel data communication method that may be performed by the channel data communication module  32  in accordance with exemplary embodiments. The channel data communication method may be scheduled to run based on predetermined events, and/or can run continually at predetermined intervals during operation of the corresponding mesh point. 
     In one example, the method may begin at  210 . The exclusion list  18  is processed at  220 - 280 . For example, each entry  20   a - 20   n  in the exclusion list  18  is extracted from the exclusion list  18  at  220  and evaluated at  230 . If the entry  20   a - 20   n  is a static entry, that is, a channel that was configured at the mesh point  12   a - 12   n , the method continues by extracting the next entry  20   a - 20   n  from the exclusion list  18  at  220 . 
     If, however, the entry  20   a - 20   n  is not a static entry at  230 , rather the entry is an entry that has been added from another mesh point  12   a - 12   n , the corresponding count  26  is decremented at  240  and evaluated at  250 . If, at  250 , the count  26  is greater than zero, the method continues by extracting the next entry  20   a - 20   n  from the exclusion list  18  at  220 . If, however, the count  26  is less than or equal to zero at  250 , the hold count  28  is evaluated at  260 . 
     If, at  260 , the hold count  28  is not equal to zero, the hold count  28  is decremented at  270 . If, however, the hold count  28  is equal to zero, the entry  20   a - 20   n  is removed from the exclusion list  18  at  280 . Thereafter, the method continues with extracting the next entry  20   a - 20   n  from the exclusion list  18  at  220 . 
     Once the processing of the exclusion list  18  is complete at  220 , the channel exclusion announcement  40  is updated based on the exclusion list  18  at  290 . The updated channel exclusion announcement  40  is transmitted at  300 ; and the method may end at  310 . 
     As can be appreciated, one or more aspects of the present disclosure can be included in an article of manufacture (e.g., one or more computer program products) having, for instance, computer usable media. The media has embodied therein, for instance, computer readable program code means for providing and facilitating the capabilities of the present disclosure. The article of manufacture can be included as a part of a computer system or provided separately. 
     Additionally, at least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform the capabilities of the present disclosure can be provided. 
     While at least one example embodiment has been presented in the foregoing detailed description of the invention, it should be appreciated that a vast number of equivalent variations exist. It should also be appreciated that the embodiments described above are only examples, and are not intended to limit the scope, applicability, or configuration of the invention in any way. Rather, the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing various examples of the invention. It should be understood that various changes may be made in the function and arrangement of elements described in an example embodiment without departing from the scope of the invention as set forth in the appended claims and their legal equivalents.