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?