Commit 8d6522e8 authored by Rennoch's avatar Rennoch
Browse files

initial modules for TPs at IC and RX

parent 6f2d83e3
Loading
Loading
Loading
Loading
+521 −0
Original line number Diff line number Diff line
/*
 *  @author     STF 574
 *  @version    $Id$
 *  @desc       This module provides the TP behaviour functions at IC interface
 */

module AtsImsIot_TP_behavior_IC
{

	import from AtsImsIot_TestSystem { type ImsInterfaceMonitor, ImsTestCoordinator; }
	import from LibIot_PIXITS {modulepar PX_MAX_MSG_WAIT;}
	import from AtsImsIot_Templates {template all;}
	import from AtsImsIot_TypesAndValues { type SipMessage, SipMessageList, NAPTRmessage, EnumResponse, EnumQuery, SkipType; }
	import from LibIot_TestInterface { type EquipmentUser, IotEquipmentUser };
	import from LibIms_UpperTester {type ImsUserInfo;}
	import from LibIot_TypesAndValues {type SetFilterReq, SetFilterRsp;}
	import from LibIot_Functions { function f_setConformanceVerdict, f_setIotVerdictFAIL; }
	import from LibSip_SIPTypesAndValues all;
	import from LibSip_Templates all;
    
	import from LibSip_Common {
		type 
			GenericParam,
			SemicolonParam_List
	}   
    
	import from AtsImsIot_Functions all;
	import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;}
	// LibSip
	import from LibSip_SDPTypes { type SDP_media_desc_list };
	// LibMsrp
	import from LibMsrp_TypesAndValues { type MsrpURI };
	import from LibMsrp_Functions { function f_str2msrpUri };
	import from LibMsrp_Templates { 
		template 
			m_msrpSend_Dummy, mw_msrpSEND_toPath_fromPath_contentType, 
			m_msrpReport_Dummy, mw_msrpREPORT_success, 
			m_msrpResponse_Dummy, mw_msrpResponse_toPath_fromPath, 
			mw_toPath,  mw_fromPath, mw_msrpResponse_toPath_fromPath_with_transferReports,
			m_msrpURIs_ToPath_Dummy, m_msrpURIs_FromPath_Dummy, 
			mw_contentType 
	};
	import from DiameterS6a_Templates all;
	import from DiameterS6a_PIXITS all;
	import from DiameterGx_Templates all;
	// LibDiameter
	import from LibDiameter_Templates all;
//	import from DiameterRx_Templates all;

    import from AtsImsIot_Templates_IC all;

    
