lynxis lazus has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38398?usp=email )

 (

8 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted 
one.
 )Change subject: SGSN: BSSGP_ConnHdlr: f_gmm_attach(): allow the SGSN to 
request the IMEI
......................................................................

SGSN: BSSGP_ConnHdlr: f_gmm_attach(): allow the SGSN to request the IMEI

The IMEI might be requested when the GMM Attach happen.

Change-Id: Id49c9e6ef7517a6a831315ac1f9915c50b88beb6
---
M sgsn/BSSGP_ConnHdlr.ttcn
1 file changed, 31 insertions(+), 21 deletions(-)

Approvals:
  Jenkins Builder: Verified
  fixeria: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve




diff --git a/sgsn/BSSGP_ConnHdlr.ttcn b/sgsn/BSSGP_ConnHdlr.ttcn
index c5501aa..40cb6b6 100644
--- a/sgsn/BSSGP_ConnHdlr.ttcn
+++ b/sgsn/BSSGP_ConnHdlr.ttcn
@@ -237,18 +237,8 @@
        }
 }

-altstep as_mm_identity(integer ran_index := 0) runs on BSSGP_ConnHdlr {
+altstep as_mm_identity_imei(integer ran_index := 0) runs on BSSGP_ConnHdlr {
        var MobileIdentityLV mi;
-       [is_gb(ran_index)] BSSGP[ran_index].receive(tr_GMM_ID_REQ('001'B)) {
-               mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));
-               f_send_l3(ts_GMM_ID_RESP(mi), ran_index);
-               repeat;
-       }
-       [is_iu(ran_index)] 
BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_ID_REQ('001'B))) {
-               mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));
-               f_send_l3(ts_GMM_ID_RESP(mi), ran_index);
-               repeat;
-       }
        [is_gb(ran_index)] BSSGP[ran_index].receive(tr_GMM_ID_REQ('010'B)) {
                mi := valueof(ts_MI_IMEI_LV(g_pars.imei));
                f_send_l3(ts_GMM_ID_RESP(mi), ran_index);
@@ -261,18 +251,33 @@
        }
 }

+altstep as_mm_identity_imsi(integer ran_index := 0) runs on BSSGP_ConnHdlr {
+       var MobileIdentityLV mi;
+       [is_gb(ran_index)] BSSGP[ran_index].receive(tr_GMM_ID_REQ('001'B)) {
+               mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));
+               f_send_l3(ts_GMM_ID_RESP(mi), ran_index);
+               repeat;
+       }
+       [is_iu(ran_index)] 
BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_ID_REQ('001'B))) {
+               mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));
+               f_send_l3(ts_GMM_ID_RESP(mi), ran_index);
+               repeat;
+       }
+}
+
+altstep as_mm_identity(integer ran_index := 0) runs on BSSGP_ConnHdlr {
+       [] as_mm_identity_imsi(ran_index);
+       [] as_mm_identity_imei(ran_index);
+}
+
 /* receive a L3 (GMM/SM) message over whatever is the appropriate lower-layer 
bearer */
-function f_receive_l3(template PDU_L3_SGSN_MS rx_tpl := ?, integer ran_index 
:= 0)
-runs on BSSGP_ConnHdlr return PDU_L3_SGSN_MS {
+altstep as_receive_l3(template PDU_L3_SGSN_MS rx_tpl, inout PDU_L3_SGSN_MS 
l3_mt, integer ran_index := 0)
+runs on BSSGP_ConnHdlr {
        var PDU_DTAP_PS_MT mt;
-       var PDU_L3_SGSN_MS l3_mt;
-       alt {
        [is_gb(ran_index)] BSSGP[ran_index].receive(rx_tpl) -> value l3_mt { }
        [is_iu(ran_index)] BSSAP.receive(tr_PDU_DTAP_PS_MT(rx_tpl)) -> value mt 
{
                l3_mt := mt.dtap;
-               }
        }
-       return l3_mt;
 }

 /* (copied from msc/BSC_ConnectionHandler.ttcn) */
@@ -423,7 +428,7 @@

                var template PDU_L3_SGSN_MS auth_ciph_req := 
tr_GMM_AUTH_REQ(g_pars.vec.rand);
                
auth_ciph_req.msgs.gprs_mm.authenticationAndCipheringRequest.authenticationParameterAUTN
 := autn;
-               l3_mt := f_receive_l3(auth_ciph_req, ran_index);
+               as_receive_l3(auth_ciph_req, l3_mt, ran_index);
                var BIT4 ac_ref := 
l3_mt.msgs.gprs_mm.authenticationAndCipheringRequest.acReferenceNumber.valueField;
                var template (value) PDU_L3_MS_SGSN auth_ciph_resp := 
ts_GMM_AUTH_RESP_2G(ac_ref, g_pars.vec.sres);

@@ -550,7 +555,8 @@
 }

 function f_gmm_attach(boolean umts_aka_challenge, boolean force_gsm_sres, 
integer ran_index := 0,
-                            template (omit) RoutingAreaIdentificationV old_ra 
:= omit) runs on BSSGP_ConnHdlr {
+                            template (omit) RoutingAreaIdentificationV old_ra 
:= omit,
+                            boolean allow_id_imei_req := false) runs on 
BSSGP_ConnHdlr {
        var RoutingAreaIdentificationV old_ra_val;
        var template (value) PDU_L3_MS_SGSN attach_req;
        var PDU_L3_SGSN_MS l3_mt;
@@ -574,8 +580,12 @@
        /* Expect SGSN to perform LU with HLR */
        as_gmm_gsup_lu_isd();

-       l3_mt := f_receive_l3(tr_GMM_ATTACH_ACCEPT('001'B, ?, ?), ran_index);
-       f_process_attach_accept(l3_mt.msgs.gprs_mm.attachAccept, ran_index);
+       alt {
+               [allow_id_imei_req] as_mm_identity_imei(ran_index) { repeat; }
+               [] as_receive_l3(tr_GMM_ATTACH_ACCEPT('001'B, ?, ?), l3_mt, 
ran_index) {
+                       
f_process_attach_accept(l3_mt.msgs.gprs_mm.attachAccept, ran_index)
+                       }
+       }

        /* FIXME: Extract P-TMSI, if any. Only send Complete if necessary */
        f_send_l3(ts_GMM_ATTACH_COMPL, ran_index);

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38398?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Id49c9e6ef7517a6a831315ac1f9915c50b88beb6
Gerrit-Change-Number: 38398
Gerrit-PatchSet: 11
Gerrit-Owner: lynxis lazus <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <[email protected]>
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: lynxis lazus <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>

Reply via email to