####################################
## SCFD file version: 0.8         ##
## PDDB version: TLF16A_1511_002  ##
####################################

#General checking for rule file execution
check_version minor TL17
check_version minor TLF17
check_version minor TLC17

#v0.8 exit rule for 17SP
check_version minor TLF17SP
check_version minor TLC17SP
#v0.8 end


check_param minor LNBTS actPubSafetyBearers


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

################################################################################################
# LTE2060-B-n: Addition or replacement of radios without site outage -  Late Object Model Parameters adjustment for LTE2060-B-k
################################################################################################

dependence_mod_param minor LNBTS planFileActivationMode "partialServicLossAllowed" planFileActivationMode "partialServiceLossAllowed"

################################################################################################
# LTE2611-A: Introduction of public safety specific QCI bearers
################################################################################################

add_param minor LNBTS actPubSafetyBearers false

#qciTab65
add_list minor LNBTS qciTab65
add_list_item minor LNBTS qciTab65
add_list_param minor LNBTS qciTab65 0 qci 65
add_list_param minor LNBTS qciTab65 0 resType GBR
add_list_param minor LNBTS qciTab65 0 prio 7
add_list_param minor LNBTS qciTab65 0 qciSupp ENABLED
add_list_param minor LNBTS qciTab65 0 rlcMode RLC_UM
add_list_param minor LNBTS qciTab65 0 rlcProfIdx 101
add_list_param minor LNBTS qciTab65 0 pdcpProfIdx 101
add_list_param minor LNBTS qciTab65 0 dscp 46
add_list_param minor LNBTS qciTab65 0 maxGbrDl 31
add_list_param minor LNBTS qciTab65 0 maxGbrUl 31
add_list_param minor LNBTS qciTab65 0 delayTarget 60ms
add_list_param minor LNBTS qciTab65 0 schedulBSD 100ms
add_list_param minor LNBTS qciTab65 0 schedulPrio 5
add_list_param minor LNBTS qciTab65 0 lcgid 1
add_list_param minor LNBTS qciTab65 0 drxProfileIndex 2
add_list_param minor LNBTS qciTab65 0 enforceTtiBundling true


#qciTab66
add_list minor LNBTS qciTab66
add_list_item minor LNBTS qciTab66
add_list_param minor LNBTS qciTab66 0 qci 66
add_list_param minor LNBTS qciTab66 0 resType GBR
add_list_param minor LNBTS qciTab66 0 prio 20
add_list_param minor LNBTS qciTab66 0 qciSupp ENABLED
add_list_param minor LNBTS qciTab66 0 rlcMode RLC_UM
add_list_param minor LNBTS qciTab66 0 rlcProfIdx 101
add_list_param minor LNBTS qciTab66 0 pdcpProfIdx 101
add_list_param minor LNBTS qciTab66 0 dscp 46
add_list_param minor LNBTS qciTab66 0 maxGbrDl 31
add_list_param minor LNBTS qciTab66 0 maxGbrUl 31
add_list_param minor LNBTS qciTab66 0 delayTarget 80ms
add_list_param minor LNBTS qciTab66 0 schedulBSD 100ms
add_list_param minor LNBTS qciTab66 0 schedulPrio 5
add_list_param minor LNBTS qciTab66 0 lcgid 1
add_list_param minor LNBTS qciTab66 0 drxProfileIndex 2
add_list_param minor LNBTS qciTab66 0 enforceTtiBundling true

#qciTab69
add_list minor LNBTS qciTab69
add_list_item minor LNBTS qciTab69
add_list_param minor LNBTS qciTab69 0 qci 69
add_list_param minor LNBTS qciTab69 0 resType nonGBR
add_list_param minor LNBTS qciTab69 0 prio 5
add_list_param minor LNBTS qciTab69 0 qciSupp ENABLED
add_list_param minor LNBTS qciTab69 0 rlcMode RLC_AM
add_list_param minor LNBTS qciTab69 0 rlcProfIdx 1
add_list_param minor LNBTS qciTab69 0 pdcpProfIdx 1
add_list_param minor LNBTS qciTab69 0 dscp 34
add_list_param minor LNBTS qciTab69 0 schedulBSD 100ms
add_list_param minor LNBTS qciTab69 0 schedulPrio 4
add_list_param minor LNBTS qciTab69 0 lcgid 2
add_list_param minor LNBTS qciTab69 0 drxProfileIndex 3
add_list_param minor LNBTS qciTab69 0 enforceTtiBundling false

