/* * @author STF 370 * @version $Id $ * @desc This module contains functions which implement the * configuration of the SUT adapter and mapping of test * components for establishing and tearing down different * test configurations. */ module AtsImsIot_TestConfiguration { import from LibCommon_VerdictControl { type FncRetCode; } /*language "TTCN-3:2008 Amendment 1" - FSCOM/YGA*/ import from LibIms_UpperTester { modulepar PX_IMS_USER_DATA; } import from LibIot_PIXITS { modulepar PX_EUT_A, PX_EUT_B, PX_PRODUCTS, PX_MAX_MSG_WAIT; } import from LibIot_TypesAndValues { type StartTrafficCaptureRsp, StopTrafficCaptureRsp, MonitorInterfaceInfo, InterfaceInfo, InterfaceInfoList, Product, ProtocolFilter, StartTrafficCaptureRsp, StopTrafficCaptureRsp, SetFilterReq, SetFilterRsp, Status; } /*language "TTCN-3:2008 Amendment 1" - FSCOM/YGA*/ import from LibIot_Functions { altstep a_receiveIOTVerdict; function f_setConformanceVerdict, f_setE2EVerdict; } import from LibIot_TestConfiguration { function f_cf_oracle_up, f_cf_oracle_down; } import from LibIot_TestInterface {type IotEquipmentUser;} import from AtsImsIot_TestSystem {type ImsInterfaceMonitor, SipInterfaceMonitor, DiameterInterfaceMonitor, NaptrInterfaceMonitor, SgiInterfaceMonitor, ImsTestCoordinator, CF_INT_CALL, CF_INT_AS, CF_ROAM_AS, CF_EPC_CALL, CF_ATT, CF_ATT_old;} import from LibIot_TestInterface {type InterfaceMonitor;} import from AtsImsIot_Templates { template m_generalConfigurationReq_offline, m_generalConfigurationReq_online, m_generalConfigurationReq_merge, m_generalConfigurationRsp_success, m_generalConfigurationRsp_error, m_generalConfigurationRsp_timeout, m_SetFilterReq, mw_SetFilterRsp, m_startTrafficCaptureReq, m_stopTrafficCaptureReq, m_startTrafficCaptureRsp_any, m_stopTrafficCaptureRsp_any; } import from AtsImsIot_Functions {function f_setInterfaceNameOnComponent, f_setInterfaceInfoComponent;} 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 Mx A const charstring c_mx_A := "Mx A"; //* interface monitor name Mx B const charstring c_mx_B := "Mx B"; //* interface monitor name Ic const charstring c_ic := "Ici"; //* interface monitor name Isc A const charstring c_isc_A := "Isc A"; //* interface monitor name Isc B const charstring c_isc_B := "Isc B"; //* interface monitor name NAPTR const charstring c_naptr := "NAPTR"; //* eut trigger name User A const charstring c_trigger_A := "User A"; //* eut trigger name User B const charstring c_trigger_B := "User B"; //* eut trigger name User A const charstring c_userUE_A := "User A"; const charstring c_userUE_A_emergency := "User A Emergency"; const charstring c_userUE_A2 := "User A2"; //* eut trigger name User B const charstring c_userUE_B := "User B"; const charstring c_userUE_B2 := "User B2"; //* eut trigger name User C const charstring c_userUE_C := "User C"; //* interface monitor name Gm C const charstring c_gm_C := "Gm C"; //* eut trigger name User D const charstring c_userUE_D := "User D"; //* interface monitor name Gm D const charstring c_gm_D := "Gm D"; //* interface monitor name Rx const charstring c_rx := "Rx"; // See ETSI TS 103 029 V3.1.1 clause 5.4.2 //* interface monitor name Mw const charstring c_mw := "Mw"; //* interface monitor name Mx const charstring c_mx := "Mx"; //* interface monitor name Sgi const charstring c_sgi := "Sgi"; //* interface monitor name Rx const charstring c_s6a := "S6a"; //* interface monitor name Rx const charstring c_gx := "Gx"; //* interface monitor name Mm/Mx/Mw const charstring c_psap := "Psap"; } group mappingFunctions { /** * * @desc initialize the adapter port of MTC */ function f_cf_adapter_up() runs on ImsTestCoordinator { map(self:acPort, system:acPort); } /** * * @desc uninitialize the adapter port of MTC */ function f_cf_adapter_down() runs on ImsTestCoordinator { unmap(self:acPort, system:acPort); } /** * * @desc initialize trigger component ports * @param p_driver trigger component */ function f_cf_user_up(in IotEquipmentUser p_driver) runs on ImsTestCoordinator { // connect sync ports connect(p_driver:syncPort, self:syncPort); // connect TSI ports map(p_driver:eaPort, system:eaPort); // configure oracle f_cf_oracle_up(p_driver); } /** * * @desc uninitialize trigger component ports * @param p_driver trigger component */ function f_cf_user_down(in IotEquipmentUser p_driver) runs on ImsTestCoordinator { // disconnect sync ports disconnect(p_driver:syncPort, self:syncPort); // disconnect TSI ports unmap(p_driver:eaPort, system:eaPort); // release oracle ports f_cf_oracle_down(p_driver); } /** * @desc configures monitor component: connects to the synchronnization * port, maps to the TSI port and connects to the oracle * @param p_monitor monitor component */ function f_cf_monitor_up(in ImsInterfaceMonitor p_monitor) runs on ImsTestCoordinator { // connect sync ports connect(p_monitor:syncPort, self:syncPort); 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); } /** * @desc configures monitor component: connects to the synchronnization * port, maps to the TSI port and connects to the oracle * @param p_monitor monitor component */ function f_cf_monitor_up_sip(in SipInterfaceMonitor p_monitor) runs on ImsTestCoordinator { // connect sync ports connect(p_monitor:syncPort, self:syncPort); connect(p_monitor:icpPort, self:icpPort); // mapp TSI port map(p_monitor:sipPort, system:sipPort); map(p_monitor:acPort, system:acPort); // configure oracle f_cf_oracle_up(p_monitor); } /** * @desc configures monitor component: connects to the synchronnization * port, maps to the TSI port and connects to the oracle * @param p_monitor monitor component */ function f_cf_monitor_up_diameter(in DiameterInterfaceMonitor p_monitor) runs on ImsTestCoordinator { // connect sync ports connect(p_monitor:syncPort, self:syncPort); connect(p_monitor:icpPort, self:icpPort); // mapp TSI port map(p_monitor:diameterPort, system:diameterPort); map(p_monitor:acPort, system:acPort); // configure oracle f_cf_oracle_up(p_monitor); } /** * @desc configures monitor component: connects to the synchronnization * port, maps to the TSI port and connects to the oracle * @param p_monitor monitor component */ function f_cf_monitor_up_naptr(in NaptrInterfaceMonitor p_monitor) runs on ImsTestCoordinator { // connect sync ports connect(p_monitor:syncPort, self:syncPort); connect(p_monitor:icpPort, self:icpPort); // mapp TSI port map(p_monitor:naptrPort, system:naptrPort); map(p_monitor:acPort, system:acPort); // configure oracle f_cf_oracle_up(p_monitor); } /** * @desc configures monitor component: connects to the synchronnization * port, maps to the TSI port and connects to the oracle * @param p_monitor monitor component */ function f_cf_monitor_up_sgi(in SgiInterfaceMonitor p_monitor) runs on ImsTestCoordinator { // connect sync ports connect(p_monitor:syncPort, self:syncPort); connect(p_monitor:icpPort, self:icpPort); // mapp TSI port map(p_monitor:sgiPort, system:sgiPort); map(p_monitor:acPort, system:acPort); // configure oracle f_cf_oracle_up(p_monitor); } /** * @desc frees monitor component: disconnects the synchronnization * port, unmaps from the TSI port and disconnects from the oracle * @param p_monitor monitor component */ function f_cf_monitor_down(in ImsInterfaceMonitor p_monitor) runs on ImsTestCoordinator { // connect sync ports disconnect(p_monitor:syncPort, self:syncPort); 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); } /** * @desc frees monitor component: disconnects the synchronnization * port, unmaps from the TSI port and disconnects from the oracle * @param p_monitor monitor component */ function f_cf_monitor_down_sip(in SipInterfaceMonitor p_monitor) runs on ImsTestCoordinator { // connect sync ports disconnect(p_monitor:syncPort, self:syncPort); disconnect(p_monitor:icpPort, self:icpPort); // mapp TSI port unmap(p_monitor:sipPort, system:sipPort); unmap(p_monitor:acPort, system:acPort); // configure oracle f_cf_oracle_down(p_monitor); } /** * @desc frees monitor component: disconnects the synchronnization * port, unmaps from the TSI port and disconnects from the oracle * @param p_monitor monitor component */ function f_cf_monitor_down_diameter(in DiameterInterfaceMonitor p_monitor) runs on ImsTestCoordinator { // connect sync ports disconnect(p_monitor:syncPort, self:syncPort); disconnect(p_monitor:icpPort, self:icpPort); // mapp TSI port unmap(p_monitor:diameterPort, system:diameterPort); unmap(p_monitor:acPort, system:acPort); // configure oracle f_cf_oracle_down(p_monitor); } /** * @desc frees monitor component: disconnects the synchronnization * port, unmaps from the TSI port and disconnects from the oracle * @param p_monitor monitor component */ function f_cf_monitor_down_naptr(in NaptrInterfaceMonitor p_monitor) runs on ImsTestCoordinator { // connect sync ports disconnect(p_monitor:syncPort, self:syncPort); disconnect(p_monitor:icpPort, self:icpPort); // mapp TSI port unmap(p_monitor:naptrPort, system:naptrPort); unmap(p_monitor:acPort, system:acPort); // configure oracle f_cf_oracle_down(p_monitor); } /** * @desc frees monitor component: disconnects the synchronnization * port, unmaps from the TSI port and disconnects from the oracle * @param p_monitor monitor component */ function f_cf_monitor_down_sgi(in SgiInterfaceMonitor p_monitor) runs on ImsTestCoordinator { // connect sync ports disconnect(p_monitor:syncPort, self:syncPort); disconnect(p_monitor:icpPort, self:icpPort); // mapp TSI port unmap(p_monitor:sgiPort, system:sgiPort); 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 /*Ims*/InterfaceMonitor { 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"); } } } /** * @desc Initialize traffic cature process * * @param */ function f_cf_initCapture () runs on ImsTestCoordinator { // Initialize the Adapter (including the TrafficCapture process). timer tc_configureGuard; var StartTrafficCaptureRsp startResult; activate(a_receiveIOTVerdict()); tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_generalConfigurationReq_offline); //TODO: Check posibility to enable ONLINE mode alt { [] acPort.receive (m_generalConfigurationRsp_success) { log("General configuration succeed."); tc_configureGuard.stop; } [] acPort.receive (m_generalConfigurationRsp_timeout) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive (m_generalConfigurationRsp_error) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive { log("Unknown response."); tc_configureGuard.stop; setverdict (inconc); stop; } [] tc_configureGuard.timeout { log("Timeout."); setverdict (inconc); stop; } } } /** * @desc Start traffic cature process * * @param */ function f_cf_startCapture () runs on ImsTestCoordinator { timer tc_configureGuard; var StartTrafficCaptureRsp startResult; activate(a_receiveIOTVerdict()); //Start traffic capture processing. tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_startTrafficCaptureReq); alt { [] acPort.receive (m_startTrafficCaptureRsp_any) -> value startResult { tc_configureGuard.stop; if (startResult.status.code != e_success) { log("**** StartTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); stop; } } [] tc_configureGuard.timeout { log("**** StartTrafficCaptureReq not answered. ****"); setverdict (inconc); stop; } } } /** * @desc Stops traffic cature * * @param */ function f_cf_stopCapture() runs on ImsTestCoordinator { //Stop traffic capture processing. timer tc_configureGuard; //TODO check to import correct modules var StopTrafficCaptureRsp stopResult; tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_stopTrafficCaptureReq); alt { [] acPort.receive (m_stopTrafficCaptureRsp_any) -> value stopResult { tc_configureGuard.stop; if (stopResult.status.code != e_success) { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); } } [] tc_configureGuard.timeout { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq not answered. ****"); setverdict (inconc); } } } } group componentCreation { /** * @desc creates a monitor component * @param p_name name of the monitor component * @return the created monitor component */ function f_cf_create_monitor(in charstring p_name) runs on ImsTestCoordinator return ImsInterfaceMonitor { var ImsInterfaceMonitor v_monitor := ImsInterfaceMonitor.create(p_name) alive; v_monitor.start(f_setInterfaceNameOnComponent(p_name)); v_monitor.done; return v_monitor; } /** * @desc creates a monitor component * @param p_name name of the monitor component * @return the created monitor component */ function f_cf_create_monitor_sip(in MonitorInterfaceInfo p_mii) runs on ImsTestCoordinator return SipInterfaceMonitor { var SipInterfaceMonitor v_monitor := SipInterfaceMonitor.create(p_mii.interfaceName) alive; //v_monitor.start(f_setInterfaceNameOnComponent(p_mii.interfaceName)); v_monitor.start(f_setInterfaceInfoComponent(p_mii)); v_monitor.done; return v_monitor; } /** * @desc creates a monitor component * @param p_name name of the monitor component * @return the created monitor component */ function f_cf_create_monitor_diameter(in MonitorInterfaceInfo p_mii) runs on ImsTestCoordinator return DiameterInterfaceMonitor { var DiameterInterfaceMonitor v_monitor := DiameterInterfaceMonitor.create(p_mii.interfaceName) alive; //v_monitor.start(f_setInterfaceNameOnComponent(p_mii.interfaceName)); v_monitor.start(f_setInterfaceInfoComponent(p_mii)); v_monitor.done; return v_monitor; } /** * @desc creates a monitor component * @param p_name name of the monitor component * @return the created monitor component */ function f_cf_create_monitor_naptr(in MonitorInterfaceInfo p_mii) runs on ImsTestCoordinator return NaptrInterfaceMonitor { var NaptrInterfaceMonitor v_monitor := NaptrInterfaceMonitor.create(p_mii.interfaceName) alive; //v_monitor.start(f_setInterfaceNameOnComponent(p_mii.interfaceName)); v_monitor.start(f_setInterfaceInfoComponent(p_mii)); v_monitor.done; return v_monitor; } /** * @desc creates a monitor component * @param p_name name of the monitor component * @return the created monitor component */ function f_cf_create_monitor_sgi(in MonitorInterfaceInfo p_mii) runs on ImsTestCoordinator return SgiInterfaceMonitor { var SgiInterfaceMonitor v_monitor := SgiInterfaceMonitor.create(p_mii.interfaceName) alive; //v_monitor.start(f_setInterfaceNameOnComponent(p_mii.interfaceName)); v_monitor.start(f_setInterfaceInfoComponent(p_mii)); v_monitor.done; return v_monitor; } } group testConfiguration { //TODO: check to delete at end of STF574 ATS devel /** * @desc * Test configuration function for roaming registration szenario. * More information can be found in ETSI TS 186 011-2 V2.3.1 Clause * 4.3.4. * @param p_Gm Gm interface monitor component * @param p_MxA Mx interface IMS A network * @param p_ici Mw interface monitor component * @param p_MxB Mx interface IMS B network */ function f_cf_roam_reg_up( inout ImsInterfaceMonitor p_Gm, inout ImsInterfaceMonitor p_MxA, inout ImsInterfaceMonitor p_ici, inout ImsInterfaceMonitor p_MxB ) runs on ImsTestCoordinator { // Initialize the Adapter (including the TrafficCapture process). timer tc_configureGuard; var StartTrafficCaptureRsp startResult; activate(a_receiveIOTVerdict()); tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_generalConfigurationReq_offline); alt { [] acPort.receive (m_generalConfigurationRsp_success) { log("General configuration succeed."); tc_configureGuard.stop; } [] acPort.receive (m_generalConfigurationRsp_timeout) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive (m_generalConfigurationRsp_error) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive { log("Unknown response."); tc_configureGuard.stop; setverdict (inconc); stop; } [] tc_configureGuard.timeout { log("Timeout."); setverdict (inconc); stop; } } f_cf_monitor_up(p_Gm); f_cf_monitor_up(p_MxA); f_cf_monitor_up(p_ici); f_cf_monitor_up(p_MxB); // TODO UE IP address and port is missing p_Gm.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, f_getInterfaceInfoList("Gm", PX_EUT_A, PX_EUT_B) ) ))); p_Gm.done; p_MxA.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Mx", PX_PRODUCTS[PX_EUT_A])} ) ))); p_MxA.done; p_ici.start(f_cf_setFilter( valueof(m_SetFilterReq( e_sip, f_getInterfaceInfoList("Ici", PX_EUT_A, PX_EUT_B) ) ))); p_ici.done; p_MxB.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Mx", PX_PRODUCTS[PX_EUT_B])} ) ))); p_MxB.done; // Start traffic capture processing. tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_startTrafficCaptureReq); alt { [] acPort.receive (m_startTrafficCaptureRsp_any) -> value startResult { tc_configureGuard.stop; if (startResult.status.code != e_success) { log("**** StartTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); stop; } } [] tc_configureGuard.timeout { log("**** StartTrafficCaptureReq not answered. ****"); setverdict (inconc); stop; } } } /** * @desc * Test configuration function for roaming registration szenario. * More information can be found in ETSI TS 186 011-2 V2.3.1 Clause * 4.3.4. * @param p_Gm Gm interface monitor component * @param p_ic Mw interface monitor component */ function f_cf_roam_reg_down( inout ImsInterfaceMonitor p_Gm, inout ImsInterfaceMonitor p_MxA, inout ImsInterfaceMonitor p_ici, inout ImsInterfaceMonitor p_MxB ) runs on ImsTestCoordinator { // Stop traffic capture processing. timer tc_configureGuard; var StopTrafficCaptureRsp stopResult; tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_stopTrafficCaptureReq); alt { [] acPort.receive (m_stopTrafficCaptureRsp_any) -> value stopResult { tc_configureGuard.stop; if (stopResult.status.code != e_success) { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); } } [] tc_configureGuard.timeout { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq not answered. ****"); setverdict (inconc); } } f_cf_monitor_down(p_Gm); f_cf_monitor_down(p_MxA); f_cf_monitor_down(p_ici); f_cf_monitor_down(p_MxB); } /** * @desc * Interworking 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 Clause * 4.3.4. * @param p_GmA Gm A Interface Monitor component * @param p_ici Mw Interface Monitor component * @param p_GmB * Gm B Interface Monitor component (optional, can be omitted) */ function f_cf_int_call_up( inout CF_INT_CALL p_config ) runs on ImsTestCoordinator { // Initialize the Adapter (including the TrafficCapture process). timer tc_configureGuard; var StartTrafficCaptureRsp startResult; activate(a_receiveIOTVerdict()); tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_generalConfigurationReq_offline); alt { [] acPort.receive (m_generalConfigurationRsp_success) { log("General configuration succeed."); tc_configureGuard.stop; } [] acPort.receive (m_generalConfigurationRsp_timeout) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive (m_generalConfigurationRsp_error) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive { log("Unknown response."); tc_configureGuard.stop; setverdict (inconc); stop; } [] tc_configureGuard.timeout { log("Timeout."); setverdict (inconc); stop; } } f_cf_monitor_up(p_config.gmA); f_cf_monitor_up(p_config.mxA); f_cf_monitor_up(p_config.ici); f_cf_monitor_up(p_config.mxB); if(isvalue(p_config.gmB)) { f_cf_monitor_up(p_config.gmB); } if(isvalue(p_config.naptr)) { f_cf_monitor_up(p_config.naptr); } // 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.mxA.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Mx", PX_PRODUCTS[PX_EUT_A])} ) ))); p_config.mxA.done; p_config.ici.start(f_cf_setFilter( valueof(m_SetFilterReq( e_sip, f_getInterfaceInfoList("Ici", PX_EUT_A, PX_EUT_B) ) ))); p_config.ici.done; p_config.mxB.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Mx", PX_PRODUCTS[PX_EUT_B])} ) ))); p_config.mxB.done; if(isvalue(p_config.gmB)) { 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.naptr)) { p_config.naptr.start(f_cf_setFilter( valueof (m_SetFilterReq( e_dns, {f_getInterfaceInfo("NAPTR", PX_PRODUCTS[PX_EUT_A])} ) ))); p_config.naptr.done; } // Start traffic capture processing. tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_startTrafficCaptureReq); alt { [] acPort.receive (m_startTrafficCaptureRsp_any) -> value startResult { tc_configureGuard.stop; if (startResult.status.code != e_success) { log("**** StartTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); stop; } } [] tc_configureGuard.timeout { log("**** StartTrafficCaptureReq not answered. ****"); setverdict (inconc); stop; } } } /** * @desc * Interworking Call test configuration. Ummaps/disconnect the * related component ports. More information can be found in ETSI TS * 186 011-2 V2.3.1 Clause 4.3.4. * @param p_GmA Gm A Interface Monitor component * @param p_ici Mw Interface Monitor component * @param p_GmB * Gm B Interface Monitor component (optional, can be omitted) */ function f_cf_int_call_down( inout CF_INT_CALL p_config ) runs on ImsTestCoordinator { // Stop traffic capture processing. timer tc_configureGuard; var StopTrafficCaptureRsp stopResult; tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_stopTrafficCaptureReq); alt { [] acPort.receive (m_stopTrafficCaptureRsp_any) -> value stopResult { tc_configureGuard.stop; if (stopResult.status.code != e_success) { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); } } [] tc_configureGuard.timeout { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq not answered. ****"); //setverdict (inconc); } } f_cf_monitor_down(p_config.gmA); f_cf_monitor_down(p_config.mxA); f_cf_monitor_down(p_config.ici); f_cf_monitor_down(p_config.mxB); if ( isvalue ( p_config.gmB ) ) { f_cf_monitor_down( p_config.gmB );} if ( isvalue ( p_config.naptr ) ) { f_cf_monitor_down( p_config.naptr );} } /** * @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_Gm Gm A Interface Monitor component * @param p_ici Mw Interface Monitor component */ function f_cf_roam_call_up( inout ImsInterfaceMonitor p_Gm, inout ImsInterfaceMonitor p_MxA, inout ImsInterfaceMonitor p_ici, inout ImsInterfaceMonitor p_MxB ) runs on ImsTestCoordinator { // Initialize the Adapter (including the TrafficCapture process). timer tc_configureGuard; var StartTrafficCaptureRsp startResult; activate(a_receiveIOTVerdict()); tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_generalConfigurationReq_offline); alt { [] acPort.receive (m_generalConfigurationRsp_success) { log("General configuration succeed."); tc_configureGuard.stop; } [] acPort.receive (m_generalConfigurationRsp_timeout) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive (m_generalConfigurationRsp_error) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive { log("Unknown response."); tc_configureGuard.stop; setverdict (inconc); stop; } [] tc_configureGuard.timeout { log("Timeout."); setverdict (inconc); stop; } } f_cf_monitor_up(p_Gm); f_cf_monitor_up(p_MxA); f_cf_monitor_up(p_ici); f_cf_monitor_up(p_MxB); // TODO UE IP address and port is missing // TODO UE IP address and port is missing p_Gm.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, f_getInterfaceInfoList("Gm", PX_EUT_A, PX_EUT_B) ) ))); p_Gm.done; p_MxA.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Mx", PX_PRODUCTS[PX_EUT_A])} ) ))); p_MxA.done; p_ici.start(f_cf_setFilter( valueof(m_SetFilterReq( e_sip, f_getInterfaceInfoList("Ici", PX_EUT_A, PX_EUT_B) ) ))); p_ici.done; p_MxB.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Mx", PX_PRODUCTS[PX_EUT_B])} ) ))); p_MxB.done; // Start traffic capture processing. tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_startTrafficCaptureReq); alt { [] acPort.receive (m_startTrafficCaptureRsp_any) -> value startResult { tc_configureGuard.stop; if (startResult.status.code != e_success) { log("**** StartTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); stop; } } [] tc_configureGuard.timeout { log("**** StartTrafficCaptureReq not answered. ****"); setverdict (inconc); stop; } } } /** * @desc * Roaming Call test configuration. Ummaps/disconnect the * related component ports. More information can be found in ETSI TS * 186 011-2 V2.3.1 Clause 4.3.4. * @param p_GmA Gm A Interface Monitor component * @param p_ici Mw Interface Monitor component */ function f_cf_roam_call_down( inout ImsInterfaceMonitor p_Gm, inout ImsInterfaceMonitor p_MxA, inout ImsInterfaceMonitor p_ici, inout ImsInterfaceMonitor p_MxB ) runs on ImsTestCoordinator { // Stop traffic capture processing. timer tc_configureGuard; var StopTrafficCaptureRsp stopResult; tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_stopTrafficCaptureReq); alt { [] acPort.receive (m_stopTrafficCaptureRsp_any) -> value stopResult { tc_configureGuard.stop; if (stopResult.status.code != e_success) { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); } } [] tc_configureGuard.timeout { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq not answered. ****"); setverdict (inconc); } } f_cf_monitor_down(p_Gm); f_cf_monitor_down(p_MxA); f_cf_monitor_down(p_ici); f_cf_monitor_down(p_MxB); } /** * @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 Clause * 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_int_as_up( inout CF_INT_AS p_config ) runs on ImsTestCoordinator { // Initialize the Adapter (including the TrafficCapture process). timer tc_configureGuard; var StartTrafficCaptureRsp startResult; activate(a_receiveIOTVerdict()); tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_generalConfigurationReq_offline); alt { [] acPort.receive (m_generalConfigurationRsp_success) { log("General configuration succeed."); tc_configureGuard.stop; } [] acPort.receive (m_generalConfigurationRsp_timeout) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive (m_generalConfigurationRsp_error) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive { log("Unknown response."); tc_configureGuard.stop; setverdict (inconc); stop; } [] tc_configureGuard.timeout { log("Timeout."); setverdict (inconc); stop; } } f_cf_monitor_up(p_config.gmA); f_cf_monitor_up(p_config.mxA); f_cf_monitor_up(p_config.ici); f_cf_monitor_up(p_config.mxB); 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.mxA.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Mx", PX_PRODUCTS[PX_EUT_A])} ) ))); p_config.mxA.done; p_config.ici.start(f_cf_setFilter( valueof(m_SetFilterReq( e_sip, f_getInterfaceInfoList("Ici", PX_EUT_A, PX_EUT_B) ) ))); p_config.ici.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; p_config.mxB.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Mx", PX_PRODUCTS[PX_EUT_B])} ) ))); p_config.mxB.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; } // Start traffic capture processing. tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_startTrafficCaptureReq); alt { [] acPort.receive (m_startTrafficCaptureRsp_any) -> value startResult { tc_configureGuard.stop; if (startResult.status.code != e_success) { log("**** StartTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); stop; } } [] tc_configureGuard.timeout { log("**** StartTrafficCaptureReq not answered. ****"); setverdict (inconc); stop; } } } /** * @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 Clause 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_int_as_down( inout CF_INT_AS p_config ) runs on ImsTestCoordinator { // Stop traffic capture processing. timer tc_configureGuard; var StopTrafficCaptureRsp stopResult; tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_stopTrafficCaptureReq); alt { [] acPort.receive (m_stopTrafficCaptureRsp_any) -> value stopResult { tc_configureGuard.stop; if (stopResult.status.code != e_success) { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); } } [] tc_configureGuard.timeout { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq not answered. ****"); //setverdict (inconc); } } f_cf_monitor_down(p_config.gmA); f_cf_monitor_down(p_config.mxA); f_cf_monitor_down(p_config.ici); f_cf_monitor_down(p_config.mxB); 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 Clause * 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 { // Initialize the Adapter (including the TrafficCapture process). timer tc_configureGuard; var StartTrafficCaptureRsp startResult; activate(a_receiveIOTVerdict()); tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_generalConfigurationReq_offline); alt { [] acPort.receive (m_generalConfigurationRsp_success) { log("General configuration succeed."); tc_configureGuard.stop; } [] acPort.receive (m_generalConfigurationRsp_timeout) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive (m_generalConfigurationRsp_error) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive { log("Unknown response."); tc_configureGuard.stop; setverdict (inconc); stop; } [] tc_configureGuard.timeout { log("Timeout."); setverdict (inconc); stop; } } f_cf_monitor_up(p_config.gmA); f_cf_monitor_up(p_config.mxA); f_cf_monitor_up(p_config.ici); f_cf_monitor_up(p_config.mxB); 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.mxA.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Mx", PX_PRODUCTS[PX_EUT_A])} ) ))); p_config.mxA.done; p_config.ici.start(f_cf_setFilter( valueof(m_SetFilterReq( e_sip, f_getInterfaceInfoList("Ici", PX_EUT_A, PX_EUT_B) ) ))); p_config.ici.done; p_config.mxB.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Mx", PX_PRODUCTS[PX_EUT_B])} ) ))); p_config.mxB.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; } // Start traffic capture processing. tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_startTrafficCaptureReq); alt { [] acPort.receive (m_startTrafficCaptureRsp_any) -> value startResult { tc_configureGuard.stop; if (startResult.status.code != e_success) { log("**** StartTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); stop; } } [] tc_configureGuard.timeout { log("**** StartTrafficCaptureReq not answered. ****"); setverdict (inconc); stop; } } } /** * @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 Clause 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 { // Stop traffic capture processing. timer tc_configureGuard; var StopTrafficCaptureRsp stopResult; tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_stopTrafficCaptureReq); alt { [] acPort.receive (m_stopTrafficCaptureRsp_any) -> value stopResult { tc_configureGuard.stop; if (stopResult.status.code != e_success) { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); } } [] tc_configureGuard.timeout { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq not answered. ****"); setverdict (inconc); } } f_cf_monitor_down(p_config.gmA); f_cf_monitor_down(p_config.mxA); f_cf_monitor_down(p_config.ici); f_cf_monitor_down(p_config.mxB); 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); } } function f_cf_epc_call_up ( in CF_EPC_CALL p_config ) runs on ImsTestCoordinator { // Initialize the Adapter (including the TrafficCapture process). timer tc_configureGuard; var StartTrafficCaptureRsp startResult; activate(a_receiveIOTVerdict()); tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_generalConfigurationReq_offline); alt { [] acPort.receive (m_generalConfigurationRsp_success) { log("General configuration succeed."); tc_configureGuard.stop; } [] acPort.receive (m_generalConfigurationRsp_timeout) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive (m_generalConfigurationRsp_error) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive { log("Unknown response."); tc_configureGuard.stop; setverdict (inconc); stop; } [] tc_configureGuard.timeout { log("Timeout."); setverdict (inconc); stop; } } f_cf_monitor_up(p_config.gmA); f_cf_monitor_up(p_config.rx); f_cf_monitor_up(p_config.mxA); f_cf_monitor_up(p_config.mw); f_cf_monitor_up(p_config.sgi); if(isvalue(p_config.gmB)) { f_cf_monitor_up(p_config.gmB); } 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.rx.start(f_cf_setFilter( valueof (m_SetFilterReq( e_diameter, {f_getInterfaceInfo("Rx", PX_PRODUCTS[PX_EUT_A])} ) ))); p_config.rx.done; p_config.mxA.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Mx", PX_PRODUCTS[PX_EUT_A])} ) ))); p_config.mxA.done; p_config.mw.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Mw", PX_PRODUCTS[PX_EUT_A])} ) ))); p_config.mw.done; p_config.sgi.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Sgi", PX_PRODUCTS[PX_EUT_A])} ) ))); p_config.sgi.done; p_config.gmB.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Gm", PX_PRODUCTS[PX_EUT_B])} ) ))); // Start traffic capture processing. tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_startTrafficCaptureReq); alt { [] acPort.receive (m_startTrafficCaptureRsp_any) -> value startResult { tc_configureGuard.stop; if (startResult.status.code != e_success) { log("**** StartTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); stop; } } [] tc_configureGuard.timeout { log("**** StartTrafficCaptureReq not answered. ****"); setverdict (inconc); stop; } } } // end of function f_cf_epc_call_up function f_cf_epc_call_down( inout CF_EPC_CALL p_config ) runs on ImsTestCoordinator { // Stop traffic capture processing. timer tc_configureGuard; var StopTrafficCaptureRsp stopResult; tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_stopTrafficCaptureReq); alt { [] acPort.receive (m_stopTrafficCaptureRsp_any) -> value stopResult { tc_configureGuard.stop; if (stopResult.status.code != e_success) { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); } } [] tc_configureGuard.timeout { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq not answered. ****"); setverdict (inconc); } } f_cf_monitor_down(p_config.gmA); f_cf_monitor_down(p_config.rx); f_cf_monitor_down(p_config.mxA); f_cf_monitor_down(p_config.mw); f_cf_monitor_down(p_config.sgi); f_cf_monitor_down(p_config.gmB); } // end of function f_cf_epc_call_down } 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) { // YANN: <= instead of < if(p_product.monitorInterfaces[i].interfaceName == p_interfaceName) { return p_product.monitorInterfaces[i].interfaceInfo; } } return v_info; } group g_release15 { function f_cf_epc_call_rel15_up_old ( in CF_ATT_old p_config ) runs on ImsTestCoordinator { // Initialize the Adapter (including the TrafficCapture process). timer tc_configureGuard; var StartTrafficCaptureRsp startResult; activate(a_receiveIOTVerdict()); tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_generalConfigurationReq_offline); alt { [] acPort.receive (m_generalConfigurationRsp_success) { log("General configuration succeed."); tc_configureGuard.stop; } [] acPort.receive (m_generalConfigurationRsp_timeout) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive (m_generalConfigurationRsp_error) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive { log("Unknown response."); tc_configureGuard.stop; setverdict (inconc); stop; } [] tc_configureGuard.timeout { log("Timeout."); setverdict (inconc); stop; } } f_cf_monitor_up(p_config.gmA); f_cf_monitor_up(p_config.rx); f_cf_monitor_up(p_config.s6a); f_cf_monitor_up(p_config.gx); f_cf_monitor_up(p_config.mxA); f_cf_monitor_up(p_config.mwPS); f_cf_monitor_up(p_config.sgi); if(isvalue(p_config.gmB)) { f_cf_monitor_up(p_config.gmB); } 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.rx.start(f_cf_setFilter( valueof (m_SetFilterReq( e_diameter, {f_getInterfaceInfo("Rx", PX_PRODUCTS[PX_EUT_A])} ) ))); p_config.rx.done; p_config.mxA.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Mx", PX_PRODUCTS[PX_EUT_A])} ) ))); p_config.mxA.done; p_config.mwPS.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Mw", PX_PRODUCTS[PX_EUT_A])} ) ))); p_config.mwPS.done; p_config.sgi.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Sgi", PX_PRODUCTS[PX_EUT_A])} ) ))); p_config.sgi.done; p_config.gmB.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Gm", PX_PRODUCTS[PX_EUT_B])} ) ))); // Start traffic capture processing. tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_startTrafficCaptureReq); alt { [] acPort.receive (m_startTrafficCaptureRsp_any) -> value startResult { tc_configureGuard.stop; if (startResult.status.code != e_success) { log("**** StartTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); stop; } } [] tc_configureGuard.timeout { log("**** StartTrafficCaptureReq not answered. ****"); setverdict (inconc); stop; } } } // end of function f_cf_epc_call_rel15_up function f_cf_epc_call_rel15_down_old( inout CF_ATT_old p_config ) runs on ImsTestCoordinator { // Stop traffic capture processing. timer tc_configureGuard; var StopTrafficCaptureRsp stopResult; tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_stopTrafficCaptureReq); alt { [] acPort.receive (m_stopTrafficCaptureRsp_any) -> value stopResult { tc_configureGuard.stop; if (stopResult.status.code != e_success) { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); } } [] tc_configureGuard.timeout { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq not answered. ****"); setverdict (inconc); } } f_cf_monitor_down(p_config.gmA); f_cf_monitor_down(p_config.rx); f_cf_monitor_down(p_config.s6a); f_cf_monitor_down(p_config.gx); f_cf_monitor_down(p_config.mxA); f_cf_monitor_down(p_config.mwPS); f_cf_monitor_down(p_config.sgi); f_cf_monitor_down(p_config.gmB); } // end of function f_cf_epc_call_rel15_down function f_cf_epc_call_rel15_up ( in CF_ATT p_config ) runs on ImsTestCoordinator { // Initialize the Adapter (including the TrafficCapture process). timer tc_configureGuard; var StartTrafficCaptureRsp startResult; activate(a_receiveIOTVerdict()); tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_generalConfigurationReq_offline); alt { [] acPort.receive (m_generalConfigurationRsp_success) { log("General configuration succeed."); tc_configureGuard.stop; } [] acPort.receive (m_generalConfigurationRsp_timeout) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive (m_generalConfigurationRsp_error) { setverdict(fail); tc_configureGuard.stop; stop; } [] acPort.receive { log("Unknown response."); tc_configureGuard.stop; setverdict (inconc); stop; } [] tc_configureGuard.timeout { log("Timeout."); setverdict (inconc); stop; } } f_cf_monitor_up_sip(p_config.gmA); f_cf_monitor_up_diameter(p_config.rx); f_cf_monitor_up_diameter(p_config.s6a); f_cf_monitor_up_diameter(p_config.gx); f_cf_monitor_up_sip(p_config.mxA); f_cf_monitor_up_sip(p_config.mw); f_cf_monitor_up_sgi(p_config.sgi); if(isvalue(p_config.gmB)) { f_cf_monitor_up_sip(p_config.gmB); } 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.rx.start(f_cf_setFilter( valueof (m_SetFilterReq( e_diameter, {f_getInterfaceInfo("Rx", PX_PRODUCTS[PX_EUT_A])} ) ))); p_config.rx.done; p_config.mxA.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Mx", PX_PRODUCTS[PX_EUT_A])} ) ))); p_config.mxA.done; p_config.mw.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Mw", PX_PRODUCTS[PX_EUT_A])} ) ))); p_config.mw.done; p_config.sgi.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Sgi", PX_PRODUCTS[PX_EUT_A])} ) ))); p_config.sgi.done; p_config.gmB.start(f_cf_setFilter( valueof (m_SetFilterReq( e_sip, {f_getInterfaceInfo("Gm", PX_PRODUCTS[PX_EUT_B])} ) ))); // Start traffic capture processing. tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_startTrafficCaptureReq); alt { [] acPort.receive (m_startTrafficCaptureRsp_any) -> value startResult { tc_configureGuard.stop; if (startResult.status.code != e_success) { log("**** StartTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); stop; } } [] tc_configureGuard.timeout { log("**** StartTrafficCaptureReq not answered. ****"); setverdict (inconc); stop; } } } // end of function f_cf_epc_call_rel15_up function f_cf_epc_call_rel15_down( inout CF_ATT p_config ) runs on ImsTestCoordinator { // Stop traffic capture processing. timer tc_configureGuard; var StopTrafficCaptureRsp stopResult; tc_configureGuard.start(PX_MAX_MSG_WAIT); acPort.send(m_stopTrafficCaptureReq); alt { [] acPort.receive (m_stopTrafficCaptureRsp_any) -> value stopResult { tc_configureGuard.stop; if (stopResult.status.code != e_success) { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq unsuccessfull! ****"); setverdict(fail); } } [] tc_configureGuard.timeout { log("**** TC_IMS_MESS_0001: StopTrafficCaptureReq not answered. ****"); setverdict (inconc); } } f_cf_monitor_down_sip(p_config.gmA); f_cf_monitor_down_diameter(p_config.rx); f_cf_monitor_down_diameter(p_config.s6a); f_cf_monitor_down_diameter(p_config.gx); f_cf_monitor_down_sip(p_config.mxA); f_cf_monitor_down_sip(p_config.mw); f_cf_monitor_down_sgi(p_config.sgi); if(isvalue(p_config.gmB)) { f_cf_monitor_down_sip(p_config.gmB); } } // end of function f_cf_epc_call_rel15_down } // end group g_release15 }