## Based on M-Mgw R6.1 "User Guide for Performance Measurements" 17/1553-AXM 101 01/11-V2 Uen G 
## Extended according to MOM MRSMGW_NODE_MODEL_C_1_76 (UP R6.4.4.0)

##
## v1.0 updated by Tamas Husz (EASHUT) 2014.02.27

#0) More information on formula syntax: http://doc.itk.ericsson.se/binder/current/html/ItkViewGuide/07_FormulaFiles.html
#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"

#
#4	Key Performance Indicators
#4.1	Key Performance Indicators for Internal Accessibility
#4.1.1	IM-MGw Accessibility
#The IM-MGw accessibility (in %) = (1 - ([for all Vmgw].pmNrOfIpTermsRej  + [for all Vmgw].pmNrOfIpv6TermsRej  + [for all TdmTermGrp].pmNrOfTdmTermsRej ) / ([for all Vmgw].pmNrOfIpTermsReq  + [for all Vmgw].pmNrOfIpv6TermsReq  + [for all TdmTermGrp].pmNrOfTdmTermsReq )) * 100
temp_4_1_1_all_Ip_TermsRej = pmNrOfIpv6TermsRej + pmNrOfIpTermsRej
temp_4_1_1_all_Tdm_TermsRej = pmNrOfTdmTermsRej
temp_4_1_1_all_Ip_TermsReq = pmNrOfIpv6TermsReq + pmNrOfIpTermsReq
temp_4_1_1_all_Tdm_TermsReq = pmNrOfTdmTermsReq
The_IM_MGw_accessibility_in_percent = (1 - (temp_4_1_1_all_Ip_TermsRej  + temp_4_1_1_all_Tdm_TermsRej ) / (temp_4_1_1_all_Ip_TermsReq  + temp_4_1_1_all_Tdm_TermsReq )) * 100


#4.1.2	BGF Accessibility
#The BGF accessibility (in %) = (1 - ([for all Vbgf].pmContextReqsRej  / [for all Vbgf].pmContextReqs )) * 100
The_BGF_accessibility_in_percent = (1 - (pmContextReqsRej / pmContextReqs)) * 100

#4.1.3	MRFP Accessibility
#The MRFP accessibility (in %) = (1 - ([for all Vmrfp].pmRejTerminationReqs  / [for all Vmrfp].pmTerminationReqs )) * 100
The_MRFP_accessibility_in_percent = (1 - (pmRejTerminationReqs / pmTerminationReqs)) * 100

#4.2	Key Performance Indicators for Retainability
#4.2.1	IM-MGw Service Retainability
#IM-MGw service retainability (in %) = (1  ([for all Vmgw].pmNrOfGcpNotifyCsdFaultAEst  + [for all Vmgw].pmNrOfGcpNotifySpeechFaultAEst ) / ([for all Vmgw].pmNrOfIpTermsReq  + [for all Vmgw].pmNrOfIpv6TermsReq  + [for all TdmTermGrp].pmNrOfTdmTermsReq   [for all Vmgw].pmNrOfIpTermsRej   [for all Vmgw].pmNrOfIpv6TermsRej   [for all TdmTermGrp].pmNrOfTdmTermsRej )) * 100
temp_4_2_1_speech_and_CSD_fault_after_estab = pmNrOfGcpNotifyCsdFaultAEst  + pmNrOfGcpNotifySpeechFaultAEst
temp_4_2_1_succ_IP_estab = pmNrOfIpv6TermsReq  + pmNrOfIpTermsReq - pmNrOfIpv6TermsRej  - pmNrOfIpTermsRej
temp_4_2_1_succ_Tdm_estab = pmNrOfTdmTermsReq  - pmNrOfTdmTermsRej
IM_MGw_Service_retainability_in_percent = (1 - temp_4_2_1_speech_and_CSD_fault_after_estab / (temp_4_2_1_succ_IP_estab  + temp_4_2_1_succ_Tdm_estab )) * 100

#4.2.2	BGF Service Retainability
#BGF service retainability (in %) = (1  ([for all Vbgf].pmAbnormTermContexts  / ([for all Vbgf].pmContextReqs   [for all Vbgf].pmContextReqsRej ))) * 100
BGF_service_retainability_in_percent = (1 - (pmAbnormTermContexts / (pmContextReqs - pmContextReqsRej))) * 100

#4.2.3	MRFP Service Retainability
#MRFP service retainability (in %) = (1  ([for all Vmrfp].pmAbnormTermTerminations  / ([for all Vmrfp].pmTerminationReqs   [for all Vmrfp].pmRejTerminationReqs ))) * 100
MRFP_service_retainability_in_percent = (1 - (pmAbnormTermTerminations / (pmTerminationReqs - pmRejTerminationReqs))) * 100

#4.3	Key Performance Indicators for Integrity
#4.3.1	IM-MGw Integrity
#4.3.1.1   IP Transport QoS, Incoming User Plane Traffic Success Rate
#IP transport QoS, Incoming User Plane Traffic Success Rate (as %) = (1 - ([for all RemoteSite].pmRtpDiscardedPkts  + [for all RemoteSite].pmRtpLostPkts  + UnknownRemoteSite.pmRtpDiscardedPkts  + UnknownRemoteSite.pmRtpLostPkts  ) / (([for all RemoteSite].pmRtpReceivedPktsHi  * 2^31 + [for all RemoteSite].pmRtpReceivedPktsLo  ) + [for all RemoteSite].pmRtpLostPkts  + (UnknownRemoteSite.pmRtpReceivedPktsHi  * 2^31 + UnknownRemoteSite.pmRtpReceivedPktsLo  ) + UnknownRemoteSite.pmRtpLostPkts  )) * 100
IM_MGw_IP_transport_QoS_Incoming_User_Plane_Traffic_Success_Rate_as_percent = (1-((pmRtpDiscardedPkts  + pmRtpLostPkts ) / (( pmRtpReceivedPktsHi * 2147483648 + pmRtpReceivedPktsLo)   + pmRtpLostPkts )) ) * 100

#4.3.1.2   SS7 over TDM QoS
#Narrowband Signalling Quality over TDM (as %) = (1 - ([for all <Mtp2TerminationPoint>].pmNoOfNacks + [for all <Mtp2TerminationPoint>].pmNoOfSuReceivedInError ) / ([for all <Mtp2TerminationPoint>].pmNoOfMSUReceived + [for all <Mtp2TerminationPoint>].pmNoOfMSUTransmitted )) * 100
Narrowband_Signalling_Quality_over_TDM_as_percent = (1-(pmNoOfNacks + pmNoOfSuReceivedInError ) / (pmNoOfMSUReceived + pmNoOfMSUTransmitted )) * 100

#4.3.2	Physical Node
#4.3.2.1   VoIP Late Packets
#Ratio of Late Packet for VoIP connections (as %) = JitterHandlingService.pmLatePktsVoIp  / (JitterHandlingService.pmLatePktsVoIp  + JitterHandlingService.pmSuccTransmittedPktsVoIp  )*100
Ratio_of_Late_Packet_for_VoIP_connections = pmLatePktsVoIp  / (pmLatePktsVoIp  + pmSuccTransmittedPktsVoIp  )*100

#4.3.2.2   Mb Late Packets
#Ratio of Late Packets for Mb connections (as %) = JitterHandlingService.pmLatePktsMb  / (JitterHandlingService.pmLatePktsMb  + JitterHandlingService.pmSuccTransmittedPktsMbHi  * 2^31 + JitterHandlingService.pmSuccTransmittedPktsMbLo  )*100
Ratio_of_Late_Packet_for_Mb_connections = pmLatePktsMb  / (pmLatePktsMb  + (pmSuccTransmittedPktsMbHi * 2147483648 + pmSuccTransmittedPktsMbLo)  )*100

#4.3.2.3   Signalling over IP QoS
#IP signalling quality (as %) = (1 - ([for all IpAccessHostGpb].pmIpInDiscards  + [for all IpAccessHostGpb].pmIpOutDiscards  + [for all IpAccessHostGpb].pmIpInAddrErrors  + [for all IpAccessHostGpb].pmIpInHdrErrors  + [for all IpAccessHostGpb].pmIpInUnknownProtos ) / ([for all IpAccessHostGpb].pmIpInReceives  + [for all IpAccessHostGpb].pmIpOutRequests )) * 100
IP_signalling_quality_as_percent = (1-(pmIpInDiscards  + pmIpOutDiscards  + pmIpInAddrErrors  + pmIpInHdrErrors  + pmIpInUnknownProtos ) / (pmIpInReceives  + pmIpOutRequests )) * 100

#4.3.3	MRFP IP Transport QoS, Incoming User Plane Traffic Success Rate
#IP transport QoS, Incoming User Plane Traffic Success Rate (as %) = (1 - ([for all Vmrfp].pmRtpDiscardedPkts  + [for all Vmrfp].pmRtpLostPkts  ) / ([for all Vmrfp].pmRtpReceivedPktsHi  * 2^31 + [for all Vmrfp].pmRtpReceivedPktsLo  + [for all Vmrfp].pmRtpLostPkts  )) * 100
MRFP_IP_transport_QoS_Incoming_User_Plane_Traffic_Success_Rate_as_percent = (1 - (pmRtpDiscardedPkts + pmRtpLostPkts ) / (pmRtpReceivedPktsHi * 2147483648 + pmRtpReceivedPktsLo + pmRtpLostPkts)) * 100

#4.4	Key Performance Indicators for Traffic and Load
#4.4.1	IM-MGw Function
#4.4.1.1   Current Traffic Load
#The current traffic load = MgwApplication.pmNrOfMediaStreamChannelsBusy / 2.005
The_current_traffic_load_in_Erlangs = pmNrOfMediaStreamChannelsBusy / 2.005