#qciTab70
add_list minor LNBTS qciTab70
add_list_item minor LNBTS qciTab70
add_list_param minor LNBTS qciTab70 0 qci 70
add_list_param minor LNBTS qciTab70 0 resType nonGBR
add_list_param minor LNBTS qciTab70 0 prio 55
add_list_param minor LNBTS qciTab70 0 qciSupp ENABLED
add_list_param minor LNBTS qciTab70 0 rlcMode RLC_AM
add_list_param minor LNBTS qciTab70 0 rlcProfIdx 2
add_list_param minor LNBTS qciTab70 0 rlcProfIdx3cc 6
#v0.6
#Macro specific
#add_list_param minor LNBTS qciTab70 0 rlcProfIdx4cc5cc 7
#v0.6 end
add_list_param minor LNBTS qciTab70 0 pdcpProfIdx 2
add_list_param minor LNBTS qciTab70 0 dscp 18
#add_list_param minor LNBTS qciTab70 0 nbrDl
#add_list_param minor LNBTS qciTab70 0 nbrUl
add_list_param minor LNBTS qciTab70 0 schedulWeight 30
add_list_param minor LNBTS qciTab70 0 schedulBSD 300ms
add_list_param minor LNBTS qciTab70 0 schedulPrio 9
add_list_param minor LNBTS qciTab70 0 lcgid 3
add_list_param minor LNBTS qciTab70 0 drxProfileIndex 3
add_list_param minor LNBTS qciTab70 0 enforceTtiBundling false

# 1511 002
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS qciTab1 * prio = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} qciTab1 ${qciTab1} prio * CONST 10
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS qciTab2 * prio = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} qciTab2 ${qciTab2} prio * CONST 10
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS qciTab3 * prio = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} qciTab3 ${qciTab3} prio * CONST 10
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS qciTab4 * prio = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} qciTab4 ${qciTab4} prio * CONST 10
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS qciTab5 * prio = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} qciTab5 ${qciTab5} prio * CONST 10
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS qciTab6 * prio = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} qciTab6 ${qciTab6} prio * CONST 10
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS qciTab7 * prio = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} qciTab7 ${qciTab7} prio * CONST 10
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS qciTab8 * prio = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} qciTab8 ${qciTab8} prio * CONST 10
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS qciTab9 * prio = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} qciTab9 ${qciTab9} prio * CONST 10
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS qciTabOperator * prio = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} qciTabOperator ${qciTabOperator} prio * CONST 10
# 1511 002 end

################################################################################################
# LTE2766:  QCI PM Counter Profiles
################################################################################################

#CFAM 4
#During migration the following parameters should have default value assigned:
#-actFlexQCIARPPMProfiles = false;
#-mtActUsersLatencyPMQAPProfile = 0;
#-mtDataVolThrPMQAPProfile = 0;
#-mtERABPMQAPProfile = 0.

add_param minor PMRNL mtActUsersLatencyPMQAPProfile 15min
add_param minor PMRNL mtDataVolThrPMQAPProfile disabled
add_param minor PMRNL mtERABPMQAPProfile disabled
add_param minor LNBTS actFlexQCIARPPMProfiles false

#Is this need?
#v0.7 PMQAP was changed optional in NIDD, addition of PMQAP and related parameters removed.
# Compatible with xL16S4_1511_004-0.1 and onwards
#add_cls minor PMRNL/PMQAP
#set_operation minor PMQAP create

#add_param minor PMQAP cfgQCI 0
#v0.7 - end

################################################################################################
# LTE1130 Dynamic PUCCH allocation  only SW part not visible for BTSSM
################################################################################################
# 1. The LTE1130 activation flag shall follow the standard migration behavior, i.e. actAutoPucchAlloc is set to 'false'.
add_param minor LNCEL actAutoPucchAlloc false

