ENERGY-OBJECT-CONTEXT-MIB DEFINITIONS ::= BEGIN


   IMPORTS
       MODULE-IDENTITY,
       OBJECT-TYPE,
       mib-2, Integer32
           FROM SNMPv2-SMI                           -- RFC 2578
       TEXTUAL-CONVENTION, MacAddress, TruthValue,
          RowStatus, StorageType
           FROM SNMPv2-TC                            -- RFC 2579
       MODULE-COMPLIANCE,  OBJECT-GROUP
           FROM SNMPv2-CONF                          -- RFC 2580
       SnmpAdminString
           FROM SNMP-FRAMEWORK-MIB                   -- RFC 3411
       InetAddressType, InetAddress
          FROM INET-ADDRESS-MIB                      -- RFC 4001
       entPhysicalIndex
          FROM ENTITY-MIB                            -- RFC 6933
       UUIDorZero
          FROM UUID-TC-MIB                           -- RFC 6933
       IANAEnergyRelationship
          FROM IANA-ENERGY-RELATION-MIB;







   energyObjectContextMIB MODULE-IDENTITY
       LAST-UPDATED    "201502090000Z"

       ORGANIZATION    "IETF EMAN Working Group"
       CONTACT-INFO
          "WG Charter:
           http://datatracker.ietf.org/wg/eman/charter/

          Mailing Lists:
           General Discussion: eman@ietf.org
           To Subscribe: https://www.ietf.org/mailman/listinfo/eman
           Archive: http://www.ietf.org/mail-archive/web/eman

          Editors:
             John Parello
             Cisco Systems, Inc.
             3550 Cisco Way
             San Jose, California 95134
             United States
             Phone: +1 408 525 2339
             Email: jparello@cisco.com

             Benoit Claise
             Cisco Systems, Inc.
             De Kleetlaan 6a b1
             Degem 1831
             Belgium
             Phone:  +32 2 704 5622
             Email: bclaise@cisco.com

             Mouli Chandramouli
             Cisco Systems, Inc.
             Sarjapur Outer Ring Road
             Bangalore 560103
             India
             Phone: +91 80 4429 2409
             Email: moulchan@cisco.com"

       DESCRIPTION
          "Copyright (c) 2015 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 MIB is used for describing the identity and the
           context information of Energy Objects."
       REVISION
           "201502090000Z"
       DESCRIPTION
          "Initial version, published as RFC 7461."

      ::= { mib-2 231 }

   energyObjectContextMIBNotifs OBJECT IDENTIFIER
       ::= { energyObjectContextMIB 0 }

   energyObjectContextMIBObjects OBJECT IDENTIFIER
       ::= { energyObjectContextMIB 1 }

   energyObjectContextMIBConform  OBJECT IDENTIFIER
       ::= { energyObjectContextMIB 2 }

   -- Textual Conventions

   PethPsePortIndexOrZero ::= TEXTUAL-CONVENTION
      DISPLAY-HINT "d"
      STATUS            current
      DESCRIPTION
          "This textual convention is an extension of the
          pethPsePortIndex convention, which defines a greater-
          than-zero value used to identify a power Ethernet Power
          Sourcing Equipment (PSE) port.

          This extension permits the additional value of zero.  The
          semantics of the value zero are object-specific and must,
          therefore, be defined as part of the description of any
          object that uses this syntax.  Examples of the usage of
          this extension are situations where none or all physical
          entities need to be referenced."
      SYNTAX Integer32 (0..2147483647)

   PethPsePortGroupIndexOrZero ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS            current
       DESCRIPTION
           "This textual convention is an extension of the
           pethPsePortGroupIndex convention from the Power Over
           Ethernet MIB in RFC 3621, which defines a greater-than-zero
           value used to identify the group containing the port to which
           a power Ethernet PSE is connected.  This extension
           permits the additional value of zero.  The semantics of
           the value zero are object-specific and must, therefore,





           be defined as part of the description of any object that
           uses this syntax.  Examples of the usage of this
           extension are situations where none or all physical
           entities need to be referenced."
       SYNTAX Integer32 (0..2147483647)

   LldpPortNumberOrZero ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "d"
        STATUS     current
        DESCRIPTION
           "This textual convention is an extension of the
           LldpPortNumber convention specified in the LLDP MIB,
           which defines a greater than zero value used to uniquely
           identify each port contained in the chassis (that is
           known to the LLDP agent) by a port number.  This
           extension permits the additional value of zero.  The
           semantics of the value zero are object-specific and must,
           therefore, be defined as part of the description of any
           object that uses this syntax.  Examples of the usage of
           this extension are situations where none or all physical
           entities need to be referenced."
      SYNTAX Integer32(0..4096)

    EnergyObjectKeywordList ::= TEXTUAL-CONVENTION
       STATUS          current
       DESCRIPTION
           "A list of keywords that can be used to group Energy
           Objects for reporting or searching.  If multiple keywords
           are present, then this string will contain all the
           keywords separated by the ',' character.  All alphanumeric
           characters and symbols (other than a comma), such as #,
           (, $, !, and &, are allowed.  White spaces before and
           after the commas are ignored, as well as within a keyword
           itself.

           For example, if an Energy Object were to be tagged with
           the keyword values 'hospitality' and 'guest', then the
           keyword list will be 'hospitality,guest'."
       SYNTAX OCTET STRING (SIZE (0..2048))

    -- Objects

    eoTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF EoEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
           "This table lists Energy Objects."





        ::= { energyObjectContextMIBObjects 1 }

    eoEntry OBJECT-TYPE
        SYNTAX          EoEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
           "An entry describes the attributes of an Energy Object.
           Whenever a new Energy Object is added or an existing
           Energy Object is deleted, a row in the eoTable is added
           or deleted."

         INDEX      {entPhysicalIndex }
        ::= { eoTable 1 }

    EoEntry ::= SEQUENCE {
            eoEthPortIndex              PethPsePortIndexOrZero,
            eoEthPortGrpIndex           PethPsePortGroupIndexOrZero,
            eoLldpPortNumber            LldpPortNumberOrZero,
            eoMgmtMacAddress            MacAddress,
            eoMgmtAddressType           InetAddressType,
            eoMgmtAddress               InetAddress,
            eoMgmtDNSName               OCTET STRING,
            eoDomainName                SnmpAdminString,
            eoRoleDescription           SnmpAdminString,
            eoKeywords                  EnergyObjectKeywordList,
            eoImportance                Integer32,
            eoPowerCategory             INTEGER,
            eoAlternateKey              SnmpAdminString,
            eoPowerInterfaceType        INTEGER
           }

    eoEthPortIndex   OBJECT-TYPE
        SYNTAX      PethPsePortIndexOrZero
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "This variable uniquely identifies the power Ethernet
           port to which a Power over Ethernet device is connected.
           If the Power over Ethernet MIB in RFC 3621 is supported by
           the SNMP agent managing the Energy Object, then the
           Energy Object eoethPortIndex MUST contain the
           corresponding value of pethPsePortIndex.  If such a power
           Ethernet port cannot be specified or is not known, then
           the object is zero."
        REFERENCE
           "RFC 3621: Power Ethernet MIB"
        DEFVAL { 0 }





        ::= { eoEntry 1 }

    eoEthPortGrpIndex   OBJECT-TYPE
        SYNTAX      PethPsePortGroupIndexOrZero
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "This variable uniquely identifies the group containing
           the port to which a power over Ethernet device PSE is
           connected (RFC 3621).  If the Power over Ethernet MIB (RFC
           3621) is supported by the SNMP agent managing the Energy
           Object, then the Energy Object eoEthPortGrpIndex MUST
           contain the corresponding value of eoethPortGrpIndex.  If
           such a power Ethernet port cannot be specified or is not
           known, then the object is zero."
        REFERENCE
           "RFC 3621: Power Ethernet MIB"
        DEFVAL { 0 }
        ::= { eoEntry 2 }

    eoLldpPortNumber   OBJECT-TYPE
        SYNTAX      LldpPortNumberOrZero
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "This variable uniquely identifies the port component
           (contained in the local chassis with the LLDP agent) as
           defined by the lldpLocPortNum in the LLDP-MIB and
           LLDP-MED-MIB.  If the LLDP-MIB is supported by the
           SNMP agent managing the Energy Object, then the Energy
           Object eoLldpPortNumber MUST contain the corresponding
           value of lldpLocPortNum from the LLDP-MIB.  If such a
           port number cannot be specified or is not known, then the
           object is zero."
        REFERENCE
           "LLDP MIB, IEEE 802.1AB-2005; LLDP-MED-MIB, ANSI/TIA-1057"
        DEFVAL { 0 }

        ::= { eoEntry 3 }

    eoMgmtMacAddress OBJECT-TYPE
        SYNTAX          MacAddress
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
           "This object specifies a Media Access Control (MAC) address
           of the Energy Object."
        ::= { eoEntry 4  }





    eoMgmtAddressType OBJECT-TYPE
        SYNTAX          InetAddressType
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
           "This object specifies the eoMgmtAddress type, i.e., an
           IPv4 or IPv6 address.  This object MUST be
           populated when eoMgmtAddress is populated."
        ::= { eoEntry 5  }

    eoMgmtAddress OBJECT-TYPE
        SYNTAX          InetAddress
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
           "This object specifies the management address as an IPv4
           address or IPv6 address of Energy Object.  The IP address
           type, i.e. IPv4 or IPv6, is determined by the
           eoMgmtAddressType value.  This object can be used as an
           alternate key to help link the Energy Object with other
           keyed information that may be stored within the EnMS(s)."
        ::= { eoEntry 6  }

    eoMgmtDNSName OBJECT-TYPE
        SYNTAX          OCTET STRING
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
           "This object specifies a DNS name of the eoMgmtAddress.
           This object can be used as an alternate key to help link
           the Energy Object with other keyed information that may
           be stored within the EnMS(s).  A DNS Name must always be a
           fully qualified name.  This MIB uses the same encoding as
           the DNS protocol."
         REFERENCE
           "RFC 1034: Domain names - concepts and facilities,
            Section 3.1."
        ::= { eoEntry 7  }

    eoDomainName OBJECT-TYPE
        SYNTAX          SnmpAdminString
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
           "This object specifies the name of an Energy Management
           Domain for the Energy Object.  By default, this object
           should be an empty string.  The value of eoDomainName must
           remain constant at least from one re-initialization of





           the entity local management system to the next re-
           initialization."
        ::= { eoEntry 8   }

    eoRoleDescription OBJECT-TYPE
        SYNTAX          SnmpAdminString
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
           "This object specifies an administratively assigned name
           to indicate the purpose an Energy Object serves in the
           network.

           For example, we can have a phone deployed to a lobby with
           eoRoleDescription as 'Lobby phone'.

           This object specifies that the value is the zero-length
           string value if no role description is configured.
           The value of eoRoleDescription must remain constant at
           least from one re-initialization of the entity local
           management system to the next re-initialization."
        ::= { eoEntry 9   }

    eoKeywords OBJECT-TYPE
        SYNTAX          EnergyObjectKeywordList
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
           "This object specifies a list of keywords that can be
           used to group Energy Objects for reporting or searching.
           The value is the zero-length string if no keywords have
           been configured.  If multiple keywords are present, then
           this string will contain all the keywords separated by
           the ',' character.  For example, if an Energy Object were
           to be tagged with the keyword values 'hospitality' and
           'guest', then the keyword list will be
           'hospitality,guest'.

           If write access is implemented and a value is written
           into the instance, the agent must retain the supplied
           value in the eoKeywords instance associated with
           the same physical entity for as long as that entity
           remains instantiated.  This includes instantiations
           across all re-initializations/reboots of the local
           management agent."
        ::= { eoEntry 10     }

    eoImportance OBJECT-TYPE





        SYNTAX          Integer32 (1..100)
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
           "This object specifies a ranking of how important the
           Energy Object is (on a scale of 1 to 100) compared with
           other Energy Objects in the same Energy Management
           Domain.  The ranking should provide a business or
           operational context for the Energy Object as compared to
           other similar Energy Objects.  This ranking could be used
           as input for policy-based network management.

           Although network managers must establish their own
           ranking, the following is a broad recommendation:

           90 to 100 Emergency response
           80 to 89  Executive or business critical
           70 to 79  General or average
           60 to 69  Staff or support
           40 to 59  Public or guest
            1 to 39  Decorative or hospitality

           The value of eoImportance must remain constant at least
           from one re-initialization of the Energy Object local
           management system to the next re-initialization."
        DEFVAL          { 1 }
        ::= { eoEntry 11   }

    eoPowerCategory OBJECT-TYPE
        SYNTAX          INTEGER {
                            consumer(0),
                            producer(1),
                            meter(2),
                            distributor(3),
                            store(4)
                        }
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
           "This object describes the Energy Object category, which
           indicates the expected behavior or physical property of
           the Energy Object, based on its design.  An Energy Object
           can be a consumer(0), producer(1), meter(2),
           distributor(3), or store(4).

           In some cases, a meter is required to measure the power
           consumption.  In such a case, this meter Energy Object
           category is meter(2).  If a device is distributing





           electric Energy, the category of the Energy Object is
           distributor (3).  If a device is storing electric Energy,
           the category of the device can be store (4)."
        ::= { eoEntry 12    }

    eoAlternateKey OBJECT-TYPE
        SYNTAX          SnmpAdminString
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
           "The eoAlternateKey object specifies an alternate key
           string that can be used to identify the Energy Object.
           Since Energy Management Systems (EnMS) and Network
           Management Systems (NMSs) may need to correlate objects
           across management systems, this alternate key is provided
           to provide such a link.  This optional value is intended
           as a foreign key or alternate identifier for a
           manufacturer or EnMS/NMS to use to correlate the unique
           Energy Object Id in other systems or namespaces.  If an
           alternate key is not available or is not applicable, then
           the value is the zero-length string.
           The value of eoAlternateKey must remain constant at
           least from one re-initialization of the entity local
           management system to the next re-initialization."
        ::= { eoEntry 13 }

    eoPowerInterfaceType            OBJECT-TYPE
        SYNTAX          INTEGER {
                            inlet(0),
                            outlet(1),
                            both(2)
                        }
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
           "This object describes the Power Interface for an Energy
           Object.  A Power Interface is an interface at which an
           Energy Object is connected to a power transmission
           medium, at which it can in turn receive power, provide
           power, or both.  A Power Interface type can be an inlet(0),
           an outlet(1), or both(2), respectively."
        ::= { eoEntry 14 }

    eoRelationTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF EoRelationEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION





           "This table describes the relationships between Energy
           Objects."
        ::= { energyObjectContextMIBObjects 2 }

    eoRelationEntry OBJECT-TYPE
        SYNTAX          EoRelationEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
           "An entry in this table specifies the Energy relationship
           between Energy objects.  Energy relations between two
           Energy objects are defined in RFC 7326."
        REFERENCE
           " RFC 7326: Energy Management Framework"
        INDEX        { entPhysicalIndex, eoRelationIndex }
        ::= { eoRelationTable 1 }

    EoRelationEntry ::= SEQUENCE {
                   eoRelationIndex        Integer32,
                   eoRelationID           UUIDorZero,
                   eoRelationship         IANAEnergyRelationship,
                   eoRelationStatus       RowStatus,
                   eoRelationStorageType  StorageType
                  }

    eoRelationIndex     OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
           "This object is an arbitrary index to identify the Energy
           Object related to another Energy Object."
        ::= { eoRelationEntry 1 }

    eoRelationID        OBJECT-TYPE
        SYNTAX          UUIDorZero
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
           "This object specifies the Universally Unique Identifier
           (UUID) of the peer (other) Energy Object.  The UUID must
           comply with the specifications of UUID in UUID-TC-MIB.

           If the UUID of the Energy Object is unknown or nonexistent,
           the eoRelationID will be set to a zero-length string
           instead.  It is preferable that the value of
           entPhysicalUUID from ENTITY-MIB is used for values for
           this object."





     REFERENCE
           "RFC 6933: Entity MIB (Version 4)"
        ::= { eoRelationEntry 2 }

    eoRelationship      OBJECT-TYPE
        SYNTAX          IANAEnergyRelationship
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
           "This object describes the relations between Energy
           Objects.  For each Energy Object, the relations between
           the other Energy Objects are specified using the bitmap."
        ::= { eoRelationEntry 3 }

    eoRelationStatus OBJECT-TYPE
        SYNTAX          RowStatus
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
         "The status controls and reflects the creation and
          activation status of a row in this table to specify energy
          relationship between Energy Objects.

         An entry status may not be active(1) unless all objects in
         the entry have the appropriate values.

         No attempt to modify a row columnar object instance value
         in the eoRelationTable should be issued while the value of
         eoRelationStatus is active(1).  The data can be destroyed by
         setting up the eoRelationStatus to destroy(2)."

    ::= { eoRelationEntry 4 }

     eoRelationStorageType OBJECT-TYPE
       SYNTAX          StorageType
       MAX-ACCESS      read-create
       STATUS          current
       DESCRIPTION
        "This variable indicates the storage type for this row."
           DEFVAL { nonVolatile }
     ::= {eoRelationEntry 5 }

    -- Conformance

    energyObjectContextMIBCompliances  OBJECT IDENTIFIER
        ::= { energyObjectContextMIBConform 1   }

    energyObjectContextMIBGroups  OBJECT IDENTIFIER





        ::= { energyObjectContextMIBConform 2   }

    energyObjectContextMIBFullCompliance MODULE-COMPLIANCE
        STATUS          current
        DESCRIPTION
            "When this MIB is implemented with support for
            read-write, then such an implementation can
            claim full compliance.  Such devices can then
            be both monitored and configured with this MIB.
            Module Compliance of ENTITY-MIB with respect to
            entity4CRCompliance MUST be supported."

        MODULE          -- this module
        MANDATORY-GROUPS {
                    energyObjectContextMIBTableGroup,
                    energyObjectRelationTableGroup
                         }

        GROUP     energyObjectOptionalMIBTableGroup
                  DESCRIPTION
                  "A compliant implementation does not have to
                  implement."
        ::= { energyObjectContextMIBCompliances 1 }

    energyObjectContextMIBReadOnlyCompliance MODULE-COMPLIANCE
        STATUS          current
        DESCRIPTION
            "When this MIB is implemented without support for
            read-write (i.e., in read-only mode), then such an
            implementation can claim read-only compliance.
            Such a device can then be monitored but cannot be
            configured with this MIB.
            Module Compliance of ENTITY-MIB with respect to
            entity4CRCompliance MUST be supported."
        MODULE          -- this module

        MANDATORY-GROUPS {
                     energyObjectContextMIBTableGroup,
                     energyObjectRelationTableGroup
                         }

       GROUP energyObjectOptionalMIBTableGroup
          DESCRIPTION
          "A compliant implementation does not have to implement
           the managed objects in this GROUP."

       ::= { energyObjectContextMIBCompliances 2 }






    -- Units of Conformance
    energyObjectContextMIBTableGroup OBJECT-GROUP
        OBJECTS         {
                            eoDomainName,
                            eoRoleDescription,
                            eoAlternateKey,
                            eoKeywords,
                            eoImportance,
                            eoPowerCategory,
                            eoPowerInterfaceType
                        }
        STATUS          current
        DESCRIPTION
            "This group contains the collection of all the objects
            related to the EnergyObject."

        ::= { energyObjectContextMIBGroups 1 }

    energyObjectOptionalMIBTableGroup OBJECT-GROUP
           OBJECTS         {
                            eoEthPortIndex,
                            eoEthPortGrpIndex,
                            eoLldpPortNumber,
                            eoMgmtMacAddress,
                            eoMgmtAddressType,
                            eoMgmtAddress,
                            eoMgmtDNSName
                           }
        STATUS          current
        DESCRIPTION
            "This group contains the collection of all the objects
            related to the Energy Object."
        ::= { energyObjectContextMIBGroups 2 }

    energyObjectRelationTableGroup OBJECT-GROUP
         OBJECTS         {

                        eoRelationID,
                        eoRelationship,
                        eoRelationStatus,
                        eoRelationStorageType
                         }
         STATUS          current
         DESCRIPTION
            "This group contains the collection of all objects
            specifying the relationship between Energy Objects."
        ::= { energyObjectContextMIBGroups 3 }
    END




