Transmit Power Control (TPC) Algorithm

Choosing an operating channel for an AP with the best SNR (Signal To Noise ratio) is important. But since one of the major sources of interference in our network is our own clients and AP's - Transmit Power Control is equally as important. DCA and TPC work hand in hand to manage the RF in our environment. Power largely determines our cell boundaries, there are other variables (see High Client Density Design Guide ), but power is one of the primary determining factors. The goal is to maximize the RF coverage in the environment - without causing co-channel interference. It's a balancing act of sorts. Since we cannot control the clients TX power (not all clients will support DTPC, an optional portion of the CCX specification) we only have our AP's to work with. Maximizing the AP's coverage and minimizing it's interference potential then is the job of TPC.

What does TPC do?

TPC uses the TX neighbor and RF Neighbor lists generated by the NDP process. RSSI organized lists built on how we hear other AP's (RX Neighbor) and how other AP's hear us (TX Neighbor), to form a picture of how every AP is heard by every other AP within the RF Neighborhood and RF Group. Based on this information TPC sets the transmit power of each AP to maximize the coverage and minimize co-channel interference. TPC will adjust the Tx power up or down to meet the required coverage level indicated by the TPC Threshold.

Like DCA, TPC runs on the RF Group leader and is a global algorithm that can be sub configured in RF profiles for groups of AP's in an AP group.

There are two versions of this algorithm since version 7.2 known as TPCv1 (or just TPC), and TPCv2. The purpose of these two algorithms is essentially the same - the calculations and how they are implemented differ greatly. We will discuss each below and give their strength's and potential caveats.

Figure 1. TPC Maximizes Coverage, Minimizes CCI


TPC algorithms run on the RF Group Leader along with DCA. They are configured and run separately from DCA. Three modes may be configured:

  • Automatic–Runs every 10 minutes

  • On Demand –invoke a power level change once, then freeze till the next demand request

  • Fixed–allows a user selected power level to be applied to all AP’s in the RF group

TPCv1

TPCv1 is known as coverage optimal mode - and is the default method for power control in RRM. The algorithm runs on the RF Group Leader, and calculates Tx power on a per AP per radio basis for every member of the RF group. Control over TPCv1 relies on a user tunable setting - RRM Power Threshold. This combined with the information gathered from the third neighbor in an AP's neighbor list, is used to make decisions on an AP's transmit power.

The RF Power threshold is used to control the cell boundaries of the AP's and hence the coverage behavior of the system. The default value of -65 dBm was in place until rel. 4.1.85.0 (4.1 MR1), which changed the default value to -70 dBm. Valid entries for this are -50 to -80 dBm. The RF Power Threshold is set on the controller and should be the same for every controller in an RF Group. Good results are generally observed with values ranging between -68 dBm and -75 dBm. However certain scenarios will require higher or lower settings. The RF Power threshold determines what an AP does in response to how other AP's hear him. In a situation like a high ceiling - the AP's might hear each other fine - but down on the floor the clients are having issues.

The Third loudest TX neighbor is used because this is the number of non-overlapping channels available for 2.4 GHz. As an aside, tests have been done with the 8th neighbor and more -while this would seem to make more sense in 5 Ghz, there is no real advantage realized. Also, very few regulatory domains agree on the number of channels they permit - so 3 is the number.

Calulating Tx_Ideal–Ideal Power

The TPCv1 algorithm runs as a two stage process–first determining what the ideal Tx power for a radio would be (Tx_Ideal).

Tx_ideal = Tx_max + (TPCv1_Threshold - RSSI_3rd)

  1. Tx_Max—the maximum supported power for a given radio

  2. TPCv1_Threshold—User selectable RRM power threshold - default -70 dBm version 4.2 and forward -65 dBm before

  3. RSSI_Third—The Third loudest AP in the AP TX Neighbor list


    Note


    This is the TX–not the RX neighbor–see above


If Tx_Ideal is higher than Tx_current, then a power increase is recommended.

If Tx_Ideal is lower than Tx_current, then a power decrease is recommended.

