ASR9000 Monitoring Power Supply Information via SNMP


Tue, 09/01/2015 - 05:27
Dec 22nd, 2011


Monitoring Power-supplies is done using the ENTITY-MIB (RFC-2737) and MIBs which extend/supplement the ENTITY-MIB.  The ENTITY-MIB’s entPhysicalTable defines the MIB identifierfor an inventory item, entPhysicalIndex, which is used by the other MIBs extending ENTITY-MIB information.

The relevant Cisco extensions to the ENTITY-MIB supported:


MIB Details

NOTE:  In XR Power Supply information is considered “admin” restricted information which is therefore only accessible via community-strings/usernames configured with the “SystemOwner” keyword, ie. “snmp-server community adminLevelCommStr RO SystemOwner” (then poll with “adminLevelCommStr” as community-string).


Use the entPhysicalTable to determine the physical hierarchy of entities.  The entPhysicalTable maps entPhysicalIndex values to the other identifying information for each physical entity modeled in the system.  The hierarchy of entities is learned using the following objects:

Object Name



Indicates the generic type of entity being modeled.


Indicates the parent entity for the entity being modeled.


Indicates the position number of the entity within its parent entity   relative to other entities of the same class.

entPhysicalTable Hierarchy for ASR9K Power-Supply Entities

The entity hierarchy visualization:

Entity Hierarchy Visualization for Power Supplies with Entity Details

Entity Hierarchy Output Format:




   +-->[entPhysicalParentRelPos]   entPhysicalIndex : "entPhysicalName"

       |                                              "entPhysicalDescr"

       |                                              "entPhysicalVendorType"


      ... hierarchy of children (entPhysicalContainedIn == entPhysicalIndex)




+-->[ -1]  24555730 : "chassis ASR-9010-AC"

    |            "ASR-9010 AC Chassis"

    |            "cevChassisASR9010AC"





    +-->[ 12]  43665869 : "slot 0/PM0"

    |   |            "Cisco ASR9K AC Power Entry Module Container"

    |   |            "cevContainerASR9KPowerSupplySlotAC"

    |   |

    |   <<powerSupply>>

    |   |

    |   +-->[  0]  66531208 : "power-module 0/PM0/SP"

    |       |            "3kW AC Power Module"

    |       |            "cevPowerSupplyASR9KAC3KW"

    |       |

    |       <<module>>

    |       |

    |       +-->[  0]  19750579 : "module 0/PM0/SP"

    |           |            "Power-Module host "

    |           |            "cevModuleASR9KHost"

    |           |

    |           <<sensor>>

    |           |

    |           +-->[  0]  20133606 : "capacity 0/PM0/SP"

    |           |                "Power Module Capacity Sensor"

    |           |                "cevSensor.71"

    |           |

    |           +-->[  1]  3355929 : "voltage 0/PM0/SP"

    |           |                "Power Module Voltage Sensor"

    |           |                "cevSensor.72"

    |           |

    |           +-->[  2]  53687180 : "current 0/PM0/SP"

    |                            "Power Module Current Sensor"

    |                            "cevSensor.73"


    +-->[ 13]  60443482 : "slot 0/PM1"

    |                "Cisco ASR9K AC Power Entry Module Container"

    |                "cevContainerASR9KPowerSupplySlotAC"


    +-->[ 14]  10110611 : "slot 0/PM2"

    |                "Cisco ASR9K AC Power Entry Module Container"

    |                "cevContainerASR9KPowerSupplySlotAC"


    +-->[ 15]  26888288 : "slot 0/PM3"

    |                "Cisco ASR9K AC Power Entry Module Container"

    |                "cevContainerASR9KPowerSupplySlotAC"


    +-->[ 16]  43667457 : "slot 0/PM4"

    |                "Cisco ASR9K AC Power Entry Module Container"

    |                "cevContainerASR9KPowerSupplySlotAC"


    +-->[ 17]  60445166 : "slot 0/PM5"

                     "Cisco ASR9K AC Power Entry Module Container"



Using the info from the entPhysicalTable the information from the CISCO-ENTITY-FRU-CONTROL-MIB can be obtained with the appropriate entPhysicalIndex values for the entities of concern.

Power Supply Power Status Info

Object Name



Power Administrative status of the entity


Power Operational Status of the entity


Current supplied by the entity – positive values indicate   power-supplied by the entity; negative values indicate current required to   operate the entity.

Example Output for Power Supply entities:

cefcFRUPowerAdminStatus.66531208 = on(1)

cefcFRUPowerOperStatus.66531208 = on(2)

cefcFRUCurrent.66531208 = 3000


For power supply sensors the entSensorValueTable is supported to indicate the value of the sensors.  The entSensorThresholdTable is not supported for ASR9K power-supply sensors.

Example Output for Power Supply Sensors

For 20133606 : "capacity 0/PM0/SP"

entSensorType.20133606 = watts(6)

