################################################
## SCFD file version: 0.2                     ##
## PDDB version: TLF17SP_RADIO_1612_001       ##
## PDDB version: TLC17SP_RADIO_1612_001       ##
## PDDB version: MNL17SP_FZM_1612_001_0.0.xml ##
## PDDB version: MNL17SP_FZC_1612_001_0.0.xml ##
## PDDB version: MRBTS17_1610_003_0.0.xml     ##
## PDDB version: EQM17SP_FZM_1612_001_0.0.xml ##
## PDDB version: EQM17SP_FZC_1612_001_0.0.xml ##
################################################

#General checking for rule file execution
check_version minor TL17A
check_version minor TLF17A
check_version minor TLC17A

#v0.2 rrcGuardTimer already exists in RL16A
#check_param minor LNBTS rrcGuardTimer
check_param minor FMCADM actCategoryAlarms
#v0.2 end


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

####################################################################################################################
# PR194436: [MBMS][LTE3279] MBMS traffic not working when m1TimeRef is set to GPS
####################################################################################################################
#mbmsSyncPeriod must be greater than mbmsSyncTimeOffset
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/M1SYNC mbmsSyncPeriod = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/M1SYNC-${M1SYNC} mbmsSyncPeriod <= PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/M1SYNC-${M1SYNC} mbmsSyncTimeOffset ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/M1SYNC-${M1SYNC} mbmsSyncTimeOffset + CONST 1 :


####################################################################################################################
# NA05975071: NPI (lab) LTE FL16A Type Acceptance: MTRACE issue for Airscale HW configuration
####################################################################################################################
# - The optional structure enhCellVendorSpecTracing can only exist if at least one of the following included parameter has a value set to TRUE
#   - pHRTracing
#   - aoATracing
#   - tATracingSynch
#   - uLSINRTracing
#   - uERankTracing
#   - pUSCHPRBNumberTracing
#   - pDSCHPRBNumberTracing
#   - uEBSRTracing
#   - ripTracing
dependence_del_target_relative minor LIST MRBTS/LNBTS/CTRLTS/MTRACE enhCellVendorSpecTracing ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} enhCellVendorSpecTracing 0 pHRTracing == CONST "false" && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} enhCellVendorSpecTracing 0 aoATracing == CONST "false" && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} enhCellVendorSpecTracing 0 tATracingSynch == CONST "false" && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} enhCellVendorSpecTracing 0 uLSINRTracing == CONST "false" && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} enhCellVendorSpecTracing 0 uERankTracing == CONST "false" && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} enhCellVendorSpecTracing 0 pUSCHPRBNumberTracing == CONST "false" && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} enhCellVendorSpecTracing 0 pDSCHPRBNumberTracing == CONST "false" && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} enhCellVendorSpecTracing 0 uEBSRTracing == CONST "false" && LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} enhCellVendorSpecTracing 0 ripTracing == CONST "false"


################################################################################################
# NA05947476: No Megaplexer call traces, only S1Paging&amp;X2HORequest trace type
################################################################################################
#An MTRACE instance with jobType equal to ImmediateMDTOnly or ImmediateMDTAndTrace must have the following optional structure configured: periodicUeMeas

add_list minor MTRACE tempList
add_list_item minor MTRACE tempList
add_list_param minor MTRACE tempList 0 reportAmount temp
add_list_param minor MTRACE tempList 0 reportInterval temp

dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/CTRLTS/MTRACE tempList 0 reportAmount = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} jobType == CONST "ImmediateMDTOnly" || PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} jobType == CONST "ImmediateMDTAndTrace" ? CONST "infinity" :
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/CTRLTS/MTRACE tempList 0 reportInterval = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} jobType == CONST "ImmediateMDTOnly" || PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} jobType == CONST "ImmediateMDTAndTrace" ? CONST "5120ms" :

dependence_del_target_relative minor LIST MRBTS/LNBTS/CTRLTS/MTRACE tempList ? LISTPARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/CTRLTS-${CTRLTS}/MTRACE-${MTRACE} tempList 0 reportAmount == CONST "temp"
rename_list minor MTRACE tempList periodicUeMeas
del_list minor MTRACE tempList


####################################################################################################################
# CRL16109: Make rrcGuardTimer an operator configurable parameter
####################################################################################################################
#OM_LTE_SFS_RNL.18189 Migration of the new mandatory operator-specific parameter LNBTS-rrcGuardTimer
#The previous vendor specific parameter LNBTS-rrcGuardTimer shall be made operator specific.
#Therefore, the vendor specific parameter LNBTS-rrcGuardTimer is removed and substituted with new, operator specific parameter LNBTS-rrcGuardTimer.
#The new, mandatory operator-specific LNBTS parameter rrcGuardTimer must be initialized with its default value.

