####################################
## SCFD file version: 0.6         ##
## PDDB version: TLF16_1508_003   ##
####################################

#General checking for rule file execution
check_version minor TL16A
check_version minor TLF16A
check_version minor TLC16A

# Macro specific
#check_param minor MRBTS actMhaAutoConfig
#v0.5 check_param rule added
check_param minor PMRNL mtFZAPGNSS
#v0.5 end

###########
# COMMON: #
###########

################################################################################################
# LTE2060 Addition or replacement of radios without site outage [Standard]
################################################################################################
# Macro specific
#add_param minor MRBTS actMhaAutoConfig false

################################################################################################
# CRL7402 Correction of cell ID modelling for tracing
################################################################################################

#1.
#LTRACE	loggedCellConf.lcrId
#Object ID : OM_GEN_SFS_TRACEMGMNT.2050
#Migration rules for MTRACE-cellId
#During migration from FL15A to FL16 the parameter MTRACE-cellId shall be replaced by MTRACE-lcrId.
#lcrId consists of the 8 least significant bits of cellId.
#Object ID : OM_GEN_SFS_TRACEMGMNT.2051
#Migration rules for LTRACE-loggedCellConf-cellId
#During migration from FL15A to FL16 the parameter LTRACE-loggedCellConf-cellId shall be replaced by LTRACE-loggedCellConf-lcrId.
#lcrId consists of the 8 least significant bits of cellId.

#1.1 Temporary parameters creation
#1.1.1 LTRACE
add_param minor LTRACE templnbtsId 0
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/CTRLTS/LTRACE templnbtsId = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/LTRACE-${LTRACE} loggedCellConf 0 cellId / CONST 256
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/CTRLTS/LTRACE templnbtsId = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/LTRACE-${LTRACE} templnbtsId * CONST 256
#1.1.1 MTRACE
add_param minor MTRACE templnbtsId 0
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/CTRLTS/MTRACE templnbtsId = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} cellId / CONST 256
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/CTRLTS/MTRACE templnbtsId = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} templnbtsId * CONST 256

#1.2 Add and set new parameters
#1.2.1 LTRACE
add_list_param minor LTRACE loggedCellConf 0 lcrId "new"
#v0.4 added condition into next rule
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/CTRLTS/LTRACE loggedCellConf 0 lcrId = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/LTRACE-${LTRACE} loggedCellConf 0 lcrId == CONST "new" ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/LTRACE-${LTRACE} loggedCellConf 0 cellId - PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/LTRACE-${LTRACE} templnbtsId :
#1.2.1 MTRACE
add_param minor MTRACE lcrId "new"
#v0.4 added condition into next rule
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/CTRLTS/MTRACE lcrId = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} lcrId == CONST "new" ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} cellId - PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} templnbtsId :
#1.2.2 Delete lcrId if cellId was not existing
dependence_del_target_relative minor PARAM MRBTS/LNBTS/CTRLTS/MTRACE lcrId ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} lcrId == CONST "new"

#1.3 Delete not used parameters
del_list_param minor LTRACE loggedCellConf cellId
del_param minor MTRACE cellId

#1.4 Delete temporary parameters
del_param minor LTRACE templnbtsId
del_param minor MTRACE templnbtsId

#v.3
################################################################################################
# PR077397: Missing parameters after migration between PDDB_1508_003 and PDDB_1508_002
################################################################################################
del_param minor LNCEL srbSchedWeightDl
del_param minor LNCEL srbSchedWeightUl
#v.3 end

# FZM specific
################################################################################################
# LTE2569 Flexi Zone Controller Legacy FDD/TD-LTE 15A and FDD/TD-LTE 16 Feature Support
################################################################################################
add_param minor PMRNL mtFZAPGNSS 15min

# FZC specific
################################################################################################
# LBT2364-B CRL2817 FZM Support for LTE649 - RL16 Deferred Functionality
################################################################################################
del_param minor APELNK l2IngressRate


################################################################################################
# LTE2569 Flexi Zone Controller Legacy FDD/TD-LTE 15A and FDD/TD-LTE 16 Feature Support
################################################################################################
#v0.2
add_cls minor APMOD/APGNSS
set_operation minor APGNSS create

copy_param_relative minor SMOD/GNSSI SMOD-1/APMOD-*/APGNSS-1 actGpsOutputLnaPowerSupply actGnssOutputLnaPowerSupply
add_param minor APGNSS gnssControlMode All-in-view
copy_param_relative minor APMOD APMOD-${APMOD}/APGNSS-1 gpsTotalAntennaLineDelay gnssLineDelay
#v0.2 end

#v0.6 - PR123977: [FLC16][CTC] Synchronization source isn't set correctly after upgrading from RL15A to RL16 (parameter: syncInputType)
#moved below
#add_param minor APMOD actHybridSynch false
#mod_param minor APMOD gpsInUse false true
#mod_param minor APMOD tdmSyncInUse true false

dependence_mod_param_if_key_parameter_value_matches minor UNIT unitTypeExpected FZC1100 GNSSI actGpsOutputLnaPowerSupply false
dependence_mod_param_if_key_parameter_value_matches minor UNIT unitTypeExpected FZC1100 GNSSI locationMode navigated
del_param minor APMOD gpsTotalAntennaLineDelay

