Loading ttcn3/LibS1AP/LibS1AP_Steps.ttcn +15 −11 Original line number Diff line number Diff line Loading @@ -168,6 +168,15 @@ module LibS1AP_Steps { f_recv_S1AP_successfulOutcome(mw_E_RABModifiedResponse(p_value)) } // End of f_recv_E_RABModifiedResponse /** * @desc Receive S1AP Message Handover Required * @param p_value Receive template for Handover Required IEs */ function f_recv_HandoverRequired(in template (present) RecordOf_ProtocolIE p_value :=? ) runs on S1APComponent { f_recv_S1AP_initiatingMessage(mw_HandoverRequired(p_value)) } // End of function f_recv_HandoverRequired /** * @desc Receive S1AP Message InitialContext_SetupResponse * @param p_value Receive template for InitialContext_SetupResponse IEs Loading Loading @@ -569,17 +578,6 @@ module LibS1AP_Steps { f_recv_S1AP_initiatingMessage(mw_eNB_Configuration_Transfer(p_value)) } // End of f_recv_eNB_Configuration_Transfer /** * @desc Receive S1AP Message MME Direct Information Transfer * @param p_value Receive template for MME DIRECT INFORMATION TRANSFER IEs * @see ETSI TS 136 413 V13.4.0 Clause 9.1.15 MME DIRECT INFORMATION TRANSFER */ function f_MME_Direct_Information_Transfer_procedure( template (present) RecordOf_ProtocolIE p_value := ? ) runs on S1APComponent { f_recv_S1AP_initiatingMessage(mw_Mme_Configuration_Transfer(p_value)) } // End of fx_MME_Direct_Information_Transfer_procedure /** * @desc Receive S1AP Message MME CONFIGURATION TRANSFER * @param p_value Receive template for MME_CONFIGURATION_TRANSFER IEs Loading Loading @@ -1097,6 +1095,12 @@ module LibS1AP_Steps { group eNBRole { /** * @desc Trigger a Handover preparation procedure * @return true on success, false otherwise */ external function fx_eNB_Handover_preparation_procedure() return boolean; /** * @desc Trigger an INITIAL UE MESSAGE procedure * @return true on success, false otherwise Loading ttcn3/LibS1AP/LibS1AP_Templates.ttcn +13 −11 Original line number Diff line number Diff line Loading @@ -59,14 +59,6 @@ module LibS1AP_Templates { group HandoverPreparation { group initiatingMessage { } // End of group initiatingMessage group successfulOutcome { } // End of group successfulOutcome group unsuccessfulOutcome { } // End of group unsuccessfulOutcome } // End of group HandoverPreparation Loading Loading @@ -558,6 +550,18 @@ module LibS1AP_Templates { group receiveClass1 { group HandoverRequired{ /** * @desc Receive template for InitiatingMessage message with Handover Required payload * @param p_value The procedure code value */ template (present) InitiatingMessage mw_HandoverRequired( template (present) RecordOf_ProtocolIE p_value) := { procedureCode := id_HandoverPreparation, criticality := reject, value_ := {RecordOf_ProtocolIE := p_value} } // End of template mw_HandoverRequired template (value) RecordOf_ProtocolIE mw_HandoverRequiredIEs( template (present) MME_UE_S1AP_ID p_MME_value := ?, template (present) ENB_UE_S1AP_ID p_eNB_value := ?, Loading Loading @@ -641,12 +645,10 @@ module LibS1AP_Templates { template (present) RecordOf_ProtocolIE mw_E_RABSetupReqIEs( template (present) MME_UE_S1AP_ID p_MME_value, template (present) ENB_UE_S1AP_ID p_eNB_value, template UEAggregateMaximumBitrate p_uEAggregateMaximumBitrate := ?, template (present) RecordOf_E_RABToBeSetupItemBearerSUReq p_RecordOf_E_RABToBeSetupItem_value ) := { mw_MME_UE_S1AP_ID(p_MME_value), mw_eNB_UE_S1AP_ID(p_eNB_value), mw_UE_aggregate_maximum_bitrate_IE(p_uEAggregateMaximumBitrate) ifpresent, mw_E_RABToBeSetupList(p_RecordOf_E_RABToBeSetupItem_value) } // End of template mw_E_RABSetupReqIEs Loading ttcn3/S1AP_TCFunctions.ttcn +173 −150 Original line number Diff line number Diff line Loading @@ -53,154 +53,6 @@ module S1AP_TCFunctions { f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // TODO Delete folowing loopback execution code log("V1: Send E_RAB WITH UE_Agregate_Max_Bit_Rate_IE"); log("V1: Await E_RAB WITH UE_Agregate_Max_Bit_Rate_IE"); f_send_E_RABSetupRequest(m_E_RABSetupReqIEs_UeAggregateMaxBitRate( vc_MME_UE_ID, vc_eNB_UE_ID, m_UEAggregateMaximumBitrate(1024,2048), {m_E_RABToBeSetupItemBearerSUReq ( -, m_e_RABlevelQoSParameters (5) )} )); f_recv_E_RABSetupRequest(mw_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, mw_UEAggregateMaximumBitrate(?,?), {mw_E_RABToBeSetupItemBearerSUReq( -, mw_e_RABlevelQoSParameters(?))} )); // log("V2: Send E_RAB WITH UE_Agregate_Max_Bit_Rate_IE"); // log("V2: Await E_RAB without UE_Agregate_Max_Bit_Rate_IE"); // // f_send_E_RABSetupRequest(m_E_RABSetupReqIEs_UeAggregateMaxBitRate( // vc_MME_UE_ID, // vc_eNB_UE_ID, // m_UEAggregateMaximumBitrate(1024,2048), // {m_E_RABToBeSetupItemBearerSUReq ( // -, // m_e_RABlevelQoSParameters // (5) // )} // )); // // f_recv_E_RABSetupRequest( // mw_E_RABSetupReqIEs( // vc_MME_UE_ID, // vc_eNB_UE_ID, // {mw_E_RABToBeSetupItemBearerSUReq( // -, // mw_e_RABlevelQoSParameters(?))} // ) // ); log("V3: Send E_RAB WITH UE_Agregate_Max_Bit_Rate_IE"); log("V3: Await E_RAB with AND without UE_Agregate_Max_Bit_Rate_IE"); f_send_E_RABSetupRequest(m_E_RABSetupReqIEs_UeAggregateMaxBitRate( vc_MME_UE_ID, vc_eNB_UE_ID, m_UEAggregateMaximumBitrate(1024,2048), {m_E_RABToBeSetupItemBearerSUReq ( -, m_e_RABlevelQoSParameters (5) )} )); f_recv_E_RABSetupRequest( ( mw_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, mw_UEAggregateMaximumBitrate(?,?), {mw_E_RABToBeSetupItemBearerSUReq( -, mw_e_RABlevelQoSParameters(?))} ), mw_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, -, {mw_E_RABToBeSetupItemBearerSUReq( -, mw_e_RABlevelQoSParameters(?))} ) ) ); log("V4: Send E_RAB WITH UE_Agregate_Max_Bit_Rate_IE"); log("V4: Await E_RAB with ifpresent UE_Agregate_Max_Bit_Rate_IE"); f_send_E_RABSetupRequest(m_E_RABSetupReqIEs_UeAggregateMaxBitRate( vc_MME_UE_ID, vc_eNB_UE_ID, m_UEAggregateMaximumBitrate(1024,2048), {m_E_RABToBeSetupItemBearerSUReq ( -, m_e_RABlevelQoSParameters (5) )} )); f_recv_E_RABSetupRequest(mw_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, -, ? )); log("V5: Send E_RAB without UE_Agregate_Max_Bit_Rate_IE"); log("V5: Await E_RAB without UE_Agregate_Max_Bit_Rate_IE"); 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_RABSetupRequest(mw_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, -, ? )); log("V6: Send E_RAB without UE_Agregate_Max_Bit_Rate_IE"); log("V6: Await E_RAB with ifpresent UE_Agregate_Max_Bit_Rate_IE"); 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_RABSetupRequest(mw_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, -, ? )); // TODO Delete above loopback execution code f_send_E_RABSetupRequest(m_E_RABSetupReqIEs( vc_MME_UE_ID, Loading Loading @@ -1681,6 +1533,174 @@ module S1AP_TCFunctions { */ group Handover_signalling_group { /** * @desc Testcase function for TC_S1AP_eNB_HAS_01 */ function f_TC_S1AP_eNB_HAS_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: TODO check if some preamble required f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a Handover to be forwarded if (fx_eNB_Handover_preparation_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a HANDOVER_REQUIRED f_recv_HandoverRequired( mw_HandoverRequiredIEs( vc_MME_UE_ID, vc_eNB_UE_ID, intralte,//handover_Type -,//Cause -,//TargetId -//SourceToTargetTransparentContainer )); 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_HAS_01 /** * @desc Testcase function for TC_S1AP_eNB_HAS_02 */ function f_TC_S1AP_eNB_HAS_02() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: TODO check if some preamble required f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a Handover to be forwarded if (fx_eNB_Handover_preparation_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a HANDOVER_REQUIRED f_recv_HandoverRequired( mw_HandoverRequiredIEs( vc_MME_UE_ID, vc_eNB_UE_ID, ltetoutran,//handover_Type -,//Cause -,//TargetId -//TODO Check if SourceRNCToTargetRNCTransparentContainer with UE History Information is present )); 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_HAS_02 /** * @desc Testcase function for TC_S1AP_eNB_HAS_03 */ function f_TC_S1AP_eNB_HAS_03() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: TODO check if some preamble required f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a Handover to be forwarded if (fx_eNB_Handover_preparation_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a HANDOVER_REQUIRED f_recv_HandoverRequired( mw_HandoverRequiredIEs( vc_MME_UE_ID, vc_eNB_UE_ID, ltetogeran,//handover_Type -,//Cause -,//TargetId -//TODO Check if SourceBSSToTargetBSSTransparentContainer )); 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_HAS_03 /** * @desc Testcase function for TC_S1AP_eNB_HAS_04 */ function f_TC_S1AP_eNB_HAS_04() runs on S1APComponent { // Local variables const E_RAB_ID c_E_RAB_ID_A := 0; const NAS_PDU c_nAS_PDU := '0000'O; // Preamble f_S1AP_enb_init(); // Preamble action: TODO check if some preamble required f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a Handover to be forwarded if (fx_eNB_Handover_preparation_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a HANDOVER_REQUIRED f_recv_HandoverRequired( mw_HandoverRequiredIEs( vc_MME_UE_ID, vc_eNB_UE_ID, intralte,//handover_Type -,//Cause -,//TargetId -//SourceToTargetTransparentContainer )); f_send_E_RABModifiedRequest(m_E_RABModifiedReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, {m_E_RABToBeModifiedItemBearerSUReq( c_E_RAB_ID_A, m_e_RABlevelQoSParameters(5), c_nAS_PDU )} )); 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_HAS_04 } // End of group Handover_signalling_group /** Loading Loading @@ -2968,9 +2988,12 @@ module S1AP_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); //f_send_( ); //f_recv_( ); f_recv_E_RABSetupRequest(superset (all from mw_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, ? ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); Loading ttcn3/S1AP_TestCases.ttcn +16 −0 Original line number Diff line number Diff line Loading @@ -1914,6 +1914,14 @@ module S1AP_TestCases { } // End of group LPPa_transport_group /** * @desc Unknown, Unforseen and Erroneous Protocol Data * @see ETSI TS 103 497-2 Clause 5.2.2.2.18 Unknown, Unforseen and Erroneous Protocol Data */ group Unknown_unforseen_errorneous_group { } // End of group Unknown_unforseen_errorneous_group } // End of group eNB_Role group MME_Role { // TODO Review all preamble action: E-RAB Setup is exchanged for MME role, shall not be f_rABSetupRequest Loading Loading @@ -3072,6 +3080,14 @@ module S1AP_TestCases { } // End of group LPPa_transport_group /** * @desc Unknown, Unforseen and Erroneous Protocol Data * @see ETSI TS 103 497-2 Clause 5.2.2.2.18 Unknown, Unforseen and Erroneous Protocol Data */ group Unknown_unforseen_errorneous_group { } // End of group Unknown_unforseen_errorneous_group } // End of group MME_Role Loading Loading
ttcn3/LibS1AP/LibS1AP_Steps.ttcn +15 −11 Original line number Diff line number Diff line Loading @@ -168,6 +168,15 @@ module LibS1AP_Steps { f_recv_S1AP_successfulOutcome(mw_E_RABModifiedResponse(p_value)) } // End of f_recv_E_RABModifiedResponse /** * @desc Receive S1AP Message Handover Required * @param p_value Receive template for Handover Required IEs */ function f_recv_HandoverRequired(in template (present) RecordOf_ProtocolIE p_value :=? ) runs on S1APComponent { f_recv_S1AP_initiatingMessage(mw_HandoverRequired(p_value)) } // End of function f_recv_HandoverRequired /** * @desc Receive S1AP Message InitialContext_SetupResponse * @param p_value Receive template for InitialContext_SetupResponse IEs Loading Loading @@ -569,17 +578,6 @@ module LibS1AP_Steps { f_recv_S1AP_initiatingMessage(mw_eNB_Configuration_Transfer(p_value)) } // End of f_recv_eNB_Configuration_Transfer /** * @desc Receive S1AP Message MME Direct Information Transfer * @param p_value Receive template for MME DIRECT INFORMATION TRANSFER IEs * @see ETSI TS 136 413 V13.4.0 Clause 9.1.15 MME DIRECT INFORMATION TRANSFER */ function f_MME_Direct_Information_Transfer_procedure( template (present) RecordOf_ProtocolIE p_value := ? ) runs on S1APComponent { f_recv_S1AP_initiatingMessage(mw_Mme_Configuration_Transfer(p_value)) } // End of fx_MME_Direct_Information_Transfer_procedure /** * @desc Receive S1AP Message MME CONFIGURATION TRANSFER * @param p_value Receive template for MME_CONFIGURATION_TRANSFER IEs Loading Loading @@ -1097,6 +1095,12 @@ module LibS1AP_Steps { group eNBRole { /** * @desc Trigger a Handover preparation procedure * @return true on success, false otherwise */ external function fx_eNB_Handover_preparation_procedure() return boolean; /** * @desc Trigger an INITIAL UE MESSAGE procedure * @return true on success, false otherwise Loading
ttcn3/LibS1AP/LibS1AP_Templates.ttcn +13 −11 Original line number Diff line number Diff line Loading @@ -59,14 +59,6 @@ module LibS1AP_Templates { group HandoverPreparation { group initiatingMessage { } // End of group initiatingMessage group successfulOutcome { } // End of group successfulOutcome group unsuccessfulOutcome { } // End of group unsuccessfulOutcome } // End of group HandoverPreparation Loading Loading @@ -558,6 +550,18 @@ module LibS1AP_Templates { group receiveClass1 { group HandoverRequired{ /** * @desc Receive template for InitiatingMessage message with Handover Required payload * @param p_value The procedure code value */ template (present) InitiatingMessage mw_HandoverRequired( template (present) RecordOf_ProtocolIE p_value) := { procedureCode := id_HandoverPreparation, criticality := reject, value_ := {RecordOf_ProtocolIE := p_value} } // End of template mw_HandoverRequired template (value) RecordOf_ProtocolIE mw_HandoverRequiredIEs( template (present) MME_UE_S1AP_ID p_MME_value := ?, template (present) ENB_UE_S1AP_ID p_eNB_value := ?, Loading Loading @@ -641,12 +645,10 @@ module LibS1AP_Templates { template (present) RecordOf_ProtocolIE mw_E_RABSetupReqIEs( template (present) MME_UE_S1AP_ID p_MME_value, template (present) ENB_UE_S1AP_ID p_eNB_value, template UEAggregateMaximumBitrate p_uEAggregateMaximumBitrate := ?, template (present) RecordOf_E_RABToBeSetupItemBearerSUReq p_RecordOf_E_RABToBeSetupItem_value ) := { mw_MME_UE_S1AP_ID(p_MME_value), mw_eNB_UE_S1AP_ID(p_eNB_value), mw_UE_aggregate_maximum_bitrate_IE(p_uEAggregateMaximumBitrate) ifpresent, mw_E_RABToBeSetupList(p_RecordOf_E_RABToBeSetupItem_value) } // End of template mw_E_RABSetupReqIEs Loading
ttcn3/S1AP_TCFunctions.ttcn +173 −150 Original line number Diff line number Diff line Loading @@ -53,154 +53,6 @@ module S1AP_TCFunctions { f_S1AP_enb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // TODO Delete folowing loopback execution code log("V1: Send E_RAB WITH UE_Agregate_Max_Bit_Rate_IE"); log("V1: Await E_RAB WITH UE_Agregate_Max_Bit_Rate_IE"); f_send_E_RABSetupRequest(m_E_RABSetupReqIEs_UeAggregateMaxBitRate( vc_MME_UE_ID, vc_eNB_UE_ID, m_UEAggregateMaximumBitrate(1024,2048), {m_E_RABToBeSetupItemBearerSUReq ( -, m_e_RABlevelQoSParameters (5) )} )); f_recv_E_RABSetupRequest(mw_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, mw_UEAggregateMaximumBitrate(?,?), {mw_E_RABToBeSetupItemBearerSUReq( -, mw_e_RABlevelQoSParameters(?))} )); // log("V2: Send E_RAB WITH UE_Agregate_Max_Bit_Rate_IE"); // log("V2: Await E_RAB without UE_Agregate_Max_Bit_Rate_IE"); // // f_send_E_RABSetupRequest(m_E_RABSetupReqIEs_UeAggregateMaxBitRate( // vc_MME_UE_ID, // vc_eNB_UE_ID, // m_UEAggregateMaximumBitrate(1024,2048), // {m_E_RABToBeSetupItemBearerSUReq ( // -, // m_e_RABlevelQoSParameters // (5) // )} // )); // // f_recv_E_RABSetupRequest( // mw_E_RABSetupReqIEs( // vc_MME_UE_ID, // vc_eNB_UE_ID, // {mw_E_RABToBeSetupItemBearerSUReq( // -, // mw_e_RABlevelQoSParameters(?))} // ) // ); log("V3: Send E_RAB WITH UE_Agregate_Max_Bit_Rate_IE"); log("V3: Await E_RAB with AND without UE_Agregate_Max_Bit_Rate_IE"); f_send_E_RABSetupRequest(m_E_RABSetupReqIEs_UeAggregateMaxBitRate( vc_MME_UE_ID, vc_eNB_UE_ID, m_UEAggregateMaximumBitrate(1024,2048), {m_E_RABToBeSetupItemBearerSUReq ( -, m_e_RABlevelQoSParameters (5) )} )); f_recv_E_RABSetupRequest( ( mw_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, mw_UEAggregateMaximumBitrate(?,?), {mw_E_RABToBeSetupItemBearerSUReq( -, mw_e_RABlevelQoSParameters(?))} ), mw_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, -, {mw_E_RABToBeSetupItemBearerSUReq( -, mw_e_RABlevelQoSParameters(?))} ) ) ); log("V4: Send E_RAB WITH UE_Agregate_Max_Bit_Rate_IE"); log("V4: Await E_RAB with ifpresent UE_Agregate_Max_Bit_Rate_IE"); f_send_E_RABSetupRequest(m_E_RABSetupReqIEs_UeAggregateMaxBitRate( vc_MME_UE_ID, vc_eNB_UE_ID, m_UEAggregateMaximumBitrate(1024,2048), {m_E_RABToBeSetupItemBearerSUReq ( -, m_e_RABlevelQoSParameters (5) )} )); f_recv_E_RABSetupRequest(mw_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, -, ? )); log("V5: Send E_RAB without UE_Agregate_Max_Bit_Rate_IE"); log("V5: Await E_RAB without UE_Agregate_Max_Bit_Rate_IE"); 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_RABSetupRequest(mw_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, -, ? )); log("V6: Send E_RAB without UE_Agregate_Max_Bit_Rate_IE"); log("V6: Await E_RAB with ifpresent UE_Agregate_Max_Bit_Rate_IE"); 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_RABSetupRequest(mw_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, -, ? )); // TODO Delete above loopback execution code f_send_E_RABSetupRequest(m_E_RABSetupReqIEs( vc_MME_UE_ID, Loading Loading @@ -1681,6 +1533,174 @@ module S1AP_TCFunctions { */ group Handover_signalling_group { /** * @desc Testcase function for TC_S1AP_eNB_HAS_01 */ function f_TC_S1AP_eNB_HAS_01() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: TODO check if some preamble required f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a Handover to be forwarded if (fx_eNB_Handover_preparation_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a HANDOVER_REQUIRED f_recv_HandoverRequired( mw_HandoverRequiredIEs( vc_MME_UE_ID, vc_eNB_UE_ID, intralte,//handover_Type -,//Cause -,//TargetId -//SourceToTargetTransparentContainer )); 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_HAS_01 /** * @desc Testcase function for TC_S1AP_eNB_HAS_02 */ function f_TC_S1AP_eNB_HAS_02() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: TODO check if some preamble required f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a Handover to be forwarded if (fx_eNB_Handover_preparation_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a HANDOVER_REQUIRED f_recv_HandoverRequired( mw_HandoverRequiredIEs( vc_MME_UE_ID, vc_eNB_UE_ID, ltetoutran,//handover_Type -,//Cause -,//TargetId -//TODO Check if SourceRNCToTargetRNCTransparentContainer with UE History Information is present )); 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_HAS_02 /** * @desc Testcase function for TC_S1AP_eNB_HAS_03 */ function f_TC_S1AP_eNB_HAS_03() runs on S1APComponent { // Local variables // Preamble f_S1AP_enb_init(); // Preamble action: TODO check if some preamble required f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a Handover to be forwarded if (fx_eNB_Handover_preparation_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a HANDOVER_REQUIRED f_recv_HandoverRequired( mw_HandoverRequiredIEs( vc_MME_UE_ID, vc_eNB_UE_ID, ltetogeran,//handover_Type -,//Cause -,//TargetId -//TODO Check if SourceBSSToTargetBSSTransparentContainer )); 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_HAS_03 /** * @desc Testcase function for TC_S1AP_eNB_HAS_04 */ function f_TC_S1AP_eNB_HAS_04() runs on S1APComponent { // Local variables const E_RAB_ID c_E_RAB_ID_A := 0; const NAS_PDU c_nAS_PDU := '0000'O; // Preamble f_S1AP_enb_init(); // Preamble action: TODO check if some preamble required f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // 1. to indicate a Handover to be forwarded if (fx_eNB_Handover_preparation_procedure() == false) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { // 2. sends a HANDOVER_REQUIRED f_recv_HandoverRequired( mw_HandoverRequiredIEs( vc_MME_UE_ID, vc_eNB_UE_ID, intralte,//handover_Type -,//Cause -,//TargetId -//SourceToTargetTransparentContainer )); f_send_E_RABModifiedRequest(m_E_RABModifiedReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, {m_E_RABToBeModifiedItemBearerSUReq( c_E_RAB_ID_A, m_e_RABlevelQoSParameters(5), c_nAS_PDU )} )); 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_HAS_04 } // End of group Handover_signalling_group /** Loading Loading @@ -2968,9 +2988,12 @@ module S1AP_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); //f_send_( ); //f_recv_( ); f_recv_E_RABSetupRequest(superset (all from mw_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, ? ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); Loading
ttcn3/S1AP_TestCases.ttcn +16 −0 Original line number Diff line number Diff line Loading @@ -1914,6 +1914,14 @@ module S1AP_TestCases { } // End of group LPPa_transport_group /** * @desc Unknown, Unforseen and Erroneous Protocol Data * @see ETSI TS 103 497-2 Clause 5.2.2.2.18 Unknown, Unforseen and Erroneous Protocol Data */ group Unknown_unforseen_errorneous_group { } // End of group Unknown_unforseen_errorneous_group } // End of group eNB_Role group MME_Role { // TODO Review all preamble action: E-RAB Setup is exchanged for MME role, shall not be f_rABSetupRequest Loading Loading @@ -3072,6 +3080,14 @@ module S1AP_TestCases { } // End of group LPPa_transport_group /** * @desc Unknown, Unforseen and Erroneous Protocol Data * @see ETSI TS 103 497-2 Clause 5.2.2.2.18 Unknown, Unforseen and Erroneous Protocol Data */ group Unknown_unforseen_errorneous_group { } // End of group Unknown_unforseen_errorneous_group } // End of group MME_Role Loading