#4.4.1.2   Software Licensing, Media Stream Channel Utilization Rate
#Media stream channel utilization rate (in %) = (MgwApplication.pmNrOfMediaStreamChannelsBusy / MgwApplication.maxNrOfLicMediaStreamChannels) * 100
# Media stream channel utilization rate (in %) = (MgwApplication.pmNrOfMediaStreamChannelsBusy / MgwApplication.maxNrOfLicMediaStreamChannels) * 100
# moshell pmExtract problem for non pm attribute - Media_stream_channel_utilization_rate_in_percent = (pmNrOfMediaStreamChannelsBusy / maxNrOfLicMediaStreamChannels) * 100
Media_stream_channel_utilization_rate_in_percent = (pmNrOfMediaStreamChannelsBusy / maxNrOfLicMediaStreamChannels) * 100

#4.4.1.3   Current Call Setup Rate
#Current call setup rate per second = MgwApplication.pmAvMedStreamChanSetUpRate / 2.005
# Healthy value range: NA
Current_call_setup_rate_per_second = pmAvMedStreamChanSetUpRate / 2.005

#4.4.2	Physical Node
#4.4.2.1   Processor Load
#The average processor load of a board (in %) = PlugInUnit.pmProcessorLoad
# The average processor load of a board (in %) = PlugInUnit.pmProcessorLoad
The_average_processor_load_of_a_board_in_percent = pmProcessorLoad

#4.4.2.2   Processor Core Load
#The average processor load of a board (in %) = PlugInUnit.pmProcessorCoreLoad
#Healthy value range: 0  80% (for short term measurement)
The_average_processor_core_load_of_a_board_in_percent = pmProcessorCoreLoad

#4.4.2.3   Media Stream Resource Utilization Ratio
#Device utilization ratio (in %) = 100  MsDevicePool.capacityIdle
#Healthy value range: 0  80%
Device_utilization_rate_in_percent = 100 - capacityIdle
MsDevicePool_userLabel = userLabel

#4.4.3	Software Licensing, BGF Utilization Ratio
#BGF utilization ratio (in %) = (BorderGatewayFunction.pmBgfSessions / BorderGatewayFunction.licenseCapacityBgf) * 100
#Healthy value range: 0  80% (this is a snapshot value)
BGF_utilization_rate_in_percent = (pmBgfSessions / licenseCapacityBgf) * 100

#4.4.4	Software Licensing, MRFP Utilization Ratio
#MRFP utilization ratio (in %) = (MrfpFunction.pmMrfpSessions / MrfpFunction.licenseCapacityMrfp) * 100
#Healthy value range: 0  80% (this is a snapshot value)
MRFP_utilization_rate_in_percent = (pmMrfpSessions / licenseCapacityMrfp) * 100


#5	Performance Indicators for Internal Accessibility
#5.1	IM-MGw Function
#5.1.1	Emergency Call Success Rate
#Emergency call success rate (in %) = (1 - (MgwApplication.pmNrOfRejEmcCalls  / MgwApplication.pmNrOfEmergencyCalls )) * 100
#Healthy value: 100% (action required when healthy value falls below 100%)
Emergency_call_success_rate_in_percent = (1 - (pmNrOfRejEmcCalls  / pmNrOfEmergencyCalls )) * 100

#5.1.2	Software Licensing, Media Stream Channel Seizure Success Rate
#The media stream channel seizure success rate (in %) = (1(MgwApplication.pmNrOfMediaStreamChannelsRejectedDueToCapacity  / MgwApplication.pmNrOfMediaStreamChannelsReq ))* 100
#Healthy value range: 99.7  100% (for long term measurement)
The_media_stream_channel_seizure_success_rate_in_percent = (1-(pmNrOfMediaStreamChannelsRejectedDueToCapacity  / pmNrOfMediaStreamChannelsReq ))* 100

#5.1.3	Software Licensing, AMR-WB Channels Rejected Due to Exceeded Capacity License
#AMR-WB Channels Rejected Due to Exceeded Capacity License = MgwApplication.pmNrOfAmrWbUnitsRejDueToCapacity
#Healthy value range: NA
AMR_WB_Channels_Rejected_Due_to_Exceeded_Capacity_License = pmNrOfAmrWbUnitsRejDueToCapacity

#5.1.4	Software Licensing, G.729 Channels Rejected Due to Exceeded Capacity License
#G.729 Channels Rejected Due to Exceeded Capacity License = MgwApplication.pmNrOfG729UnitsRejDueToCapacity
#Healthy value range: NA
G729_Channels_Rejected_Due_to_Exceeded_Capacity_License = pmNrOfG729UnitsRejDueToCapacity

#5.1.5	Software Licensing, VoIP Gateway Channels Rejected Due to Exceeded Capacity License
#VoIP Gateway Channels Rejected Due to Exceeded Capacity License = MgwApplication.pmNrOfMeStChRejDueToCapVoip
#Healthy value range: NA
VoIP_Gateway_Channels_Rejected_Due_to_Exceeded_Capacity_License = pmNrOfMeStChRejDueToCapVoip

#5.1.6	Software Licensing, AMR-WB Media Stream Channel Utilization Rate
#AMR-WB media stream channel utilization rate (in %) = (MgwApplication.pmNrOfMediaStreamChsUsedAmrWb / AmrWbService.licenseCapacityAmrWb) * 100
#Healthy value range: 0  80% (this is a snapshot value)
AMR_WB_media_stream_channel_utilization_rate_in_percent = ( pmNrOfMediaStreamChsUsedAmrWb / licenseCapacityAmrWb) * 100

#5.1.7	Software Licensing, G.729 Media Stream Channel Utilization Rate
# G.729 media stream channel utilization rate (in %) = ( MgwApplication.pmNrOfMediaStreamChsUsedG729 / G729Service.licenseCapacityG729) * 100
G729_media_stream_channel_utilization_rate_in_percentage = ( pmNrOfMediaStreamChsUsedG729 / licenseCapacityG729) * 100

#5.1.8	Software Licensing, VoIP Gateway Media Stream Channel Utilization Rate
# VoIP gateway media stream channel utilization rate (in %) = ( MgwApplication.pmNrOfMeStChUsedVoip / MgwApplication.maxNrOfLicMediaStreamChannelsVoip) * 100
VoIP_gateway_media_stream_channel_utilization_rate_in_percentage = ( pmNrOfMeStChUsedVoip / maxNrOfLicMediaStreamChannelsVoip) * 100

#5.1.9	IP Connections over CMXB External Links Success Rate
# IP Connections over CMXB external links success rate (in %) = (1 - (MgwApplication.pmNoOfRejsByIntAdmCtrlForCmxb &Delta; / MgwApplication.pmNoOfIpConnOverCmxb &Delta;)) * 100
# Healthy value range: 99.7 &mdash; 100% (for long term measurement)
IP_Connections_over_CMXB_external_links_success_rate = (1 - (pmNoOfRejsByIntAdmCtrlForCmxb  / pmNoOfIpConnOverCmxb )) * 100

#5.1.10	H.248
# H248 link uptime in seconds = Vmgw.pmGcpSystemUpTime
H248_link_uptime_in_seconds = pmGcpSystemUpTime

#5.1.11	IP
#5.1.11.1   IP Termination Seizure Success Rate
#The IPv4 termination seizure success rate per VMGw (in %) = (1 - (Vmgw.pmNrOfIpTermsRej  / Vmgw.pmNrOfIpTermsReq )) * 100
#Healthy value range: 99.7  100% (for long term measurement)
The_IP_termination_seizure_success_rate_per_VMGw_in_percent = (1 - (pmNrOfIpTermsRej  / pmNrOfIpTermsReq )) * 100

#5.1.12	TDM
#5.1.12.1   TDM Termination Reservation Success Rate
# TDM termination reservation success rate (in percent) = (1 - (TdmTermGrp.pmNrOfTDMTermsRej  / TdmTermGrp.pmNrOfTDMTermsReq )) * 100
TDM_termination_reservation_success_rate_in_percent = (1 - (pmNrOfTdmTermsRej  / pmNrOfTdmTermsReq )) * 100

#5.2	MRFP Function
#5.2.1	Software Licensing, MRFP Multimedia Session Rejected Due to Exceeded Capacity License
#Software Licensing, MRFP Multimedia Session Rejected Due to Exceeded Capacity License = MrfpFunction.pmMrfpSessRejDueToCap
MRFP_Multimedia_Session_Rejected_Due_to_Exceeded_Capacity_License = pmMrfpSessRejDueToCap

#5.2.2	Software Licensing, MRFP Video Session Rejected Due to Exceeded Capacity License
#Software Licensing, MRFP Video Session Rejected Due to Exceeded Capacity License = MrfpFunction.pmVideoPartRejDueToCap
MRFP_Video_Session_Rejected_Due_to_Exceeded_Capacity_License = pmVideoPartRejDueToCap

#5.2.3	Software Licensing, MRFP Audio Conferencing Rejected Due to Exceeded Capacity License
#Software Licensing, MRFP Audio Conferencing Rejected Due to Exceeded Capacity License = MrfpFunction.pmAudioConfPartRejDueToCap
MRFP_Audio_Conferencing_Rejected_Due_to_Exceeded_Capacity_License = pmAudioConfPartRejDueToCap

#5.2.4	Software Licensing, MRFP HD Video Conferencing Rejected Due to Exceeded Capacity License
#Software Licensing, MRFP HD Video Conferencing Rejected Due to Exceeded Capacity License = MrfpFunction.pmHdVideoConfPartRejDueToCap
MRFP_HD_Video_Conferencing_Rejected_Due_to_Exceeded_Capacity_License = pmHdVideoConfPartRejDueToCap

#5.2.5	Software Licensing, MRFP Video Conferencing Rejected Due to Exceeded Capacity License
#Software Licensing, MRFP Video Conferencing Rejected Due to Exceeded Capacity License = MrfpFunction.pmVideoConfPartRejDueToCap
MRFP_Video_Conferencing_Rejected_Due_to_Exceeded_Capacity_License = pmVideoConfPartRejDueToCap

#5.2.6	Software Licensing, MRFP Video Session Utilization Rate
#Software Licensing, MRFP Video Session Utilization Rate (in %) = (MrfpFunction.pmVideoParticipants / MrfpFunction.licenseCapacityVideo) * 100
MRFP_Video_Session_Utilization_Rate_in_percent = (pmVideoParticipants / licenseCapacityVideo) * 100