group g_IBCF {

group g_IBCF_INVITE {

		/**
		 * @desc Starts monitor component behavior
		 * @param p_monitorCompRef Reference to monitor component
		 * @remark source function f_mtc_check_TP_IMS_5097_01_ic
		 */
		function f_mtc_check_TP_IC_IBCF_INVITE_01(
			ImsInterfaceMonitor p_monitorCompRef,
			boolean p_checkMessage
		) runs on ImsTestCoordinator  {
		   var charstring v_EUT_A_Addr := f_GetEUTScscfAddress(PX_EUT_A);
		   p_monitorCompRef.start(
			f_imsIot_receive(
				{mw_SipRequest(mdw_TP_IC_IBCF_INVITE_01((mw_SipUrl_Host(v_EUT_A_Addr),
																	mw_SipUrl_Host(f_GetEUTScscfIpAddress(PX_EUT_A))) ))},
				{},
				{0, omit},
				"TP_IC_IBCF_INVITE_01",
				true,
				p_checkMessage
			)
		   );
		   p_monitorCompRef.done;
		} //function

		/**
		 * @desc Starts monitor component behavior for TP_IC_IBCF_INVITE_02
		 * @param p_monitorCompRef Reference to monitor component
		 * @remark source function f_mtc_check_TP_IMS_5097_02_ic
		 */
		function f_mtc_check_TP_IC_IBCF_INVITE_02(
			ImsInterfaceMonitor p_monitorCompRef,
			boolean p_checkMessage
		) runs on ImsTestCoordinator {
		   p_monitorCompRef.start(
			f_imsIot_receive(
				{mw_SipRequest(mdw_TP_IC_IBCF_INVITE_02(mw_SIP_URI_Base, mw_TEL_URI_Base))},
				{mw_SipRequest(mw_INVITE_Request_Base)},
				{0, omit},
				"TP_IC_IBCF_INVITE_02",
				false,
				p_checkMessage
			)
		   );
		   p_monitorCompRef.done;
		}


        /**
         * @desc Starts monitor component behavior
         * @param p_monitorCompRef Reference to monitor component
         * @remark source function f_mtc_check_TP_IMS_5046_01_ic
         */
        function f_mtc_check_TP_IC_IBCF_INVITE_04(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator  {
           var template SipUrl v_pcscfEutAUrl := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A));
           var template SipUrl v_pcscfEutAIpUrl := mw_SipUrl_Host(f_GetEUTPcscfIpAddress(PX_EUT_A));
            var ImsUserInfo v_user := f_getAnyValidUser(PX_EUT_B);
            var template SipUrl v_UserEutBUrl := mw_SipUrl_Host(v_user.domain);
           var SipMessage v_sip := {request := valueof(m_INVITE_Dummy)};
           var Route v_Route;
           var template Route vt_pcscfRoute := {
                    fieldName := ROUTE_E,
                    routeBody := ({mw_routeBody(v_pcscfEutAUrl), *}, 
                                        {mw_routeBody(v_pcscfEutAIpUrl), *} )
                                    };
           var Via v_Via;
           var template Via vt_pcscfVia := {
                    fieldName := VIA_E,
                    viaBody := ({mw_ViaBody_interface(v_pcscfEutAUrl.components.sip.hostPort), *},
                                    {mw_ViaBody_interface(v_pcscfEutAIpUrl.components.sip.hostPort), *} )
                                };
                                
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest((mdw_TP_IC_IBCF_INVITE_04(v_pcscfEutAUrl, v_UserEutBUrl), 
					mdw_TP_IC_IBCF_INVITE_04(v_pcscfEutAIpUrl, v_UserEutBUrl)))},
                {mw_SipRequest(mw_INVITE_Request_Base)},
                {0, omit},
                "TP_IC_IBCF_INVITE_04",
                true,
                p_checkMessage
            )
           );
           p_monitorCompRef.done;
           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
           if(ispresent(v_sip.request.msgHeader.route)) {
            v_Route := v_sip.request.msgHeader.route;
           }
           //if(ispresent(v_sip.request.msgHeader.via)) {
            v_Via := v_sip.request.msgHeader.via;
           //}
            
            // Check Route header
          if (match(v_Route, vt_pcscfRoute)) {
            f_setIotVerdictFAIL("TP_IC_IBCF_INVITE_04");
            } 
           // Check Via header
           if (match(v_Via, vt_pcscfVia)) {
           } else {
            f_setIotVerdictFAIL("TP_IC_IBCF_INVITE_04");
           }
        }

    
} // end group g_IBCF_INVITE

group g_IBCF_REINVITE {  

	/**
	 * @desc Starts monitor component behavior for TP_IC_IBCF_REINVITE_01
	 * @param p_monitorCompRef Reference to monitor component
	 * @remark source function f_mtc_check_TP_IMS_5106_01_ic
	 */
	function f_mtc_check_TP_IC_IBCF_REINVITE_01(
		ImsInterfaceMonitor p_monitorCompRef,
		integer p_skipCount
	) runs on ImsTestCoordinator {
		var template SipUrl v_SCSCF_A_Uri := (mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A)),
														mw_SipUrl_Host(f_GetEUTScscfIpAddress(PX_EUT_A)));
		var template SkipType v_skip := {0, omit};
	            
		if(p_skipCount > 0) {
			v_skip := {1, mw_SipRequest(mw_INVITE_Request_Base)};
		}
	            
	                
	   p_monitorCompRef.start(
		f_imsIot_receive(
			{mw_SipRequest(mdw_TP_IC_IBCF_REINVITE_01(v_SCSCF_A_Uri))},
			{mw_SipRequest(mw_INVITE_Request_Base)},
			v_skip,
			"TP_IC_IBCF_REINVITE_01",
			false,
			false
		)
	   );
	   p_monitorCompRef.done;
	}

} // end group g_IBCF_REINVITE


