###########################################
## SCFD file version: 0.6                ##
## Release: FLF/FLC18_1711_003           ##
## LTE version: FLF18_RADIO_1711_003     ##
## LTE version: FLC18_RADIO_1711_003     ##
###########################################





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

################################################
# 23.11.2017 ML: CRL21116 Configurable HO timers
# new mandatory param: LNBTS-tHoOverallD,  LNBTS-tS1RelOvDeltG, LNBTS-tS1RelOvDeltU, LNBTS-tx2RelODelta
# OM_LTE_SFS_RNL.20219
################################################
add_param minor LNBTS tHoOverallD "20"
add_param minor LNBTS tS1RelOvDeltG "1000"
add_param minor LNBTS tS1RelOvDeltU "1000"
add_param minor LNBTS tx2RelODelta "150"

add_param minor LNBTS tempCondition false
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS tempCondition = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} mcc == CONST 310 && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} mnc == CONST 260 ? CONST "true" :
dependence_mod_param minor LNBTS tempCondition true tHoOverallD 2500
dependence_mod_param minor LNBTS tempCondition true tS1RelOvDeltG 4000
dependence_mod_param minor LNBTS tempCondition true tS1RelOvDeltU 4000
dependence_mod_param minor LNBTS tempCondition true tx2RelODelta 2500
del_param minor LNBTS tempCondition



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

################################################
# 27.11.2017 ML: CAS-77154-F3D9 {FL17A NPI] Legacy LTE user RRCConnectionReEstablishment volume increased dramatically when CATM feature was enabled
# OM_LTE_SFS_RNL.20221
################################################
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL raPreGrASize = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-0 actCatM == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_FDD-0 ulChBw == CONST "5 MHz" ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} raNondedPreamb :



#v0.4 OM_LTE_SFS_RNL.20653 is impacted by change of OM_LTE_SFS_RNL.20655
################################################
# LTE4475 NB-IoT Multiple Coverage levels
# new mandatory param: NBIOT_FDD-tCellDelNB,  NBIOTPR-tL2AckRrcRelNB NBIOT_FDD-nprachConfigIndex
# new optional param: NBIOT_FDD-maxNumRrcNBCL1,  NBIOT_FDD-maxNumRrcNBCL2,  NBIOTPR-pagAttMaxCovNB
#v0.3 OM_LTE_SFS_RNL.20653 replaced old OM_LTE_SFS_RNL.19495
#The new mandatory parameters: - NBIOTPR-tL2AckRrcRelNB- NBIOT_FDD-tCellDelNB- NBIOT_FDD-nprachConfigIndex must be initialized with the default value.
# (1) For each NB-IoT cell (cellTechnology= NB-IoT-FDD),
# (1.1) check PLMN-IDs and NBIOT_FDD-numCoverageLevels:
#   - if PLMN-IDs belongs to "RNL.20655 PLMN-IDs table" and NBIOT_FDD-numCoverageLevels is set to '2',
#     then set NBIOT_FDD-nprachConfigIndex to '2-1'.
#v0.5 CAS-183331-L5M6: FL18 2.1 C Missing default value for NB-IoT parameters after upgrade to FL18
#     [CAS-183331-L5M6] then add NBIOT_FDD-maxNumRrcNBCL1 and set to default value if it does not exist.
#     [CAS-183331-L5M6] and if npdcchMaxNumRepPag < cssProfNBRobCov-npdcchMaxNumRepRa, then set npdcchMaxNumRepPag to the value of cssProfNBRobCov-npdcchMaxNumRepRa
#   - if PLMN-IDs belongs to "RNL.20655 PLMN-IDs table" and NBIOT_FDD-numCoverageLevels is set to '3',
#     then set NBIOT_FDD-nprachConfigIndex to '3-2'.
#     [CAS-183331-L5M6] then add NBIOT_FDD-maxNumRrcNBCL1 and maxNumRrcNBCL2 and set to default value if they don't exist
#     [CAS-183331-L5M6] and if npdcchMaxNumRepPag < cssProfNBExtCov-npdcchMaxNumRepRa, then set npdcchMaxNumRepPag to the value of cssProfNBExtCov-npdcchMaxNumRepRa
#   - if PLMN-IDs does not belong to "RNL.20655 PLMN-IDs table" and NBIOT_FDD-numCoverageLevels is set to '2' or '3',
#     then set NBIOT_FDD-numCoverageLevels  to '1'.
# (1.2) check NBIOT_FDD-startingCovLevelPagingOptNB: 
# - if NBIOT_FDD-startingCovLevelPagingOptNB is set to 'disable', then delete NBIOT_FDD-startingCovLevelPagingOptNB.
# - if NBIOT_FDD-startingCovLevelPagingOptNB is set 'First level', then set NBIOT_FDD-startingCovLevelPagingOptNB to 'Coverage Level 0'.
# (2) For each NBIOTPR profile,
# (2.1) check 
#       - NBIOTPR-nprachProfNBNorCov-nprachStartTime,
#       - NBIOTPR-nprachProfNBNorCov-nprachPeriod, 
#       - NBIOTPR-nprachProfNBNorCov-nprachNumRepPreamble 
#   parameters and their relationship:
# - if "nprachProfNBNorCov-nprachPeriod" < ( "nprachProfNBNorCov-nprachStartTime" + (6.4ms * "nprachProfNBNorCov-nprachNumRepPreamble") + (40ms * "nprachProfNBNorCov-nprachNumRepPreamble"/64))
#   then set NBIOTPR-nprachProfNBNorCov-nprachStartTime to 8ms.
################################################
add_param minor NBIOT_FDD tCellDelNB "100"
add_param minor NBIOTPR tL2AckRrcRelNB "300"
add_param minor NBIOT_FDD nprachConfigIndex "Manual Configuration"

