pespin submitted this change.

View Change


Approvals: fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified pespin: Looks good to me, approved
layer23: modem: Store P-TMSI independently in subscriber

Change-Id: I6f6d230d8c3c4fce27ba87cf9f953dc9db83cb72
---
M src/host/layer23/include/osmocom/bb/common/subscriber.h
M src/host/layer23/src/common/subscriber.c
M src/host/layer23/src/modem/gmm.c
M src/host/layer23/src/modem/sm.c
4 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/host/layer23/include/osmocom/bb/common/subscriber.h b/src/host/layer23/include/osmocom/bb/common/subscriber.h
index 3de8cda..1dd1869 100644
--- a/src/host/layer23/include/osmocom/bb/common/subscriber.h
+++ b/src/host/layer23/include/osmocom/bb/common/subscriber.h
@@ -46,6 +46,7 @@

/* TMSI / LAI */
uint32_t tmsi; /* invalid tmsi: GSM_RESERVED_TMSI */
+ uint32_t ptmsi; /* invalid tmsi: GSM_RESERVED_TMSI */
uint16_t mcc, mnc, lac; /* invalid lac: 0x0000 */


diff --git a/src/host/layer23/src/common/subscriber.c b/src/host/layer23/src/common/subscriber.c
index c75c3ce..0669598 100644
--- a/src/host/layer23/src/common/subscriber.c
+++ b/src/host/layer23/src/common/subscriber.c
@@ -79,6 +79,7 @@

/* set TMSI / LAC invalid */
subscr->tmsi = GSM_RESERVED_TMSI;
+ subscr->ptmsi = GSM_RESERVED_TMSI;
subscr->lac = 0x0000;

/* set key invalid */
@@ -173,6 +174,7 @@
subscr->mnc = mnc;
subscr->lac = lac;
subscr->tmsi = tmsi;
+ subscr->ptmsi = GSM_RESERVED_TMSI;
subscr->always_search_hplmn = set->test_always;
subscr->t6m_hplmn = 1; /* try to find home network every 6 min */
strcpy(subscr->imsi, set->test_imsi);
@@ -1155,6 +1157,8 @@
(subscr->imsi_attached) ? "attached" : "detached");
if (subscr->tmsi != GSM_RESERVED_TMSI)
print(priv, " TMSI 0x%08x", subscr->tmsi);
+ if (subscr->ptmsi != GSM_RESERVED_TMSI)
+ print(priv, " P-TMSI 0x%08x", subscr->ptmsi);
if (subscr->lac > 0x0000 && subscr->lac < 0xfffe) {
print(priv, "\n");
print(priv, " LAI: MCC %s MNC %s LAC 0x%04x "
diff --git a/src/host/layer23/src/modem/gmm.c b/src/host/layer23/src/modem/gmm.c
index af8b060..6d1f518 100644
--- a/src/host/layer23/src/modem/gmm.c
+++ b/src/host/layer23/src/modem/gmm.c
@@ -147,8 +147,8 @@

gmm_prim = osmo_gprs_gmm_prim_alloc_gmmreg_attach_req();
gmm_prim->gmmreg.attach_req.attach_type = OSMO_GPRS_GMM_ATTACH_TYPE_GPRS;
- gmm_prim->gmmreg.attach_req.ptmsi = subscr->tmsi;
- gmm_prim->gmmreg.attach_req.attach_with_imsi = (subscr->tmsi == GSM_RESERVED_TMSI);
+ gmm_prim->gmmreg.attach_req.ptmsi = subscr->ptmsi;
+ gmm_prim->gmmreg.attach_req.attach_with_imsi = (subscr->ptmsi == GSM_RESERVED_TMSI);
memcpy(gmm_prim->gmmreg.attach_req.imsi, subscr->imsi, ARRAY_SIZE(subscr->imsi));
memcpy(gmm_prim->gmmreg.attach_req.imei, ms->settings.imei, ARRAY_SIZE(ms->settings.imei));
memcpy(gmm_prim->gmmreg.attach_req.imeisv, ms->settings.imeisv, ARRAY_SIZE(ms->settings.imeisv));
@@ -165,7 +165,7 @@
int rc;

gmm_prim = osmo_gprs_gmm_prim_alloc_gmmreg_detach_req();
- gmm_prim->gmmreg.detach_req.ptmsi = subscr->tmsi;
+ gmm_prim->gmmreg.detach_req.ptmsi = subscr->ptmsi;
gmm_prim->gmmreg.detach_req.detach_type = OSMO_GPRS_GMM_DETACH_MS_TYPE_GPRS;
gmm_prim->gmmreg.detach_req.poweroff_type = OSMO_GPRS_GMM_DETACH_POWEROFF_TYPE_NORMAL;
rc = osmo_gprs_gmm_prim_upper_down(gmm_prim);
diff --git a/src/host/layer23/src/modem/sm.c b/src/host/layer23/src/modem/sm.c
index 575321f..2a404d4 100644
--- a/src/host/layer23/src/modem/sm.c
+++ b/src/host/layer23/src/modem/sm.c
@@ -251,7 +251,7 @@
memcpy(sm_prim->smreg.pdp_act_req.pco, pco, sizeof(pco));
sm_prim->smreg.pdp_act_req.pco_len = 1;
OSMO_STRLCPY_ARRAY(sm_prim->smreg.pdp_act_req.apn, apn->cfg.name);
- sm_prim->smreg.pdp_act_req.gmm.ptmsi = subscr->tmsi;
+ sm_prim->smreg.pdp_act_req.gmm.ptmsi = subscr->ptmsi;
OSMO_STRLCPY_ARRAY(sm_prim->smreg.pdp_act_req.gmm.imsi, subscr->imsi);
OSMO_STRLCPY_ARRAY(sm_prim->smreg.pdp_act_req.gmm.imei, ms->settings.imei);
OSMO_STRLCPY_ARRAY(sm_prim->smreg.pdp_act_req.gmm.imeisv, ms->settings.imeisv);

To view, visit change 32497. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: I6f6d230d8c3c4fce27ba87cf9f953dc9db83cb72
Gerrit-Change-Number: 32497
Gerrit-PatchSet: 3
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>
Gerrit-MessageType: merged