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


Change subject: power_control: add CTRL command for sending default params
......................................................................

power_control: add CTRL command for sending default params

There exists a VTY command for sending default power control params,
but so far there was no CTRL counterpart for it.  This patch adds a
SET command 'send-power-control-defaults':

  $ osmo_ctrl.py \
        --host 127.0.0.1 -p 4249 \
        --set "bts.0.send-power-control-defaults" 1

Similar to 'send-new-system-informations', this command takes an
arbitrary dummy value (required for SET), which is simply ignored.

(cherry picked from commit 63e2e0bc95f83c10d8af0cd17b675f3761b8c69b)
Change-Id: Ib370bd97ee2d9f72f8bec553550b1792d1345387
Related: SYS#6138
---
M doc/manuals/chapters/control.adoc
M doc/manuals/chapters/power_control.adoc
M src/osmo-bsc/bsc_ctrl_commands.c
3 files changed, 42 insertions(+), 2 deletions(-)



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

diff --git a/doc/manuals/chapters/control.adoc 
b/doc/manuals/chapters/control.adoc
index 09e828e..8009ec7 100644
--- a/doc/manuals/chapters/control.adoc
+++ b/doc/manuals/chapters/control.adoc
@@ -33,6 +33,7 @@
 |bts.N.cell-identity|RW|No|"<id>"|Set/Get Cell Identity (value between (0, 
65535)).
 |bts.N.apply-configuration|WO|No|Ignored|Restart BTS via OML.
 |bts.N.send-new-system-informations|WO|No|Ignored|Regenerate and resend System 
Information messages for given BTS.
+|bts.N.send-power-control-defaults|WO|No|Ignored|Resend default power control 
parameters for given BTS.
 |bts.N.channel-load|RO|No|"<name>,<used>,<total>"|See <<chanlo>> for details.
 |bts.N.oml-connection-state|RO|No|"connected", "disconnected", 
"degraded"|Indicate the status of OML connection of BTS.
 |bts.N.oml-uptime|RO|No|<uptime>|Return OML link uptime in seconds.
diff --git a/doc/manuals/chapters/power_control.adoc 
b/doc/manuals/chapters/power_control.adoc
index f5f94f6..a685bbd 100644
--- a/doc/manuals/chapters/power_control.adoc
+++ b/doc/manuals/chapters/power_control.adoc
@@ -53,13 +53,24 @@
 link re-establishment and thus interrupting the service.  The following command
 triggers resending of both MS/BS power control parameters:

+.Example: Resending default power control parameters via the VTY
 ----
 # Resending from the 'enable' node:
-OsmoBSC# bts 0 resend-power-control-defaults
+OsmoBSC# bts 0 <1> resend-power-control-defaults

 # Resending from any configuration node (note prefix 'do'):
-OsmoBSC(config-ms-power-ctrl)# do bts 0 resend-power-control-defaults
+OsmoBSC(config-ms-power-ctrl)# do bts 0 <1> resend-power-control-defaults
 ----
+<1> BTS number for which to activate BCCH carrier power reduction.
+
+.Example: Resending default power control parameters via the CTRL
+----
+$ osmo_ctrl.py \
+       --host 127.0.0.1 <1> -p 4249 \
+       --set "bts.0.send-power-control-defaults" 1 <2>
+----
+<1> Remote address of the host running osmo-bsc (localhost in this example).
+<2> An arbitrary dummy value (ignored).  Required because SET command is used.

 NOTE: The above statement mostly applies to parameters for dynamic power 
control
 mode (see below).  Switching between power control modes, as well as changing
diff --git a/src/osmo-bsc/bsc_ctrl_commands.c b/src/osmo-bsc/bsc_ctrl_commands.c
index fb8bd0c..304ccf9 100644
--- a/src/osmo-bsc/bsc_ctrl_commands.c
+++ b/src/osmo-bsc/bsc_ctrl_commands.c
@@ -290,6 +290,33 @@
 }
 CTRL_CMD_DEFINE_WO_NOVRF(bts_si, "send-new-system-informations");

+static int set_bts_power_ctrl_defs(struct ctrl_cmd *cmd, void *data)
+{
+       const struct gsm_bts *bts = cmd->node;
+       const struct gsm_bts_trx *trx;
+
+       if (bts->ms_power_ctrl.mode != GSM_PWR_CTRL_MODE_DYN_BTS) {
+               cmd->reply = "BTS is not using dyn-bts mode";
+               return CTRL_CMD_ERROR;
+       }
+
+       if (bts->model->power_ctrl_send_def_params == NULL) {
+               cmd->reply = "Not implemented for this BTS model";
+               return CTRL_CMD_ERROR;
+       }
+
+       llist_for_each_entry(trx, &bts->trx_list, list) {
+               if (bts->model->power_ctrl_send_def_params(trx) != 0) {
+                       cmd->reply = "power_ctrl_send_def_params() failed";
+                       return CTRL_CMD_ERROR;
+               }
+       }
+
+       cmd->reply = "Default power control parameters have been sent";
+       return CTRL_CMD_REPLY;
+}
+CTRL_CMD_DEFINE_WO_NOVRF(bts_power_ctrl_defs, "send-power-control-defaults");
+
 static int get_bts_chan_load(struct ctrl_cmd *cmd, void *data)
 {
        int i;
@@ -799,6 +826,7 @@
        rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_ci);
        rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_apply_config);
        rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_si);
+       rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_power_ctrl_defs);
        rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_chan_load);
        rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_oml_conn);
        rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_oml_up);

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

Gerrit-Project: osmo-bsc
Gerrit-Branch: 2022q2
Gerrit-Change-Id: Ib370bd97ee2d9f72f8bec553550b1792d1345387
Gerrit-Change-Number: 29538
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <[email protected]>
Gerrit-MessageType: newchange

Reply via email to