##########################################
## SCFD file version: 0.2               ##
## Release: FLF/FLC19_1811_002          ##
## LTE version: FLF19_RADIO_1811_002    ##
## LTE version: FLC19_RADIO_1811_002    ##
##########################################





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

####################################################################################################################
# PR371198: [BTSSM] rules for actAcBarringRrcConn are not validated properly
####################################################################################################################
#OM_LTE_SFS_RNL.22139
#If LNBTS parameter actAcBarringRrcConn is not set to 'None', execute all of the following steps for all ACBPR instances:
#1. If acBarSigAutoMax is not configured in the ACBPR instance then keep the configuration of this ACBPR instance as it was defined in the previous release.
#	If acBarSigAutoMax is configured, check if acBarSigAutoMin is configured:
#- If acBarSigAutoMin is configured then keep the configuration of this ACBPR instance as it was defined in the previous release. 
#- If acBarSigAutoMin is not configured then configure acBarSigAutoMin in this ACBPR instance with its member parameters: probFac and barTime.
#		acBarSigAutoMin-probFac shall be set to the same value as acBarSigAutoMax-probFac in the same ACBPR instance.
#		acBarSigAutoMin-barTime shall be set to the same value as acBarSigAutoMax-barTime in the same ACBPR instance.
#2. If acBarOcAutoMax is not configured in the ACBPR instance then keep the configuration of this ACBPR instance as it was defined in the previous release.
#	If acBarOcAutoMax is configured, check if acBarOcAutoMin is configured:
#- If acBarOcAutoMin is configured then keep the configuration of this ACBPR instance as it was defined in the previous release. 
#- If acBarOcAutoMin is not configured then configure acBarOcAutoMin in this ACBPR instance with its member parameters: probFac and barTime.
#		acBarOcAutoMin-probFac shall be set to the same value as acBarOcAutoMax-probFac in the same ACBPR instance.
#		acBarOcAutoMin-barTime shall be set to the same value as acBarOcAutoMax-barTime in the same ACBPR instance.
#3. If acBarMMTelVoiceOcAutoMax is not configured in the ACBPR instance then keep the configuration of this ACBPR instance as it was defined in the previous release.
#	If acBarMMTelVoiceOcAutoMax is configured, check if acBarMMTelVoiceOcAutoMin is configured:
#- If acBarMMTelVoiceOcAutoMin is configured then keep the configuration of this ACBPR instance as it was defined in the previous release. 
#- If acBarMMTelVoiceOcAutoMin is not configured then configure acBarMMTelVoiceOcAutoMin in this ACBPR instance with its member parameters: probFac and barTime.
#		acBarMMTelVoiceOcAutoMin-probFac shall be set to the same value as acBarMMTelVoiceOcAutoMax-probFac in the same ACBPR instance.
#		acBarMMTelVoiceOcAutoMin-barTime shall be set to the same value as acBarMMTelVoiceOcAutoMax-barTime in the same ACBPR instance.
#4. If acBarMMTelVideoOcAutoMax is not configured in the ACBPR instance then keep the configuration of this ACBPR instance as it was defined in the previous release.
#	If acBarMMTelVideoOcAutoMax is configured, check if acBarMMTelVideoOcAutoMin is configured:
#- If acBarMMTelVideoOcAutoMin is configured then keep the configuration of this ACBPR instance as it was defined in the previous release. 
#- If acBarMMTelVideoOcAutoMin is not configured then configure acBarMMTelVideoOcAutoMin in this ACBPR instance with its member parameters: probFac and barTime.
#		acBarMMTelVideoOcAutoMin-probFac shall be set to the same value as acBarMMTelVideoOcAutoMax-probFac in the same ACBPR instance.
#		acBarMMTelVideoOcAutoMin-barTime shall be set to the same value as acBarMMTelVideoOcAutoMax-barTime in the same ACBPR instance.
#5. If acBarCsfbOcAutoMax is not configured in the ACBPR instance then keep the configuration of this ACBPR instance as it was defined in the previous release.
#	If acBarCsfbOcAutoMax is configured, check if acBarCsfbOcAutoMin is configured:
#- If acBarCsfbOcAutoMin is configured then keep the configuration of this ACBPR instance as it was defined in the previous release. 
#- If acBarCsfbOcAutoMin is not configured then configure acBarCsfbOcAutoMin in this ACBPR instance with its member parameters: probFac and barTime.
#		acBarCsfbOcAutoMin-probFac shall be set to the same value as acBarCsfbOcAutoMax-probFac in the same ACBPR instance.
#		acBarCsfbOcAutoMin-barTime shall be set to the same value as acBarCsfbOcAutoMax-barTime in the same ACBPR instance.
#Rationale: consistency checks are in place to force the operator to configure the acBar...AutoMin structure with its members if in the same ACBPR instance the acBar...AutoMax structure is configured
#and LNBTS parameter actAcBarringRrcConn is not set to 'None'. With PR371198 an inconsistency was corrected and the consistency checks shall be fulfilled even if the ACBPR instance is not referenced by any LNCEL instance.
#To fulfill these consistency checks, during migration the values of the parameters in acBar...AutoMin shall be set to the same values as the matching parameters in acBar...AutoMax (probFac, barTime).

