diff --git a/doc/manuals/chapters/control.adoc b/doc/manuals/chapters/control.adoc index 09e828e9e..8009ec72e 100644 --- a/doc/manuals/chapters/control.adoc +++ b/doc/manuals/chapters/control.adoc @@ -33,6 +33,7 @@ TRX-specific commands are additionally prefixed with TRX number e. g. |bts.N.cell-identity|RW|No|""|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|",,"|See <> 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||Return OML link uptime in seconds. diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc index f5f94f6a4..9b48f1551 100644 --- a/doc/manuals/chapters/power_control.adoc +++ b/doc/manuals/chapters/power_control.adoc @@ -53,13 +53,24 @@ BTS that accepts the default parameters at startup without triggering the A-bis/ 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 resend default power control parameters. + +.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 fb8bd0cec..304ccf903 100644 --- a/src/osmo-bsc/bsc_ctrl_commands.c +++ b/src/osmo-bsc/bsc_ctrl_commands.c @@ -290,6 +290,33 @@ static int set_bts_si(struct ctrl_cmd *cmd, void *data) } 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 @@ int bsc_base_ctrl_cmds_install(void) 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);