Network Working Group                                    J. Quittek, Ed.
Internet-Draft                                                 R. Winter
Intended status: Standards Track                                T. Dietz
Expires: August 7, 2010                                     D. Dudkowski
                                                         NEC Europe Ltd.
                                                        February 3, 2010


           Definiton of Managed Objects for Energy Management
                     draft-quittek-power-mib-00.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 extensions to the Entity MIB to provide
   information about the energy consumption, the power states and
   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 August 7, 2010.

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-00.txt             [Page 1]


Internet-Draft              Power MIB Modules              February 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.  Power State MIB  . . . . . . . . . . . . . . . . . . . . . . .  5
     3.1.  Current Power State Table  . . . . . . . . . . . . . . . .  5
     3.2.  Power State Table  . . . . . . . . . . . . . . . . . . . .  6

   4.  Energy MIB . . . . . . . . . . . . . . . . . . . . . . . . . .  6
     4.1.  Energy Consumption Table . . . . . . . . . . . . . . . . .  7
     4.2.  Energy Consumption Per Power State Table . . . . . . . . .  8

   5.  Battery MIB  . . . . . . . . . . . . . . . . . . . . . . . . .  8

   6.  Relationship to Other MIB Modules  . . . . . . . . . . . . . .  9
     6.1.  Entity MIB . . . . . . . . . . . . . . . . . . . . . . . .  9
     6.2.  Entity State MIB . . . . . . . . . . . . . . . . . . . . . 10
     6.3.  Entity Sensor MIB  . . . . . . . . . . . . . . . . . . . . 10
     6.4.  UPS MIB  . . . . . . . . . . . . . . . . . . . . . . . . . 10
     6.5.  Power Ethernet MIB . . . . . . . . . . . . . . . . . . . . 10

   7.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . . 11
     7.1.  Power State MIB  . . . . . . . . . . . . . . . . . . . . . 11
     7.2.  Energy MIB . . . . . . . . . . . . . . . . . . . . . . . . 17
     7.3.  Battery MIB  . . . . . . . . . . . . . . . . . . . . . . . 30

   8.  Security Considerations  . . . . . . . . . . . . . . . . . . . 42

   9.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 43

   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 43
     10.1. Normative References . . . . . . . . . . . . . . . . . . . 43
     10.2. Informative References . . . . . . . . . . . . . . . . . . 44

   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 44




Quittek, et al.      draft-quittek-power-mib-00.txt             [Page 2]


Internet-Draft              Power MIB Modules              February 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.

   A basic requirement for many energy management procedures is
   collecting information on energy consumption and energy storage at
   managed devices.  Most devices consume less energy when they are in
   standby mode compared to their consumption when providing full
   service.  Therefore, management systems will have a need to monitor
   power state information when conducting basic energy management
   functions.

   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 or of a device's component.  Providing
   this information requires much more effort than reporting power
   states, because a probe that measures (electrical) power consumption
   is required.  Typically this means not just adding several lines of
   software to a device, but also adding costly sensor hardware to it.

   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



Quittek, et al.      draft-quittek-power-mib-00.txt             [Page 3]


Internet-Draft              Power MIB Modules              February 2010


   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].

   All three MIB modules are designed as extensions to the Entity MIB
   module [RFC4133].  They all contain sparse augments of the
   entPhysicalTable defined in [RFC4133].  The entPhysicalTable already
   provides information about physical entities such as their type,
   name, software revision number, serial number, etc., and about their
   containment in other entities.  This is all re-used for entities that
   have different power states, for which energy consumption can be
   measured, or that are batteries.

   Sparse augmentation of the entPhysicalTable means that tables in the
   three MIB modules use the index of the entPhysicalTable as their
   first index.  The augment is sparse, because not for every row in the
   entPhysicalTable there needs to be a row in the tables defined in the
   MIB modules in this document.  For example, the batteryTable will
   only have rows for index values of the entPhysicalTable that refer to



Quittek, et al.      draft-quittek-power-mib-00.txt             [Page 4]