# 2. The manual PUCCH configuration parameter have to be moved to the new class MPUCCH.
#Migration of MPUCCH
#Following parameter are relocated from LNCEL to MPUCCH.
#phichDur, phichRes, maxNumRrc, maxNumRrcEmergency, addAUeRrHo, addAUeTcHo, addEmergencySessions, cellSrPeriod, ncqiRb, nPucchF3Prbs, cqiPerNp, deltaPucchShift, n1PucchAn, riEnable, riPerM, riPerOffset
#The parameter shall be copied without change of the value from LNCEL to MPUCCH, where MPUCCH shall be added in the SCF as child MO of the original LNCEL, i.e., the MPUCCH-FDN is same as the one of the LNCEL extended by "/MPUCCH-0". The parameter above listed are to be deleted finally in LNCEL.

# 2.1 add new class
add_cls minor LNCEL/MPUCCH-0
set_operation minor MPUCCH create

# 2.2 Following parameter are relocated from LNCEL to MPUCCH:
#phichDur, phichRes, maxNumRrc, maxNumRrcEmergency, addAUeRrHo, addAUeTcHo, addEmergencySessions, cellSrPeriod, ncqiRb, nPucchF3Prbs, cqiPerNp, deltaPucchShift, n1PucchAn, riEnable, riPerM, riPerOffset
#copy_param_relative S severity S sourceRDN S destinationRDN S sourceParamName S destinationParamName
copy_param_relative minor MRBTS/LNBTS/LNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/MPUCCH-0 phichDur phichDur
copy_param_relative minor MRBTS/LNBTS/LNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/MPUCCH-0 phichRes phichRes
copy_param_relative minor MRBTS/LNBTS/LNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/MPUCCH-0 maxNumRrc maxNumRrc
copy_param_relative minor MRBTS/LNBTS/LNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/MPUCCH-0 maxNumRrcEmergency maxNumRrcEmergency
copy_param_relative minor MRBTS/LNBTS/LNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/MPUCCH-0 addAUeRrHo addAUeRrHo
copy_param_relative minor MRBTS/LNBTS/LNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/MPUCCH-0 addAUeTcHo addAUeTcHo
copy_param_relative minor MRBTS/LNBTS/LNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/MPUCCH-0 addEmergencySessions addEmergencySessions
copy_param_relative minor MRBTS/LNBTS/LNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/MPUCCH-0 cellSrPeriod cellSrPeriod
copy_param_relative minor MRBTS/LNBTS/LNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/MPUCCH-0 nCqiRb nCqiRb
copy_param_relative minor MRBTS/LNBTS/LNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/MPUCCH-0 nPucchF3Prbs nPucchF3Prbs
copy_param_relative minor MRBTS/LNBTS/LNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/MPUCCH-0 cqiPerNp cqiPerNp
copy_param_relative minor MRBTS/LNBTS/LNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/MPUCCH-0 deltaPucchShift deltaPucchShift
copy_param_relative minor MRBTS/LNBTS/LNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/MPUCCH-0 n1PucchAn n1PucchAn
copy_param_relative minor MRBTS/LNBTS/LNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/MPUCCH-0 riEnable riEnable
copy_param_relative minor MRBTS/LNBTS/LNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/MPUCCH-0 riPerM riPerM
copy_param_relative minor MRBTS/LNBTS/LNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/MPUCCH-0 riPerOffset riPerOffset

# 2.3 Deletion of original parameters:
del_param minor LNCEL phichDur
del_param minor LNCEL phichRes
del_param minor LNCEL maxNumRrc
del_param minor LNCEL maxNumRrcEmergency
del_param minor LNCEL addAUeRrHo
del_param minor LNCEL addAUeTcHo
del_param minor LNCEL addEmergencySessions
del_param minor LNCEL cellSrPeriod
del_param minor LNCEL nCqiRb
del_param minor LNCEL nPucchF3Prbs
del_param minor LNCEL cqiPerNp
del_param minor LNCEL deltaPucchShift
del_param minor LNCEL n1PucchAn
del_param minor LNCEL riEnable
del_param minor LNCEL riPerM
del_param minor LNCEL riPerOffset

################################################################################################
# LTE2591-A: UE Level MRO
################################################################################################

add_param minor LNBTS actUeLevelMro false

