aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-06-24 13:20:32 +0200
committerHarald Welte <laforge@gnumonks.org>2018-06-24 14:06:56 +0200
commitfa7ee333f7eb37cbf78cd6d8371fd320a23d3379 (patch)
tree0446d3433790ef7ebbf7d812be80b181becd7898
parent8fbf82b83facc32978826b3d843d85e445472f80 (diff)
Add "show gsup-connections" VTY command
This can help with debugging and give operational insight. Change-Id: I977b4b8cdb36dab42b3d736a28d8b5f17cff04cd
-rw-r--r--src/hlr_vty.c36
-rw-r--r--tests/test_nodes.vty1
2 files changed, 35 insertions, 2 deletions
diff --git a/src/hlr_vty.c b/src/hlr_vty.c
index c10829d..ecc2f5c 100644
--- a/src/hlr_vty.c
+++ b/src/hlr_vty.c
@@ -1,9 +1,10 @@
/* OsmoHLR VTY implementation */
/* (C) 2016 sysmocom s.f.m.c. GmbH <info@sysmocom.de>
- * All Rights Reserved
- *
* Author: Neels Hofmeyr <nhofmeyr@sysmocom.de>
+ * (C) 2018 Harald Welte <laforge@gnumonks.org>
+ *
+ * All Rights Reserved
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -25,9 +26,11 @@
#include <osmocom/vty/command.h>
#include <osmocom/vty/logging.h>
#include <osmocom/vty/misc.h>
+#include <osmocom/abis/ipa.h>
#include "hlr_vty.h"
#include "hlr_vty_subscr.h"
+#include "gsup_server.h"
static struct hlr *g_hlr = NULL;
@@ -75,6 +78,33 @@ static int config_write_hlr_gsup(struct vty *vty)
return CMD_SUCCESS;
}
+static void show_one_conn(struct vty *vty, const struct osmo_gsup_conn *conn)
+{
+ const struct ipa_server_conn *isc = conn->conn;
+ char *name;
+ int rc;
+
+ rc = osmo_gsup_conn_ccm_get(conn, (uint8_t **) &name, IPAC_IDTAG_SERNR);
+ OSMO_ASSERT(rc);
+
+ vty_out(vty, " '%s' from %s:%5u, CS=%u, PS=%u, 3G_IND=%u%s",
+ name, isc->addr, isc->port, conn->supports_cs, conn->supports_ps, conn->auc_3g_ind,
+ VTY_NEWLINE);
+}
+
+DEFUN(show_gsup_conn, show_gsup_conn_cmd,
+ "show gsup-connections",
+ SHOW_STR "GSUP Connections from VLRs, SGSNs, EUSEs\n")
+{
+ struct osmo_gsup_server *gs = g_hlr->gs;
+ struct osmo_gsup_conn *conn;
+
+ llist_for_each_entry(conn, &gs->clients, list)
+ show_one_conn(vty, conn);
+
+ return CMD_SUCCESS;
+}
+
DEFUN(cfg_hlr_gsup_bind_ip,
cfg_hlr_gsup_bind_ip_cmd,
"bind ip A.B.C.D",
@@ -129,6 +159,8 @@ void hlr_vty_init(struct hlr *hlr, const struct log_info *cat)
logging_vty_add_cmds(cat);
osmo_talloc_vty_add_cmds();
+ install_element_ve(&show_gsup_conn_cmd);
+
install_element(CONFIG_NODE, &cfg_hlr_cmd);
install_node(&hlr_node, config_write_hlr);
diff --git a/tests/test_nodes.vty b/tests/test_nodes.vty
index 5afa144..21809c8 100644
--- a/tests/test_nodes.vty
+++ b/tests/test_nodes.vty
@@ -16,6 +16,7 @@ OsmoHLR> list
show talloc-context (application|all) (full|brief|DEPTH)
show talloc-context (application|all) (full|brief|DEPTH) tree ADDRESS
show talloc-context (application|all) (full|brief|DEPTH) filter REGEXP
+ show gsup-connections
subscriber (imsi|msisdn|id) IDENT show
OsmoHLR> enable