From 37f465e275bea35d36b0763bfaef759792a9031f Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 24 Oct 2017 16:04:55 +0200 Subject: GPRS: check and report local address used for NSE When dumping NSE via vty: * check which local address would be used to communicate with a given NSE and print it * print link layer type last to make output more consistent Change-Id: I6932a29c7899d36bcc275f05dda9670b0e69bef0 Related: SYS#3610 --- src/gb/gprs_ns_vty.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'src/gb') diff --git a/src/gb/gprs_ns_vty.c b/src/gb/gprs_ns_vty.c index 4ed4fefb..c6fb141e 100644 --- a/src/gb/gprs_ns_vty.c +++ b/src/gb/gprs_ns_vty.c @@ -35,7 +35,7 @@ #include #include #include - +#include #include #include #include @@ -158,17 +158,23 @@ DEFUN(cfg_ns, cfg_ns_cmd, static void dump_nse(struct vty *vty, struct gprs_nsvc *nsvc, int stats) { - vty_out(vty, "NSEI %5u, NS-VC %5u, %5s %9s, Remote: %-4s, %5s %9s", + vty_out(vty, "NSEI %5u, NS-VC %5u, %5s %9s, ", nsvc->nsei, nsvc->nsvci, NS_DESC_A(nsvc->state), - NS_DESC_B(nsvc->state), + NS_DESC_B(nsvc->state)); + + if (nsvc->ll == GPRS_NS_LL_UDP) { + char local[INET6_ADDRSTRLEN + 1]; + int rc = osmo_sock_local_ip((char *)&local, inet_ntoa(nsvc->ip.bts_addr.sin_addr)); + vty_out(vty, "%s:%u ", (rc < 0) ? "unknown" : local, nsvc->nsi->nsip.local_port); + } + + vty_out(vty, "Remote: %-4s, %5s %9s, %s ", nsvc->remote_end_is_sgsn ? "SGSN" : "BSS", NS_DESC_A(nsvc->remote_state), - NS_DESC_B(nsvc->remote_state)); + NS_DESC_B(nsvc->remote_state), gprs_ns_ll_str(nsvc)); - vty_out(vty, ", %s %s%s", - nsvc->ll == GPRS_NS_LL_UDP ? "UDP " : "FR-GRE", - gprs_ns_ll_str(nsvc), VTY_NEWLINE); + vty_out(vty, "%s%s", nsvc->ll == GPRS_NS_LL_UDP ? "UDP" : "FR-GRE", VTY_NEWLINE); if (stats) { vty_out_rate_ctr_group(vty, " ", nsvc->ctrg); -- cgit v1.2.3