aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/manuals/chapters/power_control.adoc8
-rw-r--r--src/osmo-bsc/bts_vty.c30
-rw-r--r--tests/power_ctrl.vty39
3 files changed, 77 insertions, 0 deletions
diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc
index 54cbd5ba2..bc112aadc 100644
--- a/doc/manuals/chapters/power_control.adoc
+++ b/doc/manuals/chapters/power_control.adoc
@@ -345,6 +345,14 @@ network
<3> P0=2 out of N1=10 averages < L_CI_AMR_FR_XX_P => increase power.
<4> P1=3 out of N2=4 averages > U_CI_AMR_FR_XX_P => decrease power.
+NOTE: The BSC can instruct a BTS to disable C/I related logic in its
+autonomous MS Power Control Loop for a given channel type (hence not taking C/I
+measurements into account) by means of setting both related LOWER_CMP_N and
+UPPER_CMP_N parameters to zero (see _ci-thresh-comp_ VTY command). For the sake
+of easing configuration, a placeholder VTY command to disable C/I for all
+channel types is available under VTY node _ms-power-control_ as *_ci-thresh-comp
+disable all_*.
+
==== Measurement averaging process
3GPP 45.008, section A.3.1 requires that the measurement values reported by both
diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c
index 3774344c1..7a502d72b 100644
--- a/src/osmo-bsc/bts_vty.c
+++ b/src/osmo-bsc/bts_vty.c
@@ -3272,6 +3272,35 @@ DEFUN_USRATTR(cfg_power_ctrl_ci_thresh_comp,
return CMD_SUCCESS;
}
+DEFUN_USRATTR(cfg_power_ctrl_ci_thresh_comp_disable,
+ cfg_power_ctrl_ci_thresh_comp_disable_cmd,
+ X(BSC_VTY_ATTR_VENDOR_SPECIFIC) |
+ X(BSC_VTY_ATTR_NEW_LCHAN),
+ "ci-thresh-comp disable all",
+ "Set Carrier-to_interference (C/I) threshold comparators (for dynamic mode)\n"
+ "Disable C/I comparison in control loop (sets LOWER_CMP_N and UPPER_CMP_N to zero)\n"
+ "Disable C/I comparison for all channel types\n")
+{
+ struct gsm_power_ctrl_params *params = vty->index;
+
+#define DISABLE_MEAS_PC(PARAMS, TYPE) \
+ (PARAMS)->TYPE##_meas.lower_cmp_p = 0; \
+ (PARAMS)->TYPE##_meas.lower_cmp_n = 0; \
+ (PARAMS)->TYPE##_meas.upper_cmp_p = 0; \
+ (PARAMS)->TYPE##_meas.upper_cmp_n = 0
+
+ DISABLE_MEAS_PC(params, ci_fr);
+ DISABLE_MEAS_PC(params, ci_hr);
+ DISABLE_MEAS_PC(params, ci_amr_fr);
+ DISABLE_MEAS_PC(params, ci_amr_hr);
+ DISABLE_MEAS_PC(params, ci_sdcch);
+ DISABLE_MEAS_PC(params, ci_gprs);
+
+#undef DISABLE_MEAS_PC
+
+ return CMD_SUCCESS;
+}
+
#define POWER_CONTROL_MEAS_AVG_CMD \
"(rxlev-avg|rxqual-avg)"
#define POWER_CONTROL_MEAS_AVG_DESC \
@@ -4445,6 +4474,7 @@ int bts_vty_init(void)
install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxlev_thresh_comp_cmd);
install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxqual_thresh_comp_cmd);
install_element(POWER_CTRL_NODE, &cfg_power_ctrl_ci_thresh_comp_cmd);
+ install_element(POWER_CTRL_NODE, &cfg_power_ctrl_ci_thresh_comp_disable_cmd);
install_element(POWER_CTRL_NODE, &cfg_power_ctrl_no_avg_cmd);
install_element(POWER_CTRL_NODE, &cfg_power_ctrl_avg_params_cmd);
install_element(POWER_CTRL_NODE, &cfg_power_ctrl_avg_algo_cmd);
diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty
index af02cd412..b14a90529 100644
--- a/tests/power_ctrl.vty
+++ b/tests/power_ctrl.vty
@@ -38,6 +38,7 @@ OsmoBSC(config-bs-power-ctrl)# list with-flags
. lv rxlev-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31>
. lv rxqual-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31>
. lv ci-thresh-comp (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-31> <0-31> upper <0-31> <0-31>
+ . lv ci-thresh-comp disable all
. lv no (rxlev-avg|rxqual-avg)
. lv (rxlev-avg|rxqual-avg) params hreqave <1-31> hreqt <1-31>
. lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median)
@@ -118,6 +119,7 @@ OsmoBSC(config-ms-power-ctrl)# list with-flags
. lv rxlev-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31>
. lv rxqual-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31>
. lv ci-thresh-comp (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-31> <0-31> upper <0-31> <0-31>
+ . lv ci-thresh-comp disable all
. lv no (rxlev-avg|rxqual-avg)
. lv (rxlev-avg|rxqual-avg) params hreqave <1-31> hreqt <1-31>
. lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median)
@@ -295,3 +297,40 @@ OsmoBSC(config-net-bts)# show running-config
rxqual-thresh lower 3 upper 0
rxqual-thresh-comp lower 5 7 upper 15 18
...
+
+OsmoBSC(config-net-bts)# ### Check 'ci-thresh-comp disable all' works properly:
+OsmoBSC(config-net-bts)# ms-power-control
+OsmoBSC(config-ms-power-ctrl)# show running-config
+...
+ ms-power-control
+...
+ ci-thresh-comp fr-efr lower 5 7 upper 15 18
+...
+ ci-thresh-comp hr lower 5 7 upper 15 18
+...
+ ci-thresh-comp amr-fr lower 5 7 upper 15 18
+...
+ ci-thresh-comp amr-hr lower 5 7 upper 15 18
+...
+ ci-thresh-comp sdcch lower 5 7 upper 15 18
+...
+ ci-thresh-comp gprs lower 5 7 upper 15 18
+...
+
+OsmoBSC(config-ms-power-ctrl)# ci-thresh-comp disable all
+OsmoBSC(config-ms-power-ctrl)# show running-config
+...
+ ms-power-control
+...
+ ci-thresh-comp fr-efr lower 0 0 upper 0 0
+...
+ ci-thresh-comp hr lower 0 0 upper 0 0
+...
+ ci-thresh-comp amr-fr lower 0 0 upper 0 0
+...
+ ci-thresh-comp amr-hr lower 0 0 upper 0 0
+...
+ ci-thresh-comp sdcch lower 0 0 upper 0 0
+...
+ ci-thresh-comp gprs lower 0 0 upper 0 0
+...