#5.2.7	Software Licensing, MRFP Audio Conferencing Utilization Rate
#Software Licensing, MRFP Audio Conferencing Utilization Rate (in %) = (MrfpFunction.pmAudioConfParticipants / MrfpFunction.licenseCapacityAudioConferencing) * 100
MRFP_Audio_Conferencing_Utilization_Rate_in_percent = (pmAudioConfParticipants / licenseCapacityAudioConferencing) * 100

#5.2.8	Software Licensing, MRFP HD Video Conferencing Utilization Rate
#Software Licensing, MRFP HD Video Conferencing Utilization Rate (in %) = (MrfpFunction.pmHdVideoConfParticipants / MrfpFunction.licenseCapacityHdVideoConferencing) * 100
MRFP_HD_Video_Conferencing_Utilization_Rate_in_percent = (pmHdVideoConfParticipants / licenseCapacityHdVideoConferencing) * 100

#5.2.9	Software Licensing, MRFP Video Conferencing Utilization Rate
#Software Licensing, MRFP Video Conferencing Utilization Rate (in %) = (MrfpFunction.pmVideoConfParticipants / MrfpFunction.licenseCapacityVideoConferencing) * 100
MRFP_Video_Conferencing_Utilization_Rate_in_percent = (pmVideoConfParticipants / licenseCapacityVideoConferencing) * 100

#5.2.10	IPv4 Stream Reservation Success Rate
#IPv4 Stream Reservation Success Rate (in %) = (1 - (Vmrfp.pmStreamIpv4ReqsRej  / Vmrfp.pmStreamIpv4Reqs )) * 100
IPv4_Stream_Reservation_Success_Rate_in_percent = (1 - (pmStreamIpv4ReqsRej / pmStreamIpv4Reqs)) * 100

#5.2.11	IPv6 Stream Reservation Success Rate
#IPv6 Stream Reservation Success Rate (in %) = (1 - (Vmrfp.pmStreamIpv6ReqsRej  / Vmrfp.pmStreamIpv6Reqs )) * 100
IPv6_Stream_Reservation_Success_Rate_in_percent = (1 - (pmStreamIpv6ReqsRej / pmStreamIpv6Reqs)) * 100

#5.2.12	Content Sharing Stream Reservation Success Rate
#Content Sharing Stream Reservation Success Rate (in %) = (1 - (Vmrfp.pmContentSharingStreamReqsRej  / Vmrfp.pmContentSharingStreamReqs )) * 100
Content_Sharing_Stream_Reservation_Success_Rate_in_percent = (1 - (pmContentSharingStreamReqsRej / pmContentSharingStreamReqs)) * 100

#5.2.13	MRFP Emergency Call Success Rate
#MRFP Emergency call success rate (in %) = (1 - (MrfpFunction.pmH248EmergencyCallRejs  / MrfpFunction.pmH248EmergencyCallReqs )) * 100
MRFP_Emergency_call_success_rate_in__percent = (1 - (pmH248EmergencyCallRejs / pmH248EmergencyCallReqs)) * 100

#5.2.14	MRFP Priority Call Success Rate
#MRFP Priority call success rate (in %) = (1 - (MrfpFunction.pmH248PriorityCallRejs  / MrfpFunction.pmH248PriorityCallReqs )) * 100
MRFP_Priority_call_success_rate_in_percent = (1 - (pmH248PriorityCallRejs / pmH248PriorityCallReqs)) * 100

#5.3	Border Gateway Function
#5.3.1	Software Licensing, BGF Voice Transcoding Session Rejected Due to Exceeded Capacity License
#Software Licensing, BGF Voice Transcoding Session Rejected Due to Exceeded Capacity License = BorderGatewayFunction.pmVoiceTransSessRejDueToCap
BGF_Voice_Transcoding_Session_Rejected_Due_to_Exceeded_Capacity_License = pmVoiceTransSessRejDueToCap

#5.3.2	Software Licensing, BGF HD Voice Transcoding Session Rejected Due to Exceeded Capacity License
#Software Licensing, BGF HD Voice Transcoding Session Rejected Due to Exceeded Capacity License = BorderGatewayFunction.pmHdVoiceTransSessRejDueToCap
BGF_HD_Voice_Transcoding_Session_Rejected_Due_to_Exceeded_Capacity_License = pmHdVoiceTransSessRejDueToCap

#5.3.3	Software Licensing, BGF Voice Transcoding Session Utilization Rate
#Software Licensing, BGF Voice Transcoding Session Utilization Rate (in %) = (BorderGatewayFunction.pmVoiceTransSess / BorderGatewayFunction.licenseCapacityVoiceTrans) * 100
BGF_Voice_Transcoding_Session_Utilization_Rate_in_percent = (pmVoiceTransSess / licenseCapacityVoiceTrans) * 100

#5.3.4	Software Licensing, BGF HD Voice Transcoding Session Utilization Rate
#Software Licensing, BGF HD Voice Transcoding Session Utilization Rate (in %) = (BorderGatewayFunction.pmHdVoiceTransSess / BorderGatewayFunction.licenseCapacityHDVoiceTrans) * 100
BGF_HD_Voice_Transcoding_Session_Utilization_Rate_in_percent = (pmHdVoiceTransSess / licenseCapacityHDVoiceTrans) * 100

#5.3.5	Media Stream Processing, BGF Voice Transcoding Success Rate
#BGF voice transcoding success rate (in %) = (1- (Vbgf.pmVoiceTranscodingReqsRej  / Vbgf.pmVoiceTranscodingReqs )) * 100
BGF_voice_transcoding_success_rate_in_percent = (1- (pmVoiceTranscodingReqsRej / pmVoiceTranscodingReqs)) * 100

#5.3.6	Media Stream Processing, BGF HD Voice Transcoding Success Rate
#BGF HD voice transcoding success rate (in %) = (1- (Vbgf.pmHdVoiceTranscodingReqsRej  / (Vbgf.pmHdVoiceTranscodingReqs ))) * 100
BGF_HD_voice_transcoding_success_rate_in_percent = (1- (pmHdVoiceTranscodingReqsRej / (pmHdVoiceTranscodingReqs))) * 100

#5.3.7	Media Stream Processing, BGF Secure MSRP Media Stream Reservation Success Rate
#BGF Secure MSRP Media Stream Reservation Success Rate (in %) = (1- (Vbgf.pmSmsrpStreamReqsRej  / Vbgf.pmSmsrpStreamReqs )) * 100
BGF_Secure_MSRP_Media_Stream_Reservation_Success_Rate_in_percent = (1- (pmSmsrpStreamReqsRej / pmSmsrpStreamReqs)) * 100

#5.3.8	Emergency Call Success Rate
#Emergency call success rate (in %) = (1 - (BgfApplication.pmEmergencySessionReqsRej  / BgfApplication.pmEmergencySessionReqs )) * 100
Emergency_call_success_rate_in_percent = (1 - (pmEmergencySessionReqsRej / pmEmergencySessionReqs)) * 100

#5.3.9	Priority Call Success Rate
#Priority call success rate (in %) = (1 - (BgfApplication.pmPrioritySessionReqsRej  / BgfApplication.pmPrioritySessionReqs )) * 100
Priority_call_success_rate_in_percent = (1 - (pmPrioritySessionReqsRej / pmPrioritySessionReqs)) * 100

#5.4	User Plane Services
#5.4.1	Interactive Messaging, Basic Message Success Rate
# IM basic message success rate (in percent) = (ImBasicMessage.pmCallAttempts  / (ImBasicMessage.pmCallAttempts  + ImBasicMessage.pmFailedCallAttempts )) * 100
IM_basic_message_success_rate_in_percent = (pmCallAttempts  / (pmCallAttempts  + pmFailedCallAttempts )) * 100

#5.4.2	Interactive Messaging, Message Composition Success Rate
# IM message composition success rate (in percent) = (ImMessageComposition.pmCallAttempts  / (ImMessageComposition.pmCallAttempts  + ImMessageComposition.pmFailedCallAttempts )) * 100
IM_message_composition_success_rate_in_percent = (pmCallAttempts  / (pmCallAttempts  + pmFailedCallAttempts )) * 100

#5.4.3	Interactive Messaging, Multi-Language Message Success Rate
#IM multi-language message success rate (in %) = (ImMultiLanguageMessage.pmCallAttempts  / (ImMultiLanguageMessage.pmCallAttempts  + ImMultiLanguageMessage.pmFailedCallAttempts )) * 100
IM_multi_language_message_success_rate_in_percent = (pmCallAttempts / (pmCallAttempts + pmFailedCallAttempts)) * 100

#5.4.4	Interactive Messaging, External Announcements Success Rate
#IM external announcements success rate (in %) = ((ImExternalAnnouncements.pmExtAnnouncementReqs  - ImExternalAnnouncements.pmExtAnnouncementReqsFailed ) / (ImExternalAnnouncements.pmExtAnnouncementReqs )) * 100
IM_external_announcements_success_rate_in_percent = ((pmExtAnnouncementReqs - pmExtAnnouncementReqsFailed) / (pmExtAnnouncementReqs)) * 100

#5.4.5	Media Stream Resource Reservation Success Rate
# Service reservation success rate (in percent) = (1 - (Service.pmUnsuccSeizures  / Service.pmTotalSeizures )) * 100
Service_reservation_success_rate_in_percent = (1 - (pmUnsuccSeizures  / pmTotalSeizures )) * 100

#5.4.6	IP Resource Reservation Success Rate
#IP resource reservation success rate (in %) = (1 - ( IpEtService.pmUnsuccSeizures  / IpEtService.pmTotalSeizures )) * 100
IP_resource_reservation_success_rate_in_percent = (1 - ( pmUnsuccSeizures  / pmTotalSeizures )) * 100

#5.5	MRFC
#5.5.1	MRFC Announcement Session Success Rate
#MRFC, Announcement Session Success Rate (in %) = (1  (Vmrfc.pmAnncSessionCreateReqsFailed  / Vmrfc.pmAnncSessionCreateReqs )) * 100
MRFC_Announcement_Session_Success_Rate_in_percent = (1 - (pmAnncSessionCreateReqsFailed / pmAnncSessionCreateReqs)) * 100