add_param minor LNBTS rrcGuardTimer 20




#FZM specific
################################################################################################
# LTE3296 Harmonized Object Model for SRAN and LTE - late changes
################################################################################################
del_param minor ANTMOD btsType
del_param minor ANTMOD hwId
del_param minor ANTMOD productCode
del_param minor APMOD btsType
del_param minor APMOD hwId
del_param minor APMOD productCode
del_param minor MNL activeSWActivationTime
del_param minor MNL activeSWReleaseVersion
del_param minor MNL cmSyncCheck
del_param minor MNL configDataRevisionNumber
del_param minor MNL sharedRfTechnologies
del_param minor TRBLCADM remoteSyslogTransmissionStatus


################################################################################################
# LTE3342 SRAN Improved FM Service
################################################################################################
add_param minor FMCADM actCategoryAlarms false


#FZC specific
################################################################################################
# PR201208: LTE2600-A Remove 2.5G Ethernet Speed from RL16A/RL17 - No Hardware Available (5:2.5GBIT_FULL enum deleted)
################################################################################################
mod_param minor APELNK speedAndDuplex 2.5GBIT_FULL AUTODETECT




###########
# TDD:    #
###########

################################################################################################
# PR197328: [FL17 and trunk] Missing/incorrect implementation of LTE3199-A-k in NIDD
# PR191047: [MBMS][FL00][LTE3199] BTSSM consistency checks for LTE3199 are missing
################################################################################################
# - cellResourceSharingMode must be set to 'none' if actMBMS is equal to 'true' and LNCEL_TDD-earfcn and LNCEL_TDD-chBw match with MBSFNSYNCAREA_TDD-mbsfnEarcn and MBSFNSYNCAREA_TDD-mbsfnDlChBw, and LNCEL contains an MBSFNCEL.

add_param minor MBSFNSYNCAREA_TDD tempKey temp
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNMCE/MBSFNSYNCAREA_TDD tempKey = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNMCE-${LNMCE}/MBSFNSYNCAREA_TDD-${MBSFNSYNCAREA_TDD} mbsfnEarfcn JOIN CONST "-" JOIN PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNMCE-${LNMCE}/MBSFNSYNCAREA_TDD-${MBSFNSYNCAREA_TDD} mbsfnDlChBw :
copy_param_to_array_param_relative minor MRBTS/LNBTS/LNMCE/MBSFNSYNCAREA_TDD tempKey MRBTS-${MRBTS}/LNBTS-${LNBTS} tempKeyList

add_param minor LNCEL_TDD tempKey temp
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/LNCEL_TDD tempKey = CONST 0 == CONST 0 ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_TDD-${LNCEL_TDD} earfcn JOIN CONST "-" JOIN PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_TDD-${LNCEL_TDD} chBw :

add_param minor MBSFNCEL tempMbsfnCelExist true
copy_param_relative minor MRBTS/LNBTS/LNCEL/MBSFNCEL MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempMbsfnCelExist tempMbsfnCelExist

dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL cellResourceSharingMode = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actMBMS == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempMbsfnCelExist == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_TDD-0 tempKey == LISTVALUE MRBTS-${MRBTS}/LNBTS-${LNBTS} tempKeyList 0 ? CONST "none" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL cellResourceSharingMode = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actMBMS == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempMbsfnCelExist == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_TDD-0 tempKey == LISTVALUE MRBTS-${MRBTS}/LNBTS-${LNBTS} tempKeyList 1 ? CONST "none" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL cellResourceSharingMode = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actMBMS == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempMbsfnCelExist == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_TDD-0 tempKey == LISTVALUE MRBTS-${MRBTS}/LNBTS-${LNBTS} tempKeyList 2 ? CONST "none" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL cellResourceSharingMode = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actMBMS == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempMbsfnCelExist == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_TDD-0 tempKey == LISTVALUE MRBTS-${MRBTS}/LNBTS-${LNBTS} tempKeyList 3 ? CONST "none" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL cellResourceSharingMode = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actMBMS == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempMbsfnCelExist == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_TDD-0 tempKey == LISTVALUE MRBTS-${MRBTS}/LNBTS-${LNBTS} tempKeyList 4 ? CONST "none" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL cellResourceSharingMode = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actMBMS == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempMbsfnCelExist == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_TDD-0 tempKey == LISTVALUE MRBTS-${MRBTS}/LNBTS-${LNBTS} tempKeyList 5 ? CONST "none" :


