aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2023-08-16 14:45:27 +0200
committerdexter <pmaier@sysmocom.de>2023-08-22 14:39:41 +0000
commit46059f081c26d4571b0082835b9748b620a51ad2 (patch)
tree6a7029fa766d631be8058e80d039fea811af2260
parent957d4a9587c8afaca1adb2abcd79703981ced23a (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.ttcn16
-rw-r--r--mme/MME_Tests.ttcn27
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() );
}
+
}