Commit 77b12ab4 authored by iTestVM01's avatar iTestVM01
Browse files

new vxlte configuration

parent f9866023
Loading
Loading
Loading
Loading
+519 −0
Original line number Diff line number Diff line
/*
 *	@author		STF	574
 *	@version		$Id: LibIot_VxLTE_Functions.ttcn	1	2020-05-29 15:06:42Z pintar	$
 *	@desc		This module	provides Functions parameters	which	need to	be 
 *				changeable within	validation
 */

module LibIot_VxLTE_Functions	 {
 
	import from	LibIot_TypesAndValues	
	{
		type IOTExecMode,	IotVerdictType,	CaptureMode, RecordMode, FileList, TimeOffset, EutInterfaceInfoList,
		ProtocolFilter,	IpAddress, PortNumber, ProductList, InterfaceAvailable, InterfaceAvailableList,MonitorInterfaceInfo,
		VxLTEMonitorInterfaceList;
	}
	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 LibIot_VxLTE_PIXITS all;
	import from LibIot_VxLTE_Templates all;
	
	import from AtsImsIot_TestConfiguration all; 
	import from AtsImsIot_TestSystem all;
	
	/**
	* @desc 	Check and create a list of monitor interfaces based on PIXITS
	* @param 	 
	* @return 	the created monitor component list in vc_MonIntfList
	*/
	function f_setVxLteMonIterfacesAvailability(/*inout VxLTEMonitorInterfaceList p_vxlteMonIntfList*/)runs on ImsTestCoordinator{
		
		
		if (PX_SIP_GMA_MONITORENABLED == true){
			//p_vxlteMonIntfList.gmA := valueof(m_MonIntf_Sip_Gm_A);
			vc_MonIntfList.gmA := valueof(m_MonIntf_Sip_Gm_A);
		}
		if (PX_SIP_GMB_MONITORENABLED == true){
			vc_MonIntfList.gmB := valueof(m_MonIntf_Sip_Gm_B);
		}
		if (PX_SIP_IC_MONITORENABLED == true){
			vc_MonIntfList.ic := valueof(m_MonIntf_Sip_Ic);
		}
		if (PX_SIP_MW_MONITORENABLED == true){
	
			vc_MonIntfList.mwPI := valueof(m_MonIntf_Sip_Mw_PI);
			/**/
			vc_MonIntfList.mwPS := valueof(m_MonIntf_Sip_Mw_PS);
			/**/
			vc_MonIntfList.mwIS := valueof(m_MonIntf_Sip_Mw_IS);
			/**/
			vc_MonIntfList.mwPB := valueof(m_MonIntf_Sip_Mw_PB);
			/**/
			vc_MonIntfList.mwIB := valueof(m_MonIntf_Sip_Mw_IB);		
		}
		if (PX_SIP_ISC_MONITORENABLED == true){
			vc_MonIntfList.isc := valueof(m_MonIntf_Sip_ISC);
		}



		if (PX_DIAMETER_CX_MONITORENABLED == true){
			vc_MonIntfList.cxIH := valueof(m_MonIntf_Diameter_Cx_IH);
			/**/
			vc_MonIntfList.cxSH := valueof(m_MonIntf_Diameter_Cx_SH);
		}
		if (PX_DIAMETER_GX_MONITORENABLED == true){
			vc_MonIntfList.gx := valueof(m_MonIntf_Diameter_Gx);
		}
		if (PX_DIAMETER_RX_MONITORENABLED == true){
			vc_MonIntfList.rx := valueof(m_MonIntf_Diameter_Rx);
		}
		if (PX_DIAMETER_S6A_MONITORENABLED == true){
			vc_MonIntfList.s6a := valueof(m_MonIntf_Diameter_S6a);
		}
		if (PX_DIAMETER_S9_MONITORENABLED == true){
			vc_MonIntfList.s9 := valueof(m_MonIntf_Diameter_S9);
		}
		if (PX_DIAMETER_SH_MONITORENABLED == true){
			vc_MonIntfList.sh := valueof(m_MonIntf_Diameter_Sh);
		}	
		
	}
	