Evaluating a TPCv1 Change Recommendation

The second part of the process involves evaluating the recomended results of the first part and deciding to implement it or not. Since changing the Tx power of an AP also changes the cell boundaries - it can be disruptive to clients. To ensure that a change is necessary a hysteresis is applied.

  • For a TX power Increase–Hysteresis = 3 dB

  • For a Tx Power decrease–Hysteresis = 6 dB

So determining if a Tx change is recommended looks like this:

Tx_Curr - Tx_Ideal = N

  • If N is =/< Hysteresis - No Change is recommended

  • If N is > Hysteresis a change is recommended

Implementing a Recommended Power Change

If a power change is recommended it will be implemented by the following rules:

  • Decreasing Power–power is decreased 1 level (3 dB) at per TPCv1 interval (600 seconds Default) and the effect would be a gradual reduction and allow for settling in the environment

  • Increasing Power–the power level is set to increase 1 level(3 dB) per iteration of TPCv1 until Tx_Ideal or hysteresis is reached.

Before a power change is recommended- it is sanity checked for validity in the RF neighborhood. As an example, we'll use a use case where the AP being set does not have a 3rd neighbor (classicaly resulted in a power level 1 assignment before smoothing was introduced in version 6.1 of the RRM algorithms). Before applying the new power level to the AP, a check of the AP's neighbors is made to see what they're operating at. In the case where there is no 3rd neighbor we would look at the two existing neighbors and ensure that the recommended power level is in alignment with they're neighbors and themselves.

Figure 2. TPCv1 Smoothing Algorithm function


The recommendation is matched against the power levels being used for our neighbors neighbor list of AP's, and an average of averages is developed for any neighbor who is on the list at or above the TPCv1 threshold (-70 dBm by default).

Once the recommendation is validated it is passed to the AP for implementation by TPCv1. Let's say the power needs to be decreased by 12 dB to match Tx_curent to Tx_ideal. In all cases the power will be decreased by 3 dB (one step) during each TPCv1 cycle. Then on the next run of TPCv1, the entire process is repeated and if power still needs to be changed- will apply another single 3 dB step. The process is the same for a TX increase to be implemented, 1 power level per iteration will be applied and evaluated.

Like DCA, TPCv1 runs on the RF Group leader, changes in DCA - will affect changes in TPCv1 and vice versa - so it's good that they work together to balance the infrastructure. TPCv1 runs at the same interval as DCA, by default every ten minutes. TPCv1 has no knowledge of channel and assumes that a neighbor entry could be on the same channel at any time (reasonable since DCA runs independently).

On Demand mode schedules a TPCv1 run on the next regularly scheduled boundary, that is if running in default mode, TPCv1 will run on the next 10 minute interval - however the calculation will be held then and TPCv1 will not run or update until you select On Demand again.


Note


When all APs boot up for the first time (new out of the box), they transmit at their maximum power levels (power level 1). When APs are power cycled or rebooted, they use their last configured power settings. Transmit Power Control adjustments will subsequently occur as needed.


TPCv2

Cosmetically TPCv2 is almost invisible to the user, in fact it shares all the same configuration parameters on the GUI that are involved in TPCv1. It is however very different under the hood. First, it does not use the 3rd neighbor method or anything else really other than the neighbor lists from TPCv1. The primary difference is that TPCv1 is based on a received energy measurement at the neighboring AP. TPCv2 calculates a cell boundary between two AP's based on the measured RF distance between them, and optimizes the coverage based on that calculation.

Figure 3. TPCv2 Two AP example


The problem to be solved is similar to filling a box with balls. Larger balls fill the box quicker, but leave larger amounts of open space between the balls that still could contain more balls. So - add some smaller balls, and fill in those spaces as well. This is essentially the same problem to be solved in getting maximum cellular coverage - larger balls will fill the space quicker but also leave larger open areas, so the equation seeks to optimize the size of all the balls in order to maximize the coverage provided. By increasing and decreasing the cell size, and minding overlap the solution arranges variable size cells for optimum coverage.