add_param minor LNBTS tempPLMN temp
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS tempPLMN = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} mcc JOIN CONST "-" JOIN PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} mnc :

add_param minor LNBTS tempVFIT false
dependence_mod_param minor LNBTS tempPLMN 404-27 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 404-5 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 404-1 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 404-15 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 404-60 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 404-46 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 404-84 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 404-86 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 404-88 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 404-11 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 404-13 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 404-15 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 404-20 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 404-30 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 404-43 tempVFIT true

dependence_mod_param minor LNBTS tempPLMN 405-66 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 405-67 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 405-750 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 405-751 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 405-752 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 405-753 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 405-754 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 405-755 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 405-756 tempVFIT true

dependence_mod_param minor LNBTS tempPLMN 655-1 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 222-10 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 222-6 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 640-4 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 276-2 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 278-1 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 234-27 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 234-91 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 234-15 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 530-1 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 530-4 tempVFIT true
dependence_mod_param minor LNBTS tempPLMN 639-2 tempVFIT true

dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/NBIOT_FDD nprachConfigIndex = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/NBIOT_FDD-${NBIOT_FDD} numCoverageLevels == CONST 2 && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempVFIT == CONST "true" ? CONST "Pre-defined pattern 2-1" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/NBIOT_FDD nprachConfigIndex = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/NBIOT_FDD-${NBIOT_FDD} numCoverageLevels == CONST 3 && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempVFIT == CONST "true" ? CONST "Pre-defined pattern 3-1" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/NBIOT_FDD numCoverageLevels = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempVFIT == CONST "false" ? CONST 1 :

#v0.5
dependence_add_param minor NBIOT_FDD numCoverageLevels 2 maxNumRrcNBCL1 temp
dependence_add_param minor NBIOT_FDD numCoverageLevels 3 maxNumRrcNBCL1 temp
dependence_add_param minor NBIOT_FDD numCoverageLevels 3 maxNumRrcNBCL2 temp
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/NBIOT_FDD maxNumRrcNBCL1 = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/NBIOT_FDD-${NBIOT_FDD} maxNumRrcNBCL1 == CONST "temp" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempVFIT == CONST "true" ? CONST 10 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/NBIOT_FDD maxNumRrcNBCL2 = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/NBIOT_FDD-${NBIOT_FDD} maxNumRrcNBCL2 == CONST "temp" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempVFIT == CONST "true" ? CONST 4 :

