-- *********************************************************************
-- CISCO-OUTAGE-MONITOR-MIB.my: Cisco outage Monitor MIB file
-- 
-- Dec. 2003 Sejun Song
-- 
-- Copyright (c) 2002 - 2005 by Cisco Systems, Inc.
-- All right reserved.
--
-- *********************************************************************

CISCO-OUTAGE-MONITOR-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, 
    NOTIFICATION-TYPE, 
    OBJECT-TYPE, 
    Unsigned32,
    Counter32                                FROM SNMPv2-SMI 
    InetAddressType,
    InetAddress                              FROM INET-ADDRESS-MIB
    TEXTUAL-CONVENTION, 
    DateAndTime, 
    TruthValue                               FROM SNMPv2-TC 
    MODULE-COMPLIANCE, 
    OBJECT-GROUP, 
    NOTIFICATION-GROUP                       FROM SNMPv2-CONF 
    SnmpAdminString                          FROM SNMP-FRAMEWORK-MIB
    ciscoMgmt                                FROM CISCO-SMI; 


ciscoOutageMIB MODULE-IDENTITY
    LAST-UPDATED        "200508220000Z"
    ORGANIZATION        "Cisco Systems, Inc."
    CONTACT-INFO        "Cisco Systems
                        Customer Service

                        Postal: 170 W Tasman Drive
                        San Jose, CA  95134
                        USA

                        Tel: +1 800 553-NETS

                        E-mail: cs-snmp@cisco.com"
    DESCRIPTION
        "This MIB module describes, stores, and reports outage 
        related information generated by individual hardware 
        and software components comprising a router. They includes 
        physical interfaces, logical interfaces, physical 
        entities such as chassis, slots, modules, ports, 
        power supplies, and fan, software processes 
        running on each card, and logical entity, which can be 
        defined by outage monitoring program,
        which are IOS software for each LC and RP,
        router device, and CPU utilization. 

        The outage related information comprises entity or 
        interface up and down, process start and abnormal 
        or normal termination, unusually high CPU utilization
        caused, for example, by Denial of Service (DoS) attack,
        etc.

        The outage related event can be collected by means of 
        Cisco's fault manager, Cisco's event manager, and 
        syslog messages, etc.
 
        An outage manager maintains the following outage data
        for each component.

            1) Accumulated Outage Time (AOT): total outage 
               time of a component from the beginning of 
               the measurement. 

            2) Number of Accumulated Failure (NAF): total 
               number of failure instance from the 
               beginning of the measurement.

            3) Recording Start Time (RST): the date-time 
               that the measurement process began against the object. 
             
        Using aforementioned outage data, users can calculate 
        and correlate to derive availability information as 
        follows: 
        
            1) Component Availability: the probability 
               that a component will operate when needed. 

               = (1 - (Outage Time / Duration))

            2) DPM (Defects per Million): measure(s) of the 
               defects of the system that have an immediate 
               impact on the end-user. 

               = ([AOTi / (Measurement Interval)] x 10**6)

            3) MTTR(Mean Time To Recovery): expected average 
               time to restore a failed component. 

               = (AOTi / NAFi)

            4) MTBF (Mean Time Between Failure): expected 
               average time between failures of a component.
 
               = (T2 - RSTi) / NAFi 

            5) MTTF (Mean Time To Failure): the mean time to 
               failure once the device starts working.

               = (MTBFi - MTTRi = (T2 - RSTi - AOTi) / NAFi)


                                 measurement 1
                             |<----------------->|
                             |                   |
            System Up @------|-------------------|----> Time
                            RSTi                 T2
 
            At the beginning RSTi:

	       tmp_AOT = AOTi (from the MIB polling);

            At the end T2:

               Duration = Current Time(T2) - RSTi;
               Outage Time = AOTj - tmp_AOT;
        "
    REVISION            "200508220000Z"
    DESCRIPTION
        "Added object cOutageRecordingStartTime to cOutageObjectTable.
         Added logicalEntity(5) to OutageMonObjectType.
         Added cOutageLntMapping subgroup object." 

    REVISION            "200209090000Z" 
    DESCRIPTION
        "Initial version of this MIB."
    ::= { ciscoMgmt 280 }


ciscoOutageMIBObjects OBJECT IDENTIFIER ::=  { ciscoOutageMIB 1 }

