Commit 8da19505 authored by rennoch's avatar rennoch
Browse files

Gx/PCEF test: RAU_03

parent 18960b79
Loading
Loading
Loading
Loading
+69 −0
Original line number Diff line number Diff line
@@ -2521,6 +2521,75 @@ module DiameterGx_Gx_TCFunctions {

            } // end function f_TC_PCEF_RAU_02

        
            /*
            *  @desc	This is the test case function TC_PCEF_RAU_03
            *  @param	
            */
            function f_TC_PCEF_RAU_03()
            runs on DiameterComponent {

               f_preamble_PCRF();
                
               f_awaiting_CCR(mw_CCR_Request(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(INITIAL_REQUEST_E),
                									*, *, *));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
                // requesting montitoring control                                
				f_send_RAR(DiameterGx_Templates.m_RAR_EvTrigger_UMI // RAR in Rx-module has different header!
						   (vc_sessionId, vc_originHost, vc_originRealm,
							vc_destinationRealm, vc_destinationHost, 
							m_event_Trigger(USAGE_REPORT_E),
							m_usageMonitoringInformation(omit, omit)));                    
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); 
                                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                
                action("Trigger for CCR not related to predefined monitoring key");                         
                
                f_awaiting_CCR(mw_CCR_Request(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(INITIAL_REQUEST_E),
                									*, *, *));      

				// trigger for usage report (removal of PCC rule)
                f_send_CCA(m_CCA_RuleRemove(vc_sessionId, vc_originHost, vc_originRealm, 
                           m_chrgRuleRemove_Name(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA))));         

                // await usage-monitoring-information
                f_awaiting_CCR(mw_CCR_Request_EvtTrig_UMI(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(UPDATE_REQUEST_E),
                									mw_usageMonitoringInfo_Key_UsedServiceUnit(mw_usedServiceUnit(*,*)),
                									mw_eventTrigger(USAGE_REPORT_E)));
                									
   				// check that uplink or downlink volune has been indicated
   				if (not (ispresent(vc_recvDiamMsg.cCR_MSG.usage_Monitoring_Information[0].used_Service_Unit.cC_Input_Octets)
   						 or
   						 ispresent(vc_recvDiamMsg.cCR_MSG.usage_Monitoring_Information[0].used_Service_Unit.cC_Output_Octets)
   						 )
   				   )
   					{setverdict(fail)};
				
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();

            } // end function f_TC_PCEF_RAU_03
        
        }//end group TP_PCEFRole_RAU

    } //end group TP_PCEFRole
+11 −0
Original line number Diff line number Diff line
@@ -1658,6 +1658,17 @@ module DiameterGx_Templates {
                experimental_Result := p_experimentalResult
            }
            
                        
            template CCA_MSG m_CCA_RuleRemove(template Session_Id_AVP p_sessionId,
                                         template Origin_Host_AVP p_originHost,
                                         template Origin_Realm_AVP p_originRealm,
                                         template Charging_Rule_Remove_AVP p_chargingRuleRemove)
                modifies m_CCA_basic := 
            {
                header := m_diameterHeaderAns_dummy(CCA_E, c_applIdGx),
                charging_Rule_Remove := {p_chargingRuleRemove}
            }
          
          } //     end group Gxmodified_answer_templates_send
		  
          group Gxmodified_answer_templates_receive {