Commit 426610ae authored by rennoch's avatar rennoch
Browse files

Gx tests: PCRF_SDC01/02

parent 788fef6f
Loading
Loading
Loading
Loading
+72 −6
Original line number Diff line number Diff line
@@ -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
		
@@ -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
                
@@ -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
                
@@ -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
                
@@ -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
                
@@ -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
                
@@ -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
+32 −1
Original line number Diff line number Diff line
@@ -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
+22 −3
Original line number Diff line number Diff line
@@ -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,
@@ -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
@@ -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,
+24 −0
Original line number Diff line number Diff line
@@ -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