-- Network Working Group                                            D. Levi
-- Request for Comments: 3413                               Nortel Networks
-- STD: 62                                                         P. Meyer
-- Obsoletes: 2573                             Secure Computing Corporation
-- Category: Standards Track                                     B. Stewart
--                                                                  Retired
--                                                            December 2002
--          Simple Network Management Protocol (SNMP) Applications

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"	-- Oct 14, 2002 12:00:00 AM
	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"	-- Oct 14, 2002 12:00:00 AM
	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"	-- Aug 4, 1998 12:00:00 AM
	DESCRIPTION
		"Clarifications, published as
		RFC 2573."
	REVISION "199707140000Z"	-- Jul 14, 1997 12:00:00 AM
	DESCRIPTION
		"The initial revision, published as RFC2273."
	-- 1.3.6.1.6.3.12
	::= { snmpModules 12 }


snmpTargetObjects OBJECT IDENTIFIER 
	-- 1.3.6.1.6.3.12.1
	::= { snmpTargetMIB 1 }

snmpTargetConformance OBJECT IDENTIFIER 
	-- 1.3.6.1.6.3.12.3
	::= { 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."
	-- 1.3.6.1.6.3.12.1.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."
	-- 1.3.6.1.6.3.12.1.2
	::= { 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 }
	-- 1.3.6.1.6.3.12.1.2.1
	::= { 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."
	-- 1.3.6.1.6.3.12.1.2.1.1
	::= { 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."
	-- 1.3.6.1.6.3.12.1.2.1.2
	::= { 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."
	-- 1.3.6.1.6.3.12.1.2.1.3
	::= { 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 }
	-- 1.3.6.1.6.3.12.1.2.1.4
	::= { 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 }
	-- 1.3.6.1.6.3.12.1.2.1.5
	::= { 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 { "" }
	-- 1.3.6.1.6.3.12.1.2.1.6
	::= { 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."
	-- 1.3.6.1.6.3.12.1.2.1.7
	::= { 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 }
	-- 1.3.6.1.6.3.12.1.2.1.8
	::= { 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."
	-- 1.3.6.1.6.3.12.1.2.1.9
	::= { 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."
	-- 1.3.6.1.6.3.12.1.3
	::= { 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 }
	-- 1.3.6.1.6.3.12.1.3.1
	::= { 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."
	-- 1.3.6.1.6.3.12.1.3.1.1
	::= { 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."
	-- 1.3.6.1.6.3.12.1.3.1.2
	::= { 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."
	-- 1.3.6.1.6.3.12.1.3.1.3
	::= { 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."
	-- 1.3.6.1.6.3.12.1.3.1.4
	::= { 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."
	-- 1.3.6.1.6.3.12.1.3.1.5
	::= { 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 }
	-- 1.3.6.1.6.3.12.1.3.1.6
	::= { 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."
	-- 1.3.6.1.6.3.12.1.3.1.7
	::= { 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."
	-- 1.3.6.1.6.3.12.1.4
	::= { 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."
	-- 1.3.6.1.6.3.12.1.5
	::= { snmpTargetObjects 5 }


--
--
-- Conformance information
--
--

snmpTargetCompliances OBJECT IDENTIFIER 
	-- 1.3.6.1.6.3.12.3.1
	::= { snmpTargetConformance 1 }

snmpTargetGroups OBJECT IDENTIFIER 
	-- 1.3.6.1.6.3.12.3.2
	::= { snmpTargetConformance 2 }


--
--
-- Compliance statements
--
--

snmpTargetCommandResponderCompliance MODULE-COMPLIANCE
	STATUS  current
	DESCRIPTION
		"The compliance statement for SNMP entities which include
		a command responder application."

	MODULE 
	MANDATORY-GROUPS {
			snmpTargetCommandResponderGroup }

	-- 1.3.6.1.6.3.12.3.1.1
	::= { 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."
	-- 1.3.6.1.6.3.12.3.2.1
	::= { 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."
	-- 1.3.6.1.6.3.12.3.2.2
	::= { 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."
	-- 1.3.6.1.6.3.12.3.2.3
	::= { snmpTargetGroups 3 }

END
