Event MIB

                             7 October 1998

                   draft-ietf-disman-event-mib-05.txt

                            22 February 1999

                   draft-ietf-disman-event-mib-06.txt

                              Bob Stewart
                          Cisco Systems, Inc.
                           bstewart@cisco.com

                          Status of this Memo

This document is an Internet-Draft. Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC2026.

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

To view the entire

The list of current Internet-Drafts, please check the
"1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern Europe),
ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific Rim),
ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast). can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt

Distribution of this document is unlimited. Please send comments to the
Distributed Management Working Group, <disman@nexen.com>.

Copyright Notice

Copyright (C) The Internet Society (1998). (1999).  All Rights Reserved.

1.  Abstract

This memo defines an experimental portion of the Management Information
Base (MIB) for use with network management protocols in the Internet
community.  In particular, it describes managed objects used for
managing monitoring of MIB objects and taking action through events.

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.

2.  The SNMP Management Framework

The SNMP Management Framework presently consists of five major
components:

    o   An overall architecture, described in RFC 2271 [1].

    o   Mechanisms for describing and naming objects and events for the
        purpose of management. The first version of this Structure of
        Management Information (SMI) is called SMIv1 and described in
        RFC 1155 [2], RFC 1212 [3] and RFC 1215 [4]. The second version,
        called SMIv2, is described in RFC 1902 [5], RFC 1903 [6] and RFC
        1904 [7].

    o   Message protocols for transferring management information. The
        first version of the SNMP message protocol is called SNMPv1 and
        described in RFC 1157 [8]. A second version of the SNMP message
        protocol, which is not an Internet standards track protocol, is
        called SNMPv2c and described in RFC 1901 [9] and RFC 1906 [10].
        The third version of the message protocol is called SNMPv3 and
        described in RFC 1906 [10], RFC 2272 [11] and RFC 2274 [12].

    o   Protocol operations for accessing management information. The
        first set of protocol operations and associated PDU formats is
        described in RFC 1157 [8]. A second set of protocol operations
        and associated PDU formats is described in RFC 1905 [13].

    o   A set of fundamental applications described in RFC 2273 [14] and
        the view-based access control mechanism described in RFC 2275
        [15].

Managed objects are accessed via a virtual information store, termed the
Management Information Base or MIB.  Objects in the MIB are defined

using the mechanisms defined in the SMI.

This memo specifies a MIB module that is compliant to the SMIv2. A MIB
conforming to the SMIv1 can be produced through the appropriate
translations. The resulting translated MIB must be semantically
equivalent, except where objects or events are omitted because no
translation is possible (use of Counter64). Some machine readable
information in SMIv2 will be converted into textual descriptions in
SMIv1 during the translation process. However, this loss of machine
readable information is not considered to change the semantics of the
MIB.

3.  Overview

With network sizes well beyond the ability of people to management their
networks directly them
directly, automated, distributed management is vital.  An important
aspect of such management is the ability of a system to monitor itself
or for some other system to monitor it.

The Event MIB provides the ability to monitor MIB objects on the local
system or on a remote system and take simple action when a trigger
condition is met.

All of these components must

The MIB is intended to suit either a relatively powerful manager or
mid-level manager, as well as a somewhat more limited self-managing
system.

4.  Relationship to Other MIBs

The Event MIB is based on extensive experience with the RMON MIB [16]
and its alarm and event groups and is intended as a replacement for
those groups.  The Event MIB calls "triggers" what the RMON MIB called
"alarms," but the concepts are the same.  Event MIB triggers maintain
the RMON handling of thresholds and add the concept of booleans.  Event
MIB events maintain the RMON concept of sending an SNMP notification in
response to a trigger and add the concept of setting a MIB object.

The Event MIB is the successor and update to SNMPv2's Manager-to-Manager
MIB [17] which was declared Historic pending this work.

The Event MIB depends on the services of the SNMPv3 Management Target
and Notification MIBs [14].

The Event MIB is nicely complemented by the Distributed Management
Expression MIB [18], which is the expected source of boolean objects to
monitor.  Note that there is considerable overlap between the wildcard
and delta sample capabilities of the Event and Expression MIBs.  A
carefully-planned implementation might well use common code to provide
the overlapping functions.

5.  MIB Sections

The MIB has three sections, four sections: triggers, objects, events, and notifications.
Triggers define the conditions that lead to events.  Events may cause
notifications.

The trigger table lists what objects are to be monitored and how and
relates each trigger to an event.  In  It has supplementary, companion
tables for additional objects that depend on the same section type of test done for
the trigger

object trigger.

The objects table lists trigger-related objects that can be added to notifications either for a based
on the trigger, the trigger test type, or for an event. the event that resulted in the
notification.

The event table defines what happens when an event is triggered, sending
a notificaiton, notification, setting a MIB object or both.  It has supplementary,
companion tables for additional objects that depend on the action taken.

The notification section defines a set of generic notifications to go
with the events and for Event MIB error handlling, handling, and it defines a set
of objects to put in those notifications.

6.  Operation

The Event MIB is instrumentation for a distributed management
application that monitors MIB objects.  In its simplest form this
application monitors individual, local MIB objects, just as an RMON
probe fulfills the functions implied by RMON's alarm and event
operation.  Additionally the application can monitor remote objects and
wildcarded groups of objects.

Remote monitoring uses the tag service of the Management Target MIB to
select and access remote systems as an ordinary SNMP-based management
application.  Local monitoring may be be via a more intimate, local
interface which may, for example, bypass SNMP formatting encoding but otherwise is
functionally identical to remote SNMP operation. operation, including the
application of access control.  A self-management only system may not implemenet
implement remote monitoring.

Wildcards indicate that the application should use a GetNext-type
operation to find the zero or more instances implied by a truncated
object identifier, just like an ordinary SNMP-based management
application.  Each instance of a wildcard is treated as if it were a
separate entry, that is the instances of a wildcarded object are
independent of one another.  For example, a wild-carded object may
trigger an event and result in the setting of another wildcarded object.
The instance that satisfied the trigger function is used to perform the
set function.  All of this takes place independently of any additional
instances that may fill the wildcard.

Error handling is by notification, which at first thought violates the
principle that notifications may be lost or become a crippling burden,
but the intent is that such error notifications be enabled only for the
diagnosis of problems indicated by error counters and if the
notifications are being lost they be directed to the log as described in
the Notification Log MIB [19].  Note that this does not mean the
Notification Log MIB is required, since in fact notifications usually
are not lost, but that the Notification Log MIB can be helpful with this
as well as other MIBs that include notifications.

7.  Security

Security of Event MIB entries depends on SNMPv3 access control for the
entire MIB or for subsets based on substrings of trigger and event
names.

Security of monitored objects for remote access depends on the
Management Target MIB.  Security for local access can depend on the
Management Target MIB or on recording appropriate security credentials
of the creator of an entry and using those to access the local objects.

8.  Definitions

EVENT-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    experimental, Integer32, Unsigned32
    NOTIFICATION-TYPE                   FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, RowStatus,
    TimeStamp, DisplayString            FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP     FROM SNMPv2-CONF
    SnmpTagValue                        FROM SNMP-TARGET-MIB
    SnmpAdminString                     FROM SNMP-FRAMEWORK-MIB;

eventMIB MODULE-IDENTITY
    LAST-UPDATED "9810071700Z"
    ORGANIZATION "IETF Distributed Management Working Group"
    CONTACT-INFO "Bob Stewart
                  Cisco Systems, Inc.
                  170 West Tasman
These security credentials are the parameters necessary as inputs to
isAccessAllowed from the Architecture for Describing SNMP Management
Frameworks.  When accessing local objects without using a local target
tag, the system must (conceptually) use isAccessAllowed to ensure that
it does not violate security.

To facilitate the provisioning of access control by a security
administrator for this MIB itself using the View-Based Access Control
Model (VACM) defined in RFC 2275 [15] for tables in which multiple users
may need to independently create or modify entries, the initial index is
used as an "owner index". Such an initial index has a syntax of
SnmpAdminString, and can thus be trivially mapped to a securityName or
groupName as defined in VACM, in accordance with a security policy.

All entries in related tables belonging to a particular user will have
the same value for this initial index.  For a given user's entries in a
particular table, the object identifiers for the information in these
entries will have the same subidentifiers (except for the "column"
subidentifier) up to the end of the encoded owner index. To configure
VACM to permit access to this portion of the table, one would create
vacmViewTreeFamilyTable entries with the value of
vacmViewTreeFamilySubtree including the owner index portion, and
vacmViewTreeFamilyMask "wildcarding" the column subidentifier.  More
elaborate configurations are possible.

8.  Definitions

DISMAN-EVENT-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    experimental, Integer32, Unsigned32,
    NOTIFICATION-TYPE, Counter32,
    Gauge32                             FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, RowStatus,
    TruthValue                          FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP,
    NOTIFICATION-GROUP                  FROM SNMPv2-CONF
    sysUpTime                           FROM SNMPv2-MIB
    SnmpTagValue                        FROM SNMP-TARGET-MIB
    SnmpAdminString                     FROM SNMP-FRAMEWORK-MIB;

