This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/10808 ) Change subject: GSMTAP: make remote host for Um logging configurable via VTY ...................................................................... GSMTAP: make remote host for Um logging configurable via VTY So far, the only way to configure GSMTAP Um logging is to use the cmdline argument '-i'. Let's deprecate it, and add a VTY command to allow setting the remote host from configuration file. The legacy '-i' option, if provided, overrides the configuration file option, and will also appear in 'write file'. Change-Id: I17676a21c4e0c9cbc88f2c5c53a39c6c6c473ca1 Tweaked by: Vadim Yanitskiy <vyanitskiy at sysmocom.de> --- M include/osmo-bts/bts.h M src/common/main.c M src/common/vty.c 3 files changed, 69 insertions(+), 10 deletions(-) Approvals: laforge: Looks good to me, approved daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 3adafcc..be0222d 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -346,6 +346,7 @@ /* GSMTAP Um logging (disabled by default) */ struct { struct gsmtap_inst *inst; + char *remote_host; uint32_t sapi_mask; uint8_t sapi_acch; } gsmtap; diff --git a/src/common/main.c b/src/common/main.c index 38f517c..2503352 100644 --- a/src/common/main.c +++ b/src/common/main.c @@ -77,7 +77,6 @@ " -T --timestamp Prefix every log line with a timestamp\n" " -V --version Print version information and exit\n" " -e --log-level Set a global log-level\n" - " -i --gsmtap-ip The destination IP used for GSMTAP.\n" "\nVTY reference generation:\n" " --vty-ref-mode MODE VTY reference generation mode (e.g. 'expert').\n" " --vty-ref-xml Generate the VTY reference XML output and exit.\n" @@ -186,6 +185,8 @@ break; case 'i': gsmtap_ip = optarg; + fprintf(stderr, "Command line argument '-i' is deprecated, use VTY " + "parameter 'gsmtap-remote-host %s' instead.\n", gsmtap_ip); break; case 't': fprintf(stderr, "Command line argument '-t' is deprecated and does nothing, " @@ -320,15 +321,6 @@ } } - if (gsmtap_ip) { - g_bts->gsmtap.inst = gsmtap_source_init(gsmtap_ip, GSMTAP_UDP_PORT, 1); - if (g_bts->gsmtap.inst == NULL) { - fprintf(stderr, "Failed during gsmtap_init()\n"); - exit(1); - } - gsmtap_source_add_sink(g_bts->gsmtap.inst); - } - if (bts_init(g_bts) < 0) { fprintf(stderr, "unable to open bts\n"); exit(1); @@ -358,6 +350,32 @@ write_pid_file("osmo-bts"); + /* Accept a GSMTAP host from VTY config, but a commandline option overrides that. */ + if (gsmtap_ip != NULL) { + if (g_bts->gsmtap.remote_host != NULL) { + LOGP(DLGLOBAL, LOGL_NOTICE, + "Command line argument '-i %s' overrides " + "'gsmtap-remote-host %s' from the config file\n", + gsmtap_ip, g_bts->gsmtap.remote_host); + talloc_free(g_bts->gsmtap.remote_host); + } + g_bts->gsmtap.remote_host = talloc_strdup(g_bts, gsmtap_ip); + } + + /* TODO: move this to gsm_bts_alloc() */ + if (g_bts->gsmtap.remote_host != NULL) { + LOGP(DLGLOBAL, LOGL_NOTICE, + "Setting up GSMTAP Um forwarding to '%s:%u'\n", + g_bts->gsmtap.remote_host, GSMTAP_UDP_PORT); + g_bts->gsmtap.inst = gsmtap_source_init(g_bts->gsmtap.remote_host, + GSMTAP_UDP_PORT, 1); + if (g_bts->gsmtap.inst == NULL) { + fprintf(stderr, "Failed during gsmtap_source_init()\n"); + exit(1); + } + gsmtap_source_add_sink(g_bts->gsmtap.inst); + } + bts_controlif_setup(g_bts, ctrl_vty_get_bind_addr(), OSMO_CTRL_PORT_BTS); rc = telnet_init_dynif(tall_bts_ctx, NULL, vty_get_bind_addr(), diff --git a/src/common/vty.c b/src/common/vty.c index d60a2be..bbd33f8 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -315,6 +315,10 @@ bts->agch_queue.thresh_level, bts->agch_queue.low_level, bts->agch_queue.high_level, VTY_NEWLINE); + if (bts->gsmtap.remote_host != NULL) + vty_out(vty, " gsmtap-remote-host %s%s", + bts->gsmtap.remote_host, + VTY_NEWLINE); for (i = 0; i < sizeof(uint32_t) * 8; i++) { if (bts->gsmtap.sapi_mask & ((uint32_t) 1 << i)) { sapi_buf = get_value_string_or_null(gsmtap_sapi_names, i); @@ -1826,6 +1830,40 @@ "logical channel commands\n" \ "logical channel number\n" +DEFUN(cfg_bts_gsmtap_remote_host, + cfg_bts_gsmtap_remote_host_cmd, + "gsmtap-remote-host [HOSTNAME]", + "Enable GSMTAP Um logging (see also 'gsmtap-sapi')\n" + "Remote IP address or hostname ('localhost' if omitted)\n") +{ + struct gsm_bts *bts = vty->index; + + osmo_talloc_replace_string(bts, &bts->gsmtap.remote_host, + argc > 0 ? argv[0] : "localhost"); + + if (vty->type != VTY_FILE) + vty_out(vty, "%% This command requires restart%s", VTY_NEWLINE); + + return CMD_SUCCESS; +} + +DEFUN(cfg_bts_no_gsmtap_remote_host, + cfg_bts_no_gsmtap_remote_host_cmd, + "no gsmtap-remote-host", + NO_STR "Disable GSMTAP Um logging\n") +{ + struct gsm_bts *bts = vty->index; + + if (bts->gsmtap.remote_host != NULL) + talloc_free(bts->gsmtap.remote_host); + bts->gsmtap.remote_host = NULL; + + if (vty->type != VTY_FILE) + vty_out(vty, "%% This command requires restart%s", VTY_NEWLINE); + + return CMD_SUCCESS; +} + DEFUN(cfg_bts_gsmtap_sapi_all, cfg_bts_gsmtap_sapi_all_cmd, "gsmtap-sapi (enable-all|disable-all)", "Enable/disable sending of UL/DL messages over GSMTAP\n" @@ -2237,6 +2275,8 @@ install_element(BTS_NODE, &cfg_bts_smscb_tgt_qlen_cmd); install_element(BTS_NODE, &cfg_bts_smscb_qhyst_cmd); + install_element(BTS_NODE, &cfg_bts_gsmtap_remote_host_cmd); + install_element(BTS_NODE, &cfg_bts_no_gsmtap_remote_host_cmd); install_element(BTS_NODE, &cfg_bts_gsmtap_sapi_all_cmd); install_element(BTS_NODE, &cfg_bts_gsmtap_sapi_cmd); install_element(BTS_NODE, &cfg_bts_no_gsmtap_sapi_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/10808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I17676a21c4e0c9cbc88f2c5c53a39c6c6c473ca1 Gerrit-Change-Number: 10808 Gerrit-PatchSet: 4 Gerrit-Owner: neels <nhofmeyr at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel <dwillmann at sysmocom.de> Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de> Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-Reviewer: neels <nhofmeyr at sysmocom.de> Gerrit-Reviewer: osmith <osmith at sysmocom.de> Gerrit-CC: pespin <pespin at sysmocom.de> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210216/920f90bc/attachment.htm>