group g_IBCF_100TRY {  

	/**
	  * @desc Starts monitor component behavior for TP_IMS_5070_01
	  * @param p_monitorCompRef Reference to monitor component
	  * @remark source function f_mtc_check_TP_IMS_5070_01_ic
	  */
	function f_mtc_check_TP_IC_IBCF_100TRY_01(
		ImsInterfaceMonitor p_monitorCompRef,
		boolean p_checkMessage,
		integer p_skipCount
	) runs on ImsTestCoordinator {
           
		var template SkipType v_skip := {0, omit};
            
		if(p_skipCount > 0) {
			v_skip := {p_skipCount, mw_SipRequest(mw_INVITE_Request_Base)};
		}
       
		p_monitorCompRef.start(
			f_imsIot_receive(
			{mw_SipRequest(mw_INVITE_Request_Base)},
			{},
			v_skip,
			"TP_IC_IBCF_100TRY_01",
			false,
			p_checkMessage
			)
		);
		p_monitorCompRef.done;
            
		p_monitorCompRef.start(
			f_imsIot_receive(
			{mw_SipResponse(mw_100Trying_Base)},
			{},
			v_skip,
			"TP_IC_IBCF_100TRY_01",
			false,
			false
			)
		);
		p_monitorCompRef.done;
       
	}

} // end group g_IBCF_100TRY

group g_IBCF_180RESP {
	
	/**
	  * @desc Starts monitor component behavior
	  * @param p_monitorCompRef Reference to monitor component
	  * @remark source function f_mtc_check_TP_IMS_5115_01_ic
	  */
	function f_mtc_check_TP_IC_IBCF_180RESP_01(
		ImsInterfaceMonitor p_monitorCompRef,
		boolean p_checkMessage 
	) runs on ImsTestCoordinator {
                        
	   p_monitorCompRef.start(
		f_imsIot_receive(
			{mw_SipResponse(mdw_TP_IBCF_180RESP_01)},
			{mw_SipResponse(mw_180Ringing_Base)},
			{0, omit},
			"TP_IC_IBCF_180RESP_01",
			false,
			p_checkMessage
		)
	   );
	   p_monitorCompRef.done;
	}	

	/**
	  * @desc Starts monitor component behavior
	  * @param p_monitorCompRef Reference to monitor component
	  * @remark source function f_mtc_check_TP_IMS_5131_01_ic
	  */
	function f_mtc_check_TP_IC_IBCF_180RESP_02(
		ImsInterfaceMonitor p_monitorCompRef,
		boolean p_checkMessage 
	) runs on ImsTestCoordinator {  
                        
		p_monitorCompRef.start(
			f_imsIot_receive(
				{mw_SipResponse(mdw_TP_IC_IBCF_180RESP_02)},
				{mw_SipResponse(mw_180Ringing_Base)},
				{0, omit},
				"TP_IC_IBCF_180RESP_02",
				false,
				p_checkMessage
			)
		);
		p_monitorCompRef.done;
	}
	
} // end group g_IBCF_180RESP

group g_IBCF_1XXRESP {
    
	/**
	  * @desc Starts monitor component behavior
	  * @param p_monitorCompRef Reference to monitor component
	  * @remark source function f_mtc_check_TP_IMS_5115_03_ic
	  */
	function f_mtc_check_TP_IC_IBCF_1XXRESP_01(
		ImsInterfaceMonitor p_monitorCompRef,
		boolean p_checkMessage 
	) runs on ImsTestCoordinator {
                        
		p_monitorCompRef.start(
			f_imsIot_receive(
				{mw_SipResponse(mdw_TP_IC_IBCF_1XXRESP_01(mw_SIP_URI_Base, mw_TEL_URI_Base))},
				{mw_SipResponse(mw_180Ringing_Base)},
				{0, omit},
				"TP_IC_IBCF_1XXRESP_01",
				false,
				p_checkMessage
			)
		);
		p_monitorCompRef.done;
	}    
    
} // end group g_IBCF_1XXRESP

