# GF17 to SBTS17 migration: EQM product

#NIDD_VER: EQM17_1701_004_00
# History
# v0.1 30.12.2016 Ioan Harangus: first draft for new CUTool
# v0.2 01.03.2017 Ioan Harangus: second draft after validation with scfValidation, based on SBTSD17_NIDD_1701_005_00
# v0.3 06.04.2017 Ioan Harangus: pronto PR231983: PUNIT not migrated to PASSDEV 
# v0.4 10.04.2017 Ioan Harangus: pronto 232350: BBMOD removal
# v0.5 14.04.2017 Ioan Harangus: pronto 232810: reimplementation of ALD/LNA/RETU mechanism
# v0.6 19.04.2017 Ioan Harangus: pronto 232742: LOGLINK business, PR 232692, RMOD business
# v0.7 04.05.2017 Ioan Harangus: pronto 239835: RET/RETU removal (does not exist in GSM), delete optionals CABLINK: linkModeData, linkModeConfiguration
# v0.8 04.05.2017 Ioan Harangus: pronto 232692: correction for RMOD/ANTL repartitions, corrections LCELC/ANTL/RMOD
# v0.9 20.05.2017 L.Preuss: pronto PR242954: SMOD prod code assumed as PR242954. Rationale: GF to SRAN17 conversion is possible only for FSMF therefore prod core is known
# v0.10 24.04.2017 Ioan Harangus: pronto PR243551: [SBTS17][RP001420][GSM]Loglink for MHA has incorect boolean parameter value after scf conversion from GN16 to SBTS17
# v0.11 25.05.2017 Ioan Harangus: pronto PR245897: [SBTS17][RP001420][GSM] Wrong connectorLabel value after conversion
# v0.11 08.06.2017 Ioan Harangus: pronto PR249858: PR249858: [SBTS17][RP001420][GSM] subunitNumber was not created for MHA with one LNA
# v0.12 08.06.2017 Ioan Harangus: pronto PR243551: [SBTS17][RP001420][GSM]Loglink for MHA has incorect boolean parameter value after scf conversion from GN16 to SBTS17 - additional corrections
# v0.13 19.06.2017 Ioan Harangus: pronto 248213:  [OAM_SCT][SBTS17][RP1062] To small range for GNCEL in SBTS17 in comparison to LCELC in SBTS16
# v0.14 21.06.2017 Ioan Harangus: pronto PR253211: [SBTS17][RP001738][GSM] Relations between parameters antennaPathDelayDL, antennaPathDelayUL and antennaRoundTripDelay under ANTL where not maintained. PR267884
# v0.15 27.06.2017 Ioan Harangus: pronto PR255066: [SBTS17][RP001738][GSM] Unexpected TRMOD created while input GF16 SCF defines more than one port on FTIF.
# v0.16 06.07.2017 Ioan Harangus: pronto PR257833 [SBTS17][RP001738][GSM] Parameters under RMOD object have wrong value.
# v0.17 10.08.2017 Ioan Harangus: pronto PR267884: [SBTS17][RP001738][GF] GF16 SCF file rejected - Variable MHA_DN is not defined in file

# define global constants
define "operation" "create"
define "version" "EQM17_1701_004"
define "adaptation" "com.nokia.srbts.eqm"

# abort rule-set in case of unexpected SCF version
if ( objects_count "BCF/MRBTS/BTSSCC/BTSSCG/BTSNE" ) == 0 abort_file

for_objects "BCF/MRBTS/BTSSCC/BTSSCG/BTSNE"
	begin
		if not ( get_version $current_dist_name ) == "GF17"
			abort_file
		define "bcfId" $current_BCF
	end

define "mrbtsId" 1
for_objects "BCF/MRBTS/BTSSCC/BTSSCG/BTSNE"
    begin
        if ( param_exist $current_dist_name "installationNotes" )
            begin
                define "value" get_param $current_dist_name "installationNotes"
                define "tempValue" replace value "(\D+)" "" flags "g"
                if ( tempValue ) != "" && ( tempValue >= 0 ) && ( tempValue <= 1048575 )
                    begin
                        define "mrbtsId" tempValue
                    end
            end
    end

define "mrbtsRoot" "MRBTS-" JOIN mrbtsId
define "mrbtsDN" "BCF-" JOIN bcfId JOIN "/MRBTS-1"
define "btsccDN" mrbtsDN JOIN "/BTSSCC-1"
define "btsccgDN" btsccDN JOIN "/BTSSCG-1"
define "btsneDN" btsccgDN JOIN "/BTSNE-1"
define "eqmDn" "MRBTS-" JOIN mrbtsId JOIN "/EQM-1"
define "APEQMDN" eqmDn JOIN "/APEQM-1"

# EQM MOI
if ( objects_count "EQM" ) == 0 add_object eqmDn

# APEQM MOI
for_objects "MRBTS/EQM"
	begin		
		add_object APEQMDN
		
		define "hwtopDn" $current_dist_name JOIN "/HWTOP-1"
		add_object hwtopDn
	end
	
