Commit ffdce1cc authored by poglitsch's avatar poglitsch
Browse files

first version of adapter configuration added

parent e117da51
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -6,12 +6,32 @@

module AtsImsIot_Templates {

	import from LibIot_TypesAndValues {
		type
			InterfaceInfoList,
			ProtocolFilter,
			SetFilterReq,
			SetFilterRsp,
			Status;
	}

	import from AtsImsIot_TypesAndValues {type SipMessage;}

	import from LibSip_SIPTypesAndValues all;
	
	import from LibSip_Templates all;
	
	group adapterMsgTemplates {
		template SetFilterReq m_SetFilterReq(ProtocolFilter p_protocol, InterfaceInfoList p_iterfaces)	:= {
			protocol := p_protocol,
			interfaceInfos := p_iterfaces
		}
		
		template SetFilterRsp mw_SetFilterRsp(template Status p_status) := {
			status := p_status
		}
	}

	
	group sipTemplates {
    
+231 −71
Original line number Diff line number Diff line
@@ -9,6 +9,31 @@

module AtsImsIot_TestConfiguration {
	
	import from Interface_configuration {
		modulepar PX_EUT_A, PX_EUT_B, PX_PRODUCTS;
		type InterfaceInfo, Product;
	}

	import from LibIot_Functions {
		function f_setConformanceVerdict, f_setE2EVerdict;
	}

	import from AtsImsIot_Templates {template m_SetFilterReq, mw_SetFilterRsp;}

	import from LibCommon_VerdictControl {type FncRetCode;}
	with {
		extension "Project:LibCommon"
	}

	import from LibIot_TypesAndValues {
		type
			InterfaceInfoList,
			ProtocolFilter,
			SetFilterReq,
			SetFilterRsp,
			Status;
	}

	import from LibIot_TestConfiguration {
		function f_cf_oracle_up, f_cf_oracle_down;
	}
@@ -19,6 +44,27 @@ module AtsImsIot_TestConfiguration {

	import from LibIot_TestInterface {type IotEquipmentUser;}
	
	
	group constantDefinitions {
	 	//* interface monitor name Gm A
		const charstring c_gm_A := "Gm A";
		//* interface monitor name Gm B
		const charstring c_gm_B := "Gm B";
		//* interface monitor name Mw
		const charstring c_mw := "Mw";
		//* interface monitor name Isc A
		const charstring c_isc_A := "Isc A";
		//* interface monitor name Isc B
		const charstring c_isc_B := "Isc B";
		//* eut trigger name User A
		const charstring c_trigger_A := "User A";
		//* eut trigger name User B
		const charstring c_trigger_B := "User B";
	}
	
	
	group mappingFunctions {
	
    	/**
    	 * 
    	 * @desc initialize the adapter port of MTC
@@ -74,6 +120,7 @@ module AtsImsIot_TestConfiguration {
    		connect(p_monitor:icpPort, self:icpPort);
    		// mapp TSI port
    		map(p_monitor:dPort, system:dPort);
    		map(p_monitor:acPort, system:acPort);
    		// configure oracle
    		f_cf_oracle_up(p_monitor);
    	}
@@ -89,10 +136,47 @@ module AtsImsIot_TestConfiguration {
    		disconnect(p_monitor:icpPort, self:icpPort);
    		// mapp TSI port
    		unmap(p_monitor:dPort, system:dPort);
    		unmap(p_monitor:acPort, system:acPort);
    		// configure oracle
    		f_cf_oracle_down(p_monitor);
    	}
	
	}
	
	group adapterConfiguration {
		
		function f_cf_setFilter(in SetFilterReq p_req) runs on ImsInterfaceMonitor {
			var SetFilterRsp v_rsp;
			var template Status v_status := {
				code := e_success,
				reason := *
			}
			
			tc_wait.start;
			acPort.send(p_req);
			alt {
				[] acPort.receive (mw_SetFilterRsp(v_status)) -> value v_rsp {
					tc_wait.stop;
					f_setE2EVerdict(pass, "Adapter Configuration: setting monitor filter successful");
					f_setConformanceVerdict(pass, "Adapter Configuration: setting monitor filter successful");
				}
				[] acPort.receive (mw_SetFilterRsp(?)) -> value v_rsp {
					tc_wait.stop;
					f_setE2EVerdict(inconc, "Adapter Configuration: error while setting monitor filter");
					f_setConformanceVerdict(inconc, "Adapter Configuration: error while setting monitor filter");
				}
				[] tc_wait.timeout {
					f_setE2EVerdict(inconc, "Adapter Configuration: timer expires while waiting for response");
					f_setConformanceVerdict(inconc, "Adapter Configuration: timer expires while waiting for response");
				}
			}
		}
			
		
	}
	
	group componentCreation {
	
    	/**
    	* @desc 	creates a monitor component 
    	* @param 	p_name	name of the monitor component 
@@ -103,6 +187,82 @@ module AtsImsIot_TestConfiguration {
    		
    		return v_monitor; 
    	}
	}
	
	
	group testConfiguration {
		
		/**
		 * @desc
		 *     Test configuration function for roaming registration szenario.
		 *     More information can be found in ETSI TS 186 011-2 V2.3.1 Cause
		 *     4.3.4.
		 * @param p_Gm Gm interface monitor component
		 * @param p_Mw Mw interface monitor component
		 */
    	function f_cf_roam_reg(
    		inout ImsInterfaceMonitor p_Gm, 
    		inout ImsInterfaceMonitor p_Mw
    	) runs on ImsTestCoordinator {
    		p_Gm := f_cf_create_monitor(c_gm_A);
    		p_Mw := f_cf_create_monitor(c_mw);
    		
    		f_cf_monitor_up(p_Gm);
    		f_cf_monitor_up(p_Mw);
    		
    		// TODO UE IP address and port is missing
    		p_Gm.start(f_cf_setFilter(
    			m_SetFilterReq(
    				e_sip, 
    				f_getInterfaceInfoList("Gm", PX_EUT_A, PX_EUT_B)
    			)
    		));
    		p_Gm.done;
    		
    		p_Mw.start(f_cf_setFilter(
    			m_SetFilterReq(
    				e_sip, 
    				f_getInterfaceInfoList("Mw", PX_EUT_A, PX_EUT_B)
    			)
    		));
    		p_Mw.done;
    	}
	}
	
	function f_getInterfaceInfoList(
		in charstring p_interfaceName, 
		in integer p_product1, 
		in integer p_product2
	) return InterfaceInfoList {
		var InterfaceInfoList v_list := {
			f_getInterfaceInfo(p_interfaceName, PX_PRODUCTS[p_product1]),
			f_getInterfaceInfo(p_interfaceName, PX_PRODUCTS[p_product2])
		};
		
		return v_list;
	}
	
	function f_getInterfaceInfo(in charstring p_interfaceName, Product p_product) return InterfaceInfo {
		var InterfaceInfo v_info := {
			IpInterfaceInfo := {
				{
					domainName := "invalid",
					IpAddress := "0.0.0.0",
					portNumbers := {0}
				}
			}
		};
		
		for(var integer i := 0; i <= lengthof(p_product.monitorInterfaces); i := i + 1) {
			if(p_product.monitorInterfaces[i].interfaceName == p_interfaceName)	{
				return p_product.monitorInterfaces[i].interfaceInfo;
			}
		}
		
		return v_info;
	}
	
	
	
		
}
 No newline at end of file
+6 −1
Original line number Diff line number Diff line
@@ -7,7 +7,12 @@
module LibIot_TestConfiguration {
	
	import from LibIot_TestInterface {
		type IotEquipmentUser, OracleClient, OracleServer, TestCoordinator;
		type
			InterfaceMonitor,
			IotEquipmentUser,
			OracleClient,
			OracleServer,
			TestCoordinator;
	}
	
	/**