Commit e03db5ec authored by pintar's avatar pintar
Browse files

Example of TPs for PCRF and PCEF group

parent 8cecec8a
Loading
Loading
Loading
Loading
+88 −45
Original line number Diff line number Diff line
/**
 *	@author 	STF 443
 *  @version    $Id$
 *	@desc		This module provides RX test functions used by the test cases
 *	@desc		This module provides GX test functions used by the test cases
 *              for IMS-DIAMETER tests.
 */
module DiameterGx_Gx_TCFunctions {
@@ -21,6 +21,7 @@ module DiameterGx_Gx_TCFunctions {
	import from DiameterGx_Steps all;

	group TP_PCEFRole{        
	    group TP_PCEFRole_IPS {	//Initial Provisioning Session

            /*
            *  @desc	This is the test case function TC_PCRF_IPS_01
@@ -33,7 +34,7 @@ module DiameterGx_Gx_TCFunctions {
		
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
		
                    //f_send_CCR(m_CCR_basic());//TODO
                f_send_CCR(m_CCR_basic(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
        
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
		
@@ -44,11 +45,32 @@ module DiameterGx_Gx_TCFunctions {
                f_postamble_PCEF();

            } // end function f_TC_PCRF_IPS_01
        }//end group TP_PCEFRole_IPS
        group TP_PCEFRole_MSI {	//Modification of Session Information
        }//end group  TP_PCEFRole_MSI
        group TP_PCEFRole_INV {	//Invalid Behaviour 
        }//end group TP_PCEFRole_INV
        group TP_PCEFRole_ST {	//Session Termination
        }//end group  TP_PCEFRole_ST
        group TP_PCEFRole_PCC {	//PCC rules
        }//end group TP_PCEFRole_PCC
        group TP_PCEFRole_EMS {	//Emergency services
        }//end group TP_PCEFRole_EMS
        group TP_PCEFRole_UMC {	//Usage monitoring control
        }//end group TP_PCEFRole_UMC
        group TP_PCEFRole_IRS {	//IMS Restoration Support
        }//end group TP_PCEFRole_IRS
        group TP_PCEFRole_MPS {	//Multimedia Priority Support
        }//end group TP_PCEFRole_MPS
        group TP_PCEFRole_SDC {	//Sponsored Data Connectivity
        }//end group TP_PCEFRole_SDC
        group TP_PCEFRole_RAU {	//Reporting Accumulated Usage
        }//end group TP_PCEFRole_RAU

	} //end group TP_PCEFRole

    group TP_PCRFRole {

        group TP_PCRFRole_IPS {	//Initial Provisioning Session
            /*
            *  @desc	This is the test case function TC_PCEF_IPS_01
            *  @param	
@@ -71,6 +93,27 @@ module DiameterGx_Gx_TCFunctions {
                f_postamble_PCRF();

            } // end function f_TC_PCEF_IPS_01
        }//end group TP_PCRFRole_IPS
        group TP_PCRFRole_MSI {	//Modification of Session Information
        }//end group  TP_PCRFRole_MSI
        group TP_PCRFRole_INV {	//Invalid Behaviour 
        }//end group TP_PCRFRole_INV
        group TP_PCRFRole_ST {	//Session Termination
        }//end group  TP_PCRFRole_ST
        group TP_PCRFRole_PCC {	//PCC rules
        }//end group TP_PCRFRole_PCC
        group TP_PCRFRole_EMS {	//Emergency services
        }//end group TP_PCRFRole_EMS
        group TP_PCRFRole_UMC {	//Usage monitoring control
        }//end group TP_PCRFRole_UMC
        group TP_PCRFRole_IRS {	//IMS Restoration Support
        }//end group TP_PCRFRole_IRS
        group TP_PCRFRole_MPS {	//Multimedia Priority Support
        }//end group TP_PCRFRole_MPS
        group TP_PCRFRole_SDC {	//Sponsored Data Connectivity
        }//end group TP_PCRFRole_SDC
        group TP_PCRFRole_RAU {	//Reporting Accumulated Usage
        }//end group TP_PCRFRole_RAU

    } //end group TP_PCRFRole
	
+58 −0
Original line number Diff line number Diff line
@@ -113,6 +113,64 @@ module DiameterGx_PIXITS
        */
        modulepar charstring PX_DestinationRealm := "myalupcrf.vf.de";
	
        /** @desc	octetstring ,  PIXIT item A.1/
                    (This is an operator option, not a protocol option), 
                    UE IP address:
                     
                       The Framed-IP-Address AVP (AVP Code 8) [RADIUS] is of type
       OctetString and contains an IPv4 address of the type specified in the
       attribute value to be configured for the user.  It MAY be used in an
       authorization request as a hint to the server that a specific address
       is desired, but the server is not required to honor the hint in the
       corresponding response.
    
       Two values have special significance: 0xFFFFFFFF and 0xFFFFFFFE.  The
       value 0xFFFFFFFF indicates that the NAS should allow the user to
       select an address (i.e., negotiated).  The value 0xFFFFFFFE indicates
       that the NAS should select an address for the user (e.g., assigned
       from a pool of addresses kept by the NAS).
    
    
                    Ref: TS 129 214 5-4, table 5-4-1
        */
        modulepar octetstring PX_UE_framedIpAddress := 'ffffffff'O;
    	
        /** @desc	octetstring,  PIXIT item A.1/
                    (This is an operator option, not a protocol option), 
                    UE IP6 address:
                     
       The Framed-IPv6-Prefix AVP (AVP Code 97) is of type OctetString and
       contains the IPv6 prefix to be configured for the user.  One or more
       AVPs MAY be used in authorization requests as a hint to the server
       that specific IPv6 prefixes are desired, but the server is not
       required to honor the hint in the corresponding response.
    
    
                    Ref: TS 129 214 5-4, table 5-4-1
        */
        modulepar octetstring PX_UE_framedIp6Address := 'ffffffff'O;
        

        /** @desc	charstring, PIXIT item A.1/
        */
        modulepar CC_Request_Ty_Type PX_CC_REQUEST_TYPE := INITIAL_REQUEST_E;
        
        /** @desc	charstring, PIXIT item A.1/
        */
        modulepar Subscription_Id_Ty_Type PX_SUBSCRIPTION_ID_TYPE := END_USER_IMSI_E;
        
        /** @desc	charstring, PIXIT item A.1/
        */
        modulepar UTF8String PX_SUBSCRIPTION_ID_DATA := "SUBS_DATA";
        
        /** @desc	charstring, PIXIT item A.1/
        */
        modulepar IP_CAN_Type PX_IP_CAN_TYPE := ThreeGPP_GPRS_E;
        
        /** @desc	charstring, PIXIT item A.1/
        */
        modulepar RAT_Type PX_RAT_TYPE := WLAN_E;
        
	} //end group DiameterCommonGxData

} // end module DiameterGx_PIXITS
 No newline at end of file
+16 −0
Original line number Diff line number Diff line
@@ -103,6 +103,22 @@
    
    group AVPOperations {
                
        function f_framedIpAddress4_send ()
             return template Framed_IP_Address_AVP
        {
            if (PX_IPv6)
                 {return(omit)}
            else {return(m_framedIpAddress(PX_UE_framedIpAddress))}
        }
        
        function f_framedIpAddress6_send ()
             return template Framed_IPv6_Prefix_AVP
        {
            if (PX_IPv6)
                {return(m_framedIp6Address(PX_UE_framedIp6Address))}
            else {return(omit)}
        }
        
    }//end group AVPOperations
             
    group DefaultAltsteps {
+70 −1
Original line number Diff line number Diff line
@@ -62,6 +62,55 @@ module DiameterGx_Templates {
                aVP_Header := m_aVP_HeaderVid(c_vendIdAuth_Application_Id_AVP, 4, omit),
                aVP_Data := p_avpData
            }  
               //TODO         
            template CC_Request_Type_AVP m_cC_Request_Type(CC_Request_Ty_Type p_avpData):= 
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCC_Request_Type_AVP, 4, omit),
                aVP_Data := p_avpData
            }  
                        