# APEQM MOI
for_objects "MRBTS/EQM/APEQM"
	begin		
		define "cabinetDn" $current_dist_name JOIN "/CABINET-1"
		add_object cabinetDn
			
		add_param $current_dist_name "aldScanningInterval" "30 sec"		
	end

# PUNIT -> PASSDEV BCF/MRBTS/BTSSCC/BTSSCG/

for_objects "BCF/MRBTS/BTSSCC/BTSSCG/PUNIT"
	begin
		define "passdevDN" APEQMDN JOIN "/PASSDEV-" JOIN $current_PUNIT
		copy_object $current_dist_name passdevDN
		
		add_param passdevDN "additionalTxAttenuation" 0
		add_param passdevDN "additionalTxGain" 0
		
		if ( param_exist $current_dist_name "unitDesc" ) 
			begin 
				add_param passdevDN "deviceDescription" get_param $current_dist_name "unitDesc" 
				del_param passdevDN "unitDesc"
			end		
		
		if ( param_exist $current_dist_name "manufacturerData" ) add_param passdevDN "manufacturerData" get_param $current_dist_name "manufacturerData" 
		else add_param passdevDN "manufacturerData" 0
		
		if ( param_exist $current_dist_name "serialNo" ) 
			begin 
				add_param passdevDN "serialNumber" get_param $current_dist_name "serialNo" 
				del_param passdevDN "serialNo"
			end
		
		if ( param_exist $current_dist_name "unitType" ) 
			begin 
				add_param passdevDN "inventoryUnitType" get_param $current_dist_name "unitType" 
				del_param passdevDN "unitType"
			end
		else add_param passdevDN "inventoryUnitType" 0
		
		if ( param_exist $current_dist_name "unitPosition" ) add_param passdevDN "unitPosition" get_param $current_dist_name "unitPosition" 
		
		if ( param_exist $current_dist_name "vendorName" ) add_param passdevDN "vendorName" get_param $current_dist_name "vendorName" 
		else add_param passdevDN "vendorName" 0
		if ( param_exist $current_dist_name "vendorUnitFamilyType" ) add_param passdevDN "vendorUnitFamilyType" get_param $current_dist_name "vendorUnitFamilyType" 
		

		if ( param_exist $current_dist_name "productType" ) 
			begin 
				add_param passdevDN "vendorUnitTypeNumber" get_param $current_dist_name "productType" 
				del_param passdevDN "productType"
			end
		
		del_param passdevDN "unitId"		
		del_param passdevDN "punitId"		
	end

