##########################################
## SCFD file version: 0.2               ##
## Release: FLF20C_2007_003             ##
## LTE version: FLF20C_RADIO_2007_003   ##
##########################################

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


#Migration rules for LTE5567-D / CNI-27544
#
#It is a customer requirement, that the configuration of the eNB is not allowed to be changed during SW upgrade and migration. 
#This customer requirement is also fixed in the Object Modelling Guidelines, see:
#https://nokia.sharepoint.com/:p:/r/sites/ArchitectureandSpecification/_layouts/15/Doc.aspx?sourcedoc=%7B2F6ED7C4-520A-46F4-9D9D-15884CC45BA2%7D&file=Object%20Modelling%20Guidelines.pptx&action=edit&mobileredirect=true
#
#Reason for this requirement is that the operators want to compare the SW quality and KPI values of the new SW load with the previous SW load. 
#In order to be able to do appropriate comparison, the configuration of the eNB is not allowed to be changed during SW upgrade.
#It is also not allowed to automatically activate licensed features.
#
#However, CNI-27544 forces us to automatically change several configuration parameters and to activate several functionalities and features during SW upgrade/migration. Reason is that the MAC PS SW shall be simplified.
#      This kind of parameter reconfiguration is requested not only for ABIN/ABIO, but in general independent on the underlying HW.
#This request is confirmed and supported by Product Management. In case of any customer complaints please contact Product Management and MAC PS SW team.
#SFS RNL O&M team was not involved in the CNI evaluation.
#
#CNI-27544 / LTE5567-D requests the following functions respectively parameters to be activated:
#- LNCEL-enableAmcPdcch
#- LNCEL-enablePcPdcch
#- LNCEL-actOlLaPdcch
#- LNCEL-dlOlqcEnable
#- LNCEL-dlamcEnable
#
#In detail, CNI-27544 / LTE5567-D requests to implement the following migration rules in 20C:
#
#Step (1): Acivate Outer loop Link Adaptation for PDCCH (LTE1035 Outer loop link adaptation):
#If LNCEL-actOlLaPdcch is set to 'false' the following shall be executed:
#      - LNCEL-actOlLaPdcch shall be set to 'true'.
#      - If LNCEL-pdcchHarqTargetBler does not exist, it shall be configured and set to '1'.
#      - If LNCEL-cellTechnology is 'FDD' or 'TDD':
#                    - If LNCEL-pdcchCqiShift does not exist, it shall be configured and set to '-5'.
#                    - If LNCEL-pdcchCqiShift4Tx does not exist, it shall be configured and set to '0'.
#                    - If LNCEL-actPdcchQci1SrbControl is set to 'true' then 
#                           LNCEL-minPdcchCqiShiftQci1 must be configured and shall be set to '-10'.
#                           LNCEL-maxPdcchCqiShiftQci1 must be configured and shall be set to '10'.
#
#Step (2): Enable downlink Outer loop Link Quality Control (LTE31 Link adaptation by AMC (UL/DL)):
#If LNCEL-dlOlqcEnable is set to 'false' the following shall be executed:
#       - LNCEL-dlOlqcEnable shall be set to 'true'.
#       - If LNCEL-dlTargetBler does not exist:
#                     - If LNCEL-qci1BlerTgtConfig.qci1DlTargetBler exists, then set LNCEL-dlTargetBler to qci1BlerTgtConfig.qci1DlTargetBler
#                       else set LNCEL-dlTargetBler to '10'.
#
#Step (3): Enable downlink Adaptive Modulation and Coding (LTE31 Link adaptation by AMC (UL/DL):
#If LNCEL-dlamcEnable is set to 'false' the following shall be executed:
#       - LNCEL-dlamcEnable shall be set to 'true'.
#
#Step (4): Enable Channel Quality Indicator (CQI) based Adaptive Modulation and Coding (AMC) for PDCCH link adaption (LTE749 Link adaptation of PDCCH):
#If LNCEL-enableAmcPdcch is set to 'false' the following shall be executed:
#       - LNCEL-enableAmcPdcch shall be set to 'true'.
#
#Step (5): Enable power control on PDCCH (LTE749 Link adaptation for PDCCH):
#If LNCEL-enablePcPdcch is set to 'false' the following shall be executed:
#       - LNCEL-enablePcPdcch shall be set to 'true'.

add_param minor LNCEL actOlLaPdcch true
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL  actOlLaPdcch = CONST 1 == CONST 1 ? CONST "true" :
add_param minor LNCEL pdcchHarqTargetBler 10
dependence_add_param minor LNCEL cellTechnology FDD pdcchCqiShift -50
dependence_add_param minor LNCEL cellTechnology TDD pdcchCqiShift -50
dependence_add_param minor LNCEL cellTechnology FDD pdcchCqiShift4Tx 0
dependence_add_param minor LNCEL cellTechnology TDD pdcchCqiShift4Tx 0
add_param minor LNCEL tmpJudgeParameter false
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tmpJudgeParameter = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} cellTechnology  == CONST "FDD" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actPdcchQci1SrbControl == CONST "true" ? CONST "true" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tmpJudgeParameter = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} cellTechnology  == CONST "TDD" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actPdcchQci1SrbControl == CONST "true" ? CONST "true" :
dependence_add_param minor LNCEL tmpJudgeParameter true minPdcchCqiShiftQci1 -100
dependence_add_param minor LNCEL tmpJudgeParameter true maxPdcchCqiShiftQci1 100
del_param minor LNCEL tmpJudgeParameter

add_param minor LNCEL dlOlqcEnable true
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL  dlOlqcEnable = CONST 1 == CONST 1 ? CONST "true" :
add_param minor LNCEL dlTargetBler 100
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL  dlTargetBler = CONST 1 == CONST 1 ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} qci1BlerTgtConfig 0 qci1DlTargetBler :

add_param minor LNCEL dlamcEnable true
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL  dlamcEnable = CONST 1 == CONST 1 ? CONST "true" :

add_param minor LNCEL enableAmcPdcch true
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL  enableAmcPdcch = CONST 1 == CONST 1 ? CONST "true" :

add_param minor LNCEL enablePcPdcch true
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL  enablePcPdcch = CONST 1 == CONST 1 ? CONST "true" :

#history:
add_log minor "Conversion from FLF20C_RADIO_2007_002 to FLF20C_RADIO_2007_003"
