Commit 0c3f33ee authored by rennoch's avatar rennoch
Browse files

Gx/PCEF test: RAU_05

parent 8764815b
Loading
Loading
Loading
Loading
+62 −0
Original line number Diff line number Diff line
@@ -2647,6 +2647,68 @@ module DiameterGx_Gx_TCFunctions {

            } // end function f_TC_PCEF_RAU_04

            /*
            *  @desc	This is the test case function TC_PCEF_RAU_05
            *  @param	
            */
            function f_TC_PCEF_RAU_05()
            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
                
				// trigger for usage report (explicit request)
				f_send_RAR(DiameterGx_Templates.m_RAR_UMI // RAR in Rx-module has different header!
						   (vc_sessionId, vc_originHost, vc_originRealm,
							vc_destinationRealm, vc_destinationHost, 
							m_usageMonitoringInformationRequestReport(m_usageMonitoringReport(USAGE_MONITORING_REPORT_REQUIRED_E))));
                    
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?));            

                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_05
            
        
        }//end group TP_PCEFRole_RAU

+33 −1
Original line number Diff line number Diff line
@@ -770,6 +770,12 @@ module DiameterGx_Templates {
                aVP_Data := p_avpData
            }
            
            template Usage_Monitoring_Report_AVP m_usageMonitoringReport (Usage_Monitoring_Report p_avpData) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdUsage_Monitoring_Report_AVP, 8, omit),
                aVP_Data := p_avpData
            }

                                                
            template Usage_Monitoring_Information_AVP m_usageMonitoringInformation 
            		(template Monitoring_Key_AVP p_monitoringKey, 
@@ -786,6 +792,20 @@ module DiameterGx_Templates {
                    aVP_Type := omit
                };    
                
            template Usage_Monitoring_Information_AVP m_usageMonitoringInformationRequestReport 
            		(template Usage_Monitoring_Report_AVP p_usageMonitoringReport) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdUsage_Monitoring_Information_AVP, 8+lengthof(encvalue(p_usageMonitoringReport)), omit),

                    monitoring_Key := omit,
                    granted_Service_Unit := omit,
                    used_Service_Unit := omit,
                    usage_Monitoring_Level := omit,
                    usage_Monitoring_Report := p_usageMonitoringReport,
                    usage_Monitoring_Support := omit,
                    aVP_Type := omit
                };    
                           
            
     	  }//end group sendingTemplatesForAVPs
     	  group awaitingTemplatesForAVPs{
@@ -1465,6 +1485,18 @@ module DiameterGx_Templates {
              	  usage_Monitoring_Information := {p_usageMonitoringInformation}
              }
              
              template RAR_MSG m_RAR_UMI(template Session_Id_AVP p_sessionId,
                                           template Origin_Host_AVP p_originHost,
                                           template Origin_Realm_AVP p_originRealm,
                                           template Destination_Realm_AVP p_destinationRealm,
                                           template Destination_Host_AVP p_destinationHost,
                                           template Usage_Monitoring_Information_AVP p_usageMonitoringInformation)

                  modifies m_RAR_basic := 
              {
              	  usage_Monitoring_Information := {p_usageMonitoringInformation}
              }
              
                          
              template RAR_MSG m_RAR_CharRuleRemove(template Session_Id_AVP p_sessionId,
                                           template Origin_Host_AVP p_originHost,