Internet-Draft              Power MIB Modules              February 2010


   an entity that is a battery.

   Augmentation also means that rows in the tables defined in this
   document should be created at the same time when the corresponding
   entry in the entPhysicalTable is created.  They also should be
   destroyed, when the corresponding rows in the entPhysicalTable are
   destroyed.

   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.  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 of an entity
   and the powerStateTable providing statistics per power state.  Both
   tables use the object entPhysicalIndex from the Entity MIB module
   [RFC4133] as first index.  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.

3.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(1), hotStandby(2),
   coldStandby(3), providingService(4), see ENTITY-STATE-TC-MIB in
   [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].




Quittek, et al.      draft-quittek-power-mib-00.txt             [Page 5]


Internet-Draft              Power MIB Modules              February 2010


   The powerCurrentStateTable contains just a single object per row:

      powerCurrentStateTable(1)
      +--powerCurrentStateEntry(1) [entPhysicalIndex]
         +-- r-n EntityStandbyStatus powerCurrentState(1)

   Object powerCurrentState reports the actual power state of an entity
   at the time the object's value is retrieved.  In the current
   definition of the MIB module, it just reports the four values defined
   for the Entity State MIB module.  It does not make sense to keep it
   like this by just replicating existing functionality.  Either the
   range of supporting values will be extended or the
   powerCurrentStateTable will be removed from the Power State MIB
   module.  It is currently there as a placeholder until discussion on
   the number of power states to be supported comes to a conclusion.

3.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 value as another index object next to the entity index.  This
   way, statistics can be reported per entity and per power state.

      powerStateTable(2)
      +--powerStateEntry(1) [entPhysicalIndex,powerState]
         +-- --- EntityStandbyStatus powerState(1)
         +-- r-n TimeTicks           powerStateTotalTime(2)
         +-- r-n TimeStamp           powerStateLastEnterTime(3)
         +-- r-n SnmpAdminString     powerStateLastEnterReason(4)
         +-- r-n Counter64           powerStateEnterCount(5)

   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)
   and the number of times a certain state has been entered
   (powerStateEnterCount).


4.  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 energyConsumpTable and



Quittek, et al.      draft-quittek-power-mib-00.txt             [Page 6]


Internet-Draft              Power MIB Modules              February 2010


   the energyConsumpPSTable.  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.

4.1.  Energy Consumption Table

   The first set of managed objects in the energyConsumpTable are needed
   to help interpreting the energy consumption readings.  These include
   the sampling interval applied by the sensor(s) and the power supply
   type and voltage.

   energyConsumpTable(1)
   +--energyConsumpEntry(1) [entPhysicalIndex]
      +-- r-n EntitySensorStatus    energyConsumpSensorOperStatus(1)
      +-- r-n Unsigned32            energyConsumpSampleInterval(2)
      +-- r-n Unsigned32            energyConsumpNominalSupplyVoltage(3)
      +-- r-n Enumeration           energyConsumpElectricSupplyType(4)
      +-- r-n EntitySensorValue     energyConsumpTotalEnergy(5)
      +-- r-n EntitySensorDataScale energyConsumpEnergyScale(6)
      +-- r-n EntitySensorPrecision energyConsumpEnergyPrecision(7)
      +-- r-n TimeStamp             energyConsumpDiscontinuityTime(8)
      +-- r-n EntitySensorDataScale energyConsumpPowerScale(9)
      +-- r-n EntitySensorPrecision energyConsumpPowerPrecision(10)
      +-- r-n EntitySensorValue     energyConsumpRealPower(11)
      +-- r-n EntitySensorValue     energyConsumpPeakRealPower(12)
      +-- r-n EntitySensorValue     energyConsumpReactivePower(13)
      +-- r-n EntitySensorValue     energyConsumpApparentPower(14)
      +-- r-n EntitySensorValue     energyConsumpPhaseAngle(15)
      +-- r-n EntitySensorPrecision energyConsumpPhaseAnglePrecision(16)

   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.

   All measured values are defined to be of type EntitySensorValue
   defined by the Entity Sensor MIB module [RFC3433].  For this data
   type scale and precision can be specified by additional objects of
   types EntitySensorDataScale and EntitySensorPrecision.  The
   energyConsumpTable makes use of this mechanism and contains a set of
   objects for this purpose.

   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
   energyConsumpDiscontinuityTime is provided for indicating the time of