define "ALD_COUNT" 0	
# MHA1, MHA2 mapped to ALD-1/LNA-1 and ALD-1/LNA-2
for_objects "BCF/MRBTS/MHA"
	begin
	# PR267884 - define MHA_DN_OUTER, replace current_dist_name with MHA_DN_OUTER
		define "MHA_DN_OUTER" $current_dist_name
		define "mhaId" $current_MHA
		if not ( param_exist MHA_DN_OUTER "tempDone" )		
			begin
				define "ALD_COUNT" ALD_COUNT + 1				
				define "aldDn" APEQMDN JOIN "/ALD-" JOIN ALD_COUNT
			
				add_object aldDn

				define "PROD_CODE_VALUE" ""
				define "SER_NUM_VALUE" ""		
				
				if ( param_exist MHA_DN_OUTER "prodCode" )
					begin
						define "PROD_CODE_VALUE" get_param MHA_DN_OUTER "prodCode"
						add_param aldDn "productCode" PROD_CODE_VALUE
					end
				if ( param_exist MHA_DN_OUTER "serNum" ) 
					begin
						define "SER_NUM_VALUE" get_param MHA_DN_OUTER "serNum"
						add_param aldDn "serialNumber" SER_NUM_VALUE
					end

                if ( param_exist MHA_DN_OUTER "mhaType" )
                    begin
                        define "validMhaType" get_param MHA_DN_OUTER "mhaType"
                        if not ( validMhaType == "WMHA" || validMhaType == "WMHB" || validMhaType == "WMHC" || validMhaType == "WMHD" ||
                                validMhaType == "MDTA" || validMhaType == "MDPA" || validMhaType == "MDGA" || validMhaType == "MDDA" ||
                                validMhaType == "FLJA" || validMhaType == "FLHA" || validMhaType == "FLMA" || validMhaType == "FLNA" ||
                                validMhaType == "Other" || validMhaType == "Nokia" )
                        begin
                            define "validMhaType" "Other"
                        end

                        add_param aldDn "mhaType" validMhaType
                    end
				
				if ( param_exist MHA_DN_OUTER "active" ) 
					if ( ( get_param MHA_DN_OUTER "active" ) == "false" ) add_param aldDn "controlProtocol" "CWA"
				else add_param aldDn "controlProtocol" "AISG 2.0"
					
				if not ( PROD_CODE_VALUE == "" || SER_NUM_VALUE == "" )
					begin
						for_objects "BCF/MRBTS/MHA"
							begin
							# PR267884 - replace current_dist_name with MHA_DN
								define "MHA_DN" $current_dist_name
								define "mhaId" $current_MHA			
								if ( get_param MHA_DN "prodCode" ) == PROD_CODE_VALUE
									if ( param_exist MHA_DN "serNum" )
										if ( get_param MHA_DN "serNum" ) == SER_NUM_VALUE
											begin
												add_param MHA_DN "tempDone" "true"
												define "lnaDn" aldDn JOIN "/LNA-" JOIN mhaId
												add_object lnaDn
												
		# from Kowal - what if there more LNAs or only one after migration ?
												if ( param_exist MHA_DN "mhaGain" ) add_param lnaDn "gain" get_param MHA_DN "mhaGain"
												
                                                if ( param_exist MHA_DN "mhaType" )
                                                    begin
                                                        define "validMhaType" get_param MHA_DN "mhaType"
                                                        if not ( validMhaType == "WMHA" || validMhaType == "WMHB" || validMhaType == "WMHC" || validMhaType == "WMHD" ||
                                                                validMhaType == "MDTA" || validMhaType == "MDPA" || validMhaType == "MDGA" || validMhaType == "MDDA" ||
                                                                validMhaType == "FLJA" || validMhaType == "FLHA" || validMhaType == "FLMA" || validMhaType == "FLNA" ||
                                                                validMhaType == "Other" || validMhaType == "Nokia" )
                                                        begin
                                                            define "validMhaType" "Other"
                                                        end

                                                        add_param aldDn "mhaType" validMhaType
                                                    end
				
												if ( param_exist MHA_DN "lnaNumber" )
													begin
														define "value" get_param MHA_DN "lnaNumber"
														if ( value == "LNA2" ) add_param lnaDn "subunitNumber" "2"
														else add_param lnaDn "subunitNumber" "1"
														
													end										
																								# to be deleted later. used for LOGLINK
													if ( param_exist MHA_DN "scannedAntennaInterface" ) add_param lnaDn "tempScannedAntennaInterface" get_param MHA_DN "scannedAntennaInterface"
													if ( param_exist MHA_DN "antlId" ) add_param lnaDn "tempAntlId" get_param MHA_DN "antlId"
													if ( param_exist MHA_DN "connection" ) add_param lnaDn "tempConnection" get_param MHA_DN "connection"
												end
							end
					end
				else
					begin
						add_param MHA_DN_OUTER "tempDone" "true"
						define "lnaDn" aldDn JOIN "/LNA-" JOIN mhaId
						add_object lnaDn
						if ( param_exist MHA_DN_OUTER "mhaGain" ) add_param lnaDn "gain" get_param MHA_DN_OUTER "mhaGain"						

                        if ( param_exist MHA_DN_OUTER "mhaType" )
                            begin
                                define "validMhaType" get_param MHA_DN_OUTER "mhaType"
                                if not ( validMhaType == "WMHA" || validMhaType == "WMHB" || validMhaType == "WMHC" || validMhaType == "WMHD" ||
                                        validMhaType == "MDTA" || validMhaType == "MDPA" || validMhaType == "MDGA" || validMhaType == "MDDA" ||
                                        validMhaType == "FLJA" || validMhaType == "FLHA" || validMhaType == "FLMA" || validMhaType == "FLNA" ||
                                        validMhaType == "Other" || validMhaType == "Nokia" )
                                begin
                                    define "validMhaType" "Other"
                                end

                                add_param aldDn "mhaType" validMhaType
                            end
				
						if ( param_exist MHA_DN_OUTER "lnaNumber" )
							begin
								define "value" get_param MHA_DN_OUTER "lnaNumber"
								if ( value == "LNA2" ) add_param lnaDn "subunitNumber" "2"
								else add_param lnaDn "subunitNumber" "1"
							end
												# to be deleted later. used for LOGLINK
						if ( param_exist MHA_DN_OUTER "scannedAntennaInterface" ) add_param lnaDn "tempScannedAntennaInterface" get_param MHA_DN_OUTER "scannedAntennaInterface"
						if ( param_exist MHA_DN_OUTER "antlId" ) add_param lnaDn "tempAntlId" get_param MHA_DN_OUTER "antlId"
						if ( param_exist MHA_DN_OUTER "connection" ) add_param lnaDn "tempConnection" get_param MHA_DN_OUTER "connection"
					end			
			end										
	end
		