#If BTSSCL+btsSyncMode is set to 'PhaseSync', coreModuleSyncInputList must contain at least one of the following: 3: internal GNSS receiver: public; 5: transport reference source (ToP Phase only).
#add_list minor APMOD coreModuleSyncInputList
#add_list_item minor APMOD coreModuleSyncInputList
#add_list_param minor APMOD coreModuleSyncInputList * syncInputType "internal GNSS receiver"
#add_list_param minor APMOD coreModuleSyncInputList * syncInputPrio 1

#1. Add coreModuleSyncInputList with all items
add_list minor APMOD coreModuleSyncInputList
add_list_item minor APMOD coreModuleSyncInputList
add_list_item minor APMOD coreModuleSyncInputList
add_list_item minor APMOD coreModuleSyncInputList
add_list_param minor APMOD coreModuleSyncInputList * syncInputType new
add_list_param minor APMOD coreModuleSyncInputList * syncInputPrio 0

#2. Modify syncInputType based on old parameters
#APMOD-gpsInUse=’true’ --> APMOD-syncInputType=’internal GNSS receiver’
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/SMOD/APMOD coreModuleSyncInputList 0 syncInputType = PARAM MRBTS-${MRBTS}/SMOD-${SMOD}/APMOD-${APMOD} gpsInUse == CONST "true" ? CONST "internal GNSS receiver" :
#APMOD-tdmSyncInUse=’true’ --> APMOD-syncInputType=’transport reference source’
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/SMOD/APMOD coreModuleSyncInputList 1 syncInputType = PARAM MRBTS-${MRBTS}/SMOD-${SMOD}/APMOD-${APMOD} tdmSyncInUse == CONST "true" ? CONST "transport reference source" :
#At least one sync input must be configured within syncInputType, set default == "internal GNSS receiver"
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/SMOD/APMOD coreModuleSyncInputList 2 syncInputType = PARAM MRBTS-${MRBTS}/SMOD-${SMOD}/APMOD-${APMOD} gpsInUse == CONST "false" && PARAM MRBTS-${MRBTS}/SMOD-${SMOD}/APMOD-${APMOD} tdmSyncInUse == CONST "false" ? CONST "internal GNSS receiver" :

#3. Delete items type not set
dependence_del_target_relative minor LISTITEM MRBTS/SMOD/APMOD coreModuleSyncInputList * ? LISTPARAM MRBTS-${MRBTS}/SMOD-${SMOD}/APMOD-${APMOD} coreModuleSyncInputList ${coreModuleSyncInputList} syncInputType == CONST "new"

#4. Set priorities
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/SMOD/APMOD coreModuleSyncInputList 0 syncInputPrio = CONST 1
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/SMOD/APMOD coreModuleSyncInputList 1 syncInputPrio = CONST 2

#5. Remove APGNSS if "internal GNSS receiver”  is NOT configured on coreModuleSyncInputList
dependence_del_target_relative minor MOC MRBTS/SMOD/APMOD/APGNSS ? LISTPARAM MRBTS-${MRBTS}/SMOD-${SMOD}/APMOD-${APMOD} coreModuleSyncInputList 0 syncInputType != CONST "internal GNSS receiver"


add_param minor APMOD actHybridSynch false
mod_param minor APMOD gpsInUse false true
mod_param minor APMOD tdmSyncInUse true false
#v0.6 end


###########
# TDD:    #
###########

################################################################################################
# CRL6340 RRU power dynamic range
################################################################################################

dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS dlSectorBFWeightCusProf * modulusOfWeighforAntGrp0 = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} dlSectorBFWeightCusProf ${dlSectorBFWeightCusProf} modulusOfWeighforAntGrp0 < CONST 20 ? CONST 20 :
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS dlSectorBFWeightCusProf * modulusOfWeighforAntGrp1 = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} dlSectorBFWeightCusProf ${dlSectorBFWeightCusProf} modulusOfWeighforAntGrp1 < CONST 20 ? CONST 20 :
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS dlSectorBFWeightCusProf * modulusOfWeighforAntGrp2 = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} dlSectorBFWeightCusProf ${dlSectorBFWeightCusProf} modulusOfWeighforAntGrp2 < CONST 20 ? CONST 20 :
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS dlSectorBFWeightCusProf * modulusOfWeighforAntGrp3 = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} dlSectorBFWeightCusProf ${dlSectorBFWeightCusProf} modulusOfWeighforAntGrp3 < CONST 20 ? CONST 20 :

################################################################################################
# PR062467: UL SPS parameters update-max value of range changed from 1000 to 256
################################################################################################

dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/LNCEL ulSpsConfig * amrVoiceBRThreshold  = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} ulSpsConfig ${ulSpsConfig} amrVoiceBRThreshold > CONST 256 ? CONST 256 :

#version
#FZM Replace# set_version major TL16
dependence_set_version major PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/FTM-${FTM}/UNIT-${UNIT} unitTypeExpected == CONST "FZC1100" ? CONST "TLC16" : CONST "TLF16"

#history:
#FZM Replace# add_log minor "Conversion from TL16 FB15.08 (002) to TL16 FB15.08 (003)"
add_log minor "Conversion from TLF16 FB15.08 (002) to TLF16 FB15.08 (003)"