#5.5.2	MRFC Conference Session Success Rate
#MRFC Conference Session Success Rate (in %) = (1 - (Vmrfc.pmConfSessionCreateReqsFailed  / Vmrfc.pmConfSessionCreateReqs )) * 100
MRFC_Conference_Session_Success_Rate_in_percent = (1 - (pmConfSessionCreateReqsFailed / pmConfSessionCreateReqs)) * 100

#5.5.3	MRFC Emergency Call Success Rate
#MRFC Emergency call success rate (in %) = (1 - (MrfcFunction.pmSipEmergencyCallRejs  / MrfcFunction.pmSipEmergencyCallReqs )) * 100
MRFC_Emergency_call_success_rate_in_percent = (1 - (pmSipEmergencyCallRejs / pmSipEmergencyCallReqs)) * 100

#5.6	System Functions
#5.6.1	HTTP Get Success Rate
#HTTP Get Success Rate (in %) = ((HttpClient.pmHttpGetReqs  - HttpClient.pmHttpGetReqsFailedFileNotFound  - HttpClient.pmHttpGetReqsFailedOtherError ) / (HttpClient.pmHttpGetReqs )) * 100
HTTP_Get_Success_Rate_in_percent = ((pmHttpGetReqs - pmHttpGetReqsFailedFileNotFound - pmHttpGetReqsFailedOtherError) / (pmHttpGetReqs)) * 100

#6	Performance Indicators for External Accessibility
#6.1	SCTP
#6.1.1	SCTP Association Incoming Data Chunk Success Rate
#Number of successful incoming data chunks = SctpAssociation.pmInDataChunks / (SctpAssociation.pmInDataChunks + SctpAssociation.pmInDataChunkDiscards + SctpAssociation.pmInDataChunkAbnormal)
#Healthy value range: 99.999100% (for long term measurement)
SCTP_Association_Incoming_Data_Chunk_Success_Rate = pmInDataChunks / (pmInDataChunks + pmInDataChunkDiscards + pmInDataChunkAbnormal)

#6.1.2	SCTP Association Incoming Data Chunk Discard Rate
#Number of discarded incoming data chunks = SctpAssociation.pmInDataChunkDiscards / (SctpAssociation.pmInDataChunks + SctpAssociation.pmInDataChunkDiscards + SctpAssociation.pmInDataChunkAbnormal)
#Healthy value range: 00.001% (for long term measurement)
SCTP_Association_Incoming_Data_Chunk_Discard_Rate = pmInDataChunkDiscards / (pmInDataChunks + pmInDataChunkDiscards + pmInDataChunkAbnormal)

#6.1.3	SCTP Association Outgoing Data Chunk Success Rate
#Number of successful outgoing data chunks = SctpAssociation.pmOutDataChunks / (SctpAssociation.pmOutDataChunks + SctpAssociation.pmRtxChunks + SctpAssociation.pmOutDataChunkDiscards)
#Healthy value range: 99.999100% (for long term measurement)
SCTP_Association_Outgoing_Data_Chunk_Success_Rate = pmOutDataChunks / (pmOutDataChunks + pmRtxChunks + pmOutDataChunkDiscards)

#6.1.4	SCTP Association Outgoing Data Chunk Discard Rate
#Number of discarded outgoing data chunks = SctpAssociation.pmOutDataChunkDiscards / (SctpAssociation.pmOutDataChunks + SctpAssociation.pmRtxChunks + SctpAssociation.pmOutDataChunkDiscards)
#Healthy value range: 00.001% (for long term measurement)
SCTP_Association_Outgoing_Data_Chunk_Discard_Rate = pmOutDataChunkDiscards / (pmOutDataChunks + pmRtxChunks + pmOutDataChunkDiscards)

#6.1.5	SCTP Association Incoming Control Chunk Success Rate
#Number of successful incoming control chunks = SctpAssociation.pmInControlChunks / (SctpAssociation.pmInControlChunks + SctpAssociation.pmInControlChunkDiscards + SctpAssociation.pmInControlChunkAbnormal)
#Healthy value range: 99.999100% (for long term measurement)
SCTP_Association_Incoming_Control_Chunk_Success_Rate = pmInControlChunks / (pmInControlChunks + pmInControlChunkDiscards + pmInControlChunkAbnormal)

#6.1.6	SCTP Association Incoming Control Chunk Discard Rate
#Number of discarded incoming control chunks = SctpAssociation.pmInControlChunkDiscards / (SctpAssociation.pmInControlChunks + SctpAssociation.pmInControlChunkDiscards + SctpAssociation.pmInControlChunkAbnormal)
#Healthy value range: 00.001% (for long term measurement)
SCTP_Association_Incoming_Control_Chunk_Discard_Rate = pmInControlChunkDiscards / (pmInControlChunks + pmInControlChunkDiscards + pmInControlChunkAbnormal)

#6.1.7	SCTP Association Availability Ratio
#Association availability ratio = (MEAS_LENGTH  SctpAssociation.pmTimeUnavail) / MEAS_LENGTH
SCTP_Association_availability_ratio = (900 - SctpAssociation.pmTimeUnavail) / 900

#7	Performance Indicators for Retainability
#
#8	Performance Indicators for Integrity
#8.1	IM-MGw Integrity
#8.1.1	MTP2
#8.1.1.1   MTP2 QoS
# The total number of received negative acknowledgements from remote node = Mtp2TerminationPoint.pmNoOfNacks
# The total number of faulty received Signalling Units (SU) = Mtp2TerminationPoint.pmNoOfSuReceivedInError
The_total_number_of_received_negative_acknowledgements_from_remote_node = pmNoOfNacks
The_total_number_of_faulty_received_Signalling_Units = pmNoOfSuReceivedInError

#8.1.2	IP
#8.1.2.1   IP Transport QoS, Received ECN Packet Rate
# The received ECN packet rate (in %) for remote site = ( RemoteSite.pmIpReceivedEcnPkts  / ( RemoteSite.pmRtpReceivedPktsHi * 2^31 + RemoteSite.pmRtpReceivedPktsLo)  ) * 100
# The received ECN packet rate (in %) for unknown remote site = ( UnknownRemoteSite.pmIpReceivedEcnPkts  / ( UnknownRemoteSite.pmRtpReceivedPktsHi * 2^31 + UnknownRemoteSite.pmRtpReceivedPktsLo)  ) * 100
The_received_ECN_packet_rate_in_percent_for_remote_site = ( pmIpReceivedEcnPkts  / ( pmRtpReceivedPktsHi * 2147483648 + pmRtpReceivedPktsLo)  ) * 100
The_received_ECN_packet_rate_inpercent_for_unknown_remote_site = ( pmIpReceivedEcnPkts  / ( pmRtpReceivedPktsHi * 2147483648 + pmRtpReceivedPktsLo)  ) * 100

#8.1.2.2   IP Transport QoS, RTP Packet Discard Rate
# The RTP packet discard rate (in %) for remote site = ( RemoteSite.pmRtpDiscardedPkts  / ( RemoteSite.pmRtpReceivedPktsHi * 2^31 + RemoteSite.pmRtpReceivedPktsLo)  ) * 100
# The RTP packet discard rate (in %) for unknown remote site = ( UnknownRemoteSite.pmRtpDiscardedPkts  / ( UnknownRemoteSite.pmRtpReceivedPktsHi * 2^31 + UnknownRemoteSite.pmRtpReceivedPktsLo)  ) * 100
The_RTP_packet_discard_rate_in_percent_for_remote_site = ( pmRtpDiscardedPkts  / ( pmRtpReceivedPktsHi * 2147483648 + pmRtpReceivedPktsLo)  ) * 100
The_RTP_packet_discard_rate_in_percent_for_unknown_remote_site = ( pmRtpDiscardedPkts  / ( pmRtpReceivedPktsHi * 2147483648 + pmRtpReceivedPktsLo)  ) * 100

#8.1.2.3   IP Transport QoS, RTP Packet Loss Rate
# The RTP packet loss rate (in %) for remote site = ( pmRtpLostPkts  / ( pmRtpLostPkts  + ( pmRtpReceivedPktsHi * 2^31 + pmRtpReceivedPktsLo)  )) * 100
# The RTP packet loss rate (in %) for unknown remote site = ( pmRtpLostPkts  / ( pmRtpLostPkts  + ( pmRtpReceivedPktsHi * 2^31 + pmRtpReceivedPktsLo)  )) * 100
The_RTP_packet_loss_rate_in_percent_for_remote_site = ( pmRtpLostPkts  / ( pmRtpLostPkts  + ( pmRtpReceivedPktsHi * 2147483648 + pmRtpReceivedPktsLo)  )) * 100
The_RTP_packet_loss_rate_in_percent_for_unknown_remote_site = ( pmRtpLostPkts  / ( pmRtpLostPkts  + ( pmRtpReceivedPktsHi * 2147483648 + pmRtpReceivedPktsLo)  )) * 100

#8.1.2.4   IP Transport QoS, Received DSCP Remarked Packet Rate
# The received DSCP Remarked packet rate (in %) for remote site = ( pmRtpReceivedDscpCongPackets  / ( pmRtpReceivedPktsHi * 2^31 + pmRtpReceivedPktsLo)  ) * 100
# The received DSCP Remarked packet rate (in %) for unknown remote site = ( pmRtpReceivedDscpCongPackets  / ( pmRtpReceivedPktsHi * 2^31 + pmRtpReceivedPktsLo)  ) * 100
The_received_DSCP_Remarked_packet_rate_in_percent_for_remote_site = ( pmRtpReceivedDscpCongPackets  / ( pmRtpReceivedPktsHi * 2147483648 + pmRtpReceivedPktsLo)  ) * 100
The_received_DSCP_Remarked_packet_rate_in_percent_for_unknown_remote_site = ( pmRtpReceivedDscpCongPackets  / ( pmRtpReceivedPktsHi * 2147483648 + pmRtpReceivedPktsLo)  ) * 100