#v0.6 CAS-183331-L5M6: Update for new error npdcchMaxNumRepPag
dependence_add_param_based_on_MOC_instance minor NBIOTPR tempNBPrId + 0
dependence_copy_param_value_based_on_relation_matching minor PARAM MRBTS/LNBTS/NBIOTPR tempNBPrId PARAM MRBTS/LNBTS/LNCEL/NBIOT_FDD nbIoTProfId PARAM numCoverageLevels
copy_param minor NBIOTPR NBIOTPR npdcchMaxNumRepPag tempRepPag
regex_replace minor PARAM MRBTS-*/LNBTS-*/NBIOTPR-* tempRepPag REPLACE "r" ALL ""
add_list_param minor NBIOTPR cssProfNBExtCov 0 tempRepPag temp
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/NBIOTPR cssProfNBExtCov * tempRepPag = CONST 0 == CONST 0 ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} cssProfNBExtCov ${cssProfNBExtCov} npdcchMaxNumRepRa :
regex_replace minor LISTPARAM MRBTS-*/LNBTS-*/NBIOTPR-* cssProfNBExtCov * tempRepPag REPLACE "r" ALL ""
add_list_param minor NBIOTPR cssProfNBRobCov 0 tempRepPag temp
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/NBIOTPR cssProfNBRobCov * tempRepPag = CONST 0 == CONST 0 ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} cssProfNBRobCov ${cssProfNBRobCov} npdcchMaxNumRepRa :
regex_replace minor LISTPARAM MRBTS-*/LNBTS-*/NBIOTPR-* cssProfNBRobCov * tempRepPag REPLACE "r" ALL ""

dependence_del_target_relative minor PARAM MRBTS/LNBTS/NBIOTPR tempRepPag ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} tempVFIT == CONST "false"
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/NBIOTPR npdcchMaxNumRepPag = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} numCoverageLevels == CONST 2 && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} tempRepPag < LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} cssProfNBRobCov 0 tempRepPag ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} cssProfNBRobCov 0 npdcchMaxNumRepRa :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/NBIOTPR npdcchMaxNumRepPag = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} numCoverageLevels == CONST 3 && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} tempRepPag < LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} cssProfNBExtCov 0 tempRepPag ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} cssProfNBExtCov 0 npdcchMaxNumRepRa :

del_param minor NBIOTPR tempNBPrId
del_param minor NBIOTPR numCoverageLevels
del_param minor NBIOTPR tempRepPag
del_list_param minor NBIOTPR cssProfNBRobCov tempRepPag
del_list_param minor NBIOTPR cssProfNBExtCov tempRepPag
#v0.6 end

dependence_del_param minor NBIOT_FDD maxNumRrcNBCL1 temp maxNumRrcNBCL1
dependence_del_param minor NBIOT_FDD maxNumRrcNBCL2 temp maxNumRrcNBCL2
#v0.5 end
del_param minor LNBTS tempPLMN
del_param minor LNBTS tempVFIT
#v0.4 end

dependence_mod_param minor NBIOT_FDD startingCovLevelPagingOptNB "First level" startingCovLevelPagingOptNB "Coverage Level 0"
dependence_del_param minor NBIOT_FDD startingCovLevelPagingOptNB Disabled startingCovLevelPagingOptNB

add_param minor NBIOTPR tempValue1 temp
add_param minor NBIOTPR tempValue2 temp
add_param minor NBIOTPR tempValue3 temp
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/NBIOTPR tempValue1 = CONST 0 == CONST 0 ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} nprachProfNBNorCov 0 nprachStartTime * CONST 10 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/NBIOTPR tempValue2 = CONST 0 == CONST 0 ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} nprachProfNBNorCov 0 nprachNumRepPreamble * CONST 64 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/NBIOTPR tempValue3 = CONST 0 == CONST 0 ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} nprachProfNBNorCov 0 nprachNumRepPreamble * CONST 400 / CONST 64 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/NBIOTPR tempValue1 = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} tempValue1 + PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} tempValue2 + PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} tempValue3 :
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/NBIOTPR nprachProfNBNorCov 0 nprachStartTime = LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} nprachProfNBNorCov 0 nprachPeriod * CONST 10 < PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/NBIOTPR-${NBIOTPR} tempValue1 ? CONST "8ms" :

del_param minor NBIOTPR tempValue1
del_param minor NBIOTPR tempValue2
del_param minor NBIOTPR tempValue3


del_param minor NBIOT_FDD maxCrPgDlNB




#history:
add_log minor "Conversion from FLF/FLC18_RADIO_1711_002 to FLF/FLC18_RADIO_1711_003"