dismanEventMIB MODULE-IDENTITY
    LAST-UPDATED "9902221700Z"
    ORGANIZATION "IETF Distributed Management Working Group"
    CONTACT-INFO "Bob Stewart
                  Cisco Systems, Inc.
                  170 West Tasman Drive,
                  San Jose CA 95134-1706.
                  Phone: +1 408 526 4527
                  Email: bstewart@cisco.com"
    DESCRIPTION
        "The MIB module for defining event triggers and actions
        for network management purposes."
    ::= { experimental xx }

eventMIBObjects

dismanEventMIBObjects OBJECT IDENTIFIER ::= { eventMIB dismanEventMIB 1 }

mteTrigger

mteResource             OBJECT IDENTIFIER ::= { eventMIBObjects dismanEventMIBObjects 1 }
mteEvent
mteTrigger              OBJECT IDENTIFIER ::= { eventMIBObjects dismanEventMIBObjects 2 }
mteObjects              OBJECT IDENTIFIER ::= { dismanEventMIBObjects 3 }
mteEvent                OBJECT IDENTIFIER ::= { dismanEventMIBObjects 4 }

-- For use as a default OID:

zeroDotZero OBJECT IDENTIFIER ::= { 0 0 }

--
-- Textual Conventions

--

FailureReason ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "Reasons for failures in an attempt to send perform a management
        message.
        request.

        The first group of errors, numbered less than 100, 0, are related
        to problems in sending the request.  The existence of a
        particular error code here does not imply that all
        implementations are capable of sensing that error and
        returning that code.

        The second group, numbered greater than 0, are copied
        directly from SNMP protocol operations and are intended to carry
        exactly the meanings defined for the protocol as returned in
        an SNMP response.  Those numbered 100

        localResourceLack       some local resource such as memory lacking
                                or greater are related mteResourceSampleInstanceMaximum
                                exceeded
        badDestination          unrecognized domain name or otherwise
                                invalid destination address
        destinationUnreachable  can't get to problems in sending destination address
        noResponse              no response to SNMP request
        badType                 the data syntax of a retrieved object
                                as not as expected
        sampleOverrun           another sample attempt occurred before
                                the request." previous one completed"

    SYNTAX      INTEGER { localResourceLack(-1),
                          badDestination(-2),
                          destinationUnreachable(-3),
                          noResponse(-4),
                          badType(-5),
                          sampleOverrun(-6),

                          noError(0),

                          tooBig(1),
                          noSuchName(2),
                          badValue(3),
                          readOnly(4),
                          genErr(5),
                          noAccess(6),
                          wrongType(7),
                          wrongLength(8),
                          wrongEncoding(9),
                          wrongValue(10),
                          noCreation(11),
                          inconsistentValue(12),
                          resourceUnavailable(13),
                          commitFailed(14),
                          undoFailed(15),
                          authorizationError(16),
                          notWritable(17),
                          inconsistentName(18),

                          localResourceLack(101),
                          badDestination(102),
                          noAck(103)
                          inconsistentName(18) }
--
-- Resource Control Section
--

mteResourceSampleMinimum OBJECT-TYPE
    SYNTAX      Integer32 (-1 | 1..600)
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION

        "The minimum mteTriggerFrequency this system will accept.  A
        system may use the larger values of this minimum to lessen the
        impact of sampling.

        Unless explicitly resource limited, a system's value for
        this object should be 1.

        Changing this value will not invalidate an existing setting
        of mteTriggerFrequency."
    ::= { mteResource 1 }

mteResourceSampleInstanceMaximum OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "instances"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The maximum number of instance entries this system will
        support for sampling.

        These are the entries that maintain state, one for each
        instance of each sampled object as selected by
        mteTriggerValueID.  Note that wildcarded objects result
        in multiple instances of this state.

        A value of 0 indicates no preset limit, that is, the limit
        is dynamic based on system operation and resources.

        Unless explicitly resource limited, a system's value for
        this object should be 0.

        Changing this value will not eliminate or inhibit existing sample
        state but could prevent allocation of additional state
        information."
    ::= { mteResource 2 }

mteResourceSampleInstances OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "instances"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of currently active instance entries as
        defined for mteResourceSampleInstanceMaximum."
    ::= { mteResource 3 }

mteResourceSampleInstancesHigh OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "instances"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The highest value of mteResourceSampleInstances that has
        occurred since initialization of the management system."
    ::= { mteResource 4 }

mteResourceSampleInstanceLacks OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "instances"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times this system could not take a new sample
        because that allocation would have exceeded the limit set by
        mteResourceSampleInstanceMaximum."
    ::= { mteResource 5 }

--
-- Trigger Section
--

-- Counters

mteTriggerFailures OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times an attempt to check for a trigger
        condition has failed.  This counts individually for each
        attempt in a group of targets or each attempt for a
        wildcarded object."
    ::= { mteTrigger 1 }

--
-- Trigger Table
--

mteTriggerTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MteTriggerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of management event trigger information."
    ::= { mteTrigger 2 }

mteTriggerEntry OBJECT-TYPE
    SYNTAX      MteTriggerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about a single trigger.  Applications create and
        delete entries using mteTriggerStatus." mteTriggerEntryStatus."
    INDEX       { mteOwner, IMPLIED mteTriggerName }
    ::= { mteTriggerteble mteTriggerTable 1 }

MteTriggerEntry ::= SEQUENCE {
    mteOwner                            SnmpAdminString,
    mteTriggerName                      SnmpAdminString,
    mteTriggerComment                   DisplayString,                   SnmpAdminString,
    mteTriggerTest                      BITS,
    mteTriggerSampleType                INTEGER,
    mteTriggerValueID                   Integer32,                   OBJECT IDENTIFIER,
    mteTriggerValueIDWildcard           TruthValue,
    mteTriggerTargetTag                 SnmpTagValue,
    mteTriggerContextName               SnmpAdminString,
    mteTriggerContextNameWildcard       TruthValue,
    mteTriggerFrequency                 Integer32,
    mteTriggerBooleanStartup            INTEGER,
    mteTriggerThresholdStartup          INTEGER,
    mteTriggerRisingThreshold           Integer32,
    mteTriggerFallingThreshold          Integer32,
    mteTriggerEvent                     SnmpAdminString,
    mteTriggerRisingEvent               SnmpAdminString,
    mteTriggerFallingEvent                 Unsigned32,
    mteTriggerObjectsOwner              SnmpAdminString,
    mteTriggerObjects                   SnmpAdminString,
    mteTriggerStatus
    mteTriggerEnabled                   TruthValue,
    mteTriggerEntryStatus               RowStatus
}

mteTriggerName

mteOwner OBJECT-TYPE
   SYNTAX      SnmpAdminString (SIZE (1..64)) (SIZE(0..32))
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
        "A locally-unique, administratively assigned name for
        "The owner of this entry. The exact semantics of this
        string are subject to the
        trigger."
    ::= security policy defined by the
        security administrator."
    ::= { mteTriggerEntry 1 }

