###########################################
## SCFD file version: 0.10               ##
## Release: FLF/FLC18_1711_xxx           ##
## LTE version: FLF18_RADIO_1711_xxx     ##
## LTE version: FLC18_RADIO_1711_xxx     ##
###########################################


###########
# FDD:    #
###########

#v0.10 OM_LTE_SFS_RNL.20228 updated for PR419379: [SCFD][RL18SP] Incorrect migration rules for MaxNumActDrb and MaxNumActUE values after upgrade to xL18 
####################################################################################################################
# PR294417: [SB FLF18 trunk FZM] parameter consistency check error after SW upgrade to FLF00_ENB_9999_171107_037429
####################################################################################################################
#OM_LTE_SFS_RNL.20228 Migration rules for:
#•	LNCEL_FDD-maxNumUeDl, LNCEL_FDD-maxNumUeUl, 
#•	LNCEL_FDD-maxNumCaConfUe, LNCEL_FDD-maxNumCaConfUe3c, LNCEL_FDD-maxNumCaConfUeDc, 
#•	MPUCH_FDD-addNumQci1DrbRadioReasHo, MPUCH_FDD-addNumQci1DrbTimeCriticalHo,
#•	MPUCH_FDD-maxNumRrc, MPUCH_FDD-maxNumActUE,
#•	MPUCH_FDD-maxNumActDrb, MPUCH_FDD-maxNumQci1Drb, 
#•	MPUCH_FDD-addEmergencySessions
#In case FLF/FLC configuration with 1 or 2 LNCELs per APEQM the following rules shall be applied in the following order:
#0. Initialize temporary lookup tables to be used in the next steps:
#    (max-maxNumRrc-from-the-table) := [120 480 600 720 840] when min(ulChBw, dlChBw) is 3/5/10/15/20 MHz respectively for 1 LNCELs per APEQM
#    (max-maxNumRrc-from-the-table) := [120 256 300 512 512] when min(ulChBw, dlChBw) is 3/5/10/15/20 MHz respectively for 2 LNCELs per APEQM 
#    (max-maxNumUe-from-the-table) := [3 7 8 16 16] when min(ulChBw, dlChBw) is 3/5/10/15/20 MHz respectively for 2 LNCELs per APEQM 
#1. Apply new xL18/10 MHz limit for 2 LNCEL configuration
#    addNumQci1DrbRadioReasHo = min(addNumQci1DrbRadioReasHo, 256) if 2 LNCELs per APEQM and min(ulChBw, dlChBw) = 10 MHz
#2. Apply new xL18/10 MHz limit for 2 LNCEL configuration
#    addNumQci1DrbTimeCriticalHo = min(addNumQci1DrbTimeCriticalHo, 256) if 2 LNCELs per APEQM and min(ulChBw, dlChBw) = 10 MHz
#3. Align maxNumRrc to the value calculated in step 1, so the sum of (maxNumCaConfUe + maxNumRrc) fit into new xL18 NIDD restriction:
#    maxNumRrc := min(maxNumRrc, max-maxNumRrc-from-the-table) if actAutoPucchAlloc is set to 'false'
#4. Align maxNumActDrb to follow maxNumRrc change from step 4:
#    maxNumActDrb := min(maxNumActDrb, maxNumRrc + max(addAUeRrHo, addAUeTcHo) - max(addNumDrbRadioReasHo, addNumDrbTimeCriticalHo)) if actMultBearers is set to 'false' and actAutoPucchAlloc is set to 'false'
#5. Align maxNumActDrb to follow maxNumRrc change from step 4 or lookup table limits:
#    maxNumActDrb := min(maxNumActDrb, min(3*(maxNumRrc + max(addAUeRrHo, addAUeTcHo)), 3*(max-maxNumRrc-from-the-table)) - max(addNumDrbRadioReasHo, addNumDrbTimeCriticalHo) if actMultBearers is set to 'true' and actAutoPucchAlloc is set to 'false'  
#    maxNumActDrb := min(maxNumActDrb, 3*(max-maxNumRrc-from-the-table)) otherwise                                                 
#6. Align maxNumQciDrb to follow maxNumRrc change from step 4:
#    maxNumQci1Drb := min(maxNumQci1Drb, maxNumRrc + max(addAUeRrHo, addAUeTcHo) - max(addNumQci1DrbRadioReasHo, addNumQci1DrbTimeCriticalHo))
#    if actMultBearers is set to 'true' AND actEnhAcAndGbrServices is set to 'false' AND actConvVoice is set to 'true' and actAutoPucchAlloc is set to 'false'
#6.1 Apply new xL18/10 MHz limit for 2 LNCEL configuration
#    maxNumQci1Drb = min(maxNumQci1Drb, 256) if 2 LNCELs per APEQM and min(ulChBw, dlChBw) = 10 MHz
#7. Align maxNumActUE to follow maxNumRrc and maxNumActDrb change from steps 4-6:
#    maxNumActUE := min(maxNumActUE, maxNumRrc, maxNumActDrb) if actAutoPucchAlloc is set to 'false'
#    maxNumActUE := min(maxNumActUE, max-maxNumRrc-from-the-table, maxNumActDrb) if actAutoPucchAlloc is set to 'true'
#8. Align maxNumCaConfUe to follow maxNumActUE change 
#    maxNumCaConfUe := min(maxNumCaConfUe, maxNumActUE)
#9. Align maxNumCaConfUe,  maxNumCaConfe3c, maxNumCaConfDc to follow maxNumCaConfUe change:
#    maxNumCaConfUe3c := min(maxNumCaConfUe3c, maxNumCaConfUe)
#    maxNumCaConfUeDc := min(maxNumCaConfUeDc, maxNumCaConfUe)
#10. Align to new NIDD limits for maxNumUeDl and maxNumUeUl:
#    maxNumUeDl := min(maxNumUeDl, (max-maxNumUe-from-the-table)) 
#    maxNumUeUl := min(maxNumUeUl, (max-maxNumUe-from-the-table))
#    if 2 LNCELs per APEQM is configured


