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 <[email protected]>
Gerrit-MessageType: newchange

Reply via email to