Quittek, et al.      draft-quittek-power-mib-00.txt             [Page 7]


Internet-Draft              Power MIB Modules              February 2010


   the last interruption of total energy measurement.

4.2.  Energy Consumption Per Power State Table

   The second table in this module is called energyConsumpPSTable and it
   provides values of total energy consumption per power state in a way
   similar to the powerStateTable in the Power State MIB module.

      energyConsumpPSTable(2)
      +--energyConsumpPSEntry(1) [entPhysicalIndex,powerState]
         +-- r-n EntitySensorValue energyConsumpPSTotalEnergy(1)


5.  Battery MIB

   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.

   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.


















Quittek, et al.      draft-quittek-power-mib-00.txt             [Page 8]


Internet-Draft              Power MIB Modules              February 2010


      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.


6.  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.

6.1.  Entity MIB

   All MIB modules defined in this document implement a sparse
   augmentation of the entPhysicalTable defined in the Entity MIB module
   [RFC4133].  This means that tables defined in the MIB modules in this
   document use the index of the entPhysicalTable called
   entPhysicalIndex as their first index, in most cases as their only
   index.  The augmentation is sparse meaning that entries in tables
   defined in this document do not need to create entries for all
   entries that exist in the entPhysicalTable.  Entries can be
   restricted to relevant ones, for example, the batteryTable can
   restrict their entries to entities that are a battery.

   The advantage of augmenting the Entity MIB instead of defining new
   tables from scratch is the re-use of many objects in the



Quittek, et al.      draft-quittek-power-mib-00.txt             [Page 9]


Internet-Draft              Power MIB Modules              February 2010


   entPhysicalTable.  For example, the kind of entity
   (entPhysicalClass), the serial number (entPhysicalSerialNum), the
   software version (entPhysicalSoftwareRev) and many other properties
   are covered by objects in the entPhysicalTable as well as the
   containment relationship between entities.  The containment
   relationship indicates, for example, in which device a battery entity
   is contained.

6.2.  Entity State MIB

   The Entity State MIB module [RFC4268] defines object entStateStandby
   in the entStateTable.  This object provides information on the power
   state.  This object may have one of four defined values: unknown(1),
   hotStandby(2), coldStandby(3), providingService(4).  If this number
   was considered to be sufficient, the powerCurrentStateTable of the
   Power State MIB module would be obsolete and should be removed.
   However, there are concerns that this number is not sufficient.
   Discussions in the IETF will hopefully soon lead to a consensus on
   which is the better way to go.

6.3.  Entity Sensor MIB

   The Entity Sensor MIB module [RFC3433] defines generic objects for
   providing data from sensors such as, for example, an energy
   consumption meter.  Basically, some of the objects defined in the
   Energy MIB module could be replaced by objects in the Entity Sensor
   MIB module.  However, in the Entity Sensor MIB module more objects
   are needed to model the same information and flexibility is not fully
   sufficient.  For example, there is no unit for energy supported, such
   as, for example, watt hours; a sampling interval for the sensor
   cannot be specified, and there is not support for reporting
   discontinuities of accumulated measurements, such as the total
   consumed energy.  For these reasons, the Energy MIB was defined as
   new module instead of using the Entity Sensor MIB module.

6.4.  UPS MIB

   Relations to UPS MIB module [RFC1628] are still to be done.

6.5.  Power Ethernet MIB

   Relations to Power Ethernet MIB module [RFC3621] are still to be
   done.








Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 10]


Internet-Draft              Power MIB Modules              February 2010


7.  Definitions

7.1.  Power State MIB

   POWER-STATE-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
       mib-2, 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
       entPhysicalIndex
           FROM ENTITY-MIB                                -- RFC4133
       EntityStandbyStatus
           FROM ENTITY-STATE-TC-MIB;                      -- RFC4268

   powerStateMIB 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:
             Thomas Dietz
             NEC Europe Ltd.
             NEC Laboratories Europe
             Kurfuersten-Anlage 36
             69115 Heidelberg
             Germany
             Phone: +49 6221 4342-128
             Email: Thomas.Dietz@neclab.eu

           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"



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 11]