for_objects "BCF/MRBTS/SMOD"
	begin
		define "SMOD_DN" $current_dist_name		
		define "SBTS_SMOD" APEQMDN JOIN "/CABINET-1/SMOD-" JOIN $current_SMOD							
		
		if ( get_param SMOD_DN "technology" ) == "GERAN"
			begin
				define "SBTS_SMOD" cabinetDn JOIN "/SMOD-" JOIN $current_SMOD				
				add_object SBTS_SMOD
				add_param SBTS_SMOD "climateControlOcxoTemperatureLearning" "false"
				add_param SBTS_SMOD "eutraSupport" "false"
				add_param SBTS_SMOD "geranSupport" "true"
				add_param SBTS_SMOD "utranSupport" "false"
				add_param SBTS_SMOD "prodCodePlanned" "472181A" #conversion from GSM is possible from FSMF only, therefore prod code can be assumed as 472181A (FSMF)
				if param_exist btsneDN "climateControlProfiling"
					begin
						define "climateControlProfilingOld" get_param btsneDN "climateControlProfiling"
						if climateControlProfilingOld == "Optimized_Cooling" define "climateControlProfilingNew" "Optimized Cooling"
						if climateControlProfilingOld == "Low_Noise"         define "climateControlProfilingNew" "Low Noise"
						if climateControlProfilingOld == "Linear _Response"  define "climateControlProfilingNew" "Linear"
						add_param SBTS_SMOD "climateControlProfiling" climateControlProfilingNew
					end
			end
		else
			begin
				define "SBTS_SMOD_EXT" eqmDn JOIN "/SMOD_EXT-" JOIN $current_SMOD
				
				add_object SBTS_SMOD_EXT
				if ( get_param SMOD_DN "technology" ) == "EUTRA" add_param SBTS_SMOD_EXT "eutraSupport" "true"
					else add_param SBTS_SMOD_EXT "eutraSupport" "false"
				if ( get_param SMOD_DN "technology" ) == "UTRAN" add_param SBTS_SMOD_EXT "utranSupport" "true"
					else add_param SBTS_SMOD_EXT "utranSupport" "false"
				add_param SBTS_SMOD_EXT "geranSupport" "false"
				if ( param_exist SMOD_DN "moduleLocation" ) add_param SBTS_SMOD_EXT "moduleLocation" get_param SMOD_DN "moduleLocation"
				if ( param_exist SMOD_DN "prodCode" ) add_param SBTS_SMOD_EXT "productCode" get_param SMOD_DN "prodCode"
				if ( param_exist SMOD_DN "serNum" ) add_param SBTS_SMOD_EXT "serialNumber" get_param SMOD_DN "serNum"
				if ( param_exist SMOD_DN "syncMaster" ) add_param SBTS_SMOD_EXT "syncMaster" get_param SMOD_DN "syncMaster"										
			end
		for_objects "MNL/MNLENT/SYNC/CLOCK"
			begin
				add_param $current_dist_name "sModDN" SBTS_SMOD
			end
	end