	/**
	* @desc 	Create monitor components based on vc_MonIntfList
	* @param 	 
	* @return 	the created monitor components in vc_vxlte_monitor_components
	*/
	function f_cf_createVxLteMonitor() runs on ImsTestCoordinator{
		
		if (isvalue(vc_MonIntfList.gmA)){
			vc_vxlte_monitor_components.gmA := f_cf_create_monitor_sip ( vc_MonIntfList.gmA.interfaceName);
		}
		if (isvalue(vc_MonIntfList.gmB)){
			vc_vxlte_monitor_components.gmB := f_cf_create_monitor_sip ( vc_MonIntfList.gmB.interfaceName);
		}
		
		if (isvalue(vc_MonIntfList.ic)){
			vc_vxlte_monitor_components.ic := f_cf_create_monitor_sip ( vc_MonIntfList.ic.interfaceName);
		}
				
		if (isvalue(vc_MonIntfList.mwPI)){
			vc_vxlte_monitor_components.mwPI := f_cf_create_monitor_sip ( vc_MonIntfList.mwPI.interfaceName);
		}
		if (isvalue(vc_MonIntfList.mwPS)){
			vc_vxlte_monitor_components.mwPS := f_cf_create_monitor_sip ( vc_MonIntfList.mwPS.interfaceName);
		}
		if (isvalue(vc_MonIntfList.mwIS)){
			vc_vxlte_monitor_components.mwIS := f_cf_create_monitor_sip ( vc_MonIntfList.mwIS.interfaceName);
		}
		if (isvalue(vc_MonIntfList.mwPB)){
			vc_vxlte_monitor_components.mwPB := f_cf_create_monitor_sip ( vc_MonIntfList.mwPB.interfaceName);
		}
		if (isvalue(vc_MonIntfList.mwIB)){
			vc_vxlte_monitor_components.mwIB := f_cf_create_monitor_sip ( vc_MonIntfList.mwIB.interfaceName);
		}
		
		if (isvalue(vc_MonIntfList.isc)){
			vc_vxlte_monitor_components.isc := f_cf_create_monitor_sip ( vc_MonIntfList.isc.interfaceName);
		}
		
		
		
		if (isvalue(vc_MonIntfList.cxIH)){
			vc_vxlte_monitor_components.cxIH := f_cf_create_monitor_diameter ( vc_MonIntfList.cxIH.interfaceName);
		}
		if (isvalue(vc_MonIntfList.cxSH)){
			vc_vxlte_monitor_components.cxSH := f_cf_create_monitor_diameter ( vc_MonIntfList.cxSH.interfaceName);
		}
		if (isvalue(vc_MonIntfList.gx)){
			vc_vxlte_monitor_components.gx := f_cf_create_monitor_diameter ( vc_MonIntfList.gx.interfaceName);
		}
		if (isvalue(vc_MonIntfList.rx)){
			vc_vxlte_monitor_components.rx := f_cf_create_monitor_diameter ( vc_MonIntfList.rx.interfaceName);
		}
		if (isvalue(vc_MonIntfList.s6a)){
			vc_vxlte_monitor_components.s6a := f_cf_create_monitor_diameter ( vc_MonIntfList.s6a.interfaceName);
		}
		if (isvalue(vc_MonIntfList.s9)){
			vc_vxlte_monitor_components.s9 := f_cf_create_monitor_diameter ( vc_MonIntfList.s9.interfaceName);
		}
		if (isvalue(vc_MonIntfList.sh)){
			vc_vxlte_monitor_components.sh := f_cf_create_monitor_diameter ( vc_MonIntfList.sh.interfaceName);
		}		
	}
	