add_list minor ACBPR tempList
add_list_item minor ACBPR tempList
add_list_param minor ACBPR tempList 0 probFac tempValue
add_list_param minor ACBPR tempList 0 barTime tempValue
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/ACBPR tempList 0 probFac = CONST 0 == CONST 0 ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarSigAutoMax 0 probFac : 
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/ACBPR tempList 0 barTime = CONST 0 == CONST 0 ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarSigAutoMax 0 barTime : 
dependence_del_target_relative minor LIST MRBTS/LNBTS/ACBPR tempList ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempList 0 probFac == CONST "tempValue"
dependence_del_target_relative minor LIST MRBTS/LNBTS/ACBPR tempList ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actAcBarringRrcConn == CONST "None"
rename_list minor ACBPR tempList acBarSigAutoMin
del_list minor ACBPR tempList

add_list minor ACBPR tempList
add_list_item minor ACBPR tempList
add_list_param minor ACBPR tempList 0 probFac tempValue
add_list_param minor ACBPR tempList 0 barTime tempValue
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/ACBPR tempList 0 probFac = CONST 0 == CONST 0 ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarOcAutoMax 0 probFac : 
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/ACBPR tempList 0 barTime = CONST 0 == CONST 0 ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarOcAutoMax 0 barTime : 
dependence_del_target_relative minor LIST MRBTS/LNBTS/ACBPR tempList ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempList 0 probFac == CONST "tempValue"
dependence_del_target_relative minor LIST MRBTS/LNBTS/ACBPR tempList ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actAcBarringRrcConn == CONST "None"
rename_list minor ACBPR tempList acBarOcAutoMin
del_list minor ACBPR tempList

add_list minor ACBPR tempList
add_list_item minor ACBPR tempList
add_list_param minor ACBPR tempList 0 probFac tempValue
add_list_param minor ACBPR tempList 0 barTime tempValue
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/ACBPR tempList 0 probFac = CONST 0 == CONST 0 ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarMMTelVoiceOcAutoMax 0 probFac : 
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/ACBPR tempList 0 barTime = CONST 0 == CONST 0 ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarMMTelVoiceOcAutoMax 0 barTime : 
dependence_del_target_relative minor LIST MRBTS/LNBTS/ACBPR tempList ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempList 0 probFac == CONST "tempValue"
dependence_del_target_relative minor LIST MRBTS/LNBTS/ACBPR tempList ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actAcBarringRrcConn == CONST "None"
rename_list minor ACBPR tempList acBarMMTelVoiceOcAutoMin
del_list minor ACBPR tempList

add_list minor ACBPR tempList
add_list_item minor ACBPR tempList
add_list_param minor ACBPR tempList 0 probFac tempValue
add_list_param minor ACBPR tempList 0 barTime tempValue
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/ACBPR tempList 0 probFac = CONST 0 == CONST 0 ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarMMTelVideoOcAutoMax 0 probFac : 
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/ACBPR tempList 0 barTime = CONST 0 == CONST 0 ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarMMTelVideoOcAutoMax 0 barTime : 
dependence_del_target_relative minor LIST MRBTS/LNBTS/ACBPR tempList ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempList 0 probFac == CONST "tempValue"
dependence_del_target_relative minor LIST MRBTS/LNBTS/ACBPR tempList ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actAcBarringRrcConn == CONST "None"
rename_list minor ACBPR tempList acBarMMTelVideoOcAutoMin
del_list minor ACBPR tempList

