What is Power Control?
Power Control goals
Application areas
Types of Power Control
MS/BS Power Control in GSM (CS domain)
RxLev/RxQual measurements performed by the BTS
RxLev/RxQual measurements performed by the MS
MS/BS Power Control in GSM (CS domain)
P_CON_INTERVAL > 0
Power Control methods
Static Power Control
Dynamic Power Control
General requirements
BSC (Base Station Controller), or
BTS (Base Transceiver Station)
BTS over the A-bis/RSL
MS Power Control flow (simplified)
BS Power Control flow (simplified)
RxLev/RxQual meaning and encoding
RxLev is basically signal strength
0..63 on the wire (dBm + 110, see dbm2rxlev() in libosmocore.git)
RxQual is basically signal quality
BER (Bit Error Rate), or
C/R (Carrier to Interference)
0..7 on the wire (lower is better)
UL/DL measurements on the wire
FULL vs SUB values
DTX (Discontinuous transmission)
SID frames)
-SUB values reflect measurements for TDMA blocks on which it’s mandatory to Tx
-FULL values reflect the full measurement period, including Tx gaps
-SUB values if DTX is active, otherwise use the -FULL
Power Control parameters
L_RXLEV_XX_P/U_RXLEV_XX_P - lower/upper RxLev
L_RXQUAL_XX_P/U_RXQUAL_XX_P - lower/upper RxQual
XX is either DL or UL
Pow_Incr_Step_Size (2, 4 or 6 dB)
Pow_Red_Step_Size (2 or 4 dB)
picture from "Interference reduction" by Nokia Siemens Networks
Implementation in OsmoBSC/OsmoBTS
osmo-bts.git
Configuring MS/BS power control in OsmoBSC
$ telnet localhost 4242
OsmoBSC# show running-config
...
network
...
bts 0
...
bs-power-control
mode static
ms-power-control
mode dyn-bts
...
|
Note
|
only for both ip.access nanoBTS and OsmoBTS. |
Configuring MS/BS power control in OsmoBSC
OsmoBSC(config)# network
OsmoBSC(config-net)# bts 0
OsmoBSC(config-net-bts)# ?
...
bs-power-control BS (Downlink) power control parameters
ms-power-control MS (Uplink) power control parameters
...
Configuring MS/BS power control in OsmoBSC
OsmoBSC(config-xx-power-ctrl)# mode
<1> static Instruct the MS/BTS to use a static power level
<2> dyn-bts Power control to be performed dynamically by the BTS itself
<3> dyn-bsc Power control to be performed dynamically at this BSC
OsmoBSC(config-net-bts)# no (bs-power-control|ms-power-control) <4>
Send RSL MS/BS Power IE alone indicating a static power level to the BTS
Send both RSL MS/BS Power IE and vendor-specific MS/BS Power Parameters IE
Perform power control in the BSC by sending RSL MS/BS Power Control messages
Do not send any power control IEs in RSL CHANnel ACTIVation messages
Configuring MS/BS power control in OsmoBSC
OsmoBSC(config-xx-power-ctrl)# list with-flags
<1> . lv ctrl-interval <0-31>
<2> . lv step-size inc <2-6> red <2-4>
<3> . lv rxlev-thresh lower <0-63> upper <0-63>
<4> . lv rxqual-thresh lower <0-7> upper <0-7>
<5> . lv rxlev-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31>
<5> . lv rxqual-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31>
P_CON_INTERVAL - power control interval
Pow_Incr_Step_Size / Pow_Red_Step_Size
L_RXLEV_XX_P/U_RXLEV_XX_P - lower/upper RxLev
L_RXQUAL_XX_P/U_RXQUAL_XX_P - lower/upper RxQual
Threshold comparators (see 3GPP 45.008, section A.3, not used by osmo-bts)
Configuring MS/BS power control in OsmoBSC
<1> . lv no (rxlev-avg|rxqual-avg)
<2> . lv (rxlev-avg|rxqual-avg) params hreqave <1-31> hreqt <1-31>
<3> . lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median)
<4> . lv (rxlev-avg|rxqual-avg) algo osmo-ewma beta <1-99>
No averaging (not recommended)
Hreqave/hreqt averaging parameters (not used by osmo-bts)
Averaging algorithms suggested by 3GPP (not supported by osmo-bts)
Osmocom specific EWMA algo (supported by both osmo-bsc and osmo-bts)
Configuring MS/BS power control in OsmoBSC
OsmoBSC(config-ms-power-ctrl)# list with-flags
<1> . lv ci-thresh (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-30> upper <0-30>
<2> . lv ci-thresh-comp (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-31> <0-31> upper <0-31> <0-31>
. lv no ci-avg (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs)
<3> . lv ci-avg (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) params hreqave <1-31> hreqt <1-31>
<4> . lv ci-avg (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) algo (unweighted|weighted|mod-median)
<5> . lv ci-avg (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) algo osmo-ewma beta <1-99>
Carrier-to-Interference (C/I) thresholds (only for osmo-bts)
Threshold comparators (currently not used by osmo-bts)
Hreqave/hreqt averaging parameters (not used by osmo-bts)
Averaging algorithms suggested by 3GPP (not supported by osmo-bts)
Osmocom specific EWMA algo (supported by both osmo-bsc and osmo-bts)
Configuring MS/BS power control in OsmoBSC
OsmoBSC(config-bs-power-ctrl)# list with-flags
. l. bs-power (static|dyn-max) <0-30> <1>
OsmoBSC(config-bs-power-ctrl)# bs-power ?
static Fixed BS Power reduction value (for static mode)
dyn-max Maximum BS Power reduction value (for dynamic mode)
Maximum (or static) BS power reduction in dB
|
Note
|
Maximum MS power is reported by the MS itself (in the Classmark)
and depends on the band and the power class of the MS. The operator can
limit it even further by changing ms max power <0-40> in the BTS node. |
The power control interval (P_CON_INTERVAL)
P_CON_INTERVAL=2 trigger loop every 4-th SACCH block (1.92s)
P_CON_INTERVAL=1 trigger loop every 2-nd SACCH block (0.960s)
|<-->| - one SACCH multi-frame period
| |
|----|----|----|----|----|----|----|----|----> SACCH multi-frames
a) * * * * * * * * * P_CON_INTERVAL=0 (0.48 s)
b) * * * * * P_CON_INTERVAL=1 (0.96 s)
c) * * * P_CON_INTERVAL=2 (1.92 s)
d) * * P_CON_INTERVAL=3 (2.88 s)
e) * * P_CON_INTERVAL=4 (3.84 s)
Encoding of the MS/BS Power Control parameters
When the parameters come into effect?
RSL CHANnel ACTIVation message
# Resending from the 'enable' node:
OsmoBSC# bts 0 <1> resend-power-control-defaults
# Resending from any configuration node (note prefix 'do'):
OsmoBSC(config-ms-power-ctrl)# do bts 0 <1> resend-power-control-defaults
BTS number for which to resend default power control parameters.
$ osmo_ctrl.py \
--host 127.0.0.1 <1> -p 4249 \
--set "bts.0.send-power-control-defaults" 1 <2>
Remote address of the host running osmo-bsc (localhost in this example).
An arbitrary dummy value (ignored). Required because SET command is used.
Current state of affairs
BTS_Tests.ttcn)
TC_ms_pwr_ctrl_constant, TC_ms_pwr_ctrl_pf_ewma,
TC_rsl_bs_pwr_*, TC_rsl_ms_pwr_*
What’s missing?
RxLev/RxQual/C/I threshold comparators
unweighted, weighted, mod-median)
Potential improvements
Pow_Incr_Step_Size / Pow_Red_Step_Size
P_CON_INTERVAL
EPC (Enhanced Power Control) and EMR (Enhanced Measurement Reports)
PWRC flag in System Information messages
What’s this about?
Support in OsmoBSC/OsmoBTS
RSL BS Power Control msg with Chan Number IE indicating BCCH/CCCH
-trx variant
Interworking with the BS power control
up to 6dB
Enabling in OsmoBSC/OsmoBTS
OsmoBSC> enable
OsmoBSC# bts 0 <1> c0-power-reduction ?
<0-6> Power reduction value (in dB, even numbers only)
OsmoBSC# bts 0 <1> c0-power-reduction 4 <2>
BTS number for which to activate BCCH carrier power reduction
Maximum BCCH carrier power reduction (in 2 dB steps, 4 dB in this example)
$ osmo_ctrl.py \
--host 127.0.0.1 <1> -p 4249 \
--set "bts.0.c0-power-reduction" 4 <2>
Remote address of the host running osmo-bsc (localhost in this example)
Maximum BCCH carrier power reduction (even dB values, 4 dB in this example)
What’s this about?
Support in OsmoBSC/OsmoBTS
RSL CHANnel ACTIVation messages
Enabling in OsmoBSC/OsmoBTS
OsmoBSC(config-net-bts)# overpower ?
dl-acch Enable overpower for both SACCH and FACCH
dl-sacch Enable overpower for SACCH only
dl-facch Enable overpower for FACCH only
OsmoBSC(config-net-bts)# overpower rxqual 0?
0 BER >= 0% (always on)
OsmoBSC(config-net-bts)# overpower chan-mode ?
speech-amr Speech channels using AMR codec (default)
any Any kind of channel mode
Enabling in OsmoBSC/OsmoBTS
network
bts 0
overpower dl-acch 2 <1>
overpower rxqual 4 <2>
overpower chan-mode speech-amr <3>
Overpower of maximum 2 dB for both SACCH and FACCH.
Enable TOP only if RxQual is worse than 4 (BER >= 1.6%).
Permit TOP only for speech channels using AMR codec.
Thanks for listening! Questions?