	/**
	* @desc 	Start monitor components based on vc_MonIntfList
	* @param 	 
	* @return 	Created monitor components in vc_vxlte_monitor_components are connected/mapped
	*/
	function f_cf_VxLteMonitor_Up() runs on ImsTestCoordinator{
        //Initialize the Adapter (including the TrafficCapture process).
		f_cf_initCapture();
		
		if (isvalue(vc_MonIntfList.gmA)){
			f_cf_monitor_up_sip(vc_vxlte_monitor_components.gmA);
			//TODO: per each enabled monitor inteface send traffic filter req
			vc_vxlte_monitor_components.gmA.start(f_cf_setFilter(
						   							valueof (m_SetFilterReq(
							   									e_sip,
							   									{vc_MonIntfList.gmA.interfaceInfo}
						   							)
					   							 )));
		}
		if (isvalue(vc_MonIntfList.gmB)){
			f_cf_monitor_up_sip(vc_vxlte_monitor_components.gmB);
			vc_vxlte_monitor_components.gmA.start(f_cf_setFilter(
													valueof (m_SetFilterReq(
																e_sip,
																{vc_MonIntfList.gmB.interfaceInfo}
													)
												 )));
		}
		
		if (isvalue(vc_MonIntfList.ic)){
			f_cf_monitor_up_sip(vc_vxlte_monitor_components.ic);
			vc_vxlte_monitor_components.gmA.start(f_cf_setFilter(
													valueof (m_SetFilterReq(
																e_sip,
																{vc_MonIntfList.ic.interfaceInfo}
													)
												 )));
		}
				
		if (isvalue(vc_MonIntfList.mwPI)){
			f_cf_monitor_up_sip(vc_vxlte_monitor_components.mwPI);
			vc_vxlte_monitor_components.gmA.start(f_cf_setFilter(
													valueof (m_SetFilterReq(
																e_sip,
																{vc_MonIntfList.mwPI.interfaceInfo}
													)
												 )));
		}
		if (isvalue(vc_MonIntfList.mwPS)){
			f_cf_monitor_up_sip(vc_vxlte_monitor_components.mwPS);
			vc_vxlte_monitor_components.gmA.start(f_cf_setFilter(
													valueof (m_SetFilterReq(
																e_sip,
																{vc_MonIntfList.mwPS.interfaceInfo}
													)
												 )));
		}
		if (isvalue(vc_MonIntfList.mwIS)){
			f_cf_monitor_up_sip(vc_vxlte_monitor_components.mwIS);
			vc_vxlte_monitor_components.gmA.start(f_cf_setFilter(
													valueof (m_SetFilterReq(
																e_sip,
																{vc_MonIntfList.mwIS.interfaceInfo}
													)
												 )));
		}
		if (isvalue(vc_MonIntfList.mwPB)){
			f_cf_monitor_up_sip(vc_vxlte_monitor_components.mwPB);
			vc_vxlte_monitor_components.gmA.start(f_cf_setFilter(
													valueof (m_SetFilterReq(
																e_sip,
																{vc_MonIntfList.mwPB.interfaceInfo}
													)
												 )));
		}
		if (isvalue(vc_MonIntfList.mwIB)){
			f_cf_monitor_up_sip(vc_vxlte_monitor_components.mwIB);
			vc_vxlte_monitor_components.gmA.start(f_cf_setFilter(
													valueof (m_SetFilterReq(
																e_sip,
																{vc_MonIntfList.mwIB.interfaceInfo}
													)
												 )));
		}
		
		if (isvalue(vc_MonIntfList.isc)){
			f_cf_monitor_up_sip(vc_vxlte_monitor_components.isc);
			vc_vxlte_monitor_components.gmA.start(f_cf_setFilter(
													valueof (m_SetFilterReq(
																e_sip,
																{vc_MonIntfList.isc.interfaceInfo}
													)
												 )));
		}
		
		
		
		if (isvalue(vc_MonIntfList.cxIH)){
			f_cf_monitor_up_diameter(vc_vxlte_monitor_components.cxIH);
			vc_vxlte_monitor_components.gmA.start(f_cf_setFilter(
													valueof (m_SetFilterReq(
																e_diameter,
																{vc_MonIntfList.cxIH.interfaceInfo}
													)
												 )));
		}
		if (isvalue(vc_MonIntfList.cxSH)){
			f_cf_monitor_up_diameter(vc_vxlte_monitor_components.cxSH);
			vc_vxlte_monitor_components.gmA.start(f_cf_setFilter(
													valueof (m_SetFilterReq(
																e_diameter,
																{vc_MonIntfList.cxSH.interfaceInfo}
													)
												 )));
		}
		if (isvalue(vc_MonIntfList.gx)){
			f_cf_monitor_up_diameter(vc_vxlte_monitor_components.gx);
			vc_vxlte_monitor_components.gmA.start(f_cf_setFilter(
													valueof (m_SetFilterReq(
																e_diameter,
																{vc_MonIntfList.gx.interfaceInfo}
													)
												 )));
		}
		if (isvalue(vc_MonIntfList.rx)){
			f_cf_monitor_up_diameter(vc_vxlte_monitor_components.rx);
			vc_vxlte_monitor_components.gmA.start(f_cf_setFilter(
													valueof (m_SetFilterReq(
																e_diameter,
																{vc_MonIntfList.rx.interfaceInfo}
													)
												 )));
		}
		if (isvalue(vc_MonIntfList.s6a)){
			f_cf_monitor_up_diameter(vc_vxlte_monitor_components.s6a);
			vc_vxlte_monitor_components.gmA.start(f_cf_setFilter(
													valueof (m_SetFilterReq(
																e_diameter,
																{vc_MonIntfList.s6a.interfaceInfo}
													)
												 )));
		}
		if (isvalue(vc_MonIntfList.s9)){
			f_cf_monitor_up_diameter(vc_vxlte_monitor_components.s9);
			vc_vxlte_monitor_components.gmA.start(f_cf_setFilter(
													valueof (m_SetFilterReq(
																e_diameter,
																{vc_MonIntfList.s9.interfaceInfo}
													)
												 )));
		}
		if (isvalue(vc_MonIntfList.sh)){
			f_cf_monitor_up_diameter(vc_vxlte_monitor_components.sh);
			vc_vxlte_monitor_components.gmA.start(f_cf_setFilter(
													valueof (m_SetFilterReq(
																e_diameter,
																{vc_MonIntfList.sh.interfaceInfo}
													)
												 )));
		}
		
		f_cf_startCapture();
	}
	
