Radio resources management system
Summary by NHIP
Priority-Based Radio Channel Management
The method manages wireless network channels by calculating performance measures and change costs for selected radios. Priorities derive from connected clients, and channel switches occur only when new channel performance exceeds the technical impact cost.
Claim Score by NHIP
Abstract
A radio resource management (RRM) system and method manages radio resources in a wireless network of radio access points (APs). In some embodiments, the channel and/or frequency of radios of the APs are managed based on a prioritization scheme of the radios. In some embodiments, the transmit powers of the radios are managed based on the prioritization scheme. The priorities of the radios is partially based on the priorities of clients connected to the radios. In some embodiments, the RRM system is a centralized controller system. In some embodiments, the RRM system forms a hierarchical network of child and parent nodes. The parent nodes are configured to manage the radios associated with the parent and its child nodes. The parent node with the smallest number of child nodes, which are associated with the selected radio and its neighboring radios, is managing these radios.

Term
Projected expiry 14 March 2036.
- Priority and filed
- Granted
- Today
- Projected expiry
29 claims: 3 independent, 26 dependent
- 1Broadest claimClaim Score 42, average(NHIP)A computer-implemented method for managing radio channels in a wireless network of radio access points, each radio access point comprising a radio, based on priorities of the radios, the method comprising:selecting at least one radio of a radio access point, the at least one selected radio operating on a current channel;for each selected radio: determining all within-range radios by scanning channels of the selected radio for signals from other radios of the radio access points;determining priorities of the selected radio and of the within-range radios;calculating a performance measure for each channel of the selected radio, the performance measure based at least partially on the priority of the selected radio and priorities of the within-range radios;calculating a cost of changing the current channel to a new channel of the selected radio, the new channel having a performance measure that exceeds the performance measure of the current channel, and the cost of changing the current channel comprising a technical impact of changing the channel on the selected radio;and in response to determining that the performance measure of the new channel exceeds the cost of changing the current channel to the new channel, sending a request for changing the current channel to the new channel to the radio access point of the selected radio.
- 15A computer-implemented method for managing radio transmit powers in a wireless network of radio access points, each radio access point comprising a radio, based on priorities of the radios, the method comprising:selecting at least one radio of a radio access point, the selected radio operating on a current channel with a current transmit power;for each selected radio: determining all within-range radios by scanning the current channel of the selected radio for signals from other radios of the radio access points;determining priorities of the selected radio and of the within-range radios;processing at least one of the within-range radios;for each processed within-range radio: in response to the priority of the selected radio exceeding the priority of the processed within-range radio, determining a first amount by which to increase the current transmit power of the selected radio and, in response to the determined first amount exceeding zero, sending a request for increasing the current transmit power of the selected radio by the determined first amount;in response to the priority of the processed within-range radio exceeding the priority of the selected radio, determining a second amount by which to decrease the current transmit power of the selected radio and, in response to the determined amount exceeding zero, sending a request for decreasing the current transmit power of the selected radio by the determined amount.
- 28A computer-implemented method for managing radio resources in a wireless network comprising a plurality of radios, the method comprising:forming a hierarchy comprising a plurality of nodes by: generating a tree structure having a root node and at least one node of the plurality of nodes connected to the root node;assigning each node to be a child node or a parent node, each parent node being configured to manage radio resources of a child node connected to the parent node of the child node, wherein at least two nodes of the plurality of nodes are assigned to be parent nodes, and associating each radio of the wireless network to one node of the plurality of nodes;selecting a radio of the wireless network;determining all neighboring radios of the wireless network that are within range of the selected radio, the neighboring radios including at least two parent nodes;and in response to determining all neighboring radios of the selected radio: identifying all parent nodes associated with the selected radio and with all neighboring radios, selecting one node from all the identified parent nodes so that the selected parent node has the smallest number of child nodes among all identified parent nodes, and managing radio resources of the one radio and all neighboring radios through the selected parent node.
Independent claims3
146 paragraphs in 4 sections, as filed
CROSS REFERENCE TO RELATED APPLICATIONS
0001The application claims the benefit of Provisional Application No. 62/002,629, filed on May 23, 2014, of Provisional Application No. 62/002,632, filed on May 23, 2014, and of Provisional Application No. 62/002,636, filed on May 23, 2014, the contents of which are incorporated herein by reference.
BACKGROUND
00021. Field of Art
0003The disclosure generally relates to the field of wireless radio networks, and in particular, to managing radio channels, radio frequencies and transmit powers in centralized or hierarchical radio networks.
00042. Description of the Related Art
0005In wireless radio networks, e.g., 802.11 WiFi networks, radio resources are generally limited. For example, the radio spectrum of a network is limited to ranges of frequencies and transmit powers. This includes that frequency ranges are divided into sub-ranges (or channels) to ensure a more orderly usage and fixed data bandwidths. In some cases, the channels are grouped together to allow higher data bandwidths by using them simultaneously.
0006When deploying wireless radio networks, the goal is to achieve the maximum coverage area, maximum bandwidth, and minimum levels of interference among the radios of the network. Types of interferences include interferences from unknown sources, e.g., microwave ovens or cordless phones, interferences from other non Wi-Fi radios using the same network protocol, and interferences from known radios that are part of the wireless radio network.
0007In home WiFi radio deployments, one or more radios independently scan available radio frequencies at startup, or while running, to determine the optimal frequency/channel and transmit power of operation. A WiFi radio processor then configured the radio with these optimal settings based on the data received during the independent frequency scans. In enterprise WiFi radio deployments, radios send operational data to a centralized controller system, which processes the data from all the radios to determine the optimal frequency/channel and transmit power for each individual radio.
0008A centralized controller system can receive data on interference, network performance, and analyze which radios are in the range of other radios known to the controller system. The centralized controller system then configures each radio with the determined frequency/channel and transmits power based on the data to improve the bandwidth and reliability of the network.
0009Several implementations of 802.11 WiFi controllers exist that manage radios through radio access points (APs) that are part of the wireless network. While every implementation attempts to optimize each radio to avoid interference and contention with other AP radios, these implementations do not distinguish between the AP radios when managing radio resources of these radios.
BRIEF DESCRIPTION OF DRAWINGS
0010The disclosed embodiments have advantages and features which will be more readily apparent from the detailed description, the appended claims, and the accompanying figures (or drawings). A brief introduction of the figures is below.
0011Figure (FIG.) <b>1</b> illustrates a network of radio access points (APs), including radios, and a radio resources management (RRM) system for managing the radio resources of APs, according to some embodiments.
0012<figref idref="DRAWINGS">FIG. 2</figref> illustrate a network of APs, including radios and gateways (GW), and a RRM system for managing the radio resources of APs, according to some embodiments.
0013<figref idref="DRAWINGS">FIGS. 3A and 3B</figref> illustrate a RRM system for managing the radio resources of APs, according to some embodiments.
0014<figref idref="DRAWINGS">FIGS. 4A and 4B</figref> illustrate a hierarchical network for managing radio resources of APs and AP radios, according to some embodiments.
0015<figref idref="DRAWINGS">FIGS. 5A and 5B</figref> illustrate a RRM system including a plurality of radios operating on various frequency channels, according to some embodiments.
0016<figref idref="DRAWINGS">FIG. 6</figref> illustrates a flowchart of a method for managing radio channels in a wireless network of radio access points, according to some embodiments.
0017<figref idref="DRAWINGS">FIG. 7</figref> illustrates a flowchart of a method for managing radio channels in a wireless network of radio access points, according to some embodiments.
0018<figref idref="DRAWINGS">FIGS. 8A and 8B</figref> illustrate a RRM system including signal maps of a plurality of radios operating on the same frequency channel, according to some embodiments.
0019<figref idref="DRAWINGS">FIG. 9</figref> illustrates a flowchart of a method for managing radio transmit powers in a wireless network of radio access points, according to some embodiments
0020<figref idref="DRAWINGS">FIG. 10</figref> illustrates a flowchart of a method for determining radar interference in a wireless network of AP radios, according to some embodiments.
0021<figref idref="DRAWINGS">FIG. 11</figref> illustrates a flowchart for determining channel performance using averaged performance measures, according to some embodiments.
0022<figref idref="DRAWINGS">FIG. 12</figref> illustrates a flowchart for calculating client drop off cost, according to some embodiments.
0023<figref idref="DRAWINGS">FIG. 13</figref> illustrates a flowchart for estimating neighbor performance, according to some embodiments.
0024<figref idref="DRAWINGS">FIG. 14</figref> illustrates one embodiment of components of an example machine able to read instructions from a machine-readable medium and execute them in a processor (or controller).
0025The Figures (FIGS.) and the following description relate to preferred embodiments by way of illustration only. It should be noted that from the following discussion, alternative embodiments of the structures and methods disclosed herein will be readily recognized as viable alternatives that may be employed without departing from the principles of what is claimed.
DETAILED DESCRIPTION
0026Reference will now be made in detail to several embodiments, examples of which are illustrated in the accompanying figures. It is noted that wherever practicable similar or like reference numbers may be used in the figures and may indicate similar or like functionality. The figures depict embodiments of the disclosed system (or method) for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein. Although the figures only show one of each type of network component, computing module or radio component, in practice, many types of these modules and components exist, and the various types of modules and components communicate with each other on a frequent basis.
0000Configuration Overview
0027A system, method and computer-readable storage medium that includes a radio resources management (RRM) system for managing radio resources, including radio channels, frequency assignments, and radio transmit powers, in a wireless network. The wireless network includes a plurality of radio access points (APs) having radios with each radio wirelessly connected to one or more client devices. Some embodiments of the RRM system employ a prioritization scheme of the radios included in the network to manage the radio resources. Employing a prioritization scheme allows higher priority radios, clients, and networks to achieve increased coverage, better utilized bandwidth, and decreased interference levels. In some embodiments, the RRM system includes an embedded computing system. A “channel” as used herein refers to a radio channel and/or the corresponding frequency or frequencies of the channel, unless stated otherwise. The terms “radio” and “AP radio” are used interchangeably, unless otherwise stated. The terms “access point” and “radio access point” are used interchangeably, unless otherwise stated.
0028In some embodiments, the RRM system includes either a hierarchical network of radio-resource managing node or a centralized system, which reduces the cost and complexity of managing the resources to the AP radios while improving bandwidth and network reliability as compared to each AP being stand-alone and managing its radios by itself. In turn, the radio access points are connected to the RRM system via a network. In some embodiments, the RRM system is a centralized system that manages all the radio access points included in the network. In some embodiments, the RRM system forms a hierarchical network of parent and child nodes, distributing the management power to lowest parent nodes in the hierarchy for managing all network radios that have overlapping coverage area.
0029In some embodiments, the system and method for managing radio channels in a wireless network of radio APs that include radios comprise the following steps. Managing the radio channels is based at least partially on the priorities of the AP radios. The method includes first selecting at least one radio of a radio access point. The at least one selected radio operates on a current channel. For each selected radio, the method includes determining all within-range radios of the radio APs by scanning channels of the selected radio for signals from other radios of the radio APs. The next step includes determining the priorities of the selected radio and all within-range radios. In the method, a performance measure is calculated for each channel of the selected radio. The performance measure is based at least partially on the priority of the selected radio and the priorities of the within-range radios. Furthermore, the cost of changing the current channel to a new channel of the selected radio is calculated with the new channel having a performance measure that exceeds the performance measure of the current channel. Upon determining that the performance measure of the new channel exceeds the cost of changing the current channel to the new channel, a request for changing the current channel to the new channel is sent to the radio access point of the selected radio.
0030In some embodiments, the system and method for managing radio transmit powers in a wireless network of radio APs that include radios comprise the following steps. Managing the radio transmit powers is based at least partially on the priorities of the AP radios. The method includes first selecting at least one radio of a radio access point. The selected radio operates on a current channel with a current transmit power. For each selected radio, the method includes determining all within-range radios by scanning the current channel of the selected radio for signals from radios of the radio access points. The method further includes determining priorities of the selected radio and of the within-range radios, processing at least one of the within-range radios. For each processed within-range radio, in response to the priority of the selected radio exceeding the priority of the processed within-range radio, an amount by which to increase the current transmit power of the selected radio is determined. For each processed within-range radio, in response to the priority of the processed within-range radio exceeding the priority of the selected radio, an amount by which to decrease the current transmit power of the selected radio is determined. Upon the determined amount exceeding zero, the method includes sending a request for changing the current transmit power of the selected radio by the determined amount.
0031In some embodiments, managing radio resources is based on historical data received from the radios included in network. In some embodiments, the system and method includes averaging performance measures or increases/decreases in transmit powers over an extended time period to determine future channel changes or future increase/decreases in transmit powers. In some embodiments, the system and method considers recent channel changes to avoid repeated channel changes to the same reoccurring channels. In some embodiments, the system and method considers recent increases/decreases in transmit powers to avoid fluctuating transmit power changes by subsequent increases and decreases in transmit power.
0032In some embodiments, the system and method for managing radio resources in a wireless network comprising a plurality of radios includes the following steps. Embodiments of the system and method include forming a hierarchy comprising a plurality of nodes. One step of forming the hierarchy includes generating a tree structure having a root node and at least one node of the plurality of nodes connected to the root node. Another step of forming the hierarchy includes assigning each node to be a child node or a parent node. Each parent node of the hierarchy is configured to manage radio resources of a child node connected to the parent node of the child node. Furthermore, a step of forming the hierarchy includes associating each radio of the wireless network to one node of the plurality of nodes. The method further includes selecting a radio of the wireless network, and determining all neighboring radios of the wireless network that are within range of the selected radio by scanning the channels of the selected radio for signals from the neighboring radios. In response to determining all neighboring radios of the selected radio, all parent nodes associated with the selected radio and with all neighboring radios are identified. One node from all the identified parent nodes is selected so that the selected parent node has the smallest number of child nodes among all identified parent nodes. The radio resources of the selected radio and all neighboring radios are then managed through the selected parent node.
0000Radio Resources Management System
0033<figref idref="DRAWINGS">FIG. 1</figref> illustrate a network of radio access points <b>110</b> that include one or more radios <b>120</b> and a radio resources management (RRM) system <b>100</b> for managing the radio resources of radio access points (APs) <b>110</b>, according to some embodiments. The RRM system <b>100</b> facilitates managing radio resources, including, for example the channels, frequencies and transmit powers used by an AP's radios based on the radios' priorities that are determined by the RRM system <b>100</b>. In some embodiments, the RRM system <b>100</b> controls radio channel, frequency and transmit power based on interference and non-interference related priorities to allow higher priority radios <b>120</b>, clients <b>130</b>, and networks to achieve better coverage, bandwidth, and interference levels. For example, the RRM system <b>100</b> assigns a unique channel and frequency to a high priority radio or increases the radio's transmit power, while low priority radios share the remaining channels and frequencies or transmit at a reduced power. In some embodiments, the control of RRM system <b>100</b> over APs <b>110</b> and radios <b>120</b> is centralized in a RRM server running a RRM system application. In some embodiments, the control over Aps <b>110</b> and radios <b>120</b> is distributed over the network with the RRM system <b>100</b> managing AP gateways that manages one or more APS <b>110</b>.
0034Each radio <b>120</b> of AP <b>110</b> wirelessly communicates to one or more clients <b>130</b>, as indicated by the dashed lines in <figref idref="DRAWINGS">FIG. 1</figref>. Each AP <b>110</b> also communicates through a network <b>102</b> to the RRM system <b>110</b> that manages the radio resources of each AP <b>110</b> and its radios <b>120</b>. Each AP <b>110</b>, in turn, controls the properties and resources of its radios <b>120</b> as instructed by the RRM system <b>110</b>. In some embodiments, as shown in <figref idref="DRAWINGS">FIG. 1</figref>, the RRM system <b>100</b> communicates with a Remote Authentication Dial In User Service (RADIUS) or Authentication, Authorization, and Accounting (AAA) management server <b>140</b> for controlling access and authentication to the network, which includes network <b>102</b> and the wireless network formed by the APs <b>110</b>, radios <b>120</b>, and clients <b>130</b>. In this network, the RRM system <b>100</b>, the APs <b>110</b>, the radios <b>120</b>, the clients <b>130</b>, and the RADIUS or AAA management server <b>140</b> are all communicatively coupled through communication protocols (e.g., the internet, WiFi, 3G, 4G or LTE protocol), with the communication connections shown as lines in <figref idref="DRAWINGS">FIG. 1</figref>. In some embodiments, the RADIUS server or AAA server communicate the radio resources, including the client priorities and service type parameters to the RRM system during authentication. In some embodiments, the network forms a local area network, a wide area network, a metropolitan area network, a mobile, a wired or wireless network, a private network, a public network, a virtual private network or any combination thereof.
0035In some embodiments, the APs are 802.11 WiFi access points that include one or more WiFi radios. Examples of WiFi radios include, but are not limited to, 802.11b/g/n radios transmitting in the 2.4 GHz band, having configurable channels from 1-14 with configurable transmit power levels from 0 to 1 Watts, depending on the country and the channel for which the radios are used. Another example of WiFi radios are 802.11a/n/ac radios in the 5 GHz band, which have configurable channels from 7 to 196 and configurable transmit power levels from 0 to 1 Watts, depending on the country and channel for which the radios are used. An AP uplinks (i.e., communicatively couples) via either Ethernet, WiFi networks, cellular networks, or other networks to the RRM system <b>100</b> that acts as a controller of the AP <b>110</b>, its radios <b>120</b> and any clients <b>130</b> connected to the AP <b>110</b> or its radios <b>120</b>. An AP <b>110</b> includes a number of different computing components (e.g., a processor and RAM) that are programmed to communicate using a communication network, which runs locally on the AP <b>110</b> and includes an internal data bus. In some embodiments, the communication protocol that the AP's components use includes a networking protocol such as transmission control protocol/internet protocol (TCP/IP), UDP, CAPWAP (RFC 5246), or COAP protocol. Software running on the computing components of the AP establishes the network connection to the controller of RRM system <b>100</b> and sends statistics of the AP <b>110</b> and its radios <b>120</b>, information about neighbor APs and radios, and interference data to the controller. Upon receiving configuration data from the controller, the AP software configures the AP <b>110</b> and/or its radios.
0036Each radio <b>120</b> of AP <b>110</b> has configurable settings, including, for example, the channel, the width of the channel, and the transmit power of the channel the radio is operating on. In addition, each radio <b>120</b> scans the operating channel and monitors any clients <b>130</b> within range of the radio's coverage area. Information that the radio <b>110</b> obtains from clients <b>130</b> include, for example, service set identifiers (SSIDs), basic SSIDs, extended SSIDs, received signal strength indication (RSSI) and the like. The radios <b>120</b> also monitor discovery packets from beacons that are within range of the radio's coverage area.
0037In some embodiments, a radio that is configured with an SSID broadcasts beacons (if configured) or responds to probe requests. In some embodiments, the radios periodically scan all channels performing probe requests, and waiting (i.e., listening) for responses. When a radio receives (i.e., hears) a beacon message or probe response from another radio, the radio records the channel, channel width, RSSI, and BSSID for that message or response. By comparing the BSSID of the message to a table that maps the BSSID to a particular radio ID, the RRM system determines radios that are within range of the receiving radio. If no BSSID is found in the table, the RRM system considers the radio to be an unknown neighbor radio. Accordingly, a radio listens to other neighboring radios. Increasing the transmit power of a radio increases the probability of other radios falling within the range of that radio. Decreasing the transmit power decreases the probability of other radios falling within the radio's range.
0038The data generated by the radios <b>120</b> includes usage information of each channel including transmission time, interference time, idle time, transmission throughput, transmit power and the like. A radio <b>120</b> also generates usage information for each client <b>130</b> that is connected to the radio <b>120</b>, which, for example, include client throughput, transmit retries, error rates, and signal strength of the client <b>130</b>. For determining channel usability, the radios <b>120</b> determine spectral interference for each channel representing interference caused by devices other than access points <b>110</b> and their radios <b>120</b>. For example, spectral interference is caused by microwave ovens, Bluetooth devices, wireless game controllers, and the like. In some embodiments, a radio <b>120</b> is classified as a being public or private with a public radio allowing any client <b>130</b> to access the radio, while a private radio restricts access to an authorized subset of clients.
0039In some embodiments, the clients <b>130</b> are mobile devices and larger computing devices. Examples of mobile devices include mobile phones, tablets, PCs, laptops and the like. Each client has associated traffic patterns and traffic quality of service (QoS). In some embodiments, the QoS, which the client <b>130</b> experiences, is associated with a service plan. If a client <b>130</b> is associated, for example, with a high level service plan, the RRM system <b>100</b> controls the corresponding AP <b>110</b> and radio <b>120</b> to allow the client <b>130</b> access to broader bandwidth and lower latency.
0040The RRM system <b>100</b> includes a number of different computing modules and radio components that are all communicatively coupled with each other or other components of the network, according to some embodiments. In some embodiments, the parts of the communication network run locally on a server of the RRM system and includes an internal data bus. In addition, the computing modules of the RRM system <b>100</b> and APs <b>110</b> are programmed to communicate with each other using a networking protocol, for example, a transmission control protocol/internet protocol (TCP/IP). Other examples of a networking protocol between the APs and RRM system <b>100</b> is UDP, CAPWAP (RFC 5246), or COAP protocol. In case that the RRM system <b>100</b> and APs <b>110</b> are accessible via a TCP/IP network, the RRM system <b>100</b> and APs <b>110</b> can communicate using various other types of management and control plane type protocols. In some embodiments, the APs <b>110</b> discover the RRM system <b>100</b> in form of a centralized controller on a local network by using broadcast and multicast discovery that is configured with server address of the RRM system <b>100</b> or by being directed to the RRM server through a DNS or DHCP mechanism.
0041In some embodiments, as illustrated in <figref idref="DRAWINGS">FIG. 2</figref>, the network of radio access points <b>110</b>, radios <b>120</b> and radio resources management (RRM) system <b>100</b> forms a hierarchical structure. In the embodiment of <figref idref="DRAWINGS">FIG. 2</figref>, an AP (<b>110</b><i>a</i>, <b>110</b><i>d</i>, and <b>110</b><i>f</i>) communicates through a gateway (GW) device (<b>120</b><i>c</i>, <b>120</b><i>d</i>, <b>120</b><i>f</i>) in form of another AP (<b>110</b><i>b</i>, <b>110</b><i>c</i>, and <b>110</b><i>e</i>) with the RRM system <b>100</b> via the network <b>102</b>. The GW device <b>120</b> acts as the controller of any APs and radios that are linked downstream to the GW device <b>120</b>. As such, the controller of the GW device <b>120</b> represents a parent node in the hierarchical representation, while the APs and radios that the controller manages are represented by child nodes. The RRM system <b>100</b> represents the root node of the hierarchy for all GW devices, APs and radios in the network. In some embodiments, the controllers of all APs included in the network are centralized in a single RRM system <b>100</b> that runs one or more controllers. In some embodiments, the controllers of individual APs and their radios run on separate GW devices that are themselves controlled by other GW devices or the RRM system <b>100</b>. In some embodiments, a child device discovers a parent device on its upstream network interface using broadcast/multicast discovery that is configured network addresses of the parent nodes or by being directed to a parent controller through a DNS or DHCP mechanism. In some embodiments, the AP radios and APs connect to GW/radios using an IP based protocol. In some embodiments, AP radios and AP connect to the GW/radios using a TCP/IP, UDP, CAPWAP (RFC 5246), or COAP networking protocol. In some embodiments, the gateways/radios connect to the root radio manager <b>210</b> of the RRM system <b>100</b> using an IP based protocol, which also is added into the hierarchy.
0042In some embodiments, the GW devices optionally include one or more WiFi radios that include 802.11b/g/n radios in the 2.4 GHz band and 802.11a/n/ac radios in the 5 GHz band. As described above, the 802.11b/g/n radios have configurable channels from 1-14 and transmit power levels from 0 to 1 Watts, whereas the 802.11a/n/ac radios are configurable for channels from 7 to 196 and for transmit power levels from 0 to 1 Watts. In addition, the configuration channel and transmit power depends on the country and the channel for which the radios are used. A GW device uplinks (i.e., communicatively couples) via either Ethernet, WiFi networks, cellular networks, or other networks to the RRM system <b>100</b> or other separate GW devices that can act as controllers of the GW device and its corresponding APs, radios and any clients connected to the GW device, its APs, and radios. The GW device, similar to an AP, includes a number of different computing components (e.g., a processor and RAM) that are programmed to communicate using a communication network, which runs locally on the GW device and includes an internal data bus. In some embodiments, the communication protocol that the GW components use includes a networking protocol such as transmission control protocol/internet protocol (TCP/IP). Software running on the GW device establishes the network connection to the (parent) controller and sends statistics of the GW device and of its corresponding APs and radios, information about neighbor APs and radios, and interference data to the controller. Upon receiving configuration data from the controller, the gateway software configures the gateway, its APs and/or its radios. Represented as a hierarchical structure, the GW device is a parent node of the radios included in the gateway, the downstream-linked APs controlled by the GW device, the radios of the controlled APs. The GW radios, the controlled APs and radios of the controlled APs represent child nodes to the gateway parent node. Any client communicatively coupled to the GW device, its radios, the controlled APs, and the radios of the controlled APs represents a child node to the gateway parent node, too.
0043In a hierarchical network, the radios periodically gather WiFi interference data from other radios or WiFi devices in the network, as well as non-WiFi interference. In some embodiments, an AP radio <b>120</b> first scans for interference before being assigned with an operating channel by the AP <b>110</b>. The AP <b>110</b> analyzes this scanned data, looking for WiFi neighbors, i.e. radios within range of the coverage area of the AP radio <b>120</b>. For each WiFi neighbor, the AP <b>110</b> will send a request to its parent controller requesting whether the WiFi neighbor is part of its network. The parent controller looks at its managed WiFi devices for the WiFi neighbor, and if present in the list of known devices, informs the AP <b>110</b> that the device is handled by the parent controller. If the device is unknown to the parent controller, the parent controller requests its parent controller whether the WiFi device is known to the parent of the parent controller. This ascending of the hierarchy continues until there are no more parent nodes to be found with the last request sent to the root node. In this case, since none of the parent nodes, including the root node, know the WiFi neighbor, the RRM system <b>100</b> informs the AP <b>110</b> that the WiFi neighbor is unknown to the RRM system <b>100</b>. If ascending the network hierarchy yields a parent node that knows the WiFi neighbor, the controller of this node sends the parent index back to the AP that send out the original request about a WiFi neighbor. In some embodiments, if an AP radio <b>120</b> has only unknown WiFi neighbors, meaning WiFi neighbors not controlled by any parent node of the hierarchical network, the AP radio manages its own channel, frequency and transmit power settings. In some embodiments, if one of the WiFi neighbors is handled by a parent controller, the parent controller manages the radio parameters of the AP radio <b>120</b> and its corresponding AP <b>110</b> by using a parent index passed to it. The parent checks this parent index against its own index, and if it matches, manages the AP radio <b>120</b> and its corresponding AP <b>110</b>. In case this parent index does not match its own index, the parent controller passes the parent index to its own parent controller, which in turn passes the index to its parent controller, until a match to parent index is found. The parent controller with the matching parent index then manages the AP radio <b>120</b> and its corresponding AP <b>110</b>.
0044In some embodiments, as illustrated in <figref idref="DRAWINGS">FIG. 3A</figref>, the RRM system <b>100</b> includes a number of different computing systems including a load balance <b>302</b>, a radio resource management (RRM) engine <b>304</b>, an AP registration module <b>306</b>, an AP data collection engine <b>308</b>, an AP configuration module <b>310</b>, a hierarchy processing module <b>312</b>, and a RRM database <b>314</b>. Through the AP configuration module <b>310</b> the RRM system <b>100</b> manages the radio resources, including the radio channels, frequencies, and transmit powers of each AP radio included in the network.
0045The different computing systems included in the RRM system <b>100</b> are all communicatively coupled through a communications network (e.g., the internet), and may be programmed to communicate with each other using a networking protocol such as transmission control protocol/internet protocol (TCP/IP). In some embodiments, the communication network runs locally on a server of the RRM system <b>100</b> and includes an internal data bus. The different computing systems of the RRM system <b>100</b> include, for example, a processor, RAM and storage for running the RRM software. The RRM software establishes a network connection between the nodes in the network, including gateways, Aps <b>110</b>, radios <b>120</b>, other RRM servers or network servers, sending and receiving data between network nodes through the network connection. In some embodiments, other network servers, for example RADIUS or AAA servers <b>140</b>, provide additional information about network nodes, e.g., client priorities based on client IDs. In some embodiments, the network server receives data about the network nodes from RRM database <b>314</b> of the RRM system <b>100</b>, and provide access, priority and other information in return to the RRM engine <b>304</b>.
0046The hierarchy processing engine <b>312</b> includes a radio root manager <b>210</b> and controls all radio nodes (i.e. child nodes with respect to the root node) in the network. The hierarchy processing engine <b>312</b> through the AP configuration module <b>310</b> sends configurations of radio resource parameter to the gateways, APs <b>110</b>, and radios <b>120</b> in the network as provided by, for example, the operator of RRM system <b>100</b> or the RRM engine <b>304</b>. In some embodiments, as illustrated in <figref idref="DRAWINGS">FIG. 3B</figref>, the AP configuration module <b>310</b> sends the configuration data through a downstream network management protocol to an RRM AP agent <b>326</b> running on the AP. Upon receipt of the configuration data, the radio configuration module <b>330</b> configures the AP <b>110</b> and any radio <b>130</b> specified in the configuration data. The radio data collection module <b>332</b> of the RRM AP agent <b>326</b> returns statistics of the AP <b>110</b> and its radios <b>130</b>, information about neighbor APs and neighbor radios, and interference data back to AP data collection module <b>308</b> through an upstream network management protocol.
0047The RRM database <b>314</b> stores statistics and data, including configuration information and interference, received through the AP data collection module <b>308</b> from various network components, including any gateways, Aps <b>110</b>, radios <b>120</b> and clients <b>130</b>. The RRM system <b>100</b> has access to the RRM database <b>314</b> for storing data from the APs <b>110</b>, configuration for the APs <b>110</b>, and data on priorities for SSIDs, clients <b>130</b>, and other network data. The RRM database <b>314</b> additionally stores information generated by the RRM engine <b>304</b> for any network node and associates the data with the node. For example, data and information stored in the RRM database <b>314</b> includes radios <b>120</b>, channels, interference, noise, traffic, neighbor access points, channel utilization and transmit power associated with each AP <b>110</b> and radio <b>120</b>.
0048The AP data collection module <b>308</b> collects information from each access point <b>110</b> in the network, according to some embodiments. In some embodiments, the AP data collection module <b>308</b> implements a fetch (pull) mechanism. In these embodiments, the AP data collection module <b>308</b> communicates with an AP <b>110</b> to fetch (pull) the information from the AP <b>110</b> after a timer <b>316</b> associated with the AP <b>110</b> has expired, storing the information in the RRM database <b>314</b>. Upon restarting and expiring of the timer <b>316</b>, the AP data collection module <b>308</b> continues to periodically fetch (pull) information from the AP <b>110</b> associated with the timer. In some embodiments, the AP data collection module <b>308</b> uses a push mechanism to communicate with the RRM AP agent <b>326</b> managing the AP <b>110</b>. In these embodiments, the AP data collection module <b>308</b> receives information from RRM AP agent <b>326</b> of the AP <b>110</b> by the RRM AP agent <b>326</b> sending the information upon timer <b>328</b> of the RRM AP agent <b>326</b> expiring.
0049The load balancer <b>302</b> distributes the load of managing all APs <b>110</b> in the network among multiple RRM engines <b>304</b> included in the RRM system <b>100</b>, according to some embodiments. In some embodiments, each RRM engine <b>304</b> includes its separate timer <b>316</b>. In these embodiments, the load balancer <b>302</b> dynamically assigns an AP <b>110</b> included in the network to an RRM engine <b>304</b>. In some embodiments, this dynamic assignment of APs <b>110</b> is based on the capacity and current status of each RRM engine <b>304</b>.
0050The RRM engine <b>304</b> monitors any AP <b>110</b> assigned by the load balancer <b>302</b> during the runtime of its AP timer <b>316</b>. The RRM engine <b>304</b> configures the timer <b>316</b> to trigger a RRM algorithm when the timer <b>316</b> expires. The RRM algorithm is described in further detail with respect to <figref idref="DRAWINGS">FIGS. 6, 7, 9, and 10-13</figref>. The timer <b>316</b> is configured based on the channel configuration of the APs <b>110</b> monitored by the RRM engine <b>304</b>. The APs <b>110</b> that have a valid channel configuration are set up with a default timer. In some embodiments, if an AP <b>110</b> is added to the network and does not have a valid channel configuration, upon registration of the added AP <b>110</b> with the AP registration module <b>306</b>, RRM engine <b>304</b> configures the newly added AP <b>110</b> with an internal timer retrieved from the RRM database <b>314</b>. In some embodiments, the wait time of the internal timer is less than the wait time of the default timer. After the timer <b>316</b> expires, the channel performance module <b>320</b> computes the channel performance of all channels for all radios of the AP <b>110</b> as part of the RRM algorithm. The cost-benefit module <b>322</b> as part of the RRM algorithm calculates the cost of changing the current channels for each radio <b>120</b> of the AP <b>110</b> based on the priority and performance impact of the radios, including neighbor radios. The RRM algorithm continues with the channel selection module <b>324</b> determining whether to change the channel of a particular radio <b>120</b> of the AP <b>110</b> based on the channel performance and cost calculation. Similarly, the transmit power control module <b>336</b> determines whether to increase or decrease the transmit power of each radio <b>120</b> of the AP <b>110</b> based on the radios' priority level.
0000Hierarchical Radio Network
0051In some embodiments, as illustrated in <figref idref="DRAWINGS">FIGS. 4A and 4B</figref>, a hierarchical radio network employs independent nodes to manage the radio resources, e.g., radio channel, frequency and transmit power, of radio clients, APs <b>110</b>, radios <b>120</b>, gateways and other network components. The nodes represent devices or systems included the network, e.g., the APs <b>110</b>, radios <b>120</b>, the GW devices, and the root radio manager. Which parent node in the hierarchy manages a radio depends on the other network radios that are within range of the coverage area of that radio. With an increase in network radios falling within range of each other's coverage areas, the hierarchical network becomes increasingly more centralized. In the limit of all radios having overlapping coverage areas, the root node ends up managing all network nodes and their radio resources and is part of the hierarchical network.
0052In some embodiments, parent nodes with managing authority have zero or more child nodes. Each parent node is configured to manage its radio resources and the radio resources of its children by maintaining in a database including a list of all radios, which the parent node has the authority to manage. As shown in <figref idref="DRAWINGS">FIGS. 4A and 4B</figref>, the network hierarchy is represented by a tree structure with links between parent and child nodes. In addition, each node maintains a list of other radios with overlapping coverage areas. When adding a radio to the network, the radio sends WiFi packets on its serving channel to announce its presence. The radio also receives WiFi packets on its serving channel and non-serving channels to detect the presence of other radios. In some embodiment, as illustrated in <figref idref="DRAWINGS">FIGS. 4A and 4B</figref>, all leaf child nodes are radios, but non-leaf nodes optionally include radios in addition to being parent controllers that manage the radio resources of their child nodes. To operate the controller, non-leaf nodes include different computing systems that have processors, memory, and network connections.
0053A parent node that manages other child nodes is configured to retrieve data, statistics, and status from each radio of its child nodes. The parent node uses this data to run a RRM algorithm to manage its child radios and their radio resources. By selecting the channels, frequencies and adjusting the transmit powers of its child radios, the parent node minimizes interference between the radios, mitigates interference from unknown WiFi neighbors and non-Wifi sources, and limits interference to known WiFi neighbors. The radio configurations determined by the RRM algorithm are then communicated to the radios to be configured using an IP based control plane protocol. The parent nodes also connect to the root in form of the root radio manager using an IP based protocol.
0054Every node keeps track of its parent node and maintains a list of all its children. Every node also maintains a depth index with the top of the tree structure being index <b>1</b>. All nodes connecting to the top have index <b>2</b>. While traversing down one level in the tree structure, the previous level's index is incremented by one to derive at the next level's index until reaching a level that ends in a leaf node. In addition, every node maintains a list of all radios included in the node and all radios included in its child nodes. This list is used to determine the radio hierarchies formed within the network.
0055In addition to the hierarchical network of the RRM system <b>100</b>, each radio forms a radio hierarchy including radios that are within range of the radio's coverage area. In some embodiments, the radios included in the network form islands of multiple radio hierarchies. If all radios are outside the range of other networks, the radio hierarchies include only a single radio. If all radios are within range of each other, a single radio hierarchy covers the entire network. In some embodiments, the radio hierarchy is automatically discovered by the radios periodically scanning their available radio channels and frequencies for radios that are within their coverage area.
0056The hierarchy formation module <b>338</b> generates the network hierarchy, which is stored in the RRM database <b>314</b>, by discovering the child-parent relationship and the child-child relation between nodes included in the network. If the hierarchy formation module <b>338</b> receives updates to relationships among the nodes, e.g. a nodes has been added or deleted, it updates the stored network hierarchy, accordingly. In some embodiments, the child-parent relationship is configured on the two devices representing the child and parent based on their IP address/port configuration, which is communicated to the hierarchy processing engine using various discovery mechanisms, e.g., broadcast/multicast packets, DHCP/DNS pushed configuration, or configuration pushed from the parent device. In some embodiments, the child-child relationship is discovered by WiFi radio packets sent by one child and received by the other child and then communicated to the hierarchy formation module <b>338</b>. Upon generating or updating the network hierarchy, the hierarchy formation module <b>338</b> overlays the radio hierarchy on top of the network hierarchy, which allows the RRM system <b>100</b> to optimally use processing resources to manage the radio parameters with the parent controllers managing the radio resources of their child nodes.
0057<figref idref="DRAWINGS">FIGS. 4A and 4B</figref> illustrate changes in which nodes of the hierarchical network manages radio resources for particular radios, APs, and gateways in a network. <figref idref="DRAWINGS">FIG. 4A</figref> illustrates an example tree structure of a hierarchical network with the solid lines describing a parent-child node relationship. The dotted lines indicate radios that are within the coverage area of each other. In the hierarchal network shown in <figref idref="DRAWINGS">FIG. 2</figref>, node E (Radio <b>1</b>) and node H (Radio <b>7</b>) are managing themselves, since these radios are not within range of any other radios included in the hierarchical network. Node C (GW/Radio <b>4</b>), node F (Radio <b>2</b>), and node G (Radio <b>5</b>) are all managed by node A, which represents the common parent to all of these nodes, since parent node C is only configured to manage nodes C and G, but not node F. If radio <b>7</b> of node H then comes within range of radio <b>5</b> of node G, as illustrated in <figref idref="DRAWINGS">FIG. 2B</figref> by the new dashed line, node A stops managing nodes C, F, and G, and instead the root node manages nodes C, F, G, and H. The root node now is the common parent to nodes C, F, G, and H, while node E continues to manage itself, since no other radios are within its range. As radio devices in form of nodes are added and removed to the hierarchical network and radios in the network detect other radios within their range, the hierarchical tree structure self-modifies to reflect these changes.
0058In some embodiments of this hierarchical network, the radio management decisions are pushed as far down the structure tree as possible, while encompassing a complete graph of nodes. The radios of the child nodes managed by a common parent node detect each other on the basis of being within each other range of overlapping radio coverage area.
0059Some embodiments of the hierarchical network include use cases for a cable network. In these embodiments, the root node is the cable server(s) at the cable network's central location. This location is the main aggregation point for all wide area network groups of radio nodes that can detect each other's radios. The intermediate nodes include cable modem gateways employed by customer at their own premises. The cable modem gateways optionally have a WiFi radio with customers using zero or more additional WiFi radios at the premises. An example of a customer's home deployment includes one gateway/WiFi radio in addition to two additional WiFi radios with all of the radios being within range of each other. In the example, the radios do not detect radios from other customers in the network, since those customer's radios are outside their range. In this case, the WiFi radios use the cable modem gateway/WiFi radio as the parent node managing the radio resources of the two additional WiFi radios. In another example of an apartment building with multiple tenants, who each employs a cable modem WiFi gateway and zero or more WiFi radios, each cable modem WiFi gateway manages the WiFi radio and their clients on its local network of the one tenant, but not those WiFi radios and clients in local networks of the other tenants. The WiFi gateways then look upstream to the root node to determine if the WiFi neighbors are part of the overall cable network. If the WiFi neighbors are part of the cable network, the root node takes control and manages the radio resources for the tenants' WiFi gateways and radios. The leaf nodes are the one or more separate WiFi radios in the case of the cable modem gateway having a WiFi radio managing these separate WiFi radios. In case of no separate WiFi radio, the cable modem gateway with WiFi radio represents the leaf node.
0000Prioritization Scheme
0060The RRM system <b>100</b> and other parent RRM controllers manage the radio resources of the radios of an AP based on the priority levels of the radios, according to some embodiments. In some embodiments, data used to determine the priority level of a radio includes data related to clients connect to the radio, the properties of the radio, and the properties of the sub-network on which the radio is. In some embodiments, the client-related data for determining radio priority includes: client traffic patterns and traffic quality of service (QoS); client types (iPad, PC, mobile phone, etc.); clients with premium service (pay for a higher service level, or in a group with higher service level, a longer term customer, etc.); client is owner of the radio instead of a public user of the radio; client priority defined by the service provider; client location (e.g., clients inside a building increase a radio's priority versus clients outside the building); client capabilities (such as 802.11ac capable, 802.11k capable, etc.); and any combination thereof. In some embodiments, the radio properties on which the priority level is based includes: traffic patterns on the radio and traffic QoS; location of the radio (e.g., a radio located inside an business has a higher priority than a radio serving traffic near a stop light); radio owner ordering premium service from the service provider; the capabilities of the radio (e.g., 802.11ac capable); and any combination thereof. In some embodiments, properties of the sub-networks determining radio priority include different having different priorities with radio traffic split into several sub-networks (WLANs and SSIDs for 802.11). In some embodiments, a private user-owned SSID and WLAN has a higher priority than a public SSID and WLAN served by the same radio. In some embodiments, clients and traffic patterns on different sub-networks are accounted for in the priorities of the radios.
0061Periodically (configured by timers <b>316</b>), the RRM engine <b>304</b>, which is part of the RRM system <b>100</b> or other independent parent RRM controller, runs the prioritization engine <b>318</b> to determine the priorities of the radios managed by the RRM engine <b>304</b>. In some embodiments, the prioritization engine <b>318</b> uses a client list for each radio <b>120</b> to determine the priority of each radio <b>120</b>. In some embodiments, the prioritization engine <b>318</b> retrieves the client list and each client's priority based on the client IDs in the list from the RRM database <b>314</b>. In some embodiments, the priority of each radio is calculated as the sum of the priorities of clients connected to the radio. In some embodiments, the prioritization engine <b>318</b> stores the calculated priorities of the radios in the RRM database <b>314</b>. For example, Table 1 lists assignments of client priorities to clients in the radio network shown in the <figref idref="DRAWINGS">FIG. 1</figref>.
0062<tables id="TABLE-US-00001" num="00001"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE 1</entry></row></thead><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>Client Priority Assignment</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="49pt" align="left" /><colspec colname="1" colwidth="35pt" align="left" /><colspec colname="2" colwidth="133pt" align="center" /><tbody valign="top"><row><entry /><entry>Client ID</entry><entry>Client Priority</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row><row><entry /><entry>Client 1</entry><entry>3</entry></row><row><entry /><entry>Client 2</entry><entry>6</entry></row><row><entry /><entry>Client 3</entry><entry>7</entry></row><row><entry /><entry>Client 4</entry><entry>1</entry></row><row><entry /><entry>Client 5</entry><entry>1</entry></row><row><entry /><entry>Client 6</entry><entry>2</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0063In some embodiments, the prioritization engine <b>318</b> uses data received from the AP <b>110</b> that shows which clients <b>130</b> are connected to the AP <b>110</b> and looks up the priorities of the clients in a RADIUS server or AAA server <b>140</b>. The prioritization engine <b>318</b> uses the client priorities and maps these to the radios <b>120</b> being processed by the prioritization algorithm. Each radio priority is calculated as the sum of client priorities, which creates a priority order for the radios. Table 2 lists the calculated priority of each radio in the network shown in <figref idref="DRAWINGS">FIG. 1</figref>. Each radio priority is calculated as the sum of client priorities.
0064<tables id="TABLE-US-00002" num="00002"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE 2</entry></row></thead><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>Calculated Radio Priority</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="49pt" align="left" /><colspec colname="1" colwidth="35pt" align="left" /><colspec colname="2" colwidth="133pt" align="center" /><tbody valign="top"><row><entry /><entry /><entry>Radio Priority</entry></row><row><entry /><entry>Radio ID</entry><entry>(Sum of clients)</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row><row><entry /><entry>Radio 1</entry><entry>9</entry></row><row><entry /><entry>Radio 2</entry><entry>7</entry></row><row><entry /><entry>Radio 3</entry><entry>0</entry></row><row><entry /><entry>Radio 4</entry><entry>0</entry></row><row><entry /><entry>Radio 5</entry><entry>4</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0065Another example includes calculating the radio priority based on SSID priorities of the clients <b>130</b> connected to the radio <b>120</b>. This priority calculation is used if the clients <b>130</b> are not assigned any particular client priorities. The prioritization engine <b>318</b> retrieves the client list from the RRM database <b>314</b> and determines client priority based on its SSID. The SSIDs are configured in the RRM database <b>314</b> (by an operator for instance) with priorities. By connecting to an SSID, the client will obtain a priority which is defaulted for that SSID. Table 3 shows SSID priorities and clients <b>130</b> having the corresponding SSID. In some embodiments, prioritization engine <b>318</b> retrieves the SSID priorities based on the client ID and corresponding SSID associated with the client ID from the RRM database <b>314</b>.
0066<tables id="TABLE-US-00003" num="00003"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE 3</entry></row></thead><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>SSID Priorities</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="4"><colspec colname="offset" colwidth="21pt" align="left" /><colspec colname="1" colwidth="63pt" align="left" /><colspec colname="2" colwidth="42pt" align="center" /><colspec colname="3" colwidth="91pt" align="center" /><tbody valign="top"><row><entry /><entry>SSID</entry><entry>SSID Priority</entry><entry>Clients on SSID</entry></row><row><entry /><entry namest="offset" nameend="3" align="center" rowsep="1" /></row><row><entry /><entry>Public WiFi</entry><entry>1</entry><entry>Clients 4, 5, 6</entry></row><row><entry /><entry>Home WiFi</entry><entry>2</entry><entry>None</entry></row><row><entry /><entry>Service WiFi</entry><entry>3</entry><entry>Clients 1, 2, 3</entry></row><row><entry /><entry namest="offset" nameend="3" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0067In the example illustrated in <figref idref="DRAWINGS">FIG. 1</figref>, clients <b>130</b> can connect to one of several SSIDs provided by each radio <b>120</b>. In this example, the home user SSID has a higher priority than the public SSID if served by the same radio. Table 4 lists the radios in decreasing order of calculated priority based on SSID priority. Each radio priority is calculated as the sum of SSID priorities of the clients <b>130</b> connected to the radio <b>120</b>.
0068<tables id="TABLE-US-00004" num="00004"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE 4</entry></row></thead><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>Radios Sorted by Determined Priority</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="35pt" align="left" /><colspec colname="1" colwidth="49pt" align="left" /><colspec colname="2" colwidth="133pt" align="center" /><tbody valign="top"><row><entry /><entry /><entry>Radio Priority</entry></row><row><entry /><entry>Radio ID</entry><entry>(Sum of clients)</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row><row><entry /><entry>Radio 1</entry><entry>6</entry></row><row><entry /><entry>Radio 2, 5</entry><entry>3</entry></row><row><entry /><entry>Radios 3, 4</entry><entry>0</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables><br /> Channel and Frequency Control Mechanism
0069<figref idref="DRAWINGS">FIGS. 5A and 5B</figref> illustrate embodiments of a RRM system <b>100</b> that employs a prioritization scheme to manage AP radios of a wireless network by selecting radio channel and frequency assignment for these radios. In some embodiments, the RRM system <b>100</b> biases the channel selection such that radios obtain a more favorable channel selection than other radios based on the priorities associated with the radios. The example of a RRM system <b>100</b>, as illustrated in <figref idref="DRAWINGS">FIG. 5A</figref>, has four radios (Radio <b>1</b>, <b>2</b>, <b>3</b>, and <b>4</b>) operating on two channels (Channel <b>1</b> and <b>2</b>). In the shown example, Radio <b>1</b> has a higher priority than Radios <b>2</b>, <b>3</b>, and <b>4</b>. By favorable biasing Radio <b>1</b> over the other radios because of its higher priority, the channels are reallocated such that Radio <b>1</b> operates on Channel <b>2</b> exclusively with Radios <b>2</b>, <b>3</b>, <b>4</b>, using Channel <b>1</b>, as illustrated in <figref idref="DRAWINGS">FIG. 5B</figref>. With this channel selection, resulting from the bias towards Radio <b>1</b>, Radio <b>1</b> experiences no co-channel interference from the other radios, whereas Radios <b>2</b>, <b>3</b>, and <b>4</b> are continue to interfere with each other.
0070<figref idref="DRAWINGS">FIG. 6</figref> illustrate a flowchart of a method <b>600</b> for managing radio channels in a wireless network of radio access points that include one or more radios by a RRM system, according to some embodiments. In some embodiments, the method includes starting <b>602</b> a timer <b>316</b> for each radio access points included in the wireless network. In some embodiments, while the time is running, the RRM system receives <b>604</b> data from the one or more radios of each radio access points. The data includes the operational properties of the one or more radios and of clients connected to the one or more radios. The RRM engine <b>304</b> selects <b>606</b> a radio from the one or more radios of the one radio access point. In some embodiments, the selected radio is from the access point, for which the timer <b>316</b> expired. The selected radio operates on a current channel. The RRM engine <b>304</b> then determines <b>608</b> all within-range radios of the radio access points, which have a coverage area that overlaps with a coverage area of the selected radio.
0071The method further includes that the RRM engine <b>304</b> determines <b>610</b> the priority for the selected radio and all within-range radio based on the data that the RRM system received before the timer <b>316</b> expired. The channel performance module <b>320</b> then calculates <b>612</b> a performance measure (PM) for each channel of the selected radio. The performance measure (PM) in part depends on the received data and the priorities of the selected radio and the within-range radios. The RRM engine <b>304</b> also determines the priority of clients that are connected to the current channel. Upon determining the priority of the clients, the cost-benefit module <b>322</b> calculates <b>614</b> a cost measure (CM) indicating a cost of changing the current channel to a new channel that has a larger calculated performance measure than the current channel's performance measure. The cost of changing the current channel depends in part on the received data and the priorities of the connected clients.
0072Upon calculating <b>612</b>, <b>614</b> the performance measures (PM) and cost measures (CM), the method includes that the channel selection module <b>324</b> calculates <b>616</b> a measure of channel usability for the new channel, which is the difference between the new channel's performance measure (PM) and the cost measure (CM) of changing the current channel to the new channel. In response to the new channel's measure of channel usability exceeding the current channel's performance measure (PM), the RRM system sends <b>618</b> a request for changing the current channel to the new channel to the one radio access point with the expired timer <b>316</b>. In some embodiments, the RRM system also restarts <b>620</b> the expired timer.
0073The method <b>600</b> is performed at a computing device as described in detail below, such as the example machine shown in <figref idref="DRAWINGS">FIG. 14</figref>, as may be controlled by specially programmed code (computer programming instructions) contained in the RRM system <b>100</b> or any of its components, wherein, in some embodiments, such specially programmed code is not natively present in the RRM system <b>100</b> or any of its components. Some embodiments of the method <b>600</b> may include fewer, additional, or different steps than those shown in <figref idref="DRAWINGS">FIG. 6</figref>, and the steps may be performed in different orders.
0074In some embodiments, the method for managing radio channels in a wireless network of radio access points comprises any of the following steps: <ul id="ul0001" list-style="none"><li id="ul0001-0001" num="0000"><ul id="ul0002" list-style="none"><li id="ul0002-0001" num="0075">1. Collect data from all radios being managed by the centralized system.</li><li id="ul0002-0002" num="0076">2. Determine the network graph by looking at monitored data to see which radios are in range of other radios.</li><li id="ul0002-0003" num="0077">3. Create an ordered list of channels and frequencies for each radio sorted by the interference they are seeing.</li><li id="ul0002-0004" num="0078">4. Calculate the priority for every radio. In some embodiment, the priority is calculated from a selection of priority influencing properties of the system as described herein.</li><li id="ul0002-0005" num="0079">5. Order the radios by priority and start processing each radio from high priority to low priority: <ul id="ul0003" list-style="none"><li id="ul0003-0001" num="0080">a. Calculate the interference levels on each channel and frequency, which represent negative performance measures. In some embodiments, the interference levels include: <ul id="ul0004" list-style="none"><li id="ul0004-0001" num="0081">i. interference from unknown sources,</li><li id="ul0004-0002" num="0082">ii. interference from unknown radios of the same protocol, and/or</li><li id="ul0004-0003" num="0083">iii. interference from known radios of higher priority than the processed radio. In some embodiments, for each radio of higher priority the inference level is multiply by the priority by the higher priority radio, which allows the highest priority radios to factor most heavily into the interference calculation.</li></ul></li><li id="ul0003-0002" num="0084">b. Calculate the cost of changing the channel and frequency. In some embodiments, the cost of changing the channel and frequency includes: <ul id="ul0005" list-style="none"><li id="ul0005-0001" num="0085">i. Number of connected clients that cannot be instructed to change channels with the radio, which, in some embodiments, is based on the client priorities to avoid switching channels when high priority clients are connected to the processed radio.</li><li id="ul0005-0002" num="0086">ii. Number of connected clients using real-time traffic such as VOIP or video protocols, which, in some embodiments, include client priorities to avoid switching channels, when high priority clients sending real-time traffic are connected to the processed radio.</li><li id="ul0005-0003" num="0087">iii. Impact of channel change on neighbor radios, which, for example, includes changing to a channel that interfere with a neighbor, thereby adding to the cost of changing the channel and frequency.</li></ul></li><li id="ul0003-0003" num="0088">c. Calculate the benefit of changing for each channel that takes into account the calculated interference levels (i.e., negative performance measures) and the calculated cost of changing the current channel of the processed radio.</li><li id="ul0003-0004" num="0089">d. Compare the benefit of changing against maintaining the current channel and if better by a user-defined percentage threshold, instruct the processed radio to change channels.</li></ul></li></ul></li></ul>
0090In some embodiments, the RRM engine <b>304</b> employing the method determines the best channels for each radio by looking at the interference that each radio sees on each channel with the best channels being the ones with the least interference. The RRM engine <b>304</b> then determines the priority for each radio by using a client list for each radio and retrieving their priority from the RRM database <b>314</b> as described above under Prioritization Scheme.
0091In some embodiments, the method <b>600</b> loops through all radios in priority order from highest to lowest priority to select the best channel for each radio. As a channel is selected for a radio, this may cause surrounding APs to have different interference patterns—for example, if two APs are near each other, and AP <b>1</b> was using channel <b>1</b>—and providing 10% interference to AP<b>2</b>—the interference is only on channel <b>1</b>. However, if AP <b>1</b> is going to switch to channel <b>6</b>, then when AP <b>2</b> is processed, it could consider that the interference is now on channel <b>6</b> instead. In some embodiments, the method adds weights to the interference by higher priority APs so that these APs are more likely to gain channel isolation. When all radios have been processed, the RRM system <b>100</b> employing the method configures the new channels to each radio.
0092The RRM system <b>100</b> provides real time RF management of wireless networks, according to some embodiments. In some embodiments, the RRM system <b>100</b> includes one or more RRM engines <b>304</b> that continuously monitor a set of APs in the wireless network assigned to the RRM engines <b>304</b> according to the load balancer <b>302</b>. The load balancer <b>302</b> manages all the APs <b>110</b> in the wireless network and dynamically assigns APs <b>110</b> to multiple RRM engines <b>304</b> based on each RRM engine's capacity. Once all APs <b>110</b> are assigned by the load balancer <b>302</b>, the RRM engine <b>304</b> is responsible for setting up the RRM algorithm to process the APS <b>110</b>.
0093The RRM engine <b>304</b> configures its timers to trigger the RRM algorithm for each of its APs <b>110</b>, according to some embodiments. Timers <b>316</b> are configured depending on the channel configuration of the APs <b>110</b>. APs <b>110</b> with a valid channel configuration (all radios already have a channel configured for handling traffic) are set up with a default RRM timer. Unlike APs <b>110</b> already included in the network, newly added APs may not have a channel configured for handling traffic. In these cases, the RRM engine <b>304</b> configures the APs <b>110</b> with an internal timer from the RRM database <b>314</b>, whose wait time is less than the default RRM timer so that the APs with no configured channels are processed by the RRM algorithm before the already configured APs <b>110</b>. When an AP timer <b>316</b> expires, the RRM algorithm is triggered, which retrieves various real-time RF characteristics of the AP <b>110</b> from RRM database <b>314</b> and uses these characteristics to perform its functions.
0094The RRM database <b>314</b> is designed to store all AP related information such as radios and the radio properties, e.g., channels, interference, transmission, traffic, neighbor APs, channel utilization, transmit power and the like. Since the RRM system <b>100</b> continuously receives changing information sent by APs <b>110</b> in real time, the AP data collection module <b>308</b> updates the RRM database <b>314</b>, when the APs <b>110</b> report their data to the system and when an AP <b>110</b> joins or leaves the network. In some embodiments, the RRM engine <b>304</b> retrieves the data for performing the RRM algorithm, as illustrated in <figref idref="DRAWINGS">FIG. 7</figref>, from the RRM database <b>314</b> after the AP timer <b>316</b> expires. Upon the AP timer <b>316</b> expiring, the channel performance module <b>320</b> of the RRM engine <b>304</b> determines for each radio <b>120</b> of an AP <b>110</b> the channel performance for all configured channels based on radio parameters affecting the channel performance. For all radios <b>120</b>, the cost-benefit module <b>322</b> of RRM engine <b>304</b> further determines, for all channels with a better channel performance than a radio's current channel, the cost of changing from the current channel to the better performing channel. Upon determining the channel performance and change cost, the channel selection module <b>324</b> of the RRM engine <b>304</b> selects a channel that has the best positive channel usability, defined as the difference between channel performance and cost, among all better performing channels. If the selected channel with the best positive channel usability is not the current channel of the radio, the RRM engine <b>304</b> sends a request to the AP <b>110</b> to change the radio's channel to the selected channel, stores the newly selected channel in the RRM database <b>314</b>, and associates the stored channel with the AP <b>110</b> and the radio <b>120</b> in the RRM database <b>314</b>. The RRM engine <b>304</b> further sets the AP timer <b>316</b> to the default RRM timer and restarts the AP timer <b>316</b>. The RRM engine <b>304</b> also adjusts the AP timer <b>316</b> of any neighbor APs <b>110</b> of the AP <b>110</b> so that the execution of the RRM algorithm for the neighbor APs <b>110</b> is delayed, allowing collection of interference data for the neighbor APs due to the AP changing the channel of its radio. If the selected channel with the best positive channel usability is the same as the current channel of the radio <b>120</b>, the RRM engine <b>304</b> sets the AP timer <b>316</b> to the default RRM timer and restarts the AP timer <b>316</b>. In some embodiments, prior to restarting the AP time <b>316</b> the transmit power control module <b>336</b> of the RRM engine <b>304</b> determines whether to change the transmit power of any radios of the AP <b>110</b>. In some embodiments, the transmit power control module <b>336</b> determines whether to adjust the AP radios' transmit powers independent of the RRM engine <b>304</b> determining whether to change channels of the radios. If the transmit power control module <b>336</b> determines a change in transmit power of one or more radios <b>120</b>, the RRM engine <b>304</b> request the AP <b>110</b> to adjust the transmit power of the one or more radios <b>120</b>, accordingly. The adjusted transmit power is also stored in the RRM database <b>314</b> and associated with the corresponding AP <b>110</b> and radio <b>120</b> in the RRM database <b>314</b>. In some embodiments, if the transmit control power module determines that a radio <b>120</b> of an AP <b>110</b> does not experience any interferences from other network radios (i.e., the radio is outside the range of the other network radio), the transmit power control module sets this radio's transmit power to the maximally allowed transmit power. In some embodiments, if the transmit power control module <b>336</b> determines that a AP radio is outside the range of other network radios, the transmit control power module increases this radio's transmit power by 25% of its current transmit power.
0000Transmit Power Control Mechanism
0095<figref idref="DRAWINGS">FIGS. 8A and 8B</figref> illustrate embodiments of a RRM system that employs a prioritization scheme to manage AP radios of a wireless network by configuring the transmit powers for these radios. In some embodiments, the RRM system biases the channel selection such that radios obtain a more favorable transmit power than other radios based on the priorities associated with the radios. The example RRM system, as illustrated in <figref idref="DRAWINGS">FIG. 8A</figref>, has two radios (Radio <b>1</b> and <b>2</b>) operating on the same channel (Channel X) and having transmit powers that result in the same coverage area. In the shown example, Radio <b>1</b> has a higher priority than Radios <b>2</b>. By favorable biasing Radio <b>1</b> over Radio <b>2</b> because of Radio <b>1</b>'s higher priority, the transmit power can be adjusted such that Radio <b>1</b> has a wider coverage and Radio <b>2</b> has a lesser coverage, as illustrated in <figref idref="DRAWINGS">FIG. 8B</figref>. In this example, the interference between the two radios is mitigated by reducing Radio <b>2</b>'s transmit power to decrease the interference while increasing the transmit power of Radio <b>1</b>, resulting in unequal transmit powers of the two radios based on their priorities. By changing the transmit powers of the two radios, Radio <b>1</b> now has a much larger coverage area than Radio <b>2</b>.
0096<figref idref="DRAWINGS">FIG. 9</figref> illustrate a flowchart of a method <b>900</b> for managing radio channels in a wireless network of radio access points that include one or more radios by a RRM system <b>100</b>, according to some embodiments. In some embodiments, the method includes starting <b>902</b> a timer for each radio access point (AP) included in the wireless network. In some embodiments, while the timer is running, the RRM system <b>100</b> receives <b>904</b> data from the one or more radios <b>120</b> of each AP <b>110</b>. The data includes the operational properties of the one or more radios and of clients connected to the one or more radios. The RRM engine <b>304</b> selects <b>906</b> a radio from the one or more radios <b>120</b> of the one AP, which, in some embodiments, is the AP for which the timer expired. The selected radio operates on a current channel. The RRM engine <b>304</b> then determines <b>908</b> all within-range radios of the selected radio, which have a coverage area that overlaps with a coverage area of the selected radio.
0097The method further includes that the RRM engine <b>304</b> determines <b>910</b> the priority for the selected radio and all within-range radios based on the data that the RRM system <b>100</b> received before the timer expired. In some embodiments, the selected radio and all within-range radios are ordered <b>912</b> according to priority from highest to lowest priority. A pair of the selected radio and one of the within-range radios is processed <b>914</b>. In some embodiments, all ordered pairs are processed. The channel performance module <b>320</b> then calculates <b>916</b> the benefit of increasing the transmit power of the higher priority radio in the pair. The channel performance module <b>320</b> then calculates <b>918</b> the cost of decreasing the transmit power of the lower priority radio in the pair. In response to the higher priority radio benefiting <b>920</b> from an increased transmit power of the higher priority radio, the cost-benefit module <b>322</b> determines <b>922</b> the transmit power increase for the higher priority radio. In response to the higher priority radio benefiting <b>924</b> from a decreased transmit power of the lower priority radio, the cost-benefit module <b>322</b> determines <b>926</b> the transmit power decrease for the lower priority radio. The RRM engine <b>304</b> transmits <b>928</b> the power change request to the AP <b>110</b> with the expired timer <b>316</b>. The RRM engine <b>304</b> then resets <b>930</b> the expired RRM timer <b>316</b>.
0098The method <b>900</b> is performed at a computing device as described in detail below, such as the example machine shown in <figref idref="DRAWINGS">FIG. 14</figref>, as may be controlled by specially programmed code (computer programming instructions) contained in the RRM system <b>100</b> or any of its components, wherein, in some embodiments, such specially programmed code is not natively present in the RRM system or any of its components. Some embodiments of the method <b>900</b> may include fewer, additional, or different steps than those shown in <figref idref="DRAWINGS">FIG. 9</figref>, and the steps may be performed in different orders.
0099In some embodiments, the method for managing radio transmit powers in a wireless network of radio access points comprises any of the following steps: <ul id="ul0006" list-style="none"><li id="ul0006-0001" num="0000"><ul id="ul0007" list-style="none"><li id="ul0007-0001" num="0100">1. Collect data from all radios being managed by the centralized system</li><li id="ul0007-0002" num="0101">2. Determine the network graph by looking at monitored data to see which radios are in range of other radios</li><li id="ul0007-0003" num="0102">3. Use channel allocation mechanisms to assign channels.</li><li id="ul0007-0004" num="0103">4. Determine the set of radios which do not interfere with other radios—increase their transmit power to the maximum level.</li><li id="ul0007-0005" num="0104">5. Determine the set of radios operating on the same channel/frequency and with overlapping coverage areas. <ul id="ul0008" list-style="none"><li id="ul0008-0001" num="0105">a. Calculate the priority for every radio. The priority is calculated from a selection of priority influencing properties of the system (see lists below)</li><li id="ul0008-0002" num="0106">b. Order the radios that are neighbors and use the same channel by priority and start processing each radio from high priority to low priority—for each radio consider all neighbors on the same channel</li><li id="ul0008-0003" num="0107">c. Calculate the amount of overlapping signal at maximum power for each radio</li><li id="ul0008-0004" num="0108">d. Calculate the amount of benefit of increasing transmit power of the higher priority radio <ul id="ul0009" list-style="none"><li id="ul0009-0001" num="0109">i. This includes handling higher priority clients which are at the edges (or just out of) signal range</li><li id="ul0009-0002" num="0110">ii. The increase in bandwidth to clients with low signal level (both high and low priority)</li></ul></li><li id="ul0008-0005" num="0111">e. Calculate the amount of cost of decreasing the transmit power of the lower priority radio <ul id="ul0010" list-style="none"><li id="ul0010-0001" num="0112">i. This includes client connections that would be terminated by lowering transmit power</li><li id="ul0010-0002" num="0113">ii. Including cost of coverage reduction to other areas of the network</li></ul></li><li id="ul0008-0006" num="0114">f. If a higher priority radio can benefit from an increased transmit power level—then increase the transmit power level.</li><li id="ul0008-0007" num="0115">g. If a lower priority radio can benefit a higher priority radio by decreasing transmit power level, then decrease transmit power level.</li></ul></li></ul></li></ul>
0116In some embodiments, the method for decreasing radio transmit powers in a wireless network of radio access points comprises any of the following steps: <ul id="ul0011" list-style="none"><li id="ul0011-0001" num="0000"><ul id="ul0012" list-style="none"><li id="ul0012-0001" num="0117">1. Select a radio A to process for the timer of its APs is expired.</li><li id="ul0012-0002" num="0118">2. Determine the priority of radio A.</li><li id="ul0012-0003" num="0119">3. For each other radio B using the same channel or overlapping channel, which is able to hear radio A: <ul id="ul0013" list-style="none"><li id="ul0013-0001" num="0120">a. Determine the priority of radio B.</li><li id="ul0013-0002" num="0121">b. If radio B priority is greater than or equal to radio A's priority: <ul id="ul0014" list-style="none"><li id="ul0014-0001" num="0122">i. If radio A's transmit power is equal or larger than a user-specified percentage, for example 20%, of the maximum allowed transmit power on the channel in the given regulatory domain, decrease radio A's transmit power by 10% (configurable) of the maximum allowed transmit power on the channel in the given regulatory domain.</li><li id="ul0014-0002" num="0123">ii. Reset the timer to process radio A in the future.</li><li id="ul0014-0003" num="0124">iii. Stop processing radio A.</li></ul></li><li id="ul0013-0003" num="0125">c. If radio B priority is lower than radio A's priority: <ul id="ul0015" list-style="none"><li id="ul0015-0001" num="0126">i. Continue looping to the next radio B.</li></ul></li></ul></li><li id="ul0012-0004" num="0127">4. Reset the timer to process radio A in the future.</li></ul></li></ul>
0128In some embodiments, the method for removing client coverage holes by increasing radio transmit powers in a wireless network of radio access points comprises any of the following steps: <ul id="ul0016" list-style="none"><li id="ul0016-0001" num="0000"><ul id="ul0017" list-style="none"><li id="ul0017-0001" num="0129">1. Select a radio A to process for the timer of its APs is expired.</li><li id="ul0017-0002" num="0130">2. Determine the priority of radio A.</li><li id="ul0017-0003" num="0131">3. For each client connected to radio A with an RSSI below a user-specified RSSI threshold (also referred to as a coverage hole area): <ul id="ul0018" list-style="none"><li id="ul0018-0001" num="0132">a. If any other radio can hear the client with an RSSI above the configurable RSSI threshold, continue to the next client</li><li id="ul0018-0002" num="0133">b. If no other radio can hear the client with an RSSI above the configurable RSSI threshold, increment the client coverage hole count.</li></ul></li><li id="ul0017-0004" num="0134">4. If client coverage hole count is greater than a user-specified client coverage hole count threshold: <ul id="ul0019" list-style="none"><li id="ul0019-0001" num="0135">a. For each other radio B using the same channel or overlapping channel, which is able to hear radio A: <ul id="ul0020" list-style="none"><li id="ul0020-0001" num="0136">i. Determine the priority of radio B.</li><li id="ul0020-0002" num="0137">ii. If radio B priority is greater than or equal to radio A's priority, reset the timer to process radio A in the future, and stop processing radio A.</li></ul></li><li id="ul0019-0002" num="0138">b. If step a passed without hitting the condition of radio B priority being greater than or equal to radio A's priority: <ul id="ul0021" list-style="none"><li id="ul0021-0001" num="0139">i. Increase radio A's transmit power by 10% (configurable) of the maximum allowed transmit power on the channel in the given regulatory domain.</li><li id="ul0021-0002" num="0140">ii. Reset the timer to process radio A in the future.</li></ul></li></ul></li></ul></li></ul>
0141In some embodiments, the RRM engine <b>304</b> employing the method determines the best transmit power for each radio by looking at the interference that each radio sees on its channels. Ideally, every radio would use its maximum transmit power allowed per local regulations—however when two radios are near each other—and using the same channel—then limiting transmit power on one or more of the radios can help mitigate interference. The RRM engine <b>304</b> then determines the priority for each radio by using a client list for each radio and retrieving their priority from the RRM database <b>314</b> as described above under Prioritization Scheme.
0142In some embodiments, the method loops through all radios in priority order from highest to lowest priority to select the best transmit for each radio. As a transmit power is selected for a radio, this may cause surrounding radios to have different interference patterns—for instance, if two radios are near each other, and R<b>1</b> and R<b>1</b> are both using the same channel, and R<b>1</b> transmit power increases, this may cause R<b>2</b> to see more interference. In some embodiments, the method adds weights to the interference by higher priority radios so that these radios are more likely to have a higher transmit power. When all radios have been processed, the RRM system <b>100</b> employing the method configures the new transmit power to each radio.
0000Example of Channel Performance Algorithm
0143In some embodiments, determining the channel performance of a radio <b>120</b> of an AP <b>110</b> by the channel performance module <b>320</b> includes any of the following performance determining steps: calculating the effect of neighbor APs <b>110</b> on the channel performance; calculating the effect of rogue neighbor APs <b>110</b> on the channel performance; computing the decrease in performance due to client TX & PHY errors; computing performance decrease due to spectral interference; accounting for consequences of radar interference; calculating the effect of utilization on channel performance; and/or modifying channel performance based on previous estimates of channel performance. The channel performance module <b>320</b> evaluates channel performance in terms of a quantity called “Performance Measure” (PM), which has a numeric value whose magnitude directly characterizes performance of a channel. The higher the performance measure, the better is the channel performance. The channel performance module <b>320</b> initializes the PM of each channel at 100% and subsequently adjusts the PM based on the outcome of the performance determining steps. The RRM engine <b>304</b> using the cost-benefit module <b>322</b> and channel selection module <b>324</b> further evaluates channels with a performance measure value better than the radio's current channel.
0000AP Neighbor Count
0144In some embodiments, the channel performance module <b>320</b> calculates an AP's neighbor count to determine the effect of neighbor APs on the AP's channel performance, since the performance of a radio channel is significantly affected by other nearby radios handling traffic on the same channel. In some embodiments, the network APs periodically send information about neighbor APs to the RRM system <b>100</b> in the form of neighbor messages. These messages include data about neighbor APs, including radios, BSSID, channels, BSSID of neighbor APs, RSSI and other relevant info used for determining the channel performance. The AP data collection module <b>308</b> stores this information in the RRM database <b>314</b>.
0145Initially, the channel performance module <b>320</b> sets the neighbor count to zero. To retrieve the neighbor APs of a channel, the channel performance module <b>320</b> queries the RRM database <b>314</b> for a neighbor list by matching the APs BSSID, radio type and channels. The neighbor list includes a list of BSSIDs associated with network APs that interfere with the channel of the AP, for which the channel performance module <b>320</b> determines its channel performance. Upon receiving the neighbor list, the channel performance module <b>320</b> looks up the BSSID list in the RRM database <b>314</b> to resolve the neighbor BSSIDs to corresponding APs. For each BSSID mapped to an AP the channel performance module increments the neighbor count by one. If multiple BSSID entries in the neighbor list map to the same AP, the channel performance module <b>320</b> only once increments the neighbor count by one and eliminates duplicate entries form the neighbor list.
0146Since neighbor APs directly interfere with an AP's channel performance, neighbor APs are considered the primary AP neighbors of an AP's channel. In some embodiments, neighbor APs of the primary AP neighbors on the same channel also affect the channel performance by indirectly increasing the interference through the primary neighbors. Neighbor APs of primary AP neighbors are referred to as secondary AP neighbors. In some embodiments, the channel performance module <b>320</b> also accounts for the effect of secondary AP neighbors on channel performance. To identify secondary AP neighbors of every primary neighbor AP, the channel performance module <b>320</b> retrieves the neighbor list for the channel from the RRM database <b>314</b> and BSSIDs are mapped to APs in the same manner as described above. Any of the mapped APs are included in the secondary neighbor count except for previously identified primary AP neighbors and the AP currently being evaluated for channel performance.
0147The channel performance module <b>320</b> reduces the PM of a channel by a first percentage value (A %) for every counted primary AP neighbor and by a second percentage value (B %) for every counted secondary AP neighbor.
0000Rogue AP Neighbor Count
0148In some embodiments, the channel performance module <b>320</b> calculates an AP's rogue neighbor count to determine the effect of non-network neighbor APs on the AP's channel performance. While resolving the BSSIDs in the neighbor list to the BSSIDs of APs in the RRM database <b>314</b>, the channel performance module <b>320</b> identifies any BSSID entries that do not map to any APs included in the network, which are either part of other networks or have not yet joined the network. These neighbor APs are referred to as “rogue” AP neighbors. Similar to non-rogue AP neighbors, as described above, the channel performance module distinguishes between primary rogue AP neighbors and secondary rogue AP neighbors. The channel performance module sets the initial count for each type of rogue neighbors to zero and then increments the count by one for each identified rogue AP neighbor. The channel performance module reduces the PM of a channel by a third percentage value (C %) for every counted primary rogue AP neighbor and by a fourth percentage value (D %) for every counted secondary rogue AP neighbor.
0000Client TX and PHY Errors
0149In some embodiments, the channel performance module <b>320</b> decreases the channel performance based on client information, including client errors, which APs <b>110</b> periodically report to the RRM system <b>100</b>. Errors encountered by the clients <b>130</b> provide an estimate of the quality of a channel. Channel performance degrades with higher number of client errors as the higher number indicates an increased amount of interference in the channel. The channel performance module <b>320</b> accounts for client TX and PHY errors by reducing the PM of a channel by a fifth percentage value (E %) for each client error reported to the RRM system <b>100</b>.
0000Spectral Interference
0150In some embodiments, the channel performance module <b>320</b> decreases the channel performance based on spectral interference in a channel by other radio-wave transmitting device. Spectral interference represents interference caused by devices other than APs and AP radios, e.g., microwave ovens, Bluetooth devices, wireless game controllers and the like. The presence of such devices in a radio's vicinity sometimes affects the radio's channel performance. In some embodiments, an AP <b>110</b> sends channel information to the RRM system <b>100</b> that includes information regarding any spectral interference detected by the AP <b>110</b>. This information is represented in the form of RSSI and duty cycle corresponding to the time period that the interference was active. The interference information is stored in the RRM database <b>314</b>, associated with the corresponding AP identifier (ID), radio ID and channel ID, and later used for estimating the change in performance. Upon the AP timer <b>316</b> expiring, the channel performance module <b>320</b> queries the database based on the AP ID, radio ID and channel ID to retrieve the spectral interference information. The channel performance module <b>320</b> adjusts the channel's PM by a weight percentage based on the detected intensity of every type of interference and the number of channels/sub-channels that are affected.
0000Radar Interference
0151In some embodiments, as illustrated in <figref idref="DRAWINGS">FIG. 10</figref>, the channel performance module <b>320</b> decreases the channel performance based on radar interference in a channel. Dynamic Frequency Selection (DFS) enables radios to continuously monitor their operating (current) channels for radar signals. In some embodiments, if the radio detects radar signals on the channel, the radio blocks further transmissions on that channel and switches to another channel that experiences no radar interference. In some embodiments, if an AP <b>110</b> detects radar interference, the AP <b>110</b> reports the information to RRM system <b>100</b>, which stores the radar information in the RRM database <b>314</b> and resets the AP timer <b>316</b> to zero if any of its radios' current channel experiences the radar interference. Upon resetting the AP timer <b>316</b>, the channel performance module <b>320</b> recalculates the channel performance for all radios <b>120</b> and channels of the AP <b>110</b>. This includes channel performance module <b>320</b> querying the RRM database <b>314</b> for a list of channels that are affected by radar signals. For each channel in the list received from the RRM database <b>314</b>, the channel performance module <b>320</b> sets the channel's PM to zero, thereby labelling the channel unusable. Upon identifying a channel being unusable, the channel performance module <b>320</b> skips any further performance determining steps and starts evaluating the AP's remaining channels experiencing no radar interference.
0000Channel Utilization
0152In some embodiments, the channel performance module <b>320</b> reduces the channel performance based on increased utilization of a channel, since a channel's performance degrades when its utilization intensifies. The channel performance module <b>320</b> retrieves the utilization data of a channel, e.g., idle percentage (% X), data percentage (% Y), and interference percentage (Z %). The idle percentage represents the amount of time that a channel was idle while the channel was monitored. The data percentage represents the amount of time that a channel was handling traffic with the channel's clients via, e.g., 802.11 while being monitored. Higher values of data and interference percentages indicate a higher utilization of the channel, while a higher idle percentage indicates a lower utilization. Since a higher channel utilization limits channel performance, the channel performance module reduces the PM of a channel by a sixth percentage value (F %) based on data and interference percentage that are offset by the idle percentage.
0000Time Prediction
0153In some embodiments, as illustrated in <figref idref="DRAWINGS">FIG. 11</figref>, the channel performance module <b>320</b> adjusts the channel performance based previously recorded PM values of a channel. The RRM engine <b>304</b>, including the channel performance module <b>320</b>, of an AP runs at periodic time intervals (after the AP timer <b>316</b> expires), computes a channel's PM values at end of these time intervals, and stores the PM values in the RM database <b>314</b>. Channel performance module <b>320</b> uses the average PM value at the end of each time interval based on previously recorded PMs to predict the channel behavior by factoring the average into the current PM as weighted measure. To predict channel performance behavior at present time T<sub>n</sub>, the channel performance module <b>320</b> calculates average of recorded values prior and close to the present time T<sub>n</sub>. For every channel, channel performance module <b>320</b> queries the RRM database <b>314</b> to retrieve the list of recorded PM values. The channel performance module <b>320</b> calculates the averages <PM><sub>T</sub><sub><sub2>n </sub2></sub>and <PM><sub>T</sub><sub><sub2>n-1 </sub2></sub>at present time T<sub>n </sub>and previous time T<sub>n-1</sub>, respectively. If the average <PM><sub>T</sub><sub><sub2>n </sub2></sub>at present time T<sub>n </sub>has improved compared to the average <PM><sub>T</sub><sub><sub2>n-1 </sub2></sub>recorded at previous time T<sub>n-1</sub>, then the channel performance is likely better at the present time T<sub>n</sub>. Hence, the channel performance module <b>320</b> adjusts the present PM by a positive weight. On the other hand, if the average <PM><sub>T</sub><sub><sub2>n </sub2></sub>at present time T<sub>n </sub>has degraded compared to the average <PM><sub>T</sub><sub><sub2>n-1 </sub2></sub>recorded at previous time T<sub>n-1</sub>, then the channel performance module <b>320</b> reduces the PM at present time T<sub>n </sub>using a negative weight.
0154For example, Table 5 shows the average channel performance <PM> of a channel calculated at different times (T<sub>1 </sub>. . . T<sub>5</sub>). Based on this data, the channel performance module <b>320</b> identifies whether a channel's performance improves or degrades at any particular time. For example, the channel's performance degrades after time T<sub>2 </sub>and switching to this channel after time T<sub>2 </sub>is not preferable if better channels are available. In this case, channel performance module <b>320</b> reduces the PM of a channel by a weight percentage at times beyond time T<sub>2</sub>. Utilizing PMs averaged over time helps in optimizing channel performance, since it accounts for fluctuating usage patterns in various geographical localities, e.g., residential and commercial areas, over particular time periods, e.g., weekdays and weekends.
0155<tables id="TABLE-US-00005" num="00005"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE 5</entry></row></thead><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>Performance Measure Data</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="49pt" align="left" /><colspec colname="1" colwidth="28pt" align="left" /><colspec colname="2" colwidth="140pt" align="center" /><tbody valign="top"><row><entry /><entry /><entry>Average PM</entry></row><row><entry /><entry>Time</entry><entry>in Percentage</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row><row><entry /><entry>T<sub>1</sub></entry><entry>60</entry></row><row><entry /><entry>T<sub>2</sub></entry><entry>75</entry></row><row><entry /><entry>T<sub>3</sub></entry><entry>50</entry></row><row><entry /><entry>T<sub>4</sub></entry><entry>43</entry></row><row><entry /><entry>T<sub>5</sub></entry><entry>37</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables><br /> Example of Channel Change Cost Algorithm
0156In some embodiments, the cost-benefit module <b>322</b> calculates the cost of switching the operating (current) channel of an AP radio to a better performing channel. Whenever an AP radio changes from a current channel to a new channel, clients <b>130</b> of the radio connected to the current channel are briefly disconnected. Clients <b>130</b> can either reconnect to the same AP radio (on its new channel), or roam to a nearby AP and connect to radio of the nearby AP. Thus, the cost of changing channels includes the unwanted disruption in client communication until the client connects back to an AP. The cost-benefit module <b>322</b> evaluates the cost of changing a channel in terms of a quantity called “Cost Measure” (CM), which has a numeric value whose magnitude directly characterizes the cost involved in changing the channel. The cost-benefit module <b>322</b> initializes the CM of each channel at 0% and subsequently increases the CM based on the outcome of the following cost determining steps: estimating cost of disconnecting regular clients on the current channel; calculating cost of disconnecting high priority clients on the current channel; estimating cost of disconnecting high usage clients on the current channel; and/or computing the effect of channel change on neighbors of channel being switched to. CM equals the sum of the costs determined by performing these steps. The larger CM, the worse is the impact of changing the channel.
0000Client Drop Off (Disconnection) Cost
0157In some embodiments, as illustrated in <figref idref="DRAWINGS">FIG. 12</figref>, the cost-benefit module <b>322</b> determines the cost for clients being dropped off (disconnected) if a channel of an AP radio is changed. The cost-benefit module <b>322</b> accounts for the service disruption to the client and imposes a cost based on the type of clients experiencing the disruption, e.g., regular clients, high priority clients, high usage clients, or high priority/high usage clients. The cost-benefit module <b>322</b> uses a client list to identify the client type and retrieves the corresponding priority value from the RRM database <b>314</b>. The RRM engine <b>304</b> assigns priority to a client when the client first joins the network based on the client's priority SSID profile as described above under Prioritization Scheme. In some embodiments, a RADIUS server is used to assign priorities to clients during the client's authentication process with the network.
0158Priorities are assigned to clients <b>130</b> in a manner that reduces the probability of high priority clients being dropped from the network when determining which channels to switch. Thus, based on client priorities high priority clients are less likely to be dropped from the network, since the cost of switching channels serving high priority clients is significantly higher than channels serving other clients. Clients <b>130</b> are referred to as regular clients, if the clients <b>130</b> are associated with low or no priority with the RRM database <b>314</b> storing priority values of clients. The cost-benefit module <b>322</b> increases the CM of a channel by a seventh percentage value (G %) for every regular client serviced by the channel. The cost-benefit module <b>322</b> increases the CM of a channel by a eight percentage value (H %) for every high priority client serviced by the channel with H % being larger than G %.
0159Clients <b>130</b> are referred to as high usage clients, if the clients produce traffic exceeding a pre-defined traffic threshold value. In some embodiments, the pre-defined traffic threshold value is stored in the RRM database <b>314</b>, from which it is retrieved by the cost-benefit module <b>322</b>. Clients <b>130</b> are referred to high priority/high usage clients, if the clients are assigned high priorities and generate network traffic that exceeds the pre-defined traffic threshold value.
0160The cost-benefit module <b>322</b> gives preference to APs <b>110</b> based on utilization so that channels on less-utilized AP are more likely to be changed than channels on APs servicing high usage clients, since switching channels with high usage clients is more damaging to the network performance than channels servicing regular clients. Thus, the cost-benefit module <b>322</b> increases the CM of a channel by a ninth percentage value (I %) for every high usage client serviced by the channel with I % significantly larger than any other costs. Disrupting high priority/high usage clients during channel change causes an even larger impact on network performance than disrupting any other client type. Hence, the cost-benefit module <b>322</b> increases the CM of a channel by a tenth percentage value (J %) for every high priority/high usage client serviced by the channel with J % being larger than any other client cost (G %, H %, or I %).
0000Neighbors Performance
0161In some embodiments, as illustrated in <figref idref="DRAWINGS">FIG. 13</figref>, the cost-benefit module <b>322</b> determines the cost on the performance on neighbor APs when switching the channel of an AP radio. Switching an AP radio to a new channel means the AP of the radio becomes a neighbor to any neighbor APs operating on the new channel. As discussed with respect the channel performance algorithm, adding an AP to a channel will affect the performance of other APs operating on the same channel. The cost-benefit module <b>322</b> therefore accounts for the effect on the channel's neighbor AP's performance caused by the impending channel switch. Thus, for every better performing channel than current channel, the cost-benefit module <b>322</b> retrieves the neighbor AP list from the RRM database <b>314</b> and increases the CM of channel by an eleventh percentage value (K %) for every neighbor included in the list, which has its performance impacted by the channel switch. The total cost measure of switching to another channel will be equivalent to sum of the client cost measures of the current channel and the cost measure for affecting the neighbor's performance of the channel being switched to.
0000Example of Channel Selection Algorithm
0162In some embodiments, channel selection module <b>324</b> determines whether to instruct an AP <b>110</b> to switch one of its AP radios <b>120</b> to another channel for optimal performance. The best channel is determined by calculating the channel usability of each channel, which is defined as follows: <br />Channel Usability=Performance Measure (PM)−Cost Measure (CM).
0163The channel usability is the performance measure of a new channel offset by the cost of changing the current (operating) channel to a new channel having a better PM value than the current channel. The channel usability represents the effectiveness with which a channel performs if selected as the operating channel. The channel selection module <b>324</b> estimates the channel usability for all the channels of an AP <b>110</b> and compares them with the PM value of the current channel. A channel having a usability value larger than current channel's PM value perform better than the current channel despite the cost of switching the channel. The channel selection module <b>324</b> selects the channel with the largest usability value that also exceeds the current channel's PM as the new operating channel. If none of the channels has a usability value larger than current channel's PM value, the channel selection module <b>324</b> selects the current channel as the operating channel.
0164Upon selecting the operating channel by the channel selection module <b>324</b>, the RRM engine <b>304</b> resets and starts the AP timer <b>316</b> for a new monitoring cycle. If the selected operating channel is not as same as the current channel, the RRM engine <b>304</b> updates the channel changes in the RRM database <b>314</b> and the AP configuration module <b>310</b> pushes the channel change across the network to the AP <b>110</b> to switch channels. In addition, the RRM engine <b>304</b> adjusts the AP timers <b>316</b> of the neighbor APs. The AP timers <b>316</b> of the neighbor APs are adjusted so that their RRM engine <b>304</b> is delayed from running the RRM algorithm immediately. This prevents a domino effect whereby the neighbor APs react to the current AP's channel change by changing their own channels, which in turn would trigger network-wide channel alterations. Adjusting the AP timers <b>316</b> of neighbor APs prevents such a domino effect and ensures stability of the network.
0000Computing Machine Architecture
0165<figref idref="DRAWINGS">FIG. 14</figref> is a block diagram illustrating components of an example machine able to read instructions from a machine-readable medium and execute them in a processor (or controller). Specifically, <figref idref="DRAWINGS">FIG. 14</figref> shows a diagrammatic representation of a machine in the example form of a computer system <b>1400</b> within which instructions <b>1424</b> (e.g., software) for causing the machine to perform any one or more of the methodologies discussed herein may be executed. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
0166The machine may be a server computer, a client computer, a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cellular telephone, a smartphone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions <b>1424</b> (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute instructions <b>1424</b> to perform any one or more of the methodologies discussed herein.
0167The example computer system <b>1400</b> includes a processor <b>1402</b> (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), one or more application specific integrated circuits (ASICs), one or more radio-frequency integrated circuits (RFICs), or any combination of these), a main memory <b>1404</b>, and a static memory <b>1406</b>, which are configured to communicate with each other via a bus <b>1408</b>. The computer system <b>1400</b> may further include graphics display unit <b>1410</b> (e.g., a plasma display panel (PDP), a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)). The computer system <b>1400</b> may also include alphanumeric input device <b>1412</b> (e.g., a keyboard), a cursor control device <b>1414</b> (e.g., a mouse, a trackball, a joystick, a motion sensor, or other pointing instrument), a storage unit <b>1416</b>, a signal generation device <b>1418</b> (e.g., a speaker), and a network interface device <b>1420</b>, which also are configured to communicate via the bus <b>1408</b>.
0168The storage unit <b>1416</b> includes a machine-readable medium <b>1422</b> on which is stored instructions <b>1424</b> (e.g., software) embodying any one or more of the methodologies or functions described herein. The instructions <b>1424</b> (e.g., software) may also reside, completely or at least partially, within the main memory <b>1404</b> or within the processor <b>1402</b> (e.g., within a processor's cache memory) during execution thereof by the computer system <b>1400</b>, the main memory <b>1404</b> and the processor <b>1402</b> also constituting machine-readable media. The instructions <b>1424</b> (e.g., software) may be transmitted or received over a network <b>1426</b> via the network interface device <b>1420</b>.
0169While machine-readable medium <b>1422</b> is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store instructions (e.g., instructions <b>1424</b>). The term “machine-readable medium” shall also be taken to include any medium that is capable of storing instructions (e.g., instructions <b>1424</b>) for execution by the machine and that cause the machine to perform any one or more of the methodologies disclosed herein. The term “machine-readable medium” includes, but not be limited to, data repositories in the form of solid-state memories, optical media, and magnetic media.
0000Additional Configuration Considerations
0170Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.
0171Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms, for example, as illustrated in <figref idref="DRAWINGS">FIGS. 1, 2, 3A, 3B, 4A, and 4B</figref>. Modules may constitute either software modules (e.g., code embodied on a machine-readable medium or in a transmission signal) or hardware modules. A hardware module is tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In example embodiments, one or more computer systems (e.g., a standalone, client or server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.
0172In various embodiments, a hardware module may be implemented mechanically or electronically. For example, a hardware module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations. A hardware module may also comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
0173The various operations of example methods described herein may be performed, at least partially, by one or more processors, e.g., processor <b>1402</b>, that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. The modules referred to herein may, in some example embodiments, comprise processor-implemented modules.
0174The one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., application program interfaces (APIs).)
0175The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the one or more processors or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the one or more processors or processor-implemented modules may be distributed across a number of geographic locations.
0176Some portions of this specification are presented in terms of algorithms or symbolic representations of operations on data stored as bits or binary digital signals within a machine memory (e.g., a computer memory). These algorithms or symbolic representations are examples of techniques used by those of ordinary skill in the data processing arts to convey the substance of their work to others skilled in the art. As used herein, an “algorithm” is a self-consistent sequence of operations or similar processing leading to a desired result. In this context, algorithms and operations involve physical manipulation of physical quantities. Typically, but not necessarily, such quantities may take the form of electrical, magnetic, or optical signals capable of being stored, accessed, transferred, combined, compared, or otherwise manipulated by a machine. It is convenient at times, principally for reasons of common usage, to refer to such signals using words such as “data,” “content,” “bits,” “values,” “elements,” “symbols,” “characters,” “terms,” “numbers,” “numerals,” or the like. These words, however, are merely convenient labels and are to be associated with appropriate physical quantities.
0177Unless specifically stated otherwise, discussions herein using words such as “processing,” “computing,” “calculating,” “determining,” “presenting,” “displaying,” or the like may refer to actions or processes of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or a combination thereof), registers, or other machine components that receive, store, transmit, or display information.
0178As used herein any reference to “one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
0179Some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. For example, some embodiments may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other. The embodiments are not limited in this context.
0180As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
0181In addition, use of the “a” or “an” are employed to describe elements and components of the embodiments herein. This is done merely for convenience and to give a general sense of the invention. This description should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise.
0182Upon reading this disclosure, those of skill in the art will appreciate still additional alternative structural and functional designs for a system and a process for managing radio channels and frequencies in a centralized management system through the disclosed principles herein. Thus, while particular embodiments and applications have been illustrated and described, it is to be understood that the disclosed embodiments are not limited to the precise construction and components disclosed herein. Various modifications, changes and variations, which will be apparent to those skilled in the art, may be made in the arrangement, operation and details of the method and apparatus disclosed herein without departing from the spirit and scope defined in the appended claims.
Contents4
18 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2022317241A1 | Cited by | United States of America | Search report |
| US11297628B2 | Cited by | United States of America | Search report |
| US11271847B2 | Cited by | United States of America | Search report |
| US11197272B2 | Cited by | United States of America | Applicant |
| US11510191B2 | Cited by | United States of America | Applicant |
| US11877312B2 | Cited by | United States of America | Applicant |
| US2010173653A1 | Cites | United States of America | Search report |
| US2014036787A1 | Cites | United States of America | Search report |
| US8886126B2 | Cites | United States of America | Search report |
| US9351197B2 | Cites | United States of America | Search report |
| US20100173653A1 | Cites | United States of America | Search report |
| US20140036787A1 | Cites | United States of America | Search report |
2 members in 1 office; this record represents the family
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2015341939A1 | United States of America | A1 | |
| US9918322B2This record | United States of America | B2 |
57 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Maintenance Fee Reminder MailedREM. | REM. | |
| Payment of Maintenance Fee, 4th Yr, Small EntityM2551 | M2551 | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mailing Corrected Notice of AllowabilityMCNOA | MCNOA | |
| Reasons for AllowanceEX.R | EX.R | |
| Corrected Notice of AllowabilityCNOA | CNOA | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Dispatch to FDCD1935 | D1935 | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mail Response to 312 Amendment (PTO-271)MN271 | MN271 | |
| Response to Amendment under Rule 312N271 | N271 | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Amendment after Notice of Allowance (Rule 312)AllowedA.NA | A.NA | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Response after Non-Final ActionA... | A... | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Email NotificationEML_NTR | EML_NTR | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Email NotificationEML_NTR | EML_NTR | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Applicant Has Filed a Verified Statement of Small Entity Status in Compliance with 37 CFR 1.27SMAL | SMAL | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
7 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITYLAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITYFEPP | FEPP | |
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 09918322
- Application
- 14720967
Titles
- English
- Radio resources management system
Patent term adjustment
- A delay
- +312 daysthe office missed an examination deadline
- Applicant delay
- −18 days
- Net adjustment
- 294 days
Classification
- CPC, 14
- H04W72/08
- H04W28/16
- H04W72/54
- H04W52/143
- H04W52/243
- H04W24/08
- H04W52/28
- H04W72/542
- H04W52/44
- H04W72/56
- H04W72/0426
- H04W72/085
- H04W72/10
- H04W72/27
- IPC, 10
- H04W72 04
- H04W72 08
- H04W28 16
- H04W72 10
- H04W24 08
- H04W52 44
- H04W52 24
- H04W52 28
- H04W52 14
- H04W72 54
- USPC, 2
- 370318000
- 001001000