entSensorScale.20133606 = units(9)

entSensorPrecision.20133606 = 0

entSensorValue.20133606 = 3000

entSensorStatus.20133606 = ok(1)

entSensorValueTimeStamp.20133606 = 00:00:00.00

entSensorValueUpdateRate.20133606 = 0

For 3355929 : "voltage 0/PM0/SP"

entSensorType.3355929 = voltsDC(4)

entSensorScale.3355929 = milli(8)

entSensorPrecision.3355929 = 0

entSensorValue.3355929 = 54350

entSensorStatus.3355929 = ok(1)

entSensorValueTimeStamp.3355929 = 00:00:00.00

entSensorValueUpdateRate.3355929 = 0

For 53687180 : "current 0/PM0/SP"

entSensorType.53687180 = amperes(5)

entSensorScale.53687180 = milli(8)

entSensorPrecision.53687180 = 0

entSensorValue.53687180 = 25600

entSensorStatus.53687180 = ok(1)

entSensorValueTimeStamp.53687180 = 00:00:00.00

entSensorValueUpdateRate.53687180 = 0

Alexander Thuijs Wed, 01/23/2013 - 08:57

Thank you!

Its part of the CLI description in the documentation, obviously in v3 the community string has no signficance and if you check the parser help it is not presented as an option either:

RP/0/RSP0/CPU0:A9K-BNG(config)#snmp-server host version 3 ?

  auth    Using authNoPriv Security Level

  noauth  Using noAuthNoPriv Security Level

  priv    Using authPriv Security Level

similarly, when you provide the community, the version is assumbed to be not 3:

RP/0/RSP0/CPU0:A9K-BNG(config)#snmp-server host test ?

  udp-port  udp port to which notifications should be sent



muhammad.shiras Thu, 01/24/2013 - 10:48

Hi Alexander & friends,

                     I also felt the same doubts when I read it first time. Let me know how can I configre snmp engine id manually. From  where can i get the engine-id for manual configuration. Why engine-id is very important in snmp ?In the command : snmp-server engineID local engine-id , where can I get the ID ?

Alexander Thuijs Thu, 01/24/2013 - 11:04


The SNMP engine ID is a unique string used to identify the device for  administration purposes. You do not need to specify an engine ID for the  device; a default string is generated using Cisco's enterprise number  ( and the mac address of the first interface on the  device. For further details on the SNMP engine ID, see RFC 2571.

If you wish to specify your own ID, note that you need not specify the  entire 24-character engine ID if it contains trailing zeros. Specify  only the portion of the Engine ID up until the point where only zeros  remain in the value.


muhammad.shiras Thu, 01/24/2013 - 11:24

Thanks Xander. I am aading the same "from can I get the engine ID ? ". As per my best level of knowledge snmp v1 and v2 won't support encryption. But in the command CCO, they have given like this. Can I get the options v1 and v2 if I select "encryption". Please make sure which is right?

snmp-server host address [clear| encrypted] [informs] [traps] [version {1| 2c| 3 {auth| noauth| priv}}]

community-string [udp-port port] [ notification-type ]

manuv1984 Wed, 01/23/2013 - 08:28

Hi Xander,

              Thanks for making such a wonderful document. In SNMP V3, we have only user name based authentication instead of community string as in V1 and V2. Even though why they have given "community-string" in this syntax  along with v3 also ?


Chris Mason Fri, 03/01/2013 - 03:21


Very good article on how to probe the power supplies on the ASR 9010, but is it possible to obtain the current power drain as opposed to the capacity of the PEM?

i.e. the following values:

RP/0/RSP0/CPU0:Router# admin show environment power-supply

R/S/I   Power Draw      Voltage         Current

        (W)             (V)             (A)

