Commit a927fa9f authored by pintar's avatar pintar
Browse files

adapted functions f_cf_int_as_up, f_cf_int_as_down

new functions f_cf_roam_as_up, f_cf_roam_as_down
	due to document ts_18601102v020301p chapter 4.3.4
	Figure 4 and 5 (iscA or iscB are optional and can 
					be used both or either iscA or iscB)
parent 64045155
Loading
Loading
Loading
Loading
+158 −40
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ module AtsImsIot_TestConfiguration {
		type StartTrafficCaptureRsp, StopTrafficCaptureRsp;
	}

	import from AtsImsIot_TestSystem {type CF_INT_CALL;}
	import from AtsImsIot_TestSystem {type CF_INT_CALL, CF_INT_AS, CF_ROAM_AS;}

	import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B, PX_PRODUCTS, PX_MAX_MSG_WAIT;}

@@ -473,55 +473,70 @@ module AtsImsIot_TestConfiguration {
				 *     ports and initialize the test adapter.
				 *     More information can be found in ETSI TS 186 011-2 V2.3.1 Cause
		 *     4.3.4.
				 * @param p_GmA Gm A Interface Monitor component
				 * @param p_Mw Mw Interface Monitor component
				 * @param p_GmB Gm B Interface Monitor component
				 * @param p_IscA Isc A Interface Monitor component
				 *      
				 * @param p_config.gmA Gm A Interface Monitor component
				 * @param p_config.mw Mw Interface Monitor component
				 * @param p_config.gmB Gm B Interface Monitor component
				 * @param p_config.iscA Isc A Interface Monitor component
				 * @param p_config.iscB Isc B Interface Monitor component
				 *      IscA and IscB Interface Monitor component (optional, can be omitted)
				 */
			function f_cf_int_as_up(
				inout ImsInterfaceMonitor p_GmA, 
				inout ImsInterfaceMonitor p_Mw,
				inout ImsInterfaceMonitor p_GmB,
				inout ImsInterfaceMonitor p_IscA
  				inout CF_INT_AS p_config
			) runs on ImsTestCoordinator {
				f_cf_monitor_up(p_GmA);
				f_cf_monitor_up(p_Mw);
				f_cf_monitor_up(p_GmB);
				f_cf_monitor_up(p_IscA);
				f_cf_monitor_up(p_config.gmA);
				f_cf_monitor_up(p_config.mw);
				f_cf_monitor_up(p_config.gmB);
				if(isvalue(p_config.iscA)) {
					f_cf_monitor_up(p_config.iscA);
				}
				if(isvalue(p_config.iscB)) {
					f_cf_monitor_up(p_config.iscB);
				}
								
				// TODO UE IP address and port is missing
				p_GmA.start(f_cf_setFilter(
				p_config.gmA.start(f_cf_setFilter(
					valueof (m_SetFilterReq(
						e_sip,
						{f_getInterfaceInfo("Gm", PX_PRODUCTS[PX_EUT_A])}
					)
				)));
				p_GmA.done;
				p_config.gmA.done;
				
				p_Mw.start(f_cf_setFilter(
				p_config.mw.start(f_cf_setFilter(
					valueof(m_SetFilterReq(
						e_sip, 
						f_getInterfaceInfoList("Mw", PX_EUT_A, PX_EUT_B)
					)
				)));
				p_Mw.done;
				p_config.mw.done;
				
				p_GmB.start(f_cf_setFilter(
				p_config.gmB.start(f_cf_setFilter(
					valueof (m_SetFilterReq(
						e_sip, 
						{f_getInterfaceInfo("Gm", PX_PRODUCTS[PX_EUT_B])}
					)
				)));
				p_GmB.done;
				p_config.gmB.done;
				
				p_IscA.start(f_cf_setFilter(
				if(isvalue(p_config.iscA)) {
    				p_config.iscA.start(f_cf_setFilter(
    					valueof (m_SetFilterReq(
    						e_sip, 
    						{f_getInterfaceInfo("ISC", PX_PRODUCTS[PX_EUT_A])}
    					)
    				)));
				p_IscA.done;
    				p_config.iscA.done;
				}
				
				if(isvalue(p_config.iscB)) {
					p_config.iscB.start(f_cf_setFilter(
						valueof (m_SetFilterReq(
							e_sip, 
							{f_getInterfaceInfo("ISC", PX_PRODUCTS[PX_EUT_B])}
						)
					)));
					p_config.iscB.done;
				}
			}
			
			/**
@@ -529,21 +544,124 @@ module AtsImsIot_TestConfiguration {
				 *     Interworking Application Server test configuration.
				 *     Ummaps/disconnect the related component ports. More information
				 *     can be found in ETSI TS 186 011-2 V2.3.1 Cause 4.3.4.
				 * @param p_GmA Gm A Interface Monitor component
				 * @param p_Mw Mw Interface Monitor component
				 * @param p_GmB Gm B Interface Monitor component
				 * @param p_Isc ISC A Interface Monitor component
				 * @param p_config.gmA Gm A Interface Monitor component
				 * @param p_config.mw Mw Interface Monitor component
				 * @param p_config.gmB Gm B Interface Monitor component
				 * @param p_config.iscA Isc A Interface Monitor component
				 * @param p_config.iscB Isc B Interface Monitor component
				 *      IscA and IscB Interface Monitor component (optional, can be omitted)
				 */
			function f_cf_int_as_down(
				inout ImsInterfaceMonitor p_GmA, 
				inout ImsInterfaceMonitor p_Mw,
				inout ImsInterfaceMonitor p_GmB,
				inout ImsInterfaceMonitor p_IscA
				inout CF_INT_AS p_config
			) runs on ImsTestCoordinator {
				f_cf_monitor_down(p_GmA);
			f_cf_monitor_down(p_Mw);
				f_cf_monitor_down(p_GmB);
				f_cf_monitor_down(p_IscA);
				f_cf_monitor_down(p_config.gmA);
				f_cf_monitor_down(p_config.mw);
				f_cf_monitor_down(p_config.gmB);
				if(isvalue(p_config.iscA)) {
					f_cf_monitor_down(p_config.iscA);
				}
				if(isvalue(p_config.iscB)) {
					f_cf_monitor_down(p_config.iscB);
				}
			}
			
			
		/**
				* @desc
				*     Roaming Call test configuration. Mapps/connects all related
				*     ports and initialize the test adapter.
				*     More information can be found in ETSI TS 186 011-2 V2.3.1 Cause
		*     4.3.4.
				* @param p_config.gmA Gm A Interface Monitor component
				* @param p_config.mw Mw Interface Monitor component
				* @param p_config.gmB Gm B Interface Monitor component
				* @param p_config.iscA Isc A Interface Monitor component
				* @param p_config.iscB Isc B Interface Monitor component
				*      IscA and IscB Interface Monitor component (optional, can be omitted)
				*/
		function f_cf_roam_as_up(
			inout CF_ROAM_AS p_config
		) runs on ImsTestCoordinator {
			f_cf_monitor_up(p_config.gmA);
			f_cf_monitor_up(p_config.mw);
			f_cf_monitor_up(p_config.gmB);
			if(isvalue(p_config.iscA)) {
				f_cf_monitor_up(p_config.iscA);
			}
			if(isvalue(p_config.iscB)) {
				f_cf_monitor_up(p_config.iscB);
			}
								
			// TODO UE IP address and port is missing
			p_config.gmA.start(f_cf_setFilter(
				valueof (m_SetFilterReq(
					e_sip,
					{f_getInterfaceInfo("Gm", PX_PRODUCTS[PX_EUT_A])}
				)
			)));
			p_config.gmA.done;
				
			p_config.mw.start(f_cf_setFilter(
				valueof(m_SetFilterReq(
					e_sip, 
					f_getInterfaceInfoList("Mw", PX_EUT_A, PX_EUT_B)
				)
			)));
			p_config.mw.done;
				
			p_config.gmB.start(f_cf_setFilter(
				valueof (m_SetFilterReq(
					e_sip, 
					{f_getInterfaceInfo("Gm", PX_PRODUCTS[PX_EUT_B])}
				)
			)));
			p_config.gmB.done;
				
			if(isvalue(p_config.iscA)) {
							p_config.iscA.start(f_cf_setFilter(
								valueof (m_SetFilterReq(
									e_sip, 
									{f_getInterfaceInfo("ISC", PX_PRODUCTS[PX_EUT_A])}
								)
							)));
							p_config.iscA.done;
			}
				
			if(isvalue(p_config.iscB)) {
				p_config.iscB.start(f_cf_setFilter(
					valueof (m_SetFilterReq(
						e_sip, 
						{f_getInterfaceInfo("ISC", PX_PRODUCTS[PX_EUT_B])}
					)
				)));
				p_config.iscB.done;
			}
		}
			
		/**
				* @desc
				*     Interworking Application Server test configuration.
				*     Ummaps/disconnect the related component ports. More information
				*     can be found in ETSI TS 186 011-2 V2.3.1 Cause 4.3.4.
				* @param p_config.gmA Gm A Interface Monitor component
				* @param p_config.mw Mw Interface Monitor component
				* @param p_config.gmB Gm B Interface Monitor component
				* @param p_config.iscA Isc A Interface Monitor component
				* @param p_config.iscB Isc B Interface Monitor component
				*      IscA and IscB Interface Monitor component (optional, can be omitted)
				*/
		function f_cf_roam_as_down(
			inout CF_ROAM_AS p_config
		) runs on ImsTestCoordinator {
			f_cf_monitor_down(p_config.gmA);
			f_cf_monitor_down(p_config.mw);
			f_cf_monitor_down(p_config.gmB);
			if(isvalue(p_config.iscA)) {
				f_cf_monitor_down(p_config.iscA);
			}
			if(isvalue(p_config.iscB)) {
				f_cf_monitor_down(p_config.iscB);
			}
		}
	}