Commit c0b4d7ec authored by rennoch's avatar rennoch
Browse files

TC_PCRF_SN_04/05 added

parent 3a50f487
Loading
Loading
Loading
Loading
+62 −6
Original line number Diff line number Diff line
@@ -684,7 +684,7 @@ module DiameterRx_Rx_TCFunctions {
												   f_framedIpAddress4_send(),
												   f_framedIpAddress6_send(),
                    							   m_specificActionsList,
												   m_mediaComponentDescription_subComponentFlowUN_componentNr
												   m_mediaComponentDescription_subComponentFlow_componentNr
												   (m_mediaSubComponentUN
													(0, AF_SIGNALLING_E),
													m_mediaComponentNr(0))));
@@ -717,7 +717,7 @@ module DiameterRx_Rx_TCFunctions {
												   f_framedIpAddress4_send(),
												   f_framedIpAddress6_send(),
                    							   m_specificActionsList,
												   m_mediaComponentDescription_subComponentFlowN_componentNr
												   m_mediaComponentDescription_subComponentFlow_componentNr
												   (m_mediaSubComponentN
													(0),
													m_mediaComponentNr(0))));
@@ -748,7 +748,7 @@ module DiameterRx_Rx_TCFunctions {
												   f_framedIpAddress4_send(),
												   f_framedIpAddress6_send(),
                    							   m_specificActionsList,
												   m_mediaComponentDescription_subComponentFlowN_componentNr
												   m_mediaComponentDescription_subComponentFlow_componentNr
												   (m_mediaSubComponentN
													(0),
													m_mediaComponentNr(0))));
@@ -789,11 +789,59 @@ module DiameterRx_Rx_TCFunctions {
												   f_framedIpAddress4_send(),
												   f_framedIpAddress6_send(),
                    							   m_specificActionsList,
												   m_mediaComponentDescription_subComponentFlowUN_componentNr
												   m_mediaComponentDescription_subComponentFlow_componentNr
												   (m_mediaSubComponentUND2SP
													(0,AF_SIGNALLING_E,
													m_flowDescription("permit","out","ip",
														{ipno := 4, addr := "1.2.3.4", mask := omit},
														{ipno := 4, addr := "1.2.3.4", mask := omit},
														"",""),
													m_flowDescription("permit","out","ip",
														{ipno := 4, addr := "1.2.3.4", mask := omit},
														{ipno := 4, addr := "1.2.3.4", mask := omit},
														"",""),
													m_flowStatus(ENABLED_E),
													m_afSignallingProtocolSIP
													),
													m_mediaComponentNr(0))));
                    
                    f_awaiting_AAA(mw_AAA_dummy);
				
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
				
                    f_postamble_AF();

                } // end function f_TC_PCRF_SN_04

        /*
        *  @desc	This is the test case function TC_PCRF_SN_05
        *  @param	
        */
                function f_TC_PCRF_SN_05()
                runs on DiameterComponent {
				
                    f_preamble_AF();
				                      
                    f_send_AAR(m_AAR_FIP_SA_Media1(vc_sessionId, vc_originHost,
												   vc_originRealm,
												   vc_destinationRealm,
												   vc_destinationHost,
												   f_framedIpAddress4_send(),
												   f_framedIpAddress6_send(),
                    							   m_specificActionsList,
												   m_mediaComponentDescription_subComponentFlow_componentNr
												   (m_mediaSubComponentUND2SP
													(0,AF_SIGNALLING_E,
													m_flowDescription("permit","out","ip",
														{ipno := 4, addr := "1.2.3.4", mask := omit},
														{ipno := 4, addr := "1.2.3.4", mask := omit},
														"",""),
													m_flowDescription("permit","out","ip",
														{ipno := 4, addr := "1.2.3.4", mask := omit},
														{ipno := 4, addr := "1.2.3.4", mask := omit},
														"",""),
													m_flowStatus(ENABLED_E),
													m_afSignallingProtocolSIP
													),
@@ -801,13 +849,21 @@ module DiameterRx_Rx_TCFunctions {
                    
                    f_awaiting_AAA(mw_AAA_dummy);
                    
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); //     sync
                    
					f_send_STR(m_STR_basic(vc_sessionId, vc_originHost, // Tester initiates termination
					   vc_originRealm, vc_destinationRealm,
					   m_terminationCause(DIAMETER_LOGOUT_E)));
                    
                    f_awaiting_STA(mw_STA_dummy);
				
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
				
                    f_postamble_AF();

                } // end function f_TC_PCRF_SN_04
                } // end function f_TC_PCRF_SN_05

        
    } //end group TP_PCRFRole
+64 −26
Original line number Diff line number Diff line
@@ -392,35 +392,26 @@ module DiameterRx_Templates {
    			flow_Status := p_flowStatus
    		}
    		
            template Media_Component_Description_AVP m_mediaComponentDescription_subComponentFlowUN_componentNr
            template Media_Component_Description_AVP m_mediaComponentDescription_subComponentFlow_componentNr
            (template Media_Sub_Component_AVP p_mediaSubComponent, template Media_Component_Number_AVP p_mediaComponentNr)
                modifies m_mediaComponentDescription_dummy := 
            {
                aVP_Header :=
                    m_aVP_HeaderVid(c_vendIdMedia_Component_Description_AVP,
                                    32 + 12, omit),  //     considers lengths:
                                                     //     media_Component_Nr (12)
                                                     //     subComponent (32)
                    media_Sub_component := {p_mediaSubComponent},
                    media_Component_Nr := p_mediaComponentNr
            }

    		
            template Media_Component_Description_AVP m_mediaComponentDescription_subComponentFlowN_componentNr
            (template Media_Sub_Component_AVP p_mediaSubComponent, template Media_Component_Number_AVP p_mediaComponentNr)
                modifies m_mediaComponentDescription_dummy := 
            {
                aVP_Header :=
                    m_aVP_HeaderVid(c_vendIdMedia_Component_Description_AVP,
                                    20 + 12, omit),  //     considers lengths:
                                                     //     media_Component_Nr (12)
                                                     //     subComponent (20)
                                    8 // header len
                                    + lengthof(encvalue(p_mediaSubComponent)) //     subComponent (32)
                                    + lengthof(encvalue(p_mediaComponentNr)), //     media_Component_Nr (12)
                                    omit),
                    media_Sub_component := {p_mediaSubComponent},
                    media_Component_Nr := p_mediaComponentNr
            }  
    			
            template Media_Sub_Component_AVP m_mediaSubComponentUN (template UInt32 p_flowNumber, template Flow_Usage_Type p_flowUsageType ) := {
                 aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP,12+12, omit),
                 aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP,
                 								8
                 								+ 12 // flow_Number
                 								+ 12, // flow_Usage
                   								omit),
                 flow_Number := {aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Number_AVP,4, omit), aVP_Data := p_flowNumber},
                 flow_Description := omit,
                 flow_Status := omit,
