pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/41085?usp=email )


Change subject: mme: Introduce test TC_s1ap_tau_periodic
......................................................................

mme: Introduce test TC_s1ap_tau_periodic

Change-Id: I261c3421f6a082e0d610ece4cc96d3e031022891
---
M library/NAS_EPS_Templates.ttcn
M mme/ConnHdlr.ttcn
M mme/MME_Tests.ttcn
M mme/expected-results.xml
4 files changed, 87 insertions(+), 9 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/85/41085/1

diff --git a/library/NAS_EPS_Templates.ttcn b/library/NAS_EPS_Templates.ttcn
index 90c507a..d2502f0 100644
--- a/library/NAS_EPS_Templates.ttcn
+++ b/library/NAS_EPS_Templates.ttcn
@@ -585,6 +585,7 @@
 /* 8.2.29 Tracking Area Update Request */
 template (value) PDU_NAS_EPS
 ts_PDU_NAS_EPS_TrackingAreaUpdateRequest(template (value) EPS_MobileIdentityLV 
old_guti,
+                                        template (value) EPS_UpdateTypeV 
eps_update_type := ts_EPS_UpdateTypeV(c_EPS_UPD_TYPE_TA_UPD),
                                         template (value) NAS_KeySetIdentifierV 
kset_id := ts_NAS_KeySetIdentifierV,
                                         template (omit) P_TMSISignatureTV 
old_ptmsi_sig := omit,
                                         template (omit) GUTI_TypeTV 
old_guti_type := omit,
@@ -597,7 +598,7 @@
                        pDU_NAS_EPS_TrackingAreaUpdateRequest := {
                                securityHeaderType := c_EPS_SEC_NONE,
                                messageType := '01001000'B,
-                               ePSupdateType := ts_EPS_UpdateTypeV,
+                               ePSupdateType := eps_update_type,
                                nasKeySetId := kset_id,
                                oldGUTI := old_guti,
                                nonCurrentNative_nasKeySetId := omit,
diff --git a/mme/ConnHdlr.ttcn b/mme/ConnHdlr.ttcn
index 4393dfa..9612797 100644
--- a/mme/ConnHdlr.ttcn
+++ b/mme/ConnHdlr.ttcn
@@ -850,6 +850,66 @@
        }
 }

+function f_tau(BIT3 typeOfUpdate := c_EPS_UPD_TYPE_TA_UPD, boolean 
exp_sgsap_lu := false) runs on ConnHdlr {
+       var template (value) EPS_MobileIdentityV mi := 
ts_NAS_MobileId_IMSI(g_pars.ue_pars.imsi);
+       var template (value) S1AP_PDU tx;
+       var template (value) PDU_NAS_EPS nas_tau;
+       timer T := 5.0;
+
+       nas_tau := ts_PDU_NAS_EPS_TrackingAreaUpdateRequest(old_guti := 
ts_EPS_MobileId_GUTI_(g_pars.ue_pars.guti),
+                                                           eps_update_type := 
ts_EPS_UpdateTypeV(typeOfUpdate),
+                                                           kset_id := 
g_pars.kset_id);
+       tx := ts_S1AP_InitialUE(p_eNB_value := g_pars.ue_pars.enb_ue_id,
+                               p_nasPdu := enc_PDU_NAS_EPS(valueof(nas_tau)),
+                               p_tAI := 
ts_enb_S1AP_TAI(g_pars.enb_pars[g_pars.mme_idx]),
+                               p_eUTRAN_CGI := 
ts_enb_S1AP_CGI(g_pars.enb_pars[g_pars.mme_idx]),
+                               p_rrcCause := mo_Signalling);
+       S1AP.send(tx);
+
+       /* Expect updated KSI from network following 5G Core standards
+       *(open5gs.git 70310979c58fe186e9eaa06bec9d9a31f24ff7a1): */
+       if (g_pars.kset_id.identifier != c_NAS_KEY_SET_ID_NO_KEY) {
+               if (g_pars.kset_id.identifier == '110'B) {
+                       g_pars.kset_id.identifier := '000'B;
+               } else {
+                       g_pars.kset_id.identifier := 
int2bit(bit2int(g_pars.kset_id.identifier) + 1, 3);
+               }
+       }
+
+       as_DIA_AuthInfo();
+       as_s1ap_handle_auth();
+       alt {
+       [] as_DIA_UpdLoc() {
+               as_s1ap_handle_sec_mode();
+               }
+       [] as_s1ap_handle_sec_mode() {
+               as_DIA_UpdLoc();
+               }
+       }
+
+       if (exp_sgsap_lu) {
+               T.start;
+               alt {
+               [] as_sgsap_handle_lu_req(IMSI_attach);
+               [] T.timeout { Misc_Helpers.f_shutdown(__BFILE__, __LINE__, 
fail, log2str("No SGsAP message from MME")); }
+               }
+       }
+
+       T.start;
+       alt {
+       [] as_s1ap_handle_IntialCtxSetupReq_TAU_Accept();
+       [] T.timeout { Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, 
log2str("No message from MME")); }
+       }
+
+       /* We now expect the MME to send a Modify Bearer Request to the SGW-C */
+       f_gtp2_register_udmsg('22'O);
+       T.start;
+       alt {
+       [] as_GTP2C_ModifyBearer_success();
+       [] T.timeout { Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, 
log2str("No message from MME")); }
+       }
+}
+
 /******************************
  * RIM
  ******************************/
