-- =================================================================
-- Description: SNMP Applications MIB
-- Reference:   This mib was extracted from RFC 3413
-- =================================================================

    SNMP-NOTIFICATION-MIB DEFINITIONS ::= BEGIN
    
    IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        snmpModules
            FROM SNMPv2-SMI
    
        RowStatus,
        StorageType
            FROM SNMPv2-TC
    
        SnmpAdminString
            FROM SNMP-FRAMEWORK-MIB
    
        SnmpTagValue,
        snmpTargetParamsName
            FROM SNMP-TARGET-MIB
    
        MODULE-COMPLIANCE,
        OBJECT-GROUP
            FROM SNMPv2-CONF;
    
    snmpNotificationMIB MODULE-IDENTITY
        LAST-UPDATED "200210140000Z"
        ORGANIZATION "IETF SNMPv3 Working Group"
        CONTACT-INFO
            "WG-email:   snmpv3@lists.tislabs.com
             Subscribe:  majordomo@lists.tislabs.com
                         In message body:  subscribe snmpv3
        
             Co-Chair:   Russ Mundy
                         Network Associates Laboratories
             Postal:     15204 Omega Drive, Suite 300
                         Rockville, MD 20850-4601
                         USA
             EMail:      mundy@tislabs.com
             Phone:      +1 301-947-7107
        
             Co-Chair:   David Harrington
                         Enterasys Networks
             Postal:     35 Industrial Way
                         P. O. Box 5004
                         Rochester, New Hampshire 03866-5005
                         USA
             EMail:      dbh@enterasys.com
             Phone:      +1 603-337-2614
        
             Co-editor:  David B. Levi
                         Nortel Networks
             Postal:     3505 Kesterwood Drive
                         Knoxville, Tennessee 37918
             EMail:      dlevi@nortelnetworks.com
             Phone:      +1 865 686 0432
        
             Co-editor:  Paul Meyer
                         Secure Computing Corporation
             Postal:     2675 Long Lake Road
                         Roseville, Minnesota 55113
             EMail:      paul_meyer@securecomputing.com
             Phone:      +1 651 628 1592
        
             Co-editor:  Bob Stewart
                         Retired"




        DESCRIPTION
            "This MIB module defines MIB objects which provide
             mechanisms to remotely configure the parameters
             used by an SNMP entity for the generation of
             notifications.
       
             Copyright (C) The Internet Society (2002). This
             version of this MIB module is part of RFC 3413;
             see the RFC itself for full legal notices.
            "
        REVISION    "200210140000Z"             -- 14 October 2002
        DESCRIPTION "Clarifications, published as
                     RFC 3413."
        REVISION    "199808040000Z"             -- 4 August 1998
        DESCRIPTION "Clarifications, published as
                     RFC 2573."
        REVISION    "199707140000Z"             -- 14 July 1997
        DESCRIPTION "The initial revision, published as RFC2273."
        ::= { snmpModules 13 }
    
    snmpNotifyObjects       OBJECT IDENTIFIER ::=
                                              { snmpNotificationMIB 1 }
    snmpNotifyConformance   OBJECT IDENTIFIER ::=
                                              { snmpNotificationMIB 3 }
    
    --
    --
    -- The snmpNotifyObjects group
    --
    --
    
    snmpNotifyTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SnmpNotifyEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table is used to select management targets which should
             receive notifications, as well as the type of notification
             which should be sent to each selected management target."
        ::= { snmpNotifyObjects 1 }
    
    snmpNotifyEntry OBJECT-TYPE
        SYNTAX      SnmpNotifyEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry in this table selects a set of management targets
             which should receive notifications, as well as the type of
             notification which should be sent to each selected
             management target.
    
             Entries in the snmpNotifyTable are created and
             deleted using the snmpNotifyRowStatus object."
        INDEX { IMPLIED snmpNotifyName }
        ::= { snmpNotifyTable 1 }
    
    SnmpNotifyEntry ::= SEQUENCE {
        snmpNotifyName         SnmpAdminString,
        snmpNotifyTag          SnmpTagValue,
        snmpNotifyType         INTEGER,
        snmpNotifyStorageType  StorageType,
        snmpNotifyRowStatus    RowStatus
    }
    
    snmpNotifyName OBJECT-TYPE
        SYNTAX      SnmpAdminString (SIZE(1..32))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The locally arbitrary, but unique identifier associated
             with this snmpNotifyEntry."
        ::= { snmpNotifyEntry 1 }
    
    snmpNotifyTag OBJECT-TYPE
        SYNTAX      SnmpTagValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "This object contains a single tag value which is used
             to select entries in the snmpTargetAddrTable.  Any entry
             in the snmpTargetAddrTable which contains a tag value
             which is equal to the value of an instance of this
             object is selected.  If this object contains a value
             of zero length, no entries are selected."
        DEFVAL { "" }
        ::= { snmpNotifyEntry 2 }
    
    snmpNotifyType OBJECT-TYPE
        SYNTAX      INTEGER {
                        trap(1),
                        inform(2)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "This object determines the type of notification to
             be generated for entries in the snmpTargetAddrTable
             selected by the corresponding instance of
             snmpNotifyTag.  This value is only used when
             generating notifications, and is ignored when
             using the snmpTargetAddrTable for other purposes.
    
             If the value of this object is trap(1), then any
             messages generated for selected rows will contain
             Unconfirmed-Class PDUs.
    
             If the value of this object is inform(2), then any
             messages generated for selected rows will contain
             Confirmed-Class PDUs.
    
             Note that if an SNMP entity only supports
             generation of Unconfirmed-Class PDUs (and not
             Confirmed-Class PDUs), then this object may be
             read-only."
        DEFVAL { trap }
        ::= { snmpNotifyEntry 3 }
    snmpNotifyStorageType OBJECT-TYPE
        SYNTAX      StorageType
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The storage type for this conceptual row.
             Conceptual rows having the value 'permanent' need not
             allow write-access to any columnar objects in the row."
        DEFVAL { nonVolatile }
        ::= { snmpNotifyEntry 4 }
    
    snmpNotifyRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The status of this conceptual row.
    
             To create a row in this table, a manager must
             set this object to either createAndGo(4) or
             createAndWait(5)."
        ::= { snmpNotifyEntry 5 }
    
    snmpNotifyFilterProfileTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SnmpNotifyFilterProfileEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table is used to associate a notification filter
             profile with a particular set of target parameters."
        ::= { snmpNotifyObjects 2 }
    
    snmpNotifyFilterProfileEntry OBJECT-TYPE
        SYNTAX      SnmpNotifyFilterProfileEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry in this table indicates the name of the filter
             profile to be used when generating notifications using
             the corresponding entry in the snmpTargetParamsTable.
    
             Entries in the snmpNotifyFilterProfileTable are created
             and deleted using the snmpNotifyFilterProfileRowStatus
             object."
        INDEX { IMPLIED snmpTargetParamsName }
        ::= { snmpNotifyFilterProfileTable 1 }
    
    SnmpNotifyFilterProfileEntry ::= SEQUENCE {
        snmpNotifyFilterProfileName         SnmpAdminString,
        snmpNotifyFilterProfileStorType     StorageType,
        snmpNotifyFilterProfileRowStatus    RowStatus
    }
    
    snmpNotifyFilterProfileName OBJECT-TYPE
        SYNTAX      SnmpAdminString (SIZE(1..32))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The name of the filter profile to be used when generating
             notifications using the corresponding entry in the
             snmpTargetAddrTable."
        ::= { snmpNotifyFilterProfileEntry 1 }
    
    snmpNotifyFilterProfileStorType OBJECT-TYPE
        SYNTAX      StorageType
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The storage type for this conceptual row.
             Conceptual rows having the value 'permanent' need not
             allow write-access to any columnar objects in the row."
        DEFVAL { nonVolatile }
        ::= { snmpNotifyFilterProfileEntry 2 }
    
    snmpNotifyFilterProfileRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The status of this conceptual row.
    
             To create a row in this table, a manager must
             set this object to either createAndGo(4) or
             createAndWait(5).
    
             Until instances of all corresponding columns are
             appropriately configured, the value of the
             corresponding instance of the
             snmpNotifyFilterProfileRowStatus column is 'notReady'.
    
             In particular, a newly created row cannot be made
             active until the corresponding instance of
             snmpNotifyFilterProfileName has been set."
        ::= { snmpNotifyFilterProfileEntry 3 }
    
    snmpNotifyFilterTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SnmpNotifyFilterEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The table of filter profiles.  Filter profiles are used
             to determine whether particular management targets should
             receive particular notifications.
    
             When a notification is generated, it must be compared
             with the filters associated with each management target
             which is configured to receive notifications, in order to
             determine whether it may be sent to each such management
             target.
    
             A more complete discussion of notification filtering
             can be found in section 6. of [SNMP-APPL]."
        ::= { snmpNotifyObjects 3 }
    
    snmpNotifyFilterEntry OBJECT-TYPE
        SYNTAX      SnmpNotifyFilterEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An element of a filter profile.
    
             Entries in the snmpNotifyFilterTable are created and
             deleted using the snmpNotifyFilterRowStatus object."
        INDEX {         snmpNotifyFilterProfileName,
                IMPLIED snmpNotifyFilterSubtree }
        ::= { snmpNotifyFilterTable 1 }
    
    SnmpNotifyFilterEntry ::= SEQUENCE {
        snmpNotifyFilterSubtree           OBJECT IDENTIFIER,
        snmpNotifyFilterMask              OCTET STRING,
        snmpNotifyFilterType              INTEGER,
        snmpNotifyFilterStorageType       StorageType,
        snmpNotifyFilterRowStatus         RowStatus
    }
    
    snmpNotifyFilterSubtree OBJECT-TYPE
        SYNTAX      OBJECT IDENTIFIER
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The MIB subtree which, when combined with the corresponding
             instance of snmpNotifyFilterMask, defines a family of
             subtrees which are included in or excluded from the
             filter profile."
        ::= { snmpNotifyFilterEntry 1 }
    snmpNotifyFilterMask OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..16))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The bit mask which, in combination with the corresponding
             instance of snmpNotifyFilterSubtree, defines a family of
             subtrees which are included in or excluded from the
             filter profile.
    
             Each bit of this bit mask corresponds to a
             sub-identifier of snmpNotifyFilterSubtree, with the
             most significant bit of the i-th octet of this octet
             string value (extended if necessary, see below)
             corresponding to the (8*i - 7)-th sub-identifier, and
             the least significant bit of the i-th octet of this
             octet string corresponding to the (8*i)-th
             sub-identifier, where i is in the range 1 through 16.
    
             Each bit of this bit mask specifies whether or not
             the corresponding sub-identifiers must match when
             determining if an OBJECT IDENTIFIER matches this
             family of filter subtrees; a '1' indicates that an
             exact match must occur; a '0' indicates 'wild card',
             i.e., any sub-identifier value matches.
    
             Thus, the OBJECT IDENTIFIER X of an object instance
             is contained in a family of filter subtrees if, for
             each sub-identifier of the value of
             snmpNotifyFilterSubtree, either:
    
               the i-th bit of snmpNotifyFilterMask is 0, or
    
               the i-th sub-identifier of X is equal to the i-th
               sub-identifier of the value of
               snmpNotifyFilterSubtree.
    
             If the value of this bit mask is M bits long and
             there are more than M sub-identifiers in the
             corresponding instance of snmpNotifyFilterSubtree,
             then the bit mask is extended with 1's to be the
             required length.
             Note that when the value of this object is the
             zero-length string, this extension rule results in
             a mask of all-1's being used (i.e., no 'wild card'),
             and the family of filter subtrees is the one
             subtree uniquely identified by the corresponding
             instance of snmpNotifyFilterSubtree."
        DEFVAL { ''H }
        ::= { snmpNotifyFilterEntry 2 }
    
    snmpNotifyFilterType OBJECT-TYPE
        SYNTAX      INTEGER {
                        included(1),
                        excluded(2)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "This object indicates whether the family of filter subtrees
             defined by this entry are included in or excluded from a
             filter.  A more detailed discussion of the use of this
             object can be found in section 6. of [SNMP-APPL]."
        DEFVAL { included }
        ::= { snmpNotifyFilterEntry 3 }
    
    snmpNotifyFilterStorageType OBJECT-TYPE
        SYNTAX      StorageType
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The storage type for this conceptual row.
             Conceptual rows having the value 'permanent' need not
             allow write-access to any columnar objects in the row."
        DEFVAL { nonVolatile }
        ::= { snmpNotifyFilterEntry 4 }
    
    snmpNotifyFilterRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The status of this conceptual row.
    
             To create a row in this table, a manager must
             set this object to either createAndGo(4) or
             createAndWait(5)."
        ::= { snmpNotifyFilterEntry 5 }
    
    --
    --
    -- Conformance information
    --
    --
    snmpNotifyCompliances OBJECT IDENTIFIER ::=
                                            { snmpNotifyConformance 1 }
    snmpNotifyGroups      OBJECT IDENTIFIER ::=
                                            { snmpNotifyConformance 2 }
    
    --
    --
    -- Compliance statements
    --
    --
    
    snmpNotifyBasicCompliance MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION
            "The compliance statement for minimal SNMP entities which
             implement only SNMP Unconfirmed-Class notifications and
             read-create operations on only the snmpTargetAddrTable."
        MODULE SNMP-TARGET-MIB
            MANDATORY-GROUPS { snmpTargetBasicGroup }
    
            OBJECT snmpTargetParamsMPModel
            MIN-ACCESS    read-only
            DESCRIPTION
                "Create/delete/modify access is not required."
    
            OBJECT snmpTargetParamsSecurityModel
            MIN-ACCESS    read-only
            DESCRIPTION
                "Create/delete/modify access is not required."
    
            OBJECT snmpTargetParamsSecurityName
            MIN-ACCESS    read-only
            DESCRIPTION
                "Create/delete/modify access is not required."
    
            OBJECT snmpTargetParamsSecurityLevel
            MIN-ACCESS    read-only
            DESCRIPTION
                "Create/delete/modify access is not required."
    
            OBJECT snmpTargetParamsStorageType
            SYNTAX INTEGER {
                readOnly(5)
            }
            MIN-ACCESS    read-only
            DESCRIPTION
                "Create/delete/modify access is not required.
                 Support of the values other(1), volatile(2),
                 nonVolatile(3), and permanent(4) is not required."
    
            OBJECT snmpTargetParamsRowStatus
            SYNTAX INTEGER {
                active(1)
            }
            MIN-ACCESS    read-only
            DESCRIPTION
                "Create/delete/modify access to the
                 snmpTargetParamsTable is not required.
                 Support of the values notInService(2), notReady(3),
                 createAndGo(4), createAndWait(5), and destroy(6) is
                 not required."
    
        MODULE -- This Module
            MANDATORY-GROUPS { snmpNotifyGroup }
    
            OBJECT snmpNotifyTag
            MIN-ACCESS    read-only
            DESCRIPTION
                "Create/delete/modify access is not required."
    
            OBJECT snmpNotifyType
            SYNTAX INTEGER {
                trap(1)
            }
            MIN-ACCESS    read-only
            DESCRIPTION
                "Create/delete/modify access is not required.
                 Support of the value notify(2) is not required."
    
            OBJECT snmpNotifyStorageType
            SYNTAX INTEGER {
                readOnly(5)
            }
            MIN-ACCESS    read-only
            DESCRIPTION
                "Create/delete/modify access is not required.
                 Support of the values other(1), volatile(2),
                 nonVolatile(3), and permanent(4) is not required."
    
            OBJECT snmpNotifyRowStatus
            SYNTAX INTEGER {
                active(1)
            }
            MIN-ACCESS    read-only
            DESCRIPTION
                "Create/delete/modify access to the
                 snmpNotifyTable is not required.
                 Support of the values notInService(2), notReady(3),
                 createAndGo(4), createAndWait(5), and destroy(6) is
                 not required."
    
        ::= { snmpNotifyCompliances 1 }
    
    snmpNotifyBasicFiltersCompliance MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION
            "The compliance statement for SNMP entities which implement
             SNMP Unconfirmed-Class notifications with filtering, and
             read-create operations on all related tables."
        MODULE SNMP-TARGET-MIB
            MANDATORY-GROUPS { snmpTargetBasicGroup }
        MODULE -- This Module
            MANDATORY-GROUPS { snmpNotifyGroup,
                               snmpNotifyFilterGroup }
        ::= { snmpNotifyCompliances 2 }
    
    snmpNotifyFullCompliance MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION
            "The compliance statement for SNMP entities which either
             implement only SNMP Confirmed-Class notifications, or both
             SNMP Unconfirmed-Class and Confirmed-Class notifications,
             plus filtering and read-create operations on all related
             tables."
        MODULE SNMP-TARGET-MIB
            MANDATORY-GROUPS { snmpTargetBasicGroup,
                               snmpTargetResponseGroup }
        MODULE -- This Module
            MANDATORY-GROUPS { snmpNotifyGroup,
                               snmpNotifyFilterGroup }
        ::= { snmpNotifyCompliances 3 }
    
    snmpNotifyGroup OBJECT-GROUP
        OBJECTS {
            snmpNotifyTag,
            snmpNotifyType,
            snmpNotifyStorageType,
            snmpNotifyRowStatus
        }
        STATUS      current
        DESCRIPTION
            "A collection of objects for selecting which management
             targets are used for generating notifications, and the
             type of notification to be generated for each selected
             management target."
        ::= { snmpNotifyGroups 1 }
    
    snmpNotifyFilterGroup OBJECT-GROUP
        OBJECTS {
            snmpNotifyFilterProfileName,
            snmpNotifyFilterProfileStorType,
            snmpNotifyFilterProfileRowStatus,
            snmpNotifyFilterMask,
            snmpNotifyFilterType,
            snmpNotifyFilterStorageType,
            snmpNotifyFilterRowStatus
        }
        STATUS      current
        DESCRIPTION
            "A collection of objects providing remote configuration
             of notification filters."
        ::= { snmpNotifyGroups 2 }
    
    END

-- 
--    Copyright (C) The Internet Society (2002).  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.
-- 

