TRX: Add vty command to power on/off transceiver

Add vty command (under "phy X instance Y" hierarchy) to manually send
POWERON or POWEROFF command. It's useful for debugging issues related to
BTS/TRX initialization.

Change-Id: I6dfebaf118cdf5ad144516b2b839b17350a73ce4
Related: OS#1648
This commit is contained in:
Max 2016-06-15 17:55:21 +02:00 committed by Harald Welte
parent 7cc3c3156e
commit ecd5bc2aef
2 changed files with 23 additions and 3 deletions

View File

@ -195,9 +195,10 @@ static int trx_ctrl_cmd(struct trx_l1h *l1h, int critical, const char *cmd,
va_list ap;
int l, pending = 0;
if (!transceiver_available && !!strcmp(cmd, "POWEROFF")) {
LOGP(DTRX, LOGL_ERROR, "CTRL ignored: No clock from "
"transceiver, please fix!\n");
if (!transceiver_available &&
!(!strcmp(cmd, "POWEROFF") || !strcmp(cmd, "POWERON"))) {
LOGP(DTRX, LOGL_ERROR, "CTRL %s ignored: No clock from "
"transceiver, please fix!\n", cmd);
return -EIO;
}

View File

@ -273,6 +273,24 @@ DEFUN(cfg_phyinst_slotmask, cfg_phyinst_slotmask_cmd,
return CMD_SUCCESS;
}
DEFUN(cfg_phy_power_on, cfg_phy_power_on_cmd,
"osmotrx power (on|off)",
OSMOTRX_STR
"Change TRX state\n"
"Turn it ON or OFF\n")
{
struct phy_instance *pinst = vty->index;
struct trx_l1h *l1h = pinst->u.osmotrx.hdl;
if (strcmp(argv[0], "on"))
vty_out(vty, "OFF: %d%s", trx_if_cmd_poweroff(l1h), VTY_NEWLINE);
else {
vty_out(vty, "ON: %d%s", trx_if_cmd_poweron(l1h), VTY_NEWLINE);
settsc_enabled = 1;
}
return CMD_SUCCESS;
}
DEFUN(cfg_phy_fn_advance, cfg_phy_fn_advance_cmd,
"osmotrx fn-advance <0-30>",
@ -499,6 +517,7 @@ int bts_model_vty_init(struct gsm_bts *bts)
install_element(PHY_NODE, &cfg_phy_no_tx_atten_cmd);
install_element(PHY_INST_NODE, &cfg_phyinst_slotmask_cmd);
install_element(PHY_INST_NODE, &cfg_phy_power_on_cmd);
install_element(PHY_INST_NODE, &cfg_phyinst_maxdly_cmd);
install_element(PHY_INST_NODE, &cfg_phyinst_no_maxdly_cmd);