From f68fa093766d729eaa38079c1f852b6249bade77 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Fri, 4 Sep 2020 13:00:19 +0700 Subject: vty: add 'gsmtap-sapi (enable-all|disable-all)' command It's more convenient to use one command to enable/disable sending of all kinds of UL/DL messages at once, rather than specifying all of them individually. Adjust config_write_bts_single(), so it would not print unknown GSMTAP SAPI entries if gsmtap_sapi_mask is set to UINT32_MAX. Change-Id: Icd7fce860ecdcf8ffa107bdfee7ec94ea9ea6cb2 --- src/common/vty.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'src/common/vty.c') diff --git a/src/common/vty.c b/src/common/vty.c index 49e6edf2..d5993d66 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -251,9 +251,12 @@ static void config_write_bts_single(struct vty *vty, struct gsm_bts *bts) bts->agch_queue.thresh_level, bts->agch_queue.low_level, bts->agch_queue.high_level, VTY_NEWLINE); - for (i = 0; i < 32; i++) { + for (i = 0; i < sizeof(uint32_t) * 8; i++) { if (gsmtap_sapi_mask & ((uint32_t) 1 << i)) { - sapi_buf = osmo_str_tolower(get_value_string(gsmtap_sapi_names, i)); + sapi_buf = get_value_string_or_null(gsmtap_sapi_names, i); + if (sapi_buf == NULL) + continue; + sapi_buf = osmo_str_tolower(sapi_buf); vty_out(vty, " gsmtap-sapi %s%s", sapi_buf, VTY_NEWLINE); } } @@ -1410,6 +1413,23 @@ static struct gsm_lchan *resolve_lchan(struct gsm_network *net, "logical channel commands\n" \ "logical channel number\n" +DEFUN(cfg_trx_gsmtap_sapi_all, cfg_trx_gsmtap_sapi_all_cmd, + "gsmtap-sapi (enable-all|disable-all)", + "Enable/disable sending of UL/DL messages over GSMTAP\n" + "Enable all kinds of messages (all SAPI)\n" + "Disable all kinds of messages (all SAPI)\n") +{ + if (argv[0][0] == 'e') { + gsmtap_sapi_mask = UINT32_MAX; + gsmtap_sapi_acch = 1; + } else { + gsmtap_sapi_mask = 0x00; + gsmtap_sapi_acch = 0; + } + + return CMD_SUCCESS; +} + DEFUN(cfg_trx_gsmtap_sapi, cfg_trx_gsmtap_sapi_cmd, "HIDDEN", "HIDDEN") { @@ -1721,6 +1741,7 @@ int bts_vty_init(struct gsm_bts *bts) install_element(BTS_NODE, &cfg_bts_smscb_tgt_qlen_cmd); install_element(BTS_NODE, &cfg_bts_smscb_qhyst_cmd); + install_element(BTS_NODE, &cfg_trx_gsmtap_sapi_all_cmd); install_element(BTS_NODE, &cfg_trx_gsmtap_sapi_cmd); install_element(BTS_NODE, &cfg_trx_no_gsmtap_sapi_cmd); -- cgit v1.2.3