#8.1.2.5   IP Transport QoS, Average RTP Interarrival Jitter (RTCP)
#Average received interarrival jitter from every remote site = RemoteSite.pmRtpAvgRcvdJitter
#Average received interarrival jitter from unknown remote site = UnknownRemoteSite.pmRtpAvgRcvdJitter
#Average received interarrival jitter on the External SIP-I interface = MgwApplication.pmRtpAvgRcvdJitterOnExt
#Average received interarrival jitter on the Mb-interface = MgwApplication.pmRtpAvgRcvdJitterOnMb
#Average received interarrival jitter on the Nb-interface = MgwApplication.pmRtpAvgRcvdJitterOnNb
#Average sent interarrival jitter on the External SIP-I interface = MgwApplication.pmRtpAvgSentJitterOnExt
#Average sent interarrival jitter on the Mb-interface = MgwApplication.pmRtpAvgSentJitterOnMb
#Average sent interarrival jitter on the Nb-interface = MgwApplication.pmRtpAvgSentJitterOnNb
#Average sent interarrival jitter to every remote site = RemoteSite.pmRtpAvgSentJitter
#Average sent interarrival jitter to unknown remote site = UnknownRemoteSite.pmRtpAvgSentJitter
#Healthy value range: 0-200 ms.
Average_received_interarrival_jitter = pmRtpAvgRcvdJitter
Average_sent_interarrival_jitter = pmRtpAvgSentJitter
Average_received_interarrival_jitter_on_the_External_SIP_I_interface = pmRtpAvgRcvdJitterOnExt
Average_received_interarrival_jitter_on_the_Mb_interface = pmRtpAvgRcvdJitterOnMb
Average_received_interarrival_jitter_on_the_Nb_interface = pmRtpAvgRcvdJitterOnNb
Average_sent_interarrival_jitter_on_the_External_SIP_I_interface = pmRtpAvgSentJitterOnExt
Average_sent_interarrival_jitter_on_the_Mb_interface = pmRtpAvgSentJitterOnMb
Average_sent_interarrival_jitter_on_the_Nb_interface = pmRtpAvgSentJitterOnNb

##8.1.2.6   IP Transport QoS, Highest Measured RTP Interarrival Jitter (RTCP)
#Highest measured received interarrival jitter on every remote site = RemoteSite.pmRtpMaxRcvdJitter
#Highest measured received interarrival jitter on the External SIP-I interface = MgwApplication.pmRtpMaxRcvdJitterOnExt
#Highest measured received interarrival jitter on the Mb-interface = MgwApplication.pmRtpMaxRcvdJitterOnMb
#Highest measured received interarrival jitter on the Nb-interface = MgwApplication.pmRtpMaxRcvdJitterOnNb
#Highest measured received interarrival jitter on unknown remote site = UnknownRemoteSite.pmRtpMaxRcvdJitter
#Highest measured sent interarrival jitter on every remote site = RemoteSite.pmRtpMaxSentJitter
#Highest measured sent interarrival jitter on the External SIP-I interface = MgwApplication.pmRtpMaxSentJitterOnExt
#Highest measured sent interarrival jitter on the Mb-interface = MgwApplication.pmRtpMaxSentJitterOnMb
#Highest measured sent interarrival jitter on the Nb-interface = MgwApplication.pmRtpMaxSentJitterOnNb
#Highest measured sent interarrival jitter on unknown remote site = UnknownRemoteSite.pmRtpMaxSentJitter
#Healthy value range: 0-200 ms.
Highest_measured_received_interarrival_jitter = pmRtpMaxRcvdJitter
Highest_measured_sent_interarrival_jitter = pmRtpMaxSentJitter
Highest_measured_received_interarrival_jitter_on_the_External_SIP_I_interface = pmRtpMaxRcvdJitterOnExt
Highest_measured_received_interarrival_jitter_on_the_Mb_interface = pmRtpMaxRcvdJitterOnMb
Highest_measured_received_interarrival_jitter_on_the_Nb_interface = pmRtpMaxRcvdJitterOnNb
Highest_measured_sent_interarrival_jitter_on_the_External_SIP_I_interface = pmRtpMaxSentJitterOnExt
Highest_measured_sent_interarrival_jitter_on_the_Mb_interface = pmRtpMaxSentJitterOnMb
Highest_measured_sent_interarrival_jitter_on_the_Nb_interface = pmRtpMaxSentJitterOnNb

#8.1.2.7   IP Transport QoS, Average RTP Round-trip Delay (RTCP)
#Average round-trip delay on the External SIP-I interface = MgwApplication.pmRtpAvgRoundTripDelayOnExt
#Average round-trip delay on the Mb-interface = MgwApplication.pmRtpAvgRoundTripDelayOnMb
#Average round-trip delay on the Nb-interface = MgwApplication.pmRtpAvgRoundTripDelayOnNb
#Average round-trip delay with every remote site = RemoteSite.pmRtpAvgRoundTripDelay
#Average round-trip delay with unknown remote site = UnknownRemoteSite.pmRtpAvgRoundTripDelay
#Healthy value range: 0-4,094.
Average_round_trip_delay_on_the_External_SIP_I_interface = pmRtpAvgRoundTripDelayOnExt
Average_round_trip_delay_on_the_Mb_interface = pmRtpAvgRoundTripDelayOnMb
Average_round_trip_delay_on_the_Nb_interface = pmRtpAvgRoundTripDelayOnNb
Average_round_trip_delay_with_remote_site = pmRtpAvgRoundTripDelay

#8.1.2.8   IP Transport QoS, Highest Measured RTP Round-trip Delay (RTCP)
#Highest round-trip delay on the External SIP-I interface = MgwApplication.pmRtpMaxRoundTripDelayOnExt
#Highest round-trip delay on the Mb-interface = MgwApplication.pmRtpMaxRoundTripDelayOnMb
#Highest round-trip delay on the Nb-interface = MgwApplication.pmRtpMaxRoundTripDelayOnNb
#Highest round-trip delay with every remote site = RemoteSite.pmRtpMaxRoundTripDelay
#Highest round-trip delay with unknown remote site = UnknownRemoteSite.pmRtpMaxRoundTripDelay
#Healthy value range: 0-4,094.
Highest_round_trip_delay_on_the_External_SIP_I_interface = pmRtpMaxRoundTripDelayOnExt
Highest_round_trip_delay_on_the_Mb_interface = pmRtpMaxRoundTripDelayOnMb
Highest_round_trip_delay_on_the_Nb_interface = pmRtpMaxRoundTripDelayOnNb
Highest_round_trip_delay_with_remote_site = pmRtpMaxRoundTripDelay

##8.1.2.9   IP Transport QoS, Average Sent RTP Packets Lost (RTCP)
#Average sent RTP packets lost on the External SIP-I interface = MgwApplication.pmRtpAvgSentPacketLostOnExt
#Average sent RTP packets lost on the Mb-interface = MgwApplication.pmRtpAvgSentPacketLostOnMb
#Average sent RTP packets lost on the Nb-interface = MgwApplication.pmRtpAvgSentPacketLostOnNb
#Average sent RTP packets lost with every remote site = RemoteSite.pmRtpAvgSentPacketLost
#Average sent RTP packets lost with unknown remote site = UnknownRemoteSite.pmRtpAvgSentPacketLost
Average_sent_RTP_packets_lost_on_the_External_SIP_I_interface = pmRtpAvgSentPacketLostOnExt
Average_sent_RTP_packets_lost_on_the_Mb_interface = pmRtpAvgSentPacketLostOnMb
Average_sent_RTP_packets_lost_on_the_Nb_interface = pmRtpAvgSentPacketLostOnNb
Average_sent_RTP_packets_lost_with_remote_site = pmRtpAvgSentPacketLost

#8.2	Physical Node
#8.2.1	IP
#8.2.1.1   IP Transport QoS, IP Packet Discard Ratio
# The ratio of discarded, received IP datagrams (in %) = (IpInterface.pmIfStatsIpInDiscards/(IpInterface.pmIfStatsIpInReceives* 1000)) * 100
# Healthy value: 0&mdash;0.01% (for long term measurement)
# The ratio of discarded sent IP datagrams (in %) = (IpInterface.pmIfStatsIpOutDiscards/(IpInterface.pmIfStatsIpOutRequests * 1000)) * 100
# Healthy value: 0&mdash;0.01% (for long term measurement)
The_ratio_of_discarded_received_IP_datagrams_in_percent = ( pmIfStatsIpInDiscards  / pmIfStatsIpInReceives * 1000 ) * 100
The_ratio_of_discarded_sent_IP_datagrams_in_percent = ( pmIfStatsIpOutDiscards  / pmIfStatsIpOutRequests * 1000 ) * 100

#8.2.1.2   IP Transport QoS, IP Packet Error Ratio
# The ratio of errored, received IP packets (in percent) = (( IpInterface.pmIfStatsIpAddrErrors  + IpInterface.pmIfStatsIpInHdrErrors  + IpInterface.pmIfStatsIpUnknownProtos ) / IpInterface.pmIfStatsIpInReceives* 1000 ) * 100
The_ratio_of_errored_received_IP_packets_in_percent = (( pmIfStatsIpAddrErrors  + pmIfStatsIpInHdrErrors  + pmIfStatsIpUnknownProtos ) / pmIfStatsIpInReceives* 1000 ) * 100

#8.2.1.3   Signalling over IP QoS, IP Packet Discard Ratio (Host)
#    The ratio of discarded, received IP datagrams (in percent) = (IpAccessHostGpb.pmIpInDiscards  / IpAccessHostGpb.pmIpInReceives ) * 100
#    The ratio of discarded sent IP datagrams (in percent) = (IpAccessHostGpb.pmIpOutDiscards  / IpAccessHostGpb.pmIpOutRequests ) * 100
The_ratio_of_discarded_received_IP_datagrams_in_percent_IpAccessHost = (pmIpInDiscards  / pmIpInReceives ) * 100
The_ratio_of_discarded_sent_IP_datagrams_in_percent_IpAccessHost = (pmIpOutDiscards  / pmIpOutRequests ) * 100

