Change in libosmocore[master]: gprs_ns2_sns: Don't create NS-VCs for binds outside the NSE

daniel gerrit-no-reply at lists.osmocom.org
Wed Mar 24 16:18:16 UTC 2021


daniel has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23481 )

Change subject: gprs_ns2_sns: Don't create NS-VCs for binds outside the NSE
......................................................................

gprs_ns2_sns: Don't create NS-VCs for binds outside the NSE

We may very well have any number of binds configured, but which
are not part of the current NSE.  When creating the "full mesh" of
NS-VCs after SNS-CONFIG, we must only iterate over those binds that
are part of the NSE (or 'ipa-sns-default bind' in cae of SGSN role),
but not over all the other binds that may exist in the system.

Closes: OS#5092
Change-Id: Ida361fa02ad1d86844d54c8f0664c996ed28e30a
---
M src/gb/gprs_ns2_sns.c
1 file changed, 9 insertions(+), 5 deletions(-)

Approvals:
  daniel: Looks good to me, approved
  lynxis lazus: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c
index 2370f01..b07f010 100644
--- a/src/gb/gprs_ns2_sns.c
+++ b/src/gb/gprs_ns2_sns.c
@@ -388,7 +388,7 @@
 	struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv;
 	struct gprs_ns2_nse *nse = nse_inst_from_fi(fi);
 	struct gprs_ns2_vc *nsvc;
-	struct gprs_ns2_vc_bind *bind;
+	struct ns2_sns_bind *sbind;
 	struct osmo_sockaddr remote = { };
 	unsigned int i;
 
@@ -400,8 +400,10 @@
 		remote.u.sin.sin_addr.s_addr = ip4->ip_addr;
 		remote.u.sin.sin_port = ip4->udp_port;
 
-		/* iterate over all local binds */
-		llist_for_each_entry(bind, &nse->nsi->binding, list) {
+		/* iterate over all local binds within this SNS */
+		llist_for_each_entry(sbind, &gss->binds, list) {
+			struct gprs_ns2_vc_bind *bind = sbind->bind;
+
 			/* we only care about UDP binds */
 			if (bind->ll != GPRS_NS2_LL_UDP)
 				continue;
@@ -430,8 +432,10 @@
 		remote.u.sin6.sin6_addr = ip6->ip_addr;
 		remote.u.sin6.sin6_port = ip6->udp_port;
 
-		/* iterate over all local binds */
-		llist_for_each_entry(bind, &nse->nsi->binding, list) {
+		/* iterate over all local binds within this SNS */
+		llist_for_each_entry(sbind, &gss->binds, list) {
+			struct gprs_ns2_vc_bind *bind = sbind->bind;
+
 			if (bind->ll != GPRS_NS2_LL_UDP)
 				continue;
 

-- 
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23481
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: Ida361fa02ad1d86844d54c8f0664c996ed28e30a
Gerrit-Change-Number: 23481
Gerrit-PatchSet: 3
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann at sysmocom.de>
Gerrit-Reviewer: lynxis lazus <lynxis at fe80.eu>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210324/c8a6ab79/attachment.htm>


More information about the gerrit-log mailing list