group g_IBCF_2XXRESP {
	
	/**
	  * @desc Starts monitor component behavior
	  * @param p_monitorCompRef Reference to monitor component
	  * @remark source function f_mtc_check_TP_IMS_5115_02_ic
	  */
	function f_mtc_check_TP_IC_IBCF_2XXRESP_01(
		ImsInterfaceMonitor p_monitorCompRef,
		boolean p_checkMessage 
	) runs on ImsTestCoordinator {

		p_monitorCompRef.start(
			f_imsIot_receive(
				{mw_SipResponse(mdw_TP_IC_IBCF_2XXRESP_01)},
				{mw_SipResponse(mw_200OK_Base)},
				{0, omit},
				"TP_IC_IBCF_2XXRESP_01",
				false,
				p_checkMessage
			)
		);
		p_monitorCompRef.done;
	}	

	/**
	  * @desc Starts monitor component behavior
	  * @param p_monitorCompRef Reference to monitor component
	  * @remark source function f_mtc_check_TP_IMS_5131_02_ic
	  */
	function f_mtc_check_TP_IC_IBCF_2XXRESP_03(
		ImsInterfaceMonitor p_monitorCompRef,
		boolean p_checkMessage 
	) runs on ImsTestCoordinator {

		p_monitorCompRef.start(
			f_imsIot_receive(
				{mw_SipResponse(mdw_TP_IC_IBCF_2XXRESP_03)},
				{mw_SipResponse(mw_200OK_Base)},
				{0, omit},
				"TP_IC_IBCF_2XXRESP_03",
				false,
				p_checkMessage
			)
		);
		p_monitorCompRef.done;
	}

	/**
	  * @desc Starts monitor component behavior
	  * @param p_monitorCompRef Reference to monitor component
	  * @remark source function f_mtc_check_TP_IMS_5115_04_ic
	  */
	function f_mtc_check_TP_IC_IBCF_2XXRESP_02(
		ImsInterfaceMonitor p_monitorCompRef,
		boolean p_checkMessage 
	) runs on ImsTestCoordinator {

		p_monitorCompRef.start(
			f_imsIot_receive(
				{mw_SipResponse(mdw_TP_IC_IBCF_2XXRESP_02(mw_SIP_URI_Base, mw_TEL_URI_Base))},
				{mw_SipResponse(mw_200OK_Base)},
				{0, omit},
				"TP_IC_IBCF_2XXRESP_02",
				false,
				p_checkMessage
			)
		);
		p_monitorCompRef.done;
	}

	/**
	 * @desc Starts monitor component behavior for TP_IMS_5121_02
	 * @param p_monitorCompRef Reference to monitor component
	 * @remark source function f_mtc_check_TP_IMS_5121_02_ic
	 */
	function f_mtc_check_TP_IC_IBCF_2XXRESP_04(
		ImsInterfaceMonitor p_monitorCompRef,
		integer p_skipCount
	) runs on ImsTestCoordinator {
		var template SipUrl v_SCSCF_A_Uri := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A));
		var template SkipType v_skip := {0, omit};
            
		if(p_skipCount > 0) {
			v_skip := {1, mw_SipResponse(mdw_2XX_Base)};
		}
            
                
	   p_monitorCompRef.start(
		f_imsIot_receive(
			{mw_SipResponse(mw_TP_IC_IBCF_2XXRESP_04)},
			{mw_SipResponse(mdw_2XX_Base)},
			v_skip,
			"TP_IC_IBCF_2XXRESP_04",
			false,
			false
		)
	   );
	   p_monitorCompRef.done;
	}
	
} // end group g_IBCF_2XXRESP


group g_IBCF_ACK {
	
	/**
	 * @desc Starts monitor component behavior
	 * @param p_monitorCompRef Reference to monitor component
	 * @remark source function f_mtc_check_TP_IMS_5107_02_ic
	 */
	function f_mtc_check_TP_IC_IBCF_ACK_01(
		ImsInterfaceMonitor p_monitorCompRef,
		boolean p_checkMessage
	) runs on ImsTestCoordinator  {
	var charstring v_EUT_A_Addr := f_GetEUTScscfAddress(PX_EUT_A);
                
	p_monitorCompRef.start(
	 f_imsIot_receive(
		{mw_SipRequest(mdw_TP_IC_IBCF_ACK_01(?, mw_SipUrl_Host(v_EUT_A_Addr)))},
		{},
		{0, omit},
		"TP_IC_IBCF_ACK_01",
		false,
		p_checkMessage
	 )
	);
   p_monitorCompRef.done;
   } //function	
	
	
} // end group g_IBCF_ACK	

