Commit 0151ba95 authored by rennoch's avatar rennoch
Browse files

Gx/PCEF test: RAU_01..05 (updated), RAU_06 (new)

parent 0c3f33ee
Loading
Loading
Loading
Loading
+86 −10
Original line number Diff line number Diff line
@@ -2370,7 +2370,7 @@ module DiameterGx_Gx_TCFunctions {
						   (vc_sessionId, vc_originHost, vc_originRealm,
							vc_destinationRealm, vc_destinationHost, 
							m_event_Trigger(USAGE_REPORT_E),
							m_usageMonitoringInformation(omit, omit)));
							m_usageMonitoringInformation(m_monitoringKey(PX_MONITORING_KEY), omit)));
                    
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); 

@@ -2423,7 +2423,7 @@ module DiameterGx_Gx_TCFunctions {
						   (vc_sessionId, vc_originHost, vc_originRealm,
							vc_destinationRealm, vc_destinationHost, 
							m_event_Trigger(USAGE_REPORT_E),
							m_usageMonitoringInformation(omit, omit)));                    
							m_usageMonitoringInformation(m_monitoringKey(PX_MONITORING_KEY), omit)));                    
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); 
                
                
@@ -2482,7 +2482,7 @@ module DiameterGx_Gx_TCFunctions {
						   (vc_sessionId, vc_originHost, vc_originRealm,
							vc_destinationRealm, vc_destinationHost, 
							m_event_Trigger(USAGE_REPORT_E),
							m_usageMonitoringInformation(omit, omit)));                    
							m_usageMonitoringInformation(m_monitoringKey(PX_MONITORING_KEY), omit)));                    
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); 
                                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
@@ -2545,7 +2545,7 @@ module DiameterGx_Gx_TCFunctions {
						   (vc_sessionId, vc_originHost, vc_originRealm,
							vc_destinationRealm, vc_destinationHost, 
							m_event_Trigger(USAGE_REPORT_E),
							m_usageMonitoringInformation(omit, omit)));                    
							m_usageMonitoringInformation(m_monitoringKey(PX_MONITORING_KEY), omit)));                    
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); 
                                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
@@ -2613,7 +2613,7 @@ module DiameterGx_Gx_TCFunctions {
						   (vc_sessionId, vc_originHost, vc_originRealm,
							vc_destinationRealm, vc_destinationHost, 
							m_event_Trigger(USAGE_REPORT_E),
							m_usageMonitoringInformation(omit, omit)));                    
							m_usageMonitoringInformation(m_monitoringKey(PX_MONITORING_KEY), omit)));                    
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); 
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
@@ -2665,12 +2665,18 @@ module DiameterGx_Gx_TCFunctions {

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
                // requesting montitoring control                                
                // requesting montitoring control for two keys                               
				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)));                    
							m_usageMonitoringInformation(m_monitoringKey(PX_MONITORING_KEY), omit)));                    
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); 
                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(m_monitoringKey(PX_MONITORING_KEY2), omit)));                    
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); 
                                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
@@ -2688,10 +2694,11 @@ module DiameterGx_Gx_TCFunctions {
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(UPDATE_REQUEST_E),
                									mw_usageMonitoringInfo_Key_UsedServiceUnit(mw_usedServiceUnit(*,*)),
                									{mw_usageMonitoringInfo_Key_UsedServiceUnit(mw_usedServiceUnit(*,*)),
                									 mw_usageMonitoringInfo_Key2_UsedServiceUnit(mw_usedServiceUnit(*,*))},
                									mw_eventTrigger(USAGE_REPORT_E)));
                									
   				// check that uplink or downlink volune has been indicated
   				// check that uplink or downlink volune has been indicated for predefined key
   				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)
@@ -2699,6 +2706,14 @@ module DiameterGx_Gx_TCFunctions {
   				   )
   					{setverdict(fail)};
                									
   				// check that uplink or downlink volune has been indicated for 2nd predefined key
   				if (not (ispresent(vc_recvDiamMsg.cCR_MSG.usage_Monitoring_Information[1].used_Service_Unit.cC_Input_Octets)
   						 or
   						 ispresent(vc_recvDiamMsg.cCR_MSG.usage_Monitoring_Information[1].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));
@@ -2709,6 +2724,67 @@ module DiameterGx_Gx_TCFunctions {

            } // end function f_TC_PCEF_RAU_05
            
            /*
            *  @desc	This is the test case function TC_PCEF_RAU_06
            *  @param	
            */
            function f_TC_PCEF_RAU_06()
            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 for one key                             
                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(m_monitoringKey(PX_MONITORING_KEY2), 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_06
                    
        }//end group TP_PCEFRole_RAU

+7 −0
Original line number Diff line number Diff line
@@ -293,6 +293,13 @@ module DiameterGx_PIXITS
        modulepar octetstring PX_MONITORING_KEY := '01020304050607'O;
        
                        
        /** @desc	octectstring, PIXIT item A.1/
         * avp_Data within MONITORING_KEY_AVP is of octectstring type
         * (parameter is part of RAR/CCR message)
        */
        modulepar octetstring PX_MONITORING_KEY2 := '01020304050677'O;
        
                        
        /** @desc	octectstring, PIXIT item A.1/
         * avp_Data within Revalidation_Time_AVP is of UInt64 type
         * (parameter is part of RAR message)
+16 −2
Original line number Diff line number Diff line
@@ -1025,6 +1025,14 @@ module DiameterGx_Templates {
                used_Service_Unit := p_usedServiceUnit
            }
            
                                        
            template Usage_Monitoring_Information_AVP mw_usageMonitoringInfo_Key2_UsedServiceUnit (template Used_Service_Unit_AVP p_usedServiceUnit) modifies mw_usageMonitoringInfo_dummy :=
            {
                aVP_Header := mw_aVP_Header_any,
                monitoring_Key := mw_monitoringKey_predefined2,
                used_Service_Unit := p_usedServiceUnit
            }  
                
            template Monitoring_Key_AVP mw_monitoringKey_any :=
            {
                aVP_Header := mw_aVP_Header_any,
@@ -1037,6 +1045,12 @@ module DiameterGx_Templates {
                aVP_Data := PX_MONITORING_KEY
            }
                                                    
            template Monitoring_Key_AVP mw_monitoringKey_predefined2 :=
            {
                aVP_Header := mw_aVP_Header_any,
                aVP_Data := PX_MONITORING_KEY2
            }    
                
            template Event_Trigger_AVP mw_eventTrigger(template Event_Trigger p_aVP_Data) :=
            {
                aVP_Header := mw_aVP_Header_any,