####################################
## SCFD file version: 0.7         ##
## PDDB version: TL16_1509_003    ##
####################################

#General checking for rule file execution
check_version minor TL16A

#v0.3 change for TL16_1509_003 PDDB:
#check_param minor BTSSCL actRxMonitoring
check_param minor MRBTS validatePlanAgainstDetectedHW
#v0.3 change for TL16_1509_003 PDDB END

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

################################################################################################
# CRL9710 Preparation of LTE2805 in FDD/TD-LTE16 in OAM interface for Macro eNB
################################################################################################

add_param minor BTSSCL actRxMonitoring true

################################################################################################
# CRL9682 The feature flag to enable LTE2026 (DL SRB Robustness) needs to be renamed to indicate that it also enables LTE2392 (UL SRB Robustness)
################################################################################################
#Parameter actDlSrb1Robustness replaced by actSrb1Robustness

rename_param minor LNCEL actDlSrb1Robustness actSrb1Robustness

################################################################################################
# PR076971 A typo in parameter name ActRadioPosFlexibility 
################################################################################################
# delete
del_param minor LNBTS actRadioPosFlexibilty

# add with false
add_param minor LNBTS actRadioPosFlexibility false

################################################################################################
# CRL9441 RF Based VoLTE DRX Deactivation 
################################################################################################
# add with false

add_param minor LNCEL actQci1RfDrx false


# v0.3 change for TL16_1509_003 PDDB
##########
#LTE2060-B-k Addition or replacement of radios without site outage
#	late change: new modification type

#v0.5 correction for PR087233
################################################################################################
# LBT3245 CRL9088 Introduce consistency check in BTSSM to reduce possible amount of PLMN-IDs per eNB
################################################################################################
# 1. Create temporary parameters to calculate items
add_param minor LNBTS AmountOfFurtherPlmnIdLItemsPereNB 0
#add_param minor LNCEL tempAmountOfFurtherPlmnIdLItems 0
add_list minor LNBTS tempFurtherPlmnIdL

#1.1 Create temporary list based on furtherPlmnIdL
copy_list_param minor LNCEL LNCEL furtherPlmnIdL tempFurtherPlmnIdL

#1.2 Add item indicator to the tempFurtherPlmnIdL
add_list_param minor LNCEL tempFurtherPlmnIdL 0 tempItemCount 1
add_list_param minor LNCEL tempFurtherPlmnIdL 1 tempItemCount 1
add_list_param minor LNCEL tempFurtherPlmnIdL 2 tempItemCount 1
add_list_param minor LNCEL tempFurtherPlmnIdL 3 tempItemCount 1
add_list_param minor LNCEL tempFurtherPlmnIdL 4 tempItemCount 1

#1.3 Move LNCEL tempFurtherPlmnIdL listy items to the LNBTS tempFurtherPlmnIdL 
dependence_move_list_item_relative minor MRBTS/LNBTS/LNCEL tempFurtherPlmnIdL tempItemCount 1 MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL

#1.4 Modify LNCEL furtherPlmnIdL tempItemCount value to the "0" if duplicate found and delete those
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS tempFurtherPlmnIdL * tempItemCount = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mcc == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 0 mcc && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mnc == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 0 mnc && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mncLength == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 0 mncLength ? CONST 0 : 
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS tempFurtherPlmnIdL 0 tempItemCount = CONST 0 == CONST 0 ? CONST 1 : 
dependence_del_target_relative minor LISTITEM MRBTS/LNBTS tempFurtherPlmnIdL * ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} tempItemCount == CONST 0 

dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS tempFurtherPlmnIdL * tempItemCount = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mcc == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 1 mcc && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mnc == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 1 mnc && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mncLength == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 1 mncLength ? CONST 0 :
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS tempFurtherPlmnIdL 1 tempItemCount = CONST 0 == CONST 0 ? CONST 1 : 
dependence_del_target_relative minor LISTITEM MRBTS/LNBTS tempFurtherPlmnIdL * ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} tempItemCount == CONST 0 

dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS tempFurtherPlmnIdL * tempItemCount = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mcc == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 2 mcc && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mnc == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 2 mnc && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mncLength == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 2 mncLength ? CONST 0 :
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS tempFurtherPlmnIdL 2 tempItemCount = CONST 0 == CONST 0 ? CONST 1 : 
dependence_del_target_relative minor LISTITEM MRBTS/LNBTS tempFurtherPlmnIdL * ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} tempItemCount == CONST 0 

dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS tempFurtherPlmnIdL * tempItemCount = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mcc == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 3 mcc && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mnc == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 3 mnc && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mncLength == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 3 mncLength ? CONST 0 :
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS tempFurtherPlmnIdL 3 tempItemCount = CONST 0 == CONST 0 ? CONST 1 : 
dependence_del_target_relative minor LISTITEM MRBTS/LNBTS tempFurtherPlmnIdL * ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} tempItemCount == CONST 0 

dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS tempFurtherPlmnIdL * tempItemCount = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mcc == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 4 mcc && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mnc == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 4 mnc && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mncLength == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 4 mncLength ? CONST 0 :
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS tempFurtherPlmnIdL 4 tempItemCount = CONST 0 == CONST 0 ? CONST 1 : 
dependence_del_target_relative minor LISTITEM MRBTS/LNBTS tempFurtherPlmnIdL * ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} tempItemCount == CONST 0 

dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS tempFurtherPlmnIdL * tempItemCount = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mcc == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 5 mcc && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mnc == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 5 mnc && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mncLength == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 5 mncLength ? CONST 0 :
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS tempFurtherPlmnIdL 5 tempItemCount = CONST 0 == CONST 0 ? CONST 1 : 
dependence_del_target_relative minor LISTITEM MRBTS/LNBTS tempFurtherPlmnIdL * ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} tempItemCount == CONST 0 

dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS tempFurtherPlmnIdL * tempItemCount = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mcc == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 6 mcc && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mnc == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 6 mnc && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mncLength == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 6 mncLength ? CONST 0 :
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS tempFurtherPlmnIdL 6 tempItemCount = CONST 0 == CONST 0 ? CONST 1 : 
dependence_del_target_relative minor LISTITEM MRBTS/LNBTS tempFurtherPlmnIdL * ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} tempItemCount == CONST 0 

dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS tempFurtherPlmnIdL * tempItemCount = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mcc == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 7 mcc && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mnc == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 7 mnc && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} mncLength == LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 7 mncLength ? CONST 0 :
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS tempFurtherPlmnIdL 7 tempItemCount = CONST 0 == CONST 0 ? CONST 1 : 
dependence_del_target_relative minor LISTITEM MRBTS/LNBTS tempFurtherPlmnIdL * ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL ${tempFurtherPlmnIdL} tempItemCount == CONST 0 

# 2. Calculate item amount
# 2.1 Calculate item amount in LNCEL level
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempAmountOfFurtherPlmnIdLItems = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempAmountOfFurtherPlmnIdLItems + LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} furtherPlmnIdL 0 tempItemCount :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempAmountOfFurtherPlmnIdLItems = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempAmountOfFurtherPlmnIdLItems + LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} furtherPlmnIdL 1 tempItemCount :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempAmountOfFurtherPlmnIdLItems = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempAmountOfFurtherPlmnIdLItems + LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} furtherPlmnIdL 2 tempItemCount :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempAmountOfFurtherPlmnIdLItems = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempAmountOfFurtherPlmnIdLItems + LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} furtherPlmnIdL 3 tempItemCount :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempAmountOfFurtherPlmnIdLItems = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempAmountOfFurtherPlmnIdLItems + LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} furtherPlmnIdL 4 tempItemCount :