Internet-Draft              Power MIB Modules              February 2010


       DESCRIPTION
           "This MIB module defines a set of objects for monitoring
           the power state of networked devices and their components.

           Copyright (c) 2009 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     "201001291200Z"         -- 29 January 2010
       DESCRIPTION
           "Initial version, published as RFC yyyy."
   -- replace yyyy with actual RFC number & remove this notice

       ::= { mib-2 xxx }
   -- 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. Current Power State Table
   --------------------------------------------------------------------
   powerCurrentStateTable  OBJECT-TYPE
       SYNTAX      SEQUENCE OF PowerCurrentStateEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 12]


Internet-Draft              Power MIB Modules              February 2010


           "This table provides information on the current power state
           of entities.

           This is a sparse augment of the entPhysicalTable.
           Entries appear in this table for entities for which their
           power state can be reported.

           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."
       ::= { powerStateObjects 1 }

   --------------------------
   -- Open issue: This table duplicates a part of the entStateTable
   --    in the ENTITY-STATE-MIB (RFC 4268).
   --    It does not make sense to keep it as it is.
   --
   --    The entStateTable only supports four power states:
   --    unknown(1), hotStandby(2), coldStandby(3),
   --    providingService(4) (see ENTITY-STATE-TC-MIB, RFC 4268).
   --    If this is considered to be sufficient, then the
   --    powerCurrentPowerStateTable should be removed.
   --    But if there is consensus that supporting more power states
   --    would be needed, as claimed, for example, by
   --    draft-claise-energy-monitoring-mib-00, then this table might
   --    be useful to have with the extended range of power states.
   --------------------------

   powerCurrentStateEntry OBJECT-TYPE
       SYNTAX      PowerCurrentStateEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry providing information on the current power state
           of an entity."
       INDEX  { entPhysicalIndex }    -- SPARSE-AUGMENTS
       ::= { powerCurrentStateTable 1 }

   PowerCurrentStateEntry ::=
       SEQUENCE {
          powerCurrentState   EntityStandbyStatus
       }

   powerCurrentState OBJECT-TYPE
       SYNTAX      EntityStandbyStatus
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 13]


Internet-Draft              Power MIB Modules              February 2010


           "This object indicates the current power state of the
           entity indicated by the index entPhysicalIndex."
       ::= { powerCurrentStateEntry 1 }

   --------------------------------------------------------------------
   -- 1.2. Power State Statistics 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 entities.

           This is a sparse augment of the entPhysicalTable.
           Entries appear in this table for entities for which
           statistics on their power state can be reported.

           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.

           As second index for this table serves the power state of the
           entity indicated by the first index."
       ::= { powerStateObjects 2 }

   powerStateEntry OBJECT-TYPE
       SYNTAX      PowerStateEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Power state information about this physical entity."
       INDEX       { entPhysicalIndex, powerState }
       ::= { powerStateTable 1 }

   PowerStateEntry ::=
       SEQUENCE {
          powerState                 EntityStandbyStatus,
          powerStateTotalTime        TimeTicks,
          powerStateLastEnterTime    TimeStamp,
          powerStateLastEnterReason  SnmpAdminString,
          powerStateEnterCount       Counter64
       }

   powerState OBJECT-TYPE
       SYNTAX      EntityStandbyStatus
       MAX-ACCESS  not-accessible



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 14]


Internet-Draft              Power MIB Modules              February 2010


       STATUS      current
       DESCRIPTION
           "This index should only be created for power states
           that are actually used by the entity that is identified
           by the first index entPhysicalIndex."
       ::= { powerStateEntry 1 }

   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 powerState."
       ::= { powerStateEntry 2 }

   --------------------------
   -- 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 powerState."
       ::= { powerStateEntry 3 }

   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 powerState."
       ::= { powerStateEntry 4 }

   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 powerState."



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 15]


Internet-Draft              Power MIB Modules              February 2010


       ::= { powerStateEntry 5 }


   --==================================================================
   -- 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 }




Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 16]