#check if 1 or 2 or 3 cell configuration
#MRBTS/LNBTS/LNCEL.lcrId --> MRBTS/MNL-1/MNLENT-1,2/CELLMAPPING-1/LCELL-0-255(1-3)(100)/CHANNELGROUP-1-12/CHANNEL-1-4.antlDN --> APEQM

add_list minor APEQM cellList
add_param minor APEQM countCells 0

add_param minor CHANNEL apeqmId value
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/MNL/MNLENT/CELLMAPPING/LCELL/CHANNELGROUP/CHANNEL apeqmId = CONST 1 == CONST 1 ? PARAM MRBTS-${MRBTS}/MNL-${MNL}/MNLENT-${MNLENT}/CELLMAPPING-${CELLMAPPING}/LCELL-${LCELL}/CHANNELGROUP-${CHANNELGROUP}/CHANNEL-${CHANNEL} antlDN : 
regex_replace minor PARAM MRBTS-*/MNL-*/MNLENT-*/CELLMAPPING-*/LCELL-*/CHANNELGROUP-*/CHANNEL-* apeqmId REPLACE "/RMOD-[0-9]*/ANTL-[0-9]*" ALL ""
regex_replace minor PARAM MRBTS-*/MNL-*/MNLENT-*/CELLMAPPING-*/LCELL-*/CHANNELGROUP-*/CHANNEL-* apeqmId REPLACE "/APMOD-[0-9]*" ALL ""
regex_replace minor PARAM MRBTS-*/MNL-*/MNLENT-*/CELLMAPPING-*/LCELL-*/CHANNELGROUP-*/CHANNEL-* apeqmId REPLACE "/ANTMOD-[0-9]*" ALL ""
regex_replace minor PARAM MRBTS-*/MNL-*/MNLENT-*/CELLMAPPING-*/LCELL-*/CHANNELGROUP-*/CHANNEL-* apeqmId REPLACE "MRBTS-[0-9]*/EQM-1/APEQM-" ALL ""

add_list minor LCELL apeqmList
add_list_item minor LCELL apeqmList
add_list_param minor LCELL apeqmList * apeqmId value
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/MNL/MNLENT/CELLMAPPING/LCELL apeqmList 0 apeqmId = CONST 1 == CONST 1 ? PARAM MRBTS-${MRBTS}/MNL-${MNL}/MNLENT-${MNLENT}/CELLMAPPING-${CELLMAPPING}/LCELL-${LCELL}/CHANNELGROUP-*/CHANNEL-* apeqmId : 

dependence_add_param_based_on_MOC_instance minor APEQM apeqmInstanceId + 0
dependence_add_param_based_on_MOC_instance minor LCELL lcellInstanceId + 0
dependence_add_param_based_on_MOC_instance minor LNCEL lncelInstanceId + 0

