﻿#0) More information on formula syntax: http://utran01.epa.ericsson.se/itkwiki/ViewWritersGuide/AppendixII
#1) Any text starting with a '#' is treated as a comment and discarded
#2) Each formula is split into the formula result variable name (part before the '=' sign) and the formula expression (the part after the '=' sign).
#3) Any reference in the formula expression to a counter name of other formula name is replaced by a perl variable reference
#4) The special names sum_<countername>, sum_time_<countername> and sum_mo_<countername> are replaced by a perl reference to variable containing counter aggregates
#5) Each formula expression is then evaluated using perl 'eval'. This means that the syntax of the expressions is the same as that of perl - you can use any perl operators & functions.
#6) The order in which the formulas are defined does not have any importance, a formula can refer to other formulas defined further down in the file
#7) The formula names should not start with "pm"

# Compliant to KPI Measurement Description 5/1550-CSH 103 704 PAC16 and N19Q2
# https://erilink.ericsson.se/eridoc/erl/objectId/09004cff877db904?docno=5/1550-CSH103704Uen&action=current&format=msw8

# Accessibility
Acc_CBRA_RandomAccessSuccRate = pmRadioRaCbSuccMsg3 / pmRadioRaCbAttMsg2
Acc_EndcSetupSuccessRate = ( pmEndcSetupUeSucc / pmEndcSetupUeAtt) * 100 
Acc_EndcSetupRelMnMcgSuccessRate  = ( pmEndcRelMnMcgRelocSucc / pmEndcRelMnMcgRelocAtt ) * 100
Acc_EndcSetupScgUeSuccessRate = ( pmEndcSetupScgUeSucc / pmEndcSetupScgUeAtt ) * 100
Acc_EndcNRDRBSetupSuccessRate =  ( pmEndcNrDrbSetupSucc / pmEndcNrDrbSetupAtt ) * 100
Acc_EndcNrRaFail = pmEndcSetupFailNrRa

#Retainability
Ret_EndcUeRelAbnormal = pmEndcRelUeAbnormalMenbAct + pmEndcRelUeAbnormalSgnbAct + pmEndcRelUeAbnormalMenb + pmEndcRelUeAbnormalSgnb
Ret_EndcUeRelAbnormalMeNBAb = pmEndcRelUeAbnormalMenbAct + pmEndcRelUeAbnormalMenb
Ret_EndcUeRelAbnormalMeNBAct = pmEndcRelUeAbnormalMenbAct 
Ret_EndcUeRelAbnormalPrimary = pmEndcRelUeAbnormalMenbAct + pmEndcRelUeAbnormalSgnbAct
Ret_EndcUeRelAbnormalSgNBAb = pmEndcRelUeAbnormalSgnbAct +  pmEndcRelUeAbnormalSgnb 
Ret_EndcUeRelTotal = pmEndcRelUeNormal + pmEndcRelUeAbnormalMenbAct + pmEndcRelUeAbnormalSgnbAct + pmEndcRelUeAbnormalMenb + pmEndcRelUeAbnormalSgnb
Ret_EndcUeRelTotalPrimary = pmEndcRelUeNormal + pmEndcRelUeAbnormalMenb + pmEndcRelUeAbnormalSgnb
Ret_NrLegRetainability = Ret_EndcUERelAbnormal / Ret_EndcUeRelTotal
Ret_NrLegRetainabilityPrimary = Ret_EndcUERelAbnormalPrimary / Ret_EndcUeRelTotalPrimary
Ret_NrlegRetainability_MeNBTriggeredAbnormalActiveNRLegRelease = Ret_EndcUERelAbnormalMeNBAct / Ret_EndcUeRelTotal
Ret_NrlegRetainability_MeNBTriggeredAbnormalNRLegRelease = Ret_EndcUERelAbnormalMeNBAb / Ret_EndcUeRelTotal
Ret_NrlegRetainability_SgNBTriggeredAbnormalNRLegRelease = Ret_EndcUERelAbnormalSgNBAb / Ret_EndcUeRelTotal

#Availability
Av_CellAvail = 100 * ( 900 - ( pmCellDowntimeAuto + pmCellDowntimeMan ) ) / (900)
Av_CellDownMan = 100 * pmCellDowntimeMan / 900
Av_CellDownAuto = 100 * pmCellDowntimeAuto / 900