	/**
	* @desc 	Stops monitor components based on vc_MonIntfList
	* @param 	 
	* @return 	Created monitor components in vc_vxlte_monitor_components are disconnected/unmapped
	*/
	function f_cf_VxLteMonitor_Down() runs on ImsTestCoordinator{
		//Stop traffic capture processing.
		f_cf_stopCapture();
		
		if (isvalue(vc_MonIntfList.gmA)){
			f_cf_monitor_down_sip(vc_vxlte_monitor_components.gmA);
		}
		if (isvalue(vc_MonIntfList.gmB)){
			f_cf_monitor_down_sip(vc_vxlte_monitor_components.gmB);
		}
	
		if (isvalue(vc_MonIntfList.ic)){
			f_cf_monitor_down_sip(vc_vxlte_monitor_components.ic);
		}
			
		if (isvalue(vc_MonIntfList.mwPI)){
			f_cf_monitor_down_sip(vc_vxlte_monitor_components.mwPI);
		}
		if (isvalue(vc_MonIntfList.mwPS)){
			f_cf_monitor_down_sip(vc_vxlte_monitor_components.mwPS);
		}
		if (isvalue(vc_MonIntfList.mwIS)){
			f_cf_monitor_down_sip(vc_vxlte_monitor_components.mwIS);
		}
		if (isvalue(vc_MonIntfList.mwPB)){
			f_cf_monitor_down_sip(vc_vxlte_monitor_components.mwPB);
		}
		if (isvalue(vc_MonIntfList.mwIB)){
			f_cf_monitor_down_sip(vc_vxlte_monitor_components.mwIB);
		}
	
		if (isvalue(vc_MonIntfList.isc)){
			f_cf_monitor_down_sip(vc_vxlte_monitor_components.isc);
		}
	
	
	
		if (isvalue(vc_MonIntfList.cxIH)){
			f_cf_monitor_down_diameter(vc_vxlte_monitor_components.cxIH);
		}
		if (isvalue(vc_MonIntfList.cxSH)){
			f_cf_monitor_down_diameter(vc_vxlte_monitor_components.cxSH);
		}
		if (isvalue(vc_MonIntfList.gx)){
			f_cf_monitor_down_diameter(vc_vxlte_monitor_components.gx);
		}
		if (isvalue(vc_MonIntfList.rx)){
			f_cf_monitor_down_diameter(vc_vxlte_monitor_components.rx);
		}
		if (isvalue(vc_MonIntfList.s6a)){
			f_cf_monitor_down_diameter(vc_vxlte_monitor_components.s6a);
		}
		if (isvalue(vc_MonIntfList.s9)){
			f_cf_monitor_down_diameter(vc_vxlte_monitor_components.s9);
		}
		if (isvalue(vc_MonIntfList.sh)){
			f_cf_monitor_down_diameter(vc_vxlte_monitor_components.sh);
		}
	}
	
		
	function f_check_and_setup_monitor_interfaces() runs on ImsTestCoordinator{
		
		var InterfaceAvailableList v_VxLTE_MonIntf_Available;
		var InterfaceAvailable v_InterfaceAvailable;
		var SipInterfaceMonitor v_gmA, v_gmB, v_ic, v_mwPI, v_mwPS, v_mwSI, v_mwPB, v_mwIB, v_isc;
		var DiameterInterfaceMonitor v_cxIH, v_cxSH, v_gx, v_rx, v_s6a, v_s9, v_sh;
		
		if (PX_SIP_GMA_MONITORENABLED == true){
			v_InterfaceAvailable.interfaceName := PX_SIP_GMA_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_SIP_GMA_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_gmA := f_cf_create_monitor_sip ( PX_SIP_GMA_INTERFACENAME );
			f_cf_monitor_up_sip(v_gmA);
		}
		if (PX_SIP_GMB_MONITORENABLED == true){
			v_InterfaceAvailable.interfaceName := PX_SIP_GMB_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_SIP_GMB_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_gmB := f_cf_create_monitor_sip ( PX_SIP_GMB_INTERFACENAME );
			f_cf_monitor_up_sip(v_gmB);
		}
		if (PX_SIP_IC_MONITORENABLED == true){
			v_InterfaceAvailable.interfaceName := PX_SIP_IC_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_SIP_IC_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_ic := f_cf_create_monitor_sip ( PX_SIP_IC_INTERFACENAME );
			f_cf_monitor_up_sip(v_ic);
		}
		if (PX_SIP_MW_MONITORENABLED == true){
			
			v_InterfaceAvailable.interfaceName := PX_SIP_MW_PI_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_SIP_MW_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_mwPI := f_cf_create_monitor_sip ( PX_SIP_MW_PI_INTERFACENAME );
			f_cf_monitor_up_sip(v_mwPI);
			/**/
			v_InterfaceAvailable.interfaceName := PX_SIP_MW_PS_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_SIP_MW_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_mwPS := f_cf_create_monitor_sip ( PX_SIP_MW_PS_INTERFACENAME );
			f_cf_monitor_up_sip(v_mwPS);
			/**/
			v_InterfaceAvailable.interfaceName := PX_SIP_MW_IS_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_SIP_MW_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_mwSI := f_cf_create_monitor_sip ( PX_SIP_MW_IS_INTERFACENAME );
			f_cf_monitor_up_sip(v_mwSI);
			/**/
			v_InterfaceAvailable.interfaceName := PX_SIP_MW_PB_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_SIP_MW_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_mwPB := f_cf_create_monitor_sip ( PX_SIP_MW_PB_INTERFACENAME );
			f_cf_monitor_up_sip(v_mwPB);
			/**/
			v_InterfaceAvailable.interfaceName := PX_SIP_MW_IB_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_SIP_MW_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_mwIB := f_cf_create_monitor_sip ( PX_SIP_MW_IB_INTERFACENAME );
			f_cf_monitor_up_sip(v_mwIB);		
		}
		if (PX_SIP_ISC_MONITORENABLED == true){
			v_InterfaceAvailable.interfaceName := PX_SIP_ISC_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_SIP_ISC_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_isc := f_cf_create_monitor_sip ( PX_SIP_ISC_INTERFACENAME );
			f_cf_monitor_up_sip(v_isc);
		}
		
		
		
		if (PX_DIAMETER_CX_MONITORENABLED == true){
			v_InterfaceAvailable.interfaceName := PX_DIAMETER_CX_IH_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_DIAMETER_CX_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_cxIH := f_cf_create_monitor_diameter ( PX_DIAMETER_CX_IH_INTERFACENAME );
			f_cf_monitor_up_diameter(v_cxIH);
			/**/
			v_InterfaceAvailable.interfaceName := PX_DIAMETER_CX_SH_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_DIAMETER_CX_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_cxSH := f_cf_create_monitor_diameter ( PX_DIAMETER_CX_SH_INTERFACENAME );
			f_cf_monitor_up_diameter(v_cxSH);
		}
		if (PX_DIAMETER_GX_MONITORENABLED == true){
			v_InterfaceAvailable.interfaceName := PX_DIAMETER_GX_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_DIAMETER_GX_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_gx := f_cf_create_monitor_diameter ( PX_DIAMETER_GX_INTERFACENAME );
			f_cf_monitor_up_diameter(v_gx);
		}
		if (PX_DIAMETER_RX_MONITORENABLED == true){
			v_InterfaceAvailable.interfaceName := PX_DIAMETER_RX_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_DIAMETER_RX_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_rx := f_cf_create_monitor_diameter ( PX_DIAMETER_RX_INTERFACENAME );
			f_cf_monitor_up_diameter(v_rx);
		}
		if (PX_DIAMETER_S6A_MONITORENABLED == true){
			v_InterfaceAvailable.interfaceName := PX_DIAMETER_S6A_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_DIAMETER_S6A_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_s6a := f_cf_create_monitor_diameter ( PX_DIAMETER_S6A_INTERFACENAME );
			f_cf_monitor_up_diameter(v_s6a);
		}
		if (PX_DIAMETER_S9_MONITORENABLED == true){
			v_InterfaceAvailable.interfaceName := PX_DIAMETER_S9_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_DIAMETER_S9_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_s9 := f_cf_create_monitor_diameter ( PX_DIAMETER_S9_INTERFACENAME );
			f_cf_monitor_up_diameter(v_s9);
		}
		if (PX_DIAMETER_SH_MONITORENABLED == true){
			v_InterfaceAvailable.interfaceName := PX_DIAMETER_SH_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_DIAMETER_SH_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_sh := f_cf_create_monitor_diameter ( PX_DIAMETER_SH_INTERFACENAME );
			f_cf_monitor_up_diameter(v_sh);
		}	
	}
	
	function f_update_MonitorInterfaceList(
				in InterfaceAvailableList p_MI_List,
				in InterfaceAvailable p_MI
			)
			return InterfaceAvailableList  {
				var InterfaceAvailable v_IntfAvail;
				var InterfaceAvailableList v_MI_List := p_MI_List;
				var integer v_size_mi_list := lengthof(v_MI_List);
				var integer v_size_mi_updated := v_size_mi_list + 1;
				var InterfaceAvailableList v_MI_List_updated;
				var integer i;

				for (i := 0; i < v_size_mi_updated; i := i + 1) {
					v_MI_List_updated[i] := v_MI_List[i];
				}
				v_MI_List_updated[v_size_mi_updated] := p_MI;
				
				return (v_MI_List_updated);
			}
}	
 No newline at end of file
+465 −0

File added.

Preview size limit exceeded, changes collapsed.

+337 −0

File added.

Preview size limit exceeded, changes collapsed.