mteTriggerName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (1..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A locally-unique, administratively assigned name for the
        trigger within the scope of mteOwner."
    ::= { mteTriggerEntry 2 }

mteTriggerComment OBJECT-TYPE
    SYNTAX      DisplayString      SnmpAdminString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A description of the trigger's function and use."
    DEFVAL { ''H }
    ::= { mteTriggerEntry 2 3 }

mteTriggerTest OBJECT-TYPE
    SYNTAX      INTEGER      BITS { existence(0), boolean(1), threshold(2) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The type of trigger test to perform.  For all 'boolean' and
        'threshold'  tests,
        mteTriggerValue the object at mteTriggerValueID must
        evaluate to an integer, that is, anything that ends up encoded
        for transmission as an integer.

        For 'existence', the specific test is as selected by
        mteTriggerExistenceTest.  When an object appears or vanishes
        the trigger fires.  The trigger will not fire again until the
        object has changed states.

        For 'boolean', a value of 0 the specific test is false. A non-zero value as selected by
        mteTriggerBooleanTest.  If the test result is true
        and fires the trigger. trigger
        fires.  The trigger will not fire again until the value has
        become false and come back to true.

        For 'threshold' it the test works as described below for
        mteTriggerThresholdStartup, mteTriggerRisingThreshold, mteTriggerThresholdRising, and
        mteTriggerFallingThreshold."
        mteTriggerThresholdFalling.

        Note that combining 'boolean' and 'threshold' tests on the
        same object may be somewhat redundant."
    DEFVAL { boolean }
    ::= { mteTriggerEntry 3 4 }

mteTriggerSampleType OBJECT-TYPE
    SYNTAX      INTEGER { absoluteValue(1), deltaValue(2) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The type of sampling to perform.

        An 'absoluteValue' sample requires only a single sample to be
        meaningful, and is exactly the value of the object at
        mteTriggerValueID at the sample time.

        A 'deltaValue' requires two samples to be meaningful and is
        thus not available for testing until the second and subsequent
        samples after the object at mteTriggerValueID is first found
        to exist.  It is the difference between the two samples.  For
        unsigned values it is always positive, based on unsigned
        arithmetic.  For signed values it can be positive or negative.

        For SNMP counters to be meaningful they must be sampled as a
        'deltaValue'.

        For 'deltaValue' mteTriggerDeltaTable contains further
        parameters.

        If only 'existence' is set in mteTriggerTest this object has
        no meaning."
    DEFVAL { absoluteValue }
    ::= { mteTriggerEntry 5 }

mteTriggerValueID OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The object identifier of the MIB object to check sample to see
        if the trigger should fire.

        This may be wildcarded by truncating all or part of the
        instance portion, in which case the condition value is obtained
        as if with a GetNext function, checking multiple values
        if they exist.  If such wildcarding is applied,
        mteTriggerIDWildcard
        mteTriggerValueIDWildcard must be 'true' and if not it must
        be 'false'."
    DEFVAL { 0 0 }
    ::= { mteTriggerEntry 4 }

mteTriggerValueIDWildcard OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Control for whether mteTriggerValueID is to be treated as
        fully-specified 'false'.

        Bad object identifiers or wildcarded, with a mismatch between truncating the
        identifier and the value of mteTriggerValueIDWildcard result
        in operation as one would expect when providing the wrong
        identifier to a Get or GetNext operation.  The Get will fail
        or get the wrong object.  The GetNext will indeed get whatever
        is next, proceeding until it runs past the initial part of the
        identifier and perhaps many unintended objects for confusing
        results.  If the value syntax of those objects is not usable,
        that results in a 'badType' error that terminates the scan.

        Each instance that fills the wildcard is independent of any
        additional instances, that is, wildcarded objects operate
        as if there were a separate table entry for each instance
        that fills the wildcard without having to actually predict
        all possible instances ahead of time."
    DEFVAL { zeroDotZero }
    ::= { mteTriggerEntry 6 }

mteTriggerValueIDWildcard OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Control for whether mteTriggerValueID is to be treated as
        fully-specified or wildcarded, with 'true' indicating wildcard. wildcard."
    DEFVAL { false }
    ::= { mteTriggerEntry 5 7 }

mteTriggerTargetTag OBJECT-TYPE
    SYNTAX      SnmpTagValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The tag for the target(s) from which to obtain the condition
        for a trigger check.

        Systems limited to self management may not accept a non-zero
        length for the value of this object.

        A length of 0 indicates the local system.  In this case,
        access to the objects indicated by mteTriggerValueID is under
        the security credentials of the requester that set
        mteTriggerStatus
        mteTriggerEntryStatus to 'active'.  Those credentials are the
        input parameters for isAccessAllowed from the Architecture for
        Describing SNMP Management Frameworks.

        Otherwise access rights are checked according to 'active'." the security
        parameters resulting from the tag."
    DEFVAL { ''H }
    ::= { mteTriggerEntry 6 8 }

mteTriggerContextName OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The management context from which to obtain mteTriggerValueID.

        This may be wildcarded by leaving characters off the end.  For
        example use 'Repeater' to wildcard to 'Repeater1',
        'Repeater2', 'Repeater-999.87b', and so on.  To indicate such
        wildcarding is intended, mteTriggerContextNameWildcard must
        be 'true'." 'true'.

        Each instance that fills the wildcard is independent of any
        additional instances, that is, wildcarded objects operate
        as if there were a separate table entry for each instance
        that fills the wildcard without having to actually predict
        all possible instances ahead of time.

        Operation of this feature assumes that the local system has a
        list of available contexts against which to apply the
        wildcard.  If the objects are being read from the local
        system, this is clearly the system's own list of contexts.
        For a remote system a local version of such a list is not
        defined by any current standard and may not be available, so
        this function may not be supported."
    DEFVAL { ''H }
    ::= { mteTriggerEntry 7 9 }

mteTriggerContextNameWildcard OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Control for whether mteTriggerContextName is to be treated as
        fully-specified or wildcarded, with 'true' indicating wildcard. wildcard."
    DEFVAL { false }
    ::= { mteTriggerEntry 8 10 }

mteTriggerFrequency OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of seconds to wait between trigger condition
        checks. samples.  To
        encourage consistency in sampling, the interval is measured
        from the beginning of one check to the beginning of the next
        and the timer is restarted immediately when it expires, not
        when the check completes.

        If the next check sample begins before the previous one completed the
        system may either attempt to make the check or treat this as an
        error condition. as an
        error condition with the error 'sampleOverrun'.

        A frequency of 0 indicates instantaneous recognition of the
        condition.  This is not possible in many cases, but may
        be supported in cases where it makes sense and the system is
        able to do so.  This feature allows the MIB to be used in
        implementations where such interrupt-driven behavior is
        possible and is not likely to be supported for all MIB objects
        even then since such sampling generally has to be tightly
        integrated into low-level code.

        Systems that can support this should document those cases
        where it can be used.  In cases where it can not, setting this
        object to 0 simply returns a bad value error."
    DEFVAL { 600 }
    ::= { mteTriggerEntry 11 }

mteTriggerObjectsOwner OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "To go with mteTriggerObjects, the mteOwner of a group of
        objects from mteObjectsTable."
    DEFVAL { ''H }
    ::= { mteTriggerEntry 12 }

mteTriggerObjects OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The mteObjectsName of a group of objects from
        mteObjectsTable.  These objects are to be added to any
        Notification resulting from the firing of this trigger.

        A list of objects may also be added based on the event or on
        the value of mteTriggerTest.

        A length of 0 indicates no additional objects."
    DEFVAL { ''H }
    ::= { mteTriggerEntry 13 }

mteTriggerEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A control to allow a trigger to be configured but not used.
        When the value is 'false' the trigger is not sampled."
    DEFVAL { false }
    ::= { mteTriggerEntry 14 }

mteTriggerEntryStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The control that allows creation and deletion of entries.
        Once made active an entry may not be modified except to
        delete it."
    ::= { mteTriggerEntry 15 }

--
-- Trigger Delta Table
--

mteTriggerDeltaTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MteTriggerDeltaEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of management event trigger information for delta
        sampling."
    ::= { mteTrigger 3 }

mteTriggerDeltaEntry OBJECT-TYPE
    SYNTAX      MteTriggerDeltaEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about a single trigger's delta sampling.  Entries
        automatically exist in this this table for each mteTriggerEntry
        that has mteTriggerSampleType set to 'deltaValue'."
    INDEX       { mteOwner, IMPLIED mteTriggerName }
    ::= { mteTriggerDeltaTable 1 }

MteTriggerDeltaEntry ::= SEQUENCE {
    mteTriggerDeltaDiscontinuityID              OBJECT IDENTIFIER,
    mteTriggerDeltaDiscontinuityIDWildcard      TruthValue,
    mteTriggerDeltaDiscontinuityIDType          INTEGER
}

sysUpTimeInstance OBJECT IDENTIFIER ::= { sysUpTime 0 }

mteTriggerDeltaDiscontinuityID OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The OBJECT IDENTIFIER (OID) of a TimeTicks or TimeStamp object
        that indicates a discontinuity in the value at
        mteTriggerValueID.

        The OID may be for a leaf object (e.g. sysUpTime.0) or may
        be wildcarded to match mteTriggerValueID.

        This object supports normal checking for a discontinuity in a
        counter.  Note that if this object does not point to sysUpTime
        discontinuity checking must still check sysUpTime for an overall
        discontinuity.

        If the object identified is not accessible the sample attempt
        is in error, with the error code as from an SNMP request.

        Bad object identifiers or a mismatch between truncating the
        identifier and the value of mteDeltaDiscontinuityIDWildcard
        result in operation as one would expect when providing the
        wrong identifier to a Get operation.  The Get will fail or get
        the wrong object.  If the value syntax of those objects is not
        usable, that results in an error that terminates the sample
        with a 'badType' error code."
    DEFVAL { sysUpTimeInstance }
    ::= { mteTriggerDeltaEntry 1 }

mteTriggerDeltaDiscontinuityIDWildcard OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "Control for whether mteTriggerDeltaDiscontinuityID is to be
        treated as fully-specified or wildcarded, with 'true'
        indicating wildcard."
    DEFVAL { false }
    ::= { mteTriggerDeltaEntry 2 }

mteTriggerDeltaDiscontinuityIDType OBJECT-TYPE
    SYNTAX      INTEGER { timeTicks(1), timeStamp(2), dateAndTime(3) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value 'timeTicks' indicates the
        mteTriggerDeltaDiscontinuityID of this row is of syntax
        TimeTicks.  The value 'timeStamp' indicates syntax TimeStamp.

        The value 'dateAndTime' indicates syntax DateAndTime."
    DEFVAL { timeTicks }
    ::= { mteTriggerDeltaEntry 3 }

--
-- Trigger Existence Table
--

mteTriggerExistenceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MteTriggerExistenceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of management event trigger information for existence
        triggers."
    ::= { mteTrigger 4 }

mteTriggerExistenceEntry OBJECT-TYPE
    SYNTAX      MteTriggerExistenceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about a single existence trigger.  Entries
        automatically exist in this this table for each mteTriggerEntry
        that has 'existence' set in mteTriggerTest."
    INDEX       { mteOwner, IMPLIED mteTriggerName }
    ::= { mteTriggerExistenceTable 1 }

MteTriggerExistenceEntry ::= SEQUENCE {
    mteTriggerExistenceTest             INTEGER,
    mteTriggerExistenceStartup          TruthValue,
    mteTriggerExistenceObjectsOwner     SnmpAdminString,
    mteTriggerExistenceObjects          SnmpAdminString,
    mteTriggerExistenceEventOwner       SnmpAdminString,
    mteTriggerExistenceEvent            SnmpAdminString
}

mteTriggerExistenceTest OBJECT-TYPE
    SYNTAX      BITS { present(0), absent(1), changed(2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The type of existence test to perform.  The trigger fires
        when the object at mteTriggerValueID is seen to go from
        present to absent, from absent to present, or to have it's
        value changed, depending on which tests are selected.

        Once the trigger has fired for either presence or absence it
        will not fire again for that state until the object has been
        to the other state."
    DEFVAL { { present, absent } }
    ::= { mteTriggerExistenceEntry 1 }

mteTriggerExistenceStartup OBJECT-TYPE
    SYNTAX      BITS { present(0), absent(1), changed(2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Control for whether an event may be triggered when this entry
        is first set to 'active' and the test specified by
        mteTriggerExistenceTest is true.  Setting an option causes
        that trigger to fire when its test is true."
    DEFVAL { { present, absent } }
    ::= { mteTriggerExistenceEntry 2 }

mteTriggerExistenceObjectsOwner OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "To go with mteTriggerExistenceObjects, the mteOwner of a
        group of objects from mteObjectsTable."
    DEFVAL { ''H }
    ::= { mteTriggerExistenceEntry 3 }

mteTriggerExistenceObjects OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The mteObjectsName of a group of objects from
        mteObjectsTable.  These objects are to be added to any
        Notification resulting from the firing of this trigger for
        this test.

        A list of objects may also be added based on the overall
        trigger, the event or other settings in mteTriggerTest.

        A length of 0 indicates no additional objects."
    DEFVAL { ''H }
    ::= { mteTriggerExistenceEntry 4 }

mteTriggerExistenceEventOwner OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "To go with mteTriggerExistenceEvent, the mteOwner of a group
        of objects from mteObjectsTable."
    DEFVAL { ''H }
    ::= { mteTriggerExistenceEntry 5 }

mteTriggerExistenceEvent OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The mteEventName of the event to invoke when mteTriggerType is
        'existence' and this trigger fires.  A length of 0 indicates no
        event."
    DEFVAL { ''H }
    ::= { mteTriggerExistenceEntry 6 }

--
-- Trigger Boolean Table
--

mteTriggerBooleanTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MteTriggerBooleanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of management event trigger information for boolean
        triggers."
    ::= { mteTrigger 5 }

mteTriggerBooleanEntry OBJECT-TYPE
    SYNTAX      MteTriggerBooleanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about a single boolean trigger.  Entries
        automatically exist in this this table for each mteTriggerEntry
        that has 'boolean' set in mteTriggerTest."
    INDEX       { mteOwner, IMPLIED mteTriggerName }
    ::= { mteTriggerBooleanTable 1 }

MteTriggerBooleanEntry ::= SEQUENCE {
    mteTriggerBooleanComparison         INTEGER,
    mteTriggerBooleanValue              Integer32,
    mteTriggerBooleanStartup            TruthValue,
    mteTriggerBooleanObjectsOwner       SnmpAdminString,
    mteTriggerBooleanObjects            SnmpAdminString,
    mteTriggerBooleanEventOwner         SnmpAdminString,
    mteTriggerBooleanEvent              SnmpAdminString
}

mteTriggerBooleanComparison OBJECT-TYPE
    SYNTAX      INTEGER { unequal(1), equal(2),
                          less(3), lessOrEqual(4),
                          greater(5), greaterOrEqual(6) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The type of boolean comparison to perform.

        The value at mteTriggerValueID is compared to
        mteTriggerBooleanValue, so for example if
        mteTriggerBooleanComparison is 'less' the result would be true
        if the value at mteTriggerValueID is less than the value of
        mteTriggerBooleanValue."
    DEFVAL { unequal }
    ::= { mteTriggerBooleanEntry 1 }

mteTriggerBooleanValue OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value to use for the test specified by
        mteTriggerBooleanTest."
    DEFVAL { 0 }
    ::= { mteTriggerBooleanEntry 2 }

mteTriggerBooleanStartup OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Control for whether an event may be triggered when this entry
        is first set to 'active' or a new instance of the object at
        mteTriggerValueID is found and the test specified by
        mteTriggerBooleanComparison is true.  In that case an event is
        triggered if mteTriggerBooleanStartup is 'true'."
    DEFVAL { true }
    ::= { mteTriggerBooleanEntry 3 }

mteTriggerBooleanObjectsOwner OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "To go with mteTriggerBooleanObjects, the mteOwner of a group
        of objects from mteObjectsTable."
    DEFVAL { ''H }
    ::= { mteTriggerBooleanEntry 4 }

mteTriggerBooleanObjects OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The mteObjectsName of a group of objects from
        mteObjectsTable.  These objects are to be added to any
        Notification resulting from the firing of this trigger for
        this test.

        A list of objects may also be added based on the overall
        trigger, the event or other settings in mteTriggerTest.

        A length of 0 indicates no additional objects."
    DEFVAL { ''H }
    ::= { mteTriggerBooleanEntry 5 }

mteTriggerBooleanEventOwner OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "To go with mteTriggerBooleanEvent, the mteOwner of an event
        entry from mteEventTable."
    DEFVAL { ''H }
    ::= { mteTriggerBooleanEntry 6 }

mteTriggerBooleanEvent OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The mteEventName of the event to invoke when mteTriggerType is
        'boolean' and this trigger fires.  A frequency length of 0 indicates instantaneous recognition of the
        condition.  This is not possible in many cases, but such may
        be supported in cases where it makes sense and the system is
        able to do so." no
        event."
    DEFVAL { 600 ''H }
    ::= { mteTriggerEntry 9 mteTriggerBooleanEntry 7 }

mteTriggerBooleanStartup

--
-- Trigger Threshold Table
--

mteTriggerThresholdTable OBJECT-TYPE
    SYNTAX      TruthValue      SEQUENCE OF MteTriggerThresholdEntry
    MAX-ACCESS  read-create  not-accessible
    STATUS      current
    DESCRIPTION
        "Control for whether an
        "A table of management event may be triggered when trigger information for threshold
        triggers."
    ::= { mteTrigger 6 }

mteTriggerThresholdEntry OBJECT-TYPE
    SYNTAX      MteTriggerThresholdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about a single threshold trigger.  Entries
        automatically exist in this entry
        is first table for each mteTriggerEntry
        that has 'threshold' set to 'active'.  If the in mteTriggerTest."
    INDEX       { mteOwner, IMPLIED mteTriggerName }
    ::= { mteTriggerThresholdTable 1 }

MteTriggerThresholdEntry ::= SEQUENCE {
    mteTriggerThresholdValue                    Integer32,
    mteTriggerThresholdStartup                  INTEGER,
    mteTriggerThresholdRising                   Integer32,
    mteTriggerThresholdFalling                  Integer32,
    mteTriggerThresholdObjectsOwner             SnmpAdminString,
    mteTriggerThresholdObjects                  SnmpAdminString,
    mteTriggerThresholdRisingEventOwner         SnmpAdminString,
    mteTriggerThresholdRisingEvent              SnmpAdminString,
    mteTriggerThresholdFallingEventOwner        SnmpAdminString,
    mteTriggerThresholdFallingEvent             SnmpAdminString
}

mteTriggerThresholdValue OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value mteTriggerBooleanStartup
        is 'true' and to use for the first sample after this entry becomes active
        is true then one mteTriggerEvent is triggered.

        If mteTriggerType is not 'boolean', this object is not
        instantiated." threshold test."
    DEFVAL { true 0 }
    ::= { mteTriggerEntry 10 mteTriggerThresholdEntry 1 }

mteTriggerThresholdStartup OBJECT-TYPE
    SYNTAX      INTEGER { rising(1), falling(2), risingOrFalling(3) }
    MAX-ACCESS  read-create  read-write
    STATUS      current
    DESCRIPTION
        "The event that may be triggered when this entry is first
        set to 'active'. 'active' and a new instance of the object at
        mteTriggerValueID is found.  If the first sample after this entry
        instance becomes active is greater than or equal to
        mteTriggerRisingThreshold
        mteTriggerThresholdRising and mteTriggerThresholdStartup is
        equal to 'rising' or 'risingOrFalling', then one
        mteTriggerRisingEvent
        mteTriggerThresholdRisingEvent is triggered. triggered for that instance.
        If the first sample after this entry becomes active is less than
        or equal to mteTriggerFallingThreshold mteTriggerThresholdFalling and
        mteTriggerThresholdStartup is equal to 'falling' or
        'risingOrFalling', then one mteTriggerRisingEvent is triggered.

        If mteTriggerType is not 'threshold', this object mteTriggerThresholdRisingEvent is not
        instantiated."
        triggered for that instance."
    DEFVAL { risingOrFalling }
    ::= { mteTriggerEntry 11 mteTriggerThresholdEntry 2 }

mteTriggerRisingThreshold

mteTriggerThresholdRising OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create  read-write
    STATUS      current
    DESCRIPTION
        "A threshold value to check against if mteTriggerType is
        'threshold'.

        When the current sampled value is greater than or equal to
        this threshold, and the value at the last sampling interval
        was less than this threshold, one mteTriggerRisingEvent
        mteTriggerThresholdRisingEvent is triggered.  That event is
        also triggered if the first sample afer this entry bcomes
        active is greater than or equal to this threshold and
        mteTriggerThresholdStartup is equal to 'rising' or
        'risingOrFalling'.

        After a rising event is generated, another such event is not
        triggered until the sampled value falls below this threshold and
        reaches mteTriggerFallingThreshold.

        If mteTriggerType is not 'threshold', this object is not
        instantiated." mteTriggerThresholdFalling."
    DEFVAL { 0 }
    ::= { mteTriggerEntry 12 mteTriggerThresholdEntry 3 }

mteTriggerFallingThreshold

mteTriggerThresholdFalling OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create  read-write
    STATUS      current
    DESCRIPTION
        "A threshold value to check against if mteTriggerType is
        'threshold'.

        When the current sampled value is less than or equal to this
        threshold, and the value at the last sampling interval was
        greater than this threshold, one mteTriggerFallingEvent
        mteTriggerThresholdFallingEvent is triggered.  That event is
        also triggered if the first sample afer this entry bcomes
        active is less than or equal to this threshold and
        mteTriggerThresholdStartup is equal to 'falling' or
        'risingOrFalling'.

        After a falling event is generated, another such event is not
        triggered until the sampled value rises above this threshold and
        reaches mteTriggerRisingThreshold.

        If mteTriggerType is not 'threshold', this object is not
        instantiated." mteTriggerThresholdRising."
    DEFVAL { 0 }
    ::= { mteTriggerThresholdEntry 4 }

mteTriggerThresholdObjectsOwner OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "To go with mteTriggerThresholdObjects, the mteOwner of a group
        of objects from mteObjectsTable."
    DEFVAL { 0 ''H }
    ::= { mteTriggerEntry 13 mteTriggerThresholdEntry 5 }

mteTriggerEvent

mteTriggerThresholdObjects OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..64)) (0..32))
    MAX-ACCESS  read-create  read-write
    STATUS      current
    DESCRIPTION
        "The event mteObjectsName of a group of objects from
        mteObjectsTable.  These objects are to invoke when mteTriggerType is 'boolean' and be added to any
        Notification resulting from the firing of this trigger fires. for
        this test.

        A list of objects may also be added based on the overall
        trigger, the event or other settings in mteTriggerTest.

        A length of 0 indicates no event.

        If mteTriggerType is not 'boolean', this object is not
        instantiated." additional objects."
    DEFVAL { ''H }
    ::= { mteTriggerEntry 14 mteTriggerThresholdEntry 6 }

mteTriggerRisingEvent

mteTriggerThresholdRisingEventOwner OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..64)) (0..32))
    MAX-ACCESS  read-create  read-write
    STATUS      current
    DESCRIPTION
        "The event to invoke when mteTriggerType is 'threshold' and
        this trigger fires based on mteTriggerRisingThreshold.  A
        value
        "To go with mteTriggerThresholdRisingEvent, the mteOwner of 0 indicates no event.

        If mteTriggerType is not 'threshold', this object is not
        instantiated." an
        event entry from mteEventTable."
    DEFVAL { ''H }
    ::= { mteTriggerEntry 15 mteTriggerThresholdEntry 7 }

mteTriggerFallingEvent

mteTriggerThresholdRisingEvent OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..64)) (0..32))
    MAX-ACCESS  read-create  read-write
    STATUS      current
    DESCRIPTION
        "The mteEventName of the event to invoke when mteTriggerType is
        'threshold' and this trigger fires based on mteTriggerFallingThreshold.
        mteTriggerThresholdRising.  A
        value length of 0 indicates no event.

        If mteTriggerType is not 'threshold', this object is not
        instantiated." event."
    DEFVAL { ''H }
    ::= { mteTriggerEntry 16 mteTriggerThresholdEntry 8 }

