diff options
author | Harald Welte <laforge@gnumonks.org> | 2011-03-05 14:13:14 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2011-03-05 14:13:14 +0100 |
commit | a0ce349f0cabbd02b7197ab55070b5b45ef5d057 (patch) | |
tree | 7bda9aa03cb4bc3339b4ac4dd1b81891c1a40f75 /openbsc/src/libbsc/abis_om2000_vty.c | |
parent | c08e8be4ee5e1b1948b68b90068a0c5aeb54f60d (diff) |
OM2000: Add support for sending TX, RX and TS configuration requests
They can be triggered from the VTY
Diffstat (limited to 'openbsc/src/libbsc/abis_om2000_vty.c')
-rw-r--r-- | openbsc/src/libbsc/abis_om2000_vty.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/openbsc/src/libbsc/abis_om2000_vty.c b/openbsc/src/libbsc/abis_om2000_vty.c index 5949c869c..001c6501e 100644 --- a/openbsc/src/libbsc/abis_om2000_vty.c +++ b/openbsc/src/libbsc/abis_om2000_vty.c @@ -410,6 +410,59 @@ DEFUN(om2k_is_conf_req, om2k_is_conf_req_cmd, return CMD_SUCCESS; } +DEFUN(om2k_conf_req, om2k_conf_req_cmd, + "configuration-request", + "Send the configuration request for current MO\n") +{ + struct oml_node_state *oms = vty->index; + struct gsm_bts *bts = oms->bts; + struct gsm_bts_trx *trx = NULL; + struct gsm_bts_trx_ts *ts = NULL; + + switch (oms->mo.class) { + case OM2K_MO_CLS_TS: + trx = gsm_bts_trx_by_nr(bts, oms->mo.assoc_so); + if (!trx) { + vty_out(vty, "%% BTS %u has no TRX %u%s", bts->nr, + oms->mo.assoc_so, VTY_NEWLINE); + return CMD_WARNING; + } + if (oms->mo.inst >= ARRAY_SIZE(trx->ts)) { + vty_out(vty, "%% Timeslot %u out of range%s", + oms->mo.inst, VTY_NEWLINE); + return CMD_WARNING; + } + ts = &trx->ts[oms->mo.inst]; + abis_om2k_tx_ts_conf_req(ts); + break; + case OM2K_MO_CLS_RX: + case OM2K_MO_CLS_TX: + case OM2K_MO_CLS_TRXC: + trx = gsm_bts_trx_by_nr(bts, oms->mo.inst); + if (!trx) { + vty_out(vty, "%% BTS %u has no TRX %u%s", bts->nr, + oms->mo.inst, VTY_NEWLINE); + return CMD_WARNING; + } + switch (oms->mo.class) { + case OM2K_MO_CLS_RX: + abis_om2k_tx_rx_conf_req(trx); + break; + case OM2K_MO_CLS_TX: + abis_om2k_tx_rx_conf_req(trx); + break; + default: + break; + } + break; + default: + vty_out(vty, "%% Don't know how to configure MO%s", + VTY_NEWLINE); + } + + return CMD_SUCCESS; +} + void abis_om2k_config_write_bts(struct vty *vty, struct gsm_bts *bts) { struct is_conn_group *igrp; @@ -446,6 +499,7 @@ int abis_om2k_vty_init(void) install_element(OM2K_NODE, &om2k_disable_cmd); install_element(OM2K_NODE, &om2k_op_info_cmd); install_element(OM2K_NODE, &om2k_test_cmd); + install_element(OM2K_NODE, &om2k_conf_req_cmd); install_element(OM2K_NODE, &om2k_is_conf_req_cmd); install_element(OM2K_NODE, &om2k_con_list_dec_cmd); install_element(OM2K_NODE, &om2k_con_list_tei_cmd); |