-- Subgroups

cOutageBasicInfo    OBJECT IDENTIFIER ::=  { ciscoOutageMIBObjects 1 }
cOutageHistory      OBJECT IDENTIFIER ::=  { ciscoOutageMIBObjects 2 }
cOutageDescription  OBJECT IDENTIFIER ::=  { ciscoOutageMIBObjects 3 }
cOutageMonObject    OBJECT IDENTIFIER ::=  { ciscoOutageMIBObjects 4 }
cOutageCpmMapping   OBJECT IDENTIFIER ::=  { ciscoOutageMIBObjects 5 }
cOutageRmtMapping   OBJECT IDENTIFIER ::=  { ciscoOutageMIBObjects 6 }
cOutageLntMapping   OBJECT IDENTIFIER ::=  { ciscoOutageMIBObjects 7 }

-- Textual Conventions

OutageMonObjectType ::= TEXTUAL-CONVENTION
    STATUS     current
    DESCRIPTION
        "Represents different monitored object types:

        interface - this object supports monitoring of both physical 
        and logical interfaces, which is defined in IF-MIB.

        physicalEntity - this object supports monitoring of physical 
        entities contained by the system, including chassis, slots, 
        modules, ports, power supplies, and fan, which is defined 
        in ENTITY-MIB.

        swProcess - this object supports monitoring of software 
        processes, which is defined in CISCO-PROCESS-MIB.

        remoteObject - this object supports monitoring of remote 
        objects including remote customer devices or interfaces.
        The object is defined by users via CLI configuration.

        logicalEntity - this object supports monitoring of any logical 
        entities contained by the system, including router device, 
        IOS software on each LC or RP, and CPU utilization object,
        which can be defined by outage monitoring program."

    SYNTAX  INTEGER { 
        interface(1), 
        physicalEntity(2), 
        swProcess(3), 
        remoteObject(4),
        logicalEntity(5) 
    }


-- Basic outage information objects


cOutageApplVersion OBJECT-TYPE
    SYNTAX         SnmpAdminString 
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "outage monitoring application version
        string.

        The format will be:

        'Version.Release.Patch-Level: Textual-Description'

        For example:  '1.0.0: Initial Outage Monitor
        Application'"
    ::= { cOutageBasicInfo 1 }

 
cOutageNotificationsSent OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "notifications"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of outage notifications that have been 
        sent. This number may include notifications
        that were prevented from being transmitted due to
        reasons such as resource limitations and/or
        non-connectivity.  If one is receiving notifications,
        one can periodically poll this object to determine if
        any notifications were missed.  If missed, a poll of 
        the cOutageHistoryTable might be necessary."
    ::= { cOutageBasicInfo 2 }


cOutageNotificationsEnabled OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object indicates whether outage notifications 
        will or will not be sent when an outage related event 
        is generated by the device.  Disabling notifications
        does not prevent outage event from being added
        to the cOutageHistoryTable."
    DEFVAL { false }
    ::= { cOutageBasicInfo 3 }


cOutageNotificationFilterEnabled OBJECT-TYPE
    SYNTAX          TruthValue 
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object indicates whether certain outage related 
        event notifications will or will not be sent when the 
        cOutageNotificationsEnabled is TRUE.

        In the event structure, it is possible to have 
        certain hierarchies such that an event causes several 
        related events. The original event is called a root 
        event and other related events are called sub-events.       

        If it is enabled, only a root event notification will
        be sent out and all other related sub-events will be 
        filtered out. The cOutageHistoryTable maintains only 
        the root event. However, it does not prevent the object 
        entries from being updated in the cOutageObjectTable.

        The filtering policy, which correlates a root event and 
        the following sub-events, may vary and can be controlled 
        by the configuration."
    DEFVAL { false }
    ::= { cOutageBasicInfo 4 }


cOutageFilteredEvents OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of events which were filtered out. 
        This object can be utilized to determine how 
        many following events got filtered out related 
        to the notified event." 
    ::= { cOutageBasicInfo 5 }


-- Outage event history table


cOutageHistTableSize OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "entries"
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "The upper limit on the number of entries that the
        cOutageHistoryTable may contain."
    DEFVAL  { 100 }
    ::= { cOutageHistory 1 }