#8.2.1.4   Signalling over IP QoS, IP Packet Discard Ratio (Fast Ethernet Interface)
# The ratio of discarded, received IP datagrams (in percent) = (FastEthernet.pmIfInDiscards  / (FastEthernet.pmIfInBroadcastPkts  + FastEthernet.pmIfInMulticastPkts  + FastEthernet.pmIfInUcastPkts )) * 100
# The ratio of discarded sent IP datagrams (in percent) = (FastEthernet.pmIfOutDiscards  / (FastEthernet.pmIfOutBroadcastPkts  + FastEthernet.pmIfOutMulticastPkts  + FastEthernet.pmIfOutUcastPkts )) * 100
The_ratio_of_discarded_received_IP_datagrams_in_percent_FE = (pmIfInDiscards  / (pmIfInBroadcastPkts  + pmIfInMulticastPkts  + pmIfInUcastPkts )) * 100
The_ratio_of_discarded_sent_IP_datagrams_in_percent_FE = (pmIfOutDiscards  / (pmIfOutBroadcastPkts  + pmIfOutMulticastPkts  + pmIfOutUcastPkts )) * 100

#8.2.1.5   Signalling over IP QoS, IP Packet Discard Ratio (Gigabit Ethernet Interface)
# The ratio of discarded, received IP datagrams (in percent) = (IpInterface.pmIfStatsIpInDiscards  / IpInterface.pmIfStatsIpInReceives* 1000 ) * 100
# The ratio of discarded sent IP datagrams (in percent) = (IpInterface.pmIfStatsIpOutDiscards  / IpInterface.pmIfStatsIpOutRequests* 1000 ) * 100
# same formula as 8.2.1.1   IP Transport QoS, IP Packet Discard Ratio

#8.2.1.6   Signalling over IP QoS, IP Packet Error Ratio (Host)
# The ratio of errored, received IP packets in percent = ((IpAccessHostGpb.pmIpInAddrErrors  + IpAccessHostGpb.pmIpInHdrErrors  + IpAccessHostGpb.pmIpInUnknownProtos ) / IpAccessHostGpb.pmIpInReceives ) * 100
The_ratio_of_errored_received_IP_packets_in_percent_IpAccessHostGpb = ((pmIpInAddrErrors  + pmIpInHdrErrors  + pmIpInUnknownProtos ) / pmIpInReceives ) * 100

#8.2.1.7   Signalling over IP QoS, IP Packet Error Ratio (Fast Ethernet Interface)
# The ratio of errored, received IP packets (in percent) = (FastEthernet.pmIfInErrors  / (FastEthernet.pmIfInBroadcastPkts  + FastEthernet.pmIfInMulticastPkts  + FastEthernet.pmIfInUcastPkts )) * 100
# The ratio of errored, sent IP packets (in percent) = (FastEthernet.pmIfOutErrors  / (FastEthernet.pmIfOutBroadcastPkts  + FastEthernet.pmIfOutMulticastPkts  + FastEthernet.pmIfOutUcastPkts )) * 100
The_ratio_of_errored_received_IP_packets_in_percent_FE = (pmIfInErrors  / (pmIfInBroadcastPkts  + pmIfInMulticastPkts  + pmIfInUcastPkts )) * 100
The_ratio_of_errored_sent_IP_packets_in_percent_FE = (pmIfOutErrors  / (pmIfOutBroadcastPkts  + pmIfOutMulticastPkts  + pmIfOutUcastPkts )) * 100

#8.2.1.8   Signalling over IP QoS, IP Packet Error Ratio (Gigabit Ethernet Interface)
# The ratio of errored, received IP packets (in percent) = ((IpInterface.pmIfStatsIpAddrErrors  + IpInterface.pmIfStatsIpInHdrErrors  + IpInterface.pmIfStatsIpUnknownProtos )) / IpInterface.pmIfStatsIpInReceives* 1000 ) * 100
# same formula as in 8.2.1.2   IP Transport QoS, IP Packet Error Ratio

#8.2.1.9   Signalling over IP QoS, SCTP Data Chunks Retransmission Ratio
# The SCTP data chunks retransmission ratio (in %) = ( Sctp.pmSctpStatRetransChunks  / Sctp.pmSctpStatSentChunks ) * 100
The_SCTP_data_chunks_retransmission_ratio_in_percent = ( pmSctpStatRetransChunks  / pmSctpStatSentChunks ) * 100

#8.2.1.10   Signalling over IP QoS, SCTP Association Data Chunks Retransmission Ratio
#The SCTP association data chunks retransmission ratio (in %) = (SctpAssociation.pmRtxChunks  / SctpAssociation.pmOutDataChunks ) * 100
The_SCTP_association_data_chunks_retransmission_ratio_in_percent = (pmRtxChunks / pmOutDataChunks) * 100

#8.3	MRFP Function
#8.3.1	MRFP IP Transport QoS, RTP Packet Discard Rate
#The RTP packet discard rate (in %) for virtual MRFP = (Vmrfp.pmRtpDiscardedPkts  / (Vmrfp.pmRtpReceivedPktsHi * 2^31 + Vmrfp.pmRtpReceivedPktsLo )) * 100
#Healthy value range: 00.001% (for long term measurement)
The_RTP_packet_discard_rate_in_percent_for_virtual_MRFP = (pmRtpDiscardedPkts / (pmRtpReceivedPktsHi * 2147483648 + pmRtpReceivedPktsLo)) * 100

#8.3.2	MRFP IP Transport QoS, RTP Packet Loss Rate
#The RTP packet loss rate (in %) for virtual MRFP = (Vmrfp.pmRtpLostPkts  / (Vmrfp.pmRtpLostPkts  + (Vmrfp.pmRtpReceivedPktsHi * 2^31 + Vmrfp.pmRtpReceivedPktsLo))) * 100
#Healthy value range: 00.001% (for long term measurement)
The_RTP_packet_loss_rate_in_percent_for_virtual_MRFP = (pmRtpLostPkts / (pmRtpLostPkts + (pmRtpReceivedPktsHi * 2147483648 + pmRtpReceivedPktsLo))) * 100


#9	Performance Indicators for Traffic and Load
#9.1	IM-MGw Function
#9.1.1	Peak Call Setup Rate
# Peak call setup rate = MgwApplication.pmPeakMedStreamChanSetUpRate / 2.005
Peak_call_setup_rate = pmPeakMedStreamChanSetUpRate / 2.005

#9.1.2	H.248
#9.1.2.1   IM-MGw H.248 Message Statistics
# The total number of received H248 messages = Vmgw.pmGcpNrOfReceivedMessages
# The total number of sent H248 messages = Vmgw.pmGcpNrOfSentMessages
The_total_number_of_received_H248_messages = pmGcpNrOfReceivedMessages
The_total_number_of_sent_H248_messages = pmGcpNrOfSentMessages

#9.1.3	IP
#9.1.3.1   Number of Busy IP Terminations
# The current number of busy IP terminations per VMGw = Vmgw.pmNrOfIpTermsBusy
The_current_number_of_busy_IP_terminations_per_Vmgw = pmNrOfIpTermsBusy

#9.1.3.2   Total Bandwidth (Mbps) for IP Network
#not implemented

#9.1.3.3   VoIP Transport Jitter
# Ratio of VoIP connections that have had low jitter (as %) = (1 - (JitterHandlingService.pmVoIpConnMeasuredJitter4 &Delta; + JitterHandlingService.pmVoIpConnMeasuredJitter5 &Delta; + JitterHandlingService.pmVoIpConnMeasuredJitter6 &Delta; + JitterHandlingService.pmVoIpConnMeasuredJitter7 &Delta; + JitterHandlingService.pmVoIpConnMeasuredJitter8 &Delta; ) / (JitterHandlingService.pmVoIpConnMeasuredJitter0 &Delta; + JitterHandlingService.pmVoIpConnMeasuredJitter1 &Delta; + JitterHandlingService.pmVoIpConnMeasuredJitter2 &Delta; + JitterHandlingService.pmVoIpConnMeasuredJitter3 &Delta; + JitterHandlingService.pmVoIpConnMeasuredJitter4 &Delta; + JitterHandlingService.pmVoIpConnMeasuredJitter5 &Delta; + JitterHandlingService.pmVoIpConnMeasuredJitter6 &Delta; + JitterHandlingService.pmVoIpConnMeasuredJitter7 &Delta; + JitterHandlingService.pmVoIpConnMeasuredJitter8 &Delta; ))*100
Ratio_of_VoIP_connections_that_have_had_low_jitter = (1 - (pmVoIpConnMeasuredJitter4  + pmVoIpConnMeasuredJitter5  + pmVoIpConnMeasuredJitter6  + pmVoIpConnMeasuredJitter7  + pmVoIpConnMeasuredJitter8  ) / (pmVoIpConnMeasuredJitter0  + pmVoIpConnMeasuredJitter1  + pmVoIpConnMeasuredJitter2  + pmVoIpConnMeasuredJitter3  + pmVoIpConnMeasuredJitter4  + pmVoIpConnMeasuredJitter5  + pmVoIpConnMeasuredJitter6  + pmVoIpConnMeasuredJitter7  + pmVoIpConnMeasuredJitter8  ))*100

#9.1.4	TDM
#9.1.4.1   TDM Termination Group Utilization Rate
# TDM group utilization rate (as percent)= (TdmTermGrp.pmNrOfTdmTermsBusy / MAX_NR_OF_TDM_TERMS) * 100
TDM_group_utilization_rate_as_percent = (pmNrOfTdmTermsBusy / 31) * 100
TdmTermGrp_userLabel = userLabel
# eashut - the MAX_NR_OF_TDM_TERMS is fixed to 31 for now, but shall be changed to the actual configured Nr of timeslots -> based on TdmTermGrp.ds0BundleMoRef _ listOfTimeSlots

#9.1.5	STP&SGw Signalling Traffic (MSU/s)
# eashut - not possible to implement PI - formula contains delta and non-delta elements

