From 26a09f39bd40db856916e4593df33c3ddd9703ec Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Fri, 1 Sep 2023 14:18:33 +0200 Subject: 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 --- mme/MME_Tests.ttcn | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) 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() ); -- cgit v1.2.3