pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/41086?usp=email )
Change subject: mme: Fix implementation of TC_sgsap_alert* ......................................................................
mme: Fix implementation of TC_sgsap_alert*
Change-Id: I717c6f153ae77874170bf03e7a6c7bb628d12dba --- M mme/ConnHdlr.ttcn M mme/MME_Tests_SGsAP.ttcn 2 files changed, 35 insertions(+), 17 deletions(-)
Approvals: pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve
diff --git a/mme/ConnHdlr.ttcn b/mme/ConnHdlr.ttcn index 90e4366..ab97983 100644 --- a/mme/ConnHdlr.ttcn +++ b/mme/ConnHdlr.ttcn @@ -1122,20 +1122,20 @@ setverdict(pass); } [exp_success] SGsAP.receive(tr_SGsAP_PAGING_REJ(g_pars.ue_pars.imsi, ?)) { - setverdict(fail, "Received unexpected PAGING REJECT"); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Received unexpected PAGING REJECT"); } /* we expect failure */ [not exp_success] SGsAP.receive(tr_SGsAP_SERVICE_REQ(g_pars.ue_pars.imsi, serv_ind, ?)) { - setverdict(fail, "Received SERVICE REQ waiting for PAGING REJECT"); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Received SERVICE REQ waiting for PAGING REJECT"); } [not exp_success] SGsAP.receive(tr_SGsAP_PAGING_REJ(g_pars.ue_pars.imsi, exp_cause)) { setverdict(pass); } [not exp_success] SGsAP.receive(tr_SGsAP_PAGING_REJ(g_pars.ue_pars.imsi, ?)) { - setverdict(fail, "Received unexpected PAGING REJECT cause"); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Received unexpected PAGING REJECT cause"); } [] SGsAP.receive { - setverdict(fail, "Received unexpected SGsAP"); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Received unexpected SGsAP"); } } } diff --git a/mme/MME_Tests_SGsAP.ttcn b/mme/MME_Tests_SGsAP.ttcn index a662c13..f028316 100644 --- a/mme/MME_Tests_SGsAP.ttcn +++ b/mme/MME_Tests_SGsAP.ttcn @@ -1,6 +1,6 @@ module MME_Tests_SGsAP {
-/* Osmocom MME test suite in in TTCN-3, SGsAP related procedures (3GPP TS 23.272) +/* Osmocom MME test suite in in TTCN-3, SGsAP related procedures (3GPP TS 29.118, 3GPP TS 23.272) * (C) 2019 Harald Welte laforge@gnumonks.org * All rights reserved. * @@ -16,10 +16,13 @@
import from General_Types all; import from Osmocom_Types all; +import from Misc_Helpers all; import from L3_Templates all; import from DNS_Helpers all; import from MME_Tests all;
+import from NAS_EPS_Templates all; + import from ConnHdlr all;
/* performa SGs reset procedure */ @@ -97,17 +100,32 @@
/* Send ALERT-REQ to MME; perform S1AP activity; expect ALERT-ACK on SGs */ private function f_TC_sgsap_alert() runs on ConnHdlr { - /* TODO: register subscriber on S1 */ + f_attach('010'B /*= Combined EPS IMSI Attach*/, exp_sgsap_lu := true); f_sgsap_alert(omit); - /* TOOD: do something on S1 triggering UE ACT IND */ - SGsAP.receive(tr_SGsAP_UE_ACT_IND(g_pars.ue_pars.imsi)); + + /* Do something on S1 triggering UE ACT IND. non-combined TAU shouldn't + * trigger a non-EPS-related procedure and hence a SGsAP-UE-ACTIVITY-IND + * should be sent: */ + f_tau(c_EPS_UPD_TYPE_TA_UPD_PERIODIC, exp_sgsap_lu := false); + + timer T := 5.0; + T.start; + alt { + [] SGsAP.receive(tr_SGsAP_UE_ACT_IND(g_pars.ue_pars.imsi)) { + setverdict(pass); + } + [] T.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Rx no SGsAP-UE-ACTIVITY-INDICATION from MME!")); + } + }; } testcase TC_sgsap_alert() runs on MTC_CT { - var ConnHdlrPars pars; - var ConnHdlr vc_conn; - f_init(1005, init_sgsap := true); - pars := f_init_pars(ue_idx := 0); - vc_conn := f_start_handler_with_pars(refers(f_TC_sgsap_alert), pars); + f_init(1005, init_diameter := true, init_gtpv2c_s11 := true, init_sgsap := true); + f_s1ap_setup(0); + + var ConnHdlrPars pars := f_init_pars(ue_idx := 0); + var ConnHdlr vc_conn := f_start_handler_with_pars(refers(f_TC_sgsap_alert), pars); vc_conn.done; }
@@ -117,11 +135,11 @@ f_sgsap_alert(IMSI_unknown); } testcase TC_sgsap_alert_rej() runs on MTC_CT { - var ConnHdlrPars pars; - var ConnHdlr vc_conn; f_init(1006, init_sgsap := true); - pars := f_init_pars(ue_idx := 0); - vc_conn := f_start_handler_with_pars(refers(f_TC_sgsap_alert_rej), pars); + f_s1ap_setup(0); + + var ConnHdlrPars pars := f_init_pars(ue_idx := 0); + var ConnHdlr vc_conn := f_start_handler_with_pars(refers(f_TC_sgsap_alert_rej), pars); vc_conn.done; }