###########################################
## SCFD file version: 0.9                ##
## Release: FLF/FLC18A_1805_002          ##
## LTE version: FLF18A_RADIO_1805_002    ##
## LTE version: FLC18A_RADIO_1805_002    ##
###########################################





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


####################################################################################################################
# LTE4064 256QAM Enhancements 
####################################################################################################################
#LNCEL iniDl256QamChQualEst must be configured if LNBTS actDl256QamChQualEst is set to 'true'
#v0.2 actDl256QamChQualEst in LNCEL not in LNBTS
dependence_add_param minor LNCEL actDl256QamChQualEst true iniDl256QamChQualEst 1s
#v0.2 end





####################################################################################################################
# LTE2996-A PLMN specific access class barring
####################################################################################################################
#OM_LTE_SFS_RNL.18340
#The following new mandatory parameter must be initialized with its default value: LNBTS-actAcBarringPlmn
add_param minor LNBTS actAcBarringPlmn false


#OM_LTE_SFS_RNL.18342
#Migration of the SIB parameters acBarSkipForMMTELVideo, acBarSkipForMMTELVoice and acBarSkipForSMS to ACBPR
#Note: Following legacy mandatory parameters shall be moved from MOC SIB to ACBPR:
#- acBarSkipForMMTELVideo (Skip Indicator for mobile originating MMTEL video)	   
#- acBarSkipForMMTELVoice (Skip Indicator for mobile originating MMTEL voice)   
#- acBarSkipForSMS (Skip Indicator for mobile originating SMSoIP or SMS)
#Following migration steps shall be executed during migration in order to migrate 3 legacy SIB parameters to ACBPR.
#As the optional parameters are moved to profiles, it has to be checked if there is already a profile linked to the cell or a new profile might need to be created.
#It might happen that the parameter values of the 3 parameters to be moved are changed during the migration, in order to keep the number of ACB profiles limited. 
#Due to an existing consistency check also the parameter SIB-acbSkipTimer might be changed during SW upgrade.
#The customer shall check and adapt the parameter values after the SW upgrade to the desired values. This information shall be added to the relevant Customer Document.
#Execute following steps 1 to 3 for the first cell in the eNB:
#Step 1.	Check if any of SIB- acBarSkipForMMTELVideo, SIB- acBarSkipForMMTELVoice or SIB-acBarSkipForSMS is configured. 
#1.a. If yes, then go to step 2. 
#1.b. If no, then go to the next cell and start again with step 1. 
#Step 2.	Check if there is a parameter SIB- acbProfileId configured in the LNCEL. 
#2.a. If SIB-acbProfileId is configured in the LNCEL, then identify the relevant ACBPR instance, i.e. look for the ACBPR instance where LNBTS-ACBPR-acbPrId is equal to LNCEL-SIB-acbProfileId.
#	  If ACBPR-acBarSkipForMMTELVideo, ACBPR-acBarSkipForMMTELVoice and ACBPR-acBarSkipForSMS are already configured in this ACB profile, then go to step 2.c.
#	  If they are not configured, create the 3 new parameters ACBPR-acBarSkipForMMTELVideo, ACBPR-acBarSkipForMMTELVoice and ACBPR-acBarSkipForSMS in this ACBPR instance with the same values configured
#	  as in SIB- acBarSkipForMMTELVideo, SIB- acBarSkipForMMTELVoice and SIB-acBarSkipForSMS. Then go to step 2.c.
#2.b. If SIB-acbProfileId is NOT configured in the LNCEL, then check if there is already an ACBPR instance configured, where acBarSkipForMMTELVideo, ACBPR-acBarSkipForMMTELVoice and ACBPR-acBarSkipForSMS are configured to the same values as in the SIB instance of the cell in scope.
#	  If the values match and there is no further parameter configured in the ACBPR then configure SIB-acbProfileId to be equal to the matching ACBPR instance (i.e. LNBTS-ACBPR-acbPrId).
#	  If there is no matching ACBPR instance, create a new ACBPR instance with a new, not used ID if the maximum number 48 of ACBPR instances hasn’t been reached yet.
#	  (If the maximum number 48 of ACBPR instances have been reached, then go to step 2.c.)
#	  Create the 3 new parameters ACBPR-acBarSkipForMMTELVideo, ACBPR-acBarSkipForMMTELVoice and ACBPR-acBarSkipForSMS in this ACBPR instance with the same values configured
#	  as in SIB- acBarSkipForMMTELVideo, SIB- acBarSkipForMMTELVoice and SIB-acBarSkipForSMS.
#	  Configure SIB-acbProfileId to be equal to the newly created matching ACBPR instance (i.e. LNBTS-ACBPR-acbPrId).Then go to step 2.c. 
#2.c. Delete the 3 legacy parameters SIB- acBarSkipForMMTELVideo, SIB- acBarSkipForMMTELVoice and SIB-acBarSkipForSMS.
#Step 3.	Check if SIB-acbSkipTimer is configured. If it is configured, check if in the mapped ACBPR instance (where LNBTS-ACBPR-acbPrId is equal to LNCEL-SIB-acbProfileId) any of following values are configured to true:
#			acBarSkipForMMTELVideo, ACBPR-acBarSkipForMMTELVoice and ACBPR-acBarSkipForSMS. If not, or if there is no mapped ACBPR instance, then remove SIB-acbSkipTimer.
#Step 4. Check if SIB-acbECTimer is configured. If it is configured, check if in the mapped ACBPR instance (where LNBTS-ACBPR-acbPrId is equal to LNCEL-SIB-acbProfileId) eCallAcBarredAuto is present and is configured to 'barred'. If it is not present, add it with value 'barred', if it is present and configured to another value, set it to 'barred'.
#Go to the next cell and continue with step 1.

