pespin has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmocom-bb/+/32497 )
Change subject: layer23: modem: Store P-TMSI independently in subscriber
......................................................................
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(-)
git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/97/32497/1
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 357b5ae..7849536 100644
--- a/src/host/layer23/src/modem/gmm.c
+++ b/src/host/layer23/src/modem/gmm.c
@@ -148,8 +148,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));
@@ -166,7 +166,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 f3b8a89..7bd70c9 100644
--- a/src/host/layer23/src/modem/sm.c
+++ b/src/host/layer23/src/modem/sm.c
@@ -180,7 +180,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
https://gerrit.osmocom.org/c/osmocom-bb/+/32497
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: I6f6d230d8c3c4fce27ba87cf9f953dc9db83cb72
Gerrit-Change-Number: 32497
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange