path: root/src/common/vty.c
diff options
authorPau Espin Pedrol <pespin@sysmocom.de>2019-11-14 16:27:25 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2019-11-14 20:02:45 +0100
commitc693067b7e99a643da673cb3e2a36162cbd0f59c (patch)
tree8b4d003f5b9d69e38d80d5098299d9b9b7a40716 /src/common/vty.c
parentd0a2caa021b66d1f5272004c42c817c068be5dc9 (diff)
Introduce BTS feature BTS_FEAT_MS_PWR_CTRL_DSP
It indicates whether BTS model supports managing an MS Power Control Loop over HW/DSP instead of using the software based osmocom algorithm present in osmo-bts. osmo-bts-trx own loop implementation is considered to be a "DSP/HW" one since it acts on lower layers and interferes with osmocom algorithm since it controls the same end variable "lchan->ms_power_ctrl.current", this way we make sure both aren't enabled at the same time. Old behavior in kept: if common upper-layer algo is not enabled explicitly in VTY (ms-power-control osmo) and bts-trx specific lower layer algo is neither enabled (osmotrx ms-power-loop <xyz>), then no power control is done at all. Related: OS#1851 Change-Id: I49706926b1e962b18791174627bc3cc0cd0cd9d5
Diffstat (limited to 'src/common/vty.c')
1 files changed, 7 insertions, 1 deletions
diff --git a/src/common/vty.c b/src/common/vty.c
index 514d1202..2558ba85 100644
--- a/src/common/vty.c
+++ b/src/common/vty.c
@@ -789,8 +789,14 @@ DEFUN(cfg_trx_ms_power_control, cfg_trx_ms_power_control_cmd,
"Handled by DSP\n" "Handled by OsmoBTS\n")
struct gsm_bts_trx *trx = vty->index;
+ bool soft = !strcmp(argv[0], "osmo");
- trx->ms_pwr_ctl_soft = !strcmp(argv[0], "osmo");
+ if (!soft && !gsm_bts_has_feature(trx->bts, BTS_FEAT_MS_PWR_CTRL_DSP)) {
+ vty_out(vty, "This BTS model has no DSP/HW MS Power Control support%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ trx->ms_pwr_ctl_soft = soft;