Loading ttcn/DiameterShDh_TCFunctions.ttcn3 +125 −4 Original line number Original line Diff line number Diff line Loading @@ -907,7 +907,9 @@ module DiameterShDh_TCFunctions { vc_destinationRealm, // containing a Destination-Realm AVP vc_destinationRealm, // containing a Destination-Realm AVP m_msisdn_user_Identity ( m_msisdn_user_Identity ( m_MSISDN_user_identity(char2oct(PX_PublicUser_MSISDN)) m_MSISDN_user_identity(char2oct(PX_PublicUser_MSISDN)) )))); ), m_data_Reference(REPOSITORY_DATA_E) ))); f_awaiting_PUA( f_awaiting_PUA( mdw_pUA( mdw_pUA( Loading Loading @@ -2210,10 +2212,31 @@ module DiameterShDh_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); //TODO TestBody // TestBody // to indicate a profile update procedure action("The IUT is requested to indicate a profile update procedure"); // Clause 'then': the IUT sends an PU-Request and receives an PU-Answer f_awaiting_PUR( mdw_pUR_Header_PURBody( ?, ?, // containing a Session-ID AVP mdw_purBodyAvps( vc_originHost_IUT, // containing an Origin-Host AVP vc_originRealm_IUT, // containing an Origin-Realm AVP vc_destinationRealm_IUT // indicating RepositoryData (0) ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_send_PUA( md_pUA( vc_sessionId, // Set in f_awaiting_PUR md_udaBodyAvps( m_resultCode(DIAMETER_SUCCESS_E), vc_originHost, vc_originRealm ))); f_postamble_Sh_HSS(); f_postamble_Sh_HSS(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); Loading Loading @@ -2336,7 +2359,39 @@ module DiameterShDh_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); //TODO TestBody //TestBody f_send_PUR( md_pUR( vc_sessionId, md_purBodyAvps( m_auth_Session_State, vc_originHost, // containing an Origin-Host AVP vc_originRealm, // containing an Origin-Realm AVP vc_destinationHost, // containing an Destination-Host AVP vc_destinationRealm, // containing a Destination-Realm AVP m_specific_user_Identity( m_public_user_identity(PX_PublicUserIdentity) ) ) ) ); f_awaiting_PUA( mdw_pUA( ?, // containing a Session-ID AVP mdw_puaBodyAvps_redirect( m_resultCode( // containing containing a Result-Code AVP DIAMETER_REDIRECT_INDICATION_E // indicating DIAMETER_REDIRECT_INDICATION (3006). ), *, vc_originHost_IUT, // containing an Origin-Host AVP vc_originRealm_IUT, // containing an Origin-Realm AVP // containing a User-Identity AVP // containing a Data-Reference AVP mw_redirect_host( // containing a Redirect-Host AVP PX_HSS_IDENTITY// indicating the HSS identity to be used )))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); Loading Loading @@ -2476,7 +2531,30 @@ module DiameterShDh_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); //TODO TestBody // TestBody f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); f_awaiting_PUR( mdw_pUR_Header_PURBody( ?, ?, // containing a Session-ID AVP mdw_purBodyAvps( vc_originHost_IUT, // containing an Origin-Host AVP vc_originRealm_IUT, // containing an Origin-Realm AVP vc_destinationRealm_IUT // indicating RepositoryData (0) ))); f_send_PUA( md_pUA( vc_sessionId, // Set in f_awaiting_PUR md_udaBodyAvps_redirect( m_resultCode(DIAMETER_REDIRECT_INDICATION_E), vc_originHost, vc_originRealm, m_redirect_host( // containing a Redirect-Host AVP PX_HSS_IDENTITY// indicating the HSS identity to be used ) ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); Loading @@ -2486,6 +2564,49 @@ module DiameterShDh_TCFunctions { } // End of function f_TC_DH_AS_PU_01() } // End of function f_TC_DH_AS_PU_01() function f_TC_DH_AS_PU_01_HSS() runs on DiameterShDh { // Local variables // Preamble f_preamble_Dh_SLF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // TestBody // to indicate a profile update procedure action("The IUT is requested to indicate a profile update procedure"); // Clause 'then': the IUT sends an PU-Request and receives an PU-Answer f_awaiting_PUR( mdw_pUR_Header_PURBody( ?, ?, // containing a Session-ID AVP mdw_purBodyAvps( vc_originHost_IUT, // containing an Origin-Host AVP vc_originRealm_IUT, // containing an Origin-Realm AVP vc_destinationRealm_IUT // indicating RepositoryData (0) ))); f_send_PUA( md_pUA( vc_sessionId, // Set in f_awaiting_PUR md_udaBodyAvps( m_resultCode(DIAMETER_SUCCESS_E), vc_originHost, vc_originRealm ))); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_postamble_Dh_SLF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_DH_AS_PU_01_HSS() } // End of group TP_ASRole_ProfileUpdate } // End of group TP_ASRole_ProfileUpdate group TP_ASRole_SubscriptionNotification{ group TP_ASRole_SubscriptionNotification{ Loading ttcn/DiameterShDh_Templates.ttcn3 +34 −3 Original line number Original line Diff line number Diff line Loading @@ -554,9 +554,14 @@ module DiameterShDh_Templates { template (present) Origin_Realm_AVP p_originRealm := ?, template (present) Origin_Realm_AVP p_originRealm := ?, template (present) Destination_Realm_AVP p_destinationRealm := ? template (present) Destination_Realm_AVP p_destinationRealm := ? ) modifies mw_PUR_Body_dummy := { ) modifies mw_PUR_Body_dummy := { vendor_Specific_Application_Id := ?, auth_Session_State := ?, origin_Host := p_originHost, origin_Host := p_originHost, origin_Realm := p_originRealm, origin_Realm := p_originRealm, destination_Realm := p_destinationRealm destination_Realm := p_destinationRealm, user_Identity := ?, data_Reference := ?, user_Data := ? } // End of template mdw_purBodyAvps } // End of template mdw_purBodyAvps } // End of group pur_msg } // End of group pur_msg Loading Loading @@ -703,6 +708,18 @@ module DiameterShDh_Templates { origin_Realm := p_originRealm origin_Realm := p_originRealm } // End of template md_puaBodyAvps } // End of template md_puaBodyAvps template (omit) PUA_Body_AVP md_puaBodyAvps_redirect( in template (value) Result_Code_AVP p_resultCode, in template (value) Origin_Host_AVP p_originHost, in template (value) Origin_Realm_AVP p_originRealm, in template (value) Redirect_Host_AVP p_redirect_host ) modifies m_PUA_Body_dummy := { result_Code := p_resultCode, origin_Host := p_originHost, origin_Realm := p_originRealm, redirect_Host := p_redirect_host } // End of template md_puaBodyAvps } // End of group pua_msg } // End of group pua_msg group sna_msg { group sna_msg { Loading Loading @@ -889,6 +906,20 @@ module DiameterShDh_Templates { repository_Data_Id := p_repositoryDataId repository_Data_Id := p_repositoryDataId } // End of template mdw_puaBodyAvps } // End of template mdw_puaBodyAvps template (present) PUA_Body_AVP mdw_puaBodyAvps_redirect( template Result_Code_AVP p_resultCode, template Experimental_Result_AVP p_exp_rescode, template (present) Origin_Host_AVP p_originHost, template (present) Origin_Realm_AVP p_originRealm, template Redirect_Host_AVP p_redirect_Host_AVP ) modifies mw_PUA_Body_dummy := { result_Code := p_resultCode, experimental_Result := p_exp_rescode, origin_Host := p_originHost, origin_Realm := p_originRealm, redirect_Host := p_redirect_Host_AVP } // End of template mdw_puaBodyAvps } // End of group pua_msg } // End of group pua_msg group sna_msg { group sna_msg { Loading ttcn/DiameterShDh_TestCases.ttcn3 +185 −2 Original line number Original line Diff line number Diff line Loading @@ -3000,6 +3000,65 @@ module DiameterShDh_TestCases { } // End of group TP_ASRole_UserData } // End of group TP_ASRole_UserData group TP_ASRole_ProfileUpdate{ group TP_ASRole_ProfileUpdate{ /** * @desc Verify that the IUT sends a PU-Request to update transparent data. * <pre> * Pics Selection: PICS_AS_IUT * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * to indicate a user data update procedure * } * then { * the IUT sends a PU-Request * containing a Session-ID AVP * containing a Vendor-Specific-Application-Id AVP * containing an Auth-Session-State AVP * containing an Origin-Host AVP * containing an Origin-Realm AVP * containing a Destination-Realm AVP * containing a User-Identity AVP * containing a Data-Reference AVP * containing a User-Data AVP * } * } * </pre> * * @version 0.0.7 * @see ETSI TS 103 571-2 TP_SH_AS_PU_01 */ testcase TC_SH_AS_PU_01() runs on DiameterShDh system TestAdapter { // Local variables var DiameterShDh v_diameterSh_hss; var ImsComponent v_imsComponent_scsf; var CSeq p_cSeq_s := {fieldName := CSEQ_E, seqNumber := 1000, method := "REGISTER"}; // Test control if (not PICS_AS_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_AS_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Sh1Isc_hssUp(v_diameterSh_hss, v_imsComponent_scsf); // Start v_diameterSh_hss.start(f_TC_SH_AS_PU_01()); if (PX_SIPsupport) { v_imsComponent_scsf.start(f_TC_SH_AS_PU_01_CSCF(p_cSeq_s)); } // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Sh1Isc_hssDown(v_diameterSh_hss, v_imsComponent_scsf); } // End of testcase TC_SH_AS_PU_01 } // End of group TP_ASRole_UserData } // End of group TP_ASRole_UserData group TP_ASRole_SubscriptionNotification{ group TP_ASRole_SubscriptionNotification{ Loading Loading @@ -3087,7 +3146,71 @@ module DiameterShDh_TestCases { } // End of group TP_SLFRole_UserData } // End of group TP_SLFRole_UserData group TP_SLFRole_ProfileUpdate{ group TP_SLFRole_ProfileUpdate{ } // End of group TP_SLFRole_UserData /** * @desc Verify that the IUT processes a PU-Request and sends corresponding PU-Answer. * <pre> * Pics Selection: PICS_SLF_IUT * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives a PU-Request * containing a Session-ID AVP * containing a Vendor-Specific-Application-Id AVP * containing an Auth-Session-State AVP * containing an Origin-Host AVP * containing an Origin-Realm AVP * containing a Destination-Realm AVP * containing a User-Identity AVP * containing a Data-Reference AVP * containing a User-Data AVP * } * then { * the IUT sends a PU-Answer * containing a Session-ID AVP * containing a Vendor-Specific-Application-Id AVP * containing an Auth-Session-State AVP * containing an Origin-Host AVP * containing an Origin-Realm AVP * containing an Redirect-Host AVP * indicating the HSS identity to be used * not containing an Experimental-Result AVP * containing a Result-Code AVP * indicating DIAMETER_REDIRECT_INDICATION (3006). * } * } * </pre> * * @version 0.0.7 * @see ETSI TS 103 571-2 TP_DH_SLF_PU_01 */ testcase TC_DH_SLF_PU_01() runs on DiameterShDh system TestAdapter { // Local variables var DiameterShDh v_diameterDh_as; // Test control if (not PICS_SLF_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_SLF_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Dh_asUp(v_diameterDh_as); // Start v_diameterDh_as.start(f_TC_DH_SLF_PU_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Dh_asDown(v_diameterDh_as); } // End of testcase TC_DH_SLF_PU_01 } // End of group TP_SLFRole_ProfileUpdate group TP_SLFRole_SubscriptionNotification{ group TP_SLFRole_SubscriptionNotification{ } // End of group TP_SLFRole_SubscriptionNotification } // End of group TP_SLFRole_SubscriptionNotification Loading Loading @@ -3165,7 +3288,67 @@ module DiameterShDh_TestCases { } // End of group TP_ASRole_UserData } // End of group TP_ASRole_UserData group TP_ASRole_ProfileUpdate{ group TP_ASRole_ProfileUpdate{ } // End of group TP_ASRole_UserData /** * @desc Verify that the IUT for user data update procedure sends a PU-Request to the SLF and after reception of a PU-Answer forwards the PU-Request to the HSS. * <pre> * Pics Selection: PICS_AS_IUT * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * to indicate a user data update procedure * } * then { * the IUT sends a PU-Request to the SLF * on receipt of a PU-Answer from the SLF * containing a Redirect-Host AVP * indicating the HSS identity to be used * not containing an Experimental-Result AVP * containing a Result-Code AVP * indicating DIAMETER_REDIRECT_INDICATION (3006) * sends a PU-Request to the HSS * containing a Destination-Host AVP * containing a Destination-Realm AVP. * } * } * </pre> * * @version 0.0.7 * @see ETSI TS 103 571-2 TP_DH_AS_PU_01 */ testcase TC_DH_AS_PU_01() runs on DiameterShDh system TestAdapter { // Local variables var DiameterShDh v_diameterSh_hss, v_diameterDh_slf; var ImsComponent v_imsComponent_scsf; var CSeq p_cSeq_s := {fieldName := CSEQ_E, seqNumber := 1000, method := "REGISTER"}; // Test control if (not PICS_AS_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_AS_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Dh1Sh1Isc_slfUp(v_diameterDh_slf, v_diameterSh_hss, v_imsComponent_scsf); // Start v_diameterDh_slf.start(f_TC_DH_AS_PU_01()); v_diameterSh_hss.start(f_TC_DH_AS_PU_01_HSS()); if (PX_SIPsupport) { v_imsComponent_scsf.start(f_TC_DH_AS_PU_01_CSCF(p_cSeq_s)); } // synchronize PTC on 2 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, LibDiameter_TypesAndValues.c_sync1, c_tbDone, c_poDone}); f_cf_1Dh1Sh1Isc_slfDown(v_diameterDh_slf, v_diameterSh_hss, v_imsComponent_scsf); } // End of testcase TC_DH_AS_PU_01 } // End of group TP_ASRole_ProfileUpdate group TP_ASRole_SubscriptionNotification{ group TP_ASRole_SubscriptionNotification{ } // End of group TP_ASRole_SubscriptionNotification } // End of group TP_ASRole_SubscriptionNotification Loading Loading
ttcn/DiameterShDh_TCFunctions.ttcn3 +125 −4 Original line number Original line Diff line number Diff line Loading @@ -907,7 +907,9 @@ module DiameterShDh_TCFunctions { vc_destinationRealm, // containing a Destination-Realm AVP vc_destinationRealm, // containing a Destination-Realm AVP m_msisdn_user_Identity ( m_msisdn_user_Identity ( m_MSISDN_user_identity(char2oct(PX_PublicUser_MSISDN)) m_MSISDN_user_identity(char2oct(PX_PublicUser_MSISDN)) )))); ), m_data_Reference(REPOSITORY_DATA_E) ))); f_awaiting_PUA( f_awaiting_PUA( mdw_pUA( mdw_pUA( Loading Loading @@ -2210,10 +2212,31 @@ module DiameterShDh_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); //TODO TestBody // TestBody // to indicate a profile update procedure action("The IUT is requested to indicate a profile update procedure"); // Clause 'then': the IUT sends an PU-Request and receives an PU-Answer f_awaiting_PUR( mdw_pUR_Header_PURBody( ?, ?, // containing a Session-ID AVP mdw_purBodyAvps( vc_originHost_IUT, // containing an Origin-Host AVP vc_originRealm_IUT, // containing an Origin-Realm AVP vc_destinationRealm_IUT // indicating RepositoryData (0) ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_send_PUA( md_pUA( vc_sessionId, // Set in f_awaiting_PUR md_udaBodyAvps( m_resultCode(DIAMETER_SUCCESS_E), vc_originHost, vc_originRealm ))); f_postamble_Sh_HSS(); f_postamble_Sh_HSS(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); Loading Loading @@ -2336,7 +2359,39 @@ module DiameterShDh_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); //TODO TestBody //TestBody f_send_PUR( md_pUR( vc_sessionId, md_purBodyAvps( m_auth_Session_State, vc_originHost, // containing an Origin-Host AVP vc_originRealm, // containing an Origin-Realm AVP vc_destinationHost, // containing an Destination-Host AVP vc_destinationRealm, // containing a Destination-Realm AVP m_specific_user_Identity( m_public_user_identity(PX_PublicUserIdentity) ) ) ) ); f_awaiting_PUA( mdw_pUA( ?, // containing a Session-ID AVP mdw_puaBodyAvps_redirect( m_resultCode( // containing containing a Result-Code AVP DIAMETER_REDIRECT_INDICATION_E // indicating DIAMETER_REDIRECT_INDICATION (3006). ), *, vc_originHost_IUT, // containing an Origin-Host AVP vc_originRealm_IUT, // containing an Origin-Realm AVP // containing a User-Identity AVP // containing a Data-Reference AVP mw_redirect_host( // containing a Redirect-Host AVP PX_HSS_IDENTITY// indicating the HSS identity to be used )))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); Loading Loading @@ -2476,7 +2531,30 @@ module DiameterShDh_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); //TODO TestBody // TestBody f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); f_awaiting_PUR( mdw_pUR_Header_PURBody( ?, ?, // containing a Session-ID AVP mdw_purBodyAvps( vc_originHost_IUT, // containing an Origin-Host AVP vc_originRealm_IUT, // containing an Origin-Realm AVP vc_destinationRealm_IUT // indicating RepositoryData (0) ))); f_send_PUA( md_pUA( vc_sessionId, // Set in f_awaiting_PUR md_udaBodyAvps_redirect( m_resultCode(DIAMETER_REDIRECT_INDICATION_E), vc_originHost, vc_originRealm, m_redirect_host( // containing a Redirect-Host AVP PX_HSS_IDENTITY// indicating the HSS identity to be used ) ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); Loading @@ -2486,6 +2564,49 @@ module DiameterShDh_TCFunctions { } // End of function f_TC_DH_AS_PU_01() } // End of function f_TC_DH_AS_PU_01() function f_TC_DH_AS_PU_01_HSS() runs on DiameterShDh { // Local variables // Preamble f_preamble_Dh_SLF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // TestBody // to indicate a profile update procedure action("The IUT is requested to indicate a profile update procedure"); // Clause 'then': the IUT sends an PU-Request and receives an PU-Answer f_awaiting_PUR( mdw_pUR_Header_PURBody( ?, ?, // containing a Session-ID AVP mdw_purBodyAvps( vc_originHost_IUT, // containing an Origin-Host AVP vc_originRealm_IUT, // containing an Origin-Realm AVP vc_destinationRealm_IUT // indicating RepositoryData (0) ))); f_send_PUA( md_pUA( vc_sessionId, // Set in f_awaiting_PUR md_udaBodyAvps( m_resultCode(DIAMETER_SUCCESS_E), vc_originHost, vc_originRealm ))); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_postamble_Dh_SLF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_DH_AS_PU_01_HSS() } // End of group TP_ASRole_ProfileUpdate } // End of group TP_ASRole_ProfileUpdate group TP_ASRole_SubscriptionNotification{ group TP_ASRole_SubscriptionNotification{ Loading
ttcn/DiameterShDh_Templates.ttcn3 +34 −3 Original line number Original line Diff line number Diff line Loading @@ -554,9 +554,14 @@ module DiameterShDh_Templates { template (present) Origin_Realm_AVP p_originRealm := ?, template (present) Origin_Realm_AVP p_originRealm := ?, template (present) Destination_Realm_AVP p_destinationRealm := ? template (present) Destination_Realm_AVP p_destinationRealm := ? ) modifies mw_PUR_Body_dummy := { ) modifies mw_PUR_Body_dummy := { vendor_Specific_Application_Id := ?, auth_Session_State := ?, origin_Host := p_originHost, origin_Host := p_originHost, origin_Realm := p_originRealm, origin_Realm := p_originRealm, destination_Realm := p_destinationRealm destination_Realm := p_destinationRealm, user_Identity := ?, data_Reference := ?, user_Data := ? } // End of template mdw_purBodyAvps } // End of template mdw_purBodyAvps } // End of group pur_msg } // End of group pur_msg Loading Loading @@ -703,6 +708,18 @@ module DiameterShDh_Templates { origin_Realm := p_originRealm origin_Realm := p_originRealm } // End of template md_puaBodyAvps } // End of template md_puaBodyAvps template (omit) PUA_Body_AVP md_puaBodyAvps_redirect( in template (value) Result_Code_AVP p_resultCode, in template (value) Origin_Host_AVP p_originHost, in template (value) Origin_Realm_AVP p_originRealm, in template (value) Redirect_Host_AVP p_redirect_host ) modifies m_PUA_Body_dummy := { result_Code := p_resultCode, origin_Host := p_originHost, origin_Realm := p_originRealm, redirect_Host := p_redirect_host } // End of template md_puaBodyAvps } // End of group pua_msg } // End of group pua_msg group sna_msg { group sna_msg { Loading Loading @@ -889,6 +906,20 @@ module DiameterShDh_Templates { repository_Data_Id := p_repositoryDataId repository_Data_Id := p_repositoryDataId } // End of template mdw_puaBodyAvps } // End of template mdw_puaBodyAvps template (present) PUA_Body_AVP mdw_puaBodyAvps_redirect( template Result_Code_AVP p_resultCode, template Experimental_Result_AVP p_exp_rescode, template (present) Origin_Host_AVP p_originHost, template (present) Origin_Realm_AVP p_originRealm, template Redirect_Host_AVP p_redirect_Host_AVP ) modifies mw_PUA_Body_dummy := { result_Code := p_resultCode, experimental_Result := p_exp_rescode, origin_Host := p_originHost, origin_Realm := p_originRealm, redirect_Host := p_redirect_Host_AVP } // End of template mdw_puaBodyAvps } // End of group pua_msg } // End of group pua_msg group sna_msg { group sna_msg { Loading
ttcn/DiameterShDh_TestCases.ttcn3 +185 −2 Original line number Original line Diff line number Diff line Loading @@ -3000,6 +3000,65 @@ module DiameterShDh_TestCases { } // End of group TP_ASRole_UserData } // End of group TP_ASRole_UserData group TP_ASRole_ProfileUpdate{ group TP_ASRole_ProfileUpdate{ /** * @desc Verify that the IUT sends a PU-Request to update transparent data. * <pre> * Pics Selection: PICS_AS_IUT * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * to indicate a user data update procedure * } * then { * the IUT sends a PU-Request * containing a Session-ID AVP * containing a Vendor-Specific-Application-Id AVP * containing an Auth-Session-State AVP * containing an Origin-Host AVP * containing an Origin-Realm AVP * containing a Destination-Realm AVP * containing a User-Identity AVP * containing a Data-Reference AVP * containing a User-Data AVP * } * } * </pre> * * @version 0.0.7 * @see ETSI TS 103 571-2 TP_SH_AS_PU_01 */ testcase TC_SH_AS_PU_01() runs on DiameterShDh system TestAdapter { // Local variables var DiameterShDh v_diameterSh_hss; var ImsComponent v_imsComponent_scsf; var CSeq p_cSeq_s := {fieldName := CSEQ_E, seqNumber := 1000, method := "REGISTER"}; // Test control if (not PICS_AS_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_AS_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Sh1Isc_hssUp(v_diameterSh_hss, v_imsComponent_scsf); // Start v_diameterSh_hss.start(f_TC_SH_AS_PU_01()); if (PX_SIPsupport) { v_imsComponent_scsf.start(f_TC_SH_AS_PU_01_CSCF(p_cSeq_s)); } // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Sh1Isc_hssDown(v_diameterSh_hss, v_imsComponent_scsf); } // End of testcase TC_SH_AS_PU_01 } // End of group TP_ASRole_UserData } // End of group TP_ASRole_UserData group TP_ASRole_SubscriptionNotification{ group TP_ASRole_SubscriptionNotification{ Loading Loading @@ -3087,7 +3146,71 @@ module DiameterShDh_TestCases { } // End of group TP_SLFRole_UserData } // End of group TP_SLFRole_UserData group TP_SLFRole_ProfileUpdate{ group TP_SLFRole_ProfileUpdate{ } // End of group TP_SLFRole_UserData /** * @desc Verify that the IUT processes a PU-Request and sends corresponding PU-Answer. * <pre> * Pics Selection: PICS_SLF_IUT * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives a PU-Request * containing a Session-ID AVP * containing a Vendor-Specific-Application-Id AVP * containing an Auth-Session-State AVP * containing an Origin-Host AVP * containing an Origin-Realm AVP * containing a Destination-Realm AVP * containing a User-Identity AVP * containing a Data-Reference AVP * containing a User-Data AVP * } * then { * the IUT sends a PU-Answer * containing a Session-ID AVP * containing a Vendor-Specific-Application-Id AVP * containing an Auth-Session-State AVP * containing an Origin-Host AVP * containing an Origin-Realm AVP * containing an Redirect-Host AVP * indicating the HSS identity to be used * not containing an Experimental-Result AVP * containing a Result-Code AVP * indicating DIAMETER_REDIRECT_INDICATION (3006). * } * } * </pre> * * @version 0.0.7 * @see ETSI TS 103 571-2 TP_DH_SLF_PU_01 */ testcase TC_DH_SLF_PU_01() runs on DiameterShDh system TestAdapter { // Local variables var DiameterShDh v_diameterDh_as; // Test control if (not PICS_SLF_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_SLF_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Dh_asUp(v_diameterDh_as); // Start v_diameterDh_as.start(f_TC_DH_SLF_PU_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Dh_asDown(v_diameterDh_as); } // End of testcase TC_DH_SLF_PU_01 } // End of group TP_SLFRole_ProfileUpdate group TP_SLFRole_SubscriptionNotification{ group TP_SLFRole_SubscriptionNotification{ } // End of group TP_SLFRole_SubscriptionNotification } // End of group TP_SLFRole_SubscriptionNotification Loading Loading @@ -3165,7 +3288,67 @@ module DiameterShDh_TestCases { } // End of group TP_ASRole_UserData } // End of group TP_ASRole_UserData group TP_ASRole_ProfileUpdate{ group TP_ASRole_ProfileUpdate{ } // End of group TP_ASRole_UserData /** * @desc Verify that the IUT for user data update procedure sends a PU-Request to the SLF and after reception of a PU-Answer forwards the PU-Request to the HSS. * <pre> * Pics Selection: PICS_AS_IUT * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * to indicate a user data update procedure * } * then { * the IUT sends a PU-Request to the SLF * on receipt of a PU-Answer from the SLF * containing a Redirect-Host AVP * indicating the HSS identity to be used * not containing an Experimental-Result AVP * containing a Result-Code AVP * indicating DIAMETER_REDIRECT_INDICATION (3006) * sends a PU-Request to the HSS * containing a Destination-Host AVP * containing a Destination-Realm AVP. * } * } * </pre> * * @version 0.0.7 * @see ETSI TS 103 571-2 TP_DH_AS_PU_01 */ testcase TC_DH_AS_PU_01() runs on DiameterShDh system TestAdapter { // Local variables var DiameterShDh v_diameterSh_hss, v_diameterDh_slf; var ImsComponent v_imsComponent_scsf; var CSeq p_cSeq_s := {fieldName := CSEQ_E, seqNumber := 1000, method := "REGISTER"}; // Test control if (not PICS_AS_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_AS_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Dh1Sh1Isc_slfUp(v_diameterDh_slf, v_diameterSh_hss, v_imsComponent_scsf); // Start v_diameterDh_slf.start(f_TC_DH_AS_PU_01()); v_diameterSh_hss.start(f_TC_DH_AS_PU_01_HSS()); if (PX_SIPsupport) { v_imsComponent_scsf.start(f_TC_DH_AS_PU_01_CSCF(p_cSeq_s)); } // synchronize PTC on 2 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, LibDiameter_TypesAndValues.c_sync1, c_tbDone, c_poDone}); f_cf_1Dh1Sh1Isc_slfDown(v_diameterDh_slf, v_diameterSh_hss, v_imsComponent_scsf); } // End of testcase TC_DH_AS_PU_01 } // End of group TP_ASRole_ProfileUpdate group TP_ASRole_SubscriptionNotification{ group TP_ASRole_SubscriptionNotification{ } // End of group TP_ASRole_SubscriptionNotification } // End of group TP_ASRole_SubscriptionNotification Loading