#9.1.6	Signalling Performance, SS7 Utilization
#SS7 utilization, received = (Octets_Received * 8) / (MEAS_LENGTH * BW)
#SS7 utilization, transmitted = (Octets_Transmitted * 8) / (MEAS_LENGTH * BW)
#Octets_Received = <Mtp2TerminationPoint>.pmNoOfSIOSIFReceived + 6 * <Mtp2TerminationPoint>.pmNoOfMSUReceived
#Octets_Transmitted = <Mtp2TerminationPoint>.pmNoOfSIOSIFTransmitted + 6 * <Mtp2TerminationPoint>.pmNoOfMSUTransmitted
SS7_utilization_received = (SS7_Octets_Received * 8) / (900 * 64000)
SS7_utilization_transmitted = (SS7_Octets_Transmitted * 8) / (900 * 64000)
SS7_Octets_Received = pmNoOfSIOSIFReceived + 6 * pmNoOfMSUReceived
SS7_Octets_Transmitted = pmNoOfSIOSIFTransmitted + 6 * pmNoOfMSUTransmitted
#eashut BW is set to 64'000 bit

#9.1.7	User Plane Services
#9.1.7.1   Number of T.38 Fax Connections
#The total number of T.38 fax connections = T38FaxService.pmV17Conns  + T38FaxService.pmV27terConns  + T38FaxService.pmV29Conns 
The_total_number_of_T38_fax_connections = T38FaxService.pmV17Conns + T38FaxService.pmV27terConns + T38FaxService.pmV29Conns

#9.1.8	MTP3/M3UA
#9.1.8.1   MTP3 Signalling Link Usage
# Received MSUs per second = Mtp3bSignallingLink.pmNoOfMSURec  / 900
# Sent MSUs per second = Mtp3bSignallingLink.pmNoOfMSUSent  / 900
Received_MSUs_per_second_MTP3b = pmNoOfMSURec  / 900
Sent_MSUs_per_second_MTP3b = pmNoOfMSUSent  / 900

#9.1.8.2   Number of Received and Sent M3UA Payload Data Messages
# The number of payload data messages sent per second = M3uAssociation.pmNoOfDataMsgSent  / 900
# The number of payload data messages received per second = M3uAssociation.pmNoOfDataMsgRec  / 900
The_number_of_payload_data_messages_sent_per_second_M3uA = pmNoOfDataMsgSent  / 900
The_number_of_payload_data_messages_received_per_second_M3uA = pmNoOfDataMsgRec  / 900

#9.1.9	MTP2
#9.1.9.1   MTP2 Signalling Link Usage
# Received MSUs per second = Mtp2TerminationPoint.pmNoOfMSUReceived  / 900
# Sent MSUs per second = Mtp2TerminationPoint.pmNoOfMSUTransmitted  / 900
# Received kbps on an MTP2 link = ((Mtp2TerminationPoint.pmNoOfSIOSIFReceived  * 8) + (Mtp2TerminationPoint.pmNoOfMSUReceived  * MTP2_MSU_HDR)) / (1000 * 900)
# Transmitted kbps on an MTP2 link = ((Mtp2TerminationPoint.pmNoOfSIOSIFTransmitted  * 8) + (Mtp2TerminationPoint.pmNoOfMSUTransmitted  * MTP2_MSU_HDR)) / (1000 * 900)
Received_MSUs_per_second_MTP2 = pmNoOfMSUReceived  / 900
Sent_MSUs_per_second_MTP2 = pmNoOfMSUTransmitted  / 900
Received_kbps_on_an_MTP2_link = ((pmNoOfSIOSIFReceived  * 8) + (pmNoOfMSUReceived  * 56)) / (1000 * 900)
Transmitted_kbps_on_an_MTP2_link = ((pmNoOfSIOSIFTransmitted  * 8) + (pmNoOfMSUTransmitted  * 56)) / (1000 * 900)

#9.1.10	ET Load for ET-C41
# ET Load = EtResource.pmLoad
#        The parent MO is ExchangeTerminal.
# Healthy value range: 0-90%
ET_TDM_Load = pmLoad

#9.2	MRFP Function
#9.2.1	MRFP Current Termination Setup Rate
#MRFP current termination setup rate per second = ([for all Vmrfp].pmTerminationReqs ) / MEAS_LENGTH
MRFP_current_termination_setup_rate_per_second = (pmTerminationReqs) / 900

#9.2.2	MRFP Current IPv4 Stream Setup Rate
#MRFP Current IPv4 Stream Setup Rate per second = ([for all Vmrfp].pmStreamIpv4Reqs ) / MEAS_LENGTH
MRFP_Current_IPv4_Stream_Setup_Rate_per_second = (pmStreamIpv4Reqs) / 900

#9.2.3	MRFP Current IPv6 Stream Setup Rate
#MRFP Current IPv6 Stream Setup Rate per second = ([for all Vmrfp].pmStreamIpv6Reqs ) / MEAS_LENGTH
MRFP_Current_IPv6_Stream_Setup_Rate_per_second = (pmStreamIpv6Reqs) / 900

#9.2.4	Number of Busy IPv4 Streams
#The current number of busy IPv4 streams per VMRFP = Vmrfp.pmStreamsIpv4
The_current_number_of_busy_IPv4_streams_per_VMRFP = pmStreamsIpv4

#9.2.5	Number of Busy IPv6 Streams
#The current number of busy IPv6 streams per VMRFP = Vmrfp.pmStreamsIpv6
The_current_number_of_busy_IPv6_streams_per_VMRFP = pmStreamsIpv6

#9.2.6	Content Sharing Current Setup Rate
#Content Sharing Current Setup Rate per second = ([for all Vmrfp].pmContentSharingStreamReqs ) / MEAS_LENGTH
Content_Sharing_Current_Setup_Rate_per_second = (pmContentSharingStreamReqs) / 900

#9.2.7	Number of Busy Content Sharing Streams
#The current number of busy Content Sharing streams per VMRFP = Vmrfp.pmContentSharingStreams
The_current_number_of_busy_Content_Sharing_streams_per_VMRFP = pmContentSharingStreams

#9.3	Border Gateway Function
#9.3.1	BGF Current Stream Setup Rate
#BGF current stream setup rate per second = ([for all Vbgf].pmStreamReqs ) / MEAS_LENGTH
BGF_current_stream_setup_rate_per_second = (pmStreamReqs) / 900

#9.3.2	BGF AMR Successful Seizure Rate
#BGF AMR Successful Seizure rate per second = ([for all Vbgf].pmAmrSeizures ) / MEAS_LENGTH
BGF_AMR_Successful_Seizure_rate_per_second = (pmAmrSeizures) / 900

#9.3.3	BGF AMR-WB Successful Seizure Rate
#BGF AMR-WB Successful Seizure rate per second = ([for all Vbgf].pmAmrWbSeizures ) / MEAS_LENGTH
BGF_AMR_WB_Successful_Seizure_rate_per_second = (pmAmrWbSeizures) / 900

#9.3.4	BGF G.711 Successful Seizure Rate
#BGF G.711 Successful Seizure rate per second = ([for all Vbgf].pmG711Seizures ) / MEAS_LENGTH
BGF_G_711_Successful_Seizure_rate_per_second = (pmG711Seizures) / 900

#9.3.5	BGF G.722 Successful Seizure Rate
#BGF G.722 Successful Seizure rate per second = ([for all Vbgf].pmG722Seizures ) / MEAS_LENGTH
BGF_G_722_Successful_Seizure_rate_per_second = (pmG722Seizures) / 900

#9.3.6	BGF G.729 Successful Seizure Rate
#BGF G.729 Successful Seizure rate per second = ([for all Vbgf].pmG729Seizures ) / MEAS_LENGTH
BGF_G_729_Successful_Seizure_rate_per_second = (pmG729Seizures) / 900

#9.3.7	VPP Advanced Mezzanine Card
#9.3.7.1   Device Processor Load
#Device Processor Load (in %) = VppUnit.pmDpLoad
Device_Processor_Load_in_percent = pmDpLoad

#9.3.7.2   Network Processor Load
#Network Processor Load (in %) = VppUnit.pmNpLoad
Network_Processor_Load_in_percent = pmNpLoad

#9.3.7.3   Bandwidth Load of Group of Internal Ethernet Interfaces
#Bandwidth Load of Group of Internal Ethernet Interfaces (in %) = VppUnit.pmIntEthIfBwLoad
Bandwidth_Load_of_Group_of_Internal_Ethernet_Interfaces_in_percent = pmIntEthIfBwLoad

#9.4	Physical Node
#9.4.1	SCTP
#9.4.1.1   Number of Received and Sent SCTP Data Chunks
# The total number of received SCTP data chunks = Sctp.pmSctpStatRecChunks
# The total number of sent SCTP data chunks = Sctp.pmSctpStatSentChunks  + Sctp.pmSctpStatRetransChunks
The_total_number_of_received_SCTP_data_chunks = pmSctpStatRecChunks
The_total_number_of_sent_SCTP_data_chunks = pmSctpStatSentChunks + pmSctpStatRetransChunks

#9.4.1.2   Number of Received and Sent SCTP Packages
# The total number of sent SCTP packages = Sctp.pmSctpStatSentPackages
# The total number of received SCTP packages = Sctp.pmSctpStatReceivedPackages
The_total_number_of_sent_SCTP_packages = pmSctpStatSentPackages
The_total_number_of_received_SCTP_packages = pmSctpStatReceivedPackages

#9.4.1.3   Bundling Performance, SCTP
#SCTP bundling, transmitted = (Sctp.pmSctpStatSentChunks + Sctp.pmSctpStatRetransChunks + Sctp.pmSctpStatSentControlChunks) / Sctp.pmSctpStatSentPackages
#SCTP bundling, received = (Sctp.pmSctpStatRecChunks + Sctp.pmSctpStatRecChunksDropped + Sctp.pmSctpStatReceivedControlChunks) / Sctp.pmSctpStatReceivedPackages
#SCTP association bundling, transmitted = (SctpAssociation.pmOutDataChunks + SctpAssociation.pmOutControlChunks + SctpAssociation.pmRtxChunks) / SctpAssociation.pmOutPacks
#SCTP association bundling, received = (SctpAssociation.pmInDataChunks + SctpAssociation.pmInDataChunkDiscards + SctpAssociation.pmInDataChunkAbnormal + SctpAssociation.pmInControlChunks + SctpAssociation.pmInControlChunkDiscards + SctpAssociation.pmInControlChunkAbnormal) / SctpAssociation.pmInPacks

