Network Working Group J. Quittek, Ed. Internet-Draft R. Winter Intended status: Standards Track T. Dietz Expires: April 28, 2011 D. Dudkowski NEC Europe Ltd. October 25, 2010 Definition of Managed Objects for Energy Management draft-quittek-power-mib-02.txt Abstract This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes managed objects providing information about the energy consumption, the power states, and the battery status of managed devices and their components. Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on April 28, 2011. Copyright Notice Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Quittek, et al. draft-quittek-power-mib-02.txt [Page 1] Internet-Draft Power MIB Modules October 2010 Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the BSD License. Table of Contents 1. The Internet-Standard Management Framework . . . . . . . . . . 3 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Identifying Monitored Devices and Components . . . . . . . . . 4 4. Power State MIB . . . . . . . . . . . . . . . . . . . . . . . 5 4.1. Current Power State Table . . . . . . . . . . . . . . . . 5 4.2. Power State Table . . . . . . . . . . . . . . . . . . . . 6 5. Energy MIB . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5.1. Energy Consumption Table . . . . . . . . . . . . . . . . . 7 5.2. Energy Consumption Per Power State Table . . . . . . . . . 8 5.3. Power History Table . . . . . . . . . . . . . . . . . . . 9 6. Battery MIB . . . . . . . . . . . . . . . . . . . . . . . . . 9 7. Relationship to Other MIB Modules . . . . . . . . . . . . . . 10 8. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 11 8.1. Power State MIB . . . . . . . . . . . . . . . . . . . . . 11 8.2. Energy MIB . . . . . . . . . . . . . . . . . . . . . . . . 20 8.3. Battery MIB . . . . . . . . . . . . . . . . . . . . . . . 39 9. Security Considerations . . . . . . . . . . . . . . . . . . . 51 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 52 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 52 11.1. Normative References . . . . . . . . . . . . . . . . . . . 52 11.2. Informative References . . . . . . . . . . . . . . . . . . 53 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 54 Quittek, et al. draft-quittek-power-mib-02.txt [Page 2] Internet-Draft Power MIB Modules October 2010 1. The Internet-Standard Management Framework For a detailed overview of the documents that describe the current Internet-Standard Management Framework, please refer to section 7 of RFC 3410 [RFC3410]. Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. MIB objects are generally accessed through the Simple Network Management Protocol (SNMP). Objects in the MIB are defined using the mechanisms defined in the Structure of Management Information (SMI). This memo specifies MIB modules that is compliant to the SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58,RFC 2580 [RFC2580]. 2. Introduction Energy management in communication networks is a topic that has been neglected for many years when energy was cheap and global warming not recognized. This has changed recently. Energy management is becoming a significant component of network planning, operations and management and new energy management strategies are currently being explored. An essential requirement for energy management is collecting information on energy consumption and energy storage at managed devices. An elementary step into this direction is monitoring power states. A power state defines a limitations of services provided by a device and implicitly limits energy consumption. Examples for commonly implemented power states include 'on', 'full power', 'low power', 'sleep', 'stand-by', and 'off'. There is no commonly agreed convention for power states naming and semantics. Therefore power states with the same names may have different semantics and different names may be in use for the same power state. But the actual energy consumption of a device depends on more than just its power state. Also the current load, the kind of load, and many other factors influence energy consumption. If instrumentation is available, it is very helpful to receive information on the actual energy consumption of a device and its component. Providing this information requires much more effort than reporting power states, because a probe that measures (electrical) power is required. Typically this means not just adding several lines of software to a device, but also adding costly sensor hardware to it. Quittek, et al. draft-quittek-power-mib-02.txt [Page 3] Internet-Draft Power MIB Modules October 2010 A third aspect to be considered for energy management is energy storage in batteries. It is helpful, for example, to monitor which device is running on batteries and which is charging its battery. Fortunately, the problem of instrumentation is often an easy one for devices with rechargeable batteries. Controlling the charging cycles needs instrumentation anyway and this instrumentation can also be used for providing battery status information. This document defines a portion of the Management Information Base (MIB) that serves the three purposes sketched above: o monitoring power states of managed entities, o monitoring energy consumption of managed entities, o monitoring the status of batteries contained in or controlled by managed devices. Supporting all three monitoring task will not make sense for every device. Many networked devices do not have batteries to be monitored and thus it would not make sense for them to implement managed objects for this purpose. As mentioned above, instrumentation for measuring actual energy consumption is relatively expensive and it will not make sense for every managed device to provide sufficient instrumentation. In such a case it would not be appropriate to still implement managed objects for energy consumption monitoring. This leads to the conclusion that the portions of the MIB for the three monitoring tasks listed above should be rather independent of each other and not combined in a single one. This document contains three MIB modules called Power State MIB, Energy MIB, and Battery MIB. The Energy MIB module uses an object defined in the Power State MIB module, but beyond that there is no dependency between the three modules. Obviously, any combination of the three modules is possible. The definitions in this document are based on the requirements outlined in [I-D.quittek-power-monitoring-requirements]. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. 3. Identifying Monitored Devices and Components As argued in [I-D.quittek-power-monitoring-requirements] it is often required or at least desirable to not just monitor energy consumption and power state of an entire devices, but also of its contained Quittek, et al. draft-quittek-power-mib-02.txt [Page 4] Internet-Draft Power MIB Modules October 2010 individual components. Furthermore it is argued in [I-D.quittek-power-monitoring-requirements] that there are cases where it is required that a managed device reports about energy consumption of one or more other, potentially remote devices. An example is a power strip reporting actual power and accumulated energy consumption of devices plugged into it. It is not the purpose of MIB modules in this document to solve the problem of identifying components of the managed device that implements these modules or of components remote to this managed device. The task of identifying the entity that is subject of monitoring is left to other MIB modules, such as the ENERGY AWARE MIB module [I-D.parello-eman-energy-aware-mib], and the Entity MIB module [RFC4133]. As an open and flexible way of identifying the monitored entity, the MIB modules in this document use an OID as index that points into a MIB module used for identifying the monitored entity. For simplifying the trivial case that the monitored entity is identical with the device that implements the MIB module, an empty OID may be used. 4. Power State MIB A number of devices today can operate in a number of different power states by reducing performance or going into standby mode or sleep mode. The Power State MIB module can be used for monitoring these states. Typically, not much instrumentation is needed for supporting the power state MIB module, because most devices with different power states are already equipped with means for controlling their these. The Power State MIB module is structured into two tables, the powerCurrentStateTable reporting the current power state per entity and the powerStateTable providing statistics per power state. In addition, the Power State MIB module defines a notification that can be sent for informing the receiver about a change of an entity's current power state. For identifying the entity for which power state information is provided, OIDs are used, as explained in the previous section. Both tables use such an OID as their first index. 4.1. Current Power State Table For basic monitoring of the actual power state of an entity, there is already a MIB module available: the Entity State MIB [RFC4268]. It reports the power state of an entity in object entStateStandby. It can have four different values: unknown(0), off(1), nonOperational(2), operational(3), see ENTITY-STATE-TC-MIB in Quittek, et al. draft-quittek-power-mib-02.txt [Page 5] Internet-Draft Power MIB Modules October 2010 [RFC4268]. If this was considered to be sufficient, there would be no need for replicating this object in the power state MIB module. However, there is a concern that the three "known" states are too few for reflecting the variety of power saving states available today. For PCs, for example, there are several more states defined for the Advanced Configuration & Power Interface (ACPI). It might be useful to support several or all of these power states as suggested by [I-D.claise-energy-monitoring-mib]. The powerCurrentStateTable contains just a two objects per row: powerStateTable(1) +--powerStateEntry(1) [powerStateEnergyConsumerId] +-- --- Integer32 powerStateEnergyConsumerId(1) +-- --- ObjectIdentifier powerStateEnergyConsumerOid(2) +-- r-n SnmpAdminString powerStateOperationalState(3) +-- rwn SnmpAdminString powerStateAdminState(4) Object powerStateOperationalState reports the actual power state of an entity at the time the object's value is retrieved. Object powerStateAdminState indicates a desired power state that the entity has been requested to enter, for example, by a network management system. 4.2. Power State Table The second table called powerStateTable provides more detailed statistics for each power state. For this purpose it uses the power state name as another index object next to the entity index. This way, statistics can be reported per entity and per power state. The second index has the syntax of a SnmpAdminString and can be defined by the manufacturer of the device or MIB. In this way the index can fit many devices because the characteristics of the power state can be defined per device. The characteristics of the power state SHOULD be described as closely as possible in the object powerStateDescription. Quittek, et al. draft-quittek-power-mib-02.txt [Page 6] Internet-Draft Power MIB Modules October 2010 powerStateAllStatesTable(2) +--powerStateAllStatesEntry(1) [powerStateEnergyConsumerId,powerStateName] +-- --- SnmpAdminString powerStateName(1) +-- r-n Enumeration powerStateType(2) +-- r-n SnmpAdminString powerStateDescription(3) +-- r-n Integer32 powerStateAveragePower(4) +-- r-n Integer32 powerStateMaximumPower(5) +-- r-n TimeTicks powerStateTotalTime(6) +-- r-n TimeStamp powerStateLastEnterTime(7) +-- r-n SnmpAdminString powerStateLastEnterReason(8) +-- r-n Counter64 powerStateEnterCount(9) The offered statistics include the total time that the entity spent in a certain power state (powerStateTotalTime), the last time at which the entity entered a power state (powerStateLastEnterTime), the reason for entering it at the last time (powerStateLastEnterReason), the number of times a certain state has been entered (powerStateEnterCount), the average power consumed by the entity (powerStateAveragePower) and the maximum power consumed by the entity (powerStateMaximumPower). 5. Energy MIB Devices that have instrumentation for measuring electrical energy consumption of entities can implement the Energy MIB module. Entities for which energy consumption is reported can be the entire devices, a component thereof or even an external entity for which the reporting devices observes the energy consumption. The Energy MIB module defines two tables, the energyTable and the energyPerStateTable. The first one provides information on the instrumentations and on measured energy consumption of the entity. The second one provides energy consumption information for each individual power state. 5.1. Energy Consumption Table The first set of managed objects in the energyTable are needed to help interpreting the energy consumption readings. These include the power supply type and voltage. Quittek, et al. draft-quittek-power-mib-02.txt [Page 7] Internet-Draft Power MIB Modules October 2010 energyTable(1) +--energyEntry(1) [energyConsumerId] +-- --- Integer32 energyConsumerId(1) +-- --- ObjectIdentifier energyConsumerOid(2) +-- r-n EntitySensorStatus energySensorOperStatus(3) +-- r-n Unsigned32 energyNominalSupplyVoltage(4) +-- r-n Enumeration energyElectricSupplyType(5) +-- r-n Unsigned32 energyTotalEnergy(6) +-- r-n UnitMultiplier energyEnergyUnitMultiplier(7) +-- r-n Integer32 energyEnergyPrecision(8) +-- r-n Enumeration energyMeasurementMethod(9) +-- r-n TimeStamp energyDiscontinuityTime(10) +-- r-n Unsigned32 energySampleInterval(11) +-- r-n Unsigned32 energyMaxHistory(12) +-- r-n UnitMultiplier energyPowerUnitMultiplier(13) +-- r-n Integer32 energyPowerPrecision(14) +-- r-n Unsigned32 energyRealPower(15) +-- r-n Unsigned32 energyPeakRealPower(16) +-- r-n Unsigned32 energyReactivePower(17) +-- r-n Unsigned32 energyApparentPower(18) +-- r-n Integer32 energyPhaseAngle(19) +-- r-n Integer32 energyPhaseAnglePrecision(20) The main measured values provided by the table are the total energy consumed by the device and the current power (energy consumption rate). For entities supplied with alternating current (AC) there are also objects defined for reporting apparent power, reactive power and phase angle. Provided energy and power values need to be multiplied by a unit multiplier given by a corresponding unit multiplier object in order to determine a measured value. Measurements of the total energy consumed by an entity may suffer from interruptions in the continuous measurement of the current energy consumption. In order to indicate such interruptions, object energyDiscontinuityTime is provided for indicating the time of the last interruption of total energy measurement. Time series of energy consumption values for past points in time are stored in the energyHistoryTable. Objects energySampleInterval and energyMaxHistory control the generation of entries in this table, see below. 5.2. Energy Consumption Per Power State Table The second table in this module is called energyPerStateTable and it provides values of total energy consumption per power state in a way Quittek, et al. draft-quittek-power-mib-02.txt [Page 8] Internet-Draft Power MIB Modules October 2010 similar to the powerStateTable in the Power State MIB module. energyPerStateTable(2) +--energyPerStateEntry(1) [energyConsumerId,powerStateName] +-- r-n Unsigned32 energyPerStateTotalEnergy(1) 5.3. Power History Table The third table in this module is the energyHistoryTable. It stores total energy consumtion values for past points in time. energyHistoryTable(3) +--energyHistoryEntry(1) [energyConsumerId,energyHistoryIndex] +-- --- Unsigned32 energyHistoryIndex(1) +-- r-n TimeStamp energyHistoryTimestamp(2) +-- r-n Unsigned32 energyHistoryTotalEnergy(3) Creation of entries in this table is controlled by the values of corresponding objects energySampleInterval and energyMaxHistory in the energyTable. Entries are indexed by the the entity (energyConsumerId) and by energyHistoryIndex. The first entry created for a certain entity in the table always has an energyHistoryIndex with a value of 1. Further entries for the same entity get increasing consecutive indices until the maximum index value given by object energyMaxHistory is reached. Then, no further indices will be used, but the entry with the oldest timestamp will be overwritten each time a new entry needs to be created. A new entry is created with a time difference given by object energySampleInterval after creation of the previous entry. Hence, the difference between timestamps energyHistoryTimestamp of two consecutive entries SHOULD be equal to the value of object energySampleInterval. 6. Battery MIB Editor's note: The Battery MIB module still uses the entPhysicalIndex from the ENTITY MIB. This will be changed in the next revision. The third MIB module defined in this document defines objects for reporting information about batteries. The batteryTable contained in the Batter MIB module is again a sparse augment of the Entity MIB module [RFC4133]. It uses one row per battery and require that every battery for which information is provided has its own entry in the entPhysicalTable of the Entity MIB module. Quittek, et al. draft-quittek-power-mib-02.txt [Page 9] Internet-Draft Power MIB Modules October 2010 The kind of entity in the entPhysicalTable is indicated by the value of enumeration object entPhysicalClass. Since there is no value called 'battery' defined for this object, it is RECOMMENDED that for batteries the value of this object is chosen to be powerSupply(6). The batteryTable contains three groups of objects. The first group describes the battery in more detail than the generic objects in the entPhysicalTable. The second group of objects report on the current battery state, if it is charging or discharging, how much it is charged, its remaining capacity, the number of experienced charging cycles, etc. batteryTable(1) +--batteryEntry(1) [entPhysicalIndex] +-- r-n Enumeration batteryType(1) +-- r-n Enumeration batteryTechnology(2) +-- r-n Unsigned32 batteryNominalVoltage(3) +-- r-n Unsigned32 batteryNumberOfCells(4) +-- r-n Unsigned32 batteryNominalCapacity(5) +-- r-n Unsigned32 batteryRemainingCapacity(6) +-- r-n Counter32 batteryChargingCycleCount(7) +-- r-n DateAndTime batteryLastChargingCycleTime(8) +-- r-n Enumeration batteryState(9) +-- r-n Unsigned32 batteryCurrentCharge(10) +-- r-n Unsigned32 batteryCurrentChargePercentage(11) +-- r-n Unsigned32 batteryCurrentVoltage(12) +-- r-n Integer32 batteryCurrentCurrent(13) +-- r-n Unsigned32 batteryLowAlarmPercentage(14) +-- r-n Unsigned32 batteryLowAlarmVoltage(15) +-- r-n Unsigned32 batteryReplacementAlarmCapacity(16) +-- r-n Unsigned32 batteryReplacementAlarmCycles(17) The third group of objects in this table indicates thresholds which can be used to raise an alarm if a property of the battery exceeds one of them. Raising an alarm may include sending a notification. The Battery MIB defines two notifications, one indicating a low battery charging state and one indicating an aged battery that may need to be replaced. 7. Relationship to Other MIB Modules The three MIB modules described above relate to a number of existing standard MIB modules and complements them where necessary. This section needs to be revised. Quittek, et al. draft-quittek-power-mib-02.txt [Page 10] Internet-Draft Power MIB Modules October 2010 8. Definitions 8.1. Power State MIB POWER-STATE-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, mib-2, Integer32, Counter64, TimeTicks FROM SNMPv2-SMI -- RFC2578 TimeStamp FROM SNMPv2-TC -- RFC2579 MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF -- RFC2580 SnmpAdminString FROM SNMP-FRAMEWORK-MIB; -- RFC3411 powerStateMIB MODULE-IDENTITY LAST-UPDATED "201010231200Z" -- 23 October 2010 ORGANIZATION "IETF OPSAWG Working Group" CONTACT-INFO "General Discussion: opsawg@ietf.org To Subscribe: https://www.ietf.org/mailman/listinfo/opsawg Archive: http://www.ietf.org/mail-archive/web/opsawg Co-editor: Juergen Quittek NEC Europe Ltd. NEC Laboratories Europe Kurfuersten-Anlage 36 69115 Heidelberg Germany Tel: +49 6221 4342-115 Email: quittek@neclab.eu Co-editor: Thomas Dietz NEC Europe Ltd. NEC Laboratories Europe Kurfuersten-Anlage 36 69115 Heidelberg Germany Phone: +49 6221 4342-128 Email: Thomas.Dietz@neclab.eu" DESCRIPTION "This MIB module defines a set of objects for monitoring the power state of managed entitites. Quittek, et al. draft-quittek-power-mib-02.txt [Page 11] Internet-Draft Power MIB Modules October 2010 Copyright (c) 2010 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this MIB module is part of RFC yyyy; see the RFC itself for full legal notices." -- replace yyyy with actual RFC number & remove this notice -- Revision history REVISION "201010231200Z" -- 23 October 2010 DESCRIPTION "Initial version, published as RFC yyyy." -- replace yyyy with actual RFC number & remove this notice ::= { mib-2 9991 } -- xxx to be assigned by IANA. --****************************************************************** -- Top Level Structure of the MIB module --****************************************************************** powerStateNotifications OBJECT IDENTIFIER ::= { powerStateMIB 0 } powerStateObjects OBJECT IDENTIFIER ::= { powerStateMIB 1 } powerStateConformance OBJECT IDENTIFIER ::= { powerStateMIB 2 } --================================================================== -- 1. Object Definitions --================================================================== -------------------------------------------------------------------- -- 1.1. Actual Power State Table -------------------------------------------------------------------- powerStateTable OBJECT-TYPE SYNTAX SEQUENCE OF PowerStateEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table provides information on the current power state of managed entities. The table is indexed by an ID of the entity on which power Quittek, et al. draft-quittek-power-mib-02.txt [Page 12] Internet-Draft Power MIB Modules October 2010 state information is provided. IDs can be provided by another MIB module, such as the ENERGY AWARE MIB module or the ENTITY MIB module. If not ID provisioning from other MIB modules is available, the table can only have one entry for reporting the local power state of the device that tuns an instance of this table." ::= { powerStateObjects 1 } powerStateEntry OBJECT-TYPE SYNTAX PowerStateEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry providing information on the current power state of an entity." INDEX { powerStateEnergyConsumerId } ::= { powerStateTable 1 } PowerStateEntry ::= SEQUENCE { powerStateEnergyConsumerId Integer32, powerStateEnergyConsumerOid OBJECT IDENTIFIER, powerStateOperationalState SnmpAdminString, powerStateAdminState SnmpAdminString } powerStateEnergyConsumerId OBJECT-TYPE SYNTAX Integer32 (0..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An integer that identifies an entity that is subject of power state monitoring. Index values MUST be locally unique for each identified entity. If an implementation of the ENERGY AWARE MIB module is available in the local SNMP context, then the same index of an entity MUST be chosen as assigned to the entity by object pmIndex in the ENERGY AWARE MIB module. In this case, entities without an assigned value for pmIndex cannot be indexted by the powerCurrentStateTable. If there is no implementation of the ENERGY AWARE MIB module but one of the ENTITY MIB module is available in the local SNMP context, then the same index of an entity MUST be chosen as assigned to the entity by object entPhysicalIndex in the ENTITY MIB module. In this case, entities without an assigned value for pmIndex cannot be indexted by the Quittek, et al. draft-quittek-power-mib-02.txt [Page 13] Internet-Draft Power MIB Modules October 2010 powerCurrentStateTable. If neither the ENERGY AWARE MIB module nor of the ENTITY MIB module is available in the local SNMP context, then this MIB module may choose identity values from a further MIB module providing entity identities. In this case the value for each pmIndex must remain constant at least from one re-initialization of the entity's network management system to the next re-initialization. In case that no other MIB module has been chosen for providing entity identities, power state can be reported exclusively for the local device on which this table is instantiated. Then this table will have a single entry only and an index value of 0 MUST be used. The identity provisioning method that has been chosen can be retrived by reading the value of powerStateEnergyConsumerOid. In case of identities provided by the ENERGY AWARE MIB module, this OID points to an exising instance of pmIndex, in case of the ENTITY MIB, the object points to a valid instance of entPhysicalIndex, and in a similar way, it points to a value of another MIB module if this is used for identifying entities. If no other MIB module has been chosen for providing entity identities, then the value of powerStateEnergyConsumerOid MUST be 0.0 (zeroDotZero)." ::= { powerStateEntry 1 } powerStateEnergyConsumerOid OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS not-accessible STATUS current DESCRIPTION "An OID that identifies an entity that is subject of power state monitoring. The value MUST be an OID that points to an existing managed object or 0.0 (zeroDotZero). If another MIB module is chosen for providing identities for managed entities, then the value of this object points to an existing instance of an entity identifier, such as an instance of pmIndex in the ENERGY AWARE MIB or an instance of entPhysicalIndex in the ENTITY MIB module. If power state information is provided only for the local device on which this table is instantiated, then the value of this object MUST be 0.0 (zeroDotZero)." ::= { powerStateEntry 2 } Quittek, et al. draft-quittek-power-mib-02.txt [Page 14] Internet-Draft Power MIB Modules October 2010 powerStateOperationalState OBJECT-TYPE SYNTAX SnmpAdminString (SIZE(1..32)) MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the current power state of the entity. The given SnmpAdminString MUST match the powerStateName object of an enry in the powerStateAllStatesTable." ::= { powerStateEntry 3 } powerStateAdminState OBJECT-TYPE SYNTAX SnmpAdminString (SIZE(0..32)) MAX-ACCESS read-write STATUS current DESCRIPTION "This object indicates the desired power state of the entity. This object may be set by a network management system in order to request changing the actual power state to the desired one. If this object has not been set by an administrative action requesting a certain power state, then its value is an empty string of length 0." ::= { powerStateEntry 4 } -------------------------------------------------------------------- -- 1.2. All Power States Table -------------------------------------------------------------------- powerStateAllStatesTable OBJECT-TYPE SYNTAX SEQUENCE OF PowerStateAllStatesEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table provides information on all available power states of managed entities. The table extends the powerStateTable by sharing the first index. The first index serves for identifying an entity for which power state information is provided. The second index identifies a single power state by its name." ::= { powerStateObjects 2 } powerStateAllStatesEntry OBJECT-TYPE SYNTAX PowerStateAllStatesEntry MAX-ACCESS not-accessible STATUS current Quittek, et al. draft-quittek-power-mib-02.txt [Page 15] Internet-Draft Power MIB Modules October 2010 DESCRIPTION "Power state information about this physical entity." INDEX { powerStateEnergyConsumerId, powerStateName } ::= { powerStateAllStatesTable 1 } PowerStateAllStatesEntry ::= SEQUENCE { powerStateName SnmpAdminString, powerStateType INTEGER, powerStateDescription SnmpAdminString, powerStateAveragePower Integer32, powerStateMaximumPower Integer32, powerStateTotalTime TimeTicks, powerStateLastEnterTime TimeStamp, powerStateLastEnterReason SnmpAdminString, powerStateEnterCount Counter64 } powerStateName OBJECT-TYPE SYNTAX SnmpAdminString (SIZE(1..32)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "This index should only be created for power states that are actually implemented by the entity that is identified by the first index powerStateEnergyConsumerOid. This index is the name of the power state and is limited to 32 characters. If possible the name SHOULD already give a rough idea of the characteristica of this power state." ::= { powerStateAllStatesEntry 1 } powerStateType OBJECT-TYPE SYNTAX INTEGER { unknown(0), off(1), nonOperational(2), operational(3) } -------------------------- -- Open issue: Shall we replace the syntax by textual convention -- PowerMonitorLevel from draft-claise-energy-monitoring-mib? -------------------------- MAX-ACCESS read-only STATUS current DESCRIPTION Quittek, et al. draft-quittek-power-mib-02.txt [Page 16] Internet-Draft Power MIB Modules October 2010 "Object classifies the power state. It helps to clearly distinguish non-operational power states (sleep, standby, etc.) from operational ones. In a nonOperational(2) state an entity provides non of its primary services except for bringing it into operational(3) states or off(1) states. A device in state off(1) cannot report its state on its own. But state off(1) may be reported by managed devices reporting on the power state of other managed devices." ::= { powerStateAllStatesEntry 2 } powerStateDescription OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "Power states are identified by their names. However, semantics of power states may vary between different entities. Reasons for variations can be different hardware and software architectures of managed devices. Object powerStateDescription SHOULD describe the power state and its characteristica as closely as possible." ::= { powerStateAllStatesEntry 3 } powerStateAveragePower OBJECT-TYPE SYNTAX Integer32 UNITS "milliwatt" MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the average power (energy consumption rate) in milliwatt at the electrical power supply of the entity in the power state indicated by powerStateName. A value of -1 indicates that the average power in this state is unknown." ::= { powerStateAllStatesEntry 4 } powerStateMaximumPower OBJECT-TYPE SYNTAX Integer32 UNITS "milliwatt" MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the maximum power (energy consumption rate) in milliwatt at the electrical power supply of the Quittek, et al. draft-quittek-power-mib-02.txt [Page 17] Internet-Draft Power MIB Modules October 2010 entity in the power state indicated by powerStateName. A value of -1 indicates that the maximum power in this state is unknown." ::= { powerStateAllStatesEntry 5 } powerStateTotalTime OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the total time in hundreds of seconds that the entity has been in the state indicated by index powerStateName." ::= { powerStateAllStatesEntry 6 } -------------------------- -- Open issue: Shall we use DateAndTime instead of timeTicks? -------------------------- powerStateLastEnterTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "This time stamp object indicates the last time a which the entity entered the state indicated by index powerStateName." ::= { powerStateAllStatesEntry 7 } powerStateLastEnterReason OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "This string object describes the reason for the last power state transition into the power state indicated by index powerStateName." ::= { powerStateAllStatesEntry 8 } powerStateEnterCount OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates how often the entity indicated by index entPhysicalIndex entered the power state indicated by index powerStateName." ::= { powerStateAllStatesEntry 9 } Quittek, et al. draft-quittek-power-mib-02.txt [Page 18] Internet-Draft Power MIB Modules October 2010 --================================================================== -- 2. Notifications --================================================================== powerStateChangeEvent NOTIFICATION-TYPE OBJECTS { powerStateLastEnterReason } STATUS current DESCRIPTION "This notification can be generated when the power state of an entity changes. Note that the state that has been entered is indicated by the OID of object powerStateLastEnterReason." ::= { powerStateNotifications 1 } --================================================================== -- 3. Conformance Information --================================================================== powerStateCompliances OBJECT IDENTIFIER ::= { powerStateConformance 1 } powerStateGroups OBJECT IDENTIFIER ::= { powerStateConformance 2 } -------------------------------------------------------------------- -- 3.1. Compliance Statements -------------------------------------------------------------------- powerCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for implementations of the POWER-STATE-MIB module. A compliant implementation MUST implement the objects defined in the mandatory group powerRequiredGroup." MODULE -- this module MANDATORY-GROUPS { powerStateRequiredGroup } GROUP powerStateNotificationsGroup DESCRIPTION "A compliant implementation does not have to implement the powerNotificationsGroup." ::= { powerStateCompliances 1 } -------------------------------------------------------------------- -- 3.2. MIB Grouping -------------------------------------------------------------------- Quittek, et al. draft-quittek-power-mib-02.txt [Page 19] Internet-Draft Power MIB Modules October 2010 powerStateRequiredGroup OBJECT-GROUP OBJECTS { powerStateOperationalState, powerStateAdminState, powerStateType, powerStateDescription, powerStateTotalTime, powerStateLastEnterTime, powerStateLastEnterReason, powerStateEnterCount, powerStateAveragePower, powerStateMaximumPower } STATUS current DESCRIPTION "A compliant implementation MUST implement the objects contained in this group." ::= { powerStateGroups 1 } powerStateNotificationsGroup NOTIFICATION-GROUP NOTIFICATIONS { powerStateChangeEvent } STATUS current DESCRIPTION "A compliant implementation does not have to implement the notification contained in this group." ::= { powerStateGroups 2 } END 8.2. Energy MIB ENERGY-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, mib-2, Unsigned32, Integer32 FROM SNMPv2-SMI -- RFC2578 TimeStamp FROM SNMPv2-TC -- RFC2579 MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF -- RFC2580 EntitySensorStatus FROM ENTITY-SENSOR-MIB -- RFC3433 powerStateName FROM POWER-STATE-MIB UnitMultiplier FROM POWER-MONITOR-MIB; energyMIB MODULE-IDENTITY Quittek, et al. draft-quittek-power-mib-02.txt [Page 20] Internet-Draft Power MIB Modules October 2010 LAST-UPDATED "201010231200Z" -- 23 October 2010 ORGANIZATION "IETF OPSAWG Working Group" CONTACT-INFO "General Discussion: opsawg@ietf.org To Subscribe: https://www.ietf.org/mailman/listinfo/opsawg Archive: http://www.ietf.org/mail-archive/web/opsawg Co-editor: Juergen Quittek NEC Europe Ltd. NEC Laboratories Europe Kurfuersten-Anlage 36 69115 Heidelberg Germany Tel: +49 6221 4342-115 Email: quittek@neclab.eu Co-editor: Thomas Dietz NEC Europe Ltd. NEC Laboratories Europe Kurfuersten-Anlage 36 69115 Heidelberg Germany Phone: +49 6221 4342-128 Email: Thomas.Dietz@neclab.eu" DESCRIPTION "This MIB module defines a set of objects for monitoring the energy consumption of networked devices and their components. Copyright (c) 2010 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this MIB module is part of RFC yyyy; see the RFC itself for full legal notices." -- replace yyyy with actual RFC number & remove this notice -- Revision history Quittek, et al. draft-quittek-power-mib-02.txt [Page 21] Internet-Draft Power MIB Modules October 2010 REVISION "201010231200Z" -- 23 October 2010 DESCRIPTION "Initial version, published as RFC yyyy." -- replace yyyy with actual RFC number & remove this notice ::= { mib-2 9992 } -- yyy to be assigned by IANA. --****************************************************************** -- Top Level Structure of the MIB module --****************************************************************** energyObjects OBJECT IDENTIFIER ::= { energyMIB 1 } energyConformance OBJECT IDENTIFIER ::= { energyMIB 2 } --================================================================== -- 1. Object Definitions --================================================================== -------------------------------------------------------------------- -- 1.1. Energy Consumption Table -------------------------------------------------------------------- energyTable OBJECT-TYPE SYNTAX SEQUENCE OF EnergyEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table provides inforamtion on the current and accumulated energy consumption of entities. The table is indexed by an ID of the entity on which energy information is provided. IDs can be provided by another MIB module, such as the ENERGY AWARE MIB module or the ENTITY MIB module. If not ID provisioning from other MIB modules is available, the table can only have one entry for reporting the local power state of the device that tuns an instance of this table." ::= { energyObjects 1 } energyEntry OBJECT-TYPE SYNTAX EnergyEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry providing information on the energy consumption of a physical entity." INDEX { energyConsumerId } ::= { energyTable 1 } Quittek, et al. draft-quittek-power-mib-02.txt [Page 22] Internet-Draft Power MIB Modules October 2010 EnergyEntry ::= SEQUENCE { energyConsumerId Integer32, energyConsumerOid OBJECT IDENTIFIER, energySensorOperStatus EntitySensorStatus, energyNominalSupplyVoltage Unsigned32, energyElectricSupplyType INTEGER, energyTotalEnergy Unsigned32, energyEnergyUnitMultiplier UnitMultiplier, energyEnergyPrecision Integer32, energyMeasurementMethod INTEGER, energyDiscontinuityTime TimeStamp, energySampleInterval Unsigned32, energyMaxHistory Unsigned32, energyPowerUnitMultiplier UnitMultiplier, energyPowerPrecision Integer32, energyRealPower Unsigned32, energyPeakRealPower Unsigned32, energyReactivePower Unsigned32, energyApparentPower Unsigned32, energyPhaseAngle Integer32, energyPhaseAnglePrecision Integer32 } energyConsumerId OBJECT-TYPE SYNTAX Integer32 (0..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An integer that identifies an entity that is subject of energy monitoring. Index values MUST be locally unique for each identified entity. If an implementation of the ENERGY AWARE MIB module is available in the local SNMP context, then the same index of an entity MUST be chosen as assigned to the entity by object pmIndex in the ENERGY AWARE MIB module. In this case, entities without an assigned value for pmIndex cannot be indexted by the powerCurrentStateTable. If there is no implementation of the ENERGY AWARE MIB module but one of the ENTITY MIB module is available in the local SNMP context, then the same index of an entity MUST be chosen as assigned to the entity by object entPhysicalIndex in the ENTITY MIB module. In this case, entities without an assigned value for pmIndex cannot be indexted by the powerCurrentStateTable. Quittek, et al. draft-quittek-power-mib-02.txt [Page 23] Internet-Draft Power MIB Modules October 2010 If neither the ENERGY AWARE MIB module nor of the ENTITY MIB module is available in the local SNMP context, then this MIB module may choose identity values from a further MIB module providing entity identities. In this case the value for each pmIndex must remain constant at least from one re-initialization of the entity's network management system to the next re-initialization. In case that no other MIB module has been chosen for providing entity identities, power state can be reported exclusively for the local device on which this table is instantiated. Then this table will have a single entry only and an index value of 0 MUST be used. The identity provisioning method that has been chosen can be retrived by reading the value of object powerStateEnergyConsumerOid. In case of identities provided by the ENERGY AWARE MIB module, this OID points to an exising instance of pmIndex, in case of the ENTITY MIB, the object points to a valid instance of entPhysicalIndex, and in a similar way, it points to a value of another MIB module if this is used for identifying entities. If no other MIB module has been chosen for providing entity identities, then the value of powerStateEnergyConsumerOid MUST be 0.0 (zeroDotZero)." ::= { energyEntry 1 } energyConsumerOid OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS not-accessible STATUS current DESCRIPTION "An OID that identifies an entity that is subject of energy monitoring. The value MUST be an OID that points to an existing managed object or 0.0 (zeroDotZero). If another MIB module is chosen for providing identities for managed entities, then the value of this object points to an existing instance of an entity identifier, such as an instance of pmIndex in the ENERGY AWARE MIB or an instance of entPhysicalIndex in the ENTITY MIB module. If power state information is provided only for the local device on which this table is instantiated, then the value of this object MUST be 0.0 (zeroDotZero)." ::= { energyEntry 2 } energySensorOperStatus OBJECT-TYPE Quittek, et al. draft-quittek-power-mib-02.txt [Page 24] Internet-Draft Power MIB Modules October 2010 SYNTAX EntitySensorStatus MAX-ACCESS read-only STATUS current DESCRIPTION "This object provides the operational status of the sensor that is used for measuring the energy consumption of the entity indicated by energyConsumerId." ::= { energyEntry 3 } energyNominalSupplyVoltage OBJECT-TYPE SYNTAX Unsigned32 UNITS "millivolt" MAX-ACCESS read-only STATUS current DESCRIPTION "This object provides the nominal voltage of the power supply of the entity. It is provided in units of millivolt (mV). The nominal voltage actual of an entity is assumed to be fixed, while the actual power supply voltage may vary over time, for example, caused by changing load conditions. A value of 0 indicates that the nominal supply voltage is unknown." ::= { energyEntry 4 } energyElectricSupplyType OBJECT-TYPE SYNTAX INTEGER { alternatingCurrent(1), directCurrent(2), unknown(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the type of electrical power supply for the entity. It is used for distinguishing between alternating current (AC) supply and direct current (DC) supply." ::= { energyEntry 5 } energyTotalEnergy OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the total consumed energy measured Quittek, et al. draft-quittek-power-mib-02.txt [Page 25] Internet-Draft Power MIB Modules October 2010 at the electrical power supply of the entity. In order to determine the measured value in watt hours, the value of this object needs to be multiplied by a unit mulitplier given by the value of object energyEnergyUnitMultiplier. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of energyDiscontinuityTime." ::= { energyEntry 6 } energyEnergyUnitMultiplier OBJECT-TYPE SYNTAX UnitMultiplier MAX-ACCESS read-only STATUS current DESCRIPTION "This object provides unit ultiplier for measured energy values. Reported values need to be multiplied with this multiplier in order to determine the measured value in watt hours. This object serves as unit multiplier for objects energyTotalEnergy, energyPSTotalEnergy, ..." ::= { energyEntry 7 } energyEnergyPrecision OBJECT-TYPE SYNTAX Integer32 (0..10000) MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates a the precision of a measured energy value. The precision is indicated as a percentage value, in 100ths of a percent. A value of 0 indicates that the precision is unknown or not applicable to the measured value. This object serves precision indicator for the values provided by objects energyTotalEnergy, energyPSTotalEnergy, ..." ::= { energyEntry 8 } energyMeasurementMethod OBJECT-TYPE SYNTAX INTEGER { directEnergyMeasurement(1), powerOversampling(2), Quittek, et al. draft-quittek-power-mib-02.txt [Page 26] Internet-Draft Power MIB Modules October 2010 powerSampling(3), loadBasedEstimation(4), deviceBasedEstimation(5), unknown(6) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the method used for measuring energy consumption. A device may not be equipped with capabilities to measure its energy consumption directly, but rather relies on other input in order to conduct more or less precise estimations of its power consumption. The measurement methods concerns values of objects energyTotalEnergy, energyPSTotalEnergy, and energyPowerHistoryAverageValue. Five different measurement methods are specified. - directEnergyMeasurement(1) indicates that the entity is instrumented to directly measure its energy consumption. - powerOversampling(2) indicates that energy is measured by sampling power values more frequently than indicated by the value of object energySampleInterval. - powerSampling(3) indicates that energy is measured by sampling power values according to the value of object energySampleInterval. - loadBasedEstimation(4) indicates that power is estimated based on measurements of the load of the entity. - deviceBasedEstimation(5) indicates that power is estimated based on static properties of the entity. In this case, reported power only depednds on the pwoer state of the devices as indicated by object powerCurrentState in the powerCurrentStateTable of the Power State MIB module." ::= { energyEntry 9 } energyDiscontinuityTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime on the most recent occasion at which any one or more of this entity's energy consumption counters Quittek, et al. draft-quittek-power-mib-02.txt [Page 27] Internet-Draft Power MIB Modules October 2010 suffered a discontinuity. The relevant counters are energyTotalEnergy and energyPerStateTotalEnergy. If no such discontinuities have occurred since the last re- initialization of the local management subsystem, then this object contains a zero value." ::= { energyEntry 10 } energySampleInterval OBJECT-TYPE SYNTAX Unsigned32 UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates is the difference of time stamps between two consecutive entries in the energyHistoryTable for this entity. The interval lenght provided by this object indicates the or maximum interval length (or minimal samping rate) at which the power sensor measures values of the current power. Implementations of the Energy MIB module may choose higher sampling rates (or shorter sampling intervals) in order to provide higher precision of the measurement. Preferably, shorter intervals may be chosen such that the sampling interval indicated by this object is a multiple of the actual sampling interval. The sampling interval is provided in units of microseconds. A value of 0 indicates that the sampling interval applied by the sensor is unknown or not constant." ::= { energyEntry 11 } energyMaxHistory OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates is the maximum number of corresponding entries in the energyPowerHistoryTable. An entry in the energyHistoryTable is corresponding if it has the same value for object energyConsumerId as index. An implementation of the Energy MIB module will remove the oldest correaponding entry in the energyHistoryTable to allow the addition of a new entry once the number of corresponding entries in the energyHistoryTable Quittek, et al. draft-quittek-power-mib-02.txt [Page 28] Internet-Draft Power MIB Modules October 2010 reaches this value. Entries are added to the energyHistoryTable until energyMaxHistory is reached before entries begin to be removed. A value of 0 for this object disables creation of corresponding energyHistoryTable entries." DEFVAL { 0 } ::= { energyEntry 12 } energyPowerUnitMultiplier OBJECT-TYPE SYNTAX UnitMultiplier MAX-ACCESS read-only STATUS current DESCRIPTION "This object provides unit ultiplier for measured energy values. Reported values need to be multiplied with this multiplier in order to determine the measured value in watt hours. This object serves as unit multiplier for the values provided by objects energyRealPower, energyPeakRealPower, energyReactivePower, and energyApparentPower." ::= { energyEntry 13 } energyPowerPrecision OBJECT-TYPE SYNTAX Integer32 (0..10000) MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates a the precision of a measured power value. The precision is indicated as a percentage value, in 100ths of a percent. A value of 0 indicates that the precision is unknown or not applicable to the measured value. This object serves precision indicator for the values provided by objects energyRealPower, energyPeakRealPower, energyReactivePower, and energyApparentPower." ::= { energyEntry 14 } energyRealPower OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the current real power value Quittek, et al. draft-quittek-power-mib-02.txt [Page 29] Internet-Draft Power MIB Modules October 2010 at the electrical supply of the entity indicated by index energyConsumerId. In order to determine the measured value in watts, the value of this object needs to be multiplied by a unit mulitplier given by the value of object energyEnergyUnitMultiplier. Measured values of this object are stored in the energyPowerTable with a rate determined by object energySampleInterval." ::= { energyEntry 15 } energyPeakRealPower OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the highest observed value for object energyRealPower since the last re-initialization of the management system. In order to determine the measured value in watts, the value of this object needs to be multiplied by a unit mulitplier given by the value of object energyEnergyUnitMultiplier." ::= { energyEntry 16 } energyReactivePower OBJECT-TYPE SYNTAX Unsigned32 UNITS "volt-amperes reactive" MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the current reactive power value at the electrical supply of the entity indicated by index energyConsumerId. In order to determine the measured value in volt-amperes (var), the value of this object needs to be multiplied by a unit mulitplier given by the value of object energyEnergyUnitMultiplier. The value provided by this object is only useful if the value of object energySupplyType is alternatingCurrent(1). In this case it is RECOMMENDED that at least one of the three values energyReactivePower, energyApparentPowerScale, and energyPhaseAngle Quittek, et al. draft-quittek-power-mib-02.txt [Page 30] Internet-Draft Power MIB Modules October 2010 are provided. If object energyElectricSupplyType of this row has a value other than alternatingCurrent(1), then the value of this object MUST be 0. If object energyElectricSupplyType of this row has the value alternatingCurrent(1) and if no value for the current reactive power is provided, then the value of this object MUST be 0xFFFF." ::= { energyEntry 17 } energyApparentPower OBJECT-TYPE SYNTAX Unsigned32 UNITS "volt-amperes" MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the current apparent power value measured in volt-ampere (VA) at the electrical supply of the entity for a time interval indicated by object energySampleInterval. The value provided by this object is only useful if the value of object energySupplyType is alternatingCurrent(1). In this case it is RECOMMENDED that at least one of the three values energyReactivePower, energyApparentPowerScale, and energyPhaseAngle are provided. Scale and precision of the value are indicated by objects energyPowerScale and energyPowerPrecision. If object energyElectricSupplyType of this row has a value other than alternatingCurrent(1), then the value of this object MUST be equal to the value of object energyRealPower. If object energyElectricSupplyType of this row has the value alternatingCurrent(1) and if no value for the current apparent power is provided, then the value of this object MUST be -10000000000." ::= { energyEntry 18 } energyPhaseAngle OBJECT-TYPE SYNTAX Integer32 (-1..360000) UNITS "millidegrees" MAX-ACCESS read-only Quittek, et al. draft-quittek-power-mib-02.txt [Page 31] Internet-Draft Power MIB Modules October 2010 STATUS current DESCRIPTION "This object indicates the current phase angle value measured at the electrical supply of the entity for a time interval indicated by object energySampleInterval. The value provided by this object is only useful if the value of object energySupplyType is alternatingCurrent(1). In this case it is RECOMMENDED that at least one of the three values energyReactivePower, energyApparentPowerScale, and energyPhaseAngle are provided. The value is provided in units of millidegree (one thousands of a degree. This is equivalent to an assiciated object of type EntitySensorDataScale with the value of milli(8) and an associated object of type EntitySensorPrecision with a value of 0. The minimum value for this object when indicating an actual angle is 0, the maximum value is 360000. The maximum error of of the value is indicated by object energyPhaseAngleMaxError. If object energyElectricSupplyType of this row has a value other than alternatingCurrent(1), then the value of this object MUST be 0. If object energyElectricSupplyType of this row has the value alternatingCurrent(1) and if no value for the phase angle is provided, then the value of this object MUST be -1." ::= { energyEntry 19 } energyPhaseAnglePrecision OBJECT-TYPE SYNTAX Integer32 (0..10000) UNITS "millidegrees" MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates a the precision of a measured phase angle value. The precision is indicated as a percentage value, in 100ths of a percent. A value of 0 indicates that the precision is unknown or not applicable to the measured value. This object serves precision indicator for the values Quittek, et al. draft-quittek-power-mib-02.txt [Page 32] Internet-Draft Power MIB Modules October 2010 provided by object energyPhaseAngle." ::= { energyEntry 20 } -------------------------------------------------------------------- -- 1.2. Energy Consumption Per Power State Table -------------------------------------------------------------------- energyPerStateTable OBJECT-TYPE SYNTAX SEQUENCE OF EnergyPerStateEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table provides information on the accumulated energy consumption of an entity. This table extends the energyTable by sharing the first index. The first index serves for identifying an entity for which energy information is provided. The second index identifies a single power state by its name." ::= { energyObjects 2 } energyPerStateEntry OBJECT-TYPE SYNTAX EnergyPerStateEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Energy consumption information per power state for a physical entity." INDEX { energyConsumerId, powerStateName } ::= { energyPerStateTable 1 } EnergyPerStateEntry ::= SEQUENCE { energyPerStateTotalEnergy Unsigned32 } energyPerStateTotalEnergy OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the total consumed energy value at the electrical supply of the entity indicated by index energyConsumerId while being in a specific power state indicated by index powerStateName. In order to determine the measured value in watts, the value of this object needs to be multiplied by a unit mulitplier Quittek, et al. draft-quittek-power-mib-02.txt [Page 33] Internet-Draft Power MIB Modules October 2010 given by the value of object energyEnergyUnitMultiplier of table energyTable. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of energyDiscontinuityTime." ::= { energyPerStateEntry 1 } -------------------------------------------------------------------- -- 1.3. Energy Power History Table -------------------------------------------------------------------- energyHistoryTable OBJECT-TYPE SYNTAX SEQUENCE OF EnergyHistoryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table stores results of energy consumption measurements for multiple entities. This table extends the energyTable by sharing the first index. The first index serves for identifying an entity for which energy information is provided. The second index energyHistoryIndex identifies a single measurement consiting of an energy consumptiopn value and a timestamp. Creation of entries in this row is controlled indivdually for each entity by two parameters: energyMaxHistory and energySamplingInterval. The energySamplingInterval controls the difference in time between the creation of two consecutive entries in this table. Object energyMaxHistory limits the number of entries in this table that can be created for the corresponding entity. An implementation of the Energy MIB module will remove the oldest entry for an entity in the energyHistoryTable to allow the addition of a new entry once the number of entries for this entity reaches the value indicated by object energyMaxHistory. Entries for a specific entity are added to this table until energyMaxHistory is reached before entries begin to be removed. Quittek, et al. draft-quittek-power-mib-02.txt [Page 34] Internet-Draft Power MIB Modules October 2010 Entries for the same entity are indexed by energyHistoryIndex. The first entry for an entity MUST have an index value of 1. Further new entries MUST be indexed by consecutive numbers in the order in which they are created until the value of energyMaxHistory is reached. Then no further new indices will be assigned, but existing ones will be re-used." ::= { energyObjects 3 } energyHistoryEntry OBJECT-TYPE SYNTAX EnergyHistoryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry indicating consumed energy for an entity at a certain point in time." INDEX { energyConsumerId, energyHistoryIndex } ::= { energyHistoryTable 1 } EnergyHistoryEntry ::= SEQUENCE { energyHistoryIndex Unsigned32, energyHistoryTimestamp TimeStamp, energyHistoryTotalEnergy Unsigned32 } energyHistoryIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The index for this entry per entity. Values of this index MUST be unique per entity used as first index." ::= { energyHistoryEntry 1 } energyHistoryTimestamp OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the time at which the energy consumption value provided by object energyHistoryTotalEnergy was measured." ::= { energyHistoryEntry 2 } energyHistoryTotalEnergy OBJECT-TYPE SYNTAX Unsigned32 Quittek, et al. draft-quittek-power-mib-02.txt [Page 35] Internet-Draft Power MIB Modules October 2010 MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the total consumed energy measured at the electrical power supply of the entity. In order to determine the measured value in watt hours, the value of this object needs to be multiplied by a unit mulitplier given by the value of object energyEnergyUnitMultiplier in the corresponding entry for this entity in table energyTable. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of energyDiscontinuityTime in the corresponding entry for this entity in table energyTable." ::= { energyHistoryEntry 3 } --================================================================== -- 2. Conformance Information --================================================================== energyCompliances OBJECT IDENTIFIER ::= { energyConformance 1 } energyGroups OBJECT IDENTIFIER ::= { energyConformance 2 } -------------------------------------------------------------------- -- 2.1. Compliance Statements -------------------------------------------------------------------- energyCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for implementations of the ENERGY-MIB module. A compliant implementation MUST implement the objects defined in the mandatory group energyRequiredGroup. If one of the entities for which energy consumption is reported are supplied by alternating current (AC) then it is recommended that not just real power is reported (REQUIRED) but it is also RECOMMENDED that at least one of three other related values (reactive power, apparent power, and phase angle) is reported by implementing at least one of the three groups energyReactivePowerGroup, energyApparentPowerGroup, and energyPhaseAngleGroup." Quittek, et al. draft-quittek-power-mib-02.txt [Page 36] Internet-Draft Power MIB Modules October 2010 MODULE -- this module MANDATORY-GROUPS { energyRequiredGroup } GROUP energyPowerHistoryGroup DESCRIPTION "This group is only needed for implementations that support storing time series of measured power values in the energyPowerHistoryTable." GROUP energyACGroup DESCRIPTION "This group is only needed for implementations that report consumption of electric energy provided by alternating current (AC) supply. Implementations for devices supplied with direct current (DC) only and implementations that do only report real power reporting for alternative current do not need to implement objects in this group." GROUP energyReactivePowerGroup DESCRIPTION "Information provided by elements in this group is redundant to information provided by elements in the energyApparentPowerGroup and the energyPhaseAngleGroup. For compliant implementations that report consumption of electric energy provided by alternating current (AC) supply it is RECOMMENDED to at least one of the three groups energyReactivePowerGroup, energyApparentPowerGroup, and energyPhaseAngleGroup." GROUP energyApparentPowerGroup DESCRIPTION "Information provided by elements in this group is redundant to information provided by elements in the energyReactivePowerGroup and the energyPhaseAngleGroup. For compliant implementations that report consumption of electric energy provided by alternating current (AC) supply it is RECOMMENDED to at least one of the three groups energyReactivePowerGroup, energyApparentPowerGroup, and energyPhaseAngleGroup." GROUP energyPhaseAngleGroup DESCRIPTION "Information provided by elements in this group is redundant to information provided by elements in the Quittek, et al. draft-quittek-power-mib-02.txt [Page 37] Internet-Draft Power MIB Modules October 2010 energyReactivePowerGroup and the energyApparentPowerGroup. For compliant implementations that report consumption of electric energy provided by alternating current (AC) supply it is RECOMMENDED to at least one of the three groups energyReactivePowerGroup, energyApparentPowerGroup, and energyPhaseAngleGroup." ::= { energyCompliances 1 } -------------------------------------------------------------------- -- 2.2. Object Grouping -------------------------------------------------------------------- energyRequiredGroup OBJECT-GROUP OBJECTS { energySensorOperStatus, energyNominalSupplyVoltage, energyElectricSupplyType, energyTotalEnergy, energyEnergyUnitMultiplier, energyEnergyPrecision, energyMeasurementMethod, energyDiscontinuityTime, energyPowerUnitMultiplier, energyPowerPrecision, energyRealPower, energyPeakRealPower, energyPerStateTotalEnergy } STATUS current DESCRIPTION "A compliant implementation MUST implement the objects contained in this group." ::= { energyGroups 1 } energyPowerHistoryGroup OBJECT-GROUP OBJECTS { energySampleInterval, energyMaxHistory, energyHistoryTimestamp, energyHistoryTotalEnergy } STATUS current DESCRIPTION "The group of object for reporting details of AC power measurement." ::= { energyGroups 2 } Quittek, et al. draft-quittek-power-mib-02.txt [Page 38] Internet-Draft Power MIB Modules October 2010 energyACGroup OBJECT-GROUP OBJECTS { energyReactivePower, energyApparentPower, energyPhaseAngle, energyPhaseAnglePrecision } STATUS current DESCRIPTION "The group of object for reporting details of AC power measurement." ::= { energyGroups 3 } energyReactivePowerGroup OBJECT-GROUP OBJECTS { energyReactivePower } STATUS current DESCRIPTION "The group of object for reporting the reactive power measured for AC supply." ::= { energyGroups 4 } energyApparentPowerGroup OBJECT-GROUP OBJECTS { energyApparentPower } STATUS current DESCRIPTION "The group of object for reporting the apparent power measured for AC supply." ::= { energyGroups 5 } energyPhaseAngleGroup OBJECT-GROUP OBJECTS { energyPhaseAngle, energyPhaseAnglePrecision } STATUS current DESCRIPTION "The group of object for reporting the phase angler measured for AC supply." ::= { energyGroups 6 } END 8.3. Battery MIB Quittek, et al. draft-quittek-power-mib-02.txt [Page 39] Internet-Draft Power MIB Modules October 2010 BATTERY-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, mib-2, Integer32, Unsigned32, Counter32 FROM SNMPv2-SMI -- RFC2578 DateAndTime FROM SNMPv2-TC -- RFC2579 MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF -- RFC2580 entPhysicalIndex FROM ENTITY-MIB; -- RFC4133 batteryMIB MODULE-IDENTITY LAST-UPDATED "201001291200Z" -- 29 January 2010 ORGANIZATION "IETF OPSAWG Working Group" CONTACT-INFO "General Discussion: opsawg@ietf.org To Subscribe: https://www.ietf.org/mailman/listinfo/opsawg Archive: http://www.ietf.org/mail-archive/web/opsawg Co-editor: Juergen Quittek NEC Europe Ltd. NEC Laboratories Europe Kurfuersten-Anlage 36 69115 Heidelberg Germany Tel: +49 6221 4342-115 Email: quittek@neclab.eu Co-editor: Thomas Dietz NEC Europe Ltd. NEC Laboratories Europe Kurfuersten-Anlage 36 69115 Heidelberg Germany Phone: +49 6221 4342-128 Email: Thomas.Dietz@neclab.eu" DESCRIPTION "This MIB module defines a set of objects for monitoring batteries of networked devices and of their components. Copyright (c) 2010 IETF Trust and the persons identified as authors of the code. All rights reserved. Quittek, et al. draft-quittek-power-mib-02.txt [Page 40] Internet-Draft Power MIB Modules October 2010 Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this MIB module is part of RFC yyyy; see the RFC itself for full legal notices." -- replace yyyy with actual RFC number & remove this notice -- Revision history REVISION "201001291200Z" -- 29 January 2010 DESCRIPTION "Initial version, published as RFC yyyy." -- replace yyyy with actual RFC number & remove this notice ::= { mib-2 zzz } -- zzz to be assigned by IANA. --****************************************************************** -- Top Level Structure of the MIB module --****************************************************************** batteryNotifications OBJECT IDENTIFIER ::= { batteryMIB 0 } batteryObjects OBJECT IDENTIFIER ::= { batteryMIB 1 } batteryConformance OBJECT IDENTIFIER ::= { batteryMIB 2 } --================================================================== -- 1. Object Definitions --================================================================== -------------------------------------------------------------------- -- 1.1. Battery Table -------------------------------------------------------------------- batteryTable OBJECT-TYPE SYNTAX SEQUENCE OF BatteryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table provides information on batteries in networked devices. It is designed as a sparse augment of the entPhysicalTable defined in the ENTITY-MIB module and assumes that each battery is represented by an individual row in the entPhysicalTable with an individual value for the index entPhysicalIndex. Quittek, et al. draft-quittek-power-mib-02.txt [Page 41] Internet-Draft Power MIB Modules October 2010 Entries appear in this table only for entities that represent a battery. An entry in this table SHOULD be created at the same time as the associated entPhysicalEntry. An entry SHOULD be destroyed if the associated entPhysicalEntry is destroyed." ::= { batteryObjects 1 } batteryEntry OBJECT-TYPE SYNTAX BatteryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry providing information on a battery." INDEX { entPhysicalIndex } -- SPARSE-AUGMENTS ::= { batteryTable 1 } BatteryEntry ::= SEQUENCE { batteryType INTEGER, batteryTechnology INTEGER, batteryNominalVoltage Unsigned32, batteryNumberOfCells Unsigned32, batteryNominalCapacity Unsigned32, batteryRemainingCapacity Unsigned32, batteryChargingCycleCount Counter32, batteryLastChargingCycleTime DateAndTime, batteryState INTEGER, batteryCurrentCharge Unsigned32, batteryCurrentChargePercentage Unsigned32, batteryCurrentVoltage Unsigned32, batteryCurrentCurrent Integer32, batteryLowAlarmPercentage Unsigned32, batteryLowAlarmVoltage Unsigned32, batteryReplacementAlarmCapacity Unsigned32, batteryReplacementAlarmCycles Unsigned32 } batteryType OBJECT-TYPE SYNTAX INTEGER { primary(1), rechargeable(2), capacitor(3), other(4), unknown(5) } MAX-ACCESS read-only STATUS current DESCRIPTION Quittek, et al. draft-quittek-power-mib-02.txt [Page 42] Internet-Draft Power MIB Modules October 2010 "This object indicates the type of battery. It distinguishes between one-way primary batteries, rechargeable secondary batteries and capacitors which are not really batteries but often used in the same way as a battery. The value other(4) can be used if the battery type is known but none of the ones above. Value unknown(5) is to be used if the type of battery cannot be determined." ::= { batteryEntry 1 } batteryTechnology OBJECT-TYPE SYNTAX INTEGER { zincCarbon(1), zincChloride(2), oxyNickelHydroxide(3), lithiumCopper(4), lithiumIron(5), lithiumManganese(6), zincAir(7), silverOxide(8), alcaline(9), leadAcid(10), nickelCadmium(12), nickelMetalHybride(13), nickelZinc(14), lithiumIon(15), lithiumPolymer(16), doubleLayerCapacitor(17), other(18), unknown(19) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the technology used by the battery. Values 1-8 are primary battery technologies, values 10-16 are rechargeable battery technologies and value alkaline(9) is used for primary batteries as well as for rechargeable batteries. The value other(18) can be used if the battery type is known but none of the ones above. Value unknown(19) is to be used if the type of battery cannot be determined." ::= { batteryEntry 2 } batteryNominalVoltage OBJECT-TYPE SYNTAX Unsigned32 UNITS "millivolt" Quittek, et al. draft-quittek-power-mib-02.txt [Page 43] Internet-Draft Power MIB Modules October 2010 MAX-ACCESS read-only STATUS current DESCRIPTION "This object provides the nominal voltage of the battery in units of millivolt (mV). Note that the nominal voltage is a constant value and typically different from the actual voltage of the battery. A value of 0 indicates that the nominal voltage is unknown." ::= { batteryEntry 3 } batteryNumberOfCells OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the number of cells contained in the battery. A value of 0 indicates that the number of cells is unknown." ::= { batteryEntry 4 } batteryNominalCapacity OBJECT-TYPE SYNTAX Unsigned32 UNITS "milliampere hours" MAX-ACCESS read-only STATUS current DESCRIPTION "This object provides the nominal capacity of the battery in units of milliampere hours (mAh). Note that the nominal capacity is a constant value and typically different from the actual capacity of the battery. A value of 0 indicates that the nominal capacity is unknown." ::= { batteryEntry 5 } batteryRemainingCapacity OBJECT-TYPE SYNTAX Unsigned32 UNITS "milliampere hours" MAX-ACCESS read-only STATUS current DESCRIPTION "This object provides the ACTUAL REMAINING capacity of the battery in units of milliampere hours (mAh). Note that the actual capacity needs to be measured and is Quittek, et al. draft-quittek-power-mib-02.txt [Page 44] Internet-Draft Power MIB Modules October 2010 typically an estimate based on observed discharging and charging cycles of the battery. A value of 'ffffffff'H indicates that the actual capacity cannot be determined." ::= { batteryEntry 6 } batteryChargingCycleCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the number of charging cycles that that the battery underwent. Please note that the precise definition of a rechsarge cycle varies for different kinds of batteries and of devices containing batteries. For batteries of type primary(1) the value of this object is always 0. A value of 'ffffffff'H indicates that the number of charging cycles cannot be determined." ::= { batteryEntry 7 } batteryLastChargingCycleTime OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS read-only STATUS current DESCRIPTION "The date and time of the last charging cycle. The value '0000000000000000'H is returned if the battery has not been charged yet or if the last charging time cannot be determined. For batteries of type primary(1) the value of this object is always '0000000000000000'H." ::= { batteryEntry 8 } batteryState OBJECT-TYPE SYNTAX INTEGER { full(1), partiallyCharged(2), empty(3), charging(4), discharging(5), unknown(6) } MAX-ACCESS read-only Quittek, et al. draft-quittek-power-mib-02.txt [Page 45] Internet-Draft Power MIB Modules October 2010 STATUS current DESCRIPTION "This object indicates the current state of the battery. Value full(1) indicates a full battery with a capacity given by onject batteryRemainingCapacity. Value empty(3) indicates a battery that cannot be used for providing electric power before charging it. Value partiallyCharged(2) is provided if the battery is neither empty nor full and if no charging or discharging is in progress. Charging or discharging of hte battery is indicated by values charging(3) or discharging(4), respectively. Value unknown(6) is to be used if the state of the battery cannot be determined." ::= { batteryEntry 9 } batteryCurrentCharge OBJECT-TYPE SYNTAX Unsigned32 UNITS "milliampere hours" MAX-ACCESS read-only STATUS current DESCRIPTION "This object provides the current charge of the battery in units of milliampere hours (mAh). Note that the current charge needs to be measured and is typically an estimate based on observed discharging and charging cycles of the battery. A value of 'ffffffff'H indicates that the current charge cannot be determined." ::= { batteryEntry 10 } batteryCurrentChargePercentage OBJECT-TYPE SYNTAX Unsigned32 (0..10000) MAX-ACCESS read-only STATUS current DESCRIPTION "This object provides the current charge of the battery relative to the nominal capacity in units of a hundreds of a percent. -------------------------- -- Open issue: -- Should it be the percentage of the nominal capacity -- or of the current capacity? -------------------------- Quittek, et al. draft-quittek-power-mib-02.txt [Page 46] Internet-Draft Power MIB Modules October 2010 Note that this value needs to be measured and is typically an estimate based on observed discharging and charging cycles of the battery. A value of 'ffffffff'H indicates that the relative current charge cannot be determined." ::= { batteryEntry 11 } batteryCurrentVoltage OBJECT-TYPE SYNTAX Unsigned32 UNITS "millivolt" MAX-ACCESS read-only STATUS current DESCRIPTION "This object provides the current voltage of the battery in units of millivolt (mV). A value of 'ffffffff'H indicates that the current voltage cannot be determined." ::= { batteryEntry 12 } batteryCurrentCurrent OBJECT-TYPE SYNTAX Integer32 UNITS "milliampere" MAX-ACCESS read-only STATUS current DESCRIPTION "This object provides the current charging or discharging current of the batteryin units of milliampere (mA). Charging current is indicated by positive values, discharging current is indicated by negative values. A value of '7fffffff'H indicates that the current current cannot be determined." ::= { batteryEntry 13 } batteryLowAlarmPercentage OBJECT-TYPE SYNTAX Unsigned32 (0..10000) MAX-ACCESS read-only STATUS current DESCRIPTION "This object provides the lower threshold value for object batteryCurrentChargePercentage. If the value of object batteryCurrentChargePercentage falls below this threshold, a low battery alarm will be raised. The alarm procedure may include generating a batteryLowNotification. A value of 0 indicates that the no alarm will be raised for Quittek, et al. draft-quittek-power-mib-02.txt [Page 47] Internet-Draft Power MIB Modules October 2010 any value of object batteryCurrentChargePercentage." ::= { batteryEntry 14 } batteryLowAlarmVoltage OBJECT-TYPE SYNTAX Unsigned32 UNITS "millivolt" MAX-ACCESS read-only STATUS current DESCRIPTION "This object provides the lower threshold value for object batteryCurrentVoltage. If the value of object batteryCurrentVoltage falls below this threshold, a low battery alarm will be raised. The alarm procedure may include generating a batteryLowNotification. A value of 0 indicates that the no alarm will be raised for any value of object batteryCurrentVoltage." ::= { batteryEntry 15 } batteryReplacementAlarmCapacity OBJECT-TYPE SYNTAX Unsigned32 UNITS "milliampere hours" MAX-ACCESS read-only STATUS current DESCRIPTION "This object provides the lower threshold value for object batteryRemainingCapacity. If the value of object batteryRemainingCapacity falls below this threshold, a battery aging alarm will be raised. The alarm procedure may include generating a batteryAgingNotification. A value of 0 indicates that the no alarm will be raised for any value of object batteryRemainingCapacity." ::= { batteryEntry 16 } batteryReplacementAlarmCycles OBJECT-TYPE SYNTAX Unsigned32 UNITS "milliampere hours" MAX-ACCESS read-only STATUS current DESCRIPTION "This object provides the upper threshold value for object batteryChargingCycleCount. If the value of object batteryChargingCycleCount rises above this threshold, a battery aging alarm will be raised. The alarm procedure may include generating a batteryAgingtNotification. A value of 0 indicates that the no alarm will be raised for Quittek, et al. draft-quittek-power-mib-02.txt [Page 48] Internet-Draft Power MIB Modules October 2010 any value of object batteryChargingCycleCount." ::= { batteryEntry 17 } --================================================================== -- 2. Notifications --================================================================== batteryLowNotification NOTIFICATION-TYPE OBJECTS { batteryCurrentChargePercentage, batteryCurrentVoltage } STATUS current DESCRIPTION "This notification can be generated when the current charge (batteryCurrentChargePercentage) or the current voltage (batteryCurrentVoltage) of the battery falls below a threshold defined by object batteryLowAlarmPercentage or object batteryLowAlarmVoltage, respectively." ::= { batteryNotifications 1 } batteryAgingNotification NOTIFICATION-TYPE OBJECTS { batteryRemainingCapacity, batteryChargingCycleCount } STATUS current DESCRIPTION "This notification can be generated when the remaining capacity (batteryRemainingCapacity) falls below a threshold defined by object batteryReplacementAlarmCapacity or when the charging cycle count of the battery (batteryChargingCycleCount) exceeds the threshold defined by object batteryLowAlarmPercentage." ::= { batteryNotifications 2 } --================================================================== -- 3. Conformance Information --================================================================== batteryCompliances OBJECT IDENTIFIER ::= { batteryConformance 1 } batteryGroups OBJECT IDENTIFIER ::= { batteryConformance 2 } -------------------------------------------------------------------- -- 3.1. Compliance Statements -------------------------------------------------------------------- Quittek, et al. draft-quittek-power-mib-02.txt [Page 49] Internet-Draft Power MIB Modules October 2010 batteryCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for implementations of the POWER-STATE-MIB module. A compliant implementation MUST implement the objects defined in the mandatory group psmRequiredGroup." MODULE -- this module MANDATORY-GROUPS { batteryDescriptionGroup, batteryStatusGroup, batteryAlarmThresholdsGroup } GROUP batteryNotificationsGroup DESCRIPTION "A compliant implementation does not have to implement the psmNotificationsGroup." ::= { batteryCompliances 1 } -------------------------------------------------------------------- -- 3.2. MIB Grouping -------------------------------------------------------------------- batteryDescriptionGroup OBJECT-GROUP OBJECTS { batteryType, batteryTechnology, batteryNominalVoltage, batteryNumberOfCells, batteryNominalCapacity } STATUS current DESCRIPTION "A compliant implementation MUST implement the objects contained in this group." ::= { batteryGroups 1 } batteryStatusGroup OBJECT-GROUP OBJECTS { batteryRemainingCapacity, batteryChargingCycleCount, batteryLastChargingCycleTime, batteryState, batteryCurrentCharge, batteryCurrentChargePercentage, batteryCurrentVoltage, batteryCurrentCurrent Quittek, et al. draft-quittek-power-mib-02.txt [Page 50] Internet-Draft Power MIB Modules October 2010 } STATUS current DESCRIPTION "A compliant implementation MUST implement the objects contained in this group." ::= { batteryGroups 2 } batteryAlarmThresholdsGroup OBJECT-GROUP OBJECTS { batteryLowAlarmPercentage, batteryLowAlarmVoltage, batteryReplacementAlarmCapacity, batteryReplacementAlarmCycles } STATUS current DESCRIPTION "A compliant implementation MUST implement the objects contained in this group." ::= { batteryGroups 3 } batteryNotificationsGroup NOTIFICATION-GROUP NOTIFICATIONS { batteryLowNotification, batteryAgingNotification } STATUS current DESCRIPTION "A compliant implementation does not have to implement the notification contained in this group." ::= { batteryGroups 4 } END 9. Security Considerations There are no management objects defined in this MIB module that have a MAX-ACCESS clause of read-write and/or read-create. So, if this MIB module is implemented correctly, then there is no risk that an intruder can alter or create any management objects of this MIB module via direct SNMP SET operations. Some of the readable objects in this MIB module (i.e., objects with a MAX-ACCESS other than not-accessible) may be considered sensitive or vulnerable in some network environments. It is thus important to control even GET and/or NOTIFY access to these objects and possibly to even encrypt the values of these objects when sending them over the network via SNMP. These are the tables and objects and their sensitivity/vulnerability: Quittek, et al. draft-quittek-power-mib-02.txt [Page 51] Internet-Draft Power MIB Modules October 2010 o This list is still to be done. SNMP versions prior to SNMPv3 did not include adequate security. Even if the network itself is secure (for example by using IPsec), even then, there is no control as to who on the secure network is allowed to access and GET/SET (read/change/create/delete) the objects in this MIB module. It is RECOMMENDED that implementers consider the security features as provided by the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms (for authentication and privacy). Further, deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security. It is then a customer/operator responsibility to ensure that the SNMP entity giving access to an instance of this MIB module is properly configured to give access to the objects only to those principals (users) that have legitimate rights to indeed GET or SET (change/create/delete) them. 10. IANA Considerations The MIB modules in this document uses the following IANA-assigned OBJECT IDENTIFIER values recorded in the SMI Numbers registry: Descriptor OBJECT IDENTIFIER value ---------- ----------------------- powerStateMIB { mib-2 xxx } energyMIB { mib-2 yyy } batteryMIB { mib-2 zzz } Other than that this document does not impose any IANA considerations. 11. References 11.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. Quittek, et al. draft-quittek-power-mib-02.txt [Page 52] Internet-Draft Power MIB Modules October 2010 [RFC2579] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999. [RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999. [RFC4268] Chisholm, S. and D. Perkins, "Entity State MIB", RFC 4268, November 2005. [RFC3621] Berger, A. and D. Romascanu, "Power Ethernet MIB", RFC 3621, December 2003. [RFC3433] Bierman, A., Romascanu, D., and K. Norseth, "Entity Sensor Management Information Base", RFC 3433, December 2002. [RFC4133] Bierman, A. and K. McCloghrie, "Entity MIB (Version 3)", RFC 4133, August 2005. [I-D.quittek-power-monitoring-requirements] Quittek, J., Winter, R., Dietz, T., Claise, B., and M. Chandramouli, "Requirements for Power Monitoring", draft-quittek-power-monitoring-requirements-01 (work in progress), July 2010. [I-D.claise-energy-monitoring-mib] Claise, B., Chandramouli, M., Parello, J., and B. Schoening, "Power and Energy Monitoring MIB", draft-claise-energy-monitoring-mib-06 (work in progress), October 2010. [I-D.parello-eman-energy-aware-mib] Claise, B. and J. Parello, "Energy-aware Networks and Devices MIB", draft-parello-eman-energy-aware-mib-00 (work in progress), October 2010. 11.2. Informative References [RFC1628] Case, J., "UPS Management Information Base", RFC 1628, May 1994. [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction and Applicability Statements for Internet- Standard Management Framework", RFC 3410, December 2002. Quittek, et al. draft-quittek-power-mib-02.txt [Page 53] Internet-Draft Power MIB Modules October 2010 Authors' Addresses Juergen Quittek (editor) NEC Europe Ltd. NEC Laboratories Europe Network Research Division Kurfuersten-Anlage 36 Heidelberg 69115 DE Phone: +49 6221 4342-115 Email: quittek@nw.neclab.eu Rolf Winter NEC Europe Ltd. NEC Laboratories Europe Network Research Division Kurfuersten-Anlage 36 Heidelberg 69115 DE Phone: +49 6221 4342-121 Email: Rolf.Winter@nw.neclab.eu Thomas Dietz NEC Europe Ltd. NEC Laboratories Europe Network Research Division Kurfuersten-Anlage 36 Heidelberg 69115 DE Phone: +49 6221 4342-128 Email: Thomas.Dietz@nw.neclab.eu Quittek, et al. draft-quittek-power-mib-02.txt [Page 54] Internet-Draft Power MIB Modules October 2010 Dominique Dudkowski NEC Europe Ltd. NEC Laboratories Europe Network Research Division Kurfuersten-Anlage 36 Heidelberg 69115 DE Phone: +49 6221 4342-233 Email: Dominique.Dudkowski@nw.neclab.eu Quittek, et al. draft-quittek-power-mib-02.txt [Page 55]