Change in osmo-bsc[master]: MS Power Control Loop: Use P_CON_INTERVAL=2 by default

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

pespin gerrit-no-reply at lists.osmocom.org
Mon Oct 4 14:39:48 UTC 2021


pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25681 )


Change subject: MS Power Control Loop: Use P_CON_INTERVAL=2 by default
......................................................................

MS Power Control Loop: Use P_CON_INTERVAL=2 by default

Increase the reaction time at the expense of more stable loop with less
temporary oscillations.

See updated user manual documentation in this commit for a larger
description.

Related: SYS#5371
Change-Id: I46be244a5e01a74086e3a977ec3ea139742a0074
---
M doc/manuals/chapters/power_control.adoc
M src/osmo-bsc/gsm_data.c
2 files changed, 51 insertions(+), 23 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/81/25681/1

diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc
index 51a38cb..5563f19 100644
--- a/doc/manuals/chapters/power_control.adoc
+++ b/doc/manuals/chapters/power_control.adoc
@@ -168,6 +168,23 @@
   <0-31>  P_CON_INTERVAL, in units of 2 SACCH periods (0.96 seconds)
 ----
 
+3GPP TS 45.008 briefly mentions this parameter in table A.1 (`P_Con_INTERVAL`).
+
+A small time graph is depicted below for better understanding of the meaning of
+values for this parameter, since it is not obvious at all.
+
+.Example: Suspension interval accomplished by several values of P_CON_INTERVAL
+----
+|<-->| - 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, default)
+d) *                             *                P_CON_INTERVAL=3 (2.88 s)
+e) *                                       *      P_CON_INTERVAL=4 (3.84 s)
+----
+
 The value to use for this parameter is closely related to that of VTY option
 `step-size inc <2-6> red <2-4>`, which configures the maximum step (in dB) at
 which the MS Power can be requested to changed when the MS Power Control Loop is
@@ -181,31 +198,42 @@
 By default, increment `step-size` is set to 4 dB and the decrement `step-size`
 is set to 2 dB, hence the MS requiring `4 * 60 = 240` milliseconds. That's less
 than 1 measurement period (480 ms), hence only the first measurement period
-needs to be skipped. Therefore, the suspension interval is set to 1 for both
-MS/BS power control loops, and so the power control decision is taken every 960
-ms (every second SACCH block period).
+needs to be skipped. Therefore, a suspension interval of 1 for both
+MS/BS power control loops can be used, and so the power control decision is
+taken every 960 ms (every second SACCH block period).
+
+However, OsmoBSC currently uses a default value of `ctrl-interval 2`
+(`P_CON_INTERVAL=2`, 1.92s, 3/4 received SACCH blocks are skipped), because
+that's the minimum amount of frames required for one loop step to run
+completely, that is: BTS fetching measurements and transmitting the new MS Power
+Level, then the MS retrieving the MS Power Level, transmitting with that exact
+MS Power level during the entire period and then finally submitting the
+Measurement result containing that same MS Power Level. Using a value of
+`P_CON_INTERVAL=1` also provides good results, but in that case the loop tends
+to produce more temporary power oscillations due to the loop acting on periods
+where an older (earlier requested) MS Power level is still in use (and
+announced) by the MS.
+
+.Example: Timeline showing propagation of a new MS Power Level (P_CON_INTERVAL=2)
+----
+|<------------->| - one SACCH multi-frame period
+| 1             | 2             | 3             | 4             | ---> SACCH multi-frames
+|SA0|SA1|SA2|SA3|SA0|SA1|SA2|SA3|SA0|SA1|SA2|SA3|SA0|SA1|SA2|SA3| ---> SACCH bursts
+|<1>|...|...|<2>|<3>|...|...|<4>|<5>|...|...|<6>|<7>|...|...|<8>|
+----
+<1> BTS sends new requested MS Power Level in header of SACCH
+<2> MS receives SACCH block (new MS Power Level)
+<3> MS starts ramping towards new MS Power Level (hence potentially variable power used over the period)
+<4> MS should already be in desired MS Power Level (for step increments of less-or-equal than 8 dB)
+<5> MS starts transmitting at desired MS Power level constantly (ramping is over)
+<6> MS builds Measurement Results to be sent on next SACCH period
+<7> MS sends the Measurement Results of the previous multiframe to the BTS
+<8> BTS receives the Measurement Results from MS on SACCH, starts next loop iteration
+
 
 Setting `ctrl-interval` to 0 increases the interval to 480 ms, so basically no
 SACCH block is skipped and MS Power Control loop is triggered upon receival of
-every UL SACCH block. Value 2 corresponds to the interval of 1920 ms, so 3/4
-received SACCH blocks are skipped.
-
-3GPP TS 45.008 briefly mentions this parameter in table A.1 (`P_Con_INTERVAL`).
-
-A small time graph is depicted below for better understanding of the meaning of
-values for this parameter, since it is not obvious at all.
-
-.Example: Suspension interval accomplished by several values of P_CON_INTERVAL
-----
-|<-->| - one SACCH multi-frame period
-|    |
-|----|----|----|----|----|----|----|----|----> SACCH multi-frames
-a) *    *    *    *    *    *    *    *    *      P_CON_INTERVAL=0 (0.48 s)
-b) *         *         *         *         *      P_CON_INTERVAL=1 (0.96 s, default)
-c) *                   *                   *      P_CON_INTERVAL=2 (1.92 s)
-d) *                             *                P_CON_INTERVAL=3 (2.88 s)
-e) *                                       *      P_CON_INTERVAL=4 (3.84 s)
-----
+every UL SACCH block.
 
 ==== Power change step size
 
diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c
index c8108e8..a9fdfe3 100644
--- a/src/osmo-bsc/gsm_data.c
+++ b/src/osmo-bsc/gsm_data.c
@@ -1142,7 +1142,7 @@
 	.inc_step_size_db = 4, /* 2, 4, or 6 dB */
 	.red_step_size_db = 2, /* 2 or 4 dB */
 
-	.ctrl_interval = 1, /* Trigger loop every second SACCH block. TS 45.008 sec 4.7.1 */
+	.ctrl_interval = 2, /* Trigger loop every fourth SACCH block (1.92s). TS 45.008 sec 4.7.1 */
 
 	/* RxLev measurement parameters */
 	.rxlev_meas = {

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25681
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I46be244a5e01a74086e3a977ec3ea139742a0074
Gerrit-Change-Number: 25681
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20211004/c3e20dae/attachment.htm>


More information about the gerrit-log mailing list