dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34156 )
Change subject: MME_Tests: add testcase TC_s1ap_reset ......................................................................
MME_Tests: add testcase TC_s1ap_reset
There is currently no testcase that makes sure that the S1AP reset works.
Related: OS#5760 Change-Id: I23f4d5f2c39790b6cb0dacaec1e31912177af3ec --- M library/s1ap/S1AP_Templates.ttcn M mme/MME_Tests.ttcn 2 files changed, 53 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/56/34156/1
diff --git a/library/s1ap/S1AP_Templates.ttcn b/library/s1ap/S1AP_Templates.ttcn index 46ec779..9e75cec 100644 --- a/library/s1ap/S1AP_Templates.ttcn +++ b/library/s1ap/S1AP_Templates.ttcn @@ -251,8 +251,18 @@ } } } - - +template (present) S1AP_PDU +tr_S1AP_ResetAck_any := { + successfulOutcome := { + procedureCode := id_Reset, + criticality := reject, + value_ := { + ResetAcknowledge := { + protocolIEs := ? + } + } + } +}
/********************************************************************************* @@ -938,7 +948,7 @@ /* all non-UE-related S1AP messages */ template (present) S1AP_PDU tr_S1AP_nonUErelated := (tr_S1AP_SetupReq, tr_S1AP_SetupResp, tr_S1AP_SetupFail, - tr_S1AP_Reset, tr_S1AP_ResetAck, tr_S1AP_MMEDirectInfTrans + tr_S1AP_Reset, tr_S1AP_ResetAck, tr_S1AP_ResetAck_any, tr_S1AP_MMEDirectInfTrans );
} diff --git a/mme/MME_Tests.ttcn b/mme/MME_Tests.ttcn index ebfb673..17a4d60 100644 --- a/mme/MME_Tests.ttcn +++ b/mme/MME_Tests.ttcn @@ -905,6 +905,31 @@ vc_conn.done; }
+/* Successful RESET procedure from eNB to MME */ +testcase TC_s1ap_reset() runs on MTC_CT { + var charstring id := testcasename(); + f_init_s1ap(id, 3); + f_s1ap_setup(0); + + var template (value) Cause reset_cause := {misc := om_intervention}; + var template (value) ResetType reset_type := {s1_Interface := reset_all}; + timer T := 5.0; + + S1AP_UNIT[0].send(ts_S1AP_Reset(reset_cause, reset_type)); + T.start; + alt { + [] S1AP_UNIT[0].receive(tr_S1AP_ResetAck_any) { + setverdict(pass); + } + [] S1AP_UNIT[0].receive { + setverdict(fail, "Received unexpected S1AP"); + } + [] T.timeout { + setverdict(fail, "Timeout waiting for S1AP Setup result"); + } + } +} + control { execute( TC_s1ap_setup_wrong_plmn() ); execute( TC_s1ap_setup_wrong_tac() ); @@ -912,6 +937,8 @@ execute( TC_s1ap_attach() ); execute( TC_gn_echo_request() ); execute( TC_RIM_RAN_INF() ); + execute( TC_s1ap_reset() ); }
+ }