group g_IBCF_BYE {
	
	 /**
	  * @desc Starts monitor component behavior
	  * @param p_monitorCompRef Reference to monitor component
	  * @remark source function f_mtc_check_TP_IMS_5107_01_ic
	  */
	 function f_mtc_check_TP_IC_IBCF_BYE_01(
		 ImsInterfaceMonitor p_monitorCompRef,
		 boolean p_checkMessage
	 ) runs on ImsTestCoordinator  { 
	 var charstring v_EUT_A_Addr := f_GetEUTScscfAddress(PX_EUT_A);
	        
	 p_monitorCompRef.start(
	  f_imsIot_receive(
		 {mw_SipRequest(mdw_TP_IMS_5107_01_ic(?, mw_SipUrl_Host(v_EUT_A_Addr)))},
		 {},
		 {0, omit},
		 "TP_IC_IBCF_BYE_01",
		 false,
		 p_checkMessage
	  )
	 );
	 p_monitorCompRef.done;
	} //function

} // end group g_IBCF_BYE

} // end group g_IBCF


group g_SCSCF {

group g_SCSCF_INVITE {

	/**
	* @desc Starts monitor component behavior for TP_IC_SCSCF_INVITE_03
	* @param p_monitorCompRef Reference to monitor component
	* @remark source function f_mtc_check_TP_IMS_5097_04_ic
	*/
	function f_mtc_check_TP_IC_SCSCF_INVITE_03(
		ImsInterfaceMonitor p_monitorCompRef,
		boolean p_checkMessage
	) runs on ImsTestCoordinator {
		var template SipUrl v_eutBUri := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_B));
		p_monitorCompRef.start(
		f_imsIot_receive(
			{mw_SipRequest(mdw_TP_IMS_5097_04_ic(v_eutBUri))},
			{mw_SipRequest(mw_INVITE_Request_Base)},
			{0, omit},
			"TP_IC_SCSCF_INVITE_03",
			false,
			p_checkMessage
			)
		);
		p_monitorCompRef.done;
	}

} // end group g_SCSCF_INVITE

} // end group g_SCSCF


} // end module AtsImsIot_TP_behavior_IC
 No newline at end of file
+216 −0
Original line number Diff line number Diff line
/*
 *  @author     STF 574
 *  @version    $Id$
 *  @desc       This module provides the TP behaviour functions at RX interface
 */

module AtsImsIot_TP_behavior_RX
{

	import from AtsImsIot_TestSystem { type ImsInterfaceMonitor, ImsTestCoordinator; }
	import from LibIot_PIXITS {modulepar PX_MAX_MSG_WAIT;}
	import from AtsImsIot_Templates {template all;}
	import from AtsImsIot_TypesAndValues { type SipMessage, SipMessageList, NAPTRmessage, EnumResponse, EnumQuery, SkipType; }
	import from LibIot_TestInterface { type EquipmentUser, IotEquipmentUser };
	import from LibIms_UpperTester {type ImsUserInfo;}
	import from LibIot_TypesAndValues {type SetFilterReq, SetFilterRsp;}
	import from LibIot_Functions { function f_setConformanceVerdict, f_setIotVerdictFAIL; }
	import from LibSip_SIPTypesAndValues all;
	import from LibSip_Templates all;
    
	import from LibSip_Common {
		type 
			GenericParam,
			SemicolonParam_List
	}   
    
	import from AtsImsIot_Functions all;
	import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;}
	// LibSip
	import from LibSip_SDPTypes { type SDP_media_desc_list };
	// LibMsrp
	import from LibMsrp_TypesAndValues { type MsrpURI };
	import from LibMsrp_Functions { function f_str2msrpUri };
	import from LibMsrp_Templates { 
		template 
			m_msrpSend_Dummy, mw_msrpSEND_toPath_fromPath_contentType, 
			m_msrpReport_Dummy, mw_msrpREPORT_success, 
			m_msrpResponse_Dummy, mw_msrpResponse_toPath_fromPath, 
			mw_toPath,  mw_fromPath, mw_msrpResponse_toPath_fromPath_with_transferReports,
			m_msrpURIs_ToPath_Dummy, m_msrpURIs_FromPath_Dummy, 
			mw_contentType 
	};
	import from DiameterS6a_Templates all;
	import from DiameterS6a_PIXITS all;
	import from DiameterGx_Templates all;
	// LibDiameter
	import from LibDiameter_Templates all;
