diff options
author | Kirill Zakharenko <earwin@gmail.com> | 2020-05-06 02:58:08 +0300 |
---|---|---|
committer | Kirill Zakharenko <earwin@gmail.com> | 2020-05-06 02:58:08 +0300 |
commit | b4b48947533c0eb6319eb66c3f8e07b20b81dc78 (patch) | |
tree | 50102d7d79cdfce549311b7d4f962a9927476039 /src/osmo-bsc/abis_om2000_vty.c | |
parent | a5247d871c305e4b9941835a8636fe36bb93a856 (diff) | |
parent | 7ab23b75afe9d095f30776c6778451d6fc107e79 (diff) |
Merge master into fairwaves/production
Diffstat (limited to 'src/osmo-bsc/abis_om2000_vty.c')
-rw-r--r-- | src/osmo-bsc/abis_om2000_vty.c | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/src/osmo-bsc/abis_om2000_vty.c b/src/osmo-bsc/abis_om2000_vty.c index 3ae870e8a..972fff04a 100644 --- a/src/osmo-bsc/abis_om2000_vty.c +++ b/src/osmo-bsc/abis_om2000_vty.c @@ -66,13 +66,15 @@ static int dummy_config_write(struct vty *v) } /* FIXME: auto-generate those strings from the value_string lists */ -#define OM2K_OBJCLASS_VTY "(trxc|ts|tf|is|con|dp|cf|tx|rx)" +#define OM2K_OBJCLASS_VTY "(trxc|tg|ts|tf|is|con|dp|mctr|cf|tx|rx)" #define OM2K_OBJCLASS_VTY_HELP "TRX Controller\n" \ + "Trunk Group\n" \ "Timeslot\n" \ "Timing Function\n" \ "Interface Switch\n" \ "Abis Concentrator\n" \ "Digital Path\n" \ + "Multi Carrier Transceiver\n" \ "Central Function\n" \ "Transmitter\n" \ "Receiver\n" @@ -253,6 +255,34 @@ DEFUN(om2k_cap_req, om2k_cap_req_cmd, return CMD_SUCCESS; } +DEFUN(om2k_arb, om2k_arb_cmd, + "arbitrary <0-65535> [HEXSTRING]", + "Send arbitrary OM2k message\n" + "Command identifier\n" + "Hex Encoded payload\n") +{ + struct oml_node_state *oms = vty->index; + uint8_t buf[128]; + int rc; + int cmd = atoi(argv[0]); + + if (argc >= 2) { + rc = osmo_hexparse(argv[1], buf, sizeof(buf)); + if (rc < 0 || rc > sizeof(buf)) { + vty_out(vty, "Error parsing HEXSTRING%s", VTY_NEWLINE); + return CMD_WARNING; + } + } else { + rc = 0; + } + + abis_om2k_tx_arb(oms->bts, &oms->mo, cmd, buf, rc); + + return CMD_SUCCESS; +} + + + static struct con_group *con_group_find_or_create(struct gsm_bts *bts, uint8_t cg) { struct con_group *ent; @@ -492,6 +522,9 @@ DEFUN(om2k_conf_req, om2k_conf_req_cmd, case OM2K_MO_CLS_IS: abis_om2k_tx_is_conf_req(bts); break; + case OM2K_MO_CLS_CON: + abis_om2k_tx_con_conf_req(bts); + break; case OM2K_MO_CLS_TS: trx = gsm_bts_trx_by_nr(bts, oms->mo.assoc_so); if (!trx) { @@ -590,6 +623,7 @@ int abis_om2k_vty_init(void) install_element(OM2K_NODE, &om2k_test_cmd); install_element(OM2K_NODE, &om2k_cap_req_cmd); install_element(OM2K_NODE, &om2k_conf_req_cmd); + install_element(OM2K_NODE, &om2k_arb_cmd); install_node(&om2k_con_group_node, dummy_config_write); install_element(OM2K_CON_GROUP_NODE, &cfg_om2k_con_path_dec_cmd); |