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/.
keith gerrit-no-reply at lists.osmocom.orgkeith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/20532 )
Change subject: Fix vty PDP lookups by IMSI
......................................................................
Fix vty PDP lookups by IMSI
Change-Id: Icd2e2bc6068c06fbf5d5fe905ebcda8954f33f04
---
M ggsn/ggsn_vty.c
M gtp/pdp.c
2 files changed, 15 insertions(+), 5 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/32/20532/1
diff --git a/ggsn/ggsn_vty.c b/ggsn/ggsn_vty.c
index cb92a8a..a5815af 100644
--- a/ggsn/ggsn_vty.c
+++ b/ggsn/ggsn_vty.c
@@ -896,6 +896,18 @@
imsi = strtoull(argv[1], NULL, 10);
+ /* gtp_pdp_getimsi() calls gtp_pdp_tidget() which calls
+ * pdp_tidhash() as was done by pdp_tidset() but when than
+ * function was called, the IMSI was in gtp format. (TS 29.060)
+ * We end up with the wrong hash below and do not find the pdp
+ * context.
+ * See gtp.c:imsi_gtp2str()
+ */
+
+ /* TODO: Implement
+ * imsi = imsi_str2gtp(const uint64_t *imsi);
+ */
+
if (argc > 2) {
nsapi = atoi(argv[2]);
if (gtp_pdp_getimsi(ggsn->gsn, &pdp, imsi, nsapi)) {
diff --git a/gtp/pdp.c b/gtp/pdp.c
index 518f5d4..116e849 100644
--- a/gtp/pdp.c
+++ b/gtp/pdp.c
@@ -274,7 +274,7 @@
int hash = pdp_tidhash(tid);
struct pdp_t *pdp2;
struct pdp_t *pdp_prev = NULL;
- DEBUGP(DLGTP, "Begin pdp_tidset tid = %"PRIx64"\n", tid);
+ DEBUGP(DLGTP, "Begin pdp_tidset tid = %"PRIx64", hash %d\n", tid, hash);
pdp->tidnext = NULL;
pdp->tid = tid;
for (pdp2 = hashtid[hash]; pdp2; pdp2 = pdp2->tidnext)
@@ -319,7 +319,7 @@
struct pdp_t **hashtid = gsn->hashtid;
int hash = pdp_tidhash(tid);
struct pdp_t *pdp2;
- DEBUGP(DLGTP, "Begin pdp_tidget tid = %"PRIx64"\n", tid);
+ DEBUGP(DLGTP, "Begin pdp_tidget tid = %"PRIx64", hash: %d\n", tid, hash);
for (pdp2 = hashtid[hash]; pdp2; pdp2 = pdp2->tidnext) {
if (pdp2->tid == tid) {
*pdp = pdp2;
@@ -338,9 +338,7 @@
int gtp_pdp_getimsi(struct gsn_t *gsn, struct pdp_t **pdp, uint64_t imsi, uint8_t nsapi)
{
- return gtp_pdp_tidget(gsn, pdp,
- (imsi & 0x0fffffffffffffffull) +
- ((uint64_t) nsapi << 60));
+ return gtp_pdp_tidget(gsn, pdp, pdp_gettid(imsi, nsapi));
}
--
To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/20532
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ggsn
Gerrit-Branch: master
Gerrit-Change-Id: Icd2e2bc6068c06fbf5d5fe905ebcda8954f33f04
Gerrit-Change-Number: 20532
Gerrit-PatchSet: 1
Gerrit-Owner: keith <keith at rhizomatica.org>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201010/bf9a8ce7/attachment.htm>