for_objects "BCF/MRBTS/RMOD"
	begin
		define "rmodDn" APEQMDN JOIN "/RMOD-" JOIN $current_RMOD
		copy_object $current_dist_name rmodDn
		# PR257833: [SBTS17][RP001738][GSM] Parameters under RMOD object have wrong value.
		if ( param_exist $current_dist_name "prodCode" ) add_param rmodDn "prodCodePlanned" get_param $current_dist_name "prodCode" 
		else add_param rmodDn "prodCodePlanned" "undefined"
				
		add_param rmodDn "actPimCancellation" "false"		
		add_param rmodDn "pimCancellingEnabled" "true"

		if ( param_exist $current_dist_name "extAlList" )
			begin
				for_list $current_dist_name "extAlList"
					begin
						define "inst" $current_index + 1
						define "eacinDn" rmodDn JOIN "/EAC_IN-" JOIN inst
						add_object eacinDn 
						add_param eacinDn "descr" get_param $current_dist_name "extAlList." JOIN $current_index JOIN ".descr" 
						add_param eacinDn "severity" get_param $current_dist_name "extAlList." JOIN $current_index JOIN ".severity" 
						# PR257833: [SBTS17][RP001738][GSM] Parameters under RMOD object have wrong value.
						add_param eacinDn "inUse" get_param $current_dist_name "extAlList." JOIN $current_index JOIN ".usedInGeran"
						add_param eacinDn "polarity" get_param $current_dist_name "extAlList." JOIN $current_index JOIN ".polarity"
						add_param eacinDn "portId" inst
					end
			end

		if param_exist rmodDn "climateControlProfiling"
			begin
				if ( get_param rmodDn "climateControlProfiling" ) == "Not Used" del_param rmodDn "climateControlProfiling"
				if ( get_param rmodDn "climateControlProfiling" ) == "Optimized_Cooling" add_param rmodDn "climateControlProfiling" "Optimized Cooling"
				if ( get_param rmodDn "climateControlProfiling" ) == "Low_Noise" add_param rmodDn "climateControlProfiling" "Low Noise"
				if ( get_param rmodDn "climateControlProfiling" ) == "Linear_Response" add_param rmodDn "climateControlProfiling" "Linear"
			end

		del_param rmodDn "connectionList"		
		del_param rmodDn "extAlList"		
		del_param rmodDn "highTemperatureAlarmSuppressed"		
		del_param rmodDn "hwType"		
		del_param rmodDn "mcpaPower"		
		# del_param rmodDn "moduleLocation" # PR243918: [SBTS17][RP001420][GSM] Some paramaters under RMOD MO have wrong values of does not exist
		del_param rmodDn "prodCode"		
		del_param rmodDn "serNum"		
		del_param rmodDn "temperaturePowerControlProfiling"		
		del_param rmodDn "suppressAmbientAlarmEnabled"

		for_objects "BCF/MRBTS/ANTL"
			begin
				define "ANTL_DN" $current_dist_name
				define "rModId" $current_RMOD
				define "BCF_ANTL_ID" $current_ANTL 
				if ( get_param ANTL_DN "rModId" ) == rModId
					begin						
						define "SBTS_ANTL_DN" rmodDn JOIN "/ANTL-" JOIN BCF_ANTL_ID
						add_object SBTS_ANTL_DN
				
						if ( param_exist ANTL_DN "ulDelay" ) add_param SBTS_ANTL_DN "ulDelay" get_param ANTL_DN "ulDelay" 
						
						if ( param_exist ANTL_DN "vswrMajorAlarm" ) 
							begin 
								define "vswrMajorAlarmValue" ( get_param ANTL_DN "vswrMajorAlarm" )
								add_param SBTS_ANTL_DN "vswrMajorThreshold" vswrMajorAlarmValue
							end
						if ( param_exist ANTL_DN "vswrMinorAlarm" ) 
							begin
								define "vswrMinorAlarmValue" ( get_param ANTL_DN "vswrMinorAlarm" )
								add_param SBTS_ANTL_DN "vswrMinorThreshold" vswrMinorAlarmValue
							end
						add_param SBTS_ANTL_DN "hdlcCommunicationAllowed" "true"
						
						add_param SBTS_ANTL_DN "totalLoss" 30
						if ( param_exist ANTL_DN "feederLoss" )
							begin
								define "value" "" JOIN get_param ANTL_DN "feederLoss"
								define "value" replace value "-" ""
								if ( value > 990 ) define "value" "990"
								add_param SBTS_ANTL_DN "totalLoss" value
							end

						add_param SBTS_ANTL_DN "cwaThreshold" "215"
						# replace ANT1 with 1 in its value
						if ( param_exist ANTL_DN "antId" )
							begin
								define "value" get_param ANTL_DN "antId"
								define "value" replace value "ANT" ""						
								add_param SBTS_ANTL_DN "antPortId" value
							end
						# PR253211			 
						add_param SBTS_ANTL_DN "antennaRoundTripDelay" 0				
						
						if ( param_exist ANTL_DN "feederVoltage" )
							begin
								if ( ( get_param ANTL_DN "feederVoltage" ) < 24  ) add_param SBTS_ANTL_DN "dcVoltage" "LOW"				
								if ( ( get_param ANTL_DN "feederVoltage" ) == 1 ) add_param SBTS_ANTL_DN "dcVoltage" "AUTO"
								if ( ( get_param ANTL_DN "feederVoltage" ) == 0 ) add_param SBTS_ANTL_DN "dcVoltage" "OFF"
								if ( ( get_param ANTL_DN "feederVoltage" ) >= 24 ) add_param SBTS_ANTL_DN "dcVoltage" "HIGH"
								del_param ANTL_DN "feederVoltage"
							end
						else add_param SBTS_ANTL_DN "dcVoltage" "AUTO"
						
						define "value" ""
						for_objects "BCF/MRBTS/MHA"
							begin
								define "MHA_DN" $current_dist_name
								if ( param_exist MHA_DN "antlId" )
									if ( get_param MHA_DN "antlId" ) == ANTL_DN
										if ( param_exist MHA_DN "mhaAlarmDetection" )
											if ( get_param MHA_DN "mhaAlarmDetection" ) == "true"
												begin
													if ( param_exist MHA_DN "alarmThresholdLevel" )
														define "value" get_param MHA_DN "alarmThresholdLevel"
												end
												else define "value" "0"
								if value == "" add_param SBTS_ANTL_DN "cwaThreshold" "215"
									else add_param SBTS_ANTL_DN "cwaThreshold" value
							end
						if ( param_exist ANTL_DN "additionalRxGain" )
							if not ( get_param ANTL_DN "additionalRxGain" ) == 0
								begin
									define "PASSDEV_COUNT" objects_count "MRBTS/EQM/APEQM/PASSDEV"
									define "PASSDEV_COUNT" PASSDEV_COUNT + 1
									define "passdevDN" APEQMDN JOIN "/PASSDEV-" JOIN PASSDEV_COUNT
									add_object passdevDN
									
									add_param passdevDN "additionalTxAttenuation" "0"
									add_param passdevDN "additionalTxGain" "0"
									add_param passdevDN "inventoryUnitType" "Not Available"
									add_param passdevDN "vendorName" "Not Available"

									# if ( param_exist WBTS_ANTL "mrcProdCode" ) add_param passdevDN "vendorUnitTypeNumber" get_param WBTS_ANTL "mrcProdCode"
									add_param passdevDN "additionalRxGain" get_param ANTL_DN "additionalRxGain"
									
									add_param passdevDN "tempLoglinkANTL" SBTS_ANTL_DN
								end
							
				end
			end		
	end		

