diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2020-10-11 21:22:42 +0200 |
---|---|---|
committer | Alexander Couzens <lynxis@fe80.eu> | 2020-10-12 15:54:21 +0200 |
commit | 125298f2b5484912d805c2d152a94341ddee3d69 (patch) | |
tree | 1629f48d9d18a75df1ea48d8fbd2584b04dc0400 | |
parent | 979f5f5449909c1b779258e5c5ec66f5de02a3b2 (diff) |
gprs_ns2: add gprs_ns2_nse_sns_remote() returns the initial SNS address
Allows the PCU to get the SNS remote address.
Change-Id: I54f110acc3acccb362f6e554324d08cc42b7c328
-rw-r--r-- | include/osmocom/gprs/gprs_ns2.h | 1 | ||||
-rw-r--r-- | src/gb/gprs_ns2_sns.c | 15 | ||||
-rw-r--r-- | src/gb/libosmogb.map | 1 |
3 files changed, 17 insertions, 0 deletions
diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index d332e484..0d08af52 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -138,6 +138,7 @@ void gprs_ns2_free_binds(struct gprs_ns2_inst *nsi); int gprs_ns2_ip_connect_sns(struct gprs_ns2_vc_bind *bind, const struct osmo_sockaddr *remote, uint16_t nsei); +const struct osmo_sockaddr *gprs_ns2_nse_sns_remote(struct gprs_ns2_nse *nse); const struct osmo_sockaddr *gprs_ns2_ip_vc_remote(struct gprs_ns2_vc *nsvc); const struct osmo_sockaddr *gprs_ns2_ip_vc_local(const struct gprs_ns2_vc *nsvc); diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index d4de8ae2..1afd4b7c 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -194,6 +194,21 @@ static struct gprs_ns2_vc *nsvc_by_ip6_elem(struct gprs_ns2_nse *nse, return gprs_ns2_nsvc_by_sockaddr_nse(nse, &sa); } +/*! Return the initial SNS remote socket address + * \param nse NS Entity + * \return address of the initial SNS connection; NULL in case of error + */ +const struct osmo_sockaddr *gprs_ns2_nse_sns_remote(struct gprs_ns2_nse *nse) +{ + struct ns2_sns_state *gss; + + if (!nse->bss_sns_fi) + return NULL; + + gss = (struct ns2_sns_state *) nse->bss_sns_fi->priv; + return &gss->initial; +} + /*! called when a nsvc is beeing freed */ void ns2_sns_free_nsvc(struct gprs_ns2_vc *nsvc) { diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index f542496d..e6557b7e 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -102,6 +102,7 @@ gprs_ns2_ll_str_buf; gprs_ns2_ll_str_c; gprs_ns2_nse_by_nsei; gprs_ns2_nse_nsei; +gprs_ns2_nse_sns_remote; gprs_ns2_nsvc_by_nsvci; gprs_ns2_nsvc_by_sockaddr; gprs_ns2_recv_prim; |