diff options
-rw-r--r-- | doc/manuals/chapters/power_control.adoc | 8 | ||||
-rw-r--r-- | src/osmo-bsc/bts_vty.c | 30 | ||||
-rw-r--r-- | tests/power_ctrl.vty | 39 |
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 +... |