Figure 4. TPCv2 Multi-ap Result Example


TPCv2 runs to completion, and power changes are handled continuously. If a cycle concludes that a particular AP's power needs to be raised or lowered the algorithm will run continuously adjusting the power and re-checking the results until Ideal_TX is reached. TPCv2 runs considering all AP's neighbors as equals regardless of channel (default mode), and in channel mode which only considers AP's that are on the "SAME" channel as the AP being solved. Channel mode is enabled at the command line of the RF group leader only. Channel mode is a good choice for High Density Deployments - as this will minimize co-channel interference, while Maximizing coverage and signal between 2 AP's on the same channel. Adjacent channel interference will be addressed by DCA.

(Cisco Controller) >config advanced 802.11a tpcv2-per-chan enable/disable (disabled by default).

Using Channel mode increases the power significantly.

TPCv2 also adds a radio Utility feature. As the algorithm runs, it models different combinations of power to reach a solution. As it does this it keeps track of the utility of a given radio. TPCv2 will run 10 iterations every TPC Interval (600 seconds) if a particular radio is only need for 3 of the 10 solutions – that radio is marked as 30% utility. You can see the results of this in the show advanced 802.11a/b sum command.

(Cisco Controller) >show advanced 802.11b sum
Leader RRM Information
----------------------
AP_1  : [b2:8d:80] Ch  6* TxPower  1dBm (Level 8)* CHDM 0dBm AP Util   0% dBm [22/19/16/13/10/7/4/1]
        RxNbrs:: total  5[  3:-20][  6:-27][  5:-30][  4:-41][  2:-49]  
        TxNbrs:: total  5[  3:-23][  6:-23][  5:-28][  4:-44][  2:-46]  
AP_2  : [43:4d:50] Ch  1* TxPower  7dBm (Level 6)* CHDM 0dBm AP Util  30% dBm [22/19/16/13/10/7/4/.]
        RxNbrs:: total  5[  6:-46][  1:-46][  4:-47][  3:-52][  5:-59]  
        TxNbrs:: total  5[  4:-39][  6:-46][  1:-49][  3:-50][  5:-51]  
AP_3  : [ba:19:40] Ch 11  TxPower  7dBm (Level 6)  CHDM 0dBm AP Util 100% dBm [22/19/16/13/10/7/./.]
        RxNbrs:: total  5[  1:-23][  6:-26][  5:-30][  2:-50][  4:-52]  
        TxNbrs:: total  5[  1:-20][  6:-21][  5:-26][  4:-49][  2:-52]  
AP_4  : [b4:20:60] Ch  6* TxPower 20dBm (Level 2)* CHDM 0dBm AP Util  70% dBm [23/20/17/14/11/8/5/2]
        RxNbrs:: total  5[  2:-39][  1:-44][  3:-49][  6:-52][  5:-59]  
        TxNbrs:: total  5[  1:-41][  2:-47][  3:-52][  6:-53][  5:-56]  
AP_5  : [b4:20: 0] Ch  1  TxPower 20dBm (Level 2)  CHDM 0dBm AP Util 100% dBm [23/20/17/14/11/8/5/2]
        RxNbrs:: total  5[  3:-26][  1:-28][  6:-34][  2:-51][  4:-56]  
        TxNbrs:: total  5[  1:-30][  3:-30][  6:-35][  2:-59][  4:-59]  
AP_6  : [cc:d4:20] Ch  6* TxPower -1dBm (Level 8)* CHDM 0dBm AP Util   0% dBm [20/17/14/11/8/5/2/-1]
        RxNbrs:: total  5[  3:-21][  1:-23][  5:-35][  2:-46][  4:-53]  
        TxNbrs:: total  5[  3:-26][  1:-27][  5:-34][  2:-46][  4:-52]  

Other data in this show command includes the last 3 octets of the AP BSSID, and RX neighbor and TX neighbor counts and values for each AP. For instance - AP_1 has a total of 5 RxNbrs - his closest RX neighbor is AP3 at -21 dBm. This is a very useful output and can be used to select AP's for shutting off 2.4 Ghz radios in overly dense situations - such as this example above. From above - we could get good coverage with 3 of the 6 AP's.


