diff options
author | pintar <info@etsi.org> | 2017-05-11 14:43:46 +0000 |
---|---|---|
committer | pintar <info@etsi.org> | 2017-05-11 14:43:46 +0000 |
commit | dbd802e603f22d47fa529124d4468cc79bc5cd9c (patch) | |
tree | a324ce19ea8f8e5d3caf94ce70fa357c4f90b674 | |
parent | 2225145cb41cb2cadbad284912ed91a523998dbf (diff) |
MME_HAS_04-16 tests and related templates added
-rw-r--r-- | ttcn3/LibS1AP/LibS1AP_Steps.ttcn | 40 | ||||
-rw-r--r-- | ttcn3/LibS1AP/LibS1AP_Templates.ttcn | 144 | ||||
-rw-r--r-- | ttcn3/S1AP_TCFunctions.ttcn | 181 |
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 /** |