diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gb/gprs_ns2.c | 3 | ||||
-rw-r--r-- | src/gb/gprs_ns2_internal.h | 1 | ||||
-rw-r--r-- | src/gb/gprs_ns2_sns.c | 3 |
3 files changed, 7 insertions, 0 deletions
diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 4d27333a..3574f28c 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1422,6 +1422,9 @@ void gprs_ns2_start_alive_all_nsvcs(struct gprs_ns2_nse *nse) OSMO_ASSERT(nse); llist_for_each_entry(nsvc, &nse->nsvc, list) { + /* A pre-configured endpoint shall not be used for NSE data or signalling traffic + * (with the exception of Size and Configuration procedures) unless it is + * configured by the SGSN using the auto-configuration procedures */ if (nsvc->sns_only) continue; diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 29717c63..b4d0a0d6 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -220,6 +220,7 @@ struct gprs_ns2_vc { void *priv; bool nsvci_is_valid; + /*! should this NS-VC only be used for SNS-SIZE and SNS-CONFIG? */ bool sns_only; struct rate_ctr_group *ctrg; diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 11c5a8ea..51e4e9e3 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -914,6 +914,9 @@ static void ns2_sns_st_bss_size_onenter(struct osmo_fsm_inst *fi, uint32_t old_s gss->sns_nsvc = ns2_ip_bind_connect(bind, gss->nse, remote); if (!gss->sns_nsvc) return; + /* A pre-configured endpoint shall not be used for NSE data or signalling traffic + * (with the exception of Size and Configuration procedures) unless it is configured + * by the SGSN using the auto-configuration procedures */ gss->sns_nsvc->sns_only = true; } |