################################################################################################
# PR199924: [LTE3199][MBMS][FL00][FL17] Wrong consistency check for mbmsNeighCellConfigIntraF
################################################################################################
add_param minor SIB tempIntraF temp
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempIntraF = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actMBMS == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempMbsfnCelExist == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_TDD-0 tempKey == LISTVALUE MRBTS-${MRBTS}/LNBTS-${LNBTS} tempKeyList 0 ? CONST "00" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempIntraF = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actMBMS == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempMbsfnCelExist == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_TDD-0 tempKey == LISTVALUE MRBTS-${MRBTS}/LNBTS-${LNBTS} tempKeyList 1 ? CONST "00" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempIntraF = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actMBMS == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempMbsfnCelExist == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_TDD-0 tempKey == LISTVALUE MRBTS-${MRBTS}/LNBTS-${LNBTS} tempKeyList 2 ? CONST "00" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempIntraF = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actMBMS == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempMbsfnCelExist == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_TDD-0 tempKey == LISTVALUE MRBTS-${MRBTS}/LNBTS-${LNBTS} tempKeyList 3 ? CONST "00" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempIntraF = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actMBMS == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempMbsfnCelExist == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_TDD-0 tempKey == LISTVALUE MRBTS-${MRBTS}/LNBTS-${LNBTS} tempKeyList 4 ? CONST "00" :
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempIntraF = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actMBMS == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL} tempMbsfnCelExist == CONST "true" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/LNCEL_TDD-0 tempKey == LISTVALUE MRBTS-${MRBTS}/LNBTS-${LNBTS} tempKeyList 5 ? CONST "00" :

dependence_del_target_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB tempIntraF ? PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempIntraF == CONST "temp"
rename_param minor SIB tempIntraF mbmsNeighCellConfigIntraF
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS/LNCEL/SIB mbmsNeighCellConfigIntraF = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} mbmsNeighCellConfigIntraF == CONST "11" && PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNCEL-${LNCEL}/SIB-${SIB} tempIntraF == CONST "00" ? CONST "00" :

del_param minor LNCEL_TDD tempKey
del_param minor MBSFNSYNCAREA_TDD tempKey
del_list minor LNBTS tempKeyList
del_param minor LNCEL tempMbsfnCelExist
del_param minor MBSFNCEL tempMbsfnCelExist
del_param minor SIB tempIntraF


################################################################################################
# LTE3296-AGH correction of consistency check regarding the forcing condition
# - (2.1) If actDlIntShaping in LNBTS_TDD is configured to 'false', actDlIsh must be set to 'false'.
################################################################################################
dependence_mod_param_conditional_expression_relative minor LISTPARAM MRBTS/LNBTS/LNCEL dlIshConfig 0 actDlIsh = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS}/LNBTS_TDD-0 actDlIntShaping == CONST "false" ? CONST "false" :



################################################################################################
# CRL14750 Stop MBMS support for TDD with TD-LTE 17/17SP
################################################################################################
#OM_LTE_SFS_RNL.18229 MBMS is no longer supported for TDD, i.e. the LNBTS parameter actMBMS must be set to 'false' in case of migration from a previous TDD release.
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS/LNBTS actMBMS = PARAM MRBTS-${MRBTS}/LNBTS-${LNBTS} actMBMS == CONST "true" ? CONST "false" :



#v0.2 PR212026: Migration issue from 16A to 17SP - wrong parameters
################################################################################################
# CRL15437 - Advance 'VoLTE quality triggered SRVCC to GSM' to TL16A
################################################################################################
#OM_LTE_SFS_RNL.17726 Migration of the new mandatory LTE3443 activation parameter actVoLteQualSRVCCtoGsm
#The following parameters respectively instances have to be deleted if existing in a release TL16A plan file:
#LNBTS-actVoLteQualSRVCCtoGsm 
#LNCEL-assignedVoLteQualProfile in each LNCEL instance
#all VOLTEQUALPR instances
del_param minor LNBTS actVoLTEQualSRVCCtoGsm
del_param minor LNCEL assignedVoLteQualProfile
del_cls minor VOLTEQUALPR
#v0.2 end



add_param minor MRBTS unitType FZM
dependence_mod_param_conditional_expression_relative minor PARAM MRBTS unitType = PARAM MRBTS-${MRBTS}/LNBTS-${MRBTS}/FTM-1/UNIT-1 unitTypeExpected == CONST "FZC1100" || PARAM MRBTS-${MRBTS}/LNBTS-${MRBTS}/FTM-1/UNIT-1 unitTypeExpected == CONST "FZC2000" ? CONST "FZC" : 

#version
dependence_set_version major PARAM MRBTS-${MRBTS} unitType == CONST "FZC" ? CONST "TLC17SP" : CONST "TLF17SP"

del_param minor MRBTS unitType


#history:
add_log minor "Conversion from TLF/TLC17SP FB16.11 (001) to TLF/TLC17SP FB16.12 (001)"