################################################################################################
# LTE2057: Extended measurement control
################################################################################################
# OM_LTE_SFS_RNL.15209, OM_LTE_SFS_RNL.15291, OM_LTE_SFS_RNL.15408

add_param minor LNBTS actExtMeasCtrl false

add_cls minor LNCEL/IFGDPR-0
set_operation minor IFGDPR create

add_param minor IFGDPR algSelection "weighted probability randomization"
add_param minor IFGDPR groupPrio 12
add_param minor IFGDPR groupSize 0

add_cls minor LNCEL/IFGPR-0
set_operation minor IFGPR create

add_param minor IFGPR algSelection "weighted probability randomization"

dependence_add_param minor LNCEL actSixIfMeasurements "true" act3fdd3tddRestrict "true"

################################################################################################
# LTE2601: CA aware idle mode load balancing
################################################################################################

add_param minor LNBTS actIdleLBCaAware false
add_param minor MODPR idleLBPercCaUe 0
add_param minor MOPR idleLBPercCaUe 0
add_param minor LNCEL idleLBPercCaUe 0

################################################################################################
# PR077422: [FL16] LN7.0 - FL16 SW Upgrade, parameter gnssCableLength, gnssLineDelay missing when btsSyncMode is PhaseSync - parameter actGpsOutputLnaPowerSupply replaced by actGnssOutputLnaPowerSupply
################################################################################################

rename_param minor GNSSI actGpsOutputLnaPowerSupply actGnssOutputLnaPowerSupply

################################################################################################
# LTE2416: TDD Uplink 2CC carrier aggregation extension
################################################################################################
#1) Migration of the LNCEL parameter sCellTmSettingWithBf
#The parameter LNCEL-sCellTmSettingWithBf shall be deleted from all LNCEL instances where it is configured.

#!! TDD only
del_param minor LNCEL sCellTmSettingWithBf

#(2) LNCEL structure ulSpsConfig
#If the structure ulSpsConfig exist for a LNCEL instance, the new member ulSpsQci1ThroughputFactor shall be added with the default value.

#!! ulSpsQci1ThroughputFactor doesn't exist in 1511_001 NIDD

#v0.4
#Macro specific
#(3) Parameter additions IF actULCAggr is configured to 'UL_CA_with_smartSched' in TL16
#LNBTS-caUlIntraBandAmpr
#LNBTS-dlCaPreferred
#CAGENB-fastLoadBalanceConfig with its structure parameter: prbUsageRatioHighThresh, prbUsageRatioGapThresh, fastLoadBalanceMcsThresh
#All above listed parameter shall be added with their default value.
#If actULCAggr is NOT configured to 'UL_CA_with_smartSched', conditions in step (3) are NOT to be done.
# TLF - actULCAggr hidden at the GUI, set to false
#dependence_add_param minor LNBTS actULCAggr "UL_CA_with_smartSched" dlCaPreferred "DLonly"
#!! Macro specific
#dependence_add_param minor LNBTS actULCAggr "UL_CA_with_smartSched" caUlIntraBandAmpr "enabled"
#v0.5 PR104399: [FL16A] SCFC migration to Trunk - CAGENB - incorrect MOC placement
add_cls minor LNBTS/CAGENB-0
#v0.5 end
set_operation minor CAGENB create

#Macro specific
#add_list minor CAGENB fastLoadBalanceConfig
#add_list_item minor CAGENB fastLoadBalanceConfig
#add_list_param minor CAGENB fastLoadBalanceConfig 0 fastLoadBalanceMcsThresh 0
#add_list_param minor CAGENB fastLoadBalanceConfig 0 prbUsageRatioGapThresh 30
#add_list_param minor CAGENB fastLoadBalanceConfig 0 prbUsageRatioHighThresh 80
#dependence_del_target_relative minor MOC MRBTS/LNBTS/LNCEL/CAGENB ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actULCAggr != CONST "UL_CA_with_smartSched" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actDLCAggr != CONST "true"

# FZM specific
#v0.5 PR104399: [FL16A] SCFC migration to Trunk - CAGENB - incorrect MOC placement
dependence_del_target_relative minor MOC MRBTS/LNBTS/CAGENB ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actDLCAggr != CONST "true"
#v0.5 end
#v0.4 end