@@ -434,13 +425,21 @@ module DiameterRx_Templates {
            template Media_Sub_Component_AVP m_mediaSubComponentUND2SP 
            		(template UInt32 p_flowNumber, 
            		 template Flow_Usage_Type p_flowUsageType,
//            		 template Flow_Description_AVP p_flowDescription1,
//            		 template Flow_Description_AVP p_flowDescription2,
            		 template Flow_Description_AVP p_flowDescription1,
            		 template Flow_Description_AVP p_flowDescription2,
               		 template Flow_Status_AVP p_FlowStatus,
            		 template AF_Signalling_Protocol_AVP p_afSignallingProtocol) := {
                 aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP,12+12, omit),
                 aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP,
                 					8
                 					+ 12 // flow_Number
                 					+ lengthof(encvalue(p_flowDescription1))
                 					+ lengthof(encvalue(p_flowDescription2))
                   					+ 12 // flow_Usage
                 					+ lengthof(encvalue(p_FlowStatus))
                   					+ lengthof(encvalue(p_afSignallingProtocol)),
                   					omit),
                 flow_Number := {aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Number_AVP,4, omit), aVP_Data := p_flowNumber},
                 flow_Description := omit, //{p_flowDescription1, p_flowDescription2},
                 flow_Description := {p_flowDescription1, p_flowDescription2},
                 flow_Status := p_FlowStatus,
                 flow_Usage := {aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Usage_AVP,4, omit), aVP_Data := p_flowUsageType},
                 max_Requested_Bw_Ul := omit,
@@ -450,7 +449,10 @@ module DiameterRx_Templates {
            }
    			
            template Media_Sub_Component_AVP m_mediaSubComponentN (template UInt32 p_flowNumber) := {
                 aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP,12, omit),
                 aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP,
                 								8
                 								+ 12, // flow_Number
                   								omit),
                 flow_Number := {aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Number_AVP,4, omit), aVP_Data := p_flowNumber},
                 flow_Description := omit,
                 flow_Status := omit,
@@ -522,6 +524,42 @@ module DiameterRx_Templates {
					aVP := omit				
				}
				
           template Flow_Description_AVP m_flowDescription_dummy := {
               aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Description_AVP,8, omit),
    		   aVP_Data := {
    			   action_ := "permit",
    			   direction := "out",
    			   proto := "ip",
    			   src := {ipno := 4, addr := "1.2.3.4", mask := omit},
    			   dst := {ipno := 4, addr := "1.2.3.4", mask := omit},
    			   ports := "",
    			   options := omit
    		   }
    	   }
    	   
    	   template Flow_Description_AVP m_flowDescription (UTF8String p_action, UTF8String p_direction, UTF8String p_proto,
    	   			IP_AddressMask p_src, IP_AddressMask p_dst, UTF8String p_ports, UTF8String p_options) := {
               aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Description_AVP,
               						8
               						+ lengthof(p_action)
               						+ lengthof(p_direction)
               						+ lengthof(encvalue(p_src))
               						+ lengthof(encvalue(p_dst))
               						+ lengthof(p_ports)
               						+ lengthof(p_options),
               						omit),
    		   aVP_Data := {
    			   action_ := p_action,
    			   direction := p_direction,
    			   proto := p_proto,
    			   src := p_src,
    			   dst := p_dst,
    			   ports := p_ports,
    			   options := p_options
    		   }
    	   }


            template Sponsored_Connectivity_Data_AVP mw_sponsoredConnectivityData
    		  (template Sponsor_Identity_AVP p_sponsorIdentity,
    		   template Application_Service_Provider_Identity_AVP p_applicationServiceProviderId,