<p>keith has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ggsn/+/20532">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Fix vty PDP lookups by IMSI<br><br>Change-Id: Icd2e2bc6068c06fbf5d5fe905ebcda8954f33f04<br>---<br>M ggsn/ggsn_vty.c<br>M gtp/pdp.c<br>2 files changed, 15 insertions(+), 5 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/32/20532/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/ggsn/ggsn_vty.c b/ggsn/ggsn_vty.c</span><br><span>index cb92a8a..a5815af 100644</span><br><span>--- a/ggsn/ggsn_vty.c</span><br><span>+++ b/ggsn/ggsn_vty.c</span><br><span>@@ -896,6 +896,18 @@</span><br><span> </span><br><span>   imsi = strtoull(argv[1], NULL, 10);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+       /*  gtp_pdp_getimsi() calls gtp_pdp_tidget() which calls</span><br><span style="color: hsl(120, 100%, 40%);">+       *  pdp_tidhash() as was done by pdp_tidset() but when than</span><br><span style="color: hsl(120, 100%, 40%);">+    *  function was called, the IMSI was in gtp format. (TS 29.060)</span><br><span style="color: hsl(120, 100%, 40%);">+       *  We end up with the wrong hash below and do not find the pdp</span><br><span style="color: hsl(120, 100%, 40%);">+        *  context.</span><br><span style="color: hsl(120, 100%, 40%);">+   *  See gtp.c:imsi_gtp2str()</span><br><span style="color: hsl(120, 100%, 40%);">+   */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* TODO: Implement</span><br><span style="color: hsl(120, 100%, 40%);">+     *  imsi = imsi_str2gtp(const uint64_t *imsi);</span><br><span style="color: hsl(120, 100%, 40%);">+         */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>        if (argc > 2) {</span><br><span>           nsapi = atoi(argv[2]);</span><br><span>               if (gtp_pdp_getimsi(ggsn->gsn, &pdp, imsi, nsapi)) {</span><br><span>diff --git a/gtp/pdp.c b/gtp/pdp.c</span><br><span>index 518f5d4..116e849 100644</span><br><span>--- a/gtp/pdp.c</span><br><span>+++ b/gtp/pdp.c</span><br><span>@@ -274,7 +274,7 @@</span><br><span>   int hash = pdp_tidhash(tid);</span><br><span>         struct pdp_t *pdp2;</span><br><span>  struct pdp_t *pdp_prev = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-  DEBUGP(DLGTP, "Begin pdp_tidset tid = %"PRIx64"\n", tid);</span><br><span style="color: hsl(120, 100%, 40%);">+ DEBUGP(DLGTP, "Begin pdp_tidset tid = %"PRIx64", hash %d\n", tid, hash);</span><br><span>         pdp->tidnext = NULL;</span><br><span>      pdp->tid = tid;</span><br><span>   for (pdp2 = hashtid[hash]; pdp2; pdp2 = pdp2->tidnext)</span><br><span>@@ -319,7 +319,7 @@</span><br><span>      struct pdp_t **hashtid = gsn->hashtid;</span><br><span>    int hash = pdp_tidhash(tid);</span><br><span>         struct pdp_t *pdp2;</span><br><span style="color: hsl(0, 100%, 40%);">-     DEBUGP(DLGTP, "Begin pdp_tidget tid = %"PRIx64"\n", tid);</span><br><span style="color: hsl(120, 100%, 40%);">+ DEBUGP(DLGTP, "Begin pdp_tidget tid = %"PRIx64", hash: %d\n", tid, hash);</span><br><span>        for (pdp2 = hashtid[hash]; pdp2; pdp2 = pdp2->tidnext) {</span><br><span>          if (pdp2->tid == tid) {</span><br><span>                   *pdp = pdp2;</span><br><span>@@ -338,9 +338,7 @@</span><br><span> </span><br><span> int gtp_pdp_getimsi(struct gsn_t *gsn, struct pdp_t **pdp, uint64_t imsi, uint8_t nsapi)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- return gtp_pdp_tidget(gsn, pdp,</span><br><span style="color: hsl(0, 100%, 40%);">-                   (imsi & 0x0fffffffffffffffull) +</span><br><span style="color: hsl(0, 100%, 40%);">-                    ((uint64_t) nsapi << 60));</span><br><span style="color: hsl(120, 100%, 40%);">+    return gtp_pdp_tidget(gsn, pdp, pdp_gettid(imsi, nsapi));</span><br><span> }</span><br><span> </span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ggsn/+/20532">change 20532</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/osmo-ggsn/+/20532"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ggsn </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Icd2e2bc6068c06fbf5d5fe905ebcda8954f33f04 </div>
<div style="display:none"> Gerrit-Change-Number: 20532 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: keith <keith@rhizomatica.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>