cOutageHistMsgsFlushed OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "messages"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of entries that have been removed from
        the cOutageHistoryTable in order to make room for new
        entries.  The value of this object starts at '0' and 
        monotonically increases for each flushed message. 
        If the value of this object is '4294967295', the value 
        will become '0'. This object can be utilized to 
        determine whether your polling frequency on the 
        history table is fast enough and/or the size of your 
        history table is large enough such that you are not 
        missing events."
    ::= { cOutageHistory 2 }


cOutageHistoryTable OBJECT-TYPE
    SYNTAX                  SEQUENCE OF COutageHistoryEntry 
    MAX-ACCESS              not-accessible 
    STATUS                  current 
    DESCRIPTION 
        "A table of outage related events generated by this router.
        Conceptual row entries are dynamically added into this 
        table when outage related events occur.

        Entries are stored in FIFO order.  When the maximum number 
        of entries has been reached in the table, the oldest entry 
        in the table is removed immediately.  

        When a table is reduced to a smaller size N, the oldest
        entries are immediately removed from the table leaving 
        a maximum of N entries."
    ::= { cOutageHistory 3 } 

 
cOutageHistoryEntry       OBJECT-TYPE 
    SYNTAX                  COutageHistoryEntry 
    MAX-ACCESS              not-accessible 
    STATUS                  current 
    DESCRIPTION 
        "This entry contains information about an outage related 
        event which has been generated by this router." 
    INDEX    {cOutageEventIndex} 
    ::= {cOutageHistoryTable 1} 

 
COutageHistoryEntry      ::= SEQUENCE { 
    cOutageEventIndex             Unsigned32,
    cOutageEventObjectType        OutageMonObjectType,
    cOutageEventMonObjectIndex    Unsigned32, 
    cOutageEventTypeIndex         Unsigned32, 
    cOutageEventTime              DateAndTime,
    cOutageEventInterval          Unsigned32    
}  
 
cOutageEventIndex  OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An arbitrary non-zero integer value that uniquely 
        identifies a COutageHistoryEntry in the table. 
        The value of this table starts at '1' and monotonically 
        increases for each object failure and recovery event 
        received by the agent. If the value of this object is 
        '4294967295', the agent will reset it to '1' upon 
        receiving the next event."
    ::= { cOutageHistoryEntry 1 }


cOutageEventObjectType OBJECT-TYPE
    SYNTAX     OutageMonObjectType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This object specifies the monitored object's type. 
        It comprises interface(1), physicalEntity(2), 
        swProcess(3), remoteObject(4), and logicalEntity(5).  

        The detailed description has been presented above 
        in the OutageMonObjectType definition."
    ::= { cOutageHistoryEntry 2 }


cOutageEventMonObjectIndex  OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This object identifies a specific index of the 
        monitored object based upon the cOutageEventObjectType. 
        If it is interface(1), it correlates the object 
        with ifIndex in ifTable in the IF-MIB.         
        If it is physicalEntity(2), it correlates the object 
        with entPhysicalIndex in entPhysicalTable in the 
        ENTITY-MIB. 
        If it is swProcess(3), the value corresponds to an entry
        in the cOutageCpmMapTable, which correlates the object 
        with cpmCPUTotalIndex and cpmProcessPID in
        cpmProcessTable in the CISCO-PROCESS-MIB. 
        If it is remoteObject(4), the value corresponds to an 
        entry in the cOutageRemoteObjMapTable, which correlates the 
        object with its ID and description.  
        If it is logicalEntity(5), the value corresponds to an 
        entry in the cOutageLogicalObjMapTable, which correlates the 
        object with the description.  
        
        It also correlates the event entry with a specific 
        entry in cOutageObjectTable."
    ::= { cOutageHistoryEntry 3 }


cOutageEventTypeIndex  OBJECT-TYPE
    SYNTAX     Unsigned32  
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The type of outage related event. The value 
        corresponds to an entry in the cOutageEventTypeMapTable."
    ::= { cOutageHistoryEntry 4 }


cOutageEventTime  OBJECT-TYPE
    SYNTAX     DateAndTime 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This object specifies the date and time of the  
        event was generated. 

        The value of sysUpTime, which is reinitialized during 
        the router boot-up, is not sufficient, since it 
        shall be able to measure the outage time of the 
        router failure over the measurement period."
    ::= { cOutageHistoryEntry 5 }


