aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Couzens <lynxis@fe80.eu>2020-12-10 04:10:57 +0100
committerAlexander Couzens <lynxis@fe80.eu>2020-12-10 04:10:57 +0100
commit0871becc199de3136a292e24a6578b58e97d8ef1 (patch)
treebde451802efe9248bac9d06c38bb6c2f4efb7a92
parent33c6d711bcbdff491710b1828e1476a82b305ccb (diff)
gprs_ns2: add gprs_ns2_sns_write_vty()
-rw-r--r--src/gb/gprs_ns2_internal.h1
-rw-r--r--src/gb/gprs_ns2_sns.c22
2 files changed, 23 insertions, 0 deletions
diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h
index ffbd7ee9..3a0de7c4 100644
--- a/src/gb/gprs_ns2_internal.h
+++ b/src/gb/gprs_ns2_internal.h
@@ -238,6 +238,7 @@ struct gprs_ns2_vc *ns2_vc_alloc(struct gprs_ns2_vc_bind *bind,
struct msgb *gprs_ns2_msgb_alloc(void);
+void gprs_ns2_sns_write_vty(struct vty *vty, const struct gprs_ns2_nse *nse);
void gprs_ns2_sns_dump_vty(struct vty *vty, const struct gprs_ns2_nse *nse, bool stats);
void ns2_prim_status_ind(struct gprs_ns2_nse *nse,
struct gprs_ns2_vc *nsvc,
diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c
index 63433198..445b608d 100644
--- a/src/gb/gprs_ns2_sns.c
+++ b/src/gb/gprs_ns2_sns.c
@@ -46,6 +46,7 @@
#include <osmocom/core/fsm.h>
#include <osmocom/core/msgb.h>
#include <osmocom/core/socket.h>
+#include <osmocom/core/sockaddr_str.h>
#include <osmocom/gsm/tlv.h>
#include <osmocom/gprs/gprs_msgb.h>
#include <osmocom/gprs/gprs_ns2.h>
@@ -1534,6 +1535,27 @@ void gprs_ns2_sns_dump_vty(struct vty *vty, const struct gprs_ns2_nse *nse, bool
}
}
+/*! write IP-SNS to a vty
+ * \param[in] vty VTY to which the state shall be printed
+ * \param[in] nse NS Entity whose IP-SNS state shall be printed
+ * \param[in] stats Whether or not statistics shall also be printed */
+void gprs_ns2_sns_write_vty(struct vty *vty, const struct gprs_ns2_nse *nse)
+{
+ struct ns2_sns_state *gss;
+ struct osmo_sockaddr_str addr_str;
+ struct sns_endpoint *endpoint;
+
+ if (!nse->bss_sns_fi)
+ return;
+
+ gss = (struct ns2_sns_state *) nse->bss_sns_fi->priv;
+ llist_for_each_entry(endpoint, &gss->sns_endpoints, list) {
+ osmo_sockaddr_str_from_sockaddr(&addr_str, &endpoint->saddr.u.sas);
+ vty_out(vty, "ip-sns %s %s %d%s",
+ "somegroup", addr_str.ip, addr_str.port, VTY_NEWLINE);
+ }
+}
+
static struct sns_endpoint *ns2_get_sns_endpoint(struct ns2_sns_state *state,
const struct osmo_sockaddr *saddr)
{