#####LOGLINK#####

# between ANTL to PASSDEV
for_objects "MRBTS/EQM/APEQM/PASSDEV"
	begin
		define "passdevDN" $current_dist_name
		if ( param_exist passdevDN "tempLoglinkANTL" )
			begin
				define "LOGLINK_COUNT" objects_count "MRBTS/EQM/HWTOP/LOGLINK"
				define "LOGLINK_COUNT" LOGLINK_COUNT + 1
				define "loglinkDn" hwtopDn JOIN "/LOGLINK-" JOIN LOGLINK_COUNT
				add_object loglinkDn 
				# ANTL-PASSDEV
				add_param loglinkDn "firstEndpointDN" get_param passdevDN "tempLoglinkANTL"
				add_param loglinkDn "secondEndpointDN" passdevDN
				add_param loglinkDn "linkModeConfiguration" "false"
				add_param loglinkDn "linkModeData" "true"
				add_param loglinkDn "linkModeDC" "false"		
				add_param loglinkDn "linkModeSynchronization" "false"
				
				del_param passdevDN "tempLoglinkANTL"
			end
	end

define "LOGLINK_COUNT" 0
# logical link connection between Antenna Line Port and Antenna Line Device
for_branch APEQMDN JOIN "/ALD"
	begin
		define "aldId" $current_ALD
		define "MO" replace $current_dist_name "(.*\/)+" "" flags "g"
		define "MO" replace MO "(.*)-(.*)" "$1"

		if ( MO == "LNA" || MO == "RETU" )
			begin
				define "SBTS_MO" $current_dist_name

				if ( param_exist SBTS_MO "tempScannedAntennaInterface" )
					begin
						if not ( get_param SBTS_MO "tempScannedAntennaInterface" ) == "NONE"
							begin
								#RMODx-ANTy
								define "scannedAntennaInterface" get_param SBTS_MO "tempScannedAntennaInterface"
								define "rmodId" scannedAntennaInterface
								define "rmodId" replace scannedAntennaInterface "(.*)-(.*)" "$1"
								define "rmodId" replace rmodId "RMOD" ""
								define "antId" replace scannedAntennaInterface "(.*)-(.*)" "$2"
								define "antId" replace antId "ANT" ""
								#add_param SBTS_MO "antId" antId
								
								define "SBTS_ANTL" ""
								
								for_objects "MRBTS/EQM/APEQM/RMOD-" JOIN rmodId JOIN "/ANTL"
									begin
										if ( get_param $current_dist_name "antPortId" ) == antId
											define "SBTS_ANTL" $current_dist_name
									end
								
								if not ( SBTS_ANTL == "" )
									begin
										define "exists" "false"
										for_objects "MRBTS/EQM/HWTOP/LOGLINK"
											begin
												define "first" get_param $current_dist_name "firstEndpointDN"
												define "second" get_param $current_dist_name "secondEndpointDN"
												
												if ( first == SBTS_ANTL ) && ( second == APEQMDN JOIN "/ALD-" JOIN aldId )
													define "exists" "true"
											end
									
										if ( exists == "false" )
											begin
												define "LOGLINK_COUNT" LOGLINK_COUNT + 1
												define "loglinkDn" hwtopDn JOIN "/LOGLINK-" JOIN LOGLINK_COUNT
												add_object loglinkDn
																								
												add_param loglinkDn "firstEndpointDN" SBTS_ANTL
												add_param loglinkDn "secondEndpointDN" APEQMDN JOIN "/ALD-" JOIN aldId
												add_param loglinkDn "linkModeConfiguration" "true"
												add_param loglinkDn "linkModeData" "false"
												# ANTL-ALD
												add_param loglinkDn "linkModeDC" "false"
												add_param loglinkDn "linkModeSynchronization" "false"
																								
											end
										
										# logical link dc connection between Antenna Line Port and Low Noise Amplifier
										if ( MO == "LNA" )
											begin
												# ANTL-LNA
												define "LOGLINK_COUNT" LOGLINK_COUNT + 1
												define "loglinkDn" hwtopDn JOIN "/LOGLINK-" JOIN LOGLINK_COUNT
												add_object loglinkDn
												
												add_param loglinkDn "firstEndpointDN" SBTS_ANTL
												add_param loglinkDn "secondEndpointDN" SBTS_MO
												add_param loglinkDn "linkModeConfiguration" "false"
												add_param loglinkDn "linkModeData" "false"
												add_param loglinkDn "linkModeDC" "true"
												add_param loglinkDn "linkModeSynchronization" "false"
											end
									end								
							end

						del_param SBTS_MO "tempScannedAntennaInterface"
					end
				end
	end