diff --git a/mme/MME_Tests.ttcn b/mme/MME_Tests.ttcn
index d4cecdc..18740bf 100644
--- a/mme/MME_Tests.ttcn
+++ b/mme/MME_Tests.ttcn
@@ -610,7 +610,8 @@

        var hexstring mcc_mnc := 
f_convert_plmn(g_pars.enb_pars[g_pars.mme_idx].global_enb_id.pLMNidentity);
        var EPS_MobileIdentityLV old_guti := 
valueof(ts_EPS_MobileId_GUTI(mcc_mnc, '0001'O, '01'O, 'AABBCCDD'O));
-       nas_tau := ts_PDU_NAS_EPS_TrackingAreaUpdateRequest(old_guti, 
g_pars.kset_id);
+       nas_tau := ts_PDU_NAS_EPS_TrackingAreaUpdateRequest(old_guti := 
old_guti,
+                                                           kset_id := 
g_pars.kset_id);

        tx := ts_S1AP_InitialUE(p_eNB_value := g_pars.ue_pars.enb_ue_id,
                                p_nasPdu := enc_PDU_NAS_EPS(valueof(nas_tau)),
@@ -645,6 +646,20 @@
        vc_conn.done;
 }

+private function f_TC_tau_periodic() runs on ConnHdlr {
+       f_attach();
+       f_tau(c_EPS_UPD_TYPE_TA_UPD_PERIODIC);
+}
+testcase TC_s1ap_tau_periodic() runs on MTC_CT {
+       f_init(10, init_diameter := true, init_gtpv2c_s11:= true);
+       f_s1ap_setup(0);
+
+       var ConnHdlrPars pars := f_init_pars(ue_idx := 0);
+       var ConnHdlr vc_conn;
+       vc_conn := f_start_handler_with_pars(refers(f_TC_tau_periodic), pars);
+       vc_conn.done;
+}
+
 private function f_TC_ue_cell_reselect_eutran_to_geran() runs on ConnHdlr {
        f_gtp_register_imsi(g_pars.ue_pars.imsi);
        f_attach();
@@ -714,12 +729,12 @@
        rai_ptmsi2_guti(rai, ptmsi, guti_val);
        old_guti := ts_EPS_MobileId_GUTI_(guti_val);

-       nas_tau := ts_PDU_NAS_EPS_TrackingAreaUpdateRequest(old_guti,
-                                                           g_pars.kset_id,
-                                                           
ts_PTMSI_SignatureTV(ptmsi_sig),
-                                                           
ts_GUTI_TypeTV(GUTI_TYPE_MAPPED),
-                                                           
ts_NonceTV('12345678'O),
-                                                           
ts_CipheringKeySequenceNumberTV('000'B),
+       nas_tau := ts_PDU_NAS_EPS_TrackingAreaUpdateRequest(old_guti := 
old_guti,
+                                                           kset_id := 
g_pars.kset_id,
+                                                           old_ptmsi_sig := 
ts_PTMSI_SignatureTV(ptmsi_sig),
+                                                           old_guti_type := 
ts_GUTI_TypeTV(GUTI_TYPE_MAPPED),
+                                                           nonce_ue := 
ts_NonceTV('12345678'O),
+                                                           gprs_cksn := 
ts_CipheringKeySequenceNumberTV('000'B),
                                                            ue_net_cap := 
ue_net_cap);
        tx := ts_S1AP_InitialUE(p_eNB_value := g_pars.ue_pars.enb_ue_id,
                                p_nasPdu := enc_PDU_NAS_EPS(valueof(nas_tau)),
@@ -778,6 +793,7 @@
        execute( TC_s1ap_setup() );
        execute( TC_s1ap_attach() );
        execute( TC_s1ap_tau_unknown_guti() );
+       execute( TC_s1ap_tau_periodic() );
        execute( TC_gn_echo_request() );
        execute( TC_RIM_RAN_INF() );
        execute( TC_s1ap_reset() );
diff --git a/mme/expected-results.xml b/mme/expected-results.xml
index 2e733c4..694b119 100644
--- a/mme/expected-results.xml
+++ b/mme/expected-results.xml
@@ -1,10 +1,11 @@
 <?xml version="1.0"?>
-<testsuite name='Titan' tests='16' failures='0' errors='0' skipped='0' 
inconc='0' time='MASKED'>
+<testsuite name='Titan' tests='17' failures='0' errors='0' skipped='0' 
inconc='0' time='MASKED'>
   <testcase classname='MME_Tests' 
name='TC_s1ap_setup_unknown_global_enb_id_plmn' time='MASKED'/>
   <testcase classname='MME_Tests' name='TC_s1ap_setup_wrong_tac' 
time='MASKED'/>
   <testcase classname='MME_Tests' name='TC_s1ap_setup' time='MASKED'/>
   <testcase classname='MME_Tests' name='TC_s1ap_attach' time='MASKED'/>
   <testcase classname='MME_Tests' name='TC_s1ap_tau_unknown_guti' 
time='MASKED'/>
+  <testcase classname='MME_Tests' name='TC_s1ap_tau_periodic' time='MASKED'/>
   <testcase classname='MME_Tests' name='TC_gn_echo_request' time='MASKED'/>
   <testcase classname='MME_Tests' name='TC_RIM_RAN_INF' time='MASKED'/>
   <testcase classname='MME_Tests' name='TC_s1ap_reset' time='MASKED'/>

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

Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I261c3421f6a082e0d610ece4cc96d3e031022891
Gerrit-Change-Number: 41085
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>

Reply via email to