# 2.2 move temporary LNCEL parameter to list
#add_list minor LNCEL tempItemList
#add_list_item minor LNCEL tempItemList
#add_list_param minor LNCEL tempItemList 0 itemAmounth 0
#dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/LNCEL tempItemList 0 itemAmounth = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempAmountOfFurtherPlmnIdLItems :
#add_list_param minor LNCEL tempItemList 0 itemTag 0

# 2.3 Calculate item amount in LNBTS level
#add_list minor LNBTS enbItemList
#dependence_move_list_item_relative minor MRBTS/LNBTS/LNCEL tempItemList itemTag 0 MRBTS-${MRBTS}/LNBTS-${LNBTS} enbItemList

dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS AmountOfFurtherPlmnIdLItemsPereNB = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} AmountOfFurtherPlmnIdLItemsPereNB + LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 0 tempItemCount :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS AmountOfFurtherPlmnIdLItemsPereNB = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} AmountOfFurtherPlmnIdLItemsPereNB + LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 1 tempItemCount :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS AmountOfFurtherPlmnIdLItemsPereNB = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} AmountOfFurtherPlmnIdLItemsPereNB + LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 2 tempItemCount :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS AmountOfFurtherPlmnIdLItemsPereNB = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} AmountOfFurtherPlmnIdLItemsPereNB + LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 3 tempItemCount :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS AmountOfFurtherPlmnIdLItemsPereNB = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} AmountOfFurtherPlmnIdLItemsPereNB + LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 4 tempItemCount :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS AmountOfFurtherPlmnIdLItemsPereNB = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} AmountOfFurtherPlmnIdLItemsPereNB + LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 5 tempItemCount :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS AmountOfFurtherPlmnIdLItemsPereNB = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} AmountOfFurtherPlmnIdLItemsPereNB + LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 6 tempItemCount :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS AmountOfFurtherPlmnIdLItemsPereNB = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} AmountOfFurtherPlmnIdLItemsPereNB + LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 7 tempItemCount :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS AmountOfFurtherPlmnIdLItemsPereNB = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} AmountOfFurtherPlmnIdLItemsPereNB + LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 8 tempItemCount :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS AmountOfFurtherPlmnIdLItemsPereNB = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} AmountOfFurtherPlmnIdLItemsPereNB + LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 9 tempItemCount :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS AmountOfFurtherPlmnIdLItemsPereNB = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} AmountOfFurtherPlmnIdLItemsPereNB + LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempFurtherPlmnIdL 10 tempItemCount :

# 3. Delete temporary parameters
dependence_del_target_relative major PARAM MRBTS/LNBTS AmountOfFurtherPlmnIdLItemsPereNB ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} AmountOfFurtherPlmnIdLItemsPereNB <= CONST 7
del_param minor LNBTS AmountOfFurtherPlmnIdLItemsPereNB
#del_param minor LNCEL tempAmountOfFurtherPlmnIdLItems
#del_list_param minor LNCEL furtherPlmnIdL tempItemCount  
# v0.4 correction - added deletion for list parameters
#del_list minor LNCEL tempItemList
#del_list minor LNBTS enbItemList  
# v0.4 correction - added deletion for list parameters END
del_list minor LNCEL tempFurtherPlmnIdL
del_list minor LNBTS tempFurtherPlmnIdL

#v0.5 correction for PR087233 END

################################################################################################
# LBT2692-A CRL6722 Parameter to enforce strict plan validation against HW in eNB
################################################################################################
#MRBTS validatePlanAgainstDetectedHW needs to be added with value "false"

add_param minor MRBTS validatePlanAgainstDetectedHW false

# v0.3 cahnge for FL16_1509_003 PDDB END

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

#v0.2 correction for PR083540: [TL16 FSIH][LTE2326] Error report on parameter actFastMimoSwitch and dlSectorBeamformingMode when do re-commissioning after eNB upgrade from TL15A to TL16 
################################################################################################
# Leftover from LTE2060 Addition or replacement of radios without site outage
################################################################################################
#OM_LTE_SFS_RNL.14661
#Migration of the parameter LNCEL parameter dlSectorBeamformingMode
#The consistency check for the optional parameter dlSectorBeamformingMode is more strong in TL16.
#Therefore the following migration shall be peformed for each LNCEL instance:
#If the number of list items in resourceList of the related LCELL instance (LCELL-lcellId = LNCEL-lcrId) is not equal to 8 or if actSuperCell  is equal to 'true' then remove the optional parameter dlSectorBeamformingMode.