# connection between Antenna Line Port and Low Noise Amplifier
for_objects APEQMDN JOIN "/ALD/LNA"
	begin
		define "lnaDn" $current_dist_name
		
		if ( param_exist lnaDn "tempConnection" ) && ( param_exist lnaDn "tempAntlId" )
			begin
				if not ( get_param lnaDn "tempConnection" ) == "External"
					for_objects APEQMDN JOIN "/RMOD/ANTL"
						begin
							define "antlDn" $current_dist_name
							define "antlId" $current_ANTL
							if ( get_param lnaDn "tempAntlId" ) == antlId
								begin
									define "exists" "false"
									for_objects eqmDn JOIN "/HWTOP/LOGLINK"
										begin
											define "first" get_param $current_dist_name "firstEndpointDN"
											define "second" get_param $current_dist_name "secondEndpointDN"
											
											if ( first == antlDn ) && ( second == lnaDn )
												begin
													define "exists" "true"
													add_param $current_dist_name "linkModeData" "true"
												end
										end
								
									if ( exists == "false" )
										begin
											define "LOGLINK_COUNT" LOGLINK_COUNT + 1
											define "loglinkDn" hwtopDn JOIN "/LOGLINK-" JOIN LOGLINK_COUNT
											add_object loglinkDn
											
											add_param loglinkDn "firstEndpointDN" antlDn
											add_param loglinkDn "secondEndpointDN" lnaDn
											add_param loglinkDn "linkModeConfiguration" "false"
											add_param loglinkDn "linkModeData" "true"
											# linkModeDC to be put on true here PR243551
											add_param loglinkDn "linkModeDC" "true"
											add_param loglinkDn "linkModeSynchronization" "false"
										end
								end
						end
				del_param lnaDn "tempConnection"
				del_param lnaDn "tempAntlId"
			end
	end

# PR234551 second part of correction (LOGLINK4)

for_objects "MRBTS/EQM/HWTOP/LOGLINK"
	begin
		define "currentLogLink" $current_dist_name
		define "firstEndpointDNValue" get_param currentLogLink "firstEndpointDN"
		define "secondEndpointDNValue" get_param currentLogLink "secondEndpointDN"
		define "linkModeDCValue" get_param currentLogLink "linkModeDC"
		for_objects "MRBTS/EQM/HWTOP/LOGLINK"
			begin
				if ( get_param $current_dist_name "secondEndpointDN" ) == secondEndpointDNValue
					if not ( $current_dist_name == currentLogLink )
						begin
							add_param currentLogLink "linkModeDC" "false"
							add_param $current_dist_name "linkModeDC" "true"
						end
			end

	end
	
# CABLINK
# SMOD - RMOD connection
define "counterCABLINK" 1

for_objects "BCF/MRBTS/RMOD"
	begin	
		define "rmodDn" $current_dist_name
		define "rmodId" $current_RMOD
		
		for_list rmodDn "connectionList"
			begin				
				define "SBTS_CABLINK" hwtopDn JOIN "/CABLINK-" JOIN counterCABLINK
				define "counterCABLINK" counterCABLINK + 1
				add_object SBTS_CABLINK

				define "sModId" get_param rmodDn "connectionList." JOIN $current_index JOIN ".sModId"
				define "CONNECTED_WBTS_SMOD" mrbtsDN JOIN "/SMOD-" JOIN sModId
				define "SBTS_MO_PREFIX" ""

				if ( get_param CONNECTED_WBTS_SMOD "technology" ) == "GERAN" define "SBTS_MO_PREFIX" cabinetDn JOIN "/SMOD-"
				else define "SBTS_MO_PREFIX" eqmDn JOIN "/SMOD_EXT-"
				
				define "position" get_param rmodDn "connectionList." JOIN $current_index JOIN ".positionInChain"
				define "linkId" get_param rmodDn "connectionList." JOIN $current_index JOIN ".linkId"
				if ( position == 1 )
					begin
						add_param SBTS_CABLINK "firstEndpointDN" SBTS_MO_PREFIX JOIN sModId
						add_param SBTS_CABLINK "firstEndpointPortId" linkId
					end
				# Chained RF
				else
					begin
						add_param SBTS_CABLINK "firstEndpointPortId" "2"
						for_objects mrbtsDN JOIN "/RMOD"
							begin
								define "RMOD_INNER_LOOP" $current_dist_name
								define "rmodId_INNER_LOOP" $current_RMOD
								
								for_list RMOD_INNER_LOOP "connectionList"
									begin
										if ( linkId == get_param RMOD_INNER_LOOP "connectionList." JOIN $current_index JOIN ".linkId" )
											if ( ( position - 1 ) == ( get_param RMOD_INNER_LOOP "connectionList." JOIN $current_index JOIN ".positionInChain" ) )
												add_param SBTS_CABLINK "firstEndpointDN" APEQMDN JOIN "/RMOD-" JOIN rmodId_INNER_LOOP
									end
							end
					end
				add_param SBTS_CABLINK "firstEndpointLabel" "OPT"

				add_param SBTS_CABLINK "secondEndpointDN" APEQMDN JOIN "/RMOD-" JOIN rmodId
			end	
	end