dependence_copy_param_value_based_on_relation_matching minor PARAM MRBTS/MNL/MNLENT/CELLMAPPING/LCELL lcellInstanceId PARAM MRBTS/LNBTS/LNCEL lcrId PARAM lncelInstanceId
add_list minor LCELL cellList
add_list_item minor LCELL cellList
add_list_param minor LCELL cellList * lncelInstanceId value
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/MNL/MNLENT/CELLMAPPING/LCELL cellList 0 lncelInstanceId = CONST 1 == CONST 1 ? PARAM MRBTS-${MRBTS}/MNL-${MNL}/MNLENT-${MNLENT}/CELLMAPPING-${CELLMAPPING}/LCELL-${LCELL} lncelInstanceId : 

dependence_copy_param_value_based_on_relation_matching minor PARAM MRBTS/EQM/APEQM apeqmInstanceId LISTPARAM MRBTS/MNL/MNLENT/CELLMAPPING/LCELL apeqmList 0 apeqmId LISTPARAM cellList lncelInstanceId
add_list_param minor APEQM cellList * cell 1

dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/EQM/APEQM countCells = CONST 1 == CONST 1 ? LISTPARAM MRBTS-${MRBTS}/EQM-${EQM}/APEQM-${APEQM} cellList 0 cell : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/EQM/APEQM countCells = CONST 1 == CONST 1 ? LISTPARAM MRBTS-${MRBTS}/EQM-${EQM}/APEQM-${APEQM} cellList 1 cell + PARAM MRBTS-${MRBTS}/EQM-${EQM}/APEQM-${APEQM} countCells : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/EQM/APEQM countCells = CONST 1 == CONST 1 ? LISTPARAM MRBTS-${MRBTS}/EQM-${EQM}/APEQM-${APEQM} cellList 2 cell + PARAM MRBTS-${MRBTS}/EQM-${EQM}/APEQM-${APEQM} countCells : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/EQM/APEQM countCells = CONST 1 == CONST 1 ? LISTPARAM MRBTS-${MRBTS}/EQM-${EQM}/APEQM-${APEQM} cellList 3 cell + PARAM MRBTS-${MRBTS}/EQM-${EQM}/APEQM-${APEQM} countCells : 

dependence_copy_param_value_based_on_relation_matching minor PARAM MRBTS/LNBTS/LNCEL lncelInstanceId LISTPARAM MRBTS/EQM/APEQM cellList 0 lncelInstanceId PARAM countCells
dependence_copy_param_value_based_on_relation_matching minor PARAM MRBTS/LNBTS/LNCEL lncelInstanceId LISTPARAM MRBTS/EQM/APEQM cellList 1 lncelInstanceId PARAM countCells
dependence_copy_param_value_based_on_relation_matching minor PARAM MRBTS/LNBTS/LNCEL lncelInstanceId LISTPARAM MRBTS/EQM/APEQM cellList 2 lncelInstanceId PARAM countCells
dependence_copy_param_value_based_on_relation_matching minor PARAM MRBTS/LNBTS/LNCEL lncelInstanceId LISTPARAM MRBTS/EQM/APEQM cellList 3 lncelInstanceId PARAM countCells

del_list minor LCELL cellList
del_list minor APEQM cellList
del_param minor APEQM countCells
del_param minor LCELL lcellInstanceId
del_param minor LCELL lncelInstanceId
del_param minor LNCEL lncelInstanceId
del_param minor APEQM apeqmInstanceId
del_param minor CHANNEL apeqmId
del_list minor LCELL apeqmList


#prepare temp
#0. (max maxNumRrc from the table) := 120 480 600 720 840 when min(ulChBw, dlChBw) is 3/5/10/15/20 MHz respectively for 1 LNCELs per APEQM
#   (max maxNumRrc from the table) := 120 256 300 512 512 when min(ulChBw, dlChBw) is 3/5/10/15/20 MHz respectively for 2 LNCELs per APEQM 
#   (max maxNumUe from the table) := 3 7 8 16 16 when min(ulChBw, dlChBw) is 3/5/10/15/20 MHz respectively for 2 LNCELs per APEQM 