cOutageEventInterval  OBJECT-TYPE
    SYNTAX     Unsigned32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Object that identifies the time duration between 
        transitions in available state of a component. 
        According to the cOutageEventTypeIndex, If the event type
        is up, the interval time from the last down time is 
        TTR (Time To Recovery). 
        Otherwise, the interval time from the last up is TTF 
        (Time To Failure)."
    ::= { cOutageHistoryEntry 6 }


-- Event Map Table


cOutageEventTypeMapTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF COutageEventTypeMapEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A table containing information about 
        cOutageEventTypeMapIndex value mapping. 
        Each conceptual row specifies a unique mapping 
        between a cOutageEventTypeMapIndex value, and an 
        outage related event type."
    ::= { cOutageDescription 1 }


cOutageEventTypeMapEntry OBJECT-TYPE
    SYNTAX      COutageEventTypeMapEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A mapping between an event type and an event description."
    INDEX       { cOutageEventTypeMapIndex }
    ::= { cOutageEventTypeMapTable 1 }


COutageEventTypeMapEntry ::= SEQUENCE {
    cOutageEventTypeMapIndex   Unsigned32,
    cOutageEventTypeName       SnmpAdminString,
    cOutageEventTypeDescrText  SnmpAdminString
}


cOutageEventTypeMapIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object uniquely identifies an event description."
    ::= { cOutageEventTypeMapEntry 1 }


cOutageEventTypeName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..128))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of the outage related event." 
    ::= { cOutageEventTypeMapEntry 2 }


cOutageEventTypeDescrText OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies a human-readable 
        message describing information about the 
        outage related event."
    ::= { cOutageEventTypeMapEntry 3 }


-- Object Outage 


cOutageObjectTable OBJECT-TYPE
    SYNTAX                  SEQUENCE OF COutageObjectEntry
    MAX-ACCESS              not-accessible
    STATUS                  current
    DESCRIPTION
        "A table of monitored object entries generated 
        by this router, which include interface, physical 
        entry, and software process.

        The conceptual row entries are initially established
        during the monitoring start-up procedure based upon 
        configuration set-up. The entries are also dynamically 
        added into this table when a new object is detected. 

        The entry information will be updated, when the outage 
        related event occurs.

        The entry will be removed only by configuration reset."
    ::= { cOutageMonObject 1 }


cOutageObjectEntry OBJECT-TYPE
    SYNTAX                  COutageObjectEntry 
    MAX-ACCESS              not-accessible
    STATUS                  current
    DESCRIPTION
        "An entry containing outage related information 
        applicable to a particular measurement object."
    INDEX    {cOutageObjectType, cOutageMonitoredObjectIndex}
    ::= {cOutageObjectTable 1}


COutageObjectEntry      ::= SEQUENCE {
    cOutageObjectType                    OutageMonObjectType,
    cOutageMonitoredObjectIndex          Unsigned32,
    cOutageCurrentStatus                 INTEGER,
    cOutageAOTSinceMeasureStarted        Unsigned32, 
    cOutageNAFSinceMeasureStarted        Unsigned32,
    cOutageRecordingStartTime            DateAndTime 
} 


cOutageObjectType OBJECT-TYPE
    SYNTAX     OutageMonObjectType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This object specifies the monitored object's type. 
        It comprises interface(1), physicalEntity(2), 
        swProcess(3), remoteObject(4), and logicalEntity(5). 

        The detailed description has been presented above 
        in the OutageMonObjectType definition."
    ::= { cOutageObjectEntry 1 }


cOutageMonitoredObjectIndex OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS not-accessible 
    STATUS     current
    DESCRIPTION
        "This object identifies a specific index of the 
        monitored object based upon the cOutageObjectType. 
        If it is interface(1), it correlates the object 
        with ifIndex in ifTable in the IF-MIB.         
        If it is PhysicalEntity(2), it correlates the object 
        with entPhysicalIndex in entPhysicalTable in the 
        ENTITY-MIB. 
        If it is SWProcess(3), the value corresponds to an entry
        in the cOutageCpmMapTable, which correlates the object 
        with cpmCPUTotalIndex and cpmProcessPID in
        cpmProcessTable in the CISCO-PROCESS-MIB.
        If it is remoteObject(4), the value corresponds to an
        entry in the cOutageRemoteObjMapTable, which correlates the
        object with its ID and description.
        If it is logicalEntity(5), the value corresponds to an 
        entry in the cOutageLogicalObjMapTable, which correlates the 
        object with the description."
    ::= { cOutageObjectEntry 2 }


