aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2023-09-01 14:18:33 +0200
committerPhilipp Maier <pmaier@sysmocom.de>2023-09-01 17:23:45 +0200
commit26a09f39bd40db856916e4593df33c3ddd9703ec (patch)
tree7eddb98f701e2779cae9d48078f6a9b73184f72a
parentc1d9ef06e29e75eea1fa5c9b9e6eb8cb0a3fd39b (diff)
MME_Tests: add new testcase TC_s1ap_tau_unknown_guti
A tracking area update that contains an OldGUTI (TMSI) that is unknown to the MME should be rejected. Related: OS#5760 Change-Id: I9306fea69ac930b9642528e2fd32a7091147081e
-rw-r--r--mme/MME_Tests.ttcn49
1 files changed, 49 insertions, 0 deletions
diff --git a/mme/MME_Tests.ttcn b/mme/MME_Tests.ttcn
index 2db5b01c..104c3d20 100644
--- a/mme/MME_Tests.ttcn
+++ b/mme/MME_Tests.ttcn
@@ -964,11 +964,60 @@ testcase TC_s1ap_reset() runs on MTC_CT {
}
}
+/* Tracking area update with a GUTI (TMSI) that is unknown to the MME. The MME is expected to reject this TAU
+ * request. */
+private function f_TC_tau_unknown_guti(ConnHdlrPars pars) runs on ConnHdlr {
+
+ f_init_handler(pars);
+ var template (value) EPS_MobileIdentityV mi := ts_NAS_MobileId_IMSI(pars.ue_pars.imsi);
+ var template (value) S1AP_PDU tx;
+ var template (value) PDU_NAS_EPS nas_tau;
+ timer T := 5.0;
+
+ 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);
+
+ tx := ts_S1AP_InitialUE(p_eNB_value := 0, 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);
+
+ T.start;
+ alt {
+ [] S1AP.receive(tr_PDU_NAS_EPS_TrackingAreaUpdateReject) {
+ setverdict(pass);
+ }
+ [] S1AP.receive {
+ setverdict(fail, "unexpected S1AP message from MME");
+ }
+ [] T.timeout {
+ setverdict(fail, "no message from MME");
+ }
+ }
+
+}
+testcase TC_s1ap_tau_unknown_guti() runs on MTC_CT {
+ var charstring id := testcasename();
+
+ f_init_diameter(id);
+ f_init_s1ap(id, 4);
+ 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_unknown_guti), pars);
+ vc_conn.done;
+}
+
control {
execute( TC_s1ap_setup_wrong_plmn() );
execute( TC_s1ap_setup_wrong_tac() );
execute( TC_s1ap_setup() );
execute( TC_s1ap_attach() );
+ execute( TC_s1ap_tau_unknown_guti() );
execute( TC_gn_echo_request() );
execute( TC_RIM_RAN_INF() );
execute( TC_s1ap_reset() );