<p>lynxis lazus has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/libosmocore/+/24539">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gprs_ns2: rework id strings of nsvcs<br><br>Ensure all nsvcs ids are unique as UDP ids might not be unique when<br>multiple NSVCs connect to the same remote endpoint (multiple binds).<br>Change the format of all ids to look similiar.<br>FR: NSE11-NSVC23-FR-fr0-DLCI13.<br>UDP: NSE11-NSVC-UDP-10.0.0.1:23000-192.168.1.1:24000<br>UDP: NSE11-NSVC23-UDP-10.0.0.1:23000-192.168.1.1:24000<br>UDP: NSE11-NSVC66-UDP-[fd01::1]:23000-[fd03::2]:24000<br><br>Change-Id: I618e263e73fcc64d4e46b57aa3a2cb2783837907<br>---<br>M src/gb/gprs_ns2.c<br>M src/gb/gprs_ns2_fr.c<br>M src/gb/gprs_ns2_udp.c<br>3 files changed, 19 insertions(+), 11 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/39/24539/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c</span><br><span>index 1148d6f..65a78a2 100644</span><br><span>--- a/src/gb/gprs_ns2.c</span><br><span>+++ b/src/gb/gprs_ns2.c</span><br><span>@@ -980,7 +980,8 @@</span><br><span>  enum gprs_ns2_vc_mode vc_mode;</span><br><span>       uint16_t nsvci;</span><br><span>      uint16_t nsei;</span><br><span style="color: hsl(0, 100%, 40%);">-  char idbuf[32];</span><br><span style="color: hsl(120, 100%, 40%);">+       const struct osmo_sockaddr *local;</span><br><span style="color: hsl(120, 100%, 40%);">+    char idbuf[256], tmp[INET6_ADDRSTRLEN + 8];</span><br><span> </span><br><span>      int rc, tlv;</span><br><span> </span><br><span>@@ -1113,8 +1114,12 @@</span><br><span> </span><br><span>        nsvci = tlvp_val16be(&tp, NS_IE_VCI);</span><br><span>    vc_mode = ns2_dialect_to_vc_mode(dialect);</span><br><span style="color: hsl(0, 100%, 40%);">-      snprintf(idbuf, sizeof(idbuf), "%s-NSE%05u-NSVC%05u", gprs_ns2_lltype_str(nse->ll),</span><br><span style="color: hsl(0, 100%, 40%);">-                 nse->nsei, nsvci);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      local = gprs_ns2_ip_bind_sockaddr(bind);</span><br><span style="color: hsl(120, 100%, 40%);">+      osmo_sockaddr_to_str_buf(tmp, sizeof(tmp), local);</span><br><span style="color: hsl(120, 100%, 40%);">+    snprintf(idbuf, sizeof(idbuf), "%s-NSE%05u-NSVC%05u-%s-%s", gprs_ns2_lltype_str(nse->ll),</span><br><span style="color: hsl(120, 100%, 40%);">+                 nse->nsei, nsvci, tmp, osmo_sockaddr_to_str(remote));</span><br><span style="color: hsl(120, 100%, 40%);">+     osmo_identifier_sanitize_buf(idbuf, NULL, '_');</span><br><span>      nsvc = ns2_vc_alloc(bind, nse, false, vc_mode, idbuf);</span><br><span>       if (!nsvc)</span><br><span>           return NS2_CS_SKIPPED;</span><br><span>diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c</span><br><span>index 84f3784..8de93e9 100644</span><br><span>--- a/src/gb/gprs_ns2_fr.c</span><br><span>+++ b/src/gb/gprs_ns2_fr.c</span><br><span>@@ -976,8 +976,9 @@</span><br><span>            goto err;</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   snprintf(idbuf, sizeof(idbuf), "%s-%s-DLCI%u-NSE%05u-NSVC%05u", gprs_ns2_lltype_str(nse->ll),</span><br><span style="color: hsl(0, 100%, 40%);">-               bpriv->netif, dlci, nse->nsei, nsvci);</span><br><span style="color: hsl(120, 100%, 40%);">+ snprintf(idbuf, sizeof(idbuf), "NSE%05u-NSVC%05u-%s-%s-DLCI%u", nse->nsei, nsvci,</span><br><span style="color: hsl(120, 100%, 40%);">+                 gprs_ns2_lltype_str(nse->ll), bpriv->netif, dlci);</span><br><span style="color: hsl(120, 100%, 40%);">+     osmo_identifier_sanitize_buf(idbuf, NULL, '_');</span><br><span>      nsvc = ns2_vc_alloc(bind, nse, true, GPRS_NS2_VC_MODE_BLOCKRESET, idbuf);</span><br><span>    if (!nsvc)</span><br><span>           goto err;</span><br><span>diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c</span><br><span>index 7980df5..428fd4a 100644</span><br><span>--- a/src/gb/gprs_ns2_udp.c</span><br><span>+++ b/src/gb/gprs_ns2_udp.c</span><br><span>@@ -384,10 +384,10 @@</span><br><span>                                   const struct osmo_sockaddr *remote)</span><br><span> {</span><br><span>     struct gprs_ns2_vc *nsvc;</span><br><span style="color: hsl(120, 100%, 40%);">+     const struct osmo_sockaddr *local;</span><br><span>   struct priv_vc *priv;</span><br><span>        enum gprs_ns2_vc_mode vc_mode;</span><br><span style="color: hsl(0, 100%, 40%);">-  char *sockaddr_str;</span><br><span style="color: hsl(0, 100%, 40%);">-     char idbuf[64];</span><br><span style="color: hsl(120, 100%, 40%);">+       char idbuf[256], tmp[INET6_ADDRSTRLEN + 8];</span><br><span> </span><br><span>      OSMO_ASSERT(gprs_ns2_is_ip_bind(bind));</span><br><span> </span><br><span>@@ -402,10 +402,12 @@</span><br><span>  if (gprs_ns2_nsvc_by_sockaddr_bind(bind, remote))</span><br><span>            return NULL;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        sockaddr_str = (char *)osmo_sockaddr_to_str(remote);</span><br><span style="color: hsl(0, 100%, 40%);">-    osmo_identifier_sanitize_buf(sockaddr_str, NULL, '_');</span><br><span style="color: hsl(0, 100%, 40%);">-  snprintf(idbuf, sizeof(idbuf), "%s-NSE%05u-remote-%s", gprs_ns2_lltype_str(nse->ll),</span><br><span style="color: hsl(0, 100%, 40%);">-                nse->nsei, sockaddr_str);</span><br><span style="color: hsl(120, 100%, 40%);">+ local = gprs_ns2_ip_bind_sockaddr(bind);</span><br><span style="color: hsl(120, 100%, 40%);">+      osmo_sockaddr_to_str_buf(tmp, sizeof(tmp), local);</span><br><span style="color: hsl(120, 100%, 40%);">+    snprintf(idbuf, sizeof(idbuf), "NSE%05u-NSVC-%s-%s-%s", nse->nsei, gprs_ns2_lltype_str(nse->ll),</span><br><span style="color: hsl(120, 100%, 40%);">+               tmp, osmo_sockaddr_to_str(remote));</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_identifier_sanitize_buf(idbuf, NULL, '_');</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>    nsvc = ns2_vc_alloc(bind, nse, true, vc_mode, idbuf);</span><br><span>        if (!nsvc)</span><br><span>           return NULL;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmocore/+/24539">change 24539</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/libosmocore/+/24539"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmocore </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I618e263e73fcc64d4e46b57aa3a2cb2783837907 </div>
<div style="display:none"> Gerrit-Change-Number: 24539 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>