#0. 
dependence_add_param_based_on_MOC_instance minor LCELL tempLcellId + 0

#1. add temporary parameter A with value 1 to the each item of resourceList
add_list_param minor LCELL resourceList 0 tempParamA 1
add_list_param minor LCELL resourceList 1 tempParamA 1
add_list_param minor LCELL resourceList 2 tempParamA 1
add_list_param minor LCELL resourceList 3 tempParamA 1
add_list_param minor LCELL resourceList 4 tempParamA 1
add_list_param minor LCELL resourceList 5 tempParamA 1
add_list_param minor LCELL resourceList 6 tempParamA 1
add_list_param minor LCELL resourceList 7 tempParamA 1
add_list_param minor LCELL resourceList 8 tempParamA 1
add_list_param minor LCELL resourceList 9 tempParamA 1
add_list_param minor LCELL resourceList 10 tempParamA 1
add_list_param minor LCELL resourceList 11 tempParamA 1

#2. add another temporary parameter B to the LNCEL and LCELL with value 0
add_param minor LCELL tempParamB 0

#3. modify temporary parameter B value in LCELL based on parameter A values and move it to the LNCEL MOC
#3.1 modify temporary parameter B value in LCELL

#v0.6 correction for PR088174: [TL16 FSMF+FZFF] Alarm 6253 after ENB upgrade
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/BTSSCL/LCELL tempParamB = CONST 1 == CONST 1 ? LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 0 tempParamA + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 1 tempParamA + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 2 tempParamA + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 3 tempParamA + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 4 tempParamA + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 5 tempParamA + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 6 tempParamA + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 7 tempParamA + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 8 tempParamA + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 9 tempParamA + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 10 tempParamA + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 11 tempParamA :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/BTSSCL/LCELL tempParamB = CONST 1 == CONST 1 ? PARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} tempParamB + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 0 tempParamA  :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/BTSSCL/LCELL tempParamB = CONST 1 == CONST 1 ? PARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} tempParamB + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 1 tempParamA  :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/BTSSCL/LCELL tempParamB = CONST 1 == CONST 1 ? PARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} tempParamB + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 2 tempParamA  :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/BTSSCL/LCELL tempParamB = CONST 1 == CONST 1 ? PARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} tempParamB + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 3 tempParamA  :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/BTSSCL/LCELL tempParamB = CONST 1 == CONST 1 ? PARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} tempParamB + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 4 tempParamA  :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/BTSSCL/LCELL tempParamB = CONST 1 == CONST 1 ? PARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} tempParamB + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 5 tempParamA  :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/BTSSCL/LCELL tempParamB = CONST 1 == CONST 1 ? PARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} tempParamB + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 6 tempParamA  :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/BTSSCL/LCELL tempParamB = CONST 1 == CONST 1 ? PARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} tempParamB + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 7 tempParamA  :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/BTSSCL/LCELL tempParamB = CONST 1 == CONST 1 ? PARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} tempParamB + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 8 tempParamA  :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/BTSSCL/LCELL tempParamB = CONST 1 == CONST 1 ? PARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} tempParamB + LISTPARAM MRBTS-${MRBTS}/BTSSCL-${BTSSCL}/LCELL-${LCELL} resourceList 9 tempParamA  :
#v0.6 correction for PR088174: [TL16 FSMF+FZFF] Alarm 6253 after ENB upgrade END

#3.2 copy value to the LNCEL if lcrid is matching
dependence_copy_param_value_based_on_relation_matching minor PARAM MRBTS/LNBTS/LNCEL lcrId PARAM MRBTS/BTSSCL/LCELL tempLcellId PARAM tempParamB