mteTriggerObjects

mteTriggerThresholdFallingEventOwner OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..64)) (0..32))
    MAX-ACCESS  read-create  read-write
    STATUS      current
    DESCRIPTION
        "The mteTriggerObjectNName of a group of objects from
        mteTriggerObjectTable.  These objects are to be added to any
        Notification resulting from
        "To go with mteTriggerThresholdFallingEvent, the firing mteOwner of this trigger.

        A length of 0 indicates no additional objects." an
        event entry from mteEventTable."
    DEFVAL { ''H }
    ::= { mteTriggerEntry 17 mteTriggerThresholdEntry 9 }

mteTriggerStatus

mteTriggerThresholdFallingEvent OBJECT-TYPE
    SYNTAX      RowStatus      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-create  read-write
    STATUS      current
    DESCRIPTION
        "The control that allows creation and deletion mteEventName of entries.
        Once made active an entry may not be modified except the event to
        delete it." invoke when mteTriggerType is
        'threshold' and this trigger fires based on
        mteTriggerThresholdFalling.  A length of 0 indicates no event."
    DEFVAL { createAndWait ''H }
    ::= { mteTriggerEntry 18 mteTriggerThresholdEntry 10 }

--
-- Trigger Object Objects Table
--

mteTriggerObjectTable

mteObjectsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF mteTriggerObjectEntry MteObjectsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of objects related to a trigger and to that can be added to
        Notifications resulting from that trigger." notifications based
        on the trigger, trigger test, or event, as pointed to by
        entries in those tables."
    ::= { mteTrigger 3 mteObjects 1 }

mteTriggerObjectEntry

mteObjectsEntry OBJECT-TYPE
    SYNTAX      mteTriggerObjectEntry      MteObjectsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
        "Objects for a single trigger.
    DESCRIPTION
        "A group of objects.  Applications create and delete entries
        using mteTriggerObjectStatus." mteObjectsEntryStatus."
    INDEX       { mteTriggerObjectName, mteTriggerObjectIndex mteOwner, mteObjectsName, mteObjecsIndex }
    ::= { mteTriggerObjectteble mteObjectsTable 1 }

mteTriggerObjectEntry

MteObjectsEntry ::= SEQUENCE {
    mteTriggerObjectName
    mteObjectsName                      SnmpAdminString,
    mteTriggerObjectIndex
    mteObjectsIndex                     Unsigned32,
    mteTriggerObjectID                  Integer32,
    mteTriggerObjectIDWildcard
    mteObjectsID                        OBJECT IDENTIFIER,
    mteObjectsIDWildcard                TruthValue,
    mteTriggerObjectStatus
    mteObjectsEntryStatus               RowStatus
    }

mteTriggerObjectName