Note


It is highly advisable to look at the AP's position and coverage on the map with a good understanding of the desired coverage requirements before shutting off radios. This data should be used only as a guide.


The other show command you will want to know is:
show advanced 802.11a/b txpower 
(Cisco Controller) >show advanced 802.11b txpower

Leader Automatic Transmit Power Assignment
  Transmit Power Assignment Mode................. AUTO
  Transmit Power Update Interval................. 600 seconds
  Transmit Power Threshold....................... -70 dBm
  Transmit Power Neighbor Count.................. 3 APs
  Min Transmit Power............................. -10 dBm
  Max Transmit Power............................. 30 dBm
  Update Contribution
    Noise........................................ Enable
    Interference................................. Enable
    Load......................................... Disable
    Device Aware................................. Disable
  Transmit Power Assignment Leader............... Cisco_69:9a:64 (192.168.10.8) (::)
  Last Run....................................... 539 seconds ago
  Last Run Time.................................. 0 seconds
  TPC Mode....................................... Version 2 Per-Channel NO
  TPCv2 Target RSSI.............................. -67 dBm
  TPCv2 VoWLAN Guide RSSI........................ -67.0 dBm
  TPCv2 SOP...................................... -85.0 dBm
  TPCv2 Default Client Ant Gain..................   0.0 dBi
  TPCv2 Path Loss Decay Factor...................   3.6
  TPCv2 Search Intensity......................... 10 Iterations

TPCv2 Plan Quality Index.................. Overall -0.5 Coverage 33.2 CCI 3.0 Ratio   1.0
TPCv2 Target Plan.............................. To be reached in 7 TPC runs

AP Name                          Channel    TxPower       Allowed Power Levels    
-------------------------------- ---------- ------------- ------------------------
upstairs_3602e                   *1         *7/7 ( 4 dBm) [22/19/16/13/10/7/4/4]
AP_2702E                         *6         *8/8 ( 1 dBm) [22/19/16/13/10/7/4/1]
downac                            1          2/8 (20 dBm) [23/20/17/14/11/8/5/2]
upac                             *6         *2/8 (20 dBm) [23/20/17/14/11/8/5/2]
NOS_3600                          1          6/7 ( 7 dBm) [22/19/16/13/10/7/4/4]
AP_3502                          *6         *8/8 (-1 dBm) [20/17/14/11/8/5/2/-1]
1602I_.560e.1b97                  11         6/6 ( 7 dBm) [22/19/16/13/10/7/7/7]

This command shows you the configurations for both TPCv1, TPCv2, identifies which is in use (you can only use one) as well as where the TPC threshold and the TPCv2 Target RSSI are set for the global configuration. TPCv1 Threshold and TPCv2 Target RSSI can both be set differently within an RF Profile, and you will not see that in this command. The show command also lists all the AP’s WITH their allowed powers as well as the current power level. Keep in mind – the allowed powers are for the current channel assignment, see this example where that makes a difference in 5 Ghz

AP Name                          Channel    TxPower       Allowed Power Levels    
-------------------------------- ---------- ------------- ------------------------
upstairs_3602e                   *(36,40)   *2/5 (11 dBm) [14/11/8/5/2/2/2/2]
AP_2702E                         *(64,60,52,56) *1/6 (17 dBm) [17/14/11/8/5/2/2/2]
downac                           *(149,153,157,161) *1/8 (23 dBm) [23/20/17/14/11/8/5/2]
upac                             *(149,153,157,161) *4/8 (14 dBm) [23/20/17/14/11/8/5/2]
NOS_3600                         *36         5/5 ( 2 dBm) [14/11/8/5/2/2/2/2]
AP_3502                          *(36,40)   *6/7 ( 2 dBm) [17/14/11/8/5/2/-1/0]
1602I_.560e.1b97                 *(100,104) *1/4 (17 dBm) [17/14/11/8/8/8/8/8]