//	import from DiameterRx_Templates all;
    
group g_PCRF {

group g_PCRF_ASA {

	/**
	 * Starts monitor component behavior for TP_RX_PCRF_ASA_01
	 * @param p_monitorCompRef Reference to monitor component
	 * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
	 * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
	 * <pre>
	 * ensure that {
	 *     when { 
	 *         EPC_PCRF triggers_termination of SIP_session 
	 *     }
	 *     then { 
	 *         EPC_PCRF sends Abort-Session-Request to IMS_P-CSCF containing 
	 *             Session-Id_AVP indicating session of SIP_session
	 *             Abort-Cause_AVP indicating BEARER_RELEASED (0)
	 *     } 
	 * } 
	 * </pre>
	 * @see TS 103 029 V3.1.1 clause 7.1.2
	 * @remark source function f_mtc_check_TP_EPC_6005_01
	 */
	function f_mtc_check_TP_RX_PCRF_ASA_01(
		ImsInterfaceMonitor p_monitorCompRef
	) runs on ImsTestCoordinator {
		p_monitorCompRef.start (
			f_receiveDiameterMsg ( { aSR_MSG := mw_ASR_dummy } , "TP_RX_PCRF_ASA_01", true )
		);
		p_monitorCompRef.done;
	} // End of function f_mtc_check_TP_RX_PCRF_ASA_01

} // end group g_PCRF_ASA

group g_PCRF_AAA {

	/**
	 * Starts monitor component behavior for TP_RX_PCRF_AAA_01
	 * @param p_monitorCompRef Reference to monitor component
	 * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
	 * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
	 * @remark source function f_mtc_check_TP_EPC_6014_01
	 */
	function f_mtc_check_TP_RX_PCRF_AAA_01(
		ImsInterfaceMonitor p_monitorCompRef
	) runs on ImsTestCoordinator {
		p_monitorCompRef.start (
			f_receiveDiameterMsg ( { aAA_MSG := mw_AAA_dummy } , "TP_RX_PCRF_AAA_01", true )
		);
		p_monitorCompRef.done;
	} // End of function f_mtc_check_TP_RX_PCRF_AAA_01

} // end group g_PCRF_AAA

} // end group g_PCRF