#4. delete parameter dlSectorBeamformingMode if parameter B != 8 or actSuperCell == true
# v0.7 correction for PR108671: [TL16 FSIH][LTE2326] SEM offline migration error in parameter dlSectorBeamformingMode(OM fixed this in PR083540) 
#dependence_del_target_relative minor PARAM MRBTS/LNBTS/LNCEL dlSectorBeamformingMode ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempParamB != CONST 8 || PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}  actSuperCell == CONST true
dependence_del_target_relative minor PARAM MRBTS/LNBTS/LNCEL dlSectorBeamformingMode ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempParamB != CONST 8 || PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actSuperCell == CONST "true"
# v0.7 correction for PR108671: [TL16 FSIH][LTE2326] SEM offline migration error in parameter dlSectorBeamformingMode(OM fixed this in PR083540) END

#5. delete temporary parameters.
del_list_param minor LCELL resourceList tempParamA
del_param minor LNCEL tempParamB
del_param minor LCELL tempParamB
del_param minor LCELL tempLcellId

################################################################################################
# Leftover from LTE1987 Downlink Adaptive Close Loop SU MIMO (4x4) - TM9 - PDDB changed done with PR062744:[LTE1987] actFastMimoSwitch and dlMimoMode - bidirectional consistency check handling to be assured to the xL16_1508_001
################################################################################################
#OM_LTE_SFS_RNL.14687
#If in TL15A configuration database actFastMimoSwitch is set to 'false' following rule need to be done during migration to TL16 dependent on the value of dlMimoMode:
#- if dlMimoMode is set to 'Closed Loop Mimo': actFastMimoSwitch shall be change from value 'false' to 'true'
#- if dlMimoMode is NOT set to 'Closed Loop Mimo', no change to the actFastMimoSwitch is required.

#NSNIDD:
#If dlMimoMode is set to ('Closed Loop Mimo' OR 'Closed Loop MIMO (4x2)' OR 'Closed Loop MIMO (4x4)' OR 'Closed Loop MIMO (8x2)' OR 'Closed Loop MIMO (8x4)') , actFastMimoSwitch must be configured to 'true'.
#If actFastMimoSwitch is set to 'true' following conditions need to be fulfilled:
#- riPerOffset must be configured to '-1'
#- riPerM must be set to '1'.

#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL actFastMimoSwitch = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actFastMimoSwitch == CONST "false" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} dlMimoMode == CONST "Closed Loop Mimo" ? CONST "GoingTrue" :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL actFastMimoSwitch = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actFastMimoSwitch == CONST "false" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} dlMimoMode == CONST "Closed Loop MIMO (4x2)" ? CONST "GoingTrue" :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL actFastMimoSwitch = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actFastMimoSwitch == CONST "false" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} dlMimoMode == CONST "Closed Loop MIMO (4x4)" ? CONST "GoingTrue" :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL actFastMimoSwitch = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actFastMimoSwitch == CONST "false" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} dlMimoMode == CONST "Closed Loop MIMO (8x2)" ? CONST "GoingTrue" :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL actFastMimoSwitch = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actFastMimoSwitch == CONST "false" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} dlMimoMode == CONST "Closed Loop MIMO (8x4)" ? CONST "GoingTrue" :

#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL riPerOffset = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actFastMimoSwitch == CONST "GoingTrue" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} riPerOffset != CONST "-1" ? CONST "-1" :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL riPerM = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actFastMimoSwitch == CONST "GoingTrue" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} riPerM != CONST 1 ? CONST 1 :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL actFastMimoSwitch = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actFastMimoSwitch == CONST "GoingTrue" ? CONST "true"

#v0.2 correction for PR083540: [TL16 FSIH][LTE2326] Error report on parameter actFastMimoSwitch and dlSectorBeamformingMode when do re-commissioning after eNB upgrade from TL15A to TL16 END

#version
set_version major TL16

#history:
add_log minor "Conversion from TL16 FB15.09 (001) to TL16 FB15.09 (003)"