for_objects "MRBTS/BTSSCC/BTSSCG/ETHPRT"
	begin
		define "ethprtDN" $current_dist_name
		for_list ethprtDN "portInterfaceSettings" 
			
				# portID portInUse portType
				if ( "Yes" == get_param ethprtDN ( "portInterfaceSettings." JOIN $current_index JOIN ".portInUse" ) )					
					&& ( ( 5 == get_param ethprtDN ( "portInterfaceSettings." JOIN $current_index JOIN ".portID" ) ) 
					||  ( 6 == get_param ethprtDN ( "portInterfaceSettings." JOIN $current_index JOIN ".portID" ) ) )
# create TRMOD
						begin
							define "trmodDn" cabinetDn JOIN "/TRMOD-1"	
#							PR255066: [SBTS17][RP001738][GSM] Unexpected TRMOD created while input GF16 SCF defines more than one port on FTIF.
							if ( 0 == objects_count ( "TRMOD" ) ) 
								begin
									add_object trmodDn														
									add_param trmodDn "prodCodePlanned" "472311A"					
								end
						end
	end
	
# MNL PART treated here as antlDN does not exist in MNL
for_objects "MNL/MNLENT"
	begin
		define "cellmappingDn" $current_dist_name  JOIN "/CELLMAPPING-1"
		add_object cellmappingDn
	end

define "lcelcid" 0
for_objects "BCF/MRBTS/BTSSCC/LCELC"
	begin
# v0.5 19.06.2017 Ioan Harangus: pronto 248213:  [OAM_SCT][SBTS17][RP1062] To small range for GNCEL in SBTS17 in comparison to LCELC in SBTS16
		define "lcelcid" lcelcid + 1
		define "gncelDn" mrbtsRoot JOIN "/GNBTS-1" JOIN "/GNBCF-1" JOIN "/GNCEL-" JOIN lcelcid
		add_object gncelDn
		
		if ( param_exist $current_dist_name "perTrxPower" ) 
			begin
				define "perTrxPowerValue" ( get_param $current_dist_name "perTrxPower" )
				
				define "perTrxPowerValue" perTrxPowerValue 
				add_param gncelDn "perTrxPower" replace ( perTrxPowerValue ) "\." "" flags "g" 
			end
		else add_param gncelDn "perTrxPower" 0
		add_param gncelDn "lcelcId" lcelcid
		
		add_param mrbtsRoot JOIN "/GNBTS-1" JOIN "/GNBCF-1" "txPowerPooling" "false"
	
		define "lcelcDn" cellmappingDn JOIN "/LCELC-" JOIN lcelcid
		add_object lcelcDn
		
		define "oldLcelcDn" $current_dist_name
		
		for_list $current_dist_name "resourceList"
			begin
			define "channelgroupId" $current_index + 1
				define "channelgroupDn" lcelcDn JOIN "/CHANNELGROUP-" JOIN channelgroupId
				add_object channelgroupDn
				define "chtxDn" channelgroupDn JOIN "/CHANNEL-" JOIN ( ( objects_count channelgroupDn JOIN "/CHANNEL" ) + 1 )
				add_object chtxDn
				for_objects "BCF/MRBTS/ANTL"								
					if ( get_param oldLcelcDn "resourceList." JOIN $current_index ) == $current_ANTL
						begin
							define "rmode_id" get_param $current_dist_name "rModId"
							define "rmodDn" APEQMDN JOIN "/RMOD-" JOIN rmode_id
							define "antlDN" rmodDn JOIN "/ANTL-" JOIN $current_ANTL
							add_param chtxDn "antlDN" antlDN
							add_param chtxDn "direction" "TX"
						end							

				define "chrxDn" channelgroupDn JOIN "/CHANNEL-" JOIN ( ( objects_count channelgroupDn JOIN "/CHANNEL" ) + 1 )
				add_object chrxDn
				for_objects "BCF/MRBTS/ANTL"								
					if ( get_param oldLcelcDn "resourceList." JOIN $current_index ) == $current_ANTL
						begin
							define "rmode_id" get_param $current_dist_name "rModId"
							define "rmodDn" APEQMDN JOIN "/RMOD-" JOIN rmode_id
							define "antlDN" rmodDn JOIN "/ANTL-" JOIN $current_ANTL
							add_param chrxDn "antlDN" antlDN
							add_param chrxDn "direction" "RX"
						end			end
	end

# operation, version, adaptation setup	
	
define eqmDn "MRBTS-" JOIN mrbtsId JOIN "/EQM-1"
for_branch eqmDn
	begin
		set_operation $current_dist_name operation
		set_version $current_dist_name version
		set_adaptation $current_dist_name adaptation
	end
	
