Loading DiameterCxDx/ttcn/DiameterCxDx_Cx_TCFunctions.ttcn3 +190 −0 Original line number Diff line number Diff line Loading @@ -3936,6 +3936,196 @@ module DiameterCxDx_Cx_TCFunctions { } // group TP_CSCFRole_SA group TP_CSCFRole_RT {//Cx RT function f_TC_CX_CSCF_RT_01_UA(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CX_CSCF_SA_04_UA(p_cSeq_s) } function f_TC_CX_CSCF_RT_01_HSS() runs on DiameterCx { // Local variables // Preamble // Clause 'Initial conditions' f_preamble_HSS(); //waiting for the first registration message f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR)); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_MAR(mw_MAR_Msg(?, mw_MAR_basic)); f_send_UAA(m_MAA_Msg(vc_sessionId, m_MAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); //waiting for the first (authorized) registration message f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR())); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic)); f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Test Body // the IUT sends a RT-Request (network initiated // de-registration) f_send_RTR(m_RTR_Msg(vc_sessionId, m_RTR_basic (vc_originHost, vc_originRealm, vc_destinationHost, vc_destinationRealm, vc_userName, m_deregistrationReason (// containing a Deregistration-Reason // AVP // indicating any deregistration // reason m_reasonCode (PERMANENT_TERMINATION_E))))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_awaiting_RTA(mw_RTA_Msg(?, mw_RTA_basic)); f_postamble_HSS(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } function f_TC_CX_CSCF_RT_02_UA(in CSeq p_cSeq_s) runs on ImsComponent { // Preamble // Send the IMS emergency registration f_preamble_UE_emergencyRegistration(p_cSeq_s); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_RemoveRegistration(vc_cSeq); // deregistration in SUT f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } function f_TC_CX_CSCF_RT_02_HSS() runs on DiameterCx { // Local variables // Preamble // Clause 'Initial conditions' f_preamble_HSS(); //waiting for the first registration message f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR)); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_MAR(mw_MAR_Msg(?, mw_MAR_basic)); f_send_UAA(m_MAA_Msg(vc_sessionId, m_MAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); //waiting for the first (authorized) registration message f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR())); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic)); f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Test Body f_send_RTR(m_RTR_Msg(vc_sessionId, m_RTR_basic (vc_originHost, vc_originRealm, vc_destinationHost, vc_destinationRealm, vc_userName, m_deregistrationReason (// containing a Deregistration-Reason // AVP // indicating permanent termination // reason m_reasonCode (PERMANENT_TERMINATION_E))))); f_awaiting_RTA(mw_RTA_Msg(?, mw_RTA_ResulExpreIDwER( mw_resultCode(DIAMETER_UNABLE_TO_COMPLY_E),omit, ? // list of private/public identity pair ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble //de-registration f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR())); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic)); f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_postamble_HSS(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } function f_TC_CX_CSCF_RT_03_UA(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CX_CSCF_RT_02_UA(p_cSeq_s) } function f_TC_CX_CSCF_RT_03_HSS() runs on DiameterCx { // Local variables // Preamble // Clause 'Initial conditions' f_preamble_HSS(); //waiting for the first registration message f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR)); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_MAR(mw_MAR_Msg(?, mw_MAR_basic)); f_send_UAA(m_MAA_Msg(vc_sessionId, m_MAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); //waiting for the first (authorized) registration message f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR())); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic)); f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Test Body f_send_RTR(m_RTR_Msg(vc_sessionId, m_RTR_basic (vc_originHost, vc_originRealm, vc_destinationHost, vc_destinationRealm, vc_userName, m_deregistrationReason (// containing a Deregistration-Reason // AVP // indicating permanent termination // reason m_reasonCode (REMOVE_S_CSCF_E))))); f_awaiting_RTA(mw_RTA_Msg(?, mw_RTA_ResulExpreIDwER( mw_resultCode(DIAMETER_LIMITED_SUCCESS_E),omit, ? // list of private/public identity pair ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble //de-registration f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR())); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic)); f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_postamble_HSS(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } } // group TP_CSCFRole_RT group TP_CSCFRole_LI {//Cx LI } // group TP_CSCFRole_LI Loading DiameterCxDx/ttcn/DiameterCxDx_Templates.ttcn +10 −7 Original line number Diff line number Diff line Loading @@ -1365,6 +1365,15 @@ module DiameterCxDx_Templates { experimental_Result := p_experimentalResult } template RTA_Body_AVP mw_RTA_ResulExpreIDwER (template Result_Code_AVP p_resultCode, template Experimental_Result_AVP p_experimentalResult, template RTA_Body_AVP.identity_with_Emergency_Registration p_identityWithEmergencyRegistration) modifies mw_RTA_basic := { result_Code := p_resultCode, experimental_Result := p_experimentalResult, identity_with_Emergency_Registration := p_identityWithEmergencyRegistration } template RTA_Body_AVP mw_RTA_ResulExpreAssEnt (template Result_Code_AVP p_resultCode, template Experimental_Result_AVP p_experimentalResult, template Associated_Identities_AVP p_associatedIdentities Loading @@ -1372,12 +1381,6 @@ module DiameterCxDx_Templates { associated_Identities := p_associatedIdentities } template Failed_AVP mmm := { aVP_Header := ?, aVP := ? } template RTA_Body_AVP mw_RTA_ResulExpreFailedAVP (template Result_Code_AVP p_resultCode, template Experimental_Result_AVP p_experimentalResult, template (present) AVP_Code p_code Loading Loading
DiameterCxDx/ttcn/DiameterCxDx_Cx_TCFunctions.ttcn3 +190 −0 Original line number Diff line number Diff line Loading @@ -3936,6 +3936,196 @@ module DiameterCxDx_Cx_TCFunctions { } // group TP_CSCFRole_SA group TP_CSCFRole_RT {//Cx RT function f_TC_CX_CSCF_RT_01_UA(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CX_CSCF_SA_04_UA(p_cSeq_s) } function f_TC_CX_CSCF_RT_01_HSS() runs on DiameterCx { // Local variables // Preamble // Clause 'Initial conditions' f_preamble_HSS(); //waiting for the first registration message f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR)); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_MAR(mw_MAR_Msg(?, mw_MAR_basic)); f_send_UAA(m_MAA_Msg(vc_sessionId, m_MAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); //waiting for the first (authorized) registration message f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR())); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic)); f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Test Body // the IUT sends a RT-Request (network initiated // de-registration) f_send_RTR(m_RTR_Msg(vc_sessionId, m_RTR_basic (vc_originHost, vc_originRealm, vc_destinationHost, vc_destinationRealm, vc_userName, m_deregistrationReason (// containing a Deregistration-Reason // AVP // indicating any deregistration // reason m_reasonCode (PERMANENT_TERMINATION_E))))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_awaiting_RTA(mw_RTA_Msg(?, mw_RTA_basic)); f_postamble_HSS(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } function f_TC_CX_CSCF_RT_02_UA(in CSeq p_cSeq_s) runs on ImsComponent { // Preamble // Send the IMS emergency registration f_preamble_UE_emergencyRegistration(p_cSeq_s); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_RemoveRegistration(vc_cSeq); // deregistration in SUT f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } function f_TC_CX_CSCF_RT_02_HSS() runs on DiameterCx { // Local variables // Preamble // Clause 'Initial conditions' f_preamble_HSS(); //waiting for the first registration message f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR)); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_MAR(mw_MAR_Msg(?, mw_MAR_basic)); f_send_UAA(m_MAA_Msg(vc_sessionId, m_MAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); //waiting for the first (authorized) registration message f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR())); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic)); f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Test Body f_send_RTR(m_RTR_Msg(vc_sessionId, m_RTR_basic (vc_originHost, vc_originRealm, vc_destinationHost, vc_destinationRealm, vc_userName, m_deregistrationReason (// containing a Deregistration-Reason // AVP // indicating permanent termination // reason m_reasonCode (PERMANENT_TERMINATION_E))))); f_awaiting_RTA(mw_RTA_Msg(?, mw_RTA_ResulExpreIDwER( mw_resultCode(DIAMETER_UNABLE_TO_COMPLY_E),omit, ? // list of private/public identity pair ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble //de-registration f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR())); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic)); f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_postamble_HSS(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } function f_TC_CX_CSCF_RT_03_UA(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CX_CSCF_RT_02_UA(p_cSeq_s) } function f_TC_CX_CSCF_RT_03_HSS() runs on DiameterCx { // Local variables // Preamble // Clause 'Initial conditions' f_preamble_HSS(); //waiting for the first registration message f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR)); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_MAR(mw_MAR_Msg(?, mw_MAR_basic)); f_send_UAA(m_MAA_Msg(vc_sessionId, m_MAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); //waiting for the first (authorized) registration message f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR())); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic)); f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Test Body f_send_RTR(m_RTR_Msg(vc_sessionId, m_RTR_basic (vc_originHost, vc_originRealm, vc_destinationHost, vc_destinationRealm, vc_userName, m_deregistrationReason (// containing a Deregistration-Reason // AVP // indicating permanent termination // reason m_reasonCode (REMOVE_S_CSCF_E))))); f_awaiting_RTA(mw_RTA_Msg(?, mw_RTA_ResulExpreIDwER( mw_resultCode(DIAMETER_LIMITED_SUCCESS_E),omit, ? // list of private/public identity pair ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble //de-registration f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR())); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic)); f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_postamble_HSS(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } } // group TP_CSCFRole_RT group TP_CSCFRole_LI {//Cx LI } // group TP_CSCFRole_LI Loading
DiameterCxDx/ttcn/DiameterCxDx_Templates.ttcn +10 −7 Original line number Diff line number Diff line Loading @@ -1365,6 +1365,15 @@ module DiameterCxDx_Templates { experimental_Result := p_experimentalResult } template RTA_Body_AVP mw_RTA_ResulExpreIDwER (template Result_Code_AVP p_resultCode, template Experimental_Result_AVP p_experimentalResult, template RTA_Body_AVP.identity_with_Emergency_Registration p_identityWithEmergencyRegistration) modifies mw_RTA_basic := { result_Code := p_resultCode, experimental_Result := p_experimentalResult, identity_with_Emergency_Registration := p_identityWithEmergencyRegistration } template RTA_Body_AVP mw_RTA_ResulExpreAssEnt (template Result_Code_AVP p_resultCode, template Experimental_Result_AVP p_experimentalResult, template Associated_Identities_AVP p_associatedIdentities Loading @@ -1372,12 +1381,6 @@ module DiameterCxDx_Templates { associated_Identities := p_associatedIdentities } template Failed_AVP mmm := { aVP_Header := ?, aVP := ? } template RTA_Body_AVP mw_RTA_ResulExpreFailedAVP (template Result_Code_AVP p_resultCode, template Experimental_Result_AVP p_experimentalResult, template (present) AVP_Code p_code Loading