pespin has uploaded this change for review.
sm: Forward forth and back the P-TMSI signature
Change-Id: Ia69b6f885d612c42ab015822031e4c7262f4714e
---
M include/osmocom/gprs/sm/sm_prim.h
M include/osmocom/gprs/sm/sm_private.h
M src/sm/sm.c
M src/sm/sm_prim.c
4 files changed, 16 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/03/32803/1
diff --git a/include/osmocom/gprs/sm/sm_prim.h b/include/osmocom/gprs/sm/sm_prim.h
index d9be348..d4e17a4 100644
--- a/include/osmocom/gprs/sm/sm_prim.h
+++ b/include/osmocom/gprs/sm/sm_prim.h
@@ -65,6 +65,7 @@
uint8_t pco_len;
struct {
uint32_t ptmsi;
+ uint32_t ptmsi_sig;
bool attach_with_imsi;
char imsi[OSMO_IMSI_BUF_SIZE];
char imei[GSM23003_IMEI_NUM_DIGITS + 1];
@@ -89,6 +90,7 @@
uint8_t qos_len;
struct {
uint32_t allocated_ptmsi;
+ uint32_t allocated_ptmsi_sig;
uint32_t allocated_tlli;
struct gprs_ra_id rai;
} gmm;
diff --git a/include/osmocom/gprs/sm/sm_private.h b/include/osmocom/gprs/sm/sm_private.h
index 6bf456f..98eaf79 100644
--- a/include/osmocom/gprs/sm/sm_private.h
+++ b/include/osmocom/gprs/sm/sm_private.h
@@ -127,6 +127,7 @@
struct {
uint32_t ptmsi;
+ uint32_t ptmsi_sig;
uint32_t tlli;
char imsi[OSMO_IMSI_BUF_SIZE];
char imei[GSM23003_IMEI_NUM_DIGITS + 1];
diff --git a/src/sm/sm.c b/src/sm/sm.c
index c5520bf..79fbc7d 100644
--- a/src/sm/sm.c
+++ b/src/sm/sm.c
@@ -193,6 +193,7 @@
gmm_prim_tx->gmmsm.establish_req.attach_type = OSMO_GPRS_GMM_ATTACH_TYPE_GPRS;
gmm_prim_tx->gmmsm.establish_req.attach_with_imsi = (ms->gmm.ptmsi == GSM_RESERVED_TMSI);
gmm_prim_tx->gmmsm.establish_req.ptmsi = ms->gmm.ptmsi;
+ gmm_prim_tx->gmmsm.establish_req.ptmsi_sig = ms->gmm.ptmsi_sig;
OSMO_STRLCPY_ARRAY(gmm_prim_tx->gmmsm.establish_req.imsi, ms->gmm.imsi);
OSMO_STRLCPY_ARRAY(gmm_prim_tx->gmmsm.establish_req.imei, ms->gmm.imei);
OSMO_STRLCPY_ARRAY(gmm_prim_tx->gmmsm.establish_req.imeisv, ms->gmm.imeisv);
@@ -224,6 +225,7 @@
if (sme->qos_len)
memcpy(sm_prim_tx->smreg.pdp_act_cnf.acc.qos, &sme->qos, sme->qos_len);
sm_prim_tx->smreg.pdp_act_cnf.acc.gmm.allocated_ptmsi = sme->ms->gmm.ptmsi;
+ sm_prim_tx->smreg.pdp_act_cnf.acc.gmm.allocated_ptmsi_sig = sme->ms->gmm.ptmsi_sig;
sm_prim_tx->smreg.pdp_act_cnf.acc.gmm.allocated_tlli = sme->ms->gmm.tlli;
memcpy(&sm_prim_tx->smreg.pdp_act_cnf.acc.gmm.rai, &sme->ms->gmm.ra, sizeof(sme->ms->gmm.ra));
} else {
diff --git a/src/sm/sm_prim.c b/src/sm/sm_prim.c
index ea84d3e..158959e 100644
--- a/src/sm/sm_prim.c
+++ b/src/sm/sm_prim.c
@@ -270,6 +270,7 @@
/* Info required to establish GMM: */
ms->gmm.ptmsi = sm_prim->smreg.pdp_act_req.gmm.ptmsi;
+ ms->gmm.ptmsi_sig = sm_prim->smreg.pdp_act_req.gmm.ptmsi_sig;
if (sm_prim->smreg.pdp_act_req.gmm.imsi[0] != '\0')
OSMO_STRLCPY_ARRAY(ms->gmm.imsi, sm_prim->smreg.pdp_act_req.gmm.imsi);
if (sm_prim->smreg.pdp_act_req.gmm.imei[0] != '\0')
@@ -479,6 +480,7 @@
/* Update allocated PTMSI: */
if (gmm_prim->gmmsm.establish_cnf.acc.allocated_ptmsi != GSM_RESERVED_TMSI)
sme->ms->gmm.ptmsi = gmm_prim->gmmsm.establish_cnf.acc.allocated_ptmsi;
+ sme->ms->gmm.ptmsi_sig = gmm_prim->gmmsm.establish_cnf.acc.allocated_ptmsi_sig;
/* Set allocated TLLI: */
sme->ms->gmm.tlli = gmm_prim->gmmsm.establish_cnf.acc.allocated_tlli;
/* Set the current RAI: */
To view, visit change 32803. To unsubscribe, or for help writing mail filters, visit settings.