diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2023-08-16 14:45:27 +0200 |
---|---|---|
committer | dexter <pmaier@sysmocom.de> | 2023-08-22 14:39:41 +0000 |
commit | 46059f081c26d4571b0082835b9748b620a51ad2 (patch) | |
tree | 6a7029fa766d631be8058e80d039fea811af2260 | |
parent | 957d4a9587c8afaca1adb2abcd79703981ced23a (diff) |
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
-rw-r--r-- | library/s1ap/S1AP_Templates.ttcn | 16 | ||||
-rw-r--r-- | mme/MME_Tests.ttcn | 27 |
2 files changed, 40 insertions, 3 deletions
diff --git a/library/s1ap/S1AP_Templates.ttcn b/library/s1ap/S1AP_Templates.ttcn index 46ec7798..9e75cec5 100644 --- a/library/s1ap/S1AP_Templates.ttcn +++ b/library/s1ap/S1AP_Templates.ttcn @@ -251,8 +251,18 @@ tr_S1AP_ResetAck(template (present) UE_associatedLogicalS1_ConnectionListResAck } } } - - +template (present) S1AP_PDU +tr_S1AP_ResetAck_any := { + successfulOutcome := { + procedureCode := id_Reset, + criticality := reject, + value_ := { + ResetAcknowledge := { + protocolIEs := ? + } + } + } +} /********************************************************************************* @@ -938,7 +948,7 @@ tr_S1AP_MMEDirectInfTrans(template (present) Inter_SystemInformationTransferType /* 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 ebfb6738..17a4d60d 100644 --- a/mme/MME_Tests.ttcn +++ b/mme/MME_Tests.ttcn @@ -905,6 +905,31 @@ testcase TC_RIM_RAN_INF() runs on MTC_CT { 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 @@ control { execute( TC_s1ap_attach() ); execute( TC_gn_echo_request() ); execute( TC_RIM_RAN_INF() ); + execute( TC_s1ap_reset() ); } + } |