Internet-Draft              Power MIB Modules              February 2010


   --------------------------------------------------------------------
   -- 3.2. MIB Grouping
   --------------------------------------------------------------------

   powerStateRequiredGroup OBJECT-GROUP
       OBJECTS {
          powerCurrentState,
          powerStateTotalTime,
          powerStateLastEnterTime,
          powerStateLastEnterReason,
          powerStateEnterCount
       }
       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

7.2.  Energy MIB

   ENERGY-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE, mib-2, Unsigned32
           FROM SNMPv2-SMI                                -- RFC2578
       TimeStamp
           FROM SNMPv2-TC                                 -- RFC2579
       MODULE-COMPLIANCE, OBJECT-GROUP
           FROM SNMPv2-CONF                               -- RFC2580
       entPhysicalIndex
           FROM ENTITY-MIB                                -- RFC4133
       EntitySensorDataScale, EntitySensorPrecision,
       EntitySensorValue, EntitySensorStatus
           FROM ENTITY-SENSOR-MIB                         -- RFC3433
       powerState
           FROM POWER-STATE-MIB;

   energyMIB MODULE-IDENTITY
       LAST-UPDATED "201001291200Z"         -- 29 January 2010



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 17]


Internet-Draft              Power MIB Modules              February 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

       REVISION     "201001291200Z"         -- 29 January 2010



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 18]


Internet-Draft              Power MIB Modules              February 2010


       DESCRIPTION
           "Initial version, published as RFC yyyy."
   -- replace yyyy with actual RFC number & remove this notice

       ::= { mib-2 yyy }
   -- 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
   --------------------------------------------------------------------
   energyConsumpTable  OBJECT-TYPE
       SYNTAX      SEQUENCE OF EnergyConsumpEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table provides inforamtion on the current and
           accumulated energy consumption of entities.

           This is a sparse augment of the entPhysicalTable.
           Entries appear in this table for entities for which their
           energy consumption can be reported.

           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."
       ::= { energyObjects 1 }

   energyConsumpEntry OBJECT-TYPE
       SYNTAX      EnergyConsumpEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry providing information on the energy consumption
           of physical entity."
       INDEX  { entPhysicalIndex }    -- SPARSE-AUGMENTS
       ::= { energyConsumpTable 1 }




Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 19]


Internet-Draft              Power MIB Modules              February 2010


   EnergyConsumpEntry ::=
       SEQUENCE {
          energyConsumpSensorOperStatus       EntitySensorStatus,
          energyConsumpSampleInterval         Unsigned32,
          energyConsumpNominalSupplyVoltage   Unsigned32,
          energyConsumpElectricSupplyType     INTEGER,
          energyConsumpTotalEnergy            EntitySensorValue,
          energyConsumpEnergyScale            EntitySensorDataScale,
          energyConsumpEnergyPrecision        EntitySensorPrecision,
          energyConsumpDiscontinuityTime      TimeStamp,
          energyConsumpPowerScale             EntitySensorDataScale,
          energyConsumpPowerPrecision         EntitySensorPrecision,
          energyConsumpRealPower              EntitySensorValue,
          energyConsumpPeakRealPower          EntitySensorValue,
          energyConsumpReactivePower          EntitySensorValue,
          energyConsumpApparentPower          EntitySensorValue,
          energyConsumpPhaseAngle             EntitySensorValue,
          energyConsumpPhaseAnglePrecision    EntitySensorPrecision
       }

   energyConsumpSensorOperStatus OBJECT-TYPE
       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 entPhysicalIndex."
       ::= { energyConsumpEntry 1 }

   energyConsumpSampleInterval OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "milliseconds"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object provides the sampling rate applied by the
           energy consumption sensor for calculating the current power
           value.

           For alternating current (AC) power supply the sampling
           interval should be at least have half the size of a period
           of alternation.

           The sampling interval is provided in units of microseconds.

           A value of 0 indicates that the sampling interval applied by
           the sensor is unknown."



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 20]


