IVN-PROBLEM-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, TimeTicks
        FROM SNMPv2-SMI                 -- [RFC2578]
    DateAndTime
        FROM SNMPv2-TC                  -- [RFC2579]
    SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB         -- [RFC3411]
    MODULE-COMPLIANCE, OBJECT-GROUP
        FROM SNMPv2-CONF                -- [RFC2580]
    iPhoiVNManagement
        FROM IPHOTONIX-SMI-MIB;

problemMIB MODULE-IDENTITY
    LAST-UPDATED "201709070000Z"  -- September 7, 2017
    ORGANIZATION "iPhotonix"
    CONTACT-INFO
          "support@iphotonix.com"
    DESCRIPTION
        "The Problems module provides SNMP access to passively
         monitor any existing iVN system problems."
    REVISION    "201709070000Z"  -- September 7, 2017
    DESCRIPTION
        "Initial version."
    ::= { iPhoiVNManagement 1 }

problemObjects OBJECT IDENTIFIER ::= { problemMIB 1 }

problemActive  OBJECT IDENTIFIER ::= { problemObjects 1 }

-- Active Problem Table --

problemActiveLastChanged  OBJECT-TYPE
   SYNTAX      TimeTicks
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The value of sysUpTime at the time of the last
       creation or deletion of an entry in the problemActiveTable.
       If the number of entries has been unchanged since the
       last re-initialization of the local network management
       subsystem, then this object contains a zero value."
   ::= { problemActive 1 }

problemActiveTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF ProblemActiveEntry
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
       "A table of Active Problems entries."
   ::= { problemActive 2 }

problemActiveEntry OBJECT-TYPE
   SYNTAX      ProblemActiveEntry
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
       "Entries appear in this table when problems are raised.  They
        are removed when the problem is cleared."
   INDEX       { problemActiveIndex }
   ::= { problemActiveTable 1 }

ProblemActiveEntry ::= SEQUENCE {
   problemActiveIndex                 Unsigned32,
   problemActiveDateAndTime           DateAndTime,
   problemActiveElement               SnmpAdminString,
   problemActiveDescription           SnmpAdminString }

problemActiveIndex OBJECT-TYPE
   SYNTAX     Unsigned32 (1..4294967295)
   MAX-ACCESS not-accessible
   STATUS     current
   DESCRIPTION
       "A strictly monotonically increasing integer which
       acts as the index of entries within the named problem
       list.  It wraps back to 1 after it reaches its
       maximum value."
   ::= { problemActiveEntry 1 }

problemActiveDateAndTime OBJECT-TYPE
   SYNTAX      DateAndTime
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
       "The local date and time when the error occurred.

       Implementations MUST include the offset from UTC,
       if available.  Implementation in environments in which
       the UTC offset is not available is NOT RECOMMENDED."
   ::= { problemActiveEntry 2 }

problemActiveElement    OBJECT-TYPE
   SYNTAX      SnmpAdminString
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "This object provides a textual description of
       the element encountering the problem."
   ::= { problemActiveEntry 3 }

problemActiveDescription    OBJECT-TYPE
   SYNTAX      SnmpAdminString
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "This object provides a textual description of the
      active problem."
   ::= { problemActiveEntry 4 }

-- Conformance

problemConformance OBJECT IDENTIFIER ::= { problemMIB 2 }

problemCompliances OBJECT IDENTIFIER ::= { problemConformance 1 }

problemCompliance MODULE-COMPLIANCE
      STATUS  current
      DESCRIPTION
          "The compliance statement for systems supporting
          the Problem MIB."
      MODULE -- this module
          MANDATORY-GROUPS {
           problemActiveGroup
          }
   ::= { problemCompliances 1 }

problemGroups OBJECT IDENTIFIER ::= { problemConformance 2 }

problemActiveGroup OBJECT-GROUP
        OBJECTS {
           problemActiveLastChanged,
           problemActiveDateAndTime,
           problemActiveElement,
           problemActiveDescription
          }
          STATUS   current
          DESCRIPTION
               "Active Problem list group."
          ::= { problemGroups 1}

END
