<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/21886">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">power_control: add documentation on available configuration params<br><br>Change-Id: Ib65d33f0f1dd24d39e3be581e4e072a310bc906a<br>Related: SYS#4918<br>---<br>A doc/manuals/chapters/power_control.adoc<br>M doc/manuals/osmobsc-usermanual.adoc<br>2 files changed, 303 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc</span><br><span>new file mode 100644</span><br><span>index 0000000..b8d182a</span><br><span>--- /dev/null</span><br><span>+++ b/doc/manuals/chapters/power_control.adoc</span><br><span>@@ -0,0 +1,301 @@</span><br><span style="color: hsl(120, 100%, 40%);">+== Power control</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The objective of power control is to regulate the transmit power of the MS (Uplink)</span><br><span style="color: hsl(120, 100%, 40%);">+as well as the BTS (Downlink) in order to achieve the optimal reception conditions,</span><br><span style="color: hsl(120, 100%, 40%);">+i.e. a desired signal strength and a desired signal quality.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+There are two advantages of power control:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+- reduction of the average power consumption (especially in the MS), and</span><br><span style="color: hsl(120, 100%, 40%);">+- reduction of the co-channel interference for adjacent channel users.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Power control can be performed either by the BSC, or by the BTS autonomously.</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC currently lacks the power control logic, so it cannot act as the regulating</span><br><span style="color: hsl(120, 100%, 40%);">+entity, however it's capable to instruct a BTS that supports autonomous power</span><br><span style="color: hsl(120, 100%, 40%);">+control to perform the power regulation.  This is achieved by including vendor-</span><br><span style="color: hsl(120, 100%, 40%);">+specific IEs with power control parameters in the channel activation messages</span><br><span style="color: hsl(120, 100%, 40%);">+on the A-bis/RSL interface.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+=== Power control parameters</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Unfortunately, 3GPP specifications do not specify the exact list of power control</span><br><span style="color: hsl(120, 100%, 40%);">+parameters and their encoding on the A-bis/RSL interface, so it's up to a BTS/BSC</span><br><span style="color: hsl(120, 100%, 40%);">+vendor what to send and in which format.  Furthermore, there is no public</span><br><span style="color: hsl(120, 100%, 40%);">+documentation on which parameters are accepted by particular BTS models.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+3GPP TS 44.008 nonetheless defines a minimal set of parameters for a general power</span><br><span style="color: hsl(120, 100%, 40%);">+control algorithm.  OsmoBSC allows to configure these parameters via the VTY</span><br><span style="color: hsl(120, 100%, 40%);">+interface, this is further described in the next sections.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+So far only the ip.access specific format is implemented, so it should be possible</span><br><span style="color: hsl(120, 100%, 40%);">+to enable power control for nanoBTS.  OsmoBTS also accepts this format, but may</span><br><span style="color: hsl(120, 100%, 40%);">+ignore some of the received parameters due to incomplete implementation.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== When the parameters come into effect?</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+It depends on how the power control parameters are signaled to the BTS.  If a given</span><br><span style="color: hsl(120, 100%, 40%);">+BTS vendor/model requires _each_ RSL CHANnel ACTIVation message to contain the full</span><br><span style="color: hsl(120, 100%, 40%);">+set of parameters, than changing them in the BSC at run-time would affect all newly</span><br><span style="color: hsl(120, 100%, 40%);">+established logical channels immediately.  The existing connections would continue</span><br><span style="color: hsl(120, 100%, 40%);">+to use parameters which were in use during the time of channel activation.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+For both ip.access nanoBTS and OsmoBTS, the configured parameters are being sent</span><br><span style="color: hsl(120, 100%, 40%);">+only once when the A-bis/RSL link is established.  In all subsequent RSL messages,</span><br><span style="color: hsl(120, 100%, 40%);">+the MS/BS Power Parameters IE will be sent empty.  Therefore, changing most of</span><br><span style="color: hsl(120, 100%, 40%);">+dynamic power control parameters at run-time would affect neither the existing</span><br><span style="color: hsl(120, 100%, 40%);">+nor newly established logical channels.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+It's still possible to 'push' a modified set of MS/BS power control parameters to a</span><br><span style="color: hsl(120, 100%, 40%);">+BTS that accepts the default parameters at startup without triggering the A-bis/RSL</span><br><span style="color: hsl(120, 100%, 40%);">+link re-establishment and thus interrupting the service.  The following command</span><br><span style="color: hsl(120, 100%, 40%);">+triggers resending of both MS/BS power control parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+# Resending from the 'enable' node:</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC# bts 0 resend-power-control-defaults</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Resending from any configuration node (note prefix 'do'):</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC(config-ms-power-ctrl)# do bts 0 resend-power-control-defaults</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+NOTE: The above statement mostly applies to parameters for dynamic power control</span><br><span style="color: hsl(120, 100%, 40%);">+mode (see below).  Switching between power control modes, as well as changing</span><br><span style="color: hsl(120, 100%, 40%);">+static/maximum power values, does not necessarily require resending of parameters.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+=== Power control configuration</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Two identical groups of parameters are available for both MS (Uplink) and BS</span><br><span style="color: hsl(120, 100%, 40%);">+(Downlink) power control.  This chapter is aimed to put some light on them.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+All parameters can be set via the VTY interface, currently within the scope of</span><br><span style="color: hsl(120, 100%, 40%);">+a BTS.  This means that all transceivers will 'inherit' the same configuration.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC(config)# network</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC(config-net)# bts 0</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC(config-net-bts)# ?</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  bs-power-control              BS (Downlink) power control parameters</span><br><span style="color: hsl(120, 100%, 40%);">+  ms-power-control              MS (Uplink) power control parameters</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Either of these commands would lead to a separate node:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC(config-net-bts)# ms-power-control</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC(config-ms-power-ctrl)# list with-flags</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  . l.  mode (static|dyn-bts) [reset]</span><br><span style="color: hsl(120, 100%, 40%);">+  . l.  bs-power (static|dyn-max) <0-30></span><br><span style="color: hsl(120, 100%, 40%);">+  . lv  step-size inc <2-6> red <2-4></span><br><span style="color: hsl(120, 100%, 40%);">+  . lv  rxlev-thresh lower <0-63> upper <0-63></span><br><span style="color: hsl(120, 100%, 40%);">+  . lv  rxqual-thresh lower <0-7> upper <0-7></span><br><span style="color: hsl(120, 100%, 40%);">+  . lv  rxlev-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31></span><br><span style="color: hsl(120, 100%, 40%);">+  . lv  rxqual-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31></span><br><span style="color: hsl(120, 100%, 40%);">+  . lv  no (rxlev-avg|rxqual-avg)</span><br><span style="color: hsl(120, 100%, 40%);">+  . lv  (rxlev-avg|rxqual-avg) params hreqave <1-31> hreqt <1-31></span><br><span style="color: hsl(120, 100%, 40%);">+  . lv  (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median)</span><br><span style="color: hsl(120, 100%, 40%);">+  . lv  (rxlev-avg|rxqual-avg) algo osmo-ewma beta <1-99></span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+NOTE: Flag 'v' indicates that a given parameter is vendor specific, so different</span><br><span style="color: hsl(120, 100%, 40%);">+BTS vendors/models may ignore or even reject it.  Flag 'l' indicates that changing</span><br><span style="color: hsl(120, 100%, 40%);">+a given parameter at run-time would affect only the new connections.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== Power control mode</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Three power control modes exist:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC(config-ms-power-ctrl)# mode ?</span><br><span style="color: hsl(120, 100%, 40%);">+  static   Instruct the MS/BTS to use a static power level <1></span><br><span style="color: hsl(120, 100%, 40%);">+  dyn-bts  Power control to be performed dynamically by the BTS itself <2></span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC(config-net-bts)# no (bs-power-control|ms-power-control) <3></span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+<1> Send RSL MS/BS Power IE alone indicating a static power level to the BTS.</span><br><span style="color: hsl(120, 100%, 40%);">+<2> Send both RSL MS/BS Power IE and vendor-specific MS/BS Power Parameters IE.</span><br><span style="color: hsl(120, 100%, 40%);">+<3> Do not send any power control IEs in RSL CHANnel ACTIVation messages.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+By default, `static` mode is used for BS power control, while `dyn-bts` is used</span><br><span style="color: hsl(120, 100%, 40%);">+for MS power control.  Changing the mode at run-time would not affect already</span><br><span style="color: hsl(120, 100%, 40%);">+established connections, only the new ones (check flag 'l').</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+For BS power control, there is an additional parameter:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC(config-bs-power-ctrl)# bs-power ?</span><br><span style="color: hsl(120, 100%, 40%);">+  static   Fixed BS Power reduction value (for static mode)</span><br><span style="color: hsl(120, 100%, 40%);">+  dyn-max  Maximum BS Power reduction value (for dynamic mode)</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+that allows to configure the maximum BS power reduction value in `dyn-bts` mode,</span><br><span style="color: hsl(120, 100%, 40%);">+and a fixed power reduction value in `static` mode.  In the later case, no</span><br><span style="color: hsl(120, 100%, 40%);">+attenuation (0 dB) is applied by default (full power).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== Power change step size</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+In order to slow down the reactivity of the power control loop and thus make it more</span><br><span style="color: hsl(120, 100%, 40%);">+robust against sporadic fluctuations of the input values (RxLev and RxQual), the</span><br><span style="color: hsl(120, 100%, 40%);">+transmit power on both Uplink and Downlink is changed gradually, step by step.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC allows to configure the step sizes for both increasing and reducing directions</span><br><span style="color: hsl(120, 100%, 40%);">+separately.  The corresponding power control loop would apply different delta values</span><br><span style="color: hsl(120, 100%, 40%);">+to the current transmit power level in order to raise or lower it.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.Example: Power change step size</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+network</span><br><span style="color: hsl(120, 100%, 40%);">+ bts 0</span><br><span style="color: hsl(120, 100%, 40%);">+  bs-power-control</span><br><span style="color: hsl(120, 100%, 40%);">+   mode dyn-bts <1></span><br><span style="color: hsl(120, 100%, 40%);">+   bs-power dyn-max 12 <2></span><br><span style="color: hsl(120, 100%, 40%);">+   step-size inc 6 red 4 <3></span><br><span style="color: hsl(120, 100%, 40%);">+  ms-power-control</span><br><span style="color: hsl(120, 100%, 40%);">+   mode dyn-bts <1></span><br><span style="color: hsl(120, 100%, 40%);">+   step-size inc 4 red 2 <4></span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+<1> Both MS and BS power control is to be performed by the BTS autonomously.</span><br><span style="color: hsl(120, 100%, 40%);">+<2> The BTS is allowed to reduce the power on Downlink up to 12 dB.</span><br><span style="color: hsl(120, 100%, 40%);">+<3> On Downlink, BS power can be increased by 6 dB or reduced by 4 dB at once.</span><br><span style="color: hsl(120, 100%, 40%);">+<4> On Uplink, MS power can be increased by 4 dB or reduced by 2 dB at once.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+NOTE: In the context of BS power control, terms 'increase' and 'decrease' have the</span><br><span style="color: hsl(120, 100%, 40%);">+same meaning as in the context of MS power control: to make the output power stronger</span><br><span style="color: hsl(120, 100%, 40%);">+or weaker respectively.  Even despite the BS power loop in fact controls the attenuation.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+TIP: It's recommended to pick the values in a way that the increase step is greater than</span><br><span style="color: hsl(120, 100%, 40%);">+the reduce step.  This way the system would be able to react on signal degradation</span><br><span style="color: hsl(120, 100%, 40%);">+quickly, while a good signal would not trigger radical power reduction.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Both parameters are mentioned in 3GPP TS 45.008, table A.1:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+- Pow_Incr_Step_Size (range 2, 4 or 6 dB),</span><br><span style="color: hsl(120, 100%, 40%);">+- Pow_Red_Step_Size (range 2 or 4 dB).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== RxLev and RxQual thresholds</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The general idea of power control is to maintain the signal level (RxLev) and quality</span><br><span style="color: hsl(120, 100%, 40%);">+(RxQual) within the target ranges.  Each of these ranges can be defined as a pair of</span><br><span style="color: hsl(120, 100%, 40%);">+the lowest and the highest acceptable values called thresholds.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The process of RxLev / RxQual threshold comparison is described in 3GPP TS 45.008,</span><br><span style="color: hsl(120, 100%, 40%);">+section A.3.2.1.  All parameters involved in the process can be found in table</span><br><span style="color: hsl(120, 100%, 40%);">+A.1 with the recommended default values.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.Example: RxLev and RxQual threshold configuration</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+network</span><br><span style="color: hsl(120, 100%, 40%);">+ bts 0</span><br><span style="color: hsl(120, 100%, 40%);">+  bs-power-control</span><br><span style="color: hsl(120, 100%, 40%);">+   mode dyn-bts <1></span><br><span style="color: hsl(120, 100%, 40%);">+   rxlev-thresh lower 32 upper 38 <2></span><br><span style="color: hsl(120, 100%, 40%);">+   rxqual-thresh lower 3 upper 0 <3></span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+<1> BS power control is to be performed by the BTS autonomously.</span><br><span style="color: hsl(120, 100%, 40%);">+<2> RxLev is to be maintained in range 32 .. 38 (-78 .. -72 dBm).</span><br><span style="color: hsl(120, 100%, 40%);">+<3> RxQual is to be maintained in range 3 .. 0 (less is better).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+NOTE: For both RxLev and RxQual thresholds, the lower and upper values are included</span><br><span style="color: hsl(120, 100%, 40%);">+in the tolerance window.  In the example above, RxQual=3 would not trigger the</span><br><span style="color: hsl(120, 100%, 40%);">+control loop to increase BS power, as well as RxLev=38 (-72 dBm) would not trigger</span><br><span style="color: hsl(120, 100%, 40%);">+power reduction.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+In 3GPP TS 45.008, lower and upper RxLev thresholds are referred as `L_RXLEV_XX_P`</span><br><span style="color: hsl(120, 100%, 40%);">+and `U_RXLEV_XX_P`, while the RxQual thresholds are referred as `L_RXQUAL_XX_P` and</span><br><span style="color: hsl(120, 100%, 40%);">+`U_RXQUAL_XX_P`, where the `XX` is either `DL` (Downlink) or `UL` (Uplink).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The process of threshold comparison actually involves more than just upper and lower</span><br><span style="color: hsl(120, 100%, 40%);">+values for RxLev and RxQual.  The received 'raw' measurements are being averaged and</span><br><span style="color: hsl(120, 100%, 40%);">+stored in a circular buffer, so the power change is triggered only if Pn averages out</span><br><span style="color: hsl(120, 100%, 40%);">+of Nn averages exceed the corresponding thresholds.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.Example: RxLev and RxQual threshold comparators</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+network</span><br><span style="color: hsl(120, 100%, 40%);">+ bts 0</span><br><span style="color: hsl(120, 100%, 40%);">+  bs-power-control</span><br><span style="color: hsl(120, 100%, 40%);">+   mode dyn-bts <1></span><br><span style="color: hsl(120, 100%, 40%);">+   rxlev-thresh lower 32 upper 38</span><br><span style="color: hsl(120, 100%, 40%);">+   rxlev-thresh-comp lower 10 12 <2> upper 19 20 <3></span><br><span style="color: hsl(120, 100%, 40%);">+   rxqual-thresh lower 3 upper 0</span><br><span style="color: hsl(120, 100%, 40%);">+   rxqual-thresh-comp lower 5 7 <4> upper 15 18 <5></span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+<1> BS power control is to be performed by the BTS autonomously.</span><br><span style="color: hsl(120, 100%, 40%);">+<2> P1=10 out of N1=12 averages < L_RXLEV_XX_P => increase power.</span><br><span style="color: hsl(120, 100%, 40%);">+<3> P2=19 out of N2=20 averages > U_RXLEV_XX_P => decrease power.</span><br><span style="color: hsl(120, 100%, 40%);">+<4>  P3=5 out of  N3=7 averages > L_RXQUAL_XX_P => increase power.</span><br><span style="color: hsl(120, 100%, 40%);">+<5> P4=15 out of N4=18 averages < U_RXQUAL_XX_P => decrease power.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== Measurement averaging process</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+3GPP 45.008, section A.3.1 requires that the measurement values reported by both</span><br><span style="color: hsl(120, 100%, 40%);">+an MS and the BTS are be pre-processed before appearing on the input of the</span><br><span style="color: hsl(120, 100%, 40%);">+corresponding power control loops in any of the following ways:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+- Unweighted average;</span><br><span style="color: hsl(120, 100%, 40%);">+- Weighted average, with the weightings determined by O&M;</span><br><span style="color: hsl(120, 100%, 40%);">+- Modified median calculation, with exceptionally high and low values</span><br><span style="color: hsl(120, 100%, 40%);">+  (outliers) removed before the median calculation.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The pre-processing is expected to be performed for both MS and BS power control</span><br><span style="color: hsl(120, 100%, 40%);">+loops independently, for every input parameter (i.e. RxLev and RxQual).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC(config-bs-power-ctrl)# rxlev-avg algo ?</span><br><span style="color: hsl(120, 100%, 40%);">+  unweighted  Un-weighted average</span><br><span style="color: hsl(120, 100%, 40%);">+  weighted    Weighted average</span><br><span style="color: hsl(120, 100%, 40%);">+  mod-median  Modified median calculation</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo-ewma   Exponentially Weighted Moving Average (EWMA)</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC(config-bs-power-ctrl)# rxqual-avg algo ?</span><br><span style="color: hsl(120, 100%, 40%);">+  unweighted  Un-weighted average</span><br><span style="color: hsl(120, 100%, 40%);">+  weighted    Weighted average</span><br><span style="color: hsl(120, 100%, 40%);">+  mod-median  Modified median calculation</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo-ewma   Exponentially Weighted Moving Average (EWMA)</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS features a non-standard Osmocom specific EWMA (Exponentially Weighted Moving</span><br><span style="color: hsl(120, 100%, 40%);">+Average) based pre-processing.  Other BTS models may support additional non-standard</span><br><span style="color: hsl(120, 100%, 40%);">+methods too, the corresponding VTY options can be added on request.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Among with the averaging methods, 3GPP 45.008 also defines two pre-processing</span><br><span style="color: hsl(120, 100%, 40%);">+parameters in section A.3.1:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+- Hreqave - defines the period over which an average is produced, in terms of the</span><br><span style="color: hsl(120, 100%, 40%);">+  number of SACCH blocks containing measurement results, i.e. the number of</span><br><span style="color: hsl(120, 100%, 40%);">+  measurements contributing to each averaged measurement;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+- Hreqt - is the number of averaged results that are maintained.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+By default, OsmoBSC would not send any pre-processing parameters, so the BTS may</span><br><span style="color: hsl(120, 100%, 40%);">+apply its default pre-processing algorithm with default parameters, or may not</span><br><span style="color: hsl(120, 100%, 40%);">+apply any pre-processing at all - this is up to the vendor.  The pre-processing</span><br><span style="color: hsl(120, 100%, 40%);">+parameters need to be configured explicitly as shown in the example below.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.Example: Explicit pre-processing configuration</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+network</span><br><span style="color: hsl(120, 100%, 40%);">+ bts 0</span><br><span style="color: hsl(120, 100%, 40%);">+  bs-power-control</span><br><span style="color: hsl(120, 100%, 40%);">+   mode dyn-bts <1></span><br><span style="color: hsl(120, 100%, 40%);">+   rxlev-avg algo unweighted <2></span><br><span style="color: hsl(120, 100%, 40%);">+   rxlev-avg params hreqave 4 hreqt 6 <3></span><br><span style="color: hsl(120, 100%, 40%);">+   rxqual-avg algo osmo-ewma beta 50 <4></span><br><span style="color: hsl(120, 100%, 40%);">+   rxqual-avg params hreqave 2 hreqt 3 <5></span><br><span style="color: hsl(120, 100%, 40%);">+  ms-power-control</span><br><span style="color: hsl(120, 100%, 40%);">+   mode dyn-bts <1></span><br><span style="color: hsl(120, 100%, 40%);">+   rxlev-avg algo unweighted <2></span><br><span style="color: hsl(120, 100%, 40%);">+   rxlev-avg params hreqave 4 hreqt 6 <3></span><br><span style="color: hsl(120, 100%, 40%);">+   rxqual-avg algo osmo-ewma beta 50 <4></span><br><span style="color: hsl(120, 100%, 40%);">+   rxqual-avg params hreqave 2 hreqt 3 <5></span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+<1> Both MS and BS power control is to be performed by the BTS autonomously.</span><br><span style="color: hsl(120, 100%, 40%);">+<2> Unweighted average is applied to RxLev values.</span><br><span style="color: hsl(120, 100%, 40%);">+<3> RxLev Hreqave and Hreqt values: 4 out of 6 SACCH blocks produce an averaged measurement.</span><br><span style="color: hsl(120, 100%, 40%);">+<4> Osmocom specific EWMA is applied to RxQual values with smoothing factor = 50% (beta=0.5).</span><br><span style="color: hsl(120, 100%, 40%);">+<5> RxQual: Hreqave and Hreqt values: 2 out of 3 SACCH blocks produce an averaged measurement.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+// TODO: Document P_Con_INTERVAL (not implemented yet)</span><br><span style="color: hsl(120, 100%, 40%);">+// TODO: Document other power control parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+//               OsmoBSC(config-net-bts)# ms max power <0-40></span><br><span style="color: hsl(120, 100%, 40%);">+//          OsmoBSC(config-net-bts-trx)# max_power_red <0-100></span><br><span>diff --git a/doc/manuals/osmobsc-usermanual.adoc b/doc/manuals/osmobsc-usermanual.adoc</span><br><span>index a084a51..e66b2be 100644</span><br><span>--- a/doc/manuals/osmobsc-usermanual.adoc</span><br><span>+++ b/doc/manuals/osmobsc-usermanual.adoc</span><br><span>@@ -24,6 +24,8 @@</span><br><span> </span><br><span> include::{srcdir}/chapters/bsc.adoc[]</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+include::{srcdir}/chapters/power_control.adoc[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> include::{srcdir}/chapters/handover.adoc[]</span><br><span> </span><br><span> include::{srcdir}/chapters/smscb.adoc[]</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/21886">change 21886</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-bsc/+/21886"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ib65d33f0f1dd24d39e3be581e4e072a310bc906a </div>
<div style="display:none"> Gerrit-Change-Number: 21886 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>