Internet-Draft              Power MIB Modules              February 2010


       ::= { energyConsumpEntry 2 }

   energyConsumpNominalSupplyVoltage 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."
       ::= { energyConsumpEntry 3 }

   energyConsumpElectricSupplyType 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."
       ::= { energyConsumpEntry 4 }

   energyConsumpTotalEnergy OBJECT-TYPE
       SYNTAX      EntitySensorValue
       UNITS       "watt hours"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the total consumed energy measured in
           watt hours at the electrical power supply of the entity.

           Scale and precision of the value are indicated
           by objects energyConsumpEnergyScale and
           energyConsumpEnergyPrecision.




Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 21]


Internet-Draft              Power MIB Modules              February 2010


           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
           energyConsumpDiscontinuityTime."
       ::= { energyConsumpEntry 5 }

   energyConsumpEnergyScale OBJECT-TYPE
       SYNTAX      EntitySensorDataScale
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the scale of the values provided
           by objects energyConsumpTotalEnergy and
           energyConsumpPSTotalEnergy."
       ::= { energyConsumpEntry 6 }

   energyConsumpEnergyPrecision OBJECT-TYPE
       SYNTAX      EntitySensorPrecision
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the precision of the values provided
           by objects energyConsumpTotalEnergy and
           energyConsumpPSTotalEnergy."
       ::= { energyConsumpEntry 7 }

   energyConsumpDiscontinuityTime 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
           suffered a discontinuity.  The relevant counters are
           energyConsumpTotalEnergy and energyConsumpPSTotalEnergy.  If
           no such discontinuities have occurred since the last re-
           initialization of the local management subsystem, then this
           object contains a zero value."
       ::= { energyConsumpEntry 8 }

   energyConsumpPowerScale OBJECT-TYPE
       SYNTAX      EntitySensorDataScale
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the scale of the values provided by
           objects energyConsumpRealPower, energyConsumpPeakRealPower,
           energyConsumpReactivePower, and energyConsumpApparentPower."



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 22]


Internet-Draft              Power MIB Modules              February 2010


       ::= { energyConsumpEntry 9 }

   energyConsumpPowerPrecision OBJECT-TYPE
       SYNTAX      EntitySensorPrecision
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the precision of values provided by
           objects energyConsumpRealPower, energyConsumpPeakRealPower,
           energyConsumpReactivePower, and energyConsumpApparentPower."
       ::= { energyConsumpEntry 10 }

   energyConsumpRealPower OBJECT-TYPE
       SYNTAX      EntitySensorValue
       UNITS       "watts"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the current real power value
           measured in watts at the electrical supply of the entity
           for a time interval indicated by object
           energyConsumpSampleInterval.

           Scale and precision of the value are indicated by objects
           energyConsumpPowerScale and energyConsumpPowerPrecision."
       ::= { energyConsumpEntry 11 }

   energyConsumpPeakRealPower OBJECT-TYPE
       SYNTAX      EntitySensorValue
       UNITS       "watts"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the highest observed value for
           object energyConsumpRealPower since the last
           re-initialization of the management system.

           Scale and precision of the value are indicated by objects
           energyConsumpPowerScale and energyConsumpPowerPrecision."
       ::= { energyConsumpEntry 12 }

   energyConsumpReactivePower OBJECT-TYPE
       SYNTAX      EntitySensorValue
       UNITS       "volt-amperes reactive"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the current reactive power value



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 23]


Internet-Draft              Power MIB Modules              February 2010


           measured in volt-amperes reactive (var) at the electrical
           supply of the entity for a time interval indicated by object
           energyConsumpSampleInterval.

           The value provided by this object is only useful if the
           value of object energyConsumpSupplyType is
           alternatingCurrent(1). In this case it is RECOMMENDED that
           at least one of the three values energyConsumpReactivePower,
           energyConsumpApparentPowerScale, and energyConsumpPhaseAngle
           are provided.

           Scale and precision of the value are indicated by objects
           energyConsumpPowerScale and energyConsumpPowerPrecision.

           If object energyConsumpElectricSupplyType of this row has a
           value other than alternatingCurrent(1), then the value of
           this object MUST be 0.

           If object energyConsumpElectricSupplyType 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 -10000000000000."
       ::= { energyConsumpEntry 13 }

   energyConsumpApparentPower OBJECT-TYPE
       SYNTAX      EntitySensorValue
       UNITS       "volt-ampere"
       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
           energyConsumpSampleInterval.

           The value provided by this object is only useful if the
           value of object energyConsumpSupplyType is
           alternatingCurrent(1). In this case it is RECOMMENDED that
           at least one of the three values energyConsumpReactivePower,
           energyConsumpApparentPowerScale, and energyConsumpPhaseAngle
           are provided.

           Scale and precision of the value are indicated by objects
           energyConsumpPowerScale and energyConsumpPowerPrecision.

           If object energyConsumpElectricSupplyType of this row has a
           value other than alternatingCurrent(1), then the value of
           this object MUST be equal to the value of object



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 24]


