ENTITY-STATE-MIB DEFINITIONS ::= BEGIN

     IMPORTS
         MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, mib-2
             FROM SNMPv2-SMI
         DateAndTime
             FROM SNMPv2-TC
         MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
              FROM SNMPv2-CONF
         entPhysicalIndex
              FROM ENTITY-MIB
         EntityAdminState, EntityOperState, EntityUsageState,
         EntityAlarmStatus, EntityStandbyStatus
              FROM ENTITY-STATE-TC-MIB;

     entityStateMIB MODULE-IDENTITY
         LAST-UPDATED "200511220000Z"
         ORGANIZATION "IETF Entity MIB Working Group"
         CONTACT-INFO
                 " General Discussion: entmib@ietf.org
                   To Subscribe:
                   http://www.ietf.org/mailman/listinfo/entmib

                   http://www.ietf.org/html.charters/entmib-charter.html

                   Sharon Chisholm
                   Nortel Networks
                   PO Box 3511 Station C
                   Ottawa, Ont.  K1Y 4H7
                   Canada
                   schishol@nortel.com

                   David T. Perkins
                   548 Qualbrook Ct
                   San Jose, CA 95110
                   USA
                   Phone: 408 394-8702
                   dperkins@snmpinfo.com
                  "
         DESCRIPTION
             "This MIB defines a state extension to the Entity MIB.

              Copyright (C) The Internet Society 2005.  This version
              of this MIB module is part of RFC 4268; see the RFC
              itself for full legal notices."
         REVISION    "200511220000Z"
         DESCRIPTION
             "Initial version, published as RFC 4268."
         ::= { mib-2 131 }


     -- Entity State Objects

     entStateObjects OBJECT IDENTIFIER ::= { entityStateMIB 1 }

     entStateTable OBJECT-TYPE
      SYNTAX      SEQUENCE OF EntStateEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "A table of information about state/status of entities.
           This is a sparse augment of the entPhysicalTable.  Entries
           appear in this table for values of
           entPhysicalClass [RFC4133] that in this implementation
           are able to report any of the state or status stored in
           this table.
           "
      ::= { entStateObjects 1 }


       entStateEntry OBJECT-TYPE
          SYNTAX      EntStateEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "State information about this physical entity."
          INDEX       { entPhysicalIndex }
          ::= { entStateTable 1 }

       EntStateEntry ::= SEQUENCE {
           entStateLastChanged DateAndTime,
           entStateAdmin       EntityAdminState,
           entStateOper        EntityOperState,
           entStateUsage       EntityUsageState,
           entStateAlarm       EntityAlarmStatus,
           entStateStandby     EntityStandbyStatus
          }

     entStateLastChanged OBJECT-TYPE
      SYNTAX      DateAndTime
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
        "The value of this object is the date and
         time when the value of any of entStateAdmin,
         entStateOper, entStateUsage, entStateAlarm,
         or entStateStandby changed for this entity.

         If there has been no change since
         the last re-initialization of the local system,
         this object contains the date and time of
         local system initialization.  If there has been
         no change since the entity was added to the
         local system, this object contains the date and
         time of the insertion."
      ::= { entStateEntry 1 }

   entStateAdmin OBJECT-TYPE
          SYNTAX      EntityAdminState
           MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
               "The administrative state for this entity.
                This object refers to an entities administrative
                permission to service both other entities within
                its containment hierarchy as well other users of
                its services defined by means outside the scope
                of this MIB.

                Setting this object to 'notSupported' will result
                in an 'inconsistentValue' error.  For entities that
                do not support administrative state, all set
                operations will result in an 'inconsistentValue'
                error.

                Some physical entities exhibit only a subset of the
                remaining administrative state values.  Some entities
                cannot be locked, and hence this object exhibits only
                the 'unlocked' state.  Other entities cannot be shutdown
                gracefully, and hence this object does not exhibit the
                'shuttingDown' state.  A value of 'inconsistentValue'
                will be returned if attempts are made to set this
                object to values not supported by its administrative
                model."
          ::= { entStateEntry 2 }

    entStateOper OBJECT-TYPE
          SYNTAX      EntityOperState
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION
              "The operational state for this entity.

               Note that unlike the state model used within the
               Interfaces MIB [RFC2863], this object does not follow
               the administrative state.  An administrative state of
               down does not predict an operational state
               of disabled.

               A value of 'testing' means that entity currently being
               tested and cannot therefore report whether it is
               operational or not.

               A value of 'disabled' means that an entity is totally
               inoperable and unable to provide service both to entities
               within its containment hierarchy, or to other receivers
               of its service as defined in ways outside the scope of
               this MIB.

               A value of 'enabled' means that an entity is fully or
               partially operable and able to provide service both to
               entities within its containment hierarchy, or to other
               receivers of its service as defined in ways outside the
               scope of this MIB.

               Note that some implementations may not be able to
               accurately report entStateOper while the
               entStateAdmin object has a value other than 'unlocked'.
               In these cases, this object MUST have a value
               of 'unknown'."
          ::= { entStateEntry 3 }

    entStateUsage OBJECT-TYPE
          SYNTAX      EntityUsageState
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION
              "The usage state for this entity.

               This object refers to an entity's ability to service more
               physical entities in a containment hierarchy.  A value
               of 'idle' means this entity is able to contain other
               entities but that no other entity is currently
               contained within this entity.

               A value of 'active' means that at least one entity is
               contained within this entity, but that it could handle
               more.  A value of 'busy' means that the entity is unable
               to handle any additional entities being contained in it.

               Some entities will exhibit only a subset of the
               usage state values.  Entities that are unable to ever
               service any entities within a containment hierarchy will
               always have a usage state of 'busy'.  Some entities will
               only ever be able to support one entity within its
               containment hierarchy and will therefore only exhibit
               values of 'idle' and 'busy'."
             ::= { entStateEntry 4 }

    entStateAlarm OBJECT-TYPE
          SYNTAX      EntityAlarmStatus
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION
              "The alarm status for this entity.  It does not include
               the alarms raised on child components within its
               containment hierarchy.

               A value of 'unknown' means that this entity is
               unable to report alarm state.  Note that this differs
               from 'indeterminate', which means that alarm state
               is supported and there are alarms against this entity,
               but the severity of some of the alarms is not known.

               If no bits are set, then this entity supports reporting
               of alarms, but there are currently no active alarms
               against this entity."
          ::= { entStateEntry 5 }

   entStateStandby OBJECT-TYPE
          SYNTAX EntityStandbyStatus
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
               "The standby status for this entity.

               Some entities will exhibit only a subset of the
               remaining standby state values.  If this entity
               cannot operate in a standby role, the value of this
               object will always be 'providingService'."
     ::= { entStateEntry 6 }

   -- Notifications
    entStateNotifications OBJECT IDENTIFIER ::= { entityStateMIB 0 }

   entStateOperEnabled NOTIFICATION-TYPE
      OBJECTS { entStateAdmin,
                entStateAlarm
              }
      STATUS             current
      DESCRIPTION
              "An entStateOperEnabled notification signifies that the
               SNMP entity, acting in an agent role, has detected that
               the entStateOper object for one of its entities has
               transitioned into the 'enabled' state.

               The entity this notification refers can be identified by
               extracting the entPhysicalIndex from one of the
               variable bindings.  The entStateAdmin and entStateAlarm
               varbinds may be examined to find out additional
               information on the administrative state at the time of
               the operation state change as well as to find out whether
               there were any known alarms against the entity at that
               time that may explain why the physical entity has become
               operationally disabled."
     ::= { entStateNotifications 1 }

   entStateOperDisabled NOTIFICATION-TYPE
      OBJECTS { entStateAdmin,
                entStateAlarm }
      STATUS             current
      DESCRIPTION
              "An entStateOperDisabled notification signifies that the
               SNMP entity, acting in an agent role, has detected that
               the entStateOper object for one of its entities has
               transitioned into the 'disabled' state.

               The entity this notification refers can be identified by
               extracting the entPhysicalIndex from one of the
               variable bindings.  The entStateAdmin and entStateAlarm
               varbinds may be examined to find out additional
               information on the administrative state at the time of
               the operation state change as well as to find out whether
               there were any known alarms against the entity at that
               time that may affect the physical entity's
               ability to stay operationally enabled."
     ::= { entStateNotifications 2 }

   -- Conformance and Compliance

   entStateConformance OBJECT IDENTIFIER ::= { entityStateMIB 2 }

   entStateCompliances OBJECT IDENTIFIER
                     ::= { entStateConformance 1 }

   entStateCompliance MODULE-COMPLIANCE
         STATUS  current
         DESCRIPTION
             "The compliance statement for systems supporting
             the Entity State MIB."
         MODULE -- this module
             MANDATORY-GROUPS {
              entStateGroup
             }
         GROUP       entStateNotificationsGroup
            DESCRIPTION
                "This group is optional."
         OBJECT entStateAdmin
          MIN-ACCESS  read-only
          DESCRIPTION
              "Write access is not required."
      ::= { entStateCompliances 1 }

   entStateGroups OBJECT IDENTIFIER ::= { entStateConformance 2 }

   entStateGroup OBJECT-GROUP
      OBJECTS {
              entStateLastChanged,
              entStateAdmin,
              entStateOper,
              entStateUsage,
              entStateAlarm,
              entStateStandby
              }
       STATUS   current
       DESCRIPTION
            "Standard Entity State group."
       ::= { entStateGroups 1}

   entStateNotificationsGroup NOTIFICATION-GROUP
      NOTIFICATIONS {
              entStateOperEnabled,
              entStateOperDisabled
              }
       STATUS   current
       DESCRIPTION
            "Standard Entity State Notification group."
       ::= { entStateGroups 2}

END