#Macro specific
#(4) Parameter which need to be added to the configuration with default value
#LNBTS-actInterEnbULCAggr
#CAREL-beamformingInSCellAllowed

#!! TDD only
#add_param minor LNBTS actInterEnbULCAggr false
#add_param minor CAREL beamformingInSCellAllowed allowed

################################################################################################
# PR082196: [LTE1559][TL15A P8 regression FSMF]mimimum value of sctpMaxPayloadSize 471 is incorrect
################################################################################################

check_param_value minor SCTP sctpMaxPayloadSize 512 1468

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

################################################################################################
# LTE2662 Centralized RAN TD-LTE with 1xFSIH
################################################################################################

add_param minor LNBTS actCRAN false

################################################################################################
# LTE2614-A-b: CRL9321 Radio Inerface Based Synchronization (RIBS) - Late Object Model Updates
################################################################################################
# ribsSrcCellId should be added but is "not used" in NIDD

#FZM/FZC specific
################################################################################################
# LTE2614 Radio Interface Based Synchronization for TDD Flexi Zone BTS
################################################################################################
# If the eNodeB is configured to utilize the Radio Interface Based Synchroization (RIBS) synchronization reference source through the SMOD-syncInputType parameter, this parameter is mandatory.
# If the APMOD is configured to utilize the Radio Interface Based Synchroization (RIBS) synchronization reference source through the APMOD-syncInputType parameter, this parameter is mandatory.
# For APMOD's supporting two (2) LTE carriers, the APMOD-ribsEarfcn and APMOD-ribsSrcCellId must match that of the desired RIBS source eNodeB.
# For eNodeB's supporting two (2) LTE carriers, the SMOD-ribsEarfcn and SMOD-ribsSrcCellId must match that of the desired RIBS source eNodeB.

# check if radio interface based sync is used in syncInputType
add_param minor SMOD tempRibs absent
add_param minor APMOD tempRibs absent

dependence_mod_param_conditional_expression_relative minor PARAM SMOD tempRibs = LISTPARAM MRBTS-${MRBTS}/SMOD-${SMOD} coreModuleSyncInputList 0 syncInputType == CONST "radio interface based sync" ? CONST "present" :
dependence_mod_param_conditional_expression_relative minor PARAM SMOD tempRibs = LISTPARAM MRBTS-${MRBTS}/SMOD-${SMOD} coreModuleSyncInputList 1 syncInputType == CONST "radio interface based sync" ? CONST "present" :
dependence_mod_param_conditional_expression_relative minor PARAM SMOD tempRibs = LISTPARAM MRBTS-${MRBTS}/SMOD-${SMOD} coreModuleSyncInputList 2 syncInputType == CONST "radio interface based sync" ? CONST "present" :

dependence_mod_param_conditional_expression_relative minor PARAM APMOD tempRibs = LISTPARAM MRBTS-${MRBTS}/APMOD-${APMOD} coreModuleSyncInputList 0 syncInputType == CONST "radio interface based sync" ? CONST "present" :
dependence_mod_param_conditional_expression_relative minor PARAM APMOD tempRibs = LISTPARAM MRBTS-${MRBTS}/APMOD-${APMOD} coreModuleSyncInputList 1 syncInputType == CONST "radio interface based sync" ? CONST "present" :
dependence_mod_param_conditional_expression_relative minor PARAM APMOD tempRibs = LISTPARAM MRBTS-${MRBTS}/APMOD-${APMOD} coreModuleSyncInputList 2 syncInputType == CONST "radio interface based sync" ? CONST "present" :

# add ribsSrcCellId if radio interface based sync is used
dependence_add_param minor APMOD tempRibs present ribsSrcCellId 0
dependence_add_param minor SMOD tempRibs present ribsSrcCellId 0

# del temp params
del_param minor SMOD tempRibs
del_param minor APMOD tempRibs

################################################################################################
# LTE2361: Configurable BTS login banner (radio part)
################################################################################################

add_param minor SECADM platLoginBannerText "You are about to access a private system. This system is for the use of authorized users only."

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

#history:
#FZM Replace# add_log minor "Conversion from TL16A FB15.10 (002) to TL16A FB15.11 (002)"
add_log minor "Conversion from TLF16A FB15.10 (002) to TLF16A FB15.11 (002)"