Loading DiameterCxDx/ttcn/DiameterCxDx_Cx_TCFunctions.ttcn3 +221 −33 Original line number Diff line number Diff line Loading @@ -2610,17 +2610,12 @@ module DiameterCxDx_Cx_TCFunctions { // indicating any deregistration reason mw_reason_Code_AVP )))); //TODO: DF: Are you sure this is 'awaiting'? f_awaiting_RTA( mw_RTA_Msg( vc_sessionId, mw_RTA_ResulExpre( mw_resultCode( DIAMETER_SUCCESS_E // containing a Result-Code AVP // indicating DIAMETER_SUCCESS ), omit // not containing an Experimental-Result AVP ))); f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble Loading Loading @@ -2661,8 +2656,14 @@ module DiameterCxDx_Cx_TCFunctions { ), superset(vc_publicIdentity) ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); // Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_postamble_HSS(); Loading Loading @@ -2709,7 +2710,12 @@ module DiameterCxDx_Cx_TCFunctions { } ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); // Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_postamble_HSS(); Loading Loading @@ -2762,6 +2768,12 @@ module DiameterCxDx_Cx_TCFunctions { } // Postamble f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_postamble_HSS(); Loading Loading @@ -2812,17 +2824,12 @@ module DiameterCxDx_Cx_TCFunctions { } else { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } f_awaiting_RTA( mw_RTA_Msg( vc_sessionId, mw_RTA_ResulExpreAssEnt( mw_resultCode( DIAMETER_SUCCESS_E // containing a Result-Code AVP // indicating DIAMETER_SUCCESS ), omit, // not containing an Experimental-Result AVP ? // TODO To be refined ))); f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); // Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); Loading Loading @@ -2880,6 +2887,12 @@ module DiameterCxDx_Cx_TCFunctions { } // Postamble f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_postamble_HSS(); Loading Loading @@ -2932,23 +2945,198 @@ module DiameterCxDx_Cx_TCFunctions { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); }; f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); // Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_postamble_HSS(); } // End of function f_TC_CX_HSS_RT_07_I_S /* * @desc Verify that the IUT can successfully indicate a change of S-CSCF server. */ function f_TC_CX_HSS_RT_08_I_S2() runs on DiameterCx { // Local variables // Preamble // Clause 'Initial conditions' f_preamble_HSS(); f_registratonCx(PX_UserName, PX_ServiceIdentity); // Public Service Identities f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Test Body // Clause 'when': the IUT is requested to indicate a request for change of S-CSCF server action("The IUT is requested to indicate a request for change of S-CSCF server"); // Clause 'then': the IUT sends an RT-Request and receives an RT-Answer f_awaiting_RTR( mw_RTR_Msg( vc_sessionId, // containing a Session-ID AVP mw_RTR_publicIdentity( vc_originHost, vc_originRealm, vc_destinationHost, vc_destinationRealm, vc_userName, // containing a User-Name AVP // indicating the private user identity mw_deregistration_Reason_AVP( // containing a Deregistration-Reason AVP // indicating any deregistration reason mw_reason_Code_AVP ), { // containing more than one Public-Identity AVP // indicating a public service identity matching the wildcarded public service identity provided by the SA-Request message valueof(vc_publicIdentity) } f_awaiting_RTA( mw_RTA_Msg( vc_sessionId, mw_RTA_ResulExpre( mw_resultCode( DIAMETER_SUCCESS_E // containing a Result-Code AVP // indicating DIAMETER_SUCCESS ))); if (ispresent(vc_recvDiamMsg.rTR_MSG.rTR_Body.public_Identity)) { // not containing a list of Public-Identity AVP f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else if ( vc_recvDiamMsg.rTR_MSG.rTR_Body.deregistration_Reason.reason_Code.aVP_Data != NEW_SERVER_ASSIGNED_E ) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); // Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_postamble_HSS(); } // End of function f_TC_CX_HSS_RT_08_I_S2 /* * @desc Verify that the IUT can successfully indicate a change of S-CSCF server. */ function f_TC_CX_HSS_RT_09_I_S2() runs on DiameterCx { // Local variables // Preamble // Clause 'Initial conditions' f_preamble_HSS(); f_registratonCx(PX_UserName, PX_ServiceIdentity); // Public Service Identities f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Test Body // Clause 'when': the IUT is requested to indicate a change of S-CSCF server action("The IUT is requested to indicate a change of S-CSCF server"); // Clause 'then': the IUT sends an RT-Request and receives an RT-Answer f_awaiting_RTR( mw_RTR_Msg( vc_sessionId, // containing a Session-ID AVP mw_RTR_publicIdentity( vc_originHost, vc_originRealm, vc_destinationHost, vc_destinationRealm, vc_userName, // containing a User-Name AVP // indicating the private user identity mw_deregistration_Reason_AVP( // containing a Deregistration-Reason AVP // indicating any deregistration reason mw_reason_Code_AVP ), omit // not containing an Experimental-Result AVP { // containing more than one Public-Identity AVP // indicating a public service identity matching the wildcarded public service identity provided by the SA-Request message valueof(vc_publicIdentity) } ))); if (ispresent(vc_recvDiamMsg.rTR_MSG.rTR_Body.public_Identity)) { // not containing a list of Public-Identity AVP f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else if ( vc_recvDiamMsg.rTR_MSG.rTR_Body.deregistration_Reason.reason_Code.aVP_Data != SERVER_CHANGE_E ) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); // Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_postamble_HSS(); } // End of function f_TC_CX_HSS_RT_07_I_S } // End of function f_TC_CX_HSS_RT_09_I_S2 /* * @desc Verify that the IUT can successfully indicate removing of a S-CSCF server. */ function f_TC_CX_HSS_RT_10_I_S() runs on DiameterCx { // Local variables // Preamble // Clause 'Initial conditions' f_preamble_HSS(); f_registratonCx(PX_UserName, PX_ServiceIdentity); // Public Service Identities f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Test Body // Clause 'when': the IUT is requested to indicate removing of a S-CSCF server action("The IUT is requested to indicate removing of a S-CSCF server"); // Clause 'then': the IUT sends an RT-Request and receives an RT-Answer f_awaiting_RTR( mw_RTR_Msg( vc_sessionId, // containing a Session-ID AVP mw_RTR_publicIdentity( vc_originHost, vc_originRealm, vc_destinationHost, vc_destinationRealm, vc_userName, // containing a User-Name AVP // indicating the private user identity mw_deregistration_Reason_AVP( // containing a Deregistration-Reason AVP // indicating any deregistration reason mw_reason_Code_AVP ), { // containing more than one Public-Identity AVP // indicating a public service identity matching the wildcarded public service identity provided by the SA-Request message valueof(vc_publicIdentity) } ))); if (ispresent(vc_recvDiamMsg.rTR_MSG.rTR_Body.public_Identity)) { // not containing a list of Public-Identity AVP f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else if ( vc_recvDiamMsg.rTR_MSG.rTR_Body.deregistration_Reason.reason_Code.aVP_Data != REMOVE_S_CSCF_E ) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); // Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_postamble_HSS(); } // End of function f_TC_CX_HSS_RT_10_I_S } // group TP_HSSRole_RT Loading DiameterCxDx/ttcn/DiameterCxDx_TestCases.ttcn +61 −10 Original line number Diff line number Diff line Loading @@ -3041,7 +3041,7 @@ module DiameterCxDx_TestCases runs on DiameterCx system TestAdapter { // Local variables var DiameterCx v_diameterComponent_hss, v_diameterComponent_scscf,v_diameterComponent_scscf2; var DiameterCx v_diameterComponent_hss; // Test control if (not PICS_HSS_IUT) { Loading @@ -3050,18 +3050,69 @@ module DiameterCxDx_TestCases } // Test component configuration f_cf_3CxUp_HSS(v_diameterComponent_hss, v_diameterComponent_scscf, v_diameterComponent_scscf2); f_cf_1CxUp_HSS(v_diameterComponent_hss); // Start //v_diameterComponent_hss.start(f_TC_CX_HSS_RT_08_I()); //v_diameterComponent_scscf.start(f_TC_CX_HSS_RT_08_S()); //v_diameterComponent_scscf.start(f_TC_CX_HSS_RT_08_S2()); v_diameterComponent_hss.start(f_TC_CX_HSS_RT_08_I_S2()); // synchronize PTC on 3 sychronization points f_serverSyncNClients(3,{c_prDone, c_tbDone, c_poDone}); // synchronize PTC on 1 sychronization points f_serverSyncNClients(1, {c_prDone, c_tbDone, c_poDone}); f_cf_1CxDown_HSS(v_diameterComponent_hss); f_cf_3CxDown_HSS(v_diameterComponent_hss, v_diameterComponent_scscf, v_diameterComponent_scscf2); } // End of TC_CX_HSS_RT_08 testcase TC_CX_HSS_RT_09() runs on DiameterCx system TestAdapter { // Local variables var DiameterCx v_diameterComponent_hss; // Test control if (not PICS_HSS_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1CxUp_HSS(v_diameterComponent_hss); // Start v_diameterComponent_hss.start(f_TC_CX_HSS_RT_09_I_S2()); // synchronize PTC on 1 sychronization points f_serverSyncNClients(1, {c_prDone, c_tbDone, c_poDone}); f_cf_1CxDown_HSS(v_diameterComponent_hss); } // End of TC_CX_HSS_RT_09 testcase TC_CX_HSS_RT_10() runs on DiameterCx system TestAdapter { // Local variables var DiameterCx v_diameterComponent_hss; // Test control if (not PICS_HSS_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1CxUp_HSS(v_diameterComponent_hss); // Start v_diameterComponent_hss.start(f_TC_CX_HSS_RT_10_I_S()); // synchronize PTC on 1 sychronization points f_serverSyncNClients(1, {c_prDone, c_tbDone, c_poDone}); f_cf_1CxDown_HSS(v_diameterComponent_hss); } // End of TC_CX_HSS_RT_10 } // group TP_HSSRole_RT group TP_HSSRole_LI {//Cx LI Loading DiameterCxDx/ttcn/DiameterCxDx_TestControl.ttcn +3 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,9 @@ module DiameterCxDx_TestControl { execute(TC_CX_HSS_RT_05()); execute(TC_CX_HSS_RT_06()); execute(TC_CX_HSS_RT_07()); execute(TC_CX_HSS_RT_08()); execute(TC_CX_HSS_RT_09()); execute(TC_CX_HSS_RT_10()); } execute(TC_CX_HSS_RT_08()); Loading Loading
DiameterCxDx/ttcn/DiameterCxDx_Cx_TCFunctions.ttcn3 +221 −33 Original line number Diff line number Diff line Loading @@ -2610,17 +2610,12 @@ module DiameterCxDx_Cx_TCFunctions { // indicating any deregistration reason mw_reason_Code_AVP )))); //TODO: DF: Are you sure this is 'awaiting'? f_awaiting_RTA( mw_RTA_Msg( vc_sessionId, mw_RTA_ResulExpre( mw_resultCode( DIAMETER_SUCCESS_E // containing a Result-Code AVP // indicating DIAMETER_SUCCESS ), omit // not containing an Experimental-Result AVP ))); f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble Loading Loading @@ -2661,8 +2656,14 @@ module DiameterCxDx_Cx_TCFunctions { ), superset(vc_publicIdentity) ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); // Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_postamble_HSS(); Loading Loading @@ -2709,7 +2710,12 @@ module DiameterCxDx_Cx_TCFunctions { } ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); // Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_postamble_HSS(); Loading Loading @@ -2762,6 +2768,12 @@ module DiameterCxDx_Cx_TCFunctions { } // Postamble f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_postamble_HSS(); Loading Loading @@ -2812,17 +2824,12 @@ module DiameterCxDx_Cx_TCFunctions { } else { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } f_awaiting_RTA( mw_RTA_Msg( vc_sessionId, mw_RTA_ResulExpreAssEnt( mw_resultCode( DIAMETER_SUCCESS_E // containing a Result-Code AVP // indicating DIAMETER_SUCCESS ), omit, // not containing an Experimental-Result AVP ? // TODO To be refined ))); f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); // Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); Loading Loading @@ -2880,6 +2887,12 @@ module DiameterCxDx_Cx_TCFunctions { } // Postamble f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_postamble_HSS(); Loading Loading @@ -2932,23 +2945,198 @@ module DiameterCxDx_Cx_TCFunctions { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); }; f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); // Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_postamble_HSS(); } // End of function f_TC_CX_HSS_RT_07_I_S /* * @desc Verify that the IUT can successfully indicate a change of S-CSCF server. */ function f_TC_CX_HSS_RT_08_I_S2() runs on DiameterCx { // Local variables // Preamble // Clause 'Initial conditions' f_preamble_HSS(); f_registratonCx(PX_UserName, PX_ServiceIdentity); // Public Service Identities f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Test Body // Clause 'when': the IUT is requested to indicate a request for change of S-CSCF server action("The IUT is requested to indicate a request for change of S-CSCF server"); // Clause 'then': the IUT sends an RT-Request and receives an RT-Answer f_awaiting_RTR( mw_RTR_Msg( vc_sessionId, // containing a Session-ID AVP mw_RTR_publicIdentity( vc_originHost, vc_originRealm, vc_destinationHost, vc_destinationRealm, vc_userName, // containing a User-Name AVP // indicating the private user identity mw_deregistration_Reason_AVP( // containing a Deregistration-Reason AVP // indicating any deregistration reason mw_reason_Code_AVP ), { // containing more than one Public-Identity AVP // indicating a public service identity matching the wildcarded public service identity provided by the SA-Request message valueof(vc_publicIdentity) } f_awaiting_RTA( mw_RTA_Msg( vc_sessionId, mw_RTA_ResulExpre( mw_resultCode( DIAMETER_SUCCESS_E // containing a Result-Code AVP // indicating DIAMETER_SUCCESS ))); if (ispresent(vc_recvDiamMsg.rTR_MSG.rTR_Body.public_Identity)) { // not containing a list of Public-Identity AVP f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else if ( vc_recvDiamMsg.rTR_MSG.rTR_Body.deregistration_Reason.reason_Code.aVP_Data != NEW_SERVER_ASSIGNED_E ) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); // Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_postamble_HSS(); } // End of function f_TC_CX_HSS_RT_08_I_S2 /* * @desc Verify that the IUT can successfully indicate a change of S-CSCF server. */ function f_TC_CX_HSS_RT_09_I_S2() runs on DiameterCx { // Local variables // Preamble // Clause 'Initial conditions' f_preamble_HSS(); f_registratonCx(PX_UserName, PX_ServiceIdentity); // Public Service Identities f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Test Body // Clause 'when': the IUT is requested to indicate a change of S-CSCF server action("The IUT is requested to indicate a change of S-CSCF server"); // Clause 'then': the IUT sends an RT-Request and receives an RT-Answer f_awaiting_RTR( mw_RTR_Msg( vc_sessionId, // containing a Session-ID AVP mw_RTR_publicIdentity( vc_originHost, vc_originRealm, vc_destinationHost, vc_destinationRealm, vc_userName, // containing a User-Name AVP // indicating the private user identity mw_deregistration_Reason_AVP( // containing a Deregistration-Reason AVP // indicating any deregistration reason mw_reason_Code_AVP ), omit // not containing an Experimental-Result AVP { // containing more than one Public-Identity AVP // indicating a public service identity matching the wildcarded public service identity provided by the SA-Request message valueof(vc_publicIdentity) } ))); if (ispresent(vc_recvDiamMsg.rTR_MSG.rTR_Body.public_Identity)) { // not containing a list of Public-Identity AVP f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else if ( vc_recvDiamMsg.rTR_MSG.rTR_Body.deregistration_Reason.reason_Code.aVP_Data != SERVER_CHANGE_E ) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); // Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_postamble_HSS(); } // End of function f_TC_CX_HSS_RT_07_I_S } // End of function f_TC_CX_HSS_RT_09_I_S2 /* * @desc Verify that the IUT can successfully indicate removing of a S-CSCF server. */ function f_TC_CX_HSS_RT_10_I_S() runs on DiameterCx { // Local variables // Preamble // Clause 'Initial conditions' f_preamble_HSS(); f_registratonCx(PX_UserName, PX_ServiceIdentity); // Public Service Identities f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Test Body // Clause 'when': the IUT is requested to indicate removing of a S-CSCF server action("The IUT is requested to indicate removing of a S-CSCF server"); // Clause 'then': the IUT sends an RT-Request and receives an RT-Answer f_awaiting_RTR( mw_RTR_Msg( vc_sessionId, // containing a Session-ID AVP mw_RTR_publicIdentity( vc_originHost, vc_originRealm, vc_destinationHost, vc_destinationRealm, vc_userName, // containing a User-Name AVP // indicating the private user identity mw_deregistration_Reason_AVP( // containing a Deregistration-Reason AVP // indicating any deregistration reason mw_reason_Code_AVP ), { // containing more than one Public-Identity AVP // indicating a public service identity matching the wildcarded public service identity provided by the SA-Request message valueof(vc_publicIdentity) } ))); if (ispresent(vc_recvDiamMsg.rTR_MSG.rTR_Body.public_Identity)) { // not containing a list of Public-Identity AVP f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else if ( vc_recvDiamMsg.rTR_MSG.rTR_Body.deregistration_Reason.reason_Code.aVP_Data != REMOVE_S_CSCF_E ) { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); } f_send_RTA(m_RTA_Msg(vc_sessionId, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode (DIAMETER_SUCCESS_E), omit))); // Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_postamble_HSS(); } // End of function f_TC_CX_HSS_RT_10_I_S } // group TP_HSSRole_RT Loading
DiameterCxDx/ttcn/DiameterCxDx_TestCases.ttcn +61 −10 Original line number Diff line number Diff line Loading @@ -3041,7 +3041,7 @@ module DiameterCxDx_TestCases runs on DiameterCx system TestAdapter { // Local variables var DiameterCx v_diameterComponent_hss, v_diameterComponent_scscf,v_diameterComponent_scscf2; var DiameterCx v_diameterComponent_hss; // Test control if (not PICS_HSS_IUT) { Loading @@ -3050,18 +3050,69 @@ module DiameterCxDx_TestCases } // Test component configuration f_cf_3CxUp_HSS(v_diameterComponent_hss, v_diameterComponent_scscf, v_diameterComponent_scscf2); f_cf_1CxUp_HSS(v_diameterComponent_hss); // Start //v_diameterComponent_hss.start(f_TC_CX_HSS_RT_08_I()); //v_diameterComponent_scscf.start(f_TC_CX_HSS_RT_08_S()); //v_diameterComponent_scscf.start(f_TC_CX_HSS_RT_08_S2()); v_diameterComponent_hss.start(f_TC_CX_HSS_RT_08_I_S2()); // synchronize PTC on 3 sychronization points f_serverSyncNClients(3,{c_prDone, c_tbDone, c_poDone}); // synchronize PTC on 1 sychronization points f_serverSyncNClients(1, {c_prDone, c_tbDone, c_poDone}); f_cf_1CxDown_HSS(v_diameterComponent_hss); f_cf_3CxDown_HSS(v_diameterComponent_hss, v_diameterComponent_scscf, v_diameterComponent_scscf2); } // End of TC_CX_HSS_RT_08 testcase TC_CX_HSS_RT_09() runs on DiameterCx system TestAdapter { // Local variables var DiameterCx v_diameterComponent_hss; // Test control if (not PICS_HSS_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1CxUp_HSS(v_diameterComponent_hss); // Start v_diameterComponent_hss.start(f_TC_CX_HSS_RT_09_I_S2()); // synchronize PTC on 1 sychronization points f_serverSyncNClients(1, {c_prDone, c_tbDone, c_poDone}); f_cf_1CxDown_HSS(v_diameterComponent_hss); } // End of TC_CX_HSS_RT_09 testcase TC_CX_HSS_RT_10() runs on DiameterCx system TestAdapter { // Local variables var DiameterCx v_diameterComponent_hss; // Test control if (not PICS_HSS_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1CxUp_HSS(v_diameterComponent_hss); // Start v_diameterComponent_hss.start(f_TC_CX_HSS_RT_10_I_S()); // synchronize PTC on 1 sychronization points f_serverSyncNClients(1, {c_prDone, c_tbDone, c_poDone}); f_cf_1CxDown_HSS(v_diameterComponent_hss); } // End of TC_CX_HSS_RT_10 } // group TP_HSSRole_RT group TP_HSSRole_LI {//Cx LI Loading
DiameterCxDx/ttcn/DiameterCxDx_TestControl.ttcn +3 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,9 @@ module DiameterCxDx_TestControl { execute(TC_CX_HSS_RT_05()); execute(TC_CX_HSS_RT_06()); execute(TC_CX_HSS_RT_07()); execute(TC_CX_HSS_RT_08()); execute(TC_CX_HSS_RT_09()); execute(TC_CX_HSS_RT_10()); } execute(TC_CX_HSS_RT_08()); Loading