            template Subscription_Id_AVP m_subscription_Id(Subscription_Id_Type_AVP p_typeAVP, Subscription_Id_Data_AVP p_dataAVP):= 
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdSubscription_Id_AVP, (0/*check if headers length need to be added)*/+p_typeAVP.aVP_Header.aVP_len+p_dataAVP.aVP_Header.aVP_len), omit),
                subscription_Id_Type := p_typeAVP,
                subscription_Id_Data := p_dataAVP
            }  
                        
            template IP_CAN_Type_AVP m_iP_CAN_Type(IP_CAN_Type p_avpData):= 
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdIP_CAN_Type_AVP, 4, omit),
                aVP_Data := p_avpData
            }  
                        
            template RAT_Type_AVP m_rAT_Type(RAT_Type p_avpData):= 
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdRAT_Type_AVP, 4, omit),
                aVP_Data := p_avpData
            }  
                        
            template Subscription_Id_Type_AVP m_subscription_Id_Type(Subscription_Id_Ty_Type p_avpData):= 
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdSubscription_Id_Type_AVP, 4, omit),
                aVP_Data := p_avpData
            }  
                        
            template Subscription_Id_Data_AVP m_subscription_Id_Data(UTF8String p_avpData):= 
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdSubscription_Id_Data_AVP, 4, omit),
                aVP_Data := p_avpData
            }  
            
            template Framed_IP_Address_AVP m_framedIpAddress(template (value) octetstring p_avpData) :=
            { 
                aVP_Header := m_aVP_HeaderVid(c_vendIdFramed_IP_Address_AVP, lengthof(p_avpData), omit),
                aVP_Data := p_avpData
            }
    		
            template Framed_IPv6_Prefix_AVP m_framedIp6Address(template (value) octetstring p_avpData) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdFramed_IPv6_Prefix_AVP, lengthof(p_avpData), omit),
                aVP_Data := p_avpData
            }
                
        } //end group SpecificAVPHeaders
    } //end group HeaderFieldTemplates
