Commit 5a15d282 authored by pintar's avatar pintar
Browse files

TP_PCEF_IPS_01 and TP_PCRF_IPS_01

parent e03db5ec
Loading
Loading
Loading
Loading
+56 −49
Original line number Diff line number Diff line
@@ -20,8 +20,8 @@ module DiameterGx_Gx_TCFunctions {
	import from DiameterGx_Templates all;
	import from DiameterGx_Steps all;

	group TP_PCEFRole{        
	    group TP_PCEFRole_IPS {	//Initial Provisioning Session
	group TP_PCRFRole{        
	    group TP_PCRFRole_IPS {	//Initial Provisioning Session

            /*
            *  @desc	This is the test case function TC_PCRF_IPS_01
@@ -45,32 +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_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_PCEFRole
	} //end group TP_PCRFRole

    group TP_PCRFRole {
        group TP_PCRFRole_IPS {	//Initial Provisioning Session
    group TP_PCEFRole {
        group TP_PCEFRole_IPS {	//Initial Provisioning Session
            /*
            *  @desc	This is the test case function TC_PCEF_IPS_01
            *  @param	
@@ -82,7 +82,14 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                //f_awaiting_CCR(mw_CCR_basic);//TODO
                f_awaiting_CCR(mw_CCR_sessionRequest(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(INITIAL_REQUEST_E),
                									f_framedIpAddress4(),
                									f_framedIpAddress6(),
                									?));

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync

@@ -93,28 +100,28 @@ 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_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_PCRERole_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_PCRFRole
    } //end group TP_PCEFRole
	
} // end module DiameterGx_Gx_TCFunctions
+4 −0
Original line number Diff line number Diff line
@@ -155,6 +155,10 @@ module DiameterGx_PIXITS
        */
        modulepar CC_Request_Ty_Type PX_CC_REQUEST_TYPE := INITIAL_REQUEST_E;
        
        /** @desc	charstring, PIXIT item A.1/
        */
        modulepar UInt32 PX_CC_REQUEST_NUMBER := 1;
        
        /** @desc	charstring, PIXIT item A.1/
        */
        modulepar Subscription_Id_Ty_Type PX_SUBSCRIPTION_ID_TYPE := END_USER_IMSI_E;
+15 −0
Original line number Diff line number Diff line
@@ -103,6 +103,21 @@
    
    group AVPOperations {
    
        function f_framedIpAddress4 ()
            return template Framed_IP_Address_AVP
        {
            if (PX_IPv6)
                {return(omit)}
            else {return(mw_framedIpAddress(PX_UE_framedIpAddress))}
        }
        function f_framedIpAddress6 ()
            return template Framed_IPv6_Prefix_AVP
        {
            if (PX_IPv6)
                {return(mw_framedIp6Address(PX_UE_framedIp6Address))}
            else {return(omit)}
        }
                
        function f_framedIpAddress4_send ()
             return template Framed_IP_Address_AVP
        {
+104 −3
Original line number Diff line number Diff line
@@ -62,16 +62,22 @@ 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 CC_Request_Number_AVP m_cC_Request_Number(UInt32 p_avpData):= 
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCC_Request_Number_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),
                aVP_Header := m_aVP_HeaderVid(c_vendIdSubscription_Id_AVP, (p_typeAVP.aVP_Header.aVP_len+p_dataAVP.aVP_Header.aVP_len), omit),
                subscription_Id_Type := p_typeAVP,
                subscription_Id_Data := p_dataAVP
            }  
@@ -112,6 +118,67 @@ module DiameterGx_Templates {
                aVP_Data := p_avpData
            }    
    
    		template Framed_IP_Address_AVP mw_framedIpAddress(template (present) octetstring p_avpData) :=
    		{ 
    			aVP_Header := 
    			{
    				aVP_Code := ?,
    				aVP_flags := {v_bit := ?, m_bit := ?, p_bit := ?, reserved_bits := ?},
    				aVP_len := ?,
    				aVP_vid := ?
    			},
    			aVP_Data := p_avpData
    		}
    		
            template Framed_IPv6_Prefix_AVP mw_framedIp6Address(template (present) octetstring p_avpData) :=
            {
                aVP_Header := 
                {
                    aVP_Code := ?,
                    aVP_flags := {v_bit := ?, m_bit := ?, p_bit := ?, reserved_bits := ?},
                    aVP_len := ?,
                    aVP_vid := ?
                },
                aVP_Data := p_avpData
            }    
                        
            template Subscription_Id_AVP mw_subscription_Id(template Subscription_Id_Type_AVP p_typeAVP, template Subscription_Id_Data_AVP p_dataAVP):= 
            {
                aVP_Header := ?,
                subscription_Id_Type := p_typeAVP,
                subscription_Id_Data := p_dataAVP
            }  
                        
            template Subscription_Id_Type_AVP mw_subscription_Id_Type(Subscription_Id_Ty_Type p_avpData):= 
            {
                aVP_Header := ?,
                aVP_Data := p_avpData
            }  
                        
            template Subscription_Id_Data_AVP mw_subscription_Id_Data(UTF8String p_avpData):= 
            {
                aVP_Header := ?,
                aVP_Data := p_avpData
            }  
                        
            template IP_CAN_Type_AVP mw_iP_CAN_Type(IP_CAN_Type p_avpData):= 
            {
                aVP_Header := ?,
                aVP_Data := p_avpData
            }  
                        
            template RAT_Type_AVP mw_rAT_Type(RAT_Type p_avpData):= 
            {
                aVP_Header := ?,
                aVP_Data := p_avpData
            }   
                  
            template CC_Request_Type_AVP mw_cC_Request_Type(CC_Request_Ty_Type p_avpData):= 
            {
                aVP_Header := ?,
                aVP_Data := p_avpData
            }
                
        } //end group SpecificAVPHeaders
    } //end group HeaderFieldTemplates
	
@@ -149,6 +216,7 @@ module DiameterGx_Templates {
                destination_Realm := p_destinationRealm,
                auth_Application_Id := m_authApplicationId(c_applIdGx),
                cC_Request_Type := m_cC_Request_Type(PX_CC_REQUEST_TYPE),
                cC_Request_Number := m_cC_Request_Number(PX_CC_REQUEST_NUMBER),
                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,
@@ -160,6 +228,20 @@ module DiameterGx_Templates {

      	group Gxbasic_request_templates_receive {
            
            template CCR_MSG mw_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 CC_Request_Type_AVP p_cCRequestType
                                        ) modifies mw_CCR_dummy := {
                header := mw_diameterHeaderReq_dummy(CCR_E, c_applIdGx),
                session_Id := p_sessionId,
                origin_Host := p_originHost,
                origin_Realm := p_originRealm,
                destination_Realm := p_destinationRealm,
                cC_Request_Type := p_cCRequestType
            }

        }//end group Gxbasic_request_templates_receive
          
        group Gxbasic_answer_templates_send {
@@ -172,7 +254,9 @@ module DiameterGx_Templates {
                session_Id := p_sessionId,
                origin_Host := p_originHost,
                origin_Realm := p_originRealm,
                auth_Application_Id := m_authApplicationId(c_applIdGx)
                auth_Application_Id := m_authApplicationId(c_applIdGx),
                cC_Request_Type := m_cC_Request_Type(PX_CC_REQUEST_TYPE),
                cC_Request_Number := m_cC_Request_Number(PX_CC_REQUEST_NUMBER)
            }
            
        }          
@@ -200,6 +284,23 @@ module DiameterGx_Templates {

		  group Gxmodified_request_templates_receive {
            
            template CCR_MSG mw_CCR_sessionRequest(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 CC_Request_Type_AVP p_cCRequestType,
            							template Framed_IP_Address_AVP p_framedIpAddress,
            							template Framed_IPv6_Prefix_AVP p_framedIp6Address,
                                        template Routing_Rule_Install_AVP p_routing_Rule_Install
                                        ) modifies mw_CCR_basic := {
                subscription_Id := {mw_subscription_Id(mw_subscription_Id_Type(PX_SUBSCRIPTION_ID_TYPE),mw_subscription_Id_Data(PX_SUBSCRIPTION_ID_DATA))},
                framed_IP_Address := p_framedIpAddress,
                framed_IPv6_Prefix := p_framedIp6Address,
                iP_CAN_Type := mw_iP_CAN_Type(PX_IP_CAN_TYPE),
                rAT_Type := mw_rAT_Type(PX_RAT_TYPE),
                routing_Rule_Install := p_routing_Rule_Install
            }
			  
		  } //     end group Gxmodified_request_templates_receive
		  
          group Gxmodified_answer_templates_send {