diff --git a/openbsc/include/openbsc/gb_proxy.h b/openbsc/include/openbsc/gb_proxy.h index 60dd5ca80..3b695e52a 100644 --- a/openbsc/include/openbsc/gb_proxy.h +++ b/openbsc/include/openbsc/gb_proxy.h @@ -6,6 +6,7 @@ #include #include +#include struct gbproxy_config { /* parsed from config file */ @@ -23,6 +24,7 @@ struct gbproxy_config { }; extern struct gbproxy_config gbcfg; +extern struct cmd_element show_gbproxy_cmd; /* gb_proxy_vty .c */ diff --git a/openbsc/src/gprs/gb_proxy.c b/openbsc/src/gprs/gb_proxy.c index fe5ad702f..3ed7fdfde 100644 --- a/openbsc/src/gprs/gb_proxy.c +++ b/openbsc/src/gprs/gb_proxy.c @@ -414,3 +414,28 @@ int gbprox_rcvmsg(struct msgb *msg, struct gprs_nsvc *nsvc, uint16_t ns_bvci) return rc; } + + +#include + +gDEFUN(show_gbproxy, show_gbproxy_cmd, "show gbproxy", + SHOW_STR "Display information about the Gb proxy") +{ + struct gbprox_peer *peer; + + llist_for_each_entry(peer, &gbprox_bts_peers, list) { + struct gprs_nsvc *nsvc = peer->nsvc; + struct gprs_ra_id raid; + gsm48_parse_ra(&raid, &peer->ra); + + vty_out(vty, "NSEI %5u, NS-VC %5u, PTP-BVCI %u, " + "RAC %u-%u-%u-%u%s", + nsvc->nsei, nsvc->nsvci, peer->bvci, + raid.mcc, raid.mnc, raid.lac, raid.rac, VTY_NEWLINE); + if (nsvc->nsi->ll == GPRS_NS_LL_UDP) + vty_out(vty, " remote address %s:%u%s", + inet_ntoa(nsvc->ip.bts_addr.sin_addr), + ntohs(nsvc->ip.bts_addr.sin_port), VTY_NEWLINE); + } + return CMD_SUCCESS; +} diff --git a/openbsc/src/gprs/gb_proxy_vty.c b/openbsc/src/gprs/gb_proxy_vty.c index 16f6a1e0e..a40392b90 100644 --- a/openbsc/src/gprs/gb_proxy_vty.c +++ b/openbsc/src/gprs/gb_proxy_vty.c @@ -70,8 +70,8 @@ static int config_write_gbproxy(struct vty *vty) return CMD_SUCCESS; } -DEFUN(show_gbproxy, show_gbproxy_cmd, "show gbproxy", - SHOW_STR "Display information about the Gb proxy") +DEFUN(show_ns, show_ns_cmd, "show ns", + SHOW_STR "Display information about the NS protocol") { /* FIXME: iterate over list of NS-VC's and display their state */ struct gprs_ns_inst *nsi = g_cfg->nsi; @@ -176,6 +176,7 @@ DEFUN(cfg_nsip_sgsn_nsvci, int gbproxy_vty_init(void) { + install_element(VIEW_NODE, &show_ns_cmd); install_element(VIEW_NODE, &show_gbproxy_cmd); install_element(CONFIG_NODE, &cfg_gbproxy_cmd);