Internet-Draft              Power MIB Modules              February 2010


           energyConsumpRealPower.

           If object energyConsumpElectricSupplyType 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."
       ::= { energyConsumpEntry 14 }

   energyConsumpPhaseAngle OBJECT-TYPE
       SYNTAX      EntitySensorValue
       UNITS       "millidegrees"
       MAX-ACCESS  read-only
       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 energyConsumpSampleInterval.

           The value provided by this object is only useful if the
           value of object energyConsumpSupplyType is
           alternatingCurrent(1). In this case it is RECOMMENDED that
           at least one of the three values energyConsumpReactivePower,
           energyConsumpApparentPowerScale, and energyConsumpPhaseAngle
           are provided.

           The value is provided in units of millidegree (one thousands
           of a degree. The minimum value for this object is -180000,
           the maximum value is 180000. Since the scaling factor is
           constant, there is no object of type EntitySensorDataScale
           provided for object energyConsumpPhaseAngle.

           The precision of the value is indicated by object
           energyConsumpPhaseAnglePrecision.

           If object energyConsumpElectricSupplyType of this row has a
           value other than alternatingCurrent(1), then the value of
           this object MUST be 0.

           If object energyConsumpElectricSupplyType 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 -10000000000."
       ::= { energyConsumpEntry 15 }

   energyConsumpPhaseAnglePrecision OBJECT-TYPE
       SYNTAX      EntitySensorPrecision
       MAX-ACCESS  read-only
       STATUS      current



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 25]


Internet-Draft              Power MIB Modules              February 2010


       DESCRIPTION
           "This object indicates the precision of the value provided
           by object energyConsumpApparentPower."
       ::= { energyConsumpEntry 16 }


   --------------------------------------------------------------------
   -- 1.2. Energy Consumption Per Power State Table
   --------------------------------------------------------------------
   energyConsumpPSTable  OBJECT-TYPE
       SYNTAX      SEQUENCE OF EnergyConsumpPSEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table provides inforamtion on the accumulated energy
           consumption of an entity.

           This is a sparse augment of the entPhysicalTable.
           Entries appear in this table for entities for which their
           energy consumption can be reported per power state.

           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."
       ::= { energyObjects 2 }

   energyConsumpPSEntry OBJECT-TYPE
       SYNTAX      EnergyConsumpPSEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Energy consumption information per power state
           for a physical entity."
       INDEX  { entPhysicalIndex, powerState }
       ::= { energyConsumpPSTable 1 }

   EnergyConsumpPSEntry ::=
       SEQUENCE {
          energyConsumpPSTotalEnergy          EntitySensorValue
       }

   energyConsumpPSTotalEnergy OBJECT-TYPE
       SYNTAX      EntitySensorValue
       UNITS       "watt hours"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the total consumed energy measured in



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 26]


Internet-Draft              Power MIB Modules              February 2010


           watt hours at the electrical power supply of the entity.

           Scale and precision of the value are indicated
           by objects energyConsumpEnergyScale and
           energyConsumpEnergyPrecision.

           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
           energyConsumpDiscontinuityTime."
       ::= { energyConsumpPSEntry 1 }


   --==================================================================
   -- 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."
       MODULE  -- this module
       MANDATORY-GROUPS { energyRequiredGroup }

       GROUP energyACGroup
       DESCRIPTION
           "This group is only needed for implementations that report
           consumption of electric energy provided by alternating



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 27]


Internet-Draft              Power MIB Modules              February 2010


           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
           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
   --------------------------------------------------------------------



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 28]