group g_PCSCF {


group g_PCSCF_AAR {

	/**
	 * Starts monitor component behavior for TP_RX_PCSCF_AAR_01
	 * @param p_monitorCompRef Reference to monitor component
	 * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
	 * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
	 * <pre>
	 * ensure that {
	 *     when { 
	 *         IMS_P-CSCF receives 2xx_Response on REGISTER from IMS_SCSCF
	 *     }
	 *     then { 
	 *         IMS_P-CSCF sends AA-Request to EPC_PCRF containing 
	 *             a framed IPv4_Address AVP indicating IPv4_Address of UE_A 
	 *             or a framed IPv6_Address AVP indicating IPv6_Address of UE_A 
	 *             and one or more Media-Component-Description_AVP containing 
	 *                 Media-Component-Number_AVP indicating value 0
	 *                 and Flow-Description_AVP indicating 
	 *                     indicating permit_in_ip from (UE_A-IP_address and UE_A_port_number) to (P-CSCF-IP_address and P-CSCF_port_number) 
	 *                     or permit_in_udp from (UE_A-IP_address and UE_A_port_number) to (P-CSCF-IP_address and P-CSCF_port_number) 
	 *                     or permit_in_tcp from (UE_A-IP_address and UE_A_port_number) to (P-CSCF-IP_address and P-CSCF_port_number) 
	 *                 and Flow-Description_AVP indicating 
	 *                     permit_out_ip from (P-CSCF-IP_address PCSCF_port_number) to UE_A-IP_address 
	 *                     or permit_out_udp from (P-CSCF-IP_address PCSCF_port_number) to UE_A-IP_address 
	 *                     or permit_out_tcp from (P-CSCF-IP_address PCSCF_port_number) to UE_A-IP_address 
	 *                 and Flow-Usage_AVP indicating AF_SIGNALING(0)
	 *                 and Flow-Status_AVP indicating ENABLED(2)
	 *                 and AF-Signalling-Protocol_AVP indicating SIP(1)
	 *     } 
	 * } 
	 * </pre>
	 * @see TS 103 029 V3.1.1 clause 7.2.1.1
	 * @remark source function f_mtc_check_TP_EPC_6013_01
	 */
	function f_mtc_check_TP_RX_PCSCF_AAR_01(
		ImsInterfaceMonitor p_monitorCompRef
	) runs on ImsTestCoordinator {
		p_monitorCompRef.start (
			f_receiveDiameterMsg ( { aAR_MSG := mw_AAR_dummy } , "TP_RX_PCSCF_AAR_01", true )
		);
		p_monitorCompRef.done;
	} // End of function f_mtc_check_TP_RX_PCSCF_AAR_01

} // end group g_PCSCF_AAR
	
group g_PCSCF_STR {

	/**
	* Starts monitor component behavior for TP_RX_PCSCF_STR_03
	* @param p_monitorCompRef Reference to monitor component
	* @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
	* The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
	* @remark source function f_mtc_check_TP_EPC_6034_02
	*/
   function f_mtc_check_TP_RX_PCSCF_STR_03(
	   ImsInterfaceMonitor p_monitorCompRef
   ) runs on ImsTestCoordinator {
	   p_monitorCompRef.start(
		f_imsIot_receive(
			{ mw_SipRequest ( mw_CANCEL_Request_Base ( ? ) ) }, { }, { 0, omit },
			"TP_RX_PCSCF_STR_03", false, false )
	   );
	   p_monitorCompRef.done;
   } // End of function f_mtc_check_TP_RX_PCSCF_STR_03

   /**
   * Starts monitor component behavior for TP_RX_PCSCF_STR_06
   * @param p_monitorCompRef Reference to monitor component
   * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
   * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
   * @remark source function f_mtc_check_TP_EPC_6034_04
   */
  function f_mtc_check_TP_RX_PCSCF_STR_06(
	  ImsInterfaceMonitor p_monitorCompRef
  ) runs on ImsTestCoordinator {
	  p_monitorCompRef.start(
	   f_imsIot_receive(
		   { mw_SipResponse ( mw_Response_Base ( c_statusLine486, ?, ? ) ) }, { }, { 0, omit },
		   "TP_RX_PCSCF_STR_06", false, false )
	  );
	  p_monitorCompRef.done;
  } // End of function f_mtc_check_TP_RX_PCSCF_STR_06

	/**
	* Starts monitor component behavior for TP_RX_PCSCF_STR_07
	* @param p_monitorCompRef Reference to monitor component
	* @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
	* The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
	* @remark source function f_mtc_check_TP_EPC_6012_02
	*/
   function f_mtc_check_TP_RX_PCSCF_STR_07(
	   ImsInterfaceMonitor p_monitorCompRef,
	   ImsInterfaceMonitor p_monitorCompRef_B
   ) runs on ImsTestCoordinator {
//	   f_mtc_check_TP_EPC_6012_01 ( p_monitorCompRef, false );
//	   f_mtc_check_TP_EPC_6022_01 ( p_monitorCompRef );
//	   f_mtc_check_TP_EPC_6009_01 ( p_monitorCompRef );
   } // End of function f_mtc_check_TP_RX_PCSCF_STR_07

} // end group g_PCSCF_STR

} // end group g_PCSCF


} // end module AtsImsIot_TP_behavior_RX
 No newline at end of file
+430 −0

File added.

Preview size limit exceeded, changes collapsed.

Compare 3fbdde74 to 2acb7ee6
Original line number Diff line number Diff line
Subproject commit 3fbdde74a0593590270318e1bd033ad65d974393
Subproject commit 2acb7ee656b6be066139a050b072e0d345c10022