mteObjectsName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (1..64)) (1..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A locally-unique, administratively assigned name for a group of
        objects to associate with a trigger."
        objects."
    ::= { mteTriggerObjectEntry mteObjectsEntry 1 }

mteTriggerObjectIndex

mteObjectsIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An arbitrary small integer for the purpose of identifying
        individual objects with within a mteObjectsName group.

        Objects within a group are placed in the notification in the
        numerical order of this index.

        Groups are placed in the notification in the order of the
        selections for overall trigger, trigger test, and event.
        Within trigger test they are in the same order as the
        numerical values of the bits defined for mteTriggerTest.

        Bad object identifiers or a mismatch between truncating the
        identifier and the value of mteDeltaDiscontinuityIDWildcard
        result in operation as one would expect when providing the
        wrong identifier to a mteTriggerObjectName group." Get operation.  The Get will fail or get
        the wrong object.  If the object is not available it is omitted
        from the notification."
    ::= { mteTriggerObjectEntry mteObjectsEntry 2 }

mteTriggerObjectID

mteObjectsID OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The object identifier of a MIB object to add to a
        Notification that results from the firing of a trigger.

        This may be wildcarded by truncating all or part of the
        instance portion, in which case the instance portion of the
        OID for obtaining this object will be the same as that used
        in obtaining the mteTriggerObjectValueID mteTriggerValueID that fired.  If such
        wildcarding is applied, mteTriggerObjectIDWildcard mteObjectsIDWildcard must be
        'true' and if not it must be 'false'." 'false'.

        Each instance that fills the wildcard is independent of any
        additional instances, that is, wildcarded objects operate
        as if there were a separate table entry for each instance
        that fills the wildcard without having to actually predict
        all possible instances ahead of time."
    DEFVAL { 0 0 zeroDotZero }
    ::= { mteTriggerObjectEntry mteObjectsEntry 3 }

mteTriggerObjectValueIDWildcard

mteObjectsIDWildcard OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Control for whether mteTriggerObjectValueID mteObjectsID is to be treated as
        fully-specified or wildcarded, with 'true' indicating wildcard. wildcard."
    DEFVAL { false }
    ::= { mteTriggerObjectEntry mteObjectsEntry 4 }

mteTriggerObjectStatus

mteObjectsEntryStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The control that allows creation and deletion of entries.
        Once made active an entry may not be modified except to
        delete it."
    DEFVAL { createAndWait }
    ::= { mteTriggerObjectEntry mteObjectsEntry 5 }

--
-- Event Section
--

-- Counters

mteEventFailures OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times an attempt to invoke an event
        has failed.  This counts individually for each
        attempt in a group of targets or each attempt for a
        wildcarded trigger object."
    ::= { mteEvent 1 }

--
-- Event Table
--

mteEventTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MteEventEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of management event action information."
    ::= { mteEvent 2 }

mteEventEntry OBJECT-TYPE
    SYNTAX      MteEventEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about a single event.  Applications create and
        delete entries using mteEventStatus." mteEventEntryStatus."
    INDEX       { mteOwner, IMPLIED mteEventName }
    ::= { mteEventTable 1 }

MteEventEntry ::= SEQUENCE {
    mteEventName                        SnmpAdminString,
    mteEventComment                     DisplayString,                     SnmpAdminString,
    mteEventActions                     BITS,
    mteEventNotification                OBJECT IDENTIFIER,
    mteEventObjects                     SnmpAdminString,
    mteEventSetObject                   OBJECT IDENTIFIER,
    mteEventSetObjectWildcard           TruthValue,
    mteEventSetValue                    Integer32,
    mteEventSetTargetTag                SnmpTagValue,
    mteEventSetContextName              SnmpAdminString,
    mteEventSetContextNameWildcard
    mteEventEnabled                     TruthValue,
    mteEventStatus
    mteEventEntryStatus                 RowStatus
    }

mteEventName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (1..64)) (1..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A locally-unique, administratively assigned name for the
        event."
    ::= { mteEventCreationEntry mteEventEntry 1 }

mteEventComment OBJECT-TYPE
    SYNTAX      DisplayString      SnmpAdminString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A description of the event's function and use."
    DEFVAL { ''H }
    ::= { mteEventEntry 2 }

mteEventActions OBJECT-TYPE
    SYNTAX      BITS { notification, set notification(0), set(1) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The actions to peform perform when this event occurs.

        For 'notification', Traps and/or Informs are sent according
        to the configuration in the SNMP Notification MIB.

        For 'set', an SNMP Set operation is performed according to
        control values in this entry."
    DEFVAL entry."
    DEFVAL { { 0 } }
    ::= { mteEventEntry 3 }

mteEventEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A control to allow an event to be configured but not used.
        When the value is 'false' the event does not execute even if
        triggered."
    DEFVAL { false }
    ::= { mteEventEntry 4 }

mteEventEntryStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The control that allows creation and deletion of entries.
        Once made active an entry may not be modified except to
        delete it."
    ::= { mteEventEntry 5 }

--
-- Event Notification Table
--

mteEventNotificationTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MteEventNotificationEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of management event action notification information."
    ::= { mteEvent 3 }

mteEventNotificationEntry OBJECT-TYPE
    SYNTAX      MteEventNotificationEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about a single event's notification.  Entries
        automatically exist in this this table for each mteTriggerEntry
        that has 'notification' set in mteEventAction."
    INDEX       { 0 mteOwner, IMPLIED mteTriggerName }
    ::= { mteEventEntry 3 mteEventNotificationTable 1 }

MteEventNotificationEntry ::= SEQUENCE {
    mteEventNotification                OBJECT IDENTIFIER,
    mteEventNotificationObjectsOwner    SnmpAdminString,
    mteEventNotificationObjects         SnmpAdminString
    }

mteEventNotification OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-create  read-write
    STATUS      current
    DESCRIPTION
        "The object identifier from the NOTIFICATION-TYPE for the
        notification to use if metEventActions has 'notification' set.

        If 'notification' is not set, this object is not instantiated." set."
    DEFVAL { 0 0 zeroDotZero }
    ::= { mteEventEntry 4 mteEventNotificationEntry 1 }

mteEventObjects

mteEventNotificationObjectsOwner OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..64)) (0..32))
    MAX-ACCESS  read-create  read-write
    STATUS      current
    DESCRIPTION
        "To go with mteEventNotificationObjects, the mteOwner of a
        group of objects from mteObjectsTable."
    DEFVAL { ''H }
    ::= { mteEventNotificationEntry 2 }

mteEventNotificationObjects OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The mteTriggerObjectName mteObjectsName of a group of objects from
        mteTriggerObjectTable
        mteObjectsTable if mteEventActions has 'notification' set.
        These objects are to be added to any Notification generated by
        this event.

        If 'notification' is not set, this object is not instantiated.

        Objects may also be added based on the trigger that stimulated
        the event.

        A length of 0 indicates no additional objects."
    DEFVAL { ''H }
    ::= { mteEventEntry 5 mteEventNotificationEntry 3 }

--
-- Event Set Table
--

mteEventSetTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MteEventSetEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of management event action information."
    ::= { mteEvent 4 }

mteEventSetEntry OBJECT-TYPE
    SYNTAX      MteEventSetEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about a single event's set option.  Entries
        automatically exist in this this table for each mteTriggerEntry
        that has 'set' set in mteEventAction."
    INDEX       { mteOwner, IMPLIED mteTriggerName }
    ::= { mteEventSetTable 1 }

MteEventSetEntry ::= SEQUENCE {
    mteEventSetObject                   OBJECT IDENTIFIER,
    mteEventSetObjectWildcard           TruthValue,
    mteEventSetValue                    Integer32,
    mteEventSetTargetTag                SnmpTagValue,
    mteEventSetContextName              SnmpAdminString,
    mteEventSetContextNameWildcard      TruthValue
    }

mteEventSetObject OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-create  read-write
    STATUS      current
    DESCRIPTION
        "The object identifier from the MIB object to set if
        mteEventActions has 'set' set.

        This object identifier may be wildcarded by leaving
        sub-identifiers off may be wildcarded by leaving
        sub-identifiers off the end, in which case
        nteEventSetObjectWildCard must be 'true'.

        If mteEventSetObject is wildcarded the instance used to set the
        object to which it points is the same as the instance from the
        value of mteTriggerValueID that triggered the event.

        Each instance that fills the wildcard is independent of any
        additional instances, that is, wildcarded objects operate
        as if there were a separate table entry for each instance
        that fills the wildcard without having to actually predict
        all possible instances ahead of time.

        Bad object identifiers or a mismatch between truncating the
        identifier and the end, value of mteSetObjectWildcard
        result in which case
        nteEventSetObjectWildCard must be 'true'.

        If mteEventSetObject is wildcarded operation as one would expect when providing the instance used
        wrong identifier to a Set operation.  The Set will fail or set it
        is the same as
        the instance for wrong object.  If the value syntax of mteTriggerValueID
        that triggered the event."

        If 'set' is not set, this destination
        object is not instantiated." correct, the Set fails with the normal SNMP
        error code."
    DEFVAL { 0 0 zeroDotZero }
    ::= { mteEventEntry 6 mteEventSetEntry 1 }

mteEventSetObjectWildcard OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create  read-write
    STATUS      current
    DESCRIPTION
        "Control over whether mteEventSetObject is to be treated as
        fully-specified or wildcarded, with 'true' indicating wildcard
        if mteEventActions has 'set' set.

        If 'set' is not set, this object is not instantiated." set."
    DEFVAL { false }
    ::= { mteEventEntry 7 mteEventSetEntry 2 }

mteEventSetValue OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create  read-write
    STATUS      current
    DESCRIPTION
        "The value to which to set the object at mteEventSetObject
        if mteEventActions has 'set' set.

        If 'set' is not set, this object is not instantiated." set."
    DEFVAL { 0 }
    ::= { mteEventEntry 8 mteEventSetEntry 3 }

mteEventSetTargetTag OBJECT-TYPE
    SYNTAX      SnmpTagValue
    MAX-ACCESS  read-create  read-write
    STATUS      current
    DESCRIPTION
        "The tag for the target(s) at which to set the object at
        mteEventSetObject to mteEventSetValue if mteEventActions
        has 'set' set.

        If 'set' is not set, this object is not instantiated."

        Systems limited to self management may not accept a non-zero
        length for the value of this object.

        A length of 0 indicates the local system.  In this case,
        access to the objects indicated by mteEventObjectID mteEventSetObject is under
        the security credentials of the requester that set
        mteEventStatus
        mteTriggerEntryStatus to 'active'.  Those credentials are the
        input parameters for isAccessAllowed from the Architecture for
        Describing SNMP Management Frameworks.

        Otherwise access rights are checked according to 'active'." the security
        parameters resulting from the tag."
    DEFVAL { ''H }
    ::= { mteEventEntry 9 mteEventSetEntry 4 }

mteEventSetContextName OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-create  read-write
    STATUS      current
    DESCRIPTION
        "The management context in which to set mteEventObjectID.
        if mteEventActions has 'set' set.

        If 'set' is not set, this object is not instantiated."

        This may be wildcarded by leaving characters off the end.  To
        indicate such wildcarding mteEventSetContextNameWildcard must
        be 'true'.

        If this context name is wildcarded the value used to complete
        the wildcarding of mteTriggerContextName will be appended."
    DEFVAL { ''H }
    ::= { mteEventEntry 10 mteEventSetEntry 5 }

mteEventSetContextNameWildcard OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create  read-write
    STATUS      current
    DESCRIPTION
        "Control for whether mteEventSetContextName is to be treated as
        fully-specified or wildcarded, with 'true' indicating wildcard
        if mteEventActions has 'set' set.

        If 'set' is not set, this object is not instantiated." set."
    DEFVAL { false }
    ::= { mteTriggerEntry 10 }

mteEventStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The control that allows creation and deletion of entries.
        Once made active an entry may not be modified except to
        delete it."
    DEFVAL { createAndWait }
    ::= { mteEventEntry 12 mteEventSetEntry 6 }

--
-- Notifications
--

eventMIBNotificationPrefix

dismanEventMIBNotificationPrefix OBJECT IDENTIFIER ::= { eventMIB dismanEventMIB 2 }
eventMIBNotifications
dismanEventMIBNotifications OBJECT IDENTIFIER ::=
    { eventMIBNotificationPrefix dismanEventMIBNotificationPrefix 0 }
eventMIBNotificationObjectss
dismanEventMIBNotificationObjects OBJECT IDENTIFIER
   ::= { eventMIBNotificationPrefix dismanEventMIBNotificationPrefix 1 }

--
-- Notification Objects
--

mteHotTrigger OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The name of the trigger causing the notification. notification."
    ::= { mteTrigger dismanEventMIBNotificationObjects 1 }

mteHotTargetName OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The SNMP Target MIB's snmpTargetAddrName related to the
        notification.
        notification."
    ::= { mteTrigger dismanEventMIBNotificationObjects 2 }

mteHotContextName OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The context name related to the notification.  This must be as
        fully-qualified as possible, including filling in wildcard
        informaation
        information determined in processing."
    ::= { mteTrigger dismanEventMIBNotificationObjects 3 }

mteHotOID OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The object identifier of the destination object related to the
        notification.  This must be as fully-qualified as possible,
        inluding filling in wildcard informaation determined in
        processing.

        For a trigger-related notification this is from
        mteTriggerValueID.

        For a set failure this is from mteEventSetObject."
    ::= { mteTrigger 3 dismanEventMIBNotificationObjects 4 }

mterHotValue

mteHotValue OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The value of the object at mteTriggerValueID when a
        trigger fired."
    ::= { mteTrigger dismanEventMIBNotificationObjects 5 }

mteFailedReason OBJECT-TYPE
    SYNTAX      FailureReason
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The reason for the failure of an attempt to check for a
        trigger condition or set an object in response to an event. event."
    ::= { mteTrigger dismanEventMIBNotificationObjects 6 }

--
-- Notifications
--

mteTriggerSenseAlarm

mteTriggerFired NOTIFICATION-TYPE
    OBJECTS { mteHotTrigger,
              mteHotTargetName,
              mteHotContextName,
              mteHotOID,
              mteHotValue }
    STATUS  current
    DESCRIPTION
        "Notification that the trigger indicated by the object
        instances has fired, for triggers with mteTriggerType
        'boolean'."
    ::= { eventMIBNotifications dismanEventMIBNotifications 1 }

mteTriggerRisingAlarm

mteTriggerRising NOTIFICATION-TYPE
    OBJECTS { mteHotTrigger,
              mteHotTargetName,
              mteHotContextName,
              mteHotOID,
              mteHotValue }
    STATUS  current
    DESCRIPTION
        "Notification that the rising threshold was met for triggers
        with mteTriggerType 'threshold'."
    ::= { eventMIBNotifications dismanEventMIBNotifications 2 }

mteTriggerFallingAlarm

mteTriggerFalling NOTIFICATION-TYPE
    OBJECTS { mteHotTrigger,
              mteHotTargetName,
              mteHotContextName,
              mteHotOID,
              mteHotValue }
    STATUS  current
    DESCRIPTION
        "Notification that the falling threshold was met for triggers
        with mteTriggerType 'threshold'."
    ::= { eventMIBNotifications dismanEventMIBNotifications 3 }

mteTriggerFailureAlarm

mteTriggerFailure NOTIFICATION-TYPE
    OBJECTS { mteHotTrigger,
              mteHotTargetName,
              mteHotContextName,
              mteHotOID,
              mteFailedReason }
    STATUS  current
    DESCRIPTION
        "Notification that an attempt to check a trigger has failed.

        The network manager must enable this notification only with
        a certain fear and trembling, as it can easily crowd out more
        important information.  It should be used only to help diagnose
        a problem that has appeared in the error counters and can not
        be found otherwise."
    ::= { eventMIBNotifications dismanEventMIBNotifications 4 }

mteEventSetFailureAlarm

mteEventSetFailure NOTIFICATION-TYPE
    OBJECTS { mteHotTrigger,
              mteHotTargetName,
              mteHotContextName,
              mteHotOID,
              mteFailedReason }
    STATUS  current
    DESCRIPTION
        "Notification that an attempt to do a set in response to an
        event has failed.

        The network manager must enable this notification only with
        a certain fear and trembling, as it can easily crowd out more
        important information.  It should be used only to help diagnose
        a problem that has appeared in the error counters and can not
        be found otherwise."
    ::= { eventMIBNotifications dismanEventMIBNotifications 5 }

--
-- Conformance
--

eventMIBConformance

dismanEventMIBConformance OBJECT IDENTIFIER ::= { eventMIB dismanEventMIB 3 }
eventMIBCompliances
dismanEventMIBCompliances OBJECT IDENTIFIER ::= { eventMIBConformance dismanEventMIBConformance 1 }
eventMIBGroups
dismanEventMIBGroups      OBJECT IDENTIFIER ::= { eventMIBConformance dismanEventMIBConformance 2 }

-- Compliance

eventMIBCompliance

dismanEventMIBCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Event MIB."
        MODULE  -- this module
                MANDATORY-GROUPS {
                        eventTriggerGroup,
                        eventEventGroup,
                        eventNotificationObjectGroup,
                        eventNotificationGroup
                        dismanEventResourceGroup,
                        dismanEventTriggerGroup,
                        dismanEventObjectsGroup,
                        dismanEventEventGroup,
                        dismanEventNotificationObjectGroup,
                        dismanEventNotificationGroup
                }

                OBJECT mteTriggerTargetTag
                MIN-ACCESS  read-only
                DESCRIPTION
                        "Write access is not required, thus limiting
                        monitoring to the local system or preconfigured
                        remote systems."" systems."

                OBJECT mteEventSetTargetTag
                MIN-ACCESS  read-only
                DESCRIPTION
                        "Write access is not required, thus limiting
                        setting to the local system or preconfigured
                        remote systems."" systems."

                OBJECT mteTriggerValueIDWildcard
                MIN-ACCESS  read-only
                DESCRIPTION
                        "Write access is not required, thus allowing
                        the system not to implement wildcarding."

                OBJECT mteTriggerContextNameWildcard
                MIN-ACCESS  read-only
                DESCRIPTION
                        "Write access is not required, thus allowing
                        the system not to implement wildcarding."

                OBJECT mteTriggerObjectValueIDWildcard mteObjectsIDWildcard
                MIN-ACCESS  read-only
                DESCRIPTION
                        "Write access is not required, thus allowing
                        the system not to implement wildcarding."

                OBJECT mteEventSetContextNameWildcard
                MIN-ACCESS  read-only
                DESCRIPTION
                        "Write access is not required, thus allowing
                        the system not to implement wildcarding."

        ::= { eventMIBCompliances dismanEventMIBCompliances 1 }

-- Units of Conformance

eventTriggerGroup

dismanEventResourceGroup OBJECT-GROUP
        OBJECTS {
                mteResourceSampleMinimum,
                mteResourceSampleInstanceMaximum,
                mteResourceSampleInstances,
                mteResourceSampleInstancesHigh,
                mteResourceSampleInstanceLacks
        }
        STATUS current
        DESCRIPTION
                "Event resource status and control objects."
        ::= { dismanEventMIBGroups 1 }

dismanEventTriggerGroup OBJECT-GROUP
        OBJECTS {
                mteTriggerFailures,

                mteTriggerComment,
                mteTriggerTest,
                mteTriggerSampleType,
                mteTriggerValueID,
                mteTriggerValueIDWildcard,
                mteTriggerTargetTag,
                mteTriggerContextName,
                mteTriggerContextNameWildcard,
                mteTriggerFrequency,
                mteTriggerObjectsOwner,
                mteTriggerObjects,
                mteTriggerEnabled,
                mteTriggerEntryStatus,

                mteTriggerDeltaDiscontinuityID,
                mteTriggerDeltaDiscontinuityIDWildcard,
                mteTriggerDeltaDiscontinuityIDType,

                mteTriggerExistenceTest,
                mteTriggerExistenceStartup,
                mteTriggerExistenceObjectsOwner,
                mteTriggerExistenceObjects,
                mteTriggerExistenceEventOwner,
                mteTriggerExistenceEvent,

                mteTriggerBooleanComparison,
                mteTriggerBooleanValue,
                mteTriggerBooleanStartup,
                mteTriggerBooleanObjectsOwner,
                mteTriggerBooleanObjects,
                mteTriggerBooleanEventOwner,
                mteTriggerBooleanEvent,

                mteTriggerThresholdValue,
                mteTriggerThresholdStartup,
                mteTriggerRisingThreshold,
                mteTriggerFallingThreshold,
                mteTriggerEvent,
                mteTriggerRisingEvent,
                mteTriggerFallingEvent,
                mteTriggerObjects,
                mteTriggerStatus,

                mteTriggerObjectID,
                mteTriggerObjectIDWildcard,
                mteTriggerObjectStatus
                mteTriggerThresholdObjectsOwner,
                mteTriggerThresholdObjects,
                mteTriggerThresholdRising,
                mteTriggerThresholdFalling,
                mteTriggerThresholdRisingEventOwner,
                mteTriggerThresholdRisingEvent,
                mteTriggerThresholdFallingEventOwner,
                mteTriggerThresholdFallingEvent
        }
        STATUS current
        DESCRIPTION
                "Event triggers and supplemental triggers."
        ::= { dismanEventMIBGroups 2 }

