summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpintar <info@etsi.org>2017-05-11 14:43:46 +0000
committerpintar <info@etsi.org>2017-05-11 14:43:46 +0000
commitdbd802e603f22d47fa529124d4468cc79bc5cd9c (patch)
treea324ce19ea8f8e5d3caf94ce70fa357c4f90b674
parent2225145cb41cb2cadbad284912ed91a523998dbf (diff)
MME_HAS_04-16 tests and related templates added
-rw-r--r--ttcn3/LibS1AP/LibS1AP_Steps.ttcn40
-rw-r--r--ttcn3/LibS1AP/LibS1AP_Templates.ttcn144
-rw-r--r--ttcn3/S1AP_TCFunctions.ttcn181
3 files changed, 363 insertions, 2 deletions
diff --git a/ttcn3/LibS1AP/LibS1AP_Steps.ttcn b/ttcn3/LibS1AP/LibS1AP_Steps.ttcn
index 2e0efb4..7d54ec1 100644
--- a/ttcn3/LibS1AP/LibS1AP_Steps.ttcn
+++ b/ttcn3/LibS1AP/LibS1AP_Steps.ttcn
@@ -241,6 +241,27 @@ module LibS1AP_Steps {
) runs on S1APComponent {
f_recv_S1AP_initiatingMessage(mw_HandoverCancel(p_value))
} // End of function f_recv_HandoverCancel
+
+ /**
+ * @desc Receive S1AP Message Handover CancelAcknowledge
+ * @param p_value Receive template for Handover Cancel Acknowledge IEs
+ */
+ function f_recv_HandoverCancelAck(in template (present) RecordOf_ProtocolIE p_value :=?
+ ) runs on S1APComponent {
+ f_recv_S1AP_successfulOutcome(mw_HandoverCancelAck(p_value))
+ } // End of function f_recv_HandoverCancelAck
+
+ /**
+ * @desc Receive S1AP Message MME STATUS TRANSFER
+ * @param p_value Receive template for MME_STATUS_TRANSFER IEs
+ * @see ETSI TS 136 413 V13.4.0 Clause 9.1.5.14 MME STATUS TRANSFER
+ */
+ function f_recv_Mme_Status_Transfer(
+ template (present) RecordOf_ProtocolIE p_value := ?
+ ) runs on S1APComponent {
+ f_recv_S1AP_initiatingMessage(mw_Mme_Status_Transfer(p_value))
+ } // End of f_recv_Mme_Status_Transfer
+
/**
* @desc Receive S1AP Message Handover Notify
@@ -1115,6 +1136,15 @@ module LibS1AP_Steps {
} // End of function f_send_HandoverRequest
/**
+ * @desc Send S1AP Message f_send_HandoverCancel
+ * @param p_value Send template with IE for HandoverCancel
+ */
+ function f_send_HandoverCancel(in template (value) RecordOf_ProtocolIE p_value
+ ) runs on S1APComponent {
+ f_send_S1AP_initiatingMessage(m_HandoverCancel(p_value))
+ } // End of function f_send_HandoverCancel
+
+ /**
* @desc Send S1AP Message Handover Cancel Acknowledge
* @param p_value Send template with IE for Handover Cancel Acknowledge
*/
@@ -1123,6 +1153,16 @@ module LibS1AP_Steps {
) runs on S1APComponent {
f_send_S1AP_successfulOutcome(m_HandoverCancelAck(p_value))
} // End of function f_send_HandoverCancelAcknowledge
+
+ /**
+ * @desc Send S1AP Message ENB STATUS TRANSFER
+ * @param p_value Send template with IE for ENB STATUS TRANSFER
+ */
+ function f_send_eNB_Status_Transfer(
+ in template (value) RecordOf_ProtocolIE p_value
+ ) runs on S1APComponent {
+ f_send_S1AP_initiatingMessage(m_eNB_Status_Transfer(p_value))
+ } // End of function f_send_eNB_Status_Transfer
/**
* @desc Send S1AP Message Handover Command
diff --git a/ttcn3/LibS1AP/LibS1AP_Templates.ttcn b/ttcn3/LibS1AP/LibS1AP_Templates.ttcn
index 7a32210..c5df1ab 100644
--- a/ttcn3/LibS1AP/LibS1AP_Templates.ttcn
+++ b/ttcn3/LibS1AP/LibS1AP_Templates.ttcn
@@ -231,9 +231,30 @@ module LibS1AP_Templates {
}// End of group HandoverResourceAllocation
group HandoverCancelation{
+
+ /**
+ * @desc Send template for InitiatingMessage message with Handover Cancel payload
+ * @param p_value The protocol information elements.
+ */
+ template (value) InitiatingMessage m_HandoverCancel(
+ template (value) RecordOf_ProtocolIE p_value) := {
+ procedureCode := id_HandoverCancel,
+ criticality := reject,
+ value_ := {RecordOf_ProtocolIE := p_value}
+ } // End of template m_HandoverCancel
+ template (value) RecordOf_ProtocolIE m_HandoverCancelIEs(
+ in template (value) MME_UE_S1AP_ID p_MME_value,
+ in template (value) ENB_UE_S1AP_ID p_eNB_value,
+ in template (value) Cause p_cause_value
+ ) := {
+ m_MME_UE_S1AP_ID(p_MME_value),
+ m_eNB_UE_S1AP_ID(p_eNB_value),
+ m_cause_IE(p_cause_value)
+ } // End of template m_HandoverCancelIEs
+
/**
- * @desc Receive template for SuccessfulOutcome message with Handover Cancel Acknowledge payload
+ * @desc Send template for SuccessfulOutcome message with Handover Cancel Acknowledge payload
* @param p_value The protocol information elements.
*/
template (value) SuccessfulOutcome m_HandoverCancelAck(
@@ -250,6 +271,27 @@ module LibS1AP_Templates {
m_MME_UE_S1AP_ID(p_MME_value),
m_eNB_UE_S1AP_ID(p_eNB_value)
} // End of template m_HandoverCancelAckIEs
+
+ /**
+ * @desc Send template for InitiatingMessage message with eNB_Status_Transfer payload
+ * @param p_value The protocol information elements.
+ */
+ template (value) InitiatingMessage m_eNB_Status_Transfer(
+ template (value) RecordOf_ProtocolIE p_value) := {
+ procedureCode := id_eNBStatusTransfer,
+ criticality := ignore,
+ value_ := {RecordOf_ProtocolIE := p_value}
+ } // End of template m_eNB_Status_Transfer
+
+ template (value) RecordOf_ProtocolIE m_eNB_Status_TransferIEs(
+ in template (value) MME_UE_S1AP_ID p_MME_value,
+ in template (value) ENB_UE_S1AP_ID p_eNB_value,
+ in template (value) ENB_StatusTransfer_TransparentContainer p_enb_stc_value
+ ) := {
+ m_MME_UE_S1AP_ID(p_MME_value),
+ m_eNB_UE_S1AP_ID(p_eNB_value),
+ m_eNBStatusTransferTransparentContainer_IE(p_enb_stc_value)
+ } // End of template m_eNB_Status_TransferIEs
}// End of group HandoverCancelation
@@ -1305,7 +1347,48 @@ module LibS1AP_Templates {
mw_eNB_UE_S1AP_ID(p_eNB_value),
mw_cause_IE(p_Cause_value)
} // End of template mw_HandoverCancelIEs
-
+
+ /**
+ * @desc Receive template for SuccessfulOutcome message with Handover Cancel Acknowledge payload
+ * @param p_value The expected protocol information elements. Default: ?
+ */
+ template (present) SuccessfulOutcome mw_HandoverCancelAck(
+ template (present) RecordOf_ProtocolIE p_value) := {
+ procedureCode := id_HandoverCancel,
+ criticality := reject,
+ value_ := {RecordOf_ProtocolIE := p_value}
+ } // End of template mw_HandoverCancelAck
+
+ template (present) RecordOf_ProtocolIE mw_HandoverCancelAckIEs(
+ template (present) MME_UE_S1AP_ID p_MME_value := ?,
+ template (present) ENB_UE_S1AP_ID p_eNB_value := ?
+ ) := {
+ mw_MME_UE_S1AP_ID(p_MME_value),
+ mw_eNB_UE_S1AP_ID(p_eNB_value)
+ } // End of template mw_HandoverCancelAckIEs
+
+
+ /**
+ * @desc Receive template for InitiatingMessage message with Mme_Status_Transfer payload
+ * @param p_value The expected protocol information elements. Default: ?
+ */
+ template (present) InitiatingMessage mw_Mme_Status_Transfer(
+ template (present) RecordOf_ProtocolIE p_value) := {
+ procedureCode := id_MMEStatusTransfer,
+ criticality := reject,
+ value_ := {RecordOf_ProtocolIE := p_value}
+ } // End of template mw_HandoverCancel
+
+ template (present) RecordOf_ProtocolIE mw_Mme_Status_TransferIEs(
+ template (present) MME_UE_S1AP_ID p_MME_value := ?,
+ template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
+ template (present) ENB_StatusTransfer_TransparentContainer p_enb_stc_value := ?
+ ) := {
+ mw_MME_UE_S1AP_ID(p_MME_value),
+ mw_eNB_UE_S1AP_ID(p_eNB_value),
+ mw_eNBStatusTransferTransparentContainer_IE(p_enb_stc_value)
+ } // End of template mw_Mme_Status_TransferIEs
+
}// End of group HandoverCancelation
group PathSwitchRequest{
@@ -4004,8 +4087,65 @@ module LibS1AP_Templates {
criticality := p_criticality,
value_ := {NASSecurityParameterstoE_UTRAN := valueof(p_value)}
} // End of template m_nasSecurityParametersToEutran_IE
+
+ /**
+ * @desc receive template for eNBStatusTransferTransparentContainer IE
+ * @param p_value eNBStatusTransferTransparentContainer value
+ * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.31 eNBStatusTransferTransparentContainer
+ */
+ template (value) ProtocolIE m_eNBStatusTransferTransparentContainer_IE(
+ in template (value) ENB_StatusTransfer_TransparentContainer p_value,
+ in template (value) ProtocolIE.criticality p_criticality := reject
+ ) := {
+ id := S1AP_Constants.id_eNB_StatusTransfer_TransparentContainer,
+ criticality := p_criticality,
+ value_ := {ENB_StatusTransfer_TransparentContainer := valueof(p_value)}
+ } // End of template m_eNBStatusTransferTransparentContainer_IE
/**
+ * @desc
+ */
+ template (value) ENB_StatusTransfer_TransparentContainer m_eNBStatusTransferTransparentContainer (
+ in template (value) Bearers_SubjectToStatusTransferList p_bearers_SubjectToStatusTransferList):= {
+ bearers_SubjectToStatusTransferList := p_bearers_SubjectToStatusTransferList,
+ iE_Extensions := omit
+ }
+// /**
+// * @desc
+// */
+// template (value) Bearers_SubjectToStatusTransfer_ItemIEs m_Bearers_SubjectToStatusTransfer_ItemIEs (
+// in template (value) Bearers_SubjectToStatusTransfer_Item p_bearers_SubjectToStatusTransfer,
+// in template (value) ProtocolIE.criticality p_criticality := ignore
+//
+// ):= {
+// id := S1AP_Constants.id_Bearers_SubjectToStatusTransfer_Item,
+// criticality := p_criticality,
+// value_ := {Bearers_SubjectToStatusTransfer_Item := valueof(p_bearers_SubjectToStatusTransfer)}
+// }
+
+ template (value) Bearers_SubjectToStatusTransfer_Item m_Bearers_SubjectToStatusTransfer_Item(
+ in template (value) E_RAB_ID p_e_RAB_ID,
+ in template (value) COUNTvalue p_uL_COUNTvalue,
+ in template (value) COUNTvalue p_dL_COUNTvalue
+ ):= {
+ e_RAB_ID:= p_e_RAB_ID,
+ uL_COUNTvalue:=p_uL_COUNTvalue,
+ dL_COUNTvalue:=p_dL_COUNTvalue,
+ //ReceiveStatusofULPDCPSDUs
+ receiveStatusofULPDCPSDUs := omit,
+ iE_Extensions := omit
+ }
+
+ template (value) COUNTvalue m_COUNTvalue(
+ in template (value) PDCP_SN p_PDCP_SN_value,
+ in template (value) HFN p_HFN_value
+ ):={
+ pDCP_SN := valueof(p_PDCP_SN_value),
+ hFN := valueof(p_HFN_value),
+ iE_Extensions := omit
+ }
+
+ /**
* @desc Send template for correlation ID IE
* @param p_value UESecurityCapabilities value
* @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.80 correlation ID
diff --git a/ttcn3/S1AP_TCFunctions.ttcn b/ttcn3/S1AP_TCFunctions.ttcn
index 405aa5e..af5d072 100644
--- a/ttcn3/S1AP_TCFunctions.ttcn
+++ b/ttcn3/S1AP_TCFunctions.ttcn
@@ -5763,6 +5763,187 @@ module S1AP_TCFunctions {
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
} // End of function f_TC_S1AP_MME_HAS_13
+
+ /**
+ * @desc Testcase function for TC_S1AP_MME_HAS_14
+ */
+ function f_TC_S1AP_MME_HAS_14() runs on S1APComponent {
+ // Local variables
+ const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
+ const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
+
+ // Preamble
+ f_S1AP_mme_init();
+ // Preamble action: E-RAB Setup is exchanged.
+ //f_rABSetup...;
+
+ f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
+ log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
+
+ // Test body
+ // sends a HANDOVER_REQUIRED
+ f_send_PathSwitchRequest(
+ m_PathSwitchRequestIEs(
+ vc_eNB_UE_ID,
+ {m_E_RABToBeSwitchedDLItem(1,-,-,-)},
+ vc_MME_UE_ID,
+ m_eUTRAN_CGI('000001'O, //plmn id
+ '0000000000000000000000000001'B ),//ci
+ m_TAI('000001'O,'0001'O),
+ m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B)
+ ));
+
+ f_recv_PathSwitchRequestFailure(
+ mw_PathSwitchRequestFailureIEs(
+ vc_MME_UE_ID,
+ vc_eNB_UE_ID,
+ -//cause
+ ));
+
+ f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
+
+ // Postamble
+ //f_rABSetupRelease...;
+ f_postamble_S1AP_eNB();
+ f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
+ log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
+
+ } // End of function f_TC_S1AP_MME_HAS_14
+
+ /**
+ * @desc Testcase function for TC_S1AP_MME_HAS_15
+ */
+ function f_TC_S1AP_MME_HAS_15() runs on S1APComponent {
+ // Local variables
+ const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
+ const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
+
+ // Preamble
+ f_S1AP_mme_init();
+ // Preamble action: E-RAB Setup is exchanged.
+ //f_rABSetup...;
+
+ f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
+ log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
+
+ // Test body
+ // sends a HANDOVER_REQUIRED
+ f_send_HandoverRequired(
+ m_HandoverRequiredIEs(
+ vc_MME_UE_ID,
+ vc_eNB_UE_ID,
+ intralte,
+ m_cause_ran(unspecified),
+ m_TargeteNB_ID(m_Global_ENB_ID('000001'O,
+ m_ENB_ID_macro),
+ m_TAI('000001'O,
+ '0001'O)),
+ c_source_ToTarget_TransparentContainer
+ ));
+
+ f_recv_HandoverCommand(
+ mw_HandoverCommandIEs(
+ vc_MME_UE_ID,
+ vc_eNB_UE_ID,
+ intralte,//handover_Type
+ c_target_ToSource_TransparentContainer//TargetToSourceTransparentContainer
+ ));
+
+ f_send_HandoverCancel(
+ m_HandoverCancelIEs(
+ vc_MME_UE_ID,
+ vc_eNB_UE_ID,
+ m_cause_ran(unspecified)
+ ));
+
+ f_recv_HandoverCancelAck(
+ mw_HandoverCancelAckIEs(
+ vc_MME_UE_ID,
+ vc_eNB_UE_ID
+ ));
+
+ f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
+
+ // Postamble
+ //f_rABSetupRelease...;
+ f_postamble_S1AP_eNB();
+ f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
+ log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
+
+ } // End of function f_TC_S1AP_MME_HAS_15
+
+ /**
+ * @desc Testcase function for TC_S1AP_MME_HAS_16
+ */
+ function f_TC_S1AP_MME_HAS_16() runs on S1APComponent {
+ // Local variables
+ const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
+ const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
+
+ // Preamble
+ f_S1AP_mme_init();
+ // Preamble action: E-RAB Setup is exchanged.
+ //f_rABSetup...;
+
+ f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
+ log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
+
+ // Test body
+ // sends a HANDOVER_REQUIRED
+ f_send_HandoverRequired(
+ m_HandoverRequiredIEs(
+ vc_MME_UE_ID,
+ vc_eNB_UE_ID,
+ intralte,
+ m_cause_ran(unspecified),
+ m_TargeteNB_ID(m_Global_ENB_ID('000001'O,
+ m_ENB_ID_macro),
+ m_TAI('000001'O,
+ '0001'O)),
+ c_source_ToTarget_TransparentContainer
+ ));
+
+// f_recv_HandoverCommand(
+// mw_HandoverCommandIEs(
+// vc_MME_UE_ID,
+// vc_eNB_UE_ID,
+// intralte,//handover_Type
+// c_target_ToSource_TransparentContainer//TargetToSourceTransparentContainer
+// ));
+
+ f_send_eNB_Status_Transfer(
+ m_eNB_Status_TransferIEs(
+ vc_MME_UE_ID,
+ vc_eNB_UE_ID,
+ m_eNBStatusTransferTransparentContainer(
+ {{id:=89,//S1AP_Constants.id_Bearers_SubjectToStatusTransfer_Item,
+ criticality:=ignore,
+ value_:= {Bearers_SubjectToStatusTransfer_Item := valueof(
+ m_Bearers_SubjectToStatusTransfer_Item(1,
+ m_COUNTvalue(0,0),
+ m_COUNTvalue(0,0)))}
+ }
+ }
+ )
+ ));
+
+ f_recv_Mme_Status_Transfer(
+ mw_Mme_Status_TransferIEs(
+ vc_MME_UE_ID,
+ vc_eNB_UE_ID,
+ -
+ ));
+
+ f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
+
+ // Postamble
+ //f_rABSetupRelease...;
+ f_postamble_S1AP_eNB();
+ f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
+ log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
+
+ } // End of function f_TC_S1AP_MME_HAS_16
+
} // End of group Handover_signalling_group
/**