summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2023-05-19 19:14:16 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2023-05-22 16:12:09 +0200
commit2dfa84e73dca455900e6522f61f5c610077783b7 (patch)
treef4bab101fc188c06d1b86b997f72086afc5a00f9
parent8bd2e644b5d1a65544979bcd38fc3c7373dbdb2f (diff)
layer23: modem: pass SIM-stored PTMSI (signature) & RAI to GMM
-rw-r--r--src/host/layer23/src/modem/gmm.c2
-rw-r--r--src/host/layer23/src/modem/sm.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/host/layer23/src/modem/gmm.c b/src/host/layer23/src/modem/gmm.c
index d3851e0a..5445672d 100644
--- a/src/host/layer23/src/modem/gmm.c
+++ b/src/host/layer23/src/modem/gmm.c
@@ -193,10 +193,12 @@ int modem_gmm_gmmreg_attach_req(const struct osmocom_ms *ms)
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->gprs.ptmsi;
+ gmm_prim->gmmreg.attach_req.ptmsi_sig = subscr->gprs.ptmsi_sig;
gmm_prim->gmmreg.attach_req.attach_with_imsi = (subscr->gprs.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));
+ memcpy(&gmm_prim->gmmreg.attach_req.old_rai, &subscr->gprs.rai, sizeof(subscr->gprs.rai));
rc = osmo_gprs_gmm_prim_upper_down(gmm_prim);
if (rc < 0)
LOGP(DMM, LOGL_ERROR, "Failed submitting GMMREG-ATTACH.req\n");
diff --git a/src/host/layer23/src/modem/sm.c b/src/host/layer23/src/modem/sm.c
index e6591a9c..9b3a35b6 100644
--- a/src/host/layer23/src/modem/sm.c
+++ b/src/host/layer23/src/modem/sm.c
@@ -258,9 +258,11 @@ int modem_sm_smreg_pdp_act_req(const struct osmocom_ms *ms, const struct osmobb_
sm_prim->smreg.pdp_act_req.pco_len = apn->pdp.pco_len;
OSMO_STRLCPY_ARRAY(sm_prim->smreg.pdp_act_req.apn, apn->cfg.name);
sm_prim->smreg.pdp_act_req.gmm.ptmsi = subscr->gprs.ptmsi;
+ sm_prim->smreg.pdp_act_req.gmm.ptmsi_sig = subscr->gprs.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);
+ memcpy(&sm_prim->smreg.pdp_act_req.gmm.old_rai, &subscr->gprs.rai, sizeof(subscr->gprs.rai));
rc = osmo_gprs_sm_prim_upper_down(sm_prim);
if (rc < 0)