#The above rules are required to avoid situations as in PR294417 when attributes configured with less restrictive BTSSM/NetAct from previous releases.
add_param minor LNCEL_FDD minDlUlChBw value
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD minDlUlChBw = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} dlChBw == PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} ulChBw ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} ulChBw : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD minDlUlChBw = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} dlChBw == CONST "1.4 MHz" || PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} ulChBw == CONST "1.4 MHz" ? CONST "1.4 MHz" : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD minDlUlChBw = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "value" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} dlChBw == CONST "3 MHz" ? CONST "3 MHz" : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD minDlUlChBw = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "value" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} ulChBw == CONST "3 MHz" ? CONST "3 MHz" : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD minDlUlChBw = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "value" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} dlChBw == CONST "5 MHz" ? CONST "5 MHz" : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD minDlUlChBw = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "value" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} ulChBw == CONST "5 MHz" ? CONST "5 MHz" : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD minDlUlChBw = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "value" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} dlChBw == CONST "10 MHz" ? CONST "10 MHz" : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD minDlUlChBw = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "value" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} ulChBw == CONST "10 MHz" ? CONST "10 MHz" : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD minDlUlChBw = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "value" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} dlChBw == CONST "15 MHz" ? CONST "15 MHz" : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD minDlUlChBw = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "value" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} ulChBw == CONST "15 MHz" ? CONST "15 MHz" : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD minDlUlChBw = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "value" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} dlChBw == CONST "20 MHz" ? CONST "20 MHz" : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD minDlUlChBw = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "value" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} ulChBw == CONST "20 MHz" ? CONST "20 MHz" : 

add_param minor LNCEL_FDD maxNumRrcFromTable value 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumRrcFromTable = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "3 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells == CONST 1 ? CONST 120 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumRrcFromTable = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "5 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells == CONST 1 ? CONST 480 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumRrcFromTable = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "10 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells == CONST 1 ? CONST 600 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumRrcFromTable = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "15 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells == CONST 1 ? CONST 720 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumRrcFromTable = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "20 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells == CONST 1 ? CONST 840 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumRrcFromTable = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "3 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells >= CONST 2 ? CONST 120 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumRrcFromTable = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "5 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells >= CONST 2 ? CONST 256 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumRrcFromTable = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "10 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells >= CONST 2 ? CONST 300 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumRrcFromTable = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "15 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells >= CONST 2 ? CONST 512 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumRrcFromTable = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "20 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells >= CONST 2 ? CONST 512 : 

add_param minor LNCEL_FDD maxNumUeFromTable value
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumUeFromTable = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "3 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells >= CONST 2 ? CONST 3 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumUeFromTable = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "5 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells >= CONST 2 ? CONST 7 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumUeFromTable = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "10 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells >= CONST 2 ? CONST 8 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumUeFromTable = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "15 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells >= CONST 2 ? CONST 16 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumUeFromTable = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "20 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells >= CONST 2 ? CONST 16 : 

#max(addAUeRrHo, addAUeTcHo)
add_param minor LNCEL_FDD maxAddAUeHo value
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxAddAUeHo = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD}/MPUCCH_FDD-0 addAUeRrHo > PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD}/MPUCCH_FDD-0 addAUeTcHo ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD}/MPUCCH_FDD-0 addAUeRrHo : PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD}/MPUCCH_FDD-0 addAUeTcHo

#max(addNumDrbRadioReasHo, addNumDrbTimeCriticalHo)
add_param minor LNCEL_FDD maxAddNumDrbHo value
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxAddNumDrbHo = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} addNumDrbRadioReasHo > PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} addNumDrbTimeCriticalHo ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} addNumDrbRadioReasHo : PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} addNumDrbTimeCriticalHo

#update parameters
#    addNumQci1DrbRadioReasHo = min(addNumQci1DrbRadioReasHo, 256) if 2 LNCELs per APEQM and min(ulChBw, dlChBw) = 10 MHz
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD addNumQci1DrbRadioReasHo = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "10 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells == CONST 2 && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} addNumQci1DrbRadioReasHo > CONST 256 ? CONST 256 : 

#    addNumQci1DrbTimeCriticalHo = min(addNumQci1DrbTimeCriticalHo, 256) if 2 LNCELs per APEQM and min(ulChBw, dlChBw) = 10 MHz
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD addNumQci1DrbTimeCriticalHo = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "10 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells == CONST 2 && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} addNumQci1DrbTimeCriticalHo > CONST 256 ? CONST 256 : 

#    maxNumRrc := min(maxNumRrc, max-maxNumRrc-from-the-table) if actAutoPucchAlloc is set to 'false'
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD/MPUCCH_FDD maxNumRrc = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD}/MPUCCH_FDD-${MPUCCH_FDD} maxNumRrc > PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumRrcFromTable && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} actAutoPucchAlloc == CONST "false" ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumRrcFromTable : 

