<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/25513">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">MS Power Control Loop: Support turn off C/I based logic<br><br>Setting LOWER_CMP_N and UPPER_CMP_N for all channel types can be quite<br>cumbersome and end up in lengthy config files. Let's instead add a<br>placeholder command to apply it to all channel types of a BTS at once.<br>This is useful specially since a user disabling C/I capabilities<br>probably does so because it may require a fair amount of fine-tuning<br>parameters to have it working perfectly. Hence, a user not willing to<br>spend time configuring those parameters correctly (and for which default<br>ones doesn't work properly) will require quick way to get rid of C/I<br>based MS Power Control Loop. By disabling C/I comparison, osmo-bts will<br>rely on RxLev only when applying the MS Power Control Loop, which is<br>fine for non noisy environments.<br><br>Related: SYS#4917<br>Change-Id: I0e1a1a9228a15e9ec9c41b7952b03e1d25309706<br>---<br>M doc/manuals/chapters/power_control.adoc<br>M src/osmo-bsc/bts_vty.c<br>M tests/power_ctrl.vty<br>3 files changed, 77 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/13/25513/1</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>index 54cbd5b..b9e4bb7 100644</span><br><span>--- a/doc/manuals/chapters/power_control.adoc</span><br><span>+++ b/doc/manuals/chapters/power_control.adoc</span><br><span>@@ -345,6 +345,14 @@</span><br><span> <3> P0=2 out of N1=10 averages < L_CI_AMR_FR_XX_P => increase power.</span><br><span> <4> P1=3 out of N2=4 averages > U_CI_AMR_FR_XX_P => decrease power.</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+NOTE: The BSC can instruct a BTS to disable C/I related logic in its</span><br><span style="color: hsl(120, 100%, 40%);">+autonomous MS Power Control Loop for a given channel type (hence no taking C/I</span><br><span style="color: hsl(120, 100%, 40%);">+measurements into account) by means of setting both related LOWER_CMP_N and</span><br><span style="color: hsl(120, 100%, 40%);">+UPPER_CMP_N parameters to zero (see _ci-thresh-comp_ VTY command). For the sake</span><br><span style="color: hsl(120, 100%, 40%);">+of easing configuration, a placeholder VTY command to disable C/I for all</span><br><span style="color: hsl(120, 100%, 40%);">+channel types is available under VTY node _ms-power-control_ as *_ci-thresh-comp</span><br><span style="color: hsl(120, 100%, 40%);">+disable all_*.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> ==== Measurement averaging process</span><br><span> </span><br><span> 3GPP 45.008, section A.3.1 requires that the measurement values reported by both</span><br><span>diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c</span><br><span>index 3774344..7a502d7 100644</span><br><span>--- a/src/osmo-bsc/bts_vty.c</span><br><span>+++ b/src/osmo-bsc/bts_vty.c</span><br><span>@@ -3272,6 +3272,35 @@</span><br><span>    return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_USRATTR(cfg_power_ctrl_ci_thresh_comp_disable,</span><br><span style="color: hsl(120, 100%, 40%);">+          cfg_power_ctrl_ci_thresh_comp_disable_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+            X(BSC_VTY_ATTR_VENDOR_SPECIFIC) |</span><br><span style="color: hsl(120, 100%, 40%);">+             X(BSC_VTY_ATTR_NEW_LCHAN),</span><br><span style="color: hsl(120, 100%, 40%);">+            "ci-thresh-comp disable all",</span><br><span style="color: hsl(120, 100%, 40%);">+       "Set Carrier-to_interference (C/I) threshold comparators (for dynamic mode)\n"</span><br><span style="color: hsl(120, 100%, 40%);">+              "Disable C/I comparison in control loop (sets LOWER_CMP_N and UPPER_CMP_N to zero)\n"</span><br><span style="color: hsl(120, 100%, 40%);">+       "Disable C/I comparison for all channel types\n")</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  struct gsm_power_ctrl_params *params = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define DISABLE_MEAS_PC(PARAMS, TYPE) \</span><br><span style="color: hsl(120, 100%, 40%);">+      (PARAMS)->TYPE##_meas.lower_cmp_p = 0; \</span><br><span style="color: hsl(120, 100%, 40%);">+   (PARAMS)->TYPE##_meas.lower_cmp_n = 0; \</span><br><span style="color: hsl(120, 100%, 40%);">+   (PARAMS)->TYPE##_meas.upper_cmp_p = 0; \</span><br><span style="color: hsl(120, 100%, 40%);">+   (PARAMS)->TYPE##_meas.upper_cmp_n = 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    DISABLE_MEAS_PC(params, ci_fr);</span><br><span style="color: hsl(120, 100%, 40%);">+       DISABLE_MEAS_PC(params, ci_hr);</span><br><span style="color: hsl(120, 100%, 40%);">+       DISABLE_MEAS_PC(params, ci_amr_fr);</span><br><span style="color: hsl(120, 100%, 40%);">+   DISABLE_MEAS_PC(params, ci_amr_hr);</span><br><span style="color: hsl(120, 100%, 40%);">+   DISABLE_MEAS_PC(params, ci_sdcch);</span><br><span style="color: hsl(120, 100%, 40%);">+    DISABLE_MEAS_PC(params, ci_gprs);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#undef DISABLE_MEAS_PC</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ return CMD_SUCCESS;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #define POWER_CONTROL_MEAS_AVG_CMD \</span><br><span>     "(rxlev-avg|rxqual-avg)"</span><br><span> #define POWER_CONTROL_MEAS_AVG_DESC \</span><br><span>@@ -4445,6 +4474,7 @@</span><br><span>  install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxlev_thresh_comp_cmd);</span><br><span>         install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxqual_thresh_comp_cmd);</span><br><span>        install_element(POWER_CTRL_NODE, &cfg_power_ctrl_ci_thresh_comp_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+     install_element(POWER_CTRL_NODE, &cfg_power_ctrl_ci_thresh_comp_disable_cmd);</span><br><span>    install_element(POWER_CTRL_NODE, &cfg_power_ctrl_no_avg_cmd);</span><br><span>    install_element(POWER_CTRL_NODE, &cfg_power_ctrl_avg_params_cmd);</span><br><span>        install_element(POWER_CTRL_NODE, &cfg_power_ctrl_avg_algo_cmd);</span><br><span>diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty</span><br><span>index af02cd4..b14a905 100644</span><br><span>--- a/tests/power_ctrl.vty</span><br><span>+++ b/tests/power_ctrl.vty</span><br><span>@@ -38,6 +38,7 @@</span><br><span>   . lv  rxlev-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31></span><br><span>   . lv  rxqual-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31></span><br><span>   . lv  ci-thresh-comp (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-31> <0-31> upper <0-31> <0-31></span><br><span style="color: hsl(120, 100%, 40%);">+  . lv  ci-thresh-comp disable all</span><br><span>   . lv  no (rxlev-avg|rxqual-avg)</span><br><span>   . lv  (rxlev-avg|rxqual-avg) params hreqave <1-31> hreqt <1-31></span><br><span>   . lv  (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median)</span><br><span>@@ -118,6 +119,7 @@</span><br><span>   . lv  rxlev-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31></span><br><span>   . lv  rxqual-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31></span><br><span>   . lv  ci-thresh-comp (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-31> <0-31> upper <0-31> <0-31></span><br><span style="color: hsl(120, 100%, 40%);">+  . lv  ci-thresh-comp disable all</span><br><span>   . lv  no (rxlev-avg|rxqual-avg)</span><br><span>   . lv  (rxlev-avg|rxqual-avg) params hreqave <1-31> hreqt <1-31></span><br><span>   . lv  (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median)</span><br><span>@@ -295,3 +297,40 @@</span><br><span>    rxqual-thresh lower 3 upper 0</span><br><span>    rxqual-thresh-comp lower 5 7 upper 15 18</span><br><span> ...</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC(config-net-bts)# ### Check 'ci-thresh-comp disable all' works properly:</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)# show running-config</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  ms-power-control</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+   ci-thresh-comp fr-efr lower 5 7 upper 15 18</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+   ci-thresh-comp hr lower 5 7 upper 15 18</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+   ci-thresh-comp amr-fr lower 5 7 upper 15 18</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+   ci-thresh-comp amr-hr lower 5 7 upper 15 18</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+   ci-thresh-comp sdcch lower 5 7 upper 15 18</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+   ci-thresh-comp gprs lower 5 7 upper 15 18</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)# ci-thresh-comp disable all</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC(config-ms-power-ctrl)# show running-config</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  ms-power-control</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+   ci-thresh-comp fr-efr lower 0 0 upper 0 0</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+   ci-thresh-comp hr lower 0 0 upper 0 0</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+   ci-thresh-comp amr-fr lower 0 0 upper 0 0</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+   ci-thresh-comp amr-hr lower 0 0 upper 0 0</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+   ci-thresh-comp sdcch lower 0 0 upper 0 0</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+   ci-thresh-comp gprs lower 0 0 upper 0 0</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/25513">change 25513</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/+/25513"/><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: I0e1a1a9228a15e9ec9c41b7952b03e1d25309706 </div>
<div style="display:none"> Gerrit-Change-Number: 25513 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>