SCTP_bundling_transmitted = (pmSctpStatSentChunks + pmSctpStatRetransChunks + pmSctpStatSentControlChunks) / pmSctpStatSentPackages
SCTP_bundling_received = (pmSctpStatRecChunks + pmSctpStatRecChunksDropped + pmSctpStatReceivedControlChunks) / pmSctpStatReceivedPackages
SCTP_association_bundling_transmitted = (pmOutDataChunks + pmOutControlChunks + pmRtxChunks) / pmOutPacks
SCTP_association_bundling_received = (pmInDataChunks + pmInDataChunkDiscards + pmInDataChunkAbnormal + pmInControlChunks + pmInControlChunkDiscards + pmInControlChunkAbnormal) / pmInPacks

#9.4.2	ET Load for ET-IP
#ET Load = EtResource.pmLoad
ET_IP_Load = pmLoad

#9.4.3	IP
#9.4.3.1   Number of Received and Sent IP Datagrams for IP Transport (Gigabit Ethernet Interface)
# The total number of received IP datagrams = IpInterface.pmIfStatsIpInReceives*1000
# The total number of sent IP datagrams = IpInterface.pmIfStatsIpOutRequests*1000  - IpInterface.pmIfStatsIpOutDiscards
The_total_number_of_received_IP_datagrams_IF = pmIfStatsIpInReceives*1000
The_total_number_of_sent_IP_datagrams_IF = pmIfStatsIpOutRequests*1000  - pmIfStatsIpOutDiscards

#9.4.3.2   Number of Received and Sent IP Datagrams for Signalling over IP (Host)
# The total number of received IP datagrams = IpAccessHostGpb.pmIpInReceives
# The total number of sent IP datagrams = IpAccessHostGpb.pmIpOutRequests  - IpAccessHostGpb.pmIpOutDiscards
The_total_number_of_received_IP_datagrams_IpAccessHostGpb = pmIpInReceives
The_total_number_of_sent_IP_datagrams_IpAccessHostGpb = pmIpOutRequests  - pmIpOutDiscards

#9.4.3.3   Number of Received and Sent IP Datagrams for Signalling over IP (Fast Ethernet Interface)
# The total number of received IP datagrams = FastEthernet.pmIfInBroadcastPkts  + FastEthernet.pmIfInMulticastPkts  + FastEthernet.pmIfInUcastPkts
# The total number of sent IP datagrams = FastEthernet.pmIfOutBroadcastPkts  + FastEthernet.pmIfOutMulticastPkts  + FastEthernet.pmIfOutUcastPkts  - FastEthernet.pmIfOutDiscards  - FastEthernet.pmIfOutErrors
The_total_number_of_received_IP_datagrams_FE = pmIfInBroadcastPkts  + pmIfInMulticastPkts  + pmIfInUcastPkts
The_total_number_of_sent_IP_datagrams_FE = pmIfOutBroadcastPkts  + pmIfOutMulticastPkts  + pmIfOutUcastPkts  - pmIfOutDiscards  - pmIfOutErrors

#9.4.3.4   Number of Received and Sent IP Datagrams for Signalling over IP (Gigabit Ethernet Interface)
# The total number of received IP datagrams = IpInterface.pmIfStatsIpInReceives*1000
# The total number of sent IP datagrams = IpInterface.pmIfStatsIpOutRequests*1000  - IpInterface.pmIfStatsIpOutDiscards
# eashut - same formula as in 9.4.3.1

#9.4.3.5   Received and Transmitted Bandwidth (Mbps) in Fast Ethernet, Signalling
# Received bandwidth (Mbps) = ((FastEthernet.pmIfInOctetsHi  * 2^31 + FastEthernet.pmIfInOctetsLo ) / (1000000 * 900)) * 8
# Transmitted bandwidth (Mbps) = ((FastEthernet.pmIfOutOctetsHi  * 2^31 + FastEthernet.pmIfOutOctetsLo ) / (1000000 * 900)) * 8
Received_bandwidth_in_Mbps_FE = ((pmIfInOctetsHi  * 2147483648 + pmIfInOctetsLo ) / (1000000 * 900)) * 8
Transmitted_bandwidth_in_Mbps_FE = ((pmIfOutOctetsHi  * 2147483648 + pmIfOutOctetsLo ) / (1000000 * 900)) * 8

#9.4.3.6   Received and Transmitted Bandwidth (Mbps) in Gigabit Ethernet
# Received bandwidth on link 1 with headers (Mbps) = ((GigaBitEthernet.pmIfInOctetsLink1Hi  * 2^31 + GigaBitEthernet.pmIfInOctetsLink1Lo ) / (1000000 * 900)) * 8
# Received bandwidth on link 2 with headers (Mbps) = ((GigaBitEthernet.pmIfInOctetsLink2Hi  * 2^31 + GigaBitEthernet.pmIfInOctetsLink2Lo ) / (1000000 * 900)) * 8
# Transmitted bandwidth on link 1 with headers (Mbps) = ((GigaBitEthernet.pmIfOutOctetsLink1Hi  * 2^31 + GigaBitEthernet.pmIfOutOctetsLink1Lo ) / (1000000 * 900)) * 8
# Transmitted bandwidth on link 2 with headers (Mbps) = ((GigaBitEthernet.pmIfOutOctetsLink2Hi  * 2^31 + GigaBitEthernet.pmIfOutOctetsLink2Lo ) / (1000000 * 900)) * 8
# Received bandwidth on link 1 without Ethernet headers (Mbps) = Received bandwidth on link 1 with headers (Mbps) - (GigaBitEthernet.pmIfInUcastPktsLink1 * 1000  + GigaBitEthernet.pmIfInBroadcastPktsLink1  + GigaBitEthernet.pmIfInMulticastPktsLink1 ) * ET_HEADER * 8 / 900 / 1000000
# Received bandwidth on link 2 without Ethernet headers (Mbps) = Received bandwidth on link 2 with headers (Mbps) - (GigaBitEthernet.pmIfInUcastPktsLink2 * 1000  + GigaBitEthernet.pmIfInBroadcastPktsLink2  + GigaBitEthernet.pmIfInMulticastPktsLink2 ) * ET_HEADER * 8 / 900 / 1000000
# Transmitted bandwidth on link 1 without Ethernet headers (Mbps) = Transmitted bandwidth on link 1 with headers (Mbps) - (GigaBitEthernet.pmIfOutUcastPktsLink1 * 1000  + GigaBitEthernet.pmIfOutBroadcastPktsLink1  + GigaBitEthernet.pmIfOutMulticastPktsLink1 ) * ET_HEADER * 8 / 900 / 1000000
# Transmitted bandwidth on link 2 without Ethernet headers (Mbps) = Transmitted bandwidth on link 2 with headers (Mbps) - (GigaBitEthernet.pmIfOutUcastPktsLink2 * 1000  + GigaBitEthernet.pmIfOutBroadcastPktsLink2  + GigaBitEthernet.pmIfOutMulticastPktsLink2 ) * ET_HEADER * 8 / 900 / 1000000
Received_bandwidth_on_link_1_with_headers_in_Mbps = ((pmIfInOctetsLink1Hi  * 2147483648 + pmIfInOctetsLink1Lo ) / (1000000 * 900)) * 8
Received_bandwidth_on_link_2_with_headers_in_Mbps = ((pmIfInOctetsLink2Hi  * 2147483648 + pmIfInOctetsLink2Lo ) / (1000000 * 900)) * 8
Transmitted_bandwidth_on_link_1_with_headers_in_Mbps = ((pmIfOutOctetsLink1Hi  * 2147483648 + pmIfOutOctetsLink1Lo ) / (1000000 * 900)) * 8
Transmitted_bandwidth_on_link_2_with_headers_in_Mbps = ((pmIfOutOctetsLink2Hi  * 2147483648 + pmIfOutOctetsLink2Lo ) / (1000000 * 900)) * 8
Received_bandwidth_on_link_1_without_Ethernet_headers_in_Mbps = (((pmIfInOctetsLink1Hi  * 2147483648 + pmIfInOctetsLink1Lo ) / (1000000 * 900)) * 8) - ((pmIfInUcastPktsLink1 * 1000  + pmIfInBroadcastPktsLink1  + pmIfInMulticastPktsLink1 ) * 22 * 8 / 900 / 1000000)
Received_bandwidth_on_link_2_without_Ethernet_headers_in_Mbps = (((pmIfInOctetsLink2Hi  * 2147483648 + pmIfInOctetsLink2Lo ) / (1000000 * 900)) * 8) - ((pmIfInUcastPktsLink2 * 1000  + pmIfInBroadcastPktsLink2  + pmIfInMulticastPktsLink2 ) * 22 * 8 / 900 / 1000000)
Transmitted_bandwidth_on_link_1_without_Ethernet_headers_in_Mbps = (((pmIfOutOctetsLink1Hi  * 2147483648 + pmIfOutOctetsLink1Lo ) / (1000000 * 900)) * 8) - ((pmIfOutUcastPktsLink1 * 1000  + pmIfOutBroadcastPktsLink1  + pmIfOutMulticastPktsLink1 ) * 22 * 8 / 900 / 1000000)
Transmitted_bandwidth_on_link_2_without_Ethernet_headers_in_Mbps = (((pmIfOutOctetsLink2Hi  * 2147483648 + pmIfOutOctetsLink2Lo ) / (1000000 * 900)) * 8) - ((pmIfOutUcastPktsLink2 * 1000  + pmIfOutBroadcastPktsLink2  + pmIfOutMulticastPktsLink2 ) * 22 * 8 / 900 / 1000000)

#9.4.3.7   Received and Transmitted Bandwidth (Mbps) on CMXB
#not implemented