#    maxNumActDrb := min(maxNumActDrb, maxNumRrc + max(addAUeRrHo, addAUeTcHo) - max(addNumDrbRadioReasHo, addNumDrbTimeCriticalHo)) if actMultBearers is set to 'false' and actAutoPucchAlloc is set to 'false'
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumActDrb = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actMultBearers == CONST "false" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumActDrb > PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD}/MPUCCH_FDD-0 maxNumRrc + PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxAddAUeHo - PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxAddNumDrbHo && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} actAutoPucchAlloc == CONST "false" ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD}/MPUCCH_FDD-0 maxNumRrc + PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxAddAUeHo - PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxAddNumDrbHo : 

#    maxNumActDrb := min(maxNumActDrb, min(3*(maxNumRrc + max(addAUeRrHo, addAUeTcHo)), 3*(max-maxNumRrc-from-the-table)) - max(addNumDrbRadioReasHo, addNumDrbTimeCriticalHo) if actMultBearers is set to 'true' and actAutoPucchAlloc is set to 'false'  
#    maxNumActDrb := min(maxNumActDrb, 3*(max-maxNumRrc-from-the-table)) otherwise                                                 
#min(3*(maxNumRrc + max(addAUeRrHo, addAUeTcHo)), 3*(max-maxNumRrc-from-the-table))
add_param minor LNCEL_FDD minNum value
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD minNum = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD}/MPUCCH_FDD-0 maxNumRrc + PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxAddAUeHo < PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumRrcFromTable ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD}/MPUCCH_FDD-0 maxNumRrc + PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxAddAUeHo : PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumRrcFromTable
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD minNum = CONST 1 == CONST 1 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minNum * CONST 3 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumActDrb = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actMultBearers == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumActDrb > PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minNum - PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxAddNumDrbHo && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} actAutoPucchAlloc == CONST "false" ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minNum - PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxAddNumDrbHo : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumActDrb = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumActDrb > CONST 3 * PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumRrcFromTable && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} actAutoPucchAlloc == CONST "true" ? CONST 3 * PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumRrcFromTable : 

#    maxNumQci1Drb := min(maxNumQci1Drb, maxNumRrc + max(addAUeRrHo, addAUeTcHo) - max(addNumQci1DrbRadioReasHo, addNumQci1DrbTimeCriticalHo)) if actMultBearers is set to 'true' AND actEnhAcAndGbrServices is set to 'false' AND actConvVoice is set to 'true' and actAutoPucchAlloc is set to 'false'
#max(addNumQci1DrbRadioReasHo, addNumQci1DrbTimeCriticalHo)
add_param minor LNCEL_FDD maxAddNumQciDrbHo value
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxAddNumQciDrbHo = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} addNumQci1DrbRadioReasHo > PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} addNumQci1DrbTimeCriticalHo ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} addNumQci1DrbRadioReasHo : PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} addNumQci1DrbTimeCriticalHo
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumQci1Drb = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actMultBearers == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actEnhAcAndGbrServices == CONST "false" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNBTS_FDD-${LNBTS_FDD} actConvVoice == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} actAutoPucchAlloc == CONST "false" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumQci1Drb > PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD}/MPUCCH_FDD-0 maxNumRrc + PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxAddAUeHo - PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxAddNumQciDrbHo ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD}/MPUCCH_FDD-0 maxNumRrc + PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxAddAUeHo - PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxAddNumQciDrbHo : 

#    maxNumQci1Drb = min(maxNumQci1Drb, 256) if 2 LNCELs per APEQM and min(ulChBw, dlChBw) = 10 MHz
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumQci1Drb = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} minDlUlChBw == CONST "10 MHz" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells == CONST 2 && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumQci1Drb > CONST 256 ? CONST 256 : 

#    maxNumActUE := min(maxNumActUE, maxNumRrc, maxNumActDrb) if actAutoPucchAlloc is set to 'false'
#    maxNumActUE := min(maxNumActUE, max-maxNumRrc-from-the-table, maxNumActDrb) if actAutoPucchAlloc is set to 'true'
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumActUE = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumActUE > PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD}/MPUCCH_FDD-0 maxNumRrc && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} actAutoPucchAlloc == CONST "false" ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD}/MPUCCH_FDD-0 maxNumRrc : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumActUE = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumActUE > PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumRrcFromTable && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} actAutoPucchAlloc == CONST "true" ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumRrcFromTable : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumActUE = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumActUE > PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumActDrb ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumActDrb : 

#    maxNumCaConfUe := min(maxNumCaConfUe, maxNumActUE)
#    maxNumCaConfUe3c := min(maxNumCaConfUe3c, maxNumCaConfUe)
#    maxNumCaConfUeDc := min(maxNumCaConfUeDc, maxNumCaConfUe)
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumCaConfUe = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumCaConfUe > PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumActUE ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumActUE : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumCaConfUe3c = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumCaConfUe3c > PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumCaConfUe ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumCaConfUe : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumCaConfUeDc = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumCaConfUeDc > PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumCaConfUe ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumCaConfUe : 

#    maxNumUeDl := min(maxNumUeDl, (max-maxNumUe-from-the-table)) 
#    maxNumUeUl := min(maxNumUeUl, (max-maxNumUe-from-the-table))
#    if 2 LNCELs per APEQM is configured
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumUeDl = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumUeDl > PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumUeFromTable && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells == CONST 2 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumUeFromTable : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD maxNumUeUl = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumUeUl > PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumUeFromTable && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} countCells == CONST 2 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-${LNCEL_FDD} maxNumUeFromTable : 

del_param minor LNCEL countCells
del_param minor LNCEL_FDD minDlUlChBw
del_param minor LNCEL_FDD maxNumRrcFromTable
del_param minor LNCEL_FDD maxNumUeFromTable
del_param minor LNCEL_FDD maxAddAUeHo
del_param minor LNCEL_FDD maxAddNumDrbHo
del_param minor LNCEL_FDD maxAddNumQciDrbHo
del_param minor LNCEL_FDD minNum

#v0.10 end


#v0.5 PR330688: FLF18 [FZM-SmallCell] [VzW Midtown] SW upgrade Data Migration issue from FLF17 to FLF18.
#Both parameters mtRIP and mtRibsSync were added in SCFDFB1607v01.txt (FLF17) with value disabled due to NIDD requirement.
#mtRIP and mtRibsSync rule implementation is missing in FLF17 and FLF17A BTSSM
#BTSSM implemented them since FLF18, because validator change was frozen on FLF17 and FLF17A at that time.
#FLF17SP BTSSM wrongly adds mtRIP and mtRibsSync with default value 15min
#after upgrade to FLF18 BTSSM reports error

mod_param minor PMRNL mtRIP 15min disabled
mod_param minor PMRNL mtRibsSync 15min disabled
#v0.5 end



#v0.6 CAS-170913-C4N5: After SW update from FLF17A SP1 4.0 up to FL18A P8, or FL18A 1.0 we observe that the BTS operational state is stuck at BTS Commissioned – RNW Incorrect
#v0.8 PR386267: [UUF][FW2HIRB][FLF18][LAA] unlicense cell working status is "Faulty" related with uCellChannelSList and pMax parameters when configuring LAA with mcc: 302 on FLF18 build: FLF18_ENB_0000_030121_000000
#OM_LTE_SFS_RNL.22244 requirement updated
#The following lteUItuRegion attribute shall be created if missing:
#·	IF (MCC = 310..316 range) THEN lteUItuRegion = ‘USA’
#·	ELSE IF (MCC = 302) THEN lteUItuRegion = ‘Canada’
#·	ELSE lteUItuRegion = ‘ETSI’.
#v0.9 OM_LTE_SFS_RNL.22244 requirement updated - removed uCellChannelSList check

del_param minor LAA lteUItuRegion
add_param minor LAA lteUItuRegion ETSI
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNBTS_FDD/LAA lteUItuRegion = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} mcc == CONST 310 ? CONST "USA" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNBTS_FDD/LAA lteUItuRegion = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} mcc == CONST 311 ? CONST "USA" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNBTS_FDD/LAA lteUItuRegion = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} mcc == CONST 312 ? CONST "USA" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNBTS_FDD/LAA lteUItuRegion = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} mcc == CONST 313 ? CONST "USA" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNBTS_FDD/LAA lteUItuRegion = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} mcc == CONST 314 ? CONST "USA" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNBTS_FDD/LAA lteUItuRegion = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} mcc == CONST 315 ? CONST "USA" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNBTS_FDD/LAA lteUItuRegion = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} mcc == CONST 316 ? CONST "USA" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNBTS_FDD/LAA lteUItuRegion = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} mcc == CONST 302 ? CONST "Canada" :

#v0.9 end
#v0.8 end
#v0.6 end




#history:
add_log minor "Conversion from FLF/FLC17A or FLF/FLC16A to FLF/FLC18"