#v0.8 PR397308: Change in ACBPR object parameter values after FL17A to FL18A upgrade
#v0.9 ACBPR adding correction
#check SIB-acBarSkipForMMTELVideo, SIB-acBarSkipForMMTELVoice and SIB-acBarSkipForSMS
add_param minor SIB acbProfileId "n"
dependence_add_param minor SIB acbProfileId n tempKey temp
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempKey = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acBarSkipForMMTELVideo :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempKey = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempKey JOIN PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acBarSkipForMMTELVoice :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempKey = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempKey JOIN PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acBarSkipForSMS :
dependence_del_target_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempKey ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempKey == CONST "temp"


#take ACBPR content and move to SIB
add_param minor ACBPR tempACBPRcontent ""
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} eCallAcBarredStatic : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRcontent JOIN PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} eCallAcBarredAuto : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRcontent JOIN LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarSigStatic 0 barTime : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRcontent JOIN LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarSigAutoMin 0 barTime : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRcontent JOIN LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarSigAutoMax 0 barTime : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRcontent JOIN LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarOcStatic 0 barTime : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRcontent JOIN LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarOcAutoMin 0 barTime : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRcontent JOIN LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarOcAutoMax 0 barTime : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRcontent JOIN LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarMMTelVoiceOcStatic 0 barTime : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRcontent JOIN LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarMMTelVoiceOcAutoMin 0 barTime : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRcontent JOIN LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarMMTelVoiceOcAutoMax 0 barTime : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRcontent JOIN LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarMMTelVideoOcStatic 0 barTime : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRcontent JOIN LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarMMTelVideoOcAutoMin 0 barTime : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRcontent JOIN LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarMMTelVideoOcAutoMax 0 barTime : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRcontent JOIN LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarCsfbOcStatic 0 barTime : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRcontent JOIN LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarCsfbOcAutoMin 0 barTime : 
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR tempACBPRcontent = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRcontent JOIN LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} acBarCsfbOcAutoMax 0 barTime : 

dependence_add_param_based_on_MOC_instance minor ACBPR tempACBPRid + 0
dependence_copy_param_value_based_on_relation_matching minor PARAM MRBTS/LNBTS/LNCEL/SIB acbProfileId PARAM MRBTS/LNBTS/ACBPR tempACBPRid PARAM tempACBPRcontent
del_param minor ACBPR tempACBPRcontent
del_param minor ACBPR tempACBPRid

add_param minor SIB tempKey1 ""
dependence_del_target_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempKey1 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId == CONST "n"
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempKey1 = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId != CONST "n" ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acBarSkipForMMTELVideo :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempKey1 = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId != CONST "n" ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempKey1 JOIN PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acBarSkipForMMTELVoice :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempKey1 = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId != CONST "n" ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempKey1 JOIN PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acBarSkipForSMS :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempKey1 = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId != CONST "n" ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempKey1 JOIN PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempACBPRcontent :
del_param minor SIB tempACBPRcontent


#set acbProfileId to matching ACBPR
copy_param_relative minor MRBTS/LNBTS/LNCEL/SIB MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId tempAcbProfileId
dependence_del_target_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempAcbProfileId ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId == CONST "n"
dependence_copy_param_value_based_on_relation_matching minor PARAM MRBTS/LNBTS/LNCEL/SIB tempKey PARAM MRBTS/LNBTS/LNCEL/SIB tempKey1 PARAM tempAcbProfileId
dependence_del_target_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempAcbProfileId ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId != CONST "n"
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB acbProfileId = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId == CONST "n" ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempAcbProfileId : 
del_param minor SIB tempAcbProfileId
del_param minor SIB tempKey1


#create needed ACBPR instances
dependence_del_target_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempKey ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId != CONST "n"
copy_param_to_array_param_relative minor MRBTS/LNBTS/LNCEL/SIB tempKey MRBTS-${MRBTS} tempKeyList

