aboutsummaryrefslogtreecommitdiffstats
path: root/src/gb/gprs_ns2.c
diff options
context:
space:
mode:
authorAlexander Couzens <lynxis@fe80.eu>2021-02-12 03:17:59 +0100
committerlynxis lazus <lynxis@fe80.eu>2021-02-19 10:41:50 +0000
commit6b9d2324219d50f38f27cfaa5d546379f0aec74e (patch)
treebe6b86d6383e0f879f4819026057a6bcddc0f0b2 /src/gb/gprs_ns2.c
parentd7a209bce9b4d3707ef86b1b65aeaea76c729c80 (diff)
gprs_ns2: rework IP-SNS binds
Introduce a `ip-sns-bind BINDID` vty command within a `nse` vty object. The ip-sns-bind defines the binds which will be used by the dynamic configuration with IP-SNS. This is only the first part which only uses the binds when doing a new SNS configuration. The outgoing add procedure will be supported in a later patch when the SNS fsm supports outgoing procedures. This is a behaviour change of the API and must be synchronized with the osmo-pcu. Otherwise SNS won't work with osmo-pcu. Related: SYS#5354 Change-Id: I9ab8092bf286e7d90e92f5702a5404425e959c84
Diffstat (limited to 'src/gb/gprs_ns2.c')
-rw-r--r--src/gb/gprs_ns2.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c
index 9302a16f..bc4db53e 100644
--- a/src/gb/gprs_ns2.c
+++ b/src/gb/gprs_ns2.c
@@ -1269,6 +1269,7 @@ void gprs_ns2_start_alive_all_nsvcs(struct gprs_ns2_nse *nse)
void gprs_ns2_free_bind(struct gprs_ns2_vc_bind *bind)
{
struct gprs_ns2_vc *nsvc, *tmp;
+ struct gprs_ns2_nse *nse;
if (!bind)
return;
@@ -1276,6 +1277,12 @@ void gprs_ns2_free_bind(struct gprs_ns2_vc_bind *bind)
gprs_ns2_free_nsvc(nsvc);
}
+ if (gprs_ns2_is_ip_bind(bind)) {
+ llist_for_each_entry(nse, &bind->nsi->nse, list) {
+ gprs_ns2_sns_del_bind(nse, bind);
+ }
+ }
+
if (bind->driver->free_bind)
bind->driver->free_bind(bind);