Commit cd45dc51 authored by rennoch's avatar rennoch
Browse files

Gx/PCEF test: PCC20

parent 2feef335
Loading
Loading
Loading
Loading
+46 −1
Original line number Diff line number Diff line
@@ -2505,6 +2505,51 @@ module DiameterGx_Gx_TCFunctions {

            } // end function f_TC_PCEF_PCC_19
            
                        
            /*
            *  @desc	This is the test case function TC_PCEF_PCC_20
            *  @param	
            */
            function f_TC_PCEF_PCC_20()
            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));
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                
				f_send_RAR(DiameterGx_Templates.m_RAR_QoS // RAR in Rx-module has different header!
						   (vc_sessionId, vc_originHost, vc_originRealm,
							vc_destinationRealm, vc_destinationHost, 
							{m_qoS_Information_Bearer(m_bearer_Identifier(PX_BEARER_IDENTIFIER))}));
                    
                f_awaiting_RAA(mw_RAA_basic(?,?,?)); 

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                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_PCC_20
                    
        }//end group TP_PCEFRole_PCC
        group TP_PCEFRole_EMS {	//Emergency services
        
@@ -2671,7 +2716,7 @@ module DiameterGx_Gx_TCFunctions {
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                
				f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleRem // RAR in Rx-module has different header!
				f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleRemove // RAR in Rx-module has different header!
						   (vc_sessionId, vc_originHost, vc_originRealm,
							vc_destinationRealm, vc_destinationHost, 
							m_chrgRuleRemove_Name(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA))
+5 −0
Original line number Diff line number Diff line
@@ -206,6 +206,11 @@ module DiameterGx_PIXITS
        */
        modulepar octetstring PX_PDN_CONNECTION_ID_DATA := '08'O;
        
        /** @desc	enumerated type octetstring, 
         * avp_Data within Bearer_Identifier_AVP is of octetstring type
        */
        modulepar octetstring PX_BEARER_IDENTIFIER := '01020304'O;

        /** @desc	enumerated type Bearer_Usage, 
         * avp_Data within Bearer_Usage_AVP is of enumerated type Bearer_Usage
        */
+33 −21
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ module DiameterGx_Templates {
                
            template Charging_Rule_Report_AVP m_chargRuleReport_dummy :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Report_AVP, 0, omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Report_AVP, 4, omit),
                charging_Rule_Name := omit,
                charging_Rule_Base_Name := omit,
                bearer_Identifier := omit,
@@ -50,7 +50,7 @@ module DiameterGx_Templates {
                
            template QoS_Information_AVP m_qoS_Information_dummy :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdQoS_Information_AVP, 0, omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdQoS_Information_AVP, 4, omit),
                qoS_Class_Identifier := omit,
                max_Requested_Bandwidth_UL := omit,
                max_Requested_Bandwidth_DL := omit,
@@ -65,7 +65,7 @@ module DiameterGx_Templates {
                
            template Packet_Filter_Information_AVP m_packet_Filter_Information_dummy :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Information_AVP, 0, omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Information_AVP, 4, omit),
                packet_Filter_Identifier := omit,
                precedence := omit,
                packet_Filter_Content := omit,
@@ -93,7 +93,7 @@ module DiameterGx_Templates {
                            
            template Charging_Rule_Install_AVP m_chrgRuleInstall_dummy :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, 0, omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, 4, omit),
                charging_Rule_Definition := omit,
                charging_Rule_Name := omit,
                charging_Rule_Base_Name := omit,
@@ -129,7 +129,7 @@ module DiameterGx_Templates {
            
            template Charging_Rule_Remove_AVP m_chrgRuleRemove_dummy :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Remove_AVP, 0, omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Remove_AVP, 4, omit),
                charging_Rule_Name := omit,
                charging_Rule_Base_Name := omit,
                aVP_Type := omit
@@ -160,7 +160,7 @@ module DiameterGx_Templates {
                
            template Charging_Rule_Definition_AVP m_chrgRuleDefinition_dummy :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, 0, omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, 4, omit),
                charging_Rule_Name := m_chargingRuleName(''O),
                service_Identifier := omit,
                rating_Group := omit,
@@ -243,7 +243,7 @@ module DiameterGx_Templates {
			
			            
            template Flow_Information_AVP m_flowInformation_dummy := {
                aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Information_AVP, 0, omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Information_AVP, 4, omit),
				flow_Description := omit,
				packet_Filter_Identifier := omit,
				packet_Filter_Usage := omit,
@@ -370,6 +370,12 @@ module DiameterGx_Templates {
                qoS_Class_Identifier := m_qoS_Class_Identifier(p_avpData)
            } 
            
            template QoS_Information_AVP m_qoS_Information_Bearer(template Bearer_Identifier_AVP p_bearerIdentifier) modifies m_qoS_Information_dummy :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdQoS_Information_AVP, 4+lengthof(encvalue(p_bearerIdentifier)), omit),
                bearer_Identifier := p_bearerIdentifier
            }             			    
                
            template APN_Aggregate_Max_Bitrate_UL_AVP m_APN_Aggregate_Max_Bitrate_UL(UInt32 p_avpData):=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdAPN_Aggregate_Max_Bitrate_UL_AVP, 4, omit),