add_param minor ACBPR tempACBPRid 1000
dependence_add_obj_with_next_free_instance minor scalarList MRBTS MRBTS/LNBTS/ACBPR tempKeyList - - -
set_operation minor ACBPR create
set_adaptation minor ACBPR NOKLTE
dependence_add_param_based_on_MOC_instance minor ACBPR tempACBPRid + 0
dependence_del_param minor ACBPR tempACBPRid 1000 tempACBPRid
dependence_del_target_relative minor MOC MRBTS/LNBTS/ACBPR ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/ACBPR-${ACBPR} tempACBPRid > CONST 47


#match SIB to new ACBPR
copy_param_to_array_param_relative minor MRBTS/LNBTS/ACBPR tempACBPRid MRBTS-${MRBTS} newACBPRIdList

dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB acbProfileId = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId == CONST "n" && LISTVALUE MRBTS-${MRBTS} tempKeyList 0 == PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempKey ? LISTVALUE MRBTS-${MRBTS} newACBPRIdList 0 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB acbProfileId = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId == CONST "n" && LISTVALUE MRBTS-${MRBTS} tempKeyList 1 == PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempKey ? LISTVALUE MRBTS-${MRBTS} newACBPRIdList 1 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB acbProfileId = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId == CONST "n" && LISTVALUE MRBTS-${MRBTS} tempKeyList 2 == PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempKey ? LISTVALUE MRBTS-${MRBTS} newACBPRIdList 2 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB acbProfileId = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId == CONST "n" && LISTVALUE MRBTS-${MRBTS} tempKeyList 3 == PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempKey ? LISTVALUE MRBTS-${MRBTS} newACBPRIdList 3 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB acbProfileId = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId == CONST "n" && LISTVALUE MRBTS-${MRBTS} tempKeyList 4 == PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempKey ? LISTVALUE MRBTS-${MRBTS} newACBPRIdList 4 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB acbProfileId = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId == CONST "n" && LISTVALUE MRBTS-${MRBTS} tempKeyList 5 == PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempKey ? LISTVALUE MRBTS-${MRBTS} newACBPRIdList 5 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB acbProfileId = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId == CONST "n" && LISTVALUE MRBTS-${MRBTS} tempKeyList 6 == PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempKey ? LISTVALUE MRBTS-${MRBTS} newACBPRIdList 6 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB acbProfileId = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId == CONST "n" && LISTVALUE MRBTS-${MRBTS} tempKeyList 7 == PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempKey ? LISTVALUE MRBTS-${MRBTS} newACBPRIdList 7 :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB acbProfileId = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acbProfileId == CONST "n" && LISTVALUE MRBTS-${MRBTS} tempKeyList 8 == PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempKey ? LISTVALUE MRBTS-${MRBTS} newACBPRIdList 8 :


#move and add needed parameters
dependence_add_param_based_on_MOC_instance minor ACBPR tempACBPRid + 0
dependence_copy_param_value_based_on_relation_matching minor PARAM MRBTS/LNBTS/ACBPR tempACBPRid PARAM MRBTS/LNBTS/LNCEL/SIB acbProfileId PARAM acBarSkipForMMTELVideo
dependence_copy_param_value_based_on_relation_matching minor PARAM MRBTS/LNBTS/ACBPR tempACBPRid PARAM MRBTS/LNBTS/LNCEL/SIB acbProfileId PARAM acBarSkipForMMTELVoice
dependence_copy_param_value_based_on_relation_matching minor PARAM MRBTS/LNBTS/ACBPR tempACBPRid PARAM MRBTS/LNBTS/LNCEL/SIB acbProfileId PARAM acBarSkipForSMS

add_param minor ACBPR acBarSkipForMMTELVideo "false"
add_param minor ACBPR acBarSkipForMMTELVoice "false"
add_param minor ACBPR acBarSkipForSMS "false"


#remove acbSkipTimer
add_param minor SIB tempRemoveSibAcbSkipTimerFlag false
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempRemoveSibAcbSkipTimerFlag = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acBarSkipForMMTELVideo == CONST "true" || PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acBarSkipForMMTELVoice == CONST "true" || PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} acBarSkipForSMS == CONST "true" ? CONST "false" : CONST "true"
dependence_del_param minor SIB tempRemoveSibAcbSkipTimerFlag "true" acbSkipTimer


#set acbECTimer
dependence_copy_param_value_based_on_relation_matching minor PARAM MRBTS/LNBTS/ACBPR tempACBPRid PARAM MRBTS/LNBTS/LNCEL/SIB acbProfileId PARAM acbECTimer
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/ACBPR acbECTimer = CONST 0 == CONST 0 ? CONST "true" :
dependence_add_param minor ACBPR acbECTimer true eCallAcBarredAuto barred
dependence_mod_param minor ACBPR acbECTimer true eCallAcBarredAuto barred


