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>