cOutageCurrentStatus  OBJECT-TYPE
    SYNTAX  INTEGER { 
                up(1), 
                down(2) 
            } 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The current operational state of the monitored object. 
        The Up(1) state indicates that the monitored object is 
        actively or passively running in the normal condition. 
        The Down(2) state indicates that the monitored object 
        is experiencing some degree of outage."
    ::= { cOutageObjectEntry 3 }


cOutageAOTSinceMeasureStarted  OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The total outage time in second of a component from the 
        beginning of the measurement. The table stores the outage  
        time up to the last recovery event. However, a request  
        comes in during the down status of a component, the report  
        adds the outage time between the last failure to the
        current."
    ::= { cOutageObjectEntry 4 }


cOutageNAFSinceMeasureStarted  OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The total number of failure instances from the beginning 
        of the measurement. Every failure event of a component 
        adds 1 to this object." 
    ::= { cOutageObjectEntry 5 }

cOutageRecordingStartTime  OBJECT-TYPE
    SYNTAX     DateAndTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This object specifies the date and time of the
        object to start outage recording.

        The instance value of this cOutageRecordingStartTime 
        value is initialized to the time when the monitored 
        object is added into this cOutageObjectTable."
    ::= { cOutageObjectEntry 6 }

 
-- Process Index Map Table


cOutageCpmMapTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF COutageCpmMapEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A table containing information about
        cOutageMonitoredObjectIndex value mapping,
        when the cOutageObjectType is swProcess.
        Each conceptual row specifies a unique mapping
        between a cOutageMonitoredObjectIndex value, and 
        cpmCPUTotalIndex and cpmProcessPID in
        cpmProcessTable in the CISCO-PROCESS-MIB." 
    ::= { cOutageCpmMapping 1 }


cOutageCpmMapEntry OBJECT-TYPE
    SYNTAX      COutageCpmMapEntry 
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A mapping between an object index and a pair of cpm indexes."
    INDEX       { cOutageCpmMapIndex }
    ::= { cOutageCpmMapTable 1 }


COutageCpmMapEntry ::= SEQUENCE {
    cOutageCpmMapIndex        Unsigned32,
    cOutageCpmCPUTotalIndex   Unsigned32,
    cOutageCpmProcessPID      Unsigned32 
}


cOutageCpmMapIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object uniquely identifies cpmCPUTotalIndex and 
        cpmProcessPID in CISCO-PROCESS-MIB. The cpmCPUTotalIndex 
        is used for the cpmCPUTotalTable reference. A pair of 
        { cpmCPUTotalIndex, cpmProcessPID } is used for the 
        cpmProcessTable reference."
    ::= { cOutageCpmMapEntry 1 }


cOutageCpmCPUTotalIndex OBJECT-TYPE
    SYNTAX      Unsigned32 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An index that uniquely represents a CPU in cpmCPUTotalTable
        in CISCO-PROCESS-MIB."
    ::= { cOutageCpmMapEntry 2 }


cOutageCpmProcessPID OBJECT-TYPE
    SYNTAX      Unsigned32 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object contains the process ID. It identifies an 
        entry combined with cpmCPUTotalIndex in cpmProcessTable 
        in CISCO-PROCESS-MIB." 
    ::= { cOutageCpmMapEntry 3 }


-- Remote Object Map Table


cOutageRemoteObjMapTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF COutageRemoteObjMapEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A table containing information about
        cOutageMonitoredObjectIndex value mapping,
        when the cOutageObjectType is remoteObject.
        Each conceptual row specifies a unique mapping
        between a cOutageMonitoredObjectIndex value, and
        a remote object related information such as the
        object ID and the object description. 
        Using IP ICMP protocol to monitor the remote object, 
        the object ID can be Network Layer Address, which 
        has been configured by users via configuration file 
        or CLI."
    ::= { cOutageRmtMapping 1 }


cOutageRemoteObjMapEntry OBJECT-TYPE
    SYNTAX      COutageRemoteObjMapEntry 
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A mapping between a remote object and a remote object 
        description."
    INDEX       { cOutageRemoteObjMapIndex }
    ::= { cOutageRemoteObjMapTable 1 }


