Loading ttcn3/LibS1AP/LibS1AP_Steps.ttcn +9 −0 Original line number Diff line number Diff line Loading @@ -182,6 +182,15 @@ module LibS1AP_Steps { f_recv_S1AP_successfulOutcome(mw_HandoverCommand(p_value)) } // End of function f_recv_HandoverRequired /** * @desc Receive S1AP Message Handover Request * @param p_value Receive template for Handover Request IEs */ function f_recv_HandoverRequest(in template (present) RecordOf_ProtocolIE p_value :=? ) runs on S1APComponent { f_recv_S1AP_initiatingMessage(mw_HandoverRequest(p_value)) } // End of function f_recv_HandoverRequest /** * @desc Receive S1AP Message Handover Cancel * @param p_value Receive template for Handover Cancel IEs Loading ttcn3/LibS1AP/LibS1AP_Templates.ttcn +195 −9 Original line number Diff line number Diff line Loading @@ -58,7 +58,7 @@ module LibS1AP_Templates { group HandoverPreparation { /** * @desc Receive template for InitiatingMessage message with Handover Required payload * @desc Send template for InitiatingMessage message with Handover Required payload * @param p_value The protocol information elements. */ template (value) InitiatingMessage m_HandoverRequired( Loading @@ -84,8 +84,22 @@ module LibS1AP_Templates { m_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value) } // End of template mw_HandoverCommandIEs template (value) RecordOf_ProtocolIE m_HandoverRequiredIEs_CSGID_CellAccessMode( in template (value) MME_UE_S1AP_ID p_MME_value, in template (value) ENB_UE_S1AP_ID p_eNB_value, in template (value) HandoverType p_handoverType, in template (value) Cause p_cause, in template (value) TargetID p_targetId_value, in template (value) Source_ToTarget_TransparentContainer p_Source_ToTarget_TransparentContainer_value, in template (value) CSG_Id p_CSG_Id_value, in template (value) CellAccessMode p_CellAccessMode_value ) modifies m_HandoverRequiredIEs := { m_CSG_Id_IE(p_CSG_Id_value), m_CellAccessMode_IE(p_CellAccessMode_value) } // End of template mw_HandoverCommandIEs /** * @desc Receive template for SuccessfulOutcome message with Handover Command payload * @desc Send template for SuccessfulOutcome message with Handover Command payload * @param p_value The protocol information elements. */ template (value) SuccessfulOutcome m_HandoverCommand( Loading Loading @@ -1089,10 +1103,67 @@ module LibS1AP_Templates { mw_target_ToSource_TransparentContainer_IE(p_Target_ToSource_TransparentContainer_value) } // End of template mw_HandoverRequiredIEs template (present) RecordOf_ProtocolIE mw_HandoverCommandIEs_NASSecurity( template (present) MME_UE_S1AP_ID p_MME_value := ?, template (present) ENB_UE_S1AP_ID p_eNB_value := ?, template (present) HandoverType p_HandoverType_value := ?, template (present) Target_ToSource_TransparentContainer p_Target_ToSource_TransparentContainer_value := ?, template (present) NASSecurityParameterstoE_UTRAN p_nasSecurityParametersToEutran_value := ? ) modifies mw_HandoverCommandIEs:= { mw_nasSecurityParametersToEutran_IE(p_nasSecurityParametersToEutran_value) } // End of template mw_HandoverRequiredIEs }// End of group HandoverPreparation group HandoverResourceAllocation{ /** * @desc Receive template for InitiatingMessage message with Handover Request payload * @param p_value The list of Protocol IE values */ template (present) InitiatingMessage mw_HandoverRequest( template (present) RecordOf_ProtocolIE p_value) := { procedureCode := id_HandoverResourceAllocation, criticality := reject, value_ := {RecordOf_ProtocolIE := p_value} } // End of template mw_HandoverRequest template (present) RecordOf_ProtocolIE mw_HandoverRequestIEs( template (present) MME_UE_S1AP_ID p_MME_value := ?, template (present) HandoverType p_HandoverType_value := ?, template (present) Cause p_Cause_value := ?, template (present) UEAggregateMaximumBitrate p_UEAggregateMaximumBitrate := ?, template (present) RecordOf_E_RABToBeSetupItemHOReq p_RecordOf_E_RABToBeSetupItem_value := ?, template (present) Source_ToTarget_TransparentContainer p_Source_ToTarget_TransparentContainer_value := ?, template (present) UESecurityCapabilities p_UESecurityCapabilities := ?, template (present) SecurityContext p_SecurityContext := ? ) := { mw_MME_UE_S1AP_ID(p_MME_value), mw_handoverType_IE(p_HandoverType_value), mw_cause_IE(p_Cause_value), mw_UE_aggregate_maximum_bitrate_IE(p_UEAggregateMaximumBitrate), mw_E_RABToBeSetupListHOReq(p_RecordOf_E_RABToBeSetupItem_value), mw_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value), mw_UE_securityCapabilities_IE(p_UESecurityCapabilities, ignore), mw_securityContext_IE(p_SecurityContext) } // End of template mw_HandoverRequestIEs template (present) RecordOf_ProtocolIE mw_HandoverRequestIEs_CSGID_CellAccessMode( template (present) MME_UE_S1AP_ID p_MME_value := ?, template (present) HandoverType p_HandoverType_value := ?, template (present) Cause p_Cause_value := ?, template (present) UEAggregateMaximumBitrate p_UEAggregateMaximumBitrate := ?, template (present) RecordOf_E_RABToBeSetupItemHOReq p_RecordOf_E_RABToBeSetupItem_value := ?, template (present) Source_ToTarget_TransparentContainer p_Source_ToTarget_TransparentContainer_value := ?, template (present) UESecurityCapabilities p_UESecurityCapabilities := ?, template (present) SecurityContext p_SecurityContext := ?, template (present) CSG_Id p_CSG_Id_value := ?, template (present) CellAccessMode p_CellAccessMode_value := ? ) modifies mw_HandoverRequestIEs := { mw_CSG_Id_IE(p_CSG_Id_value), mw_CellAccessMode_IE(p_CellAccessMode_value) } // End of template mw_HandoverRequestIEs /** * @desc Receive template for SuccessfulOutcome message with Handover Cancel payload * @param p_value The expected protocol information elements. Default: ? Loading Loading @@ -3583,6 +3654,17 @@ module LibS1AP_Templates { } } template (value) LAI m_LAI( in template (value) PLMNidentity p_PLMNidentity, in template (value) LAC p_lAC ) := { pLMNidentity := p_PLMNidentity, lAC := p_lAC, iE_Extensions := omit } template (value) RNC_ID m_rNC_Id := 1; template (value) TargetID m_Target_CGI ( in template (value) PLMNidentity p_pLMNidentity, in template (value) LAC p_lAC, Loading @@ -3597,6 +3679,26 @@ module LibS1AP_Templates { } } template (value) ProtocolIE m_CSG_Id_IE( in template (value) CSG_Id p_value, in template (value) ProtocolIE.criticality p_criticality := reject ) := { id := S1AP_Constants.id_CSG_Id, criticality := p_criticality, value_ := {CSG_Id := valueof(p_value)} } // End of template m_CSG_Id_IE //template (value) CellAccessMode m_CellAccessMode_hybrid := hybrid; template (value) ProtocolIE m_CellAccessMode_IE( in template (value) CellAccessMode p_value, in template (value) ProtocolIE.criticality p_criticality := reject ) := { id := S1AP_Constants.id_CellAccessMode, criticality := p_criticality, value_ := {CellAccessMode := valueof(p_value)} } // End of template m_CellAccessMode_IE /** * @desc Send template for UE aggregate maxmum bitrate IE * @param p_value UEAggregateMaximumBitrate value Loading Loading @@ -4319,6 +4421,18 @@ module LibS1AP_Templates { value_ := { RecordOf_E_RABToBeSetupItemCtxtSUReq := p_value } } // End of template mw_E_RABToBeSetupCtxtList /** * @desc Send template for E-RABToBeSetupListHOReq protocol IE * @param p_value Protocol IE value. Default: mw_E_RABToBeSetupItemHOReq */ template (present) ProtocolIE mw_E_RABToBeSetupListHOReq( template (present) RecordOf_E_RABToBeSetupItemHOReq p_value := { mw_E_RABToBeSetupItemHOReq } ) := { id := S1AP_Constants.id_E_RABToBeSetupListHOReq, criticality := reject, value_ := { RecordOf_E_RABToBeSetupItemHOReq := p_value } } // End of template mw_E_RABToBeSetupListHOReq /** * @desc Receive template for E-RABModifiedListBearerModReq protocol IE * @param p_value Expected protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq Loading Loading @@ -4375,6 +4489,33 @@ module LibS1AP_Templates { value_ := { RecordOf_E_RABToBeSwitchedDLItem := p_value } } // End of template mw_E_RABToBeSwitchedDLList /** * @desc Receive template for CSG protocol IE * @param p_value Protocol IE value. Default: ? */ template (present) ProtocolIE mw_CSG_Id_IE( in template (present) CSG_Id p_value, in template (present) ProtocolIE.criticality p_criticality := reject ) := { id := S1AP_Constants.id_CSG_Id, criticality := p_criticality, value_ := {CSG_Id := p_value} } // End of template mw_CSG_Id_IE /** * @desc Receive template for CellAccessMode protocol IE * @param p_value Protocol IE value. Default: ? */ template (present) ProtocolIE mw_CellAccessMode_IE( in template (present) CellAccessMode p_value, in template (present) ProtocolIE.criticality p_criticality := reject ) := { id := S1AP_Constants.id_CellAccessMode, criticality := p_criticality, value_ := {CellAccessMode := p_value} } // End of template mw_CellAccessMode_IE /** * @desc Receive template for UE aggregate maxmum bitrate IE * @param p_value UEAggregateMaximumBitrate value Loading Loading @@ -5017,6 +5158,34 @@ module LibS1AP_Templates { value_ := {SecurityKey := p_value} } // End of template mw_securityKey_IE /** * @desc Receive template for security context IE * @param p_value SecurityContext value * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.26 Security Context */ template (present) ProtocolIE mw_securityContext_IE( in template (present) SecurityContext p_value, in template (present) ProtocolIE.criticality p_criticality := reject ) := { id := S1AP_Constants.id_SecurityContext, criticality := p_criticality, value_ := {SecurityContext := p_value} } // End of template m_securityContext_IE /** * @desc receive template for nas Security Parameters To Eutran IE * @param p_value SecurityContext value * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.31 NAS Security Parameters to E_UTRAN */ template (present) ProtocolIE mw_nasSecurityParametersToEutran_IE( in template (present) NASSecurityParameterstoE_UTRAN p_value, in template (present) ProtocolIE.criticality p_criticality := reject ) := { id := S1AP_Constants.id_NASSecurityParameterstoE_UTRAN, criticality := p_criticality, value_ := {NASSecurityParameterstoE_UTRAN := p_value} } // End of template m_nasSecurityParametersToEutran_IE /** * @desc receive template for security key IE * @param p_value UESecurityCapabilities value Loading Loading @@ -5312,6 +5481,23 @@ module LibS1AP_Templates { iE_Extensions := p_iE_Extensions } // End of template m_E_RABToBeSetupItemHOReq /** * @desc */ template (present) E_RABToBeSetupItemHOReq mw_E_RABToBeSetupItemHOReq( in template (present) E_RAB_ID p_e_RAB_ID := ?, in template (present) TransportLayerAddress p_transportLayerAddress := ?, in template (present) GTP_TEID p_gTP_TEID := ?, in template (present) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := ?, in template E_RABToBeSetupItemHOReq.iE_Extensions p_iE_Extensions := * ) := { e_RAB_ID := p_e_RAB_ID, transportLayerAddress := p_transportLayerAddress, gTP_TEID := p_gTP_TEID, e_RABlevelQosParameters := p_e_RABlevelQoSParameters, iE_Extensions := p_iE_Extensions } // End of template mw_E_RABToBeSetupItemHOReq /** * @desc * @param p_e_RAB_ID Loading ttcn3/S1AP_TCFunctions.ttcn +194 −0 Original line number Diff line number Diff line Loading @@ -4701,6 +4701,200 @@ module S1AP_TCFunctions { } // End of function f_TC_S1AP_MME_HAS_01 /** * @desc Testcase function for TC_S1AP_MME_HAS_02 */ function f_TC_S1AP_MME_HAS_02() runs on S1APComponent { // Local variables const SourceRNC_ToTargetRNC_TransparentContainer c_sourceRNC_ToTargetRNC_TransparentContainer := '12121212'O; const TargetRNC_ToSourceRNC_TransparentContainer c_targetRNC_ToSourceRNC_TransparentContainer := '12121212'O; // Preamble f_S1AP_mme_init(); // Preamble action: E-RAB Setup is exchanged. //f_rABSetup...; f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // sends a HANDOVER_REQUIRED f_send_HandoverRequired( m_HandoverRequiredIEs( vc_MME_UE_ID, vc_eNB_UE_ID, ltetoutran, m_cause_ran(unspecified), m_TargetRNC_ID(m_LAI('000001'O, //plmn id '0001'O), //lac m_rNC_Id), c_sourceRNC_ToTargetRNC_TransparentContainer )); f_recv_HandoverCommand( mw_HandoverCommandIEs_NASSecurity( vc_MME_UE_ID, vc_eNB_UE_ID, ltetoutran,//handover_Type c_targetRNC_ToSourceRNC_TransparentContainer,//TargetToSourceTransparentContainer - )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble //f_rABSetupRelease...; f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_HAS_02 /** * @desc Testcase function for TC_S1AP_MME_HAS_03 */ function f_TC_S1AP_MME_HAS_03() runs on S1APComponent { // Local variables const SourceBSS_ToTargetBSS_TransparentContainer c_sourceBSS_ToTargetBSS_TransparentContainer := '12121212'O; const TargetBSS_ToSourceBSS_TransparentContainer c_targetBSS_ToSourceBSS_TransparentContainer := '12121212'O; // Preamble f_S1AP_mme_init(); // Preamble action: E-RAB Setup is exchanged. //f_rABSetup...; f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // sends a HANDOVER_REQUIRED f_send_HandoverRequired( m_HandoverRequiredIEs( vc_MME_UE_ID, vc_eNB_UE_ID, ltetogeran, m_cause_ran(unspecified), m_Target_CGI('000001'O, //plmn id '0001'O,//lac '0001'O //ci ), c_sourceBSS_ToTargetBSS_TransparentContainer )); f_recv_HandoverCommand( mw_HandoverCommandIEs_NASSecurity( vc_MME_UE_ID, vc_eNB_UE_ID, ltetogeran,//handover_Type c_targetBSS_ToSourceBSS_TransparentContainer,//TargetToSourceTransparentContainer - )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble //f_rABSetupRelease...; f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_HAS_03 /** * @desc Testcase function for TC_S1AP_MME_HAS_04_ENB1 */ function f_TC_S1AP_MME_HAS_04_ENB1() runs on S1APComponent { // Local variables const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O; const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O; // Preamble f_S1AP_mme_init(); // Preamble action: E-RAB Setup is exchanged. //f_rABSetup...; f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // sends a HANDOVER_REQUIRED f_send_HandoverRequired( m_HandoverRequiredIEs_CSGID_CellAccessMode( vc_MME_UE_ID, vc_eNB_UE_ID, intralte, m_cause_ran(unspecified), m_TargeteNB_ID(m_Global_ENB_ID('000001'O, m_ENB_ID_macro), m_TAI('000001'O, '0001'O)), c_source_ToTarget_TransparentContainer, '000000000000000000000000001'B, hybrid )); f_recv_HandoverCommand( mw_HandoverCommandIEs( vc_MME_UE_ID, vc_eNB_UE_ID, intralte,//handover_Type c_target_ToSource_TransparentContainer//TargetToSourceTransparentContainer )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble //f_rABSetupRelease...; f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_HAS_04_ENB1 /** * @desc Testcase function for TC_S1AP_MME_HAS_04_ENB2 */ function f_TC_S1AP_MME_HAS_04_ENB2() runs on S1APComponent { // Local variables const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O; const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O; // Preamble f_S1AP_mme_init(); // Preamble action: E-RAB Setup is exchanged. //f_rABSetup...; f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // sends a HANDOVER_REQUIRED f_recv_HandoverRequest( mw_HandoverRequestIEs_CSGID_CellAccessMode( -, -, -, -, {?},//E_RabsToBeSetupItem -, -, -, -, - )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //send HandoverRequestAck // Postamble //f_rABSetupRelease...; f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_HAS_04_ENB2 } // End of group Handover_signalling_group /** Loading Loading
ttcn3/LibS1AP/LibS1AP_Steps.ttcn +9 −0 Original line number Diff line number Diff line Loading @@ -182,6 +182,15 @@ module LibS1AP_Steps { f_recv_S1AP_successfulOutcome(mw_HandoverCommand(p_value)) } // End of function f_recv_HandoverRequired /** * @desc Receive S1AP Message Handover Request * @param p_value Receive template for Handover Request IEs */ function f_recv_HandoverRequest(in template (present) RecordOf_ProtocolIE p_value :=? ) runs on S1APComponent { f_recv_S1AP_initiatingMessage(mw_HandoverRequest(p_value)) } // End of function f_recv_HandoverRequest /** * @desc Receive S1AP Message Handover Cancel * @param p_value Receive template for Handover Cancel IEs Loading
ttcn3/LibS1AP/LibS1AP_Templates.ttcn +195 −9 Original line number Diff line number Diff line Loading @@ -58,7 +58,7 @@ module LibS1AP_Templates { group HandoverPreparation { /** * @desc Receive template for InitiatingMessage message with Handover Required payload * @desc Send template for InitiatingMessage message with Handover Required payload * @param p_value The protocol information elements. */ template (value) InitiatingMessage m_HandoverRequired( Loading @@ -84,8 +84,22 @@ module LibS1AP_Templates { m_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value) } // End of template mw_HandoverCommandIEs template (value) RecordOf_ProtocolIE m_HandoverRequiredIEs_CSGID_CellAccessMode( in template (value) MME_UE_S1AP_ID p_MME_value, in template (value) ENB_UE_S1AP_ID p_eNB_value, in template (value) HandoverType p_handoverType, in template (value) Cause p_cause, in template (value) TargetID p_targetId_value, in template (value) Source_ToTarget_TransparentContainer p_Source_ToTarget_TransparentContainer_value, in template (value) CSG_Id p_CSG_Id_value, in template (value) CellAccessMode p_CellAccessMode_value ) modifies m_HandoverRequiredIEs := { m_CSG_Id_IE(p_CSG_Id_value), m_CellAccessMode_IE(p_CellAccessMode_value) } // End of template mw_HandoverCommandIEs /** * @desc Receive template for SuccessfulOutcome message with Handover Command payload * @desc Send template for SuccessfulOutcome message with Handover Command payload * @param p_value The protocol information elements. */ template (value) SuccessfulOutcome m_HandoverCommand( Loading Loading @@ -1089,10 +1103,67 @@ module LibS1AP_Templates { mw_target_ToSource_TransparentContainer_IE(p_Target_ToSource_TransparentContainer_value) } // End of template mw_HandoverRequiredIEs template (present) RecordOf_ProtocolIE mw_HandoverCommandIEs_NASSecurity( template (present) MME_UE_S1AP_ID p_MME_value := ?, template (present) ENB_UE_S1AP_ID p_eNB_value := ?, template (present) HandoverType p_HandoverType_value := ?, template (present) Target_ToSource_TransparentContainer p_Target_ToSource_TransparentContainer_value := ?, template (present) NASSecurityParameterstoE_UTRAN p_nasSecurityParametersToEutran_value := ? ) modifies mw_HandoverCommandIEs:= { mw_nasSecurityParametersToEutran_IE(p_nasSecurityParametersToEutran_value) } // End of template mw_HandoverRequiredIEs }// End of group HandoverPreparation group HandoverResourceAllocation{ /** * @desc Receive template for InitiatingMessage message with Handover Request payload * @param p_value The list of Protocol IE values */ template (present) InitiatingMessage mw_HandoverRequest( template (present) RecordOf_ProtocolIE p_value) := { procedureCode := id_HandoverResourceAllocation, criticality := reject, value_ := {RecordOf_ProtocolIE := p_value} } // End of template mw_HandoverRequest template (present) RecordOf_ProtocolIE mw_HandoverRequestIEs( template (present) MME_UE_S1AP_ID p_MME_value := ?, template (present) HandoverType p_HandoverType_value := ?, template (present) Cause p_Cause_value := ?, template (present) UEAggregateMaximumBitrate p_UEAggregateMaximumBitrate := ?, template (present) RecordOf_E_RABToBeSetupItemHOReq p_RecordOf_E_RABToBeSetupItem_value := ?, template (present) Source_ToTarget_TransparentContainer p_Source_ToTarget_TransparentContainer_value := ?, template (present) UESecurityCapabilities p_UESecurityCapabilities := ?, template (present) SecurityContext p_SecurityContext := ? ) := { mw_MME_UE_S1AP_ID(p_MME_value), mw_handoverType_IE(p_HandoverType_value), mw_cause_IE(p_Cause_value), mw_UE_aggregate_maximum_bitrate_IE(p_UEAggregateMaximumBitrate), mw_E_RABToBeSetupListHOReq(p_RecordOf_E_RABToBeSetupItem_value), mw_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value), mw_UE_securityCapabilities_IE(p_UESecurityCapabilities, ignore), mw_securityContext_IE(p_SecurityContext) } // End of template mw_HandoverRequestIEs template (present) RecordOf_ProtocolIE mw_HandoverRequestIEs_CSGID_CellAccessMode( template (present) MME_UE_S1AP_ID p_MME_value := ?, template (present) HandoverType p_HandoverType_value := ?, template (present) Cause p_Cause_value := ?, template (present) UEAggregateMaximumBitrate p_UEAggregateMaximumBitrate := ?, template (present) RecordOf_E_RABToBeSetupItemHOReq p_RecordOf_E_RABToBeSetupItem_value := ?, template (present) Source_ToTarget_TransparentContainer p_Source_ToTarget_TransparentContainer_value := ?, template (present) UESecurityCapabilities p_UESecurityCapabilities := ?, template (present) SecurityContext p_SecurityContext := ?, template (present) CSG_Id p_CSG_Id_value := ?, template (present) CellAccessMode p_CellAccessMode_value := ? ) modifies mw_HandoverRequestIEs := { mw_CSG_Id_IE(p_CSG_Id_value), mw_CellAccessMode_IE(p_CellAccessMode_value) } // End of template mw_HandoverRequestIEs /** * @desc Receive template for SuccessfulOutcome message with Handover Cancel payload * @param p_value The expected protocol information elements. Default: ? Loading Loading @@ -3583,6 +3654,17 @@ module LibS1AP_Templates { } } template (value) LAI m_LAI( in template (value) PLMNidentity p_PLMNidentity, in template (value) LAC p_lAC ) := { pLMNidentity := p_PLMNidentity, lAC := p_lAC, iE_Extensions := omit } template (value) RNC_ID m_rNC_Id := 1; template (value) TargetID m_Target_CGI ( in template (value) PLMNidentity p_pLMNidentity, in template (value) LAC p_lAC, Loading @@ -3597,6 +3679,26 @@ module LibS1AP_Templates { } } template (value) ProtocolIE m_CSG_Id_IE( in template (value) CSG_Id p_value, in template (value) ProtocolIE.criticality p_criticality := reject ) := { id := S1AP_Constants.id_CSG_Id, criticality := p_criticality, value_ := {CSG_Id := valueof(p_value)} } // End of template m_CSG_Id_IE //template (value) CellAccessMode m_CellAccessMode_hybrid := hybrid; template (value) ProtocolIE m_CellAccessMode_IE( in template (value) CellAccessMode p_value, in template (value) ProtocolIE.criticality p_criticality := reject ) := { id := S1AP_Constants.id_CellAccessMode, criticality := p_criticality, value_ := {CellAccessMode := valueof(p_value)} } // End of template m_CellAccessMode_IE /** * @desc Send template for UE aggregate maxmum bitrate IE * @param p_value UEAggregateMaximumBitrate value Loading Loading @@ -4319,6 +4421,18 @@ module LibS1AP_Templates { value_ := { RecordOf_E_RABToBeSetupItemCtxtSUReq := p_value } } // End of template mw_E_RABToBeSetupCtxtList /** * @desc Send template for E-RABToBeSetupListHOReq protocol IE * @param p_value Protocol IE value. Default: mw_E_RABToBeSetupItemHOReq */ template (present) ProtocolIE mw_E_RABToBeSetupListHOReq( template (present) RecordOf_E_RABToBeSetupItemHOReq p_value := { mw_E_RABToBeSetupItemHOReq } ) := { id := S1AP_Constants.id_E_RABToBeSetupListHOReq, criticality := reject, value_ := { RecordOf_E_RABToBeSetupItemHOReq := p_value } } // End of template mw_E_RABToBeSetupListHOReq /** * @desc Receive template for E-RABModifiedListBearerModReq protocol IE * @param p_value Expected protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq Loading Loading @@ -4375,6 +4489,33 @@ module LibS1AP_Templates { value_ := { RecordOf_E_RABToBeSwitchedDLItem := p_value } } // End of template mw_E_RABToBeSwitchedDLList /** * @desc Receive template for CSG protocol IE * @param p_value Protocol IE value. Default: ? */ template (present) ProtocolIE mw_CSG_Id_IE( in template (present) CSG_Id p_value, in template (present) ProtocolIE.criticality p_criticality := reject ) := { id := S1AP_Constants.id_CSG_Id, criticality := p_criticality, value_ := {CSG_Id := p_value} } // End of template mw_CSG_Id_IE /** * @desc Receive template for CellAccessMode protocol IE * @param p_value Protocol IE value. Default: ? */ template (present) ProtocolIE mw_CellAccessMode_IE( in template (present) CellAccessMode p_value, in template (present) ProtocolIE.criticality p_criticality := reject ) := { id := S1AP_Constants.id_CellAccessMode, criticality := p_criticality, value_ := {CellAccessMode := p_value} } // End of template mw_CellAccessMode_IE /** * @desc Receive template for UE aggregate maxmum bitrate IE * @param p_value UEAggregateMaximumBitrate value Loading Loading @@ -5017,6 +5158,34 @@ module LibS1AP_Templates { value_ := {SecurityKey := p_value} } // End of template mw_securityKey_IE /** * @desc Receive template for security context IE * @param p_value SecurityContext value * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.26 Security Context */ template (present) ProtocolIE mw_securityContext_IE( in template (present) SecurityContext p_value, in template (present) ProtocolIE.criticality p_criticality := reject ) := { id := S1AP_Constants.id_SecurityContext, criticality := p_criticality, value_ := {SecurityContext := p_value} } // End of template m_securityContext_IE /** * @desc receive template for nas Security Parameters To Eutran IE * @param p_value SecurityContext value * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.31 NAS Security Parameters to E_UTRAN */ template (present) ProtocolIE mw_nasSecurityParametersToEutran_IE( in template (present) NASSecurityParameterstoE_UTRAN p_value, in template (present) ProtocolIE.criticality p_criticality := reject ) := { id := S1AP_Constants.id_NASSecurityParameterstoE_UTRAN, criticality := p_criticality, value_ := {NASSecurityParameterstoE_UTRAN := p_value} } // End of template m_nasSecurityParametersToEutran_IE /** * @desc receive template for security key IE * @param p_value UESecurityCapabilities value Loading Loading @@ -5312,6 +5481,23 @@ module LibS1AP_Templates { iE_Extensions := p_iE_Extensions } // End of template m_E_RABToBeSetupItemHOReq /** * @desc */ template (present) E_RABToBeSetupItemHOReq mw_E_RABToBeSetupItemHOReq( in template (present) E_RAB_ID p_e_RAB_ID := ?, in template (present) TransportLayerAddress p_transportLayerAddress := ?, in template (present) GTP_TEID p_gTP_TEID := ?, in template (present) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := ?, in template E_RABToBeSetupItemHOReq.iE_Extensions p_iE_Extensions := * ) := { e_RAB_ID := p_e_RAB_ID, transportLayerAddress := p_transportLayerAddress, gTP_TEID := p_gTP_TEID, e_RABlevelQosParameters := p_e_RABlevelQoSParameters, iE_Extensions := p_iE_Extensions } // End of template mw_E_RABToBeSetupItemHOReq /** * @desc * @param p_e_RAB_ID Loading
ttcn3/S1AP_TCFunctions.ttcn +194 −0 Original line number Diff line number Diff line Loading @@ -4701,6 +4701,200 @@ module S1AP_TCFunctions { } // End of function f_TC_S1AP_MME_HAS_01 /** * @desc Testcase function for TC_S1AP_MME_HAS_02 */ function f_TC_S1AP_MME_HAS_02() runs on S1APComponent { // Local variables const SourceRNC_ToTargetRNC_TransparentContainer c_sourceRNC_ToTargetRNC_TransparentContainer := '12121212'O; const TargetRNC_ToSourceRNC_TransparentContainer c_targetRNC_ToSourceRNC_TransparentContainer := '12121212'O; // Preamble f_S1AP_mme_init(); // Preamble action: E-RAB Setup is exchanged. //f_rABSetup...; f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // sends a HANDOVER_REQUIRED f_send_HandoverRequired( m_HandoverRequiredIEs( vc_MME_UE_ID, vc_eNB_UE_ID, ltetoutran, m_cause_ran(unspecified), m_TargetRNC_ID(m_LAI('000001'O, //plmn id '0001'O), //lac m_rNC_Id), c_sourceRNC_ToTargetRNC_TransparentContainer )); f_recv_HandoverCommand( mw_HandoverCommandIEs_NASSecurity( vc_MME_UE_ID, vc_eNB_UE_ID, ltetoutran,//handover_Type c_targetRNC_ToSourceRNC_TransparentContainer,//TargetToSourceTransparentContainer - )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble //f_rABSetupRelease...; f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_HAS_02 /** * @desc Testcase function for TC_S1AP_MME_HAS_03 */ function f_TC_S1AP_MME_HAS_03() runs on S1APComponent { // Local variables const SourceBSS_ToTargetBSS_TransparentContainer c_sourceBSS_ToTargetBSS_TransparentContainer := '12121212'O; const TargetBSS_ToSourceBSS_TransparentContainer c_targetBSS_ToSourceBSS_TransparentContainer := '12121212'O; // Preamble f_S1AP_mme_init(); // Preamble action: E-RAB Setup is exchanged. //f_rABSetup...; f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // sends a HANDOVER_REQUIRED f_send_HandoverRequired( m_HandoverRequiredIEs( vc_MME_UE_ID, vc_eNB_UE_ID, ltetogeran, m_cause_ran(unspecified), m_Target_CGI('000001'O, //plmn id '0001'O,//lac '0001'O //ci ), c_sourceBSS_ToTargetBSS_TransparentContainer )); f_recv_HandoverCommand( mw_HandoverCommandIEs_NASSecurity( vc_MME_UE_ID, vc_eNB_UE_ID, ltetogeran,//handover_Type c_targetBSS_ToSourceBSS_TransparentContainer,//TargetToSourceTransparentContainer - )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble //f_rABSetupRelease...; f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_HAS_03 /** * @desc Testcase function for TC_S1AP_MME_HAS_04_ENB1 */ function f_TC_S1AP_MME_HAS_04_ENB1() runs on S1APComponent { // Local variables const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O; const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O; // Preamble f_S1AP_mme_init(); // Preamble action: E-RAB Setup is exchanged. //f_rABSetup...; f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // sends a HANDOVER_REQUIRED f_send_HandoverRequired( m_HandoverRequiredIEs_CSGID_CellAccessMode( vc_MME_UE_ID, vc_eNB_UE_ID, intralte, m_cause_ran(unspecified), m_TargeteNB_ID(m_Global_ENB_ID('000001'O, m_ENB_ID_macro), m_TAI('000001'O, '0001'O)), c_source_ToTarget_TransparentContainer, '000000000000000000000000001'B, hybrid )); f_recv_HandoverCommand( mw_HandoverCommandIEs( vc_MME_UE_ID, vc_eNB_UE_ID, intralte,//handover_Type c_target_ToSource_TransparentContainer//TargetToSourceTransparentContainer )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble //f_rABSetupRelease...; f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_HAS_04_ENB1 /** * @desc Testcase function for TC_S1AP_MME_HAS_04_ENB2 */ function f_TC_S1AP_MME_HAS_04_ENB2() runs on S1APComponent { // Local variables const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O; const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O; // Preamble f_S1AP_mme_init(); // Preamble action: E-RAB Setup is exchanged. //f_rABSetup...; f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test body // sends a HANDOVER_REQUIRED f_recv_HandoverRequest( mw_HandoverRequestIEs_CSGID_CellAccessMode( -, -, -, -, {?},//E_RabsToBeSetupItem -, -, -, -, - )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //send HandoverRequestAck // Postamble //f_rABSetupRelease...; f_postamble_S1AP_eNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_HAS_04_ENB2 } // End of group Handover_signalling_group /** Loading