0/PM0/* 553.8           54.3            10.2

0/PM1/* 464.4           54.0            8.6

0/PM2/* 1104.1          53.6            20.6


Total:  2122.3



Chris Mason Fri, 03/01/2013 - 04:15

I have sorted it, I was looking for Watts, but I am able to obtain Current and Voltage and then deduce Watts from Ohms law.

Alexander Thuijs Fri, 03/01/2013 - 04:42

Hi Chris, yeah that was going to be my recommendation, thanks for letting me know.

P = V * I right?



diego.macedo Tue, 08/18/2015 - 13:22

Hi Chris and Xander,


I'm looking for the power oid too but I can't find the watts, nor the voltage nor the Current... Can you send me the oid's?


King Regards



Alexander Thuijs Tue, 08/18/2015 - 17:22

hi diego, this:

For 53687180 : "current 0/PM0/SP"

entSensorType.53687180 = amperes(5)

entSensorScale.53687180 = milli(8)

entSensorPrecision.53687180 = 0

entSensorValue.53687180 = 25600

entSensorStatus.53687180 = ok(1)

you first need to get the entity mib to see what the instance value is for the sensor (PM) that you want to measure obviously.

and also you want to make sure the sysowner is configured on the community otherwise it would be abel to read it.



robertbeumer Tue, 08/25/2015 - 09:34

Hi Xander,


When trying to calculate the actual power consumption, I get values that do not correspond to the CLI. The OID's:


ENTITY-MIB::entPhysicalName.3355929 = STRING: voltage 0/PM0/SP
ENTITY-MIB::entPhysicalName.19750579 = STRING: module 0/PM0/SP
ENTITY-MIB::entPhysicalName.20133606 = STRING: capacity 0/PM0/SP
ENTITY-MIB::entPhysicalName.43665869 = STRING: slot 0/PM0
ENTITY-MIB::entPhysicalName.53687180 = STRING: current 0/PM0/SP
ENTITY-MIB::entPhysicalName.66531208 = STRING: power-module 0/PM0/SP


So I fetch the current for 0/PM0/SP:


CISCO-ENTITY-SENSOR-MIB::entSensorValue.53687180 = INTEGER: 21250
21250 mA = 21,25A


And the voltage:

CISCO-ENTITY-SENSOR-MIB::entSensorValue.3355929 = INTEGER: 54270
54270 mV = 54,27V


So if you multiply those to calculate the capacity:


54,27V * 21,25A = 1153 Watt


"admin show env power" shows very different values for 0/PM0/SP (around 19A and in total 1060W)





Alexander Thuijs Tue, 08/25/2015 - 10:02

well total different seems a bit of an overstatement, no? 8% difference.

thing is the cli gets the actual read from the hardware instantly, snmp gets it from cached (so periodic updated) ones so the fact that there is some fluctuation is not unexpected.

this falls for me within the realm of acceptable.

"fixing" this with hw reads every time an snmp query comes in comes along with a significant scale impact, hence the caching layers put in for better performance etc.



robertbeumer Tue, 08/25/2015 - 23:07

True, 8% might be a fluctuation. But whe I try to read 0/PM1 i get really weird results:


ENTITY-MIB::entPhysicalName.2237736 = STRING: module 0/PM1/SP
ENTITY-MIB::entPhysicalName.15858003 = STRING: capacity 0/PM1/SP
ENTITY-MIB::entPhysicalName.21657197 = STRING: power-module 0/PM1/SP
ENTITY-MIB::entPhysicalName.32635680 = STRING: voltage 0/PM1/SP
ENTITY-MIB::entPhysicalName.49413261 = STRING: current 0/PM1/SP
ENTITY-MIB::entPhysicalName.60443482 = STRING: slot 0/PM1



CISCO-ENTITY-SENSOR-MIB::entSensorValue.32635680 = INTEGER: 54012



CISCO-ENTITY-SENSOR-MIB::entSensorValue.49413261 = INTEGER: 19750

So, when I calculate the capacity:


54V * 19,8A = 1069,2W

The output from the show command:


R/S/I           Power Supply    Voltage         Current
                (W)             (V)             (A)
 0/PM0/*        1060.8          54.4            19.5
 0/PM1/*         528.2          53.9             9.8
Total:  1589.0


This result seems to match PM0 instead of PM1.




Alexander Thuijs Wed, 08/26/2015 - 05:22

that I agree with Robert, it seems to return values from different module.

not knowing what version you have there, I see quite a few fixes there:

CSCur52091: 5.3.0: SNMP-CLI mismatch for entSensorThresholdValue

CSCus78773: 5.3.1:wrong display of 2 instances of line_8 voltage sensor in CLI

CSCuu69614: 5.3.0:FC2 entSensorThresholdEvaluation is improper for voltage sensors

you could try a reseat of the power modules so they reindex or a process restart of the invmgr to try and alleviate this issue.



robertbeumer Tue, 09/01/2015 - 05:17

Hi Xander,


It seems to be limited to one router, other routers show the correct values for their power supplies. I have a different question though:


When trying to monitor the power usage for a linecard in my router I can't find an entry for the LC voltage and current. I do find several entries for the voltage:


ENTITY-MIB::entPhysicalName.6752423 = STRING: voltage 0/2/0


ENTITY-MIB::entPhysicalName.23530036 = STRING: voltage 0/2/0

ENTITY-MIB::entPhysicalName.40309205 = STRING: voltage 0/2/0


These values are way too low, around 2V, so I think I've got the wrong entries. Do you have any experience with monitoring the power consumption for a LC?


Alexander Thuijs Tue, 09/01/2015 - 05:27

yeah yu mean the actual LC draw right?

I dont believe that is in the mib, but you could walk it to see if the actual instances from this admin show env power:

R/S/I           Power Draw      Voltage         Current
                (W)             (V)             (A)
   0/0/*         519.3          54.1             9.6
   0/2/*         731.6          53.8            13.6

are in there, dont believe they are.

the low voltage points you see are the sensors next to some of the asics and cpu's to measure the voltage at their inlets, not necessary to monitor those.




This Document