TPC Min/Max

Regardless of the TPC method you choose you will have the option to limit either the maximum or minimum power settings allowed. TPC Min/Max is a setting that unlike TPC, runs on every controller. It is designed as a safety to prevent going too low or too high in power. The effect is that no matter what TPC sends to the radio, if it is above the Max or below the minimum, the TPC Max or Minimum Value overrides the global assignment.

Why would you want to do this you may ask? Well, we don't always get the AP where we would like it in an installation. The classic use case for which this feature was created is all the AP's being mounted in a central hallway with the intended coverage being on either side of the hall. Because the AP's can see one another quite well in the hallway - power will be reduced to meet the criteria between the AP's and may not be loud enough to reach the edges of the rooms on either side of the hall. Moving the AP's into the rooms - and staggering them down the hall would be better solution - but also may not be possible for a number of reasons. In this case you could use TPC min to ensure that the power levels required to reach the users was indeed honored. Now, this will increase co-channel interference in the hallway itself - however very few of the users will be in the hallway.

Another good example of where to use this would be a lecture hall or classroom that is configured for High Density. People absorb RF, and when the room is full of people - the amount of RF energy you see at the floor could be attenuated by 5 or as much as 10 dB in extremely dense cases. When the room is empty, the power levels of the AP's will drop because the propagation has improved and when it is full, you will need more power (5-10 dB more). If you let TPC manage this without any guidelines, it will eventually apply enough power, but that could be 30 minutes into the class that lasts 1 hour. Setting TPC minimum at the required full class level will ensure that they have plenty of signal at the beginning of class. Yes, the AP's will be louder for all other times, however the unused AP's will only be sending beacons during those times - so not a concern really as the interference will be minimal.

TPC Min and Max settings are entered in dBm NOT Power level index. For this you will want to know the allowed powers for the AP model you are configuring. Power level index is a scale 1-8 from (1)Max to (8) Minimum power for the AP. Not all AP’s support 8 Power Levels. The max power an AP can transmit differs by band, and in 5 GHz will be lowest in the UNii1 band (channels 36-48), higher in Unii2 and Unii2e (52-64, 100-140) and highest in Unii3 (149-165). The advantage to entering this in dBm is that all AP’s regardless of channel will exhibit the same power assuming the selection is supported in all 3 ranges, else the AP will be set to the power level it supports in the band closest to the dBm value entered. An AP’s allowed powers list is just that – the power levels that the AP can support. To see the allowed powers for the AP’s on your network, from the controller CLI - show advanced 802.11a/b summary. Both the channel and the allowed powers for the AP are displayed. From the AP CLI show controller d0/d1 (d0=2.4 and d1=5 GHz).

An AP 2702e -A this list looks like this:

UNii1–15,12,9,6,3 dBm (5 levels 1-5 supported)

UNii2/e–17,14,11,8,5,2 dBm (6 levels 1-6 supported)

UNii3–17,14,11,8,5,2 dBm (6 levels 1-6 supported)

And a 3702e looks like this:

UNii1–15,12,9,6,3 dBm (5 levels 1-5 supported)

UNii2/e–17,14,11,8,5,2 dBm (6 levels 1-6 supported)

UNii3–23,20,17,14,11,8,5,2 dBm (8 levels 1-8 supported)

Power level 1 always relates to the max power that can be made at 6 Mbps - Non-BF (Beam Formed).

Entry of TCP Min/Max values can be done at the GUI - Wireless> 802.11a > RRM > Tx Power Control(TPC)

Figure 5. TPC configuration dialogue WLC GUI


It is also supported within RF profiles under RRM.

Figure 6. RF Profile - RRM config dialogue - WLC


TPC Min/Max Values apply regardless of TPC version in use. Note in the examples above - the default values are - Max =30 dBm and Min = -10 dBm which is effectively off - as AP's do not support these power levels.

Again, this is a per controller/RF profile setting and does not apply to all AP's in the RF Group but only to ones local to the controller where the setting is made.