dismanEventObjectsGroup OBJECT-GROUP
        OBJECTS {
                mteObjectsID,
                mteObjectsIDWildcard,
                mteObjectsEntryStatus
        }
        STATUS current
        DESCRIPTION
                "Supplemental objects."
        ::= { eventMIBGroups 1 dismanEventMIBGroups 3 }

eventEventGroup

dismanEventEventGroup OBJECT-GROUP
        OBJECTS {
                mteEventFailures,

                mteEventComment,
                mteEventActions,
                mteEventEnabled,
                mteEventEntryStatus,

                mteEventNotification,
                mteEventObjects,
                mteEventNotificationObjectsOwner,
                mteEventNotificationObjects,

                mteEventSetObject,
                mteEventSetObjectWildcard,
                mteEventSetValue,
                mteEventSetTargetTag,
                mteEventSetContextName,
                mteEventSetContextNameWildcard,
                mteEventStatus
                mteEventSetContextNameWildcard
        }
        STATUS current
        DESCRIPTION
                "Events."
        ::= { eventMIBGroups 2 dismanEventMIBGroups 4 }

eventNotificationObjectGroup

dismanEventNotificationObjectGroup OBJECT-GROUP
        OBJECTS {
                mteHotTrigger,
                mteHotTargetName,
                mteHotContextName,
                mteHotOID,
                mterHotValue,
                mteHotValue,
                mteFailedReason
        }
        STATUS current
        DESCRIPTION
                "Notification objects."
        ::= { eventMIBGroups 3 dismanEventMIBGroups 5 }

eventNotificationGroup OBJECT-GROUP

dismanEventNotificationGroup NOTIFICATION-GROUP
        OBJECTS {
                mteTriggerSenseAlarm,
                mteTriggerRisingAlarm,
                mteTriggerFallingAlarm,
                mteTriggerFailureAlarm,
                mteEventSetFailureAlarm
                mteTriggerFired,
                mteTriggerRising,
                mteTriggerFalling,
                mteTriggerFailure,
                mteEventSetFailure
        }
        STATUS current
        DESCRIPTION
                "Notifications."
        ::= { eventMIBGroups 4 dismanEventMIBGroups 6 }

END

9.  Intellectual Property

The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to pertain
to the implementation or use of the technology described in this
document or the extent to which any license under such rights might or
might not be available; neither does it represent that it has made any
effort to identify any such rights.  Information on the IETF's
procedures with respect to rights in standards-track and standards-
related documentation can be found in BCP-11.  Copies of claims of
rights made available for publication and any assurances of licenses to
be made available, or the result of an attempt made to obtain a general
license or permission for the use of such proprietary rights by
implementors or users of this specification can be obtained from the
IETF Secretariat.

10.  Acknowledgements

This MIB contains considerable contributions from the RMON MIB, the
Distributed Management Design Team (Andy Bierman, Maria Greene, Bob
Stewart, and Steve Waldbusser), the Distributed Management Working
Group, and colleagues at Cisco.

11.  References

[1]  Harrington, D., Presuhn, R. and B. Wijnen, "An Architecture for
     Describing SNMP Management Frameworks", RFC 2271, Cabletron
     Systems, Inc., BMC Software, Inc., IBM T. J. Watson Research,
     January 1998.

[2]  Rose, M. and K. McCloghrie, "Structure and Identification of
     Management Information for TCP/IP-based Internets", RFC 1155,
     Performance Systems International, Hughes LAN Systems, May 1990.

[3]  Rose, M. and K. McCloghrie, "Concise MIB Definitions", RFC 1212,
     Performance Systems International, Hughes LAN Systems, March 1991.

[4]  M. Rose, "A Convention for Defining Traps for use with the SNMP",
     RFC 1215, Performance Systems International, March 1991.

[5]  Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Structure of
     Management Information for Version 2 of the Simple Network
     Management Protocol (SNMPv2)", RFC 1902, SNMP Research,Inc., Cisco
     Systems, Inc., Dover Beach Consulting, Inc., International Network
     Services, January 1996.

[6]  Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Textual
     Conventions for Version 2 of the Simple Network Management Protocol
     (SNMPv2)", RFC 1903, SNMP Research, Inc., Cisco Systems, Inc.,
     Dover Beach Consulting, Inc., International Network Services,
     January 1996.

[7]  Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Conformance
     Statements for Version 2 of the Simple Network Management Protocol
     (SNMPv2)", RFC 1904, SNMP Research, Inc., Cisco Systems, Inc.,
     Dover Beach Consulting, Inc., International Network Services,
     January 1996.

[8]  Case, J., Fedor, M., Schoffstall, M. and J. Davin, "Simple Network
     Management Protocol", RFC 1157, SNMP Research, Performance Systems
     International, Performance Systems International, MIT Laboratory
     for Computer Science, May 1990.

[9]  Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Introduction
     to Community-based SNMPv2", RFC 1901, SNMP Research, Inc., Cisco
     Systems, Inc., Dover Beach Consulting, Inc., International Network
     Services, January 1996.

[10] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Transport
     Mappings for Version 2 of the Simple Network Management Protocol
     (SNMPv2)", RFC 1906, SNMP Research, Inc., Cisco Systems, Inc.,
     Dover Beach Consulting, Inc., International Network Services,
     January 1996.

[11] Case, J., Harrington D., Presuhn R. and B. Wijnen, "Message
     Processing and Dispatching for the Simple Network Management
     Protocol (SNMP)", RFC 2272, SNMP Research, Inc., Cabletron Systems,
     Inc., BMC Software, Inc., IBM T. J. Watson Research, January 1998.

[12] Blumenthal, U. and B. Wijnen, "User-based Security Model (USM) for
     version 3 of the Simple Network Management Protocol (SNMPv3)", RFC
     2274, IBM T. J. Watson Research, January 1998.

[13] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Protocol
     Operations for Version 2 of the Simple Network Management Protocol
     (SNMPv2)", RFC 1905, SNMP Research, Inc., Cisco Systems, Inc.,
     Dover Beach Consulting, Inc., International Network Services,
     January 1996.

[14] Levi, D., Meyer, P. and B. Stewart, "SNMPv3 Applications", RFC
     2273, SNMP Research, Inc., Secure Computing Corporation, Cisco
     Systems, January 1998.

[15] Wijnen, B., Presuhn, R. and K. McCloghrie, "View-based Access
     Control Model (VACM) for the Simple Network Management Protocol
     (SNMP)", RFC 2275, IBM T. J. Watson Research, BMC Software, Inc.,
     Cisco Systems, Inc., January 1998.

[16] Waldbusser, S., "Remote Network Monitoring Management Information
     Base", RFC 1757, International Network Services, February 1995.

[17] Case, J., McCloghrie, K., Rose, M., Waldbusser, S., "Manager-to-
     Manager Management Information Base", RFC 1451, SNMP Research,
     Inc., Cisco SYSTEMS< Inc., Dover Beach Consulting, Inc.,
     International Network Services, April 1993.

[18] Stewart, B., "Expression MIB", RFC ????, Cisco Systems, Inc.,
     ?Month? 1998.

[19] Stewart, B., "Notification Log MIB", RFC ????, Cisco Systems, Inc.,
     ?Month? 1998.

12.  Security Considerations

Security issues are discussed in the Overview section and in the
DESCRIPTION clauses of relevant objects.

13.  Author's Address

     Bob Stewart
     Cisco Systems, Inc.
     170 West Tasman Drive
     San Jose, CA 95134-1706
     U.S.A.

     Phone: +1 408 526 4527
     Email: bstewart@cisco.com

14.  Full Copyright Statement

Copyright (C) The Internet Society (1998). (1999). All Rights Reserved.

This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it or
assist in its implementation may be prepared, copied, published and
distributed, in whole or in part, without restriction of any kind,
provided that the above copyright notice and this paragraph are included
on all such copies and derivative works.  However, this document itself
may not be modified in any way, such as by removing the copyright notice
or references to the Internet Society or other Internet organizations,
except as needed for the  purpose of developing Internet standards in
which case the procedures for copyrights defined in the Internet
Standards process must be followed, or as required to translate it into
languages other than English.

The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS
IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK
FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
FITNESS FOR A PARTICULAR PURPOSE.

Table of Contents

1 Abstract ........................................................    2
2 The SNMP Management Framework ...................................    2
3 Overview ........................................................    4
4 Relationship to Other MIBs ......................................    4
5 MIB Sections ....................................................    4
6 Operation .......................................................    5
7 Security ........................................................    5    6
8 Definitions .....................................................    7
9 Intellectual Property ...........................................   30   47
10 Acknowledgements ...............................................   31   48
11 References .....................................................   32   49
12 Security Considerations ........................................   34   51
13 Author's Address ...............................................   34   51
14 Full Copyright Statement .......................................   35   52