@@ -406,6 +412,12 @@ module DiameterGx_Templates {
                aVP_Data := p_avpData
            }
            
            template Bearer_Identifier_AVP m_bearer_Identifier(octetstring p_avpData) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdBearer_Usage_AVP, 4+lengthof(p_avpData), omit),
                aVP_Data := p_avpData
            }
                
            template (value) Access_Network_Charging_Address_AVP m_accessNetworkChargingAddress(template (value) Address p_avpData) := 
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdAccess_Network_Charging_Address_AVP, f_IPAdressLength(), omit),
@@ -1555,18 +1567,6 @@ module DiameterGx_Templates {
              	  charging_Rule_Install := {p_chargingRuleInstall}
              }                                         
                          
              template RAR_MSG m_RAR_CharRuleRem(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 Charging_Rule_Remove_AVP p_chargingRuleRemove)
                  modifies m_RAR_basic := 
              {
              	  charging_Rule_Remove := {p_chargingRuleRemove}
              }              
              
                          
              template RAR_MSG m_RAR_CharRuleInst_EvTrigger(template Session_Id_AVP p_sessionId,
                                           template Origin_Host_AVP p_originHost,
                                           template Origin_Realm_AVP p_originRealm,
@@ -1674,6 +1674,18 @@ module DiameterGx_Templates {
              	  charging_Rule_Install := {p_chargingRuleInstall,p_chargingRuleInstall2}
              }      

                          
              template RAR_MSG m_RAR_QoS(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 RAR_MSG.qoS_Information p_qoSInformation)
                  modifies m_RAR_basic := 
              {
              	  qoS_Information := p_qoSInformation
              }     

          } //     end group Gxmodified_request_templates_send

		  group Gxmodified_request_templates_receive {
+20 −0
Original line number Diff line number Diff line
@@ -1435,6 +1435,26 @@ module DiameterGx_TestCases
                f_cf_1GxRDown(v_diameterComponent_pcrf);
            } // end TC_PCEF_PCC_19   
            
                        
            /*
            * @desc TC_PCEF_PCC_20
            */
            testcase TC_PCEF_PCC_20() 
            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_PCC_20());
                
                // synchronize PTC on 3 sychronization points
                f_serverSync1Client({c_prDone, c_tbDone, c_poDone});
		
                f_cf_1GxRDown(v_diameterComponent_pcrf);
            } // end TC_PCEF_PCC_20   
            
        }//end group TP_PCEFRole_PCC
        
        group TP_PCEFRole_EMS {	//Emergency services
+1 −0
Original line number Diff line number Diff line
@@ -82,6 +82,7 @@ module DiameterGx_TestExecutions
       execute(TC_PCEF_PCC_17()); 
       execute(TC_PCEF_PCC_18());
       execute(TC_PCEF_PCC_19());
       execute(TC_PCEF_PCC_20());
       execute(TC_PCEF_RAU_01()); 
       execute(TC_PCEF_RAU_02());
       execute(TC_PCEF_RAU_03());