/** * @author ETSI / STF519 * @version $URL$ * $Id$ * @desc This module provides RfRo test functions used by the test cases. * @copyright ETSI Copyright Notification * No part may be reproduced except as authorized by written permission. * The copyright and the foregoing restriction extend to reproduction in all media. * All rights reserved. * @see ETSI TS 136 413 / 3GPP TS 36.413 version 13.4.0 Release 13 */ module S1AP_TCFunctions { import from S1AP_IEs language "ASN.1:1997" all; // LibCommon import from LibCommon_Sync all; import from LibCommon_VerdictControl all; // LibS1AP // LibS1AP import from S1AP_Constants language "ASN.1:1997" all; import from S1AP_CommonDataTypes language "ASN.1:1997" all; // import from S1AP_Containers language "ASN.1:1997" all; import from S1AP_IEs language "ASN.1:1997" all; import from S1AP_PDU_Contents language "ASN.1:1997" all; import from S1AP_PDU_Descriptions language "ASN.1:1997" all; import from LibS1AP_Pixits all; //import from LibS1AP_TypesAndValues all; import from LibS1AP_Templates all; import from LibS1AP_Interface all; import from LibS1AP_Steps all; // Ats import from S1AP_Templates all; import from S1AP_Steps all; import from S1AP_Pixits all; import from S1AP_TestSystem all; group eNB_Role { /** * @desc E-RAB management group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.2 E-RAB management group */ group ERAB_management_group { /** * @desc Testcase function for TC_S1AP_eNB_RAB_01 */ function f_TC_S1AP_eNB_RAB_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // f_send_S1AP_initiatingMessage( // m_E_RABSetupRequest( // { // m_MME_UE_S1AP_ID(vc_MME_UE_ID), // m_eNB_UE_S1AP_ID(vc_eNB_UE_ID), // m_E_RABToBeSetupList( // { // m_E_RABToBeSetupItemBearerSUReq // ( // -, // m_e_RABlevelQoSParameters // (5) // ) // } // ) // } // ) // ); f_send_E_RABSetupRequest(m_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, {m_E_RABToBeSetupItemBearerSUReq ( -, m_e_RABlevelQoSParameters (5) )} )); f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs( vc_MME_UE_ID, vc_eNB_UE_ID, { mw_E_RABSetupItemBearerSURes } )); // f_recv_S1AP_successfulOutcome( // mw_E_RABSetupResponse( // { // mw_MME_UE_S1AP_ID(vc_MME_UE_ID,ignore), // mw_eNB_UE_S1AP_ID(vc_eNB_UE_ID,ignore), // mw_E_RABSetupList( // { // mw_E_RABSetupItemBearerSURes // } // ) // } // ) // ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_RAB_01 /** * @desc Testcase function for TC_S1AP_eNB_RAB_02 */ function f_TC_S1AP_eNB_RAB_02() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_E_RABSetupRequest(m_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, { m_E_RABToBeSetupItemBearerSUReq(1), m_E_RABToBeSetupItemBearerSUReq( 2, m_e_RABlevelQoSParameters (255) ) } )); // f_send_S1AP_initiatingMessage( // m_E_RABSetupRequest( // { // m_MME_UE_S1AP_ID(vc_MME_UE_ID), // m_eNB_UE_S1AP_ID(vc_eNB_UE_ID), // m_E_RABToBeSetupList( // { // m_E_RABToBeSetupItemBearerSUReq(1), // m_E_RABToBeSetupItemBearerSUReq( // 2, // m_e_RABlevelQoSParameters // (255) // ) // } // ) // } // ) // // ); f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs_FailedToSetupList( vc_MME_UE_ID, vc_eNB_UE_ID, { mw_E_RABSetupItemBearerSURes(1) }, { mw_E_RABItem( 2, { radioNetwork :=not_supported_QCI_value } ) } )); // f_recv_S1AP_successfulOutcome( // mw_E_RABSetupResponse( // { // mw_MME_UE_S1AP_ID(vc_MME_UE_ID,ignore), // mw_eNB_UE_S1AP_ID(vc_eNB_UE_ID,ignore), // mw_E_RABSetupList( // { // mw_E_RABSetupItemBearerSURes(1) // } // ), // mw_E_RABFailedToSetupList( // { // mw_E_RABItem( // 2, // { // radioNetwork :=not_supported_QCI_value // } // ) // } // ) // } // ) // ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_RAB_02 /** * @desc Testcase function for TC_S1AP_eNB_RAB_03 */ function f_TC_S1AP_eNB_RAB_03() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); f_send_E_RABSetupRequest(m_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, { m_E_RABToBeSetupItemBearerSUReq } )); f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs_FailedToSetupList( vc_MME_UE_ID, vc_eNB_UE_ID, -, //omit { mw_E_RABItem( 0, { radioNetwork := (s1_intra_system_handover_triggered, s1_inter_system_handover_triggered, x2_handover_triggered) } ) } )); f_recv_Handover_Required(mw_HandoverRequiredIEs( vc_MME_UE_ID, vc_eNB_UE_ID, ltetoutran, ?, ?, ? )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_RAB_03 /** * @desc Testcase function for TC_S1AP_eNB_RAB_04 */ function f_TC_S1AP_eNB_RAB_04() runs on S1APComponent { // Local variables const QCI c_qci_id := 1; // TODO // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); f_send_E_RABSetupRequest(m_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, {m_E_RABToBeSetupItemBearerSUReq ( -, m_e_RABlevelQoSParameters(c_qci_id) )} )); f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs_FailedToSetupList( vc_MME_UE_ID, vc_eNB_UE_ID, -, //omit { mw_E_RABItem( 0, { radioNetwork := not_supported_QCI_value } ) } )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_RAB_04 } // End of group ERAB_management_group /** * @desc Context management group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.3 Context management group */ group Context_management_group { /** * @desc Testcase function for TC_S1AP_eNB_CMP_01 */ function f_TC_S1AP_eNB_CMP_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, m_UEAggregateMaximumBitrate(1,1), {m_E_RABToBeSetupItemBearerSUReq ( -, m_e_RABlevelQoSParameters (5), -, - )}, m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B), m_securityKey )); f_recv_InitialContext_SetupResponse(mw_InitialContextSetupResIEs( vc_MME_UE_ID, vc_eNB_UE_ID, { mw_E_RABSetupItemBearerSURes } )); // Postamble f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_CMP_01 /** * @desc Testcase function for TC_S1AP_eNB_CMP_02 */ function f_TC_S1AP_eNB_CMP_02() runs on S1APComponent { // Local variables const E_RAB_ID c_E_RAB_ID_A := 0; const E_RAB_ID c_E_RAB_ID_B := 1; const TransportLayerAddress c_transportLayerAddress := '0'B; const GTP_TEID c_gTP_TEID := '00000000'O; const NAS_PDU c_nAS_PDU := '0000'O; // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, m_UEAggregateMaximumBitrate(1,1), {m_E_RABToBeSetupItemBearerSUReq ( c_E_RAB_ID_A, m_e_RABlevelQoSParameters (5), c_transportLayerAddress, c_gTP_TEID, c_nAS_PDU ), m_E_RABToBeSetupItemBearerSUReq ( c_E_RAB_ID_B, m_e_RABlevelQoSParameters (255), c_transportLayerAddress, c_gTP_TEID, c_nAS_PDU )}, m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B), m_securityKey )); f_recv_InitialContext_SetupResponse(mw_InitialContextSetupResIEs( vc_MME_UE_ID, vc_eNB_UE_ID, { mw_E_RABSetupItemBearerSURes(c_E_RAB_ID_A) }, { mw_E_RABItem( c_E_RAB_ID_B, { radioNetwork :=not_supported_QCI_value } ) } )); // Postamble f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_CMP_02 /** * @desc Testcase function for TC_S1AP_eNB_CMP_03 */ function f_TC_S1AP_eNB_CMP_03() runs on S1APComponent { // Local variables const E_RAB_ID c_E_RAB_ID_A := 0; const TransportLayerAddress c_transportLayerAddress := '0'B; const GTP_TEID c_gTP_TEID := '00000000'O; const NAS_PDU c_nAS_PDU := '0000'O; // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, m_UEAggregateMaximumBitrate(1,1), {m_E_RABToBeSetupItemBearerSUReq ( c_E_RAB_ID_A, m_e_RABlevelQoSParameters (1), c_transportLayerAddress, c_gTP_TEID, c_nAS_PDU )}, m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B), m_securityKey )); f_recv_InitialContext_SetupResponse(mw_InitialContextSetupResIEs( vc_MME_UE_ID, vc_eNB_UE_ID, -, { mw_E_RABItem( c_E_RAB_ID_A, ? ) } )); // Postamble f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_CMP_03 /** * @desc Testcase function for TC_S1AP_eNB_CMP_04 */ function f_TC_S1AP_eNB_CMP_04() runs on S1APComponent { // Local variables const E_RAB_ID c_E_RAB_ID_A := 0; const TransportLayerAddress c_transportLayerAddress := '0'B; const GTP_TEID c_gTP_TEID := '00000000'O; const NAS_PDU c_nAS_PDU := '0000'O; // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, m_UEAggregateMaximumBitrate(1,1), {m_E_RABToBeSetupItemBearerSUReq ( c_E_RAB_ID_A, m_e_RABlevelQoSParameters (5), c_transportLayerAddress, c_gTP_TEID, c_nAS_PDU ), m_E_RABToBeSetupItemBearerSUReq ( c_E_RAB_ID_A, m_e_RABlevelQoSParameters (5), c_transportLayerAddress, c_gTP_TEID, c_nAS_PDU )}, m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B), m_securityKey )); f_recv_InitialContext_SetupResponse(mw_InitialContextSetupResIEs( vc_MME_UE_ID, vc_eNB_UE_ID, -, { mw_E_RABItem( c_E_RAB_ID_A, { radioNetwork := multiple_E_RAB_ID_instances } ), mw_E_RABItem( c_E_RAB_ID_A, { radioNetwork := multiple_E_RAB_ID_instances } ) } )); // Postamble f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_CMP_04 } // End of group Context_management_group /** * @desc Handover signalling group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.4 Handover signalling group */ group Handover_signalling_group { } // End of group Handover_signalling_group /** * @desc Paging group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.5 Paging group */ group Paging_group { } // End of group Paging_group /** * @desc NAS transport group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.6 NAS transport group */ group NAS_transport_group { } // End of group NAS_transport_group /** * @desc Management group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.7 Management group */ group Management_group { /** * @desc Testcase function for TC_S1AP_eNB_TRP_01 */ function f_TC_S1AP_eNB_MNP_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_Reset( m_resetIEs( m_cause_nas( unspecified // TODO Check value to be used ), m_resetType_all )); f_recv_Reset_Acknowledge( mw_reset_AcknowledgeIEs( { ?/*mw_uE_associatedLogicalS1_ConnectionItemResAck_IE( mw_uE_associatedLogicalS1_ConnectionItem( vc_MME_UE_ID, vc_eNB_UE_ID ))*/ } )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_MNP_01 /** * @desc Testcase function for TC_S1AP_eNB_TRP_02 */ function f_TC_S1AP_eNB_MNP_02() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a Reset procedure initiated from the E-UTRAN if (fx_eNB_Reset_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a RESET f_recv_Reset( mw_resetIEs( mw_cause_nas( unspecified // TODO Check value to be used ), m_resetType_all )); } f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_MNP_02 /** * @desc Testcase function for TC_S1AP_eNB_TRP_03 */ function f_TC_S1AP_eNB_MNP_03() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_Reset( m_resetIEs( m_cause_nas( unspecified // TODO Check value to be used ), m_resetType_partOfS1_Interface( { m_uE_associatedLogicalS1_ConnectionItemResAck_IE( m_uE_associatedLogicalS1_ConnectionItem( 0, 0 )) } ) )); f_recv_Reset_Acknowledge( mw_reset_AcknowledgeIEs( { ?/*mw_uE_associatedLogicalS1_ConnectionItemResAck_IE( mw_uE_associatedLogicalS1_ConnectionItem( vc_MME_UE_ID, vc_eNB_UE_ID ))*/ } )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_MNP_03 /** * @desc Testcase function for TC_S1AP_eNB_TRP_04 */ function f_TC_S1AP_eNB_MNP_04() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate an Error Indication procedure if (fx_eNB_Error_Indication_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a ERROR_INDICATION f_recv_Error_Indication( mw_error_IndicationIEs( vc_MME_UE_ID, vc_eNB_UE_ID // TODO To be refined )); } f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_MNP_04 /** * @desc Testcase function for TC_S1AP_eNB_TRP_05 */ function f_TC_S1AP_eNB_MNP_05() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a S1 Setup procedure if (fx_eNB_S1_Setup_Request_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a S1 SETUP REQUEST f_recv_S1_Setup_Request( mw_s1_Setup_RequestIEs( mw_Global_eNB_ID( PX_PLMN_IDENTITY, PX_eNB_ID ), { mw_supportedTAs_Item( PX_TAC, { PX_PLMN_IDENTITY } ) }, PX_PAGING_DRX )); // Send the response to finalyse the procedure f_send_S1_Setup_Response( m_s1_Setup_ResponseIEs( { m_servedGUMMEIsItem( { PX_PLMN_IDENTITY }, { PX_MME_GROUP_ID }, { PX_MME_CODE } ) }, PX_RELATIVE_MME_CAPAVCITY )); } f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_MNP_05 /** * @desc Testcase function for TC_S1AP_eNB_TRP_06 */ function f_TC_S1AP_eNB_MNP_06() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate an eNB Configuration Update procedure if (fx_eNB_Configuration_Update_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends an ENB_CONFIGURATION_UPDATE f_recv_eNB_Configuration_Update( mw_eNB_Configuration_UpdateIEs( mw_Global_eNB_ID( PX_PLMN_IDENTITY, PX_eNB_ID ), { mw_supportedTAs_Item( PX_TAC, { PX_PLMN_IDENTITY } ) } )); // Send the acknowledge to finalyse the procedure f_send_eNB_Configuration_Update_Acknowledge( m_eNB_Configuration_Update_AcknowledgeIEs ); } f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_MNP_06 /** * @desc Testcase function for TC_S1AP_eNB_TRP_07 */ function f_TC_S1AP_eNB_MNP_07() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_MME_Configuration_Update( m_mME_Configuration_UpdateIEs( { m_servedGUMMEIsItem( { PX_PLMN_IDENTITY }, { PX_MME_GROUP_ID }, { PX_MME_CODE } ) } )); f_recv_MME_Configuration_Update_Acknowledge( mw_mME_Configuration_Update_AcknowledgeIEs ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_MNP_07 /** * @desc Testcase function for TC_S1AP_eNB_TRP_08 */ function f_TC_S1AP_eNB_MNP_08() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_MME_Configuration_Update( m_mME_Configuration_UpdateIEs( { m_servedGUMMEIsItem( { PX_PLMN_IDENTITY, PX_PLMN_IDENTITY_UNKNOWN }, { PX_MME_GROUP_ID }, { PX_MME_CODE } ) } )); f_recv_MME_Configuration_Update_Failure( mw_mME_Configuration_Update_FailureIEs( mw_cause_misc( unknown_PLMN ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_MNP_08 } // End of group Management_group /** * @desc S1 CDMA 2000 tunnelling group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.8 S1 CDMA 2000 tunnelling group */ group S1_CDMA_2000_tunnelling_group { /** * @desc Testcase function for TC_S1AP_eNB_STP_01 */ function f_TC_S1AP_eNB_STP_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: E-RAB Setup is exchanged. f_rABSetupRequest(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a CDMA2000 to be forwarded if (fx_eNB_Uplink_S1_CDMA2000_Tunnelling_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a an UPLINK_S1_CDMA2000_TUNNELLING f_recv_Uplink_S1_CDMA2000_Tunnelling( mw_uplink_S1_CDMA2000_TunnellingIEs( vc_MME_UE_ID, vc_eNB_UE_ID, PX_CDMA200_RAT_TYPE, PX_CDMA200_SECTOR_ID, PX_CDMA200_PDU )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_rABSetupRelease(); f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_STP_01 } // End of group S1_CDMA_2000_tunnelling_group /** * @desc UE capability info indication group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.9 UE capability info indication group */ group UE_capability_info_indication_group { /** * @desc Testcase function for TC_S1AP_eNB_UEC_01 */ function f_TC_S1AP_eNB_UEC_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: E-RAB Setup is exchanged. f_rABSetupRequest(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a capability-related information update if (fx_eNB_UE_Capability_Info_Indication_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a UE_CAPABILITY_INFO_INDICATION f_recv_eNB_UE_Capability_Info_Indication( mw_uE_Capability_Info_IndicationIEs( vc_MME_UE_ID, vc_eNB_UE_ID, - // TODO To be refined )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_rABSetupRelease(); f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_UEC_01 } // End of group UE_capability_info_indication_group /** * @desc Warning message transmission group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.10 Trace group */ group Trace_group { /** * @desc Testcase function for TC_S1AP_eNB_TRP_01 */ function f_TC_S1AP_eNB_TRP_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: E-RAB Setup is exchanged, and a handover procedure is initiated. f_rABSetupRequest(); f_initiate_handover(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_Trace_Start( m_trace_StartIEs( m_traceActivation( PX_EUTRAN_TRACE_ID, PX_INTERFACES_TO_TRACE, PX_TRACE_DEPTH, PX_TRANSPORT_LAYER_ADDRESS ))); f_recv_Trace_Failure_Indication( mw_trace_Failure_IndicationIEs( vc_MME_UE_ID, vc_eNB_UE_ID, PX_EUTRAN_TRACE_ID, - // TODO To be refined )); 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_eNB_TRP_01 /** * @desc Testcase function for TC_S1AP_eNB_TRP_02 */ function f_TC_S1AP_eNB_TRP_02() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: E-RAB Setup is exchanged, and a handover procedure is initiated. f_rABSetupRequest(); f_initiate_traceStart(); f_initiate_handover(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_deactivate_Trace( m_deactivate_TraceIEs( vc_MME_UE_ID, vc_eNB_UE_ID, PX_EUTRAN_TRACE_ID )); f_recv_Trace_Failure_Indication( mw_trace_Failure_IndicationIEs( vc_MME_UE_ID, vc_eNB_UE_ID, PX_EUTRAN_TRACE_ID, - // TODO To be refined )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_initiate_deactivateTrace(); f_rABSetupRelease(); f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_TRP_02 /** * @desc Testcase function for TC_S1AP_eNB_TRP_03 */ function f_TC_S1AP_eNB_TRP_03() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: E-RAB Setup is exchanged, and a handover procedure is initiated. f_rABSetupRequest(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_initiate_traceStart(); f_recv_Cell_Traffic_Trace( mw_cell_Traffic_TraceIEs( vc_MME_UE_ID, vc_eNB_UE_ID, PX_EUTRAN_TRACE_ID, mw_eUTRAN_CGI, - // TODO To be refined )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_initiate_deactivateTrace(); f_rABSetupRelease(); f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_TRP_03 } // End of group Trace_group /** * @desc Warning message transmission group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.11 Location reporting group */ group Location_reporting_group { /** * @desc Testcase function for TC_S1AP_eNB_LRP_01 */ function f_TC_S1AP_eNB_LRP_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: E-RAB Setup is exchanged. f_rABSetupRequest(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_Location_Reporting_Control( m_location_Reporting_ControlIEs( vc_MME_UE_ID, vc_eNB_UE_ID, m_request_Type( direct, PX_REPORT_AREA ))); f_recv_Location_Report( mw_location_ReportIEs( ?, ?, mw_eUTRAN_CGI( PX_PLMN_IDENTITY, PX_CELL_ID ), mw_TAI( PX_PLMN_IDENTITY, PX_TAC ), mw_request_Type( direct, PX_REPORT_AREA ))); 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_eNB_LRP_01 /** * @desc Testcase function for TC_S1AP_eNB_LRP_02 */ function f_TC_S1AP_eNB_LRP_02() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: E-RAB Setup is exchanged. f_rABSetupRequest(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_Location_Reporting_Control( m_location_Reporting_ControlIEs( vc_MME_UE_ID, vc_eNB_UE_ID, m_request_Type( change_of_serve_cell, PX_REPORT_AREA ))); fx_move_UE_to_new_cell(); // when UE changes to new cell f_recv_Location_Report( mw_location_ReportIEs( vc_MME_UE_ID, vc_eNB_UE_ID, mw_eUTRAN_CGI( PX_PLMN_IDENTITY, PX_CELL_ID ), mw_TAI( PX_PLMN_IDENTITY, PX_TAC ), mw_request_Type( change_of_serve_cell, PX_REPORT_AREA ))); 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_eNB_LRP_02 /** * @desc Testcase function for TC_S1AP_eNB_LRP_03 */ function f_TC_S1AP_eNB_LRP_03() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: E-RAB Setup is exchanged. f_rABSetupRequest(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_Location_Reporting_Control( m_location_Reporting_ControlIEs( vc_MME_UE_ID, vc_eNB_UE_ID, m_request_Type( stop_change_of_serve_cell, PX_REPORT_AREA ))); fx_check_UE_stops_reporting(); // when UE stop reporting at change of serving cell f_recv_Location_Report( mw_location_ReportIEs( vc_MME_UE_ID, vc_eNB_UE_ID, mw_eUTRAN_CGI( PX_PLMN_IDENTITY, PX_CELL_ID ), mw_TAI( PX_PLMN_IDENTITY, PX_TAC ), mw_request_Type( stop_change_of_serve_cell, PX_REPORT_AREA ))); 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_eNB_LRP_03 /** * @desc Testcase function for TC_S1AP_eNB_LRP_04 */ function f_TC_S1AP_eNB_LRP_04() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: E-RAB Setup is exchanged, and a handover procedure is initiated. f_rABSetupRequest(); f_initiate_handover(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_Location_Reporting_Control( m_location_Reporting_ControlIEs( vc_MME_UE_ID, vc_eNB_UE_ID, m_request_Type( PX_EVENT_TYPE, PX_REPORT_AREA ))); f_recv_Location_Report_Failure_Indication( mw_location_Report_Failure_IndicationIEs( vc_MME_UE_ID, vc_eNB_UE_ID, ? // TODO To be refined: what kind of 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_eNB_LRP_04 } // End of group Location_reporting_group /** * @desc Warning message transmission group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.12 Warning message transmission group */ group Warning_message_transmission_group { /** * @desc Testcase function for TC_S1AP_eNB_WTP_01 */ function f_TC_S1AP_eNB_WTP_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_Write_Replace_Warning_Request( m_write_Replace_Warning_RequestIEs( PX_MESSAGE_IDENTIFIER, PX_SERIAL_NUMBER, PX_REPETITION_PERIOD, PX_NUMBER_OF_BROADCASTS_REQUESTED )); f_recv_Write_Replace_Warning_Response( mw_write_Replace_Warning_ResponseIEs( ?, ? )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_WTP_01 /** * @desc Testcase function for TC_S1AP_eNB_WTP_02 */ function f_TC_S1AP_eNB_WTP_02() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_Kill_Request( m_kill_RequestIEs( PX_MESSAGE_IDENTIFIER, PX_SERIAL_NUMBER )); f_recv_Kill_Response( mw_kill_ResponseIEs( ?, ? )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_WTP_02 /** * @desc Testcase function for TC_S1AP_eNB_WTP_03 */ function f_TC_S1AP_eNB_WTP_03() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a PWS Restart Indication procedure if (fx_eNB_PWS_Restart_Indication_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a PWS_RESTART_INDICATION f_recv_eNB_PWS_Restart_Indication( mw_pWS_Restart_IndicationIEs( { mw_eUTRAN_CGI( PX_PLMN_IDENTITY, PX_CELL_ID ) }, mw_Global_eNB_ID( PX_PLMN_IDENTITY, PX_eNB_ID ), { mw_TAI( PX_PLMN_IDENTITY, PX_TAC ) }, { PX_EMERGENCY_AREA_ID } )); } f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_WTP_03 /** * @desc Testcase function for TC_S1AP_eNB_WTP_04 */ function f_TC_S1AP_eNB_WTP_04() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a PWS Failure Indication procedure if (fx_eNB_PWS_Failure_Indication_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a PWS_FAILURE_INDICATION f_recv_eNB_PWS_Failure_Indication( mw_pWS_Failure_IndicationIEs( { mw_eUTRAN_CGI( PX_PLMN_IDENTITY, PX_CELL_ID ) }, mw_Global_eNB_ID( PX_PLMN_IDENTITY, PX_eNB_ID ) )); } f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_WTP_04 } // End of group Warning_message_transmission_group /** * @desc eNB direct information transfer group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.13 eNB direct information transfer group */ group ENB_direct_information_transfer_group { /** * @desc Testcase function for TC_S1AP_eNB_EIT_01 */ function f_TC_S1AP_eNB_EIT_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate an ENB Direct Information Transfer procedure if (fx_eNB_Direct_Information_Transfer_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a ENB_DIRECT_INFORMATION_TRANSFER f_recv_eNB_Direct_Information_Transfer( mw_eNBDirectInformationTransfer_EDT( mw_Inter_SystemInformationTransferType( mw_RIMTransfer( ? // FIXME To be refined )))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_EIT_01 } // End of group ENB_direct_information_transfer_group /** * @desc NAS transport group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.14 MME direct information transport group */ group MME_direct_information_transfer_group { } // End of group MME_direct_information_transfer_group /** * @desc eNB configuration transfer group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.15 eNB configuration transfer group */ group ENB_configuration_transfer_group { /** * @desc Testcase function for TC_S1AP_eNB_ECT_01 */ function f_TC_S1AP_eNB_ECT_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate an ENB Configuration Transfer procedure if (fx_eNB_Configuration_Transfer_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a ENB_CONFIGURATION_TRANSFER f_recv_eNB_Direct_Information_Transfer( mw_sON_Configuration_Transfer_ECT( mw_sON_Configuration_Transfer( mw_TargeteNB_ID(mw_Global_eNB_ID, mw_TAI), mw_SourceeNB_ID(mw_Global_eNB_ID, mw_TAI), ? // FIXME To be refined ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_ECT_01 } // End of group ENB_configuration_transfer_group /** * @desc NAS transport group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.16 MME configuration transport group */ group MME_configuration_transfer_group { } // End of group MME_configuration_transfer_group /** * @desc LPPa transport group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.17 LPPa transport group */ group LPPa_transport_group { /** * @desc Testcase function for TC_S1AP_eNB_LPP_01 */ function f_TC_S1AP_eNB_LPP_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: E-RAB Setup is exchanged f_rABSetupRequest(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a LPPa Transport procedure using a UE associated signalling if (fx_eNB_LPPa_Transport_procedure_ind(true) == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a UPLINK_UE_ASSOCIATED_LPPA_TRANSPORT f_recv_Uplink_UE_Associated_Lppa_Transport( mw_UplinkUEAssociatedLppaTransportIEs_LPPa_PDU( ? )); 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_eNB_LPP_01 /** * @desc Testcase function for TC_S1AP_eNB_LPP_02 */ function f_TC_S1AP_eNB_LPP_02() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: E-RAB Setup is exchanged f_rABSetupRequest(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a LPPa Transport procedure using a UE associated signalling if (fx_eNB_LPPa_Transport_procedure_ind(false) == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a UPLINK_NONE_UE_ASSOCIATED_LPPA_TRANSPORT f_recv_Uplink_Non_UE_Associated_Lppa_Transport( mw_UplinkNonUEAssociatedLppaTransportIEs_LPPa_PDU( ? )); 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_eNB_LPP_02 } // End of group LPPa_transport_group /** * @desc NAS transport group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.18 Unknown, Unforseen and Errorneous Protocol Data group */ group Unknown_unforseen_errorneous_group { } // End of group Unknown_unforseen_errorneous_group } // End of group eNB_Role group MME_Role { /** * @desc E-RAB management group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.2 E-RAB management group */ group ERAB_management_group { /** * @desc Testcase function for TC_S1AP_eNB_RAB_01 */ function f_TC_S1AP_MME_RAB_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); //f_send_( ); //f_recv_( ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Test body f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_RAB_01 } // End of group ERAB_management_group /** * @desc Context management group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.3 Context management group */ group Context_management_group { } // End of group Context_management_group /** * @desc Handover signalling group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.4 Handover signalling group */ group Handover_signalling_group { } // End of group Handover_signalling_group /** * @desc Paging group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.5 Paging group */ group Paging_group { } // End of group Paging_group /** * @desc NAS transport group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.6 NAS transport group */ group NAS_transport_group { } // End of group NAS_transport_group /** * @desc Management group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.7 Management group */ group Management_group { /** * @desc Testcase function for TC_S1AP_MME_MNP_01 */ function f_TC_S1AP_MME_MNP_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a Reset procedure initiated from the MME if (fx_MME_Reset_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a RESET f_recv_Reset( mw_resetIEs( mw_cause_nas( unspecified // TODO Check value to be used ), m_resetType_all )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_MNP_01 /** * @desc Testcase function for TC_S1AP_MME_MNP_02 */ function f_TC_S1AP_MME_MNP_02() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_Reset( m_resetIEs( m_cause_nas( unspecified // TODO Check value to be used ), m_resetType_all )); f_recv_Reset_Acknowledge( mw_reset_AcknowledgeIEs( { ?/*mw_uE_associatedLogicalS1_ConnectionItemResAck_IE( mw_uE_associatedLogicalS1_ConnectionItem( vc_MME_UE_ID, vc_eNB_UE_ID ))*/ } )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_MNP_02 /** * @desc Testcase function for TC_S1AP_MME_MNP_03 */ function f_TC_S1AP_MME_MNP_03() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_Reset( m_resetIEs( m_cause_nas( unspecified // TODO Check value to be used ), m_resetType_all )); f_recv_Reset_Acknowledge( mw_reset_AcknowledgeIEs( { ?/*mw_uE_associatedLogicalS1_ConnectionItemResAck_IE( mw_uE_associatedLogicalS1_ConnectionItem( vc_MME_UE_ID, vc_eNB_UE_ID ))*/ } )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_MNP_03 /** * @desc Testcase function for TC_S1AP_MME_MNP_04 */ function f_TC_S1AP_MME_MNP_04() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate an Error Indication procedure if (fx_MME_Error_Indication_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a ERROR INDICATION f_recv_Error_Indication( mw_error_IndicationIEs( vc_MME_UE_ID, vc_eNB_UE_ID // TODO To be refined )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_MNP_04 /** * @desc Testcase function for TC_S1AP_MME_MNP_05 */ function f_TC_S1AP_MME_MNP_05() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_S1_Setup_Request( m_s1_Setup_RequestIEs( m_Global_eNB_ID( PX_PLMN_IDENTITY, PX_eNB_ID ), { m_supportedTAs_Item( PX_TAC, { PX_PLMN_IDENTITY } ) }, PX_PAGING_DRX )); f_recv_S1_Setup_Response( mw_s1_Setup_ResponseIEs( { mw_servedGUMMEIsItem( { PX_PLMN_IDENTITY }, { PX_MME_GROUP_ID }, { PX_MME_CODE } ) }, PX_RELATIVE_MME_CAPAVCITY )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_MNP_05 /** * @desc Testcase function for TC_S1AP_MME_MNP_06 */ function f_TC_S1AP_MME_MNP_06() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_S1_Setup_Request( m_s1_Setup_RequestIEs( m_Global_eNB_ID( PX_PLMN_IDENTITY, PX_eNB_ID ), { m_supportedTAs_Item( PX_TAC, { PX_PLMN_IDENTITY, PX_PLMN_IDENTITY_UNKNOWN } ) }, PX_PAGING_DRX )); f_recv_S1_Setup_Failure( mw_s1_Setup_FailureIEs( mw_cause_misc( unknown_PLMN ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_MNP_06 /** * @desc Testcase function for TC_S1AP_MME_MNP_07 */ function f_TC_S1AP_MME_MNP_07() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_eNB_Configuration_Update( m_eNB_Configuration_UpdateIEs( m_Global_eNB_ID( PX_PLMN_IDENTITY, PX_eNB_ID ), { m_supportedTAs_Item( PX_TAC, { PX_PLMN_IDENTITY } ) } )); f_recv_eNB_Configuration_Update_Acknowledge( mw_mME_Configuration_Update_AcknowledgeIEs ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_MNP_07 /** * @desc Testcase function for TC_S1AP_MME_MNP_08 */ function f_TC_S1AP_MME_MNP_08() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body f_send_eNB_Configuration_Update( m_eNB_Configuration_UpdateIEs( m_Global_eNB_ID( PX_PLMN_IDENTITY_UNKNOWN, PX_eNB_ID_UNKNOWN ), { m_supportedTAs_Item( PX_TAC, { PX_PLMN_IDENTITY_UNKNOWN } ) } )); f_recv_eNB_Configuration_Update_Failure( mw_eNB_Configuration_Update_FailureIEs( mw_cause_misc( unknown_PLMN ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_eNB_MNP_08 /** * @desc Testcase function for TC_S1AP_MME_MNP_09 */ function f_TC_S1AP_MME_MNP_09() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate an eNB Configuration Update procedure if (fx_eNB_Configuration_Update_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends an ENB Configuration Update f_recv_eNB_Configuration_Update( mw_eNB_Configuration_UpdateIEs( mw_Global_eNB_ID( PX_PLMN_IDENTITY, PX_eNB_ID ), { mw_supportedTAs_Item( PX_TAC, { PX_PLMN_IDENTITY } ) } )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_MNP_09 /** * @desc Testcase function for TC_S1AP_MME_MNP_10 */ function f_TC_S1AP_MME_MNP_10() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate an Overload Start procedure if (fx_eNB_Overload_Start_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends an OVERLOAD_START f_recv_eNB_Overload_Start( mw_eNB_Overload_StartIEs( mw_OverloadResponse( reject_non_emergency_mo_dt ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_MNP_10 /** * @desc Testcase function for TC_S1AP_MME_MNP_11 */ function f_TC_S1AP_MME_MNP_11() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate an Overload Stop procedure if (fx_eNB_Overload_Stop_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends an OVERLOAD_STOP f_recv_eNB_Overload_Stop( mw_eNB_Overload_StopIEs( { mw_gUMMEI( -, -, - ) } )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_MNP_11 } // End of group Management_group /** * @desc S1 CDMA 2000 tunnelling group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.8 S1 CDMA 2000 tunnelling group */ group S1_CDMA_2000_tunnelling_group { /** * @desc Testcase function for TC_S1AP_MME_STP_01 */ function f_TC_S1AP_MME_STP_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); // Preamble action: E-RAB Setup is exchanged. f_rABSetupRequest(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a CDMA2000 signalling event if (fx_MME_Downlink_S1_CDMA2000_Tunnelling_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a DOWNLINK_S1_CDMA2000_TUNNELLING f_recv_Downlink_S1_CDMA2000_Tunnelling( mw_downlink_S1_CDMA2000_TunnellingIEs( vc_MME_UE_ID, vc_eNB_UE_ID, { mw_eRABDataForwardingItem // TODO To be refined }, PX_CDMA200_PDU, PX_CDMA200_RAT_TYPE )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_rABSetupRelease(); f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_STP_01 } // End of group S1_CDMA_2000_tunnelling_group /** * @desc UE capability info indication group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.9 UE capability info indication group */ group UE_capability_info_indication_group { } // End of group UE_capability_info_indication_group /** * @desc Trace Procedures group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.10 Trace group */ group Trace_group { /** * @desc Testcase function for TC_S1AP_MME_TRP_01 */ function f_TC_S1AP_MME_TRP_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); // Preamble action: E-RAB Setup is exchanged. f_rABSetupRequest(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a Trace Start procedure if (fx_MME_Trace_Start_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a TRACE_START f_recv_Trace_Start( mw_trace_StartIEs( mw_traceActivation( PX_EUTRAN_TRACE_ID, PX_INTERFACES_TO_TRACE, PX_TRACE_DEPTH, PX_TRANSPORT_LAYER_ADDRESS ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_rABSetupRelease(); f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_TRP_01 /** * @desc Testcase function for TC_S1AP_MME_TRP_02 */ function f_TC_S1AP_MME_TRP_02() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); // Preamble action: E-RAB Setup is exchanged. f_rABSetupRequest(); fx_MME_Trace_Start_procedure(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a Deactivate Trace procedure if (fx_MME_Deactivate_Trace_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a DEACTIVATE_TRACE f_recv_Deactivate_Trace( mw_deactivate_TraceIEs( vc_MME_UE_ID, vc_eNB_UE_ID, PX_EUTRAN_TRACE_ID )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_rABSetupRelease(); f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_TRP_02 } // End of group Trace_group /** * @desc Location Reporting Procedures group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.11 Location reporting group */ group Location_reporting_group { /** * @desc Testcase function for TC_S1AP_MME_LRP_01 */ function f_TC_S1AP_MME_LRP_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); // Preamble action: E-RAB Setup is exchanged. f_rABSetupRequest(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a Location Reporting Control procedure if (fx_MME_Location_Reporting_Control_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a LOCATION_REPORTING_CONTROL f_recv_Location_Reporting_Control( mw_location_Reporting_ControlIEs( vc_MME_UE_ID, vc_eNB_UE_ID, m_request_Type( PX_EVENT_TYPE, PX_REPORT_AREA ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_rABSetupRelease(); f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_LRP_01 /** * @desc Testcase function for TC_S1AP_MME_LRP_02 */ function f_TC_S1AP_MME_LRP_02() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); // Preamble action: E-RAB Setup is exchanged, and a handover procedure is initiated. f_rABSetupRequest(); f_initiate_handover(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a Location Reporting Control procedure if (fx_MME_Location_Reporting_Control_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a LOCATION_REPORTING_CONTROL f_recv_Location_Reporting_Control( mw_location_Reporting_ControlIEs( vc_MME_UE_ID, vc_eNB_UE_ID, m_request_Type( direct, PX_REPORT_AREA ))); f_send_Location_Report_Failure_Indication( m_location_Report_Failure_IndicationIEs( vc_MME_UE_ID, vc_eNB_UE_ID, m_cause_nas( unspecified ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_rABSetupRelease(); f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_LRP_02 } // End of group Location_reporting_group /** * @desc MME direct information transfer group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.12 Warning message transmission group */ group MME_Warning_message_transmission_group { /** * @desc Testcase function for TC_S1AP_MME_WTP_01 */ function f_TC_S1AP_MME_WTP_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a Warning Message Transmission procedure if (fx_MME_Write_Replace_Warning_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a WRITE-REPLACE_WARNING_REQUEST f_recv_Write_Replace_Warning_Request( mw_write_Replace_Warning_RequestIEs( PX_MESSAGE_IDENTIFIER, PX_SERIAL_NUMBER, PX_REPETITION_PERIOD, PX_NUMBER_OF_BROADCASTS_REQUESTED )); f_send_Write_Replace_Warning_Response( m_write_Replace_Warning_ResponseIEs( PX_MESSAGE_IDENTIFIER, PX_SERIAL_NUMBER )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_WTP_01 /** * @desc Testcase function for TC_S1AP_MME_WTP_02 */ function f_TC_S1AP_MME_WTP_02() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); // Preamble action: E-RAB Setup is exchanged f_writeReplaceWarningExchanges(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a Warning Message Transmission procedure if (fx_MME_Kill_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a KILLG_REQUEST f_recv_Kill_Request( mw_kill_RequestIEs( PX_MESSAGE_IDENTIFIER, PX_SERIAL_NUMBER )); f_send_Kill_Response( m_kill_ResponseIEs( PX_MESSAGE_IDENTIFIER, PX_SERIAL_NUMBER )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_rABSetupRelease(); f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_WTP_02 } // End of group MME_Warning_message_transmission_group /** * @desc eNB direct information transfer group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.13 eNB direct information transfer group */ group ENB_direct_information_transfer_group { } // End of group ENB_direct_information_transfer_group /** * @desc MME direct information transfer group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.14 MME direct information transfer group */ group MME_direct_information_transfer_group { /** * @desc Testcase function for TC_S1AP_MME_MIT_01 */ function f_TC_S1AP_MME_MIT_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate an MME Direct Information Transfer procedure if (fx_MME_Direct_Information_Transfer_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a MME_DIRECT_INFORMATION_TRANSFER f_recv_Mme_Direct_Information_Transfer( mw_mMEDirectInformationTransfer( mw_Inter_SystemInformationTransferType( mw_RIMTransfer( ? // FIXME To be refined )))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_MIT_01 } // End of group MME_direct_information_transfer_group /** * @desc eNB configuration transfer group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.15 eNB configuration transfer group */ group ENB_configuration_transfer_group { } // End of group ENB_configuration_transfer_group /** * @desc MME configuration transfer group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.16 MME configuration transfer group */ group MME_configuration_transfer_group { /** * @desc Testcase function for TC_S1AP_MME_MCT_01 */ function f_TC_S1AP_MME_MCT_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate an MME Configuration Transfer procedure if (fx_MME_Configuration_Transfer_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a MME_CONFIGURATION_TRANSFER f_recv_Mme_Configuration_Transfer( mw_sON_Configuration_Transfer_MCT( mw_sON_Configuration_Transfer( mw_TargeteNB_ID(mw_Global_eNB_ID, mw_TAI), mw_SourceeNB_ID(mw_Global_eNB_ID, mw_TAI), ? // FIXME To be refined ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_MCT_01 } // End of group MME_configuration_transfer_group /** * @desc LPPa transport group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.17 LPPa transport group */ group LPPa_transport_group { /** * @desc Testcase function for TC_S1AP_MME_LPP_01 */ function f_TC_S1AP_MME_LPP_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); // Preamble action: E-RAB Setup is exchanged f_rABSetupRequest(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a LPPa Transport procedure using a UE associated signalling if (fx_mme_LPPa_Transport_procedure_ind(true) == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a DOWNLINK_UE_ASSOCIATED_LPPA_TRANSPORT f_recv_Downlink_UE_Associated_Lppa_Transport( mw_DownlinkUEAssociatedLppaTransportIEs_LPPa_PDU( ? )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_rABSetupRelease(); f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_LPP_01 /** * @desc Testcase function for TC_S1AP_MME_LPP_02 */ function f_TC_S1AP_MME_LPP_02() runs on S1APComponent { // Local variables // Preamble f_S1AP_mme_init(); // Preamble action: E-RAB Setup is exchanged f_rABSetupRequest(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a LPPa Transport procedure using a UE associated signalling if (fx_mme_LPPa_Transport_procedure_ind(false) == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a DOWNLINK_NONE_UE_ASSOCIATED_LPPA_TRANSPORT f_recv_Downlink_Non_UE_Associated_Lppa_Transport( mw_DownlinkNonUEAssociatedLppaTransportIEs_LPPa_PDU( ? )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } // Postamble f_rABSetupRelease(); f_postamble_S1AP_MME(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_LPP_02 } // End of group LPPa_transport_group /** * @desc NAS transport group * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.18 Unknown, Unforseen and Errorneous Protocol Data group */ group Unknown_unforseen_errorneous_group { } // End of group Unknown_unforseen_errorneous_group } // End of group MME_Role } // End of module S1AP_TCFunctions