#cleanup
dependence_del_param minor SIB acbProfileId "n" acbProfileId
del_param minor SIB acBarSkipForMMTELVideo
del_param minor SIB acBarSkipForMMTELVoice
del_param minor SIB acBarSkipForSMS
del_param minor ACBPR tempACBPRid
del_param minor ACBPR acbECTimer
del_param minor SIB tempRemoveSibAcbSkipTimerFlag
del_param minor SIB tempKey
del_list minor MRBTS tempKeyList
del_list minor MRBTS newACBPRIdList
#v0.9 end
#v0.8 end




#OM_LTE_SFS_RNL.19502
#Migration of 2 new mandatory ACBPR parameters
#The following new mandatory parameters must be initialized with their default values in all ACBPR instances:
#ACBPR-cellResHoBlockPlmnAcbMax
#ACBPR-emerHoBlockPlmnAcbMax
add_param minor ACBPR cellResHoBlockPlmnAcbMax false
add_param minor ACBPR emerHoBlockPlmnAcbMax false





####################################################################################################################
# LTE4162 3 SA NB-IoT carriers with special duplexing gap
####################################################################################################################
#OM_LTE_SFS_RNL.21041
#The new mandatory parameters:  LNBTS-actSpecDupGapNB must be initialized with the default value.

add_param minor LNBTS actSpecDupGapNB false





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

####################################################################################################################
# LTE3561-B Cat-M1: Coverage Extension with CEModeB
####################################################################################################################
#v0.3 updated requirement
#OM_LTE_SFS_RNL.20570
#For each existing structure catMCELevel1 under instance of MOC CATMPR, the following new mandatory parameter shall be initialized as:
# - CATMPR – catMCELevel1->mpdcchRepLevPagCatM shall set to the value of the parameter CATMPR - mpdcchRepLevPagCatM
# - CATMPR – catMCELevel1->pdschRepLevPagCatM shall set to the value of the parameter CATMPR - pdschRepLevPagCatM
#For each existing MOC CATMCEL, the new optional parameter CATMCEL- startingCovLevelPagingOptCatM must be initialized to '0:Coverage Level 0', if parameter CATMPR-pagAreaScopeCheckCatM is configured in it's refered CATMPR profile.

add_list_param minor CATMBPR catMCELevel2 * mpdcchRepLevPagCatM "n3"
add_list_param minor CATMBPR catMCELevel2 * pdschRepLevPagCatM "n3"
add_list_param minor CATMBPR catMCELevel3 * mpdcchRepLevPagCatM "n4"
add_list_param minor CATMBPR catMCELevel3 * pdschRepLevPagCatM "n1"
add_param minor CATMBPR defaultPagCeModeBCatM "n64"
add_param minor CATMBPR pagCEModePrioCatM "all equal"
add_list_param minor CATMPR catMCELevel1 * mpdcchRepLevPagCatM "n2"
add_list_param minor CATMPR catMCELevel1 * pdschRepLevPagCatM "n1"
 
dependence_add_param_based_on_MOC_instance minor CATMPR catmprInstanceId + 0

dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/CATMPR catMCELevel1 * mpdcchRepLevPagCatM = CONST "1" == CONST "1" ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CATMPR-${CATMPR} mpdcchRepLevPagCatM : 
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/CATMPR catMCELevel1 * pdschRepLevPagCatM = CONST "1" == CONST "1" ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CATMPR-${CATMPR} pdschRepLevPagCatM : 

dependence_copy_param_value_based_on_relation_matching minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_FDD catMProfId PARAM MRBTS/LNBTS/CATMPR catmprInstanceId PARAM pagAreaScopeCheckCatM
#v0.7 PR372628: Migration error after SU from FL18SP_ENB_453_000043 to FL18A_ENB_0000_000002_000030
copy_param_relative minor MRBTS/LNBTS/LNCEL/LNCEL_FDD MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/CATMCEL-0 pagAreaScopeCheckCatM pagAreaScopeCheckCatM
dependence_add_param minor CATMCEL pagAreaScopeCheckCatM true startingCovLevelPagingOptCatM "Coverage Level 0"
dependence_add_param minor CATMCEL pagAreaScopeCheckCatM false startingCovLevelPagingOptCatM "Coverage Level 0"
del_param minor CATMCEL pagAreaScopeCheckCatM
del_param minor LNCEL_FDD pagAreaScopeCheckCatM
#v0.7 end
del_param minor CATMPR catmprInstanceId
#v0.3 end







#history:
add_log minor "Conversion from FLF/FLC18A_RADIO_1805_001 to FLF/FLC18A_RADIO_1805_002"