add_list minor ACBPR tempList
add_list_item minor ACBPR tempList
add_list_param minor ACBPR tempList 0 probFac tempValue
add_list_param minor ACBPR tempList 0 barTime tempValue
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/ACBPR tempList 0 probFac = CONST 0 == CONST 0 ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarCsfbOcAutoMax 0 probFac : 
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/ACBPR tempList 0 barTime = CONST 0 == CONST 0 ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarCsfbOcAutoMax 0 barTime : 
dependence_del_target_relative minor LIST MRBTS/LNBTS/ACBPR tempList ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempList 0 probFac == CONST "tempValue"
dependence_del_target_relative minor LIST MRBTS/LNBTS/ACBPR tempList ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actAcBarringRrcConn == CONST "None"
rename_list minor ACBPR tempList acBarCsfbOcAutoMin
del_list minor ACBPR tempList



####################################################################################################################
# PR367546-PR351658 [LTE4066] NIDD update on Range and Step for ilGrantGapTcpBoostTxSkip etc.
# LTE4066 Low Latency Fast UL Grants
####################################################################################################################
#OM_LTE_SFS_RNL.22159
#Migration of parameter value range/step changes from xL18A to xL19:
#1. 
#For ilReacTimerUl in LNCEL,
#New ilReacTimerUl = (ceiling) (old ilReacTimerUl / 10) * 10
#Rationale: With PR383321, ilReacTimerUl value range keeps as 0...2000 ms, but value step changes from 5ms to 10ms, so if it is a value of ones digit of 5, it will be rounded up. e.g. 5 becomes 10, 15 becomes 20.
#2. 
#For voLteProactUlGrantNonTtibTxSkip in LNCEL,
#New voLteProactUlGrantNonTtibTxSkip value = min ((ceiling) (old voLteProactUlGrantNonTtibTxSkip / 10) * 10, 1000ms)
#Rationale: With PR383321, voLteProactUlGrantNonTtibTxSkip value range changes from 0...2000 ms to 0...1000 ms, and value step changes from 1 ms to 10ms, default value changes from 10 to 0,
#so if it is a value of great than 1000, it will be 1000 ceil limited; if it is a value of less than 1000, it will be rounded up for any value of ones digit of none-zero. e.g. 11 becomes 20.

dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL ilReacTimerUl = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} ilReacTimerUl + CONST 5 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL ilReacTimerUl = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} ilReacTimerUl / CONST 10 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL ilReacTimerUl = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} ilReacTimerUl * CONST 10 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL voLteProactUlGrantNonTtibTxSkip = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} voLteProactUlGrantNonTtibTxSkip + CONST 9 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL voLteProactUlGrantNonTtibTxSkip = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} voLteProactUlGrantNonTtibTxSkip / CONST 10 : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL voLteProactUlGrantNonTtibTxSkip = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} voLteProactUlGrantNonTtibTxSkip * CONST 10 : 
check_param_value minor LNCEL voLteProactUlGrantNonTtibTxSkip 0 1000


#v0.2 add migration for maxNumUeProactiveUl
#OM_LTE_SFS_RNL.21259
#If actProactSchedBySrb is set to 'true' and cellTechnology is not set to 'NB-IoT-FDD', the following is fulfilled:
#- maxNumUeProactiveUl must be configured, migration default value 10;
#- maxNumUeProactiveUlNonTxSkip must be configured, migration default value 10;

dependence_add_param minor LNCEL actProactSchedBySrb true maxNumUeProactiveUl 10
dependence_add_param minor LNCEL actProactSchedBySrb true maxNumUeProactiveUlNonTxSkip 10

dependence_del_param minor LNCEL cellTechnology NB-IoT-FDD maxNumUeProactiveUl
dependence_del_param minor LNCEL cellTechnology NB-IoT-FDD maxNumUeProactiveUlNonTxSkip
#v0.2 end



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





#history:
add_log minor "Conversion from FLF/FLC19_RADIO_1811_001 to FLF/FLC19_RADIO_1811_002"