Internet-Draft              Power MIB Modules              February 2010


   energyRequiredGroup OBJECT-GROUP
       OBJECTS {
          energyConsumpSensorOperStatus,
          energyConsumpSampleInterval,
          energyConsumpNominalSupplyVoltage,
          energyConsumpElectricSupplyType,
          energyConsumpTotalEnergy,
          energyConsumpEnergyScale,
          energyConsumpEnergyPrecision,
          energyConsumpDiscontinuityTime,
          energyConsumpPowerScale,
          energyConsumpPowerPrecision,
          energyConsumpRealPower,
          energyConsumpPeakRealPower,
          energyConsumpPSTotalEnergy
       }
       STATUS      current
       DESCRIPTION
           "A compliant implementation MUST implement the objects
           contained in this group."
       ::= { energyGroups 1 }

   energyACGroup OBJECT-GROUP
       OBJECTS {
          energyConsumpReactivePower,
          energyConsumpApparentPower,
          energyConsumpPhaseAngle,
          energyConsumpPhaseAnglePrecision
       }
       STATUS      current
       DESCRIPTION
           "The group of object for reporting details of
           AC power measurement."
       ::= { energyGroups 2 }

   energyReactivePowerGroup OBJECT-GROUP
       OBJECTS {
          energyConsumpReactivePower
       }
       STATUS      current
       DESCRIPTION
           "The group of object for reporting the reactive power
           measured for AC supply."
       ::= { energyGroups 3 }

   energyApparentPowerGroup OBJECT-GROUP
       OBJECTS {
          energyConsumpApparentPower



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 29]


Internet-Draft              Power MIB Modules              February 2010


       }
       STATUS      current
       DESCRIPTION
           "The group of object for reporting the apparent power
           measured for AC supply."
       ::= { energyGroups 4 }

   energyPhaseAngleGroup OBJECT-GROUP
       OBJECTS {
          energyConsumpPhaseAngle,
          energyConsumpPhaseAnglePrecision
       }
       STATUS      current
       DESCRIPTION
           "The group of object for reporting the phase angler
           measured for AC supply."
       ::= { energyGroups 5 }

   END

7.3.  Battery MIB

   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



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 30]


Internet-Draft              Power MIB Modules              February 2010


             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.

           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 }



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 31]


Internet-Draft              Power MIB Modules              February 2010


   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.

           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,



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 32]


Internet-Draft              Power MIB Modules              February 2010


          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
           "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),



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 33]


Internet-Draft              Power MIB Modules              February 2010


                       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"
       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"



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 34]


Internet-Draft              Power MIB Modules              February 2010


       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
           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



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 35]


Internet-Draft              Power MIB Modules              February 2010


       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
       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



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 36]


Internet-Draft              Power MIB Modules              February 2010


           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?
   --------------------------

           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



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 37]


Internet-Draft              Power MIB Modules              February 2010


       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
           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



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 38]


Internet-Draft              Power MIB Modules              February 2010


           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
           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



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 39]


Internet-Draft              Power MIB Modules              February 2010


       }
       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
   --------------------------------------------------------------------

   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



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 40]


Internet-Draft              Power MIB Modules              February 2010


       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
       }
       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
       }



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 41]


Internet-Draft              Power MIB Modules              February 2010


       STATUS      current
       DESCRIPTION
           "A compliant implementation does not have to implement the
           notification contained in this group."
       ::= { batteryGroups 4 }
   END


8.  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:

   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.







Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 42]


Internet-Draft              Power MIB Modules              February 2010


9.  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.


10.  References

10.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.

   [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.



Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 43]


Internet-Draft              Power MIB Modules              February 2010


              Chandramouli, "Requirements for Power Monitoring",
              draft-quittek-power-monitoring-requirements-00 (work in
              progress), October 2009.

   [I-D.claise-energy-monitoring-mib]
              Claise, B., Chandramouli, M., Parello, J., and B.
              Schoening, "Energy Monitoring MIB",
              draft-claise-energy-monitoring-mib-00 (work in progress),
              January 2010.

10.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.


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







Quittek, et al.      draft-quittek-power-mib-00.txt            [Page 44]


Internet-Draft              Power MIB Modules              February 2010


   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


   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-00.txt            [Page 45]