#Integrity
Int_ActivUEsDl = pmActiveUeDlSum / pmActiveUeDlSamp
Int_ActivUEsUl = pmActiveUeUlSum / pmActiveUeUlSamp
Int_PacketsAcknowledgedToUeC5UInt = pmPdcpPktTransAckDlQos
Int_PacketsDiscardedByRlcAqmReportedByFcC5UInt  = pmPdcpPktTransDiscLossAqmDlQos
Int_PacketsDiscardedC5UInt = pmPdcpPktDisc 
Int_PacketsDiscardedDueToLateArrivalC5UInt = pmPdcpPktLostUlToDisc5qi
Int_PacketsDiscardedDueToPdcpAqmS1ULink = pmPdcpPktRecDlDiscAqm5qi
Int_PacketsDiscardedOrLostReportedByFcC5UInt = pmPdcpPktTransDlDisc5qi
Int_PacketsDiscardedS1ULink = pmPdcpPktRecDlDisc5qi
Int_PacketsDiscardedWithInvalidGtpuHeaderC5UInt = pmPdcpPktDiscGtpu
Int_PacketsDiscardedWithMissingErabContextC5UInt = pmPdcpPktDiscNoErabCtxt 
Int_PacketsLostOrDiscardedC5UInt = pmPdcpPktLossUl5qi
Int_PacketsLostOrDiscardedDueToLateArrivalC5UInt  = pmPdcpPktLossUlToDisc5qi
Int_PacketsReceivedByUeC5UInt = pmPdcpPktRecUlQos 
Int_PacketsReceivedOooByUeC5UInt = pmPdcpPktRecUlOoo5qi
Int_PacketsReceivedS1ULink = pmPdcpPktRecDlQos
Int_PacketsRetransmittedInDlC5UInt = pmPdcpPktTransDlRetrans5qi
Int_PacketsTransmittedInDlC5UInt = pmPdcpPktTransDlQos
Int_PacketstransmittedS1ULink = pmPdcpPktTransUlQos 
Int_PacketLossRateUl = pmPdcpPktLossUlQos / ( pmPdcpPktRecUlQos – pmPdcpPktLossUlToDiscQos + pmPdcpPktLossUlToQos )
Int_ReceivedVolumeUlC5UInt = pmPdcpVolRecUlQos
Int_RetransmittedVolumeC5UInt = pmPdcpVolTransDlRetrans5qi
Int_TransmittedVolumeDlC5UInt = pmPdcpVolTransDlQos
Int_VolumeTransmittedS1ULink = pmPdcpVolTransUlQos
Int_AvgRadioRecInterferencePwr_mW = WeightedAverage(pmRadioRecInterferencePwrDistr, [0.000000000000794,0.000000000000897,0.000000000001129,0.000000000001422,0.000000000001790,0.000000000002254,0.000000000002837,0.000000000003572,0.000000000004496,0.000000000005661,0.000000000011079,0.000000000027830,0.000000000069905,0.000000000175594,0.000000000441073,0.000000000501187])
Int_AvgRadioRecInterferencePwr = 10*log10(Int_AvgRadioRecInterferencePwr_mW)
Int_DLHarqBler = (pmMacHarqDlNackQpsk)/(pmMacHarqDlAckQpsk + pmMacHarqDlNackQpsk)
Int_DLHarqBler = (pmMacHarqDlNack16Qam)/(pmMacHarqDlAck16Qam +  pmMacHarqDlNack16Qam)
Int_DLHarqBler = (pmMacHarqDlNack64Qam)/(pmMacHarqDlAck64Qam + pmMacHarqDlNack64Qam)
Int_DLHarqBler = (pmMacHarqDlNack256Qam)/pmMacHarqDlAck256Qam +  pmMacHarqDlNack256qam)
Int_DLHarqDtxRate = (pmMacHarqDlDtxQpsk)/(pmMacHarqDlAckQpsk +  pmMacHarqDlNackQpsk +  pmMacHarqDlDtxQpsk)
Int_DLHarqDtxRate = (pmMacHarqDlDtx16Qam)/(pmMacHarqDlAck16Qam +  pmMacHarqDlNack16Qam + pmMacHarqDlDtx16Qam)
Int_DLHarqDtxRate = (pmMacHarqDlDtx64Qam)/(pmMacHarqDlAck64Qam +  pmMacHarqDlNack64Qam + pmMacHarqDlDtx64Qam)
Int_InitialDlHarqTransNackWith64Qam = pmMacHarqDlNack64QamInit
Int_DLHarqDtxRate= (pmMacHarqDlDtx256Qam)/(pmMacHarqDlAck256qam +  pmMacHarqDlNack256Qam + pmMacHarqDlDtx256Qam)
Int_DLInitHarqBler = (pmMacHarqDlInitNackQpskInit)/(pmMacHarqInitAckQpsk +  pmMacHarqDlInitNackQpskInit) 
Int_DLInitHarqBler = (pmMacHarqDlInitNack16QamInit)/(pmMacHarqInitAck16Qam +  pmMacHarqDlInitNack16QamInit) 
Int_DLInitHarqBler = (pmMacHarqDlInitNack64QamInit)/(pmMacHarqInitAck64Qam +  pmMacHarqDlInitNack64QamInit)
Int_DLInitHarqBler = (pmMacHarqDlInitNack256QamInit)/(pmMacHarqInitAck256Qam +  pmMacHarqDlInitNack256QamInit)
