Loading DiameterGx/ttcn/DiameterGx_Gx_TCFunctions.ttcn +72 −6 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ module DiameterGx_Gx_TCFunctions { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, ?)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync Loading Loading @@ -146,7 +146,7 @@ module DiameterGx_Gx_TCFunctions { //session modification f_send_CCR(m_CCR_UpdateRequest_allReqAVPs(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, ?)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading Loading @@ -181,7 +181,7 @@ module DiameterGx_Gx_TCFunctions { m_packet_Filter_Operation(ADDITION_E), m_qoS_Information_ClassIdentifier(QCI_1_E) )); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, ?)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading Loading @@ -216,7 +216,7 @@ module DiameterGx_Gx_TCFunctions { m_packet_Filter_Operation(MODIFICATION_E), omit )); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, ?)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading Loading @@ -251,7 +251,7 @@ module DiameterGx_Gx_TCFunctions { m_packet_Filter_Operation(DELETION_E), omit )); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, ?)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading @@ -278,7 +278,7 @@ module DiameterGx_Gx_TCFunctions { //session modification f_send_CCR(m_CCR_UpdateRequest_NetworkRequestSupport(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, ?)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading Loading @@ -961,6 +961,72 @@ module DiameterGx_Gx_TCFunctions { }//end group TP_PCRFRole_MPS group TP_PCRFRole_SDC { //Sponsored Data Connectivity /* * @desc This is the test case function TC_PCRF_SDC_01 * @param */ function f_TC_PCRF_SDC_01() runs on DiameterComponent { var boolean v_cc_xx_octets_present; f_preamble_PCEF(); //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //IUT install dynamic PCC rules, f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, mw_chrgRuleInstall_Definition(mw_chrgRuleDefinition_sponConn(?, ?, mw_reportingLevel(SPONSORED_CONNECTIVITY_LEVEL_E))))); f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_SDC_01 /* * @desc This is the test case function TC_PCRF_SDC_02 * @param */ function f_TC_PCRF_SDC_02() runs on DiameterComponent { var boolean v_cc_xx_octets_present; f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //IUT install dynamic PCC rules, f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, mw_chrgRuleInstall_Definition(mw_chrgRuleDefinition_sponConn(?, ?, mw_reportingLevel(SPONSORED_CONNECTIVITY_LEVEL_E))))); f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, mw_chrgRuleInstall_Definition(mw_chrgRuleDefinition_sponConn(?, ?, mw_reportingLevel(SPONSORED_CONNECTIVITY_LEVEL_E))) )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_SDC_02 }//end group TP_PCRFRole_SDC group TP_PCRFRole_RAU { //Reporting Accumulated Usage }//end group TP_PCRFRole_RAU Loading DiameterGx/ttcn/DiameterGx_Rx_TCFunctions.ttcn +32 −1 Original line number Diff line number Diff line Loading @@ -150,6 +150,37 @@ module DiameterGx_Rx_TCFunctions { } // end function f_TC_PCRF_OpenSessionPrio2 /* * @desc This is the test case function f_TC_PCRF_OpenSessionSponsor * @param */ function f_TC_PCRF_OpenSessionSponsor() runs on DiameterComponent { var boolean v_cc_xx_octets_present; f_preamble_AF(); f_send_AAR(m_AAR_SC(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_sponsoredConnectivityData_SI_ASPI(m_sponsorIdentity("1234"),m_applicationServiceProviderIdentity("1234")) // Sponsored_Connectivity_Data_AVP ) ); f_awaiting_AAA(mw_AAA_dummy); // IUT esthablish Diameter session f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_AF(); } // end function f_TC_PCRF_OpenSessionSponsor }//end group TP_PCRFRole } // end module DiameterGx_Rx_TCFunctions No newline at end of file DiameterGx/ttcn/DiameterGx_Templates.ttcn +22 −3 Original line number Diff line number Diff line Loading @@ -666,6 +666,17 @@ module DiameterGx_Templates { qoS_Information := mw_qoSInfo_noBearerID } template Charging_Rule_Definition_AVP mw_chrgRuleDefinition_sponConn (template Sponsor_Identity_AVP p_sponsorIdentity, template Application_Service_Provider_Identity_AVP p_applicationServiceProviderId, template Reporting_Level_AVP p_reportingLevel) modifies mw_chrgRuleDefinition_dummy:= { aVP_Header := mw_aVP_Header_any, charging_Rule_Name := mw_chrgRuleName, sponsor_Identity := p_sponsorIdentity, application_Service_Provider_Identity := p_applicationServiceProviderId, reporting_Level := p_reportingLevel } template Charging_Rule_Definition_AVP mw_chrgRuleDefinition_qosInfo_AllocRetPrio modifies mw_chrgRuleDefinition_dummy:= { aVP_Header := mw_aVP_Header_any, Loading Loading @@ -742,6 +753,13 @@ module DiameterGx_Templates { flow_Direction := ? } template Reporting_Level_AVP mw_reportingLevel (template Reporting_Level p_avpData) := { //Ref: ETSI TS 129 212 Reporting_Levele_AVP aVP_Header := mw_aVP_Header(c_vendIdReporting_Level_AVP),//<AVP header: 1011 ....> aVP_Data := p_avpData }; }//end group awaitingTemplatesForAVPs } //end group SpecificAVPHeaders } //end group HeaderFieldTemplates Loading Loading @@ -1124,9 +1142,10 @@ module DiameterGx_Templates { template CCA_MSG mw_CCA_PCCrules_ChrgRuleInstall( template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm) modifies mw_CCA_basic := template Origin_Realm_AVP p_originRealm, template Charging_Rule_Install_AVP p_chargingRuleInstall) modifies mw_CCA_basic := { charging_Rule_Install := {?} charging_Rule_Install := {p_chargingRuleInstall} } template CCA_MSG mw_CCA_ExperimentalResult( template Session_Id_AVP p_sessionId, Loading DiameterGx/ttcn/DiameterGx_TestCases.ttcn +24 −0 Original line number Diff line number Diff line Loading @@ -696,6 +696,30 @@ module DiameterGx_TestCases }//end group TP_PCRFRole_MPS group TP_PCRFRole_SDC { //Sponsored Data Connectivity /* * @desc TC_PCRF_SDC_01 * @param p_cSeq_s Transaction Id */ testcase TC_PCRF_SDC_01() runs on ServerSyncComp system TestAdapter { //Variables var DiameterComponent v_diameterComponent_pcef; var DiameterComponent v_diameterComponent_af; f_cf_1Gx1RxUp(v_diameterComponent_pcef,v_diameterComponent_af); //Start v_diameterComponent_pcef.start(DiameterGx_Gx_TCFunctions.f_TC_PCRF_SDC_01()); v_diameterComponent_af.start(DiameterGx_Rx_TCFunctions.f_TC_PCRF_OpenSessionSponsor()); // synchronize 2 PTCs on 3 sychronization points f_serverSync2Clients({c_prDone, c_tbDone, c_poDone}); f_cf_1Gx1RxDown(v_diameterComponent_pcef,v_diameterComponent_af); } // end TC_PCRF_SDC_01 }//end group TP_PCRFRole_SDC group TP_PCRFRole_RAU { //Reporting Accumulated Usage Loading Loading
DiameterGx/ttcn/DiameterGx_Gx_TCFunctions.ttcn +72 −6 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ module DiameterGx_Gx_TCFunctions { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, ?)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync Loading Loading @@ -146,7 +146,7 @@ module DiameterGx_Gx_TCFunctions { //session modification f_send_CCR(m_CCR_UpdateRequest_allReqAVPs(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, ?)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading Loading @@ -181,7 +181,7 @@ module DiameterGx_Gx_TCFunctions { m_packet_Filter_Operation(ADDITION_E), m_qoS_Information_ClassIdentifier(QCI_1_E) )); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, ?)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading Loading @@ -216,7 +216,7 @@ module DiameterGx_Gx_TCFunctions { m_packet_Filter_Operation(MODIFICATION_E), omit )); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, ?)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading Loading @@ -251,7 +251,7 @@ module DiameterGx_Gx_TCFunctions { m_packet_Filter_Operation(DELETION_E), omit )); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, ?)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading @@ -278,7 +278,7 @@ module DiameterGx_Gx_TCFunctions { //session modification f_send_CCR(m_CCR_UpdateRequest_NetworkRequestSupport(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, ?)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading Loading @@ -961,6 +961,72 @@ module DiameterGx_Gx_TCFunctions { }//end group TP_PCRFRole_MPS group TP_PCRFRole_SDC { //Sponsored Data Connectivity /* * @desc This is the test case function TC_PCRF_SDC_01 * @param */ function f_TC_PCRF_SDC_01() runs on DiameterComponent { var boolean v_cc_xx_octets_present; f_preamble_PCEF(); //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //IUT install dynamic PCC rules, f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, mw_chrgRuleInstall_Definition(mw_chrgRuleDefinition_sponConn(?, ?, mw_reportingLevel(SPONSORED_CONNECTIVITY_LEVEL_E))))); f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_SDC_01 /* * @desc This is the test case function TC_PCRF_SDC_02 * @param */ function f_TC_PCRF_SDC_02() runs on DiameterComponent { var boolean v_cc_xx_octets_present; f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //IUT install dynamic PCC rules, f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, mw_chrgRuleInstall_Definition(mw_chrgRuleDefinition_sponConn(?, ?, mw_reportingLevel(SPONSORED_CONNECTIVITY_LEVEL_E))))); f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, mw_chrgRuleInstall_Definition(mw_chrgRuleDefinition_sponConn(?, ?, mw_reportingLevel(SPONSORED_CONNECTIVITY_LEVEL_E))) )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_SDC_02 }//end group TP_PCRFRole_SDC group TP_PCRFRole_RAU { //Reporting Accumulated Usage }//end group TP_PCRFRole_RAU Loading
DiameterGx/ttcn/DiameterGx_Rx_TCFunctions.ttcn +32 −1 Original line number Diff line number Diff line Loading @@ -150,6 +150,37 @@ module DiameterGx_Rx_TCFunctions { } // end function f_TC_PCRF_OpenSessionPrio2 /* * @desc This is the test case function f_TC_PCRF_OpenSessionSponsor * @param */ function f_TC_PCRF_OpenSessionSponsor() runs on DiameterComponent { var boolean v_cc_xx_octets_present; f_preamble_AF(); f_send_AAR(m_AAR_SC(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_sponsoredConnectivityData_SI_ASPI(m_sponsorIdentity("1234"),m_applicationServiceProviderIdentity("1234")) // Sponsored_Connectivity_Data_AVP ) ); f_awaiting_AAA(mw_AAA_dummy); // IUT esthablish Diameter session f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_AF(); } // end function f_TC_PCRF_OpenSessionSponsor }//end group TP_PCRFRole } // end module DiameterGx_Rx_TCFunctions No newline at end of file
DiameterGx/ttcn/DiameterGx_Templates.ttcn +22 −3 Original line number Diff line number Diff line Loading @@ -666,6 +666,17 @@ module DiameterGx_Templates { qoS_Information := mw_qoSInfo_noBearerID } template Charging_Rule_Definition_AVP mw_chrgRuleDefinition_sponConn (template Sponsor_Identity_AVP p_sponsorIdentity, template Application_Service_Provider_Identity_AVP p_applicationServiceProviderId, template Reporting_Level_AVP p_reportingLevel) modifies mw_chrgRuleDefinition_dummy:= { aVP_Header := mw_aVP_Header_any, charging_Rule_Name := mw_chrgRuleName, sponsor_Identity := p_sponsorIdentity, application_Service_Provider_Identity := p_applicationServiceProviderId, reporting_Level := p_reportingLevel } template Charging_Rule_Definition_AVP mw_chrgRuleDefinition_qosInfo_AllocRetPrio modifies mw_chrgRuleDefinition_dummy:= { aVP_Header := mw_aVP_Header_any, Loading Loading @@ -742,6 +753,13 @@ module DiameterGx_Templates { flow_Direction := ? } template Reporting_Level_AVP mw_reportingLevel (template Reporting_Level p_avpData) := { //Ref: ETSI TS 129 212 Reporting_Levele_AVP aVP_Header := mw_aVP_Header(c_vendIdReporting_Level_AVP),//<AVP header: 1011 ....> aVP_Data := p_avpData }; }//end group awaitingTemplatesForAVPs } //end group SpecificAVPHeaders } //end group HeaderFieldTemplates Loading Loading @@ -1124,9 +1142,10 @@ module DiameterGx_Templates { template CCA_MSG mw_CCA_PCCrules_ChrgRuleInstall( template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm) modifies mw_CCA_basic := template Origin_Realm_AVP p_originRealm, template Charging_Rule_Install_AVP p_chargingRuleInstall) modifies mw_CCA_basic := { charging_Rule_Install := {?} charging_Rule_Install := {p_chargingRuleInstall} } template CCA_MSG mw_CCA_ExperimentalResult( template Session_Id_AVP p_sessionId, Loading
DiameterGx/ttcn/DiameterGx_TestCases.ttcn +24 −0 Original line number Diff line number Diff line Loading @@ -696,6 +696,30 @@ module DiameterGx_TestCases }//end group TP_PCRFRole_MPS group TP_PCRFRole_SDC { //Sponsored Data Connectivity /* * @desc TC_PCRF_SDC_01 * @param p_cSeq_s Transaction Id */ testcase TC_PCRF_SDC_01() runs on ServerSyncComp system TestAdapter { //Variables var DiameterComponent v_diameterComponent_pcef; var DiameterComponent v_diameterComponent_af; f_cf_1Gx1RxUp(v_diameterComponent_pcef,v_diameterComponent_af); //Start v_diameterComponent_pcef.start(DiameterGx_Gx_TCFunctions.f_TC_PCRF_SDC_01()); v_diameterComponent_af.start(DiameterGx_Rx_TCFunctions.f_TC_PCRF_OpenSessionSponsor()); // synchronize 2 PTCs on 3 sychronization points f_serverSync2Clients({c_prDone, c_tbDone, c_poDone}); f_cf_1Gx1RxDown(v_diameterComponent_pcef,v_diameterComponent_af); } // end TC_PCRF_SDC_01 }//end group TP_PCRFRole_SDC group TP_PCRFRole_RAU { //Reporting Accumulated Usage Loading