Loading ttcn3/LibS1AP/LibS1AP_Steps.ttcn +9 −0 Original line number Diff line number Diff line Loading @@ -177,6 +177,15 @@ module LibS1AP_Steps { f_recv_S1AP_initiatingMessage(mw_HandoverRequired(p_value)) } // End of function f_recv_HandoverRequired /** * @desc Receive S1AP Message Handover Cancel * @param p_value Receive template for Handover Cancel IEs */ function f_recv_HandoverCancel(in template (present) RecordOf_ProtocolIE p_value :=? ) runs on S1APComponent { f_recv_S1AP_initiatingMessage(mw_HandoverCancel(p_value)) } // End of function f_recv_HandoverCancel /** * @desc Receive S1AP Message InitialContext_SetupResponse * @param p_value Receive template for InitialContext_SetupResponse IEs Loading ttcn3/LibS1AP/LibS1AP_Templates.ttcn +91 −3 Original line number Diff line number Diff line Loading @@ -614,9 +614,8 @@ module LibS1AP_Templates { mw_handoverType_IE(p_HandoverType_value), mw_cause_IE(p_Cause_value), mw_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value) } // End of template mw_HandoverRequiredIEs } // End of template m_E_RABSetupReqIEs }// End of group HandoverPreparation group HandoverPreparation{ Loading @@ -627,6 +626,31 @@ module LibS1AP_Templates { }// End of group HandoverResourceAllocation group HandoverCancelation{ /** * @desc Receive template for InitiatingMessage message with Handover Cancel payload * @param p_value The procedure code value */ template (present) InitiatingMessage mw_HandoverCancel( template (present) RecordOf_ProtocolIE p_value) := { procedureCode := id_HandoverCancel, criticality := reject, value_ := {RecordOf_ProtocolIE := p_value} } // End of template mw_HandoverCancel template (value) RecordOf_ProtocolIE mw_HandoverCancelIEs( template (present) MME_UE_S1AP_ID p_MME_value := ?, template (present) ENB_UE_S1AP_ID p_eNB_value := ?, template (present) Cause p_Cause_value := ? ) := { mw_MME_UE_S1AP_ID(p_MME_value), mw_eNB_UE_S1AP_ID(p_eNB_value), mw_cause_IE(p_Cause_value) } // End of template mw_HandoverCancelIEs }// End of group HandoverCancelation group ERABModify{ Loading Loading @@ -2758,6 +2782,20 @@ module LibS1AP_Templates { value_ := { RecordOf_E_RABToBeSetupItemBearerSUReq := valueof(p_value) } } // End of template m_E_RABToBeSetupList /** * @desc Send template for E-RABToBeSetupListCtxtSUReq protocol IE * @param p_value Protocol IE value. Default: m_E_RABToBeSetupListCtxtSUReq */ template (value) ProtocolIE m_E_RABToBeSetupListCtxt( in template (value) RecordOf_E_RABToBeSetupItemCtxtSUReq p_value := { m_E_RABToBeSetupItemCtxtSUReq } ) := { id := S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq, criticality := reject, value_ := { RecordOf_E_RABToBeSetupItemCtxtSUReq := valueof(p_value) } } // End of template m_E_RABToBeSetupListCtxt /** * @desc Send template for E-RABToBeModifiedItemBearerModReq protocol IE * @param p_value Protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq Loading Loading @@ -3065,6 +3103,18 @@ module LibS1AP_Templates { value_ := { RecordOf_E_RABSetupItemBearerSURes := p_value } } // End of template /** * @desc Receive template for E-RABSetupListCtxtSUReq protocol IE * @param p_value Expected protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq */ template (present) ProtocolIE mw_E_RABSetupListCtxt( template (present) RecordOf_E_RABToBeSetupItemCtxtSUReq p_value := { mw_E_RABToBeSetupItemCtxtSUReq } ) := { id := S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq, criticality := ignore, value_ := { RecordOf_E_RABToBeSetupItemCtxtSUReq := p_value } } // End of template /** * @desc Receive template for E-RABToBeSetupListBearerSUReq protocol IE * @param p_value Protocol IE value. Default: mw_E_RABToBeSetupItemBearerSUReq Loading Loading @@ -3890,6 +3940,44 @@ module LibS1AP_Templates { iE_Extensions := * } // End of template mw_E_RABSetupItemBearerSURes /** * @desc */ template(omit) E_RABToBeSetupItemCtxtSUReq m_E_RABToBeSetupItemCtxtSUReq( in E_RAB_ID p_e_RAB_ID := 0, in template (value) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := m_e_RABlevelQoSParameters, in template (value) TransportLayerAddress p_transportLayerAddress := '0'B, in template (value) GTP_TEID p_gTP_TEID := '00000000'O, in template (omit) NAS_PDU p_nAS_PDU := '0000'O, in template (omit) E_RABToBeSetupItemCtxtSUReq.iE_Extensions p_iE_Extensions := omit ) := { e_RAB_ID := p_e_RAB_ID, e_RABlevelQoSParameters := valueof(p_e_RABlevelQoSParameters), transportLayerAddress := p_transportLayerAddress, gTP_TEID := p_gTP_TEID, nAS_PDU := p_nAS_PDU, iE_Extensions := p_iE_Extensions } // End of template m_E_RABToBeSetupItemCtxtSUReq /** * @desc */ template (present) E_RABToBeSetupItemCtxtSUReq mw_E_RABToBeSetupItemCtxtSUReq( template (present) E_RAB_ID p_e_RAB_ID := 0, template (present) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := mw_e_RABlevelQoSParameters, template (present) TransportLayerAddress p_transportLayerAddress := '0'B, template (present) GTP_TEID p_gTP_TEID := '00000000'O, template NAS_PDU p_nAS_PDU := ?, template E_RABToBeSetupItemCtxtSUReq.iE_Extensions p_iE_Extensions := * ) := { e_RAB_ID := p_e_RAB_ID, e_RABlevelQoSParameters := p_e_RABlevelQoSParameters, transportLayerAddress := p_transportLayerAddress, gTP_TEID := p_gTP_TEID, nAS_PDU := p_nAS_PDU, iE_Extensions := p_iE_Extensions } // End of template mw_E_RABToBeSetupItemCtxtSUReq /** * @desc */ Loading ttcn3/LibS1AP/LibS1AP_TypesAndValues.ttcn +5 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,11 @@ module LibS1AP_TypesAndValues { */ type record of E_RABToBeSetupItemBearerSUReq RecordOf_E_RABToBeSetupItemBearerSUReq; /** * @desc List of E-RABToBeSetupItemCtxtSUReq IEs */ type record of E_RABToBeSetupItemCtxtSUReq RecordOf_E_RABToBeSetupItemCtxtSUReq; /** * @desc List of E-RABModifiedItemBearerSURes IEs */ Loading ttcn3/S1AP_TCFunctions.ttcn +54 −1 Original line number Diff line number Diff line Loading @@ -1680,7 +1680,7 @@ module S1AP_TCFunctions { )} )); //TODO check case1 and case2 option f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); Loading @@ -1693,6 +1693,59 @@ module S1AP_TCFunctions { } // End of function f_TC_S1AP_eNB_HAS_04 /** * @desc Testcase function for TC_S1AP_eNB_HAS_05 */ function f_TC_S1AP_eNB_HAS_05() 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 )); log("No response is send to IUT before timer TS1RELOCprep expires."); //TODO f_wait f_recv_HandoverCancel( mw_HandoverCancelIEs( vc_MME_UE_ID, vc_eNB_UE_ID, -//Cause )); 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_05 } // End of group Handover_signalling_group /** Loading Loading
ttcn3/LibS1AP/LibS1AP_Steps.ttcn +9 −0 Original line number Diff line number Diff line Loading @@ -177,6 +177,15 @@ module LibS1AP_Steps { f_recv_S1AP_initiatingMessage(mw_HandoverRequired(p_value)) } // End of function f_recv_HandoverRequired /** * @desc Receive S1AP Message Handover Cancel * @param p_value Receive template for Handover Cancel IEs */ function f_recv_HandoverCancel(in template (present) RecordOf_ProtocolIE p_value :=? ) runs on S1APComponent { f_recv_S1AP_initiatingMessage(mw_HandoverCancel(p_value)) } // End of function f_recv_HandoverCancel /** * @desc Receive S1AP Message InitialContext_SetupResponse * @param p_value Receive template for InitialContext_SetupResponse IEs Loading
ttcn3/LibS1AP/LibS1AP_Templates.ttcn +91 −3 Original line number Diff line number Diff line Loading @@ -614,9 +614,8 @@ module LibS1AP_Templates { mw_handoverType_IE(p_HandoverType_value), mw_cause_IE(p_Cause_value), mw_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value) } // End of template mw_HandoverRequiredIEs } // End of template m_E_RABSetupReqIEs }// End of group HandoverPreparation group HandoverPreparation{ Loading @@ -627,6 +626,31 @@ module LibS1AP_Templates { }// End of group HandoverResourceAllocation group HandoverCancelation{ /** * @desc Receive template for InitiatingMessage message with Handover Cancel payload * @param p_value The procedure code value */ template (present) InitiatingMessage mw_HandoverCancel( template (present) RecordOf_ProtocolIE p_value) := { procedureCode := id_HandoverCancel, criticality := reject, value_ := {RecordOf_ProtocolIE := p_value} } // End of template mw_HandoverCancel template (value) RecordOf_ProtocolIE mw_HandoverCancelIEs( template (present) MME_UE_S1AP_ID p_MME_value := ?, template (present) ENB_UE_S1AP_ID p_eNB_value := ?, template (present) Cause p_Cause_value := ? ) := { mw_MME_UE_S1AP_ID(p_MME_value), mw_eNB_UE_S1AP_ID(p_eNB_value), mw_cause_IE(p_Cause_value) } // End of template mw_HandoverCancelIEs }// End of group HandoverCancelation group ERABModify{ Loading Loading @@ -2758,6 +2782,20 @@ module LibS1AP_Templates { value_ := { RecordOf_E_RABToBeSetupItemBearerSUReq := valueof(p_value) } } // End of template m_E_RABToBeSetupList /** * @desc Send template for E-RABToBeSetupListCtxtSUReq protocol IE * @param p_value Protocol IE value. Default: m_E_RABToBeSetupListCtxtSUReq */ template (value) ProtocolIE m_E_RABToBeSetupListCtxt( in template (value) RecordOf_E_RABToBeSetupItemCtxtSUReq p_value := { m_E_RABToBeSetupItemCtxtSUReq } ) := { id := S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq, criticality := reject, value_ := { RecordOf_E_RABToBeSetupItemCtxtSUReq := valueof(p_value) } } // End of template m_E_RABToBeSetupListCtxt /** * @desc Send template for E-RABToBeModifiedItemBearerModReq protocol IE * @param p_value Protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq Loading Loading @@ -3065,6 +3103,18 @@ module LibS1AP_Templates { value_ := { RecordOf_E_RABSetupItemBearerSURes := p_value } } // End of template /** * @desc Receive template for E-RABSetupListCtxtSUReq protocol IE * @param p_value Expected protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq */ template (present) ProtocolIE mw_E_RABSetupListCtxt( template (present) RecordOf_E_RABToBeSetupItemCtxtSUReq p_value := { mw_E_RABToBeSetupItemCtxtSUReq } ) := { id := S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq, criticality := ignore, value_ := { RecordOf_E_RABToBeSetupItemCtxtSUReq := p_value } } // End of template /** * @desc Receive template for E-RABToBeSetupListBearerSUReq protocol IE * @param p_value Protocol IE value. Default: mw_E_RABToBeSetupItemBearerSUReq Loading Loading @@ -3890,6 +3940,44 @@ module LibS1AP_Templates { iE_Extensions := * } // End of template mw_E_RABSetupItemBearerSURes /** * @desc */ template(omit) E_RABToBeSetupItemCtxtSUReq m_E_RABToBeSetupItemCtxtSUReq( in E_RAB_ID p_e_RAB_ID := 0, in template (value) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := m_e_RABlevelQoSParameters, in template (value) TransportLayerAddress p_transportLayerAddress := '0'B, in template (value) GTP_TEID p_gTP_TEID := '00000000'O, in template (omit) NAS_PDU p_nAS_PDU := '0000'O, in template (omit) E_RABToBeSetupItemCtxtSUReq.iE_Extensions p_iE_Extensions := omit ) := { e_RAB_ID := p_e_RAB_ID, e_RABlevelQoSParameters := valueof(p_e_RABlevelQoSParameters), transportLayerAddress := p_transportLayerAddress, gTP_TEID := p_gTP_TEID, nAS_PDU := p_nAS_PDU, iE_Extensions := p_iE_Extensions } // End of template m_E_RABToBeSetupItemCtxtSUReq /** * @desc */ template (present) E_RABToBeSetupItemCtxtSUReq mw_E_RABToBeSetupItemCtxtSUReq( template (present) E_RAB_ID p_e_RAB_ID := 0, template (present) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := mw_e_RABlevelQoSParameters, template (present) TransportLayerAddress p_transportLayerAddress := '0'B, template (present) GTP_TEID p_gTP_TEID := '00000000'O, template NAS_PDU p_nAS_PDU := ?, template E_RABToBeSetupItemCtxtSUReq.iE_Extensions p_iE_Extensions := * ) := { e_RAB_ID := p_e_RAB_ID, e_RABlevelQoSParameters := p_e_RABlevelQoSParameters, transportLayerAddress := p_transportLayerAddress, gTP_TEID := p_gTP_TEID, nAS_PDU := p_nAS_PDU, iE_Extensions := p_iE_Extensions } // End of template mw_E_RABToBeSetupItemCtxtSUReq /** * @desc */ Loading
ttcn3/LibS1AP/LibS1AP_TypesAndValues.ttcn +5 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,11 @@ module LibS1AP_TypesAndValues { */ type record of E_RABToBeSetupItemBearerSUReq RecordOf_E_RABToBeSetupItemBearerSUReq; /** * @desc List of E-RABToBeSetupItemCtxtSUReq IEs */ type record of E_RABToBeSetupItemCtxtSUReq RecordOf_E_RABToBeSetupItemCtxtSUReq; /** * @desc List of E-RABModifiedItemBearerSURes IEs */ Loading
ttcn3/S1AP_TCFunctions.ttcn +54 −1 Original line number Diff line number Diff line Loading @@ -1680,7 +1680,7 @@ module S1AP_TCFunctions { )} )); //TODO check case1 and case2 option f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); Loading @@ -1693,6 +1693,59 @@ module S1AP_TCFunctions { } // End of function f_TC_S1AP_eNB_HAS_04 /** * @desc Testcase function for TC_S1AP_eNB_HAS_05 */ function f_TC_S1AP_eNB_HAS_05() 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 )); log("No response is send to IUT before timer TS1RELOCprep expires."); //TODO f_wait f_recv_HandoverCancel( mw_HandoverCancelIEs( vc_MME_UE_ID, vc_eNB_UE_ID, -//Cause )); 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_05 } // End of group Handover_signalling_group /** Loading