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

    SNMP-TARGET-MIB DEFINITIONS ::= BEGIN
    
    IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        snmpModules,
        Counter32,
        Integer32
            FROM SNMPv2-SMI
    
        TEXTUAL-CONVENTION,
        TDomain,
        TAddress,
        TimeInterval,
        RowStatus,
        StorageType,
        TestAndIncr
            FROM SNMPv2-TC
    
        SnmpSecurityModel,
        SnmpMessageProcessingModel,
        SnmpSecurityLevel,
        SnmpAdminString
            FROM SNMP-FRAMEWORK-MIB
    
        MODULE-COMPLIANCE,
        OBJECT-GROUP
            FROM SNMPv2-CONF;
    
    snmpTargetMIB 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 SNMP messages.
 
             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 "Fixed DISPLAY-HINTS for UTF-8 strings, fixed hex
                     value of LF characters, clarified meaning of zero
                     length tag values, improved tag list examples.
                     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 12 }
    
    snmpTargetObjects       OBJECT IDENTIFIER ::= { snmpTargetMIB 1 }
    snmpTargetConformance   OBJECT IDENTIFIER ::= { snmpTargetMIB 3 }
    
    SnmpTagValue ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "255t"
        STATUS       current
        DESCRIPTION
            "An octet string containing a tag value.
             Tag values are preferably in human-readable form.
             To facilitate internationalization, this information
             is represented using the ISO/IEC IS 10646-1 character
             set, encoded as an octet string using the UTF-8
             character encoding scheme described in RFC 2279.
    
             Since additional code points are added by amendments
             to the 10646 standard from time to time,
             implementations must be prepared to encounter any code
             point from 0x00000000 to 0x7fffffff.
    
             The use of control codes should be avoided, and certain
             control codes are not allowed as described below.
    
             For code points not directly supported by user
             interface hardware or software, an alternative means
             of entry and display, such as hexadecimal, may be
             provided.
    
             For information encoded in 7-bit US-ASCII, the UTF-8
             representation is identical to the US-ASCII encoding.
    
             Note that when this TC is used for an object that
             is used or envisioned to be used as an index, then a
             SIZE restriction must be specified so that the number
             of sub-identifiers for any object instance does not
             exceed the limit of 128, as defined by [RFC1905].
    
             An object of this type contains a single tag value
             which is used to select a set of entries in a table.
    
             A tag value is an arbitrary string of octets, but
             may not contain a delimiter character.  Delimiter
             characters are defined to be one of the following:
    
                 -  An ASCII space character (0x20).
    
                 -  An ASCII TAB character (0x09).
    
                 -  An ASCII carriage return (CR) character (0x0D).
 
                 -  An ASCII line feed (LF) character (0x0A).
 
             Delimiter characters are used to separate tag values
             in a tag list.  An object of this type may only
             contain a single tag value, and so delimiter
             characters are not allowed in a value of this type.
 
             Note that a tag value of 0 length means that no tag is
             defined.  In other words, a tag value of 0 length would
             never match anything in a tag list, and would never
             select any table entries.
 
             Some examples of valid tag values are:
                 - 'acme'
    
                 - 'router'
    
                 - 'host'
    
             The use of a tag value to select table entries is
             application and MIB specific."
        SYNTAX       OCTET STRING (SIZE (0..255))
    
    SnmpTagList ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "255t"
        STATUS       current
        DESCRIPTION
            "An octet string containing a list of tag values.
             Tag values are preferably in human-readable form.
    
             To facilitate internationalization, this information
             is represented using the ISO/IEC IS 10646-1 character
             set, encoded as an octet string using the UTF-8
             character encoding scheme described in RFC 2279.
    
             Since additional code points are added by amendments
             to the 10646 standard from time to time,
             implementations must be prepared to encounter any code
             point from 0x00000000 to 0x7fffffff.
    
             The use of control codes should be avoided, except as
             described below.
    
             For code points not directly supported by user
             interface hardware or software, an alternative means
             of entry and display, such as hexadecimal, may be
             provided.
    
             For information encoded in 7-bit US-ASCII, the UTF-8
             representation is identical to the US-ASCII encoding.
    
             An object of this type contains a list of tag values
             which are used to select a set of entries in a table.
    
             A tag value is an arbitrary string of octets, but
             may not contain a delimiter character.  Delimiter
             characters are defined to be one of the following:
    
                 -  An ASCII space character (0x20).
    
                 -  An ASCII TAB character (0x09).
                 -  An ASCII carriage return (CR) character (0x0D).
 
                 -  An ASCII line feed (LF) character (0x0A).
 
             Delimiter characters are used to separate tag values
             in a tag list.  Only a single delimiter character may
             occur between two tag values.  A tag value may not
             have a zero length.  These constraints imply certain
             restrictions on the contents of this object:
    
                 - There cannot be a leading or trailing delimiter
                   character.
    
                 - There cannot be multiple adjacent delimiter
                   characters.
    
             Some examples of valid tag lists are:
 
                 - ''                        -- an empty list
 
                 - 'acme'                    -- list of one tag
 
                 - 'host router bridge'      -- list of several tags
 
             Note that although a tag value may not have a length of
             zero, an empty string is still valid.  This indicates
             an empty list (i.e. there are no tag values in the list).
    
             The use of the tag list to select table entries is
             application and MIB specific.  Typically, an application
             will provide one or more tag values, and any entry
             which contains some combination of these tag values
             will be selected."
        SYNTAX       OCTET STRING (SIZE (0..255))
    
    --
    --
    -- The snmpTargetObjects group
    --
    --
    
    snmpTargetSpinLock OBJECT-TYPE
        SYNTAX      TestAndIncr
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object is used to facilitate modification of table
             entries in the SNMP-TARGET-MIB module by multiple
             managers.  In particular, it is useful when modifying
             the value of the snmpTargetAddrTagList object.
    
             The procedure for modifying the snmpTargetAddrTagList
             object is as follows:
    
                 1.  Retrieve the value of snmpTargetSpinLock and
                     of snmpTargetAddrTagList.
    
                 2.  Generate a new value for snmpTargetAddrTagList.
    
                 3.  Set the value of snmpTargetSpinLock to the
                     retrieved value, and the value of
                     snmpTargetAddrTagList to the new value.  If
                     the set fails for the snmpTargetSpinLock
                     object, go back to step 1."
        ::= { snmpTargetObjects 1 }
    
    snmpTargetAddrTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SnmpTargetAddrEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table of transport addresses to be used in the generation
             of SNMP messages."
        ::= { snmpTargetObjects 2 }
    
    snmpTargetAddrEntry OBJECT-TYPE
        SYNTAX      SnmpTargetAddrEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A transport address to be used in the generation
             of SNMP operations.
    
             Entries in the snmpTargetAddrTable are created and
             deleted using the snmpTargetAddrRowStatus object."
        INDEX { IMPLIED snmpTargetAddrName }
        ::= { snmpTargetAddrTable 1 }
    
    SnmpTargetAddrEntry ::= SEQUENCE {
        snmpTargetAddrName         SnmpAdminString,
        snmpTargetAddrTDomain      TDomain,
        snmpTargetAddrTAddress     TAddress,
        snmpTargetAddrTimeout      TimeInterval,
        snmpTargetAddrRetryCount   Integer32,
        snmpTargetAddrTagList      SnmpTagList,
        snmpTargetAddrParams       SnmpAdminString,
        snmpTargetAddrStorageType  StorageType,
        snmpTargetAddrRowStatus    RowStatus
    }
    
    snmpTargetAddrName OBJECT-TYPE
        SYNTAX      SnmpAdminString (SIZE(1..32))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The locally arbitrary, but unique identifier associated
             with this snmpTargetAddrEntry."
        ::= { snmpTargetAddrEntry 1 }
    
    snmpTargetAddrTDomain OBJECT-TYPE
        SYNTAX      TDomain
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "This object indicates the transport type of the address
             contained in the snmpTargetAddrTAddress object."
        ::= { snmpTargetAddrEntry 2 }
    
    snmpTargetAddrTAddress OBJECT-TYPE
        SYNTAX      TAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "This object contains a transport address.  The format of
             this address depends on the value of the
             snmpTargetAddrTDomain object."
        ::= { snmpTargetAddrEntry 3 }
    
    snmpTargetAddrTimeout OBJECT-TYPE
        SYNTAX      TimeInterval
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "This object should reflect the expected maximum round
             trip time for communicating with the transport address
             defined by this row.  When a message is sent to this
             address, and a response (if one is expected) is not
             received within this time period, an implementation
             may assume that the response will not be delivered.
    
             Note that the time interval that an application waits
             for a response may actually be derived from the value
             of this object.  The method for deriving the actual time
             interval is implementation dependent.  One such method
             is to derive the expected round trip time based on a
             particular retransmission algorithm and on the number
             of timeouts which have occurred.  The type of message may
             also be considered when deriving expected round trip
             times for retransmissions.  For example, if a message is
             being sent with a securityLevel that indicates both
             authentication and privacy, the derived value may be
             increased to compensate for extra processing time spent
             during authentication and encryption processing."
        DEFVAL { 1500 }
        ::= { snmpTargetAddrEntry 4 }
    
    snmpTargetAddrRetryCount OBJECT-TYPE
        SYNTAX      Integer32 (0..255)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "This object specifies a default number of retries to be
             attempted when a response is not received for a generated
             message.  An application may provide its own retry count,
             in which case the value of this object is ignored."
        DEFVAL { 3 }
        ::= { snmpTargetAddrEntry 5 }
    
    snmpTargetAddrTagList OBJECT-TYPE
        SYNTAX      SnmpTagList
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "This object contains a list of tag values which are
             used to select target addresses for a particular
             operation."
        DEFVAL { "" }
        ::= { snmpTargetAddrEntry 6 }
    
    snmpTargetAddrParams OBJECT-TYPE
        SYNTAX      SnmpAdminString (SIZE(1..32))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The value of this object identifies an entry in the
             snmpTargetParamsTable.  The identified entry
             contains SNMP parameters to be used when generating
             messages to be sent to this transport address."
        ::= { snmpTargetAddrEntry 7 }
    
    snmpTargetAddrStorageType 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 }
        ::= { snmpTargetAddrEntry 8 }
    
    snmpTargetAddrRowStatus 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 snmpTargetAddrRowStatus
             column is 'notReady'.
    
             In particular, a newly created row cannot be made
             active until the corresponding instances of
             snmpTargetAddrTDomain, snmpTargetAddrTAddress, and
             snmpTargetAddrParams have all been set.
    
             The following objects may not be modified while the
             value of this object is active(1):
                 - snmpTargetAddrTDomain
                 - snmpTargetAddrTAddress
             An attempt to set these objects while the value of
             snmpTargetAddrRowStatus is active(1) will result in
             an inconsistentValue error."
        ::= { snmpTargetAddrEntry 9 }
    
    snmpTargetParamsTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SnmpTargetParamsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table of SNMP target information to be used
             in the generation of SNMP messages."
        ::= { snmpTargetObjects 3 }
    
    snmpTargetParamsEntry OBJECT-TYPE
        SYNTAX      SnmpTargetParamsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A set of SNMP target information.
    
             Entries in the snmpTargetParamsTable are created and
             deleted using the snmpTargetParamsRowStatus object."
        INDEX { IMPLIED snmpTargetParamsName }
        ::= { snmpTargetParamsTable 1 }
    
    SnmpTargetParamsEntry ::= SEQUENCE {
        snmpTargetParamsName           SnmpAdminString,
        snmpTargetParamsMPModel        SnmpMessageProcessingModel,
        snmpTargetParamsSecurityModel  SnmpSecurityModel,
        snmpTargetParamsSecurityName   SnmpAdminString,
        snmpTargetParamsSecurityLevel  SnmpSecurityLevel,
        snmpTargetParamsStorageType    StorageType,
        snmpTargetParamsRowStatus      RowStatus
    }
    
    snmpTargetParamsName OBJECT-TYPE
        SYNTAX      SnmpAdminString (SIZE(1..32))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The locally arbitrary, but unique identifier associated
             with this snmpTargetParamsEntry."
        ::= { snmpTargetParamsEntry 1 }
    
    snmpTargetParamsMPModel OBJECT-TYPE
        SYNTAX      SnmpMessageProcessingModel
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The Message Processing Model to be used when generating
             SNMP messages using this entry."
        ::= { snmpTargetParamsEntry 2 }
    
    snmpTargetParamsSecurityModel OBJECT-TYPE
        SYNTAX      SnmpSecurityModel (1..2147483647)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The Security Model to be used when generating SNMP
              messages using this entry.  An implementation may
              choose to return an inconsistentValue error if an
              attempt is made to set this variable to a value
              for a security model which the implementation does
              not support."
        ::= { snmpTargetParamsEntry 3 }
    
    snmpTargetParamsSecurityName OBJECT-TYPE
        SYNTAX      SnmpAdminString
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The securityName which identifies the Principal on
             whose behalf SNMP messages will be generated using
             this entry."
        ::= { snmpTargetParamsEntry 4 }
    
    snmpTargetParamsSecurityLevel OBJECT-TYPE
        SYNTAX      SnmpSecurityLevel
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The Level of Security to be used when generating
             SNMP messages using this entry."
        ::= { snmpTargetParamsEntry 5 }
    
    snmpTargetParamsStorageType 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 }
        ::= { snmpTargetParamsEntry 6 }
    
    snmpTargetParamsRowStatus 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 snmpTargetParamsRowStatus
             column is 'notReady'.
    
             In particular, a newly created row cannot be made
             active until the corresponding
             snmpTargetParamsMPModel,
             snmpTargetParamsSecurityModel,
             snmpTargetParamsSecurityName,
             and snmpTargetParamsSecurityLevel have all been set.
             The following objects may not be modified while the
             value of this object is active(1):
                 - snmpTargetParamsMPModel
                 - snmpTargetParamsSecurityModel
                 - snmpTargetParamsSecurityName
                 - snmpTargetParamsSecurityLevel
             An attempt to set these objects while the value of
             snmpTargetParamsRowStatus is active(1) will result in
             an inconsistentValue error."
        ::= { snmpTargetParamsEntry 7 }
    
    snmpUnavailableContexts OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of packets received by the SNMP
             engine which were dropped because the context
             contained in the message was unavailable."
        ::= { snmpTargetObjects 4 }
    
    snmpUnknownContexts OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of packets received by the SNMP
             engine which were dropped because the context
             contained in the message was unknown."
        ::= { snmpTargetObjects 5 }
    
    --
    --
    -- Conformance information
    --
    --
    
    snmpTargetCompliances OBJECT IDENTIFIER ::=
                                            { snmpTargetConformance 1 }
    snmpTargetGroups      OBJECT IDENTIFIER ::=
                                            { snmpTargetConformance 2 }
    
    --
    --
    -- Compliance statements
    --
    --
    snmpTargetCommandResponderCompliance MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION
            "The compliance statement for SNMP entities which include
             a command responder application."
        MODULE -- This Module
            MANDATORY-GROUPS { snmpTargetCommandResponderGroup }
        ::= { snmpTargetCompliances 1 }
    
    snmpTargetBasicGroup OBJECT-GROUP
        OBJECTS {
            snmpTargetSpinLock,
            snmpTargetAddrTDomain,
            snmpTargetAddrTAddress,
            snmpTargetAddrTagList,
            snmpTargetAddrParams,
            snmpTargetAddrStorageType,
            snmpTargetAddrRowStatus,
            snmpTargetParamsMPModel,
            snmpTargetParamsSecurityModel,
            snmpTargetParamsSecurityName,
            snmpTargetParamsSecurityLevel,
            snmpTargetParamsStorageType,
            snmpTargetParamsRowStatus
        }
        STATUS      current
        DESCRIPTION
            "A collection of objects providing basic remote
             configuration of management targets."
        ::= { snmpTargetGroups 1 }
    
    snmpTargetResponseGroup OBJECT-GROUP
        OBJECTS {
            snmpTargetAddrTimeout,
            snmpTargetAddrRetryCount
        }
        STATUS      current
        DESCRIPTION
            "A collection of objects providing remote configuration
             of management targets for applications which generate
             SNMP messages for which a response message would be
             expected."
        ::= { snmpTargetGroups 2 }
    
    snmpTargetCommandResponderGroup OBJECT-GROUP
        OBJECTS {
            snmpUnavailableContexts,
            snmpUnknownContexts
        }
        STATUS      current
        DESCRIPTION
            "A collection of objects required for command responder
             applications, used for counting error conditions."
        ::= { snmpTargetGroups 3 }
    
    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.
-- 