@@ -87,6 +136,26 @@ module DiameterGx_Templates {
          
        group Gxbasic_request_templates_send {
            
            template CCR_MSG m_CCR_basic(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 Framed_IP_Address_AVP p_framedIpAddress,
            							template Framed_IPv6_Prefix_AVP p_framedIp6Address) modifies m_CCR_dummy := {
                header := m_diameterHeaderReq_dummy(CCR_E, c_applIdGx),
                session_Id := p_sessionId,
                origin_Host := p_originHost,
                origin_Realm := p_originRealm,
                destination_Realm := p_destinationRealm,
                auth_Application_Id := m_authApplicationId(c_applIdGx),
                cC_Request_Type := m_cC_Request_Type(PX_CC_REQUEST_TYPE),
                subscription_Id := {m_subscription_Id(m_subscription_Id_Type(PX_SUBSCRIPTION_ID_TYPE),m_subscription_Id_Data(PX_SUBSCRIPTION_ID_DATA))},
                framed_IP_Address := p_framedIpAddress,
                framed_IPv6_Prefix := p_framedIp6Address,
                iP_CAN_Type := m_iP_CAN_Type(PX_IP_CAN_TYPE),
                rAT_Type := m_rAT_Type(PX_RAT_TYPE)
            }
                    
        } // end group Gxbasic_request_templates_send

      	group Gxbasic_request_templates_receive {
+83 −2
Original line number Diff line number Diff line
@@ -22,25 +22,56 @@ module DiameterGx_TestCases

    group TP_PCEFRole {
        group TP_PCEFRole_IPS {	//Initial Provisioning Session
	
            /*
            * @desc TC_PCEF_IPS_01
            * @param p_cSeq_s Transaction Id
            */
            testcase TC_PCEF_IPS_01() 
            runs on ServerSyncComp
            system TestAdapter {
                //Variables
                var DiameterComponent v_diameterComponent_pcrf;
                f_cf_1GxRUp(v_diameterComponent_pcrf);
		
                //Start
                v_diameterComponent_pcrf.start(f_TC_PCEF_IPS_01());
                
                // synchronize PTC on 3 sychronization points
                f_serverSync1Client({c_prDone, c_tbDone, c_poDone});
		
                f_cf_1GxRDown(v_diameterComponent_pcrf);
		
            } // end TC_PCEF_IPS_01
        }//end group TP_PCEFRole_IPS
        
        group TP_PCEFRole_MSI {	//Modification of Session Information
        }//end group  TP_PCEFRole_MSI
        
        group TP_PCEFRole_INV {	//Invalid Behaviour 
        }//end group TP_PCEFRole_INV
        
        group TP_PCEFRole_ST {	//Session Termination
        }//end group  TP_PCEFRole_ST
        
        group TP_PCEFRole_PCC {	//PCC rules
        }//end group TP_PCEFRole_PCC
        
        group TP_PCEFRole_EMS {	//Emergency services
        }//end group TP_PCEFRole_EMS
        
        group TP_PCEFRole_UMC {	//Usage monitoring control
        }//end group TP_PCEFRole_UMC
        
        group TP_PCEFRole_IRS {	//IMS Restoration Support
        }//end group TP_PCEFRole_IRS
        
        group TP_PCEFRole_MPS {	//Multimedia Priority Support
        }//end group TP_PCEFRole_MPS
        
        group TP_PCEFRole_SDC {	//Sponsored Data Connectivity
        }//end group TP_PCEFRole_SDC
        
        group TP_PCEFRole_RAU {	//Reporting Accumulated Usage
        }//end group TP_PCEFRole_RAU
			
@@ -49,8 +80,58 @@ module DiameterGx_TestCases
    }//end group TP_PCEFRole
    
    group TP_PCRFRole {
        group TP_PCRFRole_IPS {	//Initial Provisioning Session	
            /*
            * @desc TC_PCRF_IPS_01
            * @param p_cSeq_s Transaction Id
            */
            testcase TC_PCRF_IPS_01() 
            runs on ServerSyncComp
            system TestAdapter {
                //Variables
                var DiameterComponent v_diameterComponent_pcef;
                f_cf_1GxEUp(v_diameterComponent_pcef);
		
                //Start
                v_diameterComponent_pcef.start(f_TC_PCRF_IPS_01());
                
                // synchronize PTC on 3 sychronization points
                f_serverSync1Client({c_prDone, c_tbDone, c_poDone});
		
                f_cf_1GxEDown(v_diameterComponent_pcef);
		
            } // end TC_PCRF_IPS_01
        }//end group TP_PCRFRole_IPS
        
        group TP_PCRFRole_MSI {	//Modification of Session Information
        }//end group  TP_PCRFRole_MSI
        
        group TP_PCRFRole_INV {	//Invalid Behaviour 
        }//end group TP_PCRFRole_INV
        
        group TP_PCRFRole_ST {	//Session Termination
        }//end group  TP_PCRFRole_ST
        
        group TP_PCRFRole_PCC {	//PCC rules
        }//end group TP_PCRFRole_PCC
        
        group TP_PCRFRole_EMS {	//Emergency services
        }//end group TP_PCRFRole_EMS
        
        group TP_PCRFRole_UMC {	//Usage monitoring control
        }//end group TP_PCRFRole_UMC
        
        group TP_PCRFRole_IRS {	//IMS Restoration Support
        }//end group TP_PCRFRole_IRS
        
        group TP_PCRFRole_MPS {	//Multimedia Priority Support
        }//end group TP_PCRFRole_MPS
        
        group TP_PCRFRole_SDC {	//Sponsored Data Connectivity
        }//end group TP_PCRFRole_SDC
        
        group TP_PCRFRole_RAU {	//Reporting Accumulated Usage
        }//end group TP_PCRFRole_RAU			

    } //end group TP_PCRFRole