COutageRemoteObjMapEntry ::= SEQUENCE {
    cOutageRemoteObjMapIndex   Unsigned32,
    cOutageRemoteObjIDType     InetAddressType, 
    cOutageRemoteObjID         InetAddress,
    cOutageRemoteObjDescrText  SnmpAdminString
}


cOutageRemoteObjMapIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object uniquely identifies a remote object
        description."
    ::= { cOutageRemoteObjMapEntry 1 }


cOutageRemoteObjIDType OBJECT-TYPE
    SYNTAX      InetAddressType 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Represents the type of address stored in
        cOutageRemoteObjID." 
    ::= { cOutageRemoteObjMapEntry 2 }


cOutageRemoteObjID OBJECT-TYPE
    SYNTAX      InetAddress 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object represents the Network Layer Address
        of the remote object, which is configured by
        users via configuration file or CLI. 
        It could be an IP address or DNS 
        depends on users input."
    ::= { cOutageRemoteObjMapEntry 3 }


cOutageRemoteObjDescrText OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies a human-readable
        message describing information about the
        monitored remote components such as router name 
        or interface name, etc."
    ::= { cOutageRemoteObjMapEntry 4 }


-- Logical Entity Object Map Table


cOutageLogicalObjMapTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF COutageLogicalObjMapEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A table containing information about
        cOutageMonitoredObjectIndex value mapping,
        when the cOutageObjectType is logicalEntity.
        Each conceptual row specifies a unique mapping
        between a cOutageMonitoredObjectIndex value, and
        a logical entity object related information such 
        as the object description."         
    ::= { cOutageLntMapping 1 }


cOutageLogicalObjMapEntry OBJECT-TYPE
    SYNTAX      COutageLogicalObjMapEntry 
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A mapping between a logical entity object and  
        a logical entity object description."
    INDEX       { cOutageLogicalObjMapIndex }
    ::= { cOutageLogicalObjMapTable 1 }


COutageLogicalObjMapEntry ::= SEQUENCE {
    cOutageLogicalObjMapIndex   Unsigned32,    
    cOutageLogicalObjDescrText  SnmpAdminString
}


cOutageLogicalObjMapIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object uniquely identifies a logical entity 
        object description."
    ::= { cOutageLogicalObjMapEntry 1 }


cOutageLogicalObjDescrText OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies a human-readable
        message describing a detailed information 
        about the monitored logical entity."
    ::= { cOutageLogicalObjMapEntry 2 }


-- MIB Notification Definitions


ciscoOutageMIBNotificationPrefix OBJECT IDENTIFIER ::= 
    { ciscoOutageMIB 2 }
ciscoOutageMIBNotifications OBJECT IDENTIFIER ::= 
    { ciscoOutageMIBNotificationPrefix 0 }

ciscoOutageEvent NOTIFICATION-TYPE
    OBJECTS {
        cOutageEventObjectType,
        cOutageEventMonObjectIndex,
        cOutageEventTypeIndex,
        cOutageEventTime,
        cOutageEventInterval
        }
    STATUS	   current
    DESCRIPTION
        "The agent generates this notification when 
        an outage related event on a monitored object is 
        detected. The sending of this notification can be 
        enabled/disabled via the 
        cOutageNotificationsEnabled object."
    ::= { ciscoOutageMIBNotifications 1 }


-- Conformance Information


ciscoOutageMIBConformance OBJECT IDENTIFIER ::= { ciscoOutageMIB 3 }
ciscoOutageMIBCompliances OBJECT IDENTIFIER ::= 
        { ciscoOutageMIBConformance 1 }
ciscoOutageMIBGroups      OBJECT IDENTIFIER ::= 
        { ciscoOutageMIBConformance 2 }


-- Compliance Statements


ciscoOutageMIBCompliance MODULE-COMPLIANCE
    STATUS	deprecated
    DESCRIPTION
	"The compliance statement for Cisco agents which 
        implement the Cisco Outage MIB. This is
        deprecated and new compliance
        ciscoOutageMIBComplianceRev1 is added."
    MODULE
    MANDATORY-GROUPS { 
        ciscoOutageBasicGroup,
        ciscoEventHistoryGroup,
        ciscoEventDescrGroup,
        ciscoObjectOutageGroup,  
        ciscoCpmMappingGroup,
        ciscoRmtMappingGroup,
        ciscoOutageNotificationsGroup
        }         
    ::= { ciscoOutageMIBCompliances 1 }

ciscoOutageMIBComplianceRev1 MODULE-COMPLIANCE
    STATUS	current
    DESCRIPTION
	"The compliance statement for Cisco agents which 
        implement the Cisco Outage MIB."
    MODULE
    MANDATORY-GROUPS { 
        ciscoOutageBasicGroup,
        ciscoEventHistoryGroup,
        ciscoEventDescrGroup,
        ciscoObjectOutageGroupRev,  
        ciscoCpmMappingGroup,
        ciscoRmtMappingGroup,
        ciscoLntMappingGroup,
        ciscoOutageNotificationsGroup        
        }         
    ::= { ciscoOutageMIBCompliances 2 }


-- Units of Conformance


ciscoOutageBasicGroup OBJECT-GROUP
    OBJECTS {
        cOutageApplVersion,
        cOutageNotificationsSent,
        cOutageNotificationsEnabled,        
        cOutageNotificationFilterEnabled,
        cOutageFilteredEvents       
    }
    STATUS	current
    DESCRIPTION
        "A collection of managed objects providing basic 
        outage notification and configuration information 
        including notification status and event filtering 
        status."
    ::= { ciscoOutageMIBGroups 1 }


ciscoEventHistoryGroup OBJECT-GROUP
    OBJECTS {
        cOutageHistTableSize,
        cOutageHistMsgsFlushed,
        cOutageEventObjectType,
        cOutageEventMonObjectIndex,
        cOutageEventTypeIndex,
        cOutageEventTime,
        cOutageEventInterval
	}
    STATUS	current
    DESCRIPTION
        "A collection of managed objects providing detected 
        outage related event history information."
    ::= { ciscoOutageMIBGroups 2 }


ciscoEventDescrGroup OBJECT-GROUP
    OBJECTS {
        cOutageEventTypeName,
        cOutageEventTypeDescrText
	}
    STATUS	current
    DESCRIPTION
        "A collection of managed objects defining the 
        description of outage related events."
    ::= { ciscoOutageMIBGroups 3 }


ciscoObjectOutageGroup OBJECT-GROUP
    OBJECTS {
        cOutageCurrentStatus,
        cOutageAOTSinceMeasureStarted,
        cOutageNAFSinceMeasureStarted
	}
    STATUS	deprecated
    DESCRIPTION
        "A collection of managed objects providing 
        accumulated outage data. 
        This group is deprecated in favour of 
        ciscoObjectOutageGroupRev."
    ::= { ciscoOutageMIBGroups 4 }


ciscoCpmMappingGroup OBJECT-GROUP
    OBJECTS {
        cOutageCpmCPUTotalIndex,
        cOutageCpmProcessPID
        }
    STATUS      current
    DESCRIPTION
        "A collection of managed objects defining the
        mapping of two cpm indexes."
    ::= { ciscoOutageMIBGroups 5 }


ciscoRmtMappingGroup OBJECT-GROUP
    OBJECTS {
        cOutageRemoteObjIDType,
        cOutageRemoteObjID,
        cOutageRemoteObjDescrText
        }
    STATUS      current
    DESCRIPTION
        "A collection of managed objects defining the 
        description of remote objects."
    ::= { ciscoOutageMIBGroups 6 }


ciscoOutageNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS  {
        ciscoOutageEvent
        }
    STATUS current
    DESCRIPTION
        "A collection of notifications."
    ::= { ciscoOutageMIBGroups 7 }

ciscoObjectOutageGroupRev OBJECT-GROUP
    OBJECTS {
        cOutageCurrentStatus,
        cOutageRecordingStartTime,
        cOutageAOTSinceMeasureStarted,
        cOutageNAFSinceMeasureStarted
	}
    STATUS	current
    DESCRIPTION
        "A collection of managed objects providing 
        accumulated outage data information."
    ::= { ciscoOutageMIBGroups 8 }

ciscoLntMappingGroup OBJECT-GROUP
    OBJECTS {
        cOutageLogicalObjDescrText
        }
    STATUS      current
    DESCRIPTION
        "A managed object defining the 
        description of logical entity objects."
    ::= { ciscoOutageMIBGroups 9 }
END
