Change in libosmocore[master]: gprs_ns2: rework id strings of nsvcs

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

lynxis lazus gerrit-no-reply at lists.osmocom.org
Thu Jun 3 18:39:02 UTC 2021


lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/24539 )


Change subject: gprs_ns2: rework id strings of nsvcs
......................................................................

gprs_ns2: rework id strings of nsvcs

Ensure all nsvcs ids are unique as UDP ids might not be unique when
multiple NSVCs connect to the same remote endpoint (multiple binds).
Change the format of all ids to look similiar.
FR: NSE11-NSVC23-FR-fr0-DLCI13.
UDP: NSE11-NSVC-UDP-10.0.0.1:23000-192.168.1.1:24000
UDP: NSE11-NSVC23-UDP-10.0.0.1:23000-192.168.1.1:24000
UDP: NSE11-NSVC66-UDP-[fd01::1]:23000-[fd03::2]:24000

Change-Id: I618e263e73fcc64d4e46b57aa3a2cb2783837907
---
M src/gb/gprs_ns2.c
M src/gb/gprs_ns2_fr.c
M src/gb/gprs_ns2_udp.c
3 files changed, 19 insertions(+), 11 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/39/24539/1

diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c
index 1148d6f..65a78a2 100644
--- a/src/gb/gprs_ns2.c
+++ b/src/gb/gprs_ns2.c
@@ -980,7 +980,8 @@
 	enum gprs_ns2_vc_mode vc_mode;
 	uint16_t nsvci;
 	uint16_t nsei;
-	char idbuf[32];
+	const struct osmo_sockaddr *local;
+	char idbuf[256], tmp[INET6_ADDRSTRLEN + 8];
 
 	int rc, tlv;
 
@@ -1113,8 +1114,12 @@
 
 	nsvci = tlvp_val16be(&tp, NS_IE_VCI);
 	vc_mode = ns2_dialect_to_vc_mode(dialect);
-	snprintf(idbuf, sizeof(idbuf), "%s-NSE%05u-NSVC%05u", gprs_ns2_lltype_str(nse->ll),
-		 nse->nsei, nsvci);
+
+	local = gprs_ns2_ip_bind_sockaddr(bind);
+	osmo_sockaddr_to_str_buf(tmp, sizeof(tmp), local);
+	snprintf(idbuf, sizeof(idbuf), "%s-NSE%05u-NSVC%05u-%s-%s", gprs_ns2_lltype_str(nse->ll),
+		 nse->nsei, nsvci, tmp, osmo_sockaddr_to_str(remote));
+	osmo_identifier_sanitize_buf(idbuf, NULL, '_');
 	nsvc = ns2_vc_alloc(bind, nse, false, vc_mode, idbuf);
 	if (!nsvc)
 		return NS2_CS_SKIPPED;
diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c
index 84f3784..8de93e9 100644
--- a/src/gb/gprs_ns2_fr.c
+++ b/src/gb/gprs_ns2_fr.c
@@ -976,8 +976,9 @@
 		goto err;
 	}
 
-	snprintf(idbuf, sizeof(idbuf), "%s-%s-DLCI%u-NSE%05u-NSVC%05u", gprs_ns2_lltype_str(nse->ll),
-		 bpriv->netif, dlci, nse->nsei, nsvci);
+	snprintf(idbuf, sizeof(idbuf), "NSE%05u-NSVC%05u-%s-%s-DLCI%u", nse->nsei, nsvci,
+		 gprs_ns2_lltype_str(nse->ll), bpriv->netif, dlci);
+	osmo_identifier_sanitize_buf(idbuf, NULL, '_');
 	nsvc = ns2_vc_alloc(bind, nse, true, GPRS_NS2_VC_MODE_BLOCKRESET, idbuf);
 	if (!nsvc)
 		goto err;
diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c
index 7980df5..428fd4a 100644
--- a/src/gb/gprs_ns2_udp.c
+++ b/src/gb/gprs_ns2_udp.c
@@ -384,10 +384,10 @@
 					const struct osmo_sockaddr *remote)
 {
 	struct gprs_ns2_vc *nsvc;
+	const struct osmo_sockaddr *local;
 	struct priv_vc *priv;
 	enum gprs_ns2_vc_mode vc_mode;
-	char *sockaddr_str;
-	char idbuf[64];
+	char idbuf[256], tmp[INET6_ADDRSTRLEN + 8];
 
 	OSMO_ASSERT(gprs_ns2_is_ip_bind(bind));
 
@@ -402,10 +402,12 @@
 	if (gprs_ns2_nsvc_by_sockaddr_bind(bind, remote))
 		return NULL;
 
-	sockaddr_str = (char *)osmo_sockaddr_to_str(remote);
-	osmo_identifier_sanitize_buf(sockaddr_str, NULL, '_');
-	snprintf(idbuf, sizeof(idbuf), "%s-NSE%05u-remote-%s", gprs_ns2_lltype_str(nse->ll),
-		 nse->nsei, sockaddr_str);
+	local = gprs_ns2_ip_bind_sockaddr(bind);
+	osmo_sockaddr_to_str_buf(tmp, sizeof(tmp), local);
+	snprintf(idbuf, sizeof(idbuf), "NSE%05u-NSVC-%s-%s-%s", nse->nsei, gprs_ns2_lltype_str(nse->ll),
+		 tmp, osmo_sockaddr_to_str(remote));
+	osmo_identifier_sanitize_buf(idbuf, NULL, '_');
+
 	nsvc = ns2_vc_alloc(bind, nse, true, vc_mode, idbuf);
 	if (!nsvc)
 		return NULL;

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

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I618e263e73fcc64d4e46b57aa3a2cb2783837907
Gerrit-Change-Number: 24539
Gerrit-PatchSet: 1
Gerrit-Owner: lynxis lazus <lynxis at fe80.eu>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210603/18097bf4/attachment.htm>


More information about the gerrit-log mailing list