####################################
## SCFD file version: 0.8         ##
## PDDB version: FL15A_1410_003   ##
####################################

#General checking for rule file execution
#version 0.3 - exit rule updated
#check_version minor FLF15A
check_version minor FLF16
#end of v0.3

# v0.8
check_version minor FLC16
# v0.8 end

check_param minor LNCEL a2RedirectQci1


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

#v0.2
##############################################################################################################################
#Changes for PDDB 15A_1410_003:

# Added: LNCEL a2RedirectQci1 default: enabled
add_param minor LNCEL a2RedirectQci1 enabled

# Added: LNCEL	threshold2C2kConfig.threshold2C2kQci1  default: -110 dBm  / UI_value + 140 
add_list_param minor MBSFN mchInfo 0 mchShedulingPeriod 30

#end of v0.2
##############################################################################################################################

#v0.6: correction for PR122996ESPE04 // Correction added with more adjustments
#v0.5: correction for PR122996ESPE04 // reverted due to not suitable migration.
#v0.4: correction for PR122996ESPE04
##############################################################################################################################
#maxNumActUE + max(addEmergencySessions, addAUeRrHo, addAUeTcHo) value should be lesser/equals to upper bandwidth limit;
#The condition is only checked during validation if actCompChecks is set to 'true'

# 1. Add temps
add_param minor LNCEL tempCalculation 0
add_param minor LNCEL tempActHighRrcMax 0
add_param minor LNCEL tempLimit 0
add_param minor LNCEL tempAdjust 0

# 2. Find out the maximum of (addEmergencySessions, addAUeRrHo, addAUeTcHo)
function_relative minor PARAM MRBTS/LNBTS/LNCEL tempActHighRrcMax = max "" ( PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} addEmergencySessions PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} addAUeRrHo PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} addAUeTcHo )

# 3. Calculate tempCalculation = [maxNumActUE +  tempActHighRrcMax] 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempCalculation = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempCalculation == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempActHighRrcMax + PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} maxNumActUE :

# 4. Adjust tempLimit according to dlshBw
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempLimit = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} dlChBw == CONST "1.4 MHz" ? CONST 40 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempLimit = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} dlChBw == CONST "3 MHz" ? CONST 120 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempLimit = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} dlChBw == CONST "5 MHz" ? CONST 480 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempLimit = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} dlChBw == CONST "10 MHz" ? CONST 600 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempLimit = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} dlChBw == CONST "15 MHz" ? CONST 720 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempLimit = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} dlChBw == CONST "20 MHz" ? CONST 840 :

# if actFlexBbUsage set to 'true' and min(ulChBw,dlChBw) has value '5 MHz' or '10 MHz', maxNumActUE value range is restricted to 0...420
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempLimit = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actFlexBbUsage == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} dlChBw == CONST "5 MHz" ? CONST 420 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempLimit = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actFlexBbUsage == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} dlChBw == CONST "10 MHz" ? CONST 420 :
# 5. If tempCalculation > tempLimit, calcuate difference: tempAdjust = tempCalculation - tempLimit. 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempAdjust = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempCalculation > PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempLimit ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempCalculation - PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempLimit :

# 6. If actCompChecks=true && acthihghRrc=false && tempAdjust is less than maxNumActUE (to ensure maxNumActUE will not be out of range), then adjust maxNumActUE = maxNumActUE - tempAdjust
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL maxNumActUE = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actCompChecks == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actHighRrc == CONST "false" &&  PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempAdjust < PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} maxNumActUE ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} maxNumActUE - PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempAdjust :

# 7. Delete temps
#v0.7, remove temps
del_param minor LNCEL tempCalculation
del_param minor LNCEL tempActHighRrcMax
del_param minor LNCEL tempLimit
del_param minor LNCEL tempAdjust
#end of v0.7
#end of v0.4
##############################################################################################################################
#end of v0.5
#end of v0.6

#version
set_version major FLF15A

#history:
add_log minor "Correction conversion from LNF8.0 FB14.10 to FLF15A FB14.10"