####################################
## SCFD file version: 0.2         ##
## PDDB version: FL15A_1502_001   ##
####################################

#General checking for rule file execution
check_version minor FL16
check_version minor FLF16

# v0.2
check_version minor FLC16
# v0.2 end

check_param minor LNBTS actUplaneOvlHandling

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

################################################################################################
# LTE951-H CRL4122 Enhanced Cell ID addons
################################################################################################
# CFAM, No migration impacts, exists by compare

add_param minor LNCEL tempactLPPaEcid "unknown"
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempactLPPaEcid = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actLPPaEcid == CONST "true" ? CONST "true" : CONST "false"
dependence_add_param minor LNCEL tempactLPPaEcid true ecidMeasSupervisionTimer 3000

del_param minor LNCEL tempactLPPaEcid

################################################################################################
# LTE2023-A User plane overload handling
################################################################################################
#

#actUplaneOvlHandling
add_param minor LNBTS actUplaneOvlHandling false

#Migration rules for actInHORed in structure cpovlha
#If the already existing parameter actInHORed in structure ovlha is configured in RL70, following rules apply during migration from RL70 to FL15A :
#- The new parameter enableInHORed shall be created with the following value in the structure cpovlha:
#If actInHORed was configured to 'true' in RL70, enableInHORed shall be configured to 'OVL1andL2' in FL15A.
#If actInHORed was configured to 'false' in RL70, enableInHORed shall be configured to 'none' in FL15A.
#- The parameter actInHORed shall be deleted from structure ovlha.

#!! Note: <=FL15A FB15.01 "If actCplaneOvlHandling is set to 'true' the structure ovlha must be configured"
#!! So, there is no need seprate check/adding for "cpovlha must exist if actCplaneOvlHandling is set to 'true'"

move_list_param_to_param minor MRBTS/LNBTS MRBTS/LNBTS ovlha 0 actInHORed tempactInHORed
add_list minor LNBTS cpovlha
add_list_item minor LNBTS cpovlha
dependence_del_list_if_keyparam_is_missing minor MRBTS/LNBTS tempactInHORed cpovlha
add_list_param minor LNBTS cpovlha 0 enableInHoRed OVL1andL2
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS cpovlha * enableInHoRed = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempactInHORed == CONST "true" ? CONST "OVL1andL2" : CONST "none"
add_list_param minor LNBTS cpovlha 0 enableRrcConnRed OVL1andL2
del_list minor LNBTS ovlha
del_param minor LNBTS tempactInHORed

################################################################################################
# LTE2051 CRL4125 Measurement based Idle Mode Load Balancing - parent
################################################################################################

add_param minor LNBTS actMeasBasedIMLB false
add_param minor PMRNL mtEutraFrequency "15min"

################################################################################################
# LTE2133-A CRL4584 eICIC for HetNet eNode B configurations
################################################################################################

#cannot be configured by migration
#add_param minor LNCEL tempcellType unknown
#add_param minor LNCEL tempcreateeIcicPartnerEcgi unknown
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempcellType = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} cellType == CONST "medium" || PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} cellType == CONST "small" || PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} cellType == CONST "verysmall" ? CONST "mediumorsmallorverysmall" : CONST "somethingelse"
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempcreateeIcicPartnerEcgi = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actEicic == CONST true && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempcellType == CONST "mediumorsmallorverysmall" ? CONST "create" : CONST "donotcreate"
#add_list minor LNCEL eIcicPartnerEcgi
#add_list_item minor LNCEL eIcicPartnerEcgi
#add_list_param minor LNBTS eIcicPartnerEcgi 0 mncLength
#add_list_param minor LNBTS eIcicPartnerEcgi 0 mnc
#add_list_param minor LNBTS eIcicPartnerEcgi 0 mcc
#add_list_param minor LNBTS eIcicPartnerEcgi 0 lcrId
#add_list_param minor LNBTS eIcicPartnerEcgi 0 enbId
#dependence_del_target_relative minor LIST MRBTS/LNBTS/LNCEL eIcicPartnerEcgie ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempcreateeIcicPartnerEcgi != CONST "create"

#del_param minor LNCEL tempcellType
#del_param minor LNCEL tempcreateeIcicPartnerEcgi

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

################################################################################################
# LTE825-A Uplink outer region scheduling - parent
# LTE825-A-a Uplink outer region scheduling - PUSCH Scheduling in Outer PUSCH Regin & PRACH in Outer Regin
# LTE825-A-b Uplink outer region scheduling - Automatic SRS configuration
################################################################################################
#!! NOT IN FB15.02 version 1

#New O&M parameter selectOuterPuschRegion shall be included with default value of 'None'.

#add_param minor LNCEL selectOuterPuschRegion "None"

#Migration of the LNCEL parameter srsConfiguration
#The LNCEL parameter srsConfiguration is removed in FL16. After introduction of the new parameter srsActivation during migration, the parameter srsConfiguration
# needs to be removed from all LNCEL objects in the configuration file. For further details see the requirement 'Introduction of the new LNCEL parameter srsActivation'.
#Introduction of the new LNCEL parameter srsActivation
#In FL16 a new mandatory LNCEL parameter srsActivation is introduced. Several consistency checks are defined for srsActivation that need to be taken into account for setting the right value of the parameter srsActivation.
#srsActivation must be created for all LNCEL objects and following parameter values shall be set:
#-	srsActivation must be set to 'true' if in FL15A ulsSchedMethod is set to 'channel aware' and actPuschMask is set to 'false'.
#- srsActivation must be set to 'true' if in FL15A actPuschMask is set to 'false', UlSchMethod is set to 'channel unaware' or 'interference aware', 
#  actUlLnkAdp is set to 'fUlLa' and srsConfiguration is configured.
#  Note: srsActivation will be set to 'false' in FL16, if in FL15A actPuschMask is set to 'true', UlSchMethod is set to 'channel unaware' or 'interference aware',
#       actUlLnkAdp is set to 'fUlLa' and srsConfiguration is configured. 
#  The reason is that SRS has to be disabled when the PUSCH mask is configured. It is not allowed to send any signals in the masked PUSCH area.	
#- srsActivation must be set to 'false' in all of the following cases:
#   o if in FL15A actPuschMask is set to 'true'
#   o if in FL15A ulChBw is set to '1.4 MHz' or '3 MHz'
#   o if in FL15A ulsSchedMethod is set to ('interference aware' or 'channel unaware') AND actUlLnkAdp is not set to 'fUlLa'.																			
#If ulsSchedMethod is set to ('interference aware' or 'channel unaware') AND actUlLnkAdp is set to 'fUlLa' AND srsActivation is set to 'true', then srsPwrOffset
#shall be created with its default value, if not yet created. If srsPwrOffset is already configured, it shouldnt be changed during the migration. In all other cases
#default value shall be set.

#add_param minor LNCEL srsActivation false
#add_param minor LNCEL tempulsSchedMethod default
#add_param minor LNCEL tempsrsConfiguration paramnotexists
#add_param minor LNCEL tempsrsPwrOffset donotaddparam

#!! srsActivation = ulsSchedMethod == CONST "channel aware" && actPuschMask == CONST "false" ? CONST "true" :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL srsActivation = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} ulsSchedMethod == CONST "channel aware" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actPuschMask == CONST "false" ? CONST "true" :
#!! tempulsSchedMethod = ulsSchedMethod == CONST "channel unaware" || ulsSchedMethod == CONST "interference aware" ? CONST "channel unaware or interference aware" :
#!! tempsrsConfiguration = srsConfiguration =! CONST 999 ? CONST "paramexists" :
#!! srsActivation = actPuschMask == CONST "false" && tempulsSchedMethod == CONST "channel unaware or interference aware" && actUlLnkAdp == CONST "fUlLa" && tempsrsConfiguration == CONST "paramexists" ? CONST "true" :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempulsSchedMethod = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} ulsSchedMethod == CONST "channel unaware" || PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} ulsSchedMethod == CONST "interference aware" ? CONST "channel unaware or interference aware" :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempsrsConfiguration = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} srsConfiguration != CONST 999 ? CONST "paramexists" :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL srsActivation = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actPuschMask == CONST "false" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempulsSchedMethod == CONST "channel unaware or interference aware" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actUlLnkAdp == CONST "fUlLa" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempsrsConfiguration == CONST "paramexists" ? CONST "true" :
#!!
#dependence_mod_param minor LNCEL ulChBw "1.4 MHz" srsActivation "false"
#dependence_mod_param minor LNCEL ulChBw "3 MHz" srsActivation "false"
#!! srsActivation = tempulsSchedMethod == CONST "channel unaware or interference aware" && actUlLnkAdp =! CONST "fUlLa" ? CONST "false" :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL srsActivation = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempulsSchedMethod == CONST "channel unaware or interference aware" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actUlLnkAdp =! CONST "fUlLa" ? CONST "false" :
#!! tempsrsPwrOffset = tempulsSchedMethod == CONST "channel unaware or interference aware" && actUlLnkAdp == CONST "fUlLa" && srsActivation == CONST "true" ? CONST "addparam" :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempsrsPwrOffset = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempulsSchedMethod == CONST "channel unaware or interference aware" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actUlLnkAdp == CONST "fUlLa" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} srsActivation == CONST "true" ? CONST "addparam" :
#dependence_add_param minor LNCEL tempsrsPwrOffset "addparam" srsPwrOffset 7

#del_param minor LNCEL srsConfiguration

#del_param minor LNCEL tempulsSchedMethod
#del_param minor LNCEL tempsrsConfiguration
#del_param minor LNCEL tempsrsPwrOffset

################################################################################################
# LTE1709-B CRL4898 Liquid Cell, subset B
################################################################################################
#!! NOT IN FB15.02 version 1

#Added Parameters for LTE1709-B:
#LNCEL-liquidCellConfigInfo structure is enlarged to include also:
#csiRsPwrOffsetAP
#uLMeasThrJtCsiRs
#uLMeasThrSuMuCsiRs  
#uLMeasHystJT
#uLMeasHystSuMu
#uLMeasN
#uLMeasAlphaBase
#liquidCellSuMuMode
#They have to be set when actLiquidCell = true, apart from that no other relationships to other parameters exist

#add_list_param minor LNCEL liquidCellConfigInfo * csiRsPwrOffsetAP 0
#add_list_param minor LNCEL liquidCellConfigInfo * uLMeasThrJtCsiRs 30
#add_list_param minor LNCEL liquidCellConfigInfo * uLMeasThrSuMuCsiRs 60
#add_list_param minor LNCEL liquidCellConfigInfo * uLMeasHystJT 30
#add_list_param minor LNCEL liquidCellConfigInfo * uLMeasHystSuMu 30
#add_list_param minor LNCEL liquidCellConfigInfo * uLMeasN 75
#add_list_param minor LNCEL liquidCellConfigInfo * uLMeasAlphaBase 13
#add_list_param minor LNCEL liquidCellConfigInfo * liquidCellSuMuMode "SingleUserMultiUser"

################################################################################################
# LTE2149 CRL4053 Supplemental downlink carrier
################################################################################################

# 1. MaxNumRrc / PR 150225ESPE02 replace existing content in PDDB with: ?????
# 2. MaxNumRrc
#----------------------------
#[LTE2149, modified to include actSdlc condition:]
#(4.1) applicable for deltaPucchShift=1 AND actSdlc is set to 'false' AND 
#(4.1.1) ... srsConfiguration is configured to any value		/*SRS support*/
# - maxNumRrc + max (addAUeRrHo,addAUeTcHo) <=  n1PucchAn * cellSrPeriod  6*cellSrPeriod/5*n1PucchAn/36
#(4.1.2) ... srsConfiguration is NOT configured			/*no SRS support*/
#- maxNumRrc + max (addAUeRrHo,addAUeTcHo) <=  n1PucchAn * cellSrPeriod 
#(4.2) applicable for deltaPucchShift<>1  AND actSdlc is set to 'false' 
# - maxNumRrc + max (addAUeRrHo,addAUeTcHo) <=  n1PucchAn * cellSrPeriod 
#-----------------------------

#add_param minor LNCEL tempsrsConfiguration paramnotexists

#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL tempsrsConfiguration = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} srsConfiguration != CONST 999 ? CONST "paramexists" :
#dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL maxNumRrc = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actCompChecks == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} actSdlc == CONST "false" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} deltaPucchShift == CONST 1 && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempsrsConfiguration == CONST "paramexists" ? :

#del_param minor LNCEL tempsrsConfiguration


# 3. MaxNumRrcEmergency / PR 150225ESPE02 replace existing content in PDDB with: ?????
# 4. MaxNumRrcEmergency
# ----------------------------
# [LTE2149, modified to include actSdlc condition:]
# (4.1) applicable for deltaPucchShift=1 AND actSdlc is set to 'false' AND 
# (4.1.1) ... srsConfiguration is configured to any value		/*SRS support*/
#  - maxNumRrcEmergency <=  n1PucchAn * cellSrPeriod  6*cellSrPeriod/5*n1PucchAn/36
# (4.1.2) ... srsConfiguration is NOT configured			/*no SRS support*/
# - maxNumRrcEmergency <=  n1PucchAn * cellSrPeriod 
# (4.2) applicable for deltaPucchShift<>1  AND actSdlc is set to 'false' 
#  - maxNumRrcEmergency <=  n1PucchAn * cellSrPeriod 
# -----------------------------

#version
#FZM Replace# set_version major FL15A
set_version major FLF15A

#history:
#FZM Replace# add_log minor "Conversion from FL15A FB15.01 to FL15A FB15.02"
add_log minor "Conversion from FLF15A FB15.01 to FLF15A FB15.02"