    V2ADMIN-MIB DEFINITIONS ::= BEGIN

    IMPORTS
--        MODULE-IDENTITY, OBJECT-TYPE, Integer32, Counter32, UInteger32
	snmpModules
            FROM SNMPv2-SMI
        RowStatus, TestAndIncr, TruthValue
             FROM SNMPv2-TC
        MODULE-COMPLIANCE, OBJECT-GROUP
            FROM SNMPv2-CONF;


    v2AdminMIB MODULE-IDENTITY
        LAST-UPDATED "9508231700"
        ORGANIZATION "IETF SNMPv2 Working Group"
        CONTACT-INFO
                      "The IETF SNMPv2 Working Group
                      snmpv2@tis.com
                      Full contact info to be provided . . ."
        DESCRIPTION
              "The MIB module for configuring SNMPv2 entities."
        ::= { snmpModules 1134 }


    -- definition of textual conventions

    KeyChange ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
              "Objects with this syntax are used to change a value, K, such
              as a secret key, using a one-way function.  Objects which
              specify this syntax must designate the mechanism for selecting
              the key value to be changed.

              The value of an instance of this object is the concatenation
              of two components:  a 'random' component and a 'delta'
              component.  The length of the random component is always 16,
              and the length of the delta component is variable and
              non-negative.

              When an instance of this object is modified to have a new
              value by the management protocol, the agent generates a new
              value of K as follows:











               - a temporary variable is initialized to the existing value
                 of K;
               - if the length of the delta component is greater than 16
                 bytes, then:
                  - the random component is appended to the value of the
                    temporary variable, and the result is input to the MD5
                    hash algorithm to produce a digest value, and the
                    temporary variable is set to this digest value;
                  - the value of the temporary variable is XOR-ed with the
                    first (next) 16-bytes of the delta component to produce
                    the first (next) 16-bytes of the new value of K.
                  - the above two steps are repeated until the unused
                    portion of the delta component is 16 bytes or less,
               - the random component is appended to the value of the
                 temporary variable, and the result is input to the MD5 hash
                 algorithm to produce a digest value;
               - this digest value, truncated if necessary to be the same
                 length as the unused portion of the delta component, is
                 XOR-ed with the unused portion of the delta component to
                 produce the (final portion of the) new value of K.

                 That is,

                    iterations = (lenOfDelta - 1) / 16; /* integer division */
                    temp = keyold;
                    for (i = 0; i < iterations; i++) {
                       temp = MD5 (temp || random);
                       keynew[i*16 .. (i*16)+15] =
                              temp XOR delta[i*16 .. (i*16)+15];
                    }
                    temp = MD5 (temp || random);
                    keynew[i*16 .. lenOfDelta-1] =
                           temp XOR delta[i*16 .. lenOfDelta-1];

              The value of an object with this syntax, whenever it is
              retrieved by the management protocol, is always the zero-
              length string."
        SYNTAX       OCTET STRING


    MemoryType ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
              "Describes the memory realization of a conceptual row.  A row
              which is 'volatile' is lost upon reboot.  A row which is










              either 'nonVolatile', 'permanent' or 'readOnly', is backed up
              by stable storage.  A row which is 'permanent' can be changed
              but not deleted.  A row which is 'readOnly' cannot be changed
              nor deleted.

              It is not necessary for an implementation to allow the creation
              of permanent(4) or readOnly(5) entries.

              Every usage of this textual convention is required to specify
              the columnar objects which a 'permanent' row must at a minimum
              allow to be writable."
        SYNTAX       INTEGER {
                       other(1),            -- eh?
                       volatile(2),         -- e.g., in RAM
                       nonVolatile(3),      -- e.g., in NVRAM
                       permanent(4),        -- e.g., partially in ROM
                       readOnly(5)          -- e.g., completely in ROM
                     }


    TransportLabel ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
              "A textual description for a transport endpoint.  This
              description will typically be an alias for the
              endpoint as defined by the operating system.  For example,
              for a transport endpoint in the snmpUDPDomain, the textual
              description might be the hostname of the corresponding
              IP address."

        SYNTAX       OCTET STRING (SIZE (0..255))


    AuthName ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
              "An octet string consisting entirely of upper- or lower-case
              letters, digits, underscore, hyphen, and period characters.
              This corresponds to ASCII characters 65-90, 97-122, 48-57,
              95, 45, and 46.

              The use of this set of characters makes the configuration
              datastore for an SNMPv2 entity more human-readable, when
              stored as ASCII datafiles."
        SYNTAX       OCTET STRING










    SnmpID ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
              "An SNMPv2 entity's administratively-unique identifier."
        SYNTAX       OCTET STRING (SIZE (12))


    SPI ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
              "An integer specifying a security protocol."
        SYNTAX       INTEGER {
                                 snmpv1(1),
                                 snmpv2C(2),
                                 maint(3), -- maintenance operations
                                 usecNoAuth(4),
                                 usecAuth(5),
                                 usecPriv(6)
                     }
    --
    -- The v2AdminSnmpScalars Group
    --

    v2AdminSnmpScalars OBJECT IDENTIFIER ::= { v2AdminMIB 1 }

    snmpID OBJECT-TYPE
        SYNTAX       SnmpID
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
              "An SNMPv2 entity's administratively-unique identifier.

              The initial value for this object may be configured via an
              operator console entry or via an algorithmic function
              defined by the vendor or administrator.  In the later case,
              the following guidelines are recommended:

                  1) The first four octets should be set to the binary
                     equivalent of the device vendor's SNMP network management
                     private enterprise number as assigned by the Internet
                     Assigned Numbers Authority (IANA).  For example, if
                     Acme Networks has been assigned { enterprises 696 },
                     the first four octets would be assigned '000002b8'H.

                  2) The remaining eight octets are the cookie whose










                     contents are determined via one or more enterprise-
                     specific methods.  Such methods must be designed so as
                     to maximize the possibility that the value of this
                     object will be unique in the device's administrative
                     domain.  For example, the cookie may be the IP address
                     of the device, or the MAC address of one of the
                     interfaces, with each address suitably padded with
                     random octets, or possibly a unique cookie determined
                     by the device's model# and serial#.  If multiple methods
                     are defined, then it is recommended that the cookie be
                     further divided into one octet that indicates the method
                     being used and seven octets which are a function of
                     the method."
        ::= { v2AdminSnmpScalars 1 }

    snmpMaxMessageSize OBJECT-TYPE
        SYNTAX       Integer32 (484..2147483647)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
              "The maximum length in octets of an SNMPv2 message which
              this SNMPv2 entity can send or receive and process, determined
              as the minimum of the maximum message size values supported
              among all of the transports available to and supported by the
              entity."
        ::= { v2AdminSnmpScalars 3 }

    maxIdentityNameLength OBJECT-TYPE
        SYNTAX       Integer32 (1..255)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
              "The maximum length in octets which a particular implementation
              will allow for any object which specifies an identityName.
              This object may be queried by a manager in order to determine
              system-specific limits for use during creation of new entries
              in the tables defined in this MIB module."
        ::= { v2AdminSnmpScalars 4 }

    maxGroupNameLength OBJECT-TYPE
        SYNTAX       Integer32 (1..255)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
              "The maximum length in octets which a particular implementation










              will allow for any object which specifies a groupName.
              This object may be queried by a manager in order to determine
              system-specific limits for use during creation of new entries
              in the tables defined in this MIB module."
        ::= { v2AdminSnmpScalars 5 }

    maxV2ContextNameLength OBJECT-TYPE
        SYNTAX       Integer32 (1..255)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
              "The maximum length in octets which a particular implementation
              will allow for the v2ContextName object, the acContextName
              object, the notifyContextName object, the proxyContextNameIn
              object, and any other objects which specify a contextName.
              This object may be queried by a manager in order to determine
              system-specific limits for use during creation of new entries
              in the tables defined in this MIB module."
        ::= { v2AdminSnmpScalars 6 }

    maxViewTreeNameLength OBJECT-TYPE
        SYNTAX       Integer32 (1..255)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
              "The maximum length in octets which a particular implementation
              will allow for the viewTreeName object, and any other
              object which specifies the name of a view.  This object may
              be queried by a manager in order to determine system-specific
              limits for use during creation of new entries in the tables
              defined in this MIB module."
        ::= { v2AdminSnmpScalars 7 }

    maxTransportLabelLength OBJECT-TYPE
        SYNTAX       Integer32 (1..255)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
              "The maximum length in octets which a particular implementation
              will allow for objects whose syntax is TransportLabel.
              This object may be queried by a manager in order to
              determine system-specific limits for use during creation of
              new entries in the tables defined in this MIB module."
        ::= { v2AdminSnmpScalars 8 }











    --
    -- The v2AdminStats Group
    --

    v2AdminStats OBJECT IDENTIFIER ::= { v2AdminMIB 2 }

    v2AdminStatsUnknownSPIs OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
              "A count of the number of packets that contained sPI values
              which are unknown to or unimplemented by the agent."
        ::= { v2AdminStats 1 }

    v2AdminStatsUnknownContexts OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
              "A count of the number of packets that contained a local
              contextName value which is unknown to the agent."
        ::= { v2AdminStats 2 }

    v2AdminStatsUnavailableContexts OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
              "A count of the number of packets that contained a local
              contextName value which specified a context that is currently
              not available."
        ::= { v2AdminStats 3 }

    v2AdminStatsCacheMisses OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
              "A count of the number of Response or Report messages received
              for which no corresponding entry in the cache of outstanding
              proxy operations could be found.

              Note that a cache miss is not necessarily a serious problem.
              This can occur, for example, if packets get duplicated."










        ::= { v2AdminStats 4 }


    --
    -- The v2ContextTable
    --

    v2ContextTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF V2ContextEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "The context database portion of the Local Configuration
              Datastore."
        ::= { v2AdminMIB 3 }

    v2ContextEntry OBJECT-TYPE
        SYNTAX       V2ContextEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                   "Information about a particular context."
        INDEX { v2ContextSnmpID, IMPLIED v2ContextName }
        ::= { v2ContextTable 1 }

    V2ContextEntry ::= SEQUENCE {
        v2ContextSnmpID         SnmpID,
        v2ContextName           AuthName,
        v2ContextLocalEntity    OCTET STRING,
        v2ContextLocalTime      INTEGER,
        v2ContextMemoryType     MemoryType,
        v2ContextStatus         RowStatus
    }

    v2ContextSnmpID OBJECT-TYPE
        SYNTAX       SnmpID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "The SNMPv2 entity's administratively-unique
              identifier.  It is worth noting that in a simple agent
              implementation, the value of this object will always be
              equal to the entity's local snmpID object."
        ::= { v2ContextEntry 1 }











    v2ContextName OBJECT-TYPE
        SYNTAX       AuthName (SIZE(1..255))
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "A textual name uniquely identifying a particular context
              on a particular agent."
        ::= { v2ContextEntry 2 }

    v2ContextLocalEntity OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE(0..255))
        MAX-ACCESS   read-create            -- usually read-only on an agent
        STATUS       current
        DESCRIPTION
              "If the value of the corresponding instance of the
              v2ContextSnmpID is equal to the local value of snmpID, then
              the value of an instance of this object uniquely identifies a
              local entity (e.g., a logical device managed by the same agent)
              whose management information is available within this context.
              The empty string indicates that the context contains the
              SNMPv2 entity's own local management information;  otherwise,
              a non-empty string indicates that the context contains
              management information of some other local entity,
              e.g., 'Repeater1'.

              If the value of the corresponding instance of v2ContextSnmpID
              is not equal to the local value of snmpID, then the value of
              an instance of this object identifies an entity which is local
              to the SNMPv2 entity which realizes this context."
        DEFVAL      { ''H }
        ::= { v2ContextEntry 3 }

    v2ContextLocalTime OBJECT-TYPE
        SYNTAX       INTEGER {
                               currentTime(1),
                               restartTime(2)
                           }
        MAX-ACCESS   read-create            -- usually read-only on an agent
        STATUS       current
        DESCRIPTION
              "This object identifies the temporal domain of the
              management information within this context."
        DEFVAL      { currentTime }
        ::= { v2ContextEntry 4 }











    v2ContextMemoryType OBJECT-TYPE
        SYNTAX       MemoryType
        MAX-ACCESS   read-create            -- usually read-only on an agent
        STATUS       current
        DESCRIPTION
              "The storage type for this conceptual row in the
              v2ContextTable.  Conceptual rows having the value 'permanent'
              need not allow write-access to any columnar objects in the
              row."
        ::= { v2ContextEntry 5 }

    v2ContextStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create            -- usually read-only on an agent
        STATUS       current
        DESCRIPTION
              "The status of this conceptual row in the v2ContextTable.

              A context is not qualified for activation until instances of
              all corresponding columns have consistent values.

              For those columnar objects which permit write-access, their
              value in an existing conceptual row can be changed
              irrespective of the value of v2ContextStatus for that row."
        ::= { v2ContextEntry 6 }






























    --
    -- The v2AdminViewTree group
    --
    -- This group contains the viewTreeTable, and a spin lock variable to
    -- coordinate use of the viewTreeTable
    --

    v2AdminViewTree OBJECT IDENTIFIER ::= { v2AdminMIB 4 }

    viewTreeSpinLock OBJECT-TYPE
        SYNTAX       TestAndIncr
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
              "An advisory lock used to allow several cooperating SNMPv2
              entities, all acting in a manager role, to coordinate their
              use of the Set operation in creating view trees.

              The values of viewTreeSpinLock, acSpinLock, and notifySpinLock
              [if the notifyTable is implemented] should be accessed in
              harmony to provide interlocks on the creation of new views.

              When creating a new view or altering an existing view, it is
              important to understand the potential interactions with other
              users of the view.  The spinlocks for each table which allows
              the creation of named views should be retrieved.  The name of
              the view to be created should be determined to be unique on
              the managed system by consulting each table containing named
              views.  Finally, the named view may be created, including the
              advisory spinlocks.

              Since this is an advisory lock, entities acting in an agent
              role do not enforce the use of viewTreeSpinLock."
        ::= { v2AdminViewTree 1 }

    viewTreeTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF ViewTreeEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "The view tree database.  This contains information about the
              subtrees of MIB views known to this SNMPv2 entity.  Note that
              a MIB view which has no subtrees defined for it has no
              entries in this table.











              Each MIB view is defined by two collections of view subtrees:
              the included view subtrees, and the excluded view subtrees.
              Every such subtree, both included and excluded, is defined in
              this table.

              To determine if a particular object instance is in a
              particular MIB view, compare the object instance's OBJECT
              IDENTIFIER with each of the MIB view's active entries
              in this table.  If none match, then the object instance is
              not in the MIB view.  If one or more match, then the object
              instance is included in, or excluded from, the MIB view
              according to the value of viewTreeType in the entry whose
              value of viewTreeSubTree has the most sub-identifiers.  If
              multiple entries match and have the same number of
              sub-identifiers, then the lexicographically greatest instance
              of viewTreeType among those which match determines the inclusion
              or exclusion.

              An object instance's OBJECT IDENTIFIER X matches an active
              entry in this table when the number of sub-identifiers in X
              is at least as many as in the value of viewTreeSubTree for
              the entry, and each sub-identifier in the value of
              viewTreeSubTree matches its corresponding sub-identifier in X.
              Two sub-identifiers match either if the corresponding bit of
              viewMask is zero (the 'wild card' value), or if they are equal.

              Due to this 'wild card' capability, we introduce the term, a
              'family' of view subtrees, to refer to the set of subtrees
              defined by a particular combination of values of
              viewTreeSubTree and viewTreeMask.  In the case where no
              'wild card' is defined in viewTreeMask, the family of view
              subtrees reduces to a single view subtree."
        ::= { v2AdminViewTree 2 }

    viewTreeEntry OBJECT-TYPE
        SYNTAX       ViewTreeEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "Information on a particular family of view subtrees
              included in or excluded from a particular MIB view.

              Implementations must not restrict the number of families of
              view subtrees for a given MIB view, except as dictated by
              resource constraints on the overall number of entries in the










              viewTable."
        INDEX { viewTreeName, IMPLIED viewTreeSubTree }
        ::= { viewTreeTable 1 }

    ViewTreeEntry ::= SEQUENCE {
        viewTreeName         AuthName,
        viewTreeSubTree      OBJECT IDENTIFIER,
        viewTreeMask         OCTET STRING,
        viewTreeType         INTEGER,
        viewTreeMemoryType   MemoryType,
        viewTreeStatus       RowStatus
    }

    viewTreeName OBJECT-TYPE
        SYNTAX       AuthName (SIZE(1..255))
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                   "The textual name for a family of view subtrees."
        ::= { viewTreeEntry 1 }

    viewTreeSubTree OBJECT-TYPE
        SYNTAX       OBJECT IDENTIFIER
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "A MIB subtree."
        ::= { viewTreeEntry 2 }

    viewTreeMask 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 viewTreeSubTree, defines a family of view
              subtrees.

              Each bit of this bit mask corresponds to a sub-identifier of
              viewTreeSubTree, 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 is in this family of view 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 view subtrees if the following
              criteria are met:

                  for each sub-identifier of the value of viewTreeSubTree,
                  either:

                      the i-th bit of viewMask is 0, or

                      the i-th sub-identifier of X is equal to the i-th
                      sub-identifier of the value of viewTreeSubTree.

              If the value of this bit mask is M bits long and there are
              more than M sub-identifiers in the corresponding instance of
              viewTreeSubTree, 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 view
              subtrees is the one view subtree uniquely identified by the
              corresponding instance of viewTreeSubTree."
        DEFVAL      { ''H }
        ::= { viewTreeEntry 3 }

    viewTreeType OBJECT-TYPE
        SYNTAX       INTEGER {
                               included(1),
                               excluded(2)
                           }
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The status of a particular family of view subtrees within
              the particular context's MIB view.  The value 'included(1)'
              indicates that the corresponding instances of viewTreeSubTree
              and viewTreeMask define a family of view subtrees included in
              the MIB view.  The  value 'excluded(2)' indicates that the










              corresponding instances of viewTreeSubTree and viewTreeMask
              define a family of view subtrees excluded from the MIB view."
        ::= { viewTreeEntry 4 }

    viewTreeMemoryType OBJECT-TYPE
        SYNTAX       MemoryType
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The storage type for this conceptual row in the viewTreeTable.
              Conceptual rows having the value 'permanent' need not allow
              write-access to any columnar objects in the row."
        ::= { viewTreeEntry 5 }

    viewTreeStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The status of this conceptual row in the viewTreeTable.

              For those columnar objects which permit write-access, their
              value in an existing conceptual row can be changed
              irrespective of the value of viewTreeStatus for that row."
        ::= { viewTreeEntry 6 }






























    --
    -- Access Control Portion of the Local Configuration Datastore (LCD)
    --
    v2AdminAccessControl OBJECT IDENTIFIER ::= { v2AdminMIB 5 }

    --
    -- a spinlock for the acTable
    --

    acSpinLock OBJECT-TYPE
        SYNTAX       TestAndIncr
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
              "An advisory lock used to allow several cooperating SNMPv2
              entities, all acting in a manager role, to coordinate their
              use of the Set operation in creating view trees.

              The values of viewTreeSpinLock, acSpinLock, and notifySpinLock
              [if the notifyTable is implemented] should be accessed in
              harmony to provide interlocks on the creation of new views.

              When creating a new view or altering an existing view, it is
              important to understand the potential interactions with other
              users of the view.  The spinlocks for each table which allows
              the creation of named views should be retrieved.  The name of
              the view to be created should be determined to be unique on
              the managed system by consulting each table containing named
              views.  Finally, the named view may be created, including the
              advisory spinlocks.

              Since this is an advisory lock, entities acting in an agent
              role do not enforce the use of acSpinLock."
        ::= { v2AdminAccessControl 1 }


    --
    -- The acTable
    --

    acTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF AcEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION










                   "The access control database."
        ::= { v2AdminAccessControl 2 }

    acEntry OBJECT-TYPE
        SYNTAX       AcEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "Each conceptual row in this table represents the access policy
              for a group of identities within a particular sPI.  An access
              policy specifies the access privileges authorized and MIB views
              accessible by a group of identities for communication concerning
              information contained in a particular context."
        INDEX { acSPI, acGroupName, IMPLIED acContextName }
        ::= { acTable 1 }

    AcEntry ::= SEQUENCE {
        acSPI                SPI,
        acGroupName          AuthName,
        acContextName        AuthName,
        acContextNameMask    AuthName,
        acPrivs              INTEGER,
        acReadViewName       AuthName,
        acWriteViewName      AuthName,
        acMemoryType         MemoryType,
        acStatus             RowStatus
    }

    acSPI OBJECT-TYPE
        SYNTAX       SPI
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "The security protocol under which this conceptual row
              provides access privileges.  The sPI which is used to
              originate a management request must match this object
              in order to be granted access to management information."
        ::= { acEntry 1 }

    acGroupName OBJECT-TYPE
        SYNTAX       AuthName (SIZE(1..255))
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "The textual name of a group associated with a conceptual row










              in the acTable.  A group name is associated with zero, one, or
              more identities which are afforded the access privileges
              authorized by the corresponding value of acPrivs to the zero,
              one, or more contexts named by the corresponding values of
              acContextName and acContextNameMask via the views named by
              acReadViewName and acWriteViewName, if any.

              For example, if the corresponding value of sPI is usecNoAuth,
              usecAuth, or usecPriv, then the value of an instance of this
              object identifies the set of identities whose usecUserGroupName
              value is equal to the value of the instance of this object."
        ::= { acEntry 2 }

    acContextName OBJECT-TYPE
        SYNTAX       AuthName (SIZE(1..255))
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "The value of this object combined with the corresponding
              value of acContextNameMask identifies zero, one, or more
              contexts associated with a particular set of access
              privileges."
        ::= { acEntry 3 }

    acContextNameMask OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE (0..32))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The bit mask, which, in combination with the corresponding
              instance of acContextName, identifies zero, one, or more
              contexts.

              Each bit of this bit mask corresponds to an octet of
              acContextName, 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 octet, and the
              least significant bit of the i-th octet of this octet string
              corresponding to the (8*i)-th octet, where i is in the range
              1 through 4.

              Each bit of this bit mask specifies whether or not the
              corresponding octets must match when determining which
              instances of v2ContextEntry are identified by the
              corresponding value of acContextName.  A '1' indicates that










              the corresponding octets must match, and a '0' indicates that
              any octet value matches.

              Thus, an instance of v2ContextEntry is identified if, for each
              bit in the corresponding value of acContextNameMask,
              either:

                  the bit of acContextNameMask is 0, or

                  the length of acContextName and v2ContextName are both
                  at least i octets, and the i-th octet of
                  acContextName is equal to the i-th octet of
                  v2ContextName.

              It is not permitted for multiple conceptual rows in the acTable
              to identify the same v2ContextName in this manner, for a
              particular acSPI and acGroupName pair.  If a Set request
              attempts to modify a conceptual row in the acTable in a way such
              that the combination of acContextName and acContextNameMask as
              described above would yield the same value as the combination of
              acContextName and acContextNameMask of another conceptual row in
              the same conceptual table, for which the corresponding values of
              acSPI are equal and the corresponding values of acGroupName are
              equal, then an inconsistentValueError should be returned, and
              the Set operation should fail.

              If the value of this bit mask is M bits long and there are
              more than M octets in the corresponding instance of either
              acContextName or v2ContextName, then the bit mask is
              extended with 1's up to the maximum of the two lengths."
        ::= { acEntry 4 }

    acPrivs OBJECT-TYPE
        SYNTAX       INTEGER {
                            nothing(1),
                            readOnly(2),
                            readWrite(3)
                           }
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "This object specifies the types of management operations
              that are authorized by this conceptual row.  A value of
              readOnly(2) indicates that Get, GetNext, and GetBulk
              operations are authorized.  A value of readWrite(3)










              indicates that Get, GetNext, GetBulk, and Set operations
              are authorized."
        ::= { acEntry 5 }

    acReadViewName OBJECT-TYPE
        SYNTAX       AuthName (SIZE(0..255))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The value of an instance of this object identifies the MIB
              view to be be used to provide access control via read (i.e.,
              Get, GetNext, and GetBulk) operations to the zero, one, or
              many contexts identified by the combination of the
              corresponding instances of acContextName and acContextNameMask,
              for a given value of sPI equal to the value of the corresponding
              instance of acSPI, if and only if the corresponding value of
              acPrivs authorizes read operations, i.e., equals readOnly(2)
              or readWrite(3).

              The identified MIB view is that for which viewTreeName has
              the same value as the instance of this object; if there are
              no active view subtrees for that value, or if the value of
              this object has zero-length, then the identified MIB view
              is the empty set of view subtrees, and the identified set of
              objects for which read operations is enabled by this conceptual
              row is the empty set."
        ::= { acEntry 6 }

    acWriteViewName OBJECT-TYPE
        SYNTAX       AuthName (SIZE(0..255))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The value of an instance of this object identifies the MIB
              view to be be used to provide access control via write, i.e.,
              Set operations to the zero, one, or many contexts identified
              by the combination of the corresponding instances of
              acContextName and acContextNameMask, for a given value of sPI
              equal to the value of the corresponding instance of acSPI, if
              and only if the corresponding value of acPrivs authorizes write
              (Set) operations, i.e., equals readWrite(3).

              The identified MIB view is that for which viewTreeName has
              the same value as the instance of this object; if there are
              no active view subtrees for that value, or if the value of










              this object has zero-length, then the identified MIB view
              is the empty set of view subtrees, and the identified set of
              objects for which write (Set) operations is enabled by this
              conceptual row is the empty set."
        ::= { acEntry 7 }

    acMemoryType OBJECT-TYPE
        SYNTAX       MemoryType
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The storage type for this conceptual row in the acTable.
              Conceptual rows having the value 'permanent' need not allow
              write-access to any columnar objects in the row."
        ::= { acEntry 8 }

    acStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The status of this conceptual row in the acTable.

              A conceptual row being created in this table is not
              considered ready for activation until the values of
              acContextName and acContextNameMask are consistent with
              all existing active rows in the table, as described above
              under acContextNameMask.

              For those columnar objects which permit write-access, their
              value in an existing conceptual row can be changed
              irrespective of the value of acStatus for that row."
        ::= { acEntry 9 }






















    --
    -- The v2AdminTransport group
    --

    v2AdminTransport OBJECT IDENTIFIER ::= { v2AdminMIB 6 }

    --
    -- Spin lock variable for transportTable modification.
    --

    transportSpinLock OBJECT-TYPE
        SYNTAX       TestAndIncr
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
              "An advisory lock used to allow several cooperating SNMPv2
              entities, all acting in a manager role, to coordinate their
              use of Set operations to entries in the transportTable.
              A manager application should include the value of
              transportSpinLock in every Set operation which accesses the
              transportTable.  Since this is an advisory lock, entities
              acting in an agent role do not enforce the use of
              transportSpinLock."
        ::= { v2AdminTransport 1 }

    --
    -- The transportTable
    --

    transportTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF TransportEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "The transport endpoint database.  This table need only be
              implemented by entities which will send traps or inform
              requests, or which will support proxy operations."
        ::= { v2AdminTransport 3 }

    transportEntry OBJECT-TYPE
        SYNTAX       TransportEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "A transport endpoint.  This specifies a destination to which










              notifications or proxy requests will be sent."
        INDEX { transportLabel, transportSubindex }
        ::= { transportTable 1 }

    TransportEntry ::= SEQUENCE {
        transportLabel        TransportLabel,
        transportSubindex     INTEGER,
        transportDomain       OBJECT IDENTIFIER,
        transportAddress      OCTET STRING,
        transportReceiveMask  OCTET STRING,
        transportMMS          Integer32,
        transportMemoryType   MemoryType,
        transportStatus       RowStatus
    }

    transportLabel OBJECT-TYPE
        SYNTAX       TransportLabel (SIZE(1..255))
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "A unique name for a set of transport endpoints."
        ::= { transportEntry 1 }

    transportSubindex OBJECT-TYPE
        SYNTAX       INTEGER (0..2147483647)
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "The sub-index for a transport endpoint.  For multiply-homed
              entities, a single transportLabel might refer to multiple
              transport endpoints."
        ::= { transportEntry 2 }

    transportDomain OBJECT-TYPE
        SYNTAX       OBJECT IDENTIFIER
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "Indicates the kind of transport service."
        ::= { transportEntry 3 }

    -- [@ref tm] specifies some transportDomain values

    transportAddress OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE(0..255))










        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The transport service address, formatted according to the
              corresponding value of transportDomain.  For some operations,
              this value is further qualified by the corresponding value of
              transportReceiveMask, allowing a group of transport
              endpoints to be specified.

              For example, for the transport domain corresponding to the
              snmpUDPDomain, transportAddress is formatted as a 4-octet
              IP Address concatenated with a 2-octet UDP port number."
        ::= { transportEntry 4 }

    transportReceiveMask OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE(0..255))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "This object is used to qualify the value of the
              corresponding value of transportAddress.  The semantics of
              this object depend on the corresponding value of
              transportDomain.

              For example, for the transport domain corresponding to the
              snmpUDPDomain, transportReceiveMask specifies a network mask
              value.  This allows an entry in the transportTable to
              specify an entire sub-network."
        ::= { transportEntry 5 }

    transportMMS OBJECT-TYPE
        SYNTAX       Integer32 (484..2147483647)
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "This object specifies the minimum value of the maximum
              size of messages which may be sent or received using this
              transport endpoint."
        ::= { transportEntry 6 }

    transportMemoryType OBJECT-TYPE
        SYNTAX       MemoryType
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION










              "The storage type for this conceptual row in the transportTable.
              Conceptual rows having the value 'permanent' need not allow
              write-access to any columnar objects in the row."
        ::= { transportEntry 7 }

    transportStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The status of this conceptual row in the transportTable.

              The values of transportDomain, transportAddress, and
              transportReceiveMask in an existing conceptual row cannot be
              changed while the corresponding value of transportStatus for
              that row is active.

              For other columnar objects which permit write-access, their
              value in an existing conceptual row can be changed
              irrespective of the value of transportStatus for that row."
        ::= { transportEntry 8 }


































    --
    -- The v2AdminNotify group
    --
    -- This group contains tables used for configuring notifications.
    --

    v2AdminNotify OBJECT IDENTIFIER ::= { v2AdminMIB 7 }

    notifySpinLock OBJECT-TYPE
        SYNTAX       TestAndIncr
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
              "An advisory lock used to allow several cooperating SNMPv2
              entities, all acting in a manager role, to coordinate their
              use of the Set operation in creating view trees.

              The values of viewTreeSpinLock, acSpinLock, and notifySpinLock
              should be accessed in harmony to provide interlocks on the
              creation of new views.

              When creating a new view or altering an existing view, it is
              important to understand the potential interactions with other
              users of the view.  The spinlocks for each table which allows
              the creation of named views should be retrieved.  The name of
              the view to be created should be determined to be unique on
              the managed system by consulting each table containing named
              views.  Finally, the named view may be created, including the
              advisory spinlocks.

              Since this is an advisory lock, entities acting in an agent
              role do not enforce the use of notifySpinLock."
        ::= { v2AdminNotify 1 }

    --
    -- The notifyTable.
    --
    -- Note that this table does not provide values to be used for the
    -- authSnmpID or contextSnmpID values for outgoing packets.
    --
    -- When sending a Trap notification, both the authSnmpID and the
    -- contextSnmpID will be equal to the local value of snmpID.
    --
    -- When sending an Inform request, the authSnmpID will be equal to the
    -- notifyAuthSnmpID, and the contextSnmpID will be equal to the local










    -- value of snmpID.
    --

    notifyTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF NotifyEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "The notification destination database.  This table need
              only be implemented by entities which will send trap
              notifications or inform requests.

              If an entity will only send trap notifications, it need
              only implement this table, in which case all entries in the
              table are taken as trap destinations.

              If an entity will send inform requests, it must implement
              both this table, and the notifyInformParametersTable.  In this
              case, each entry in this table is taken as a trap or inform
              destination, as specified in the corresponding value of
              notifyConfirm."
        ::= { v2AdminNotify 2 }

    notifyEntry OBJECT-TYPE
        SYNTAX       NotifyEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "Each conceptual row in this table identifies a notification
              destination, including, directly or indirectly, an identity,
              context, and transport endpoint information to be used for
              sending a notification."
        INDEX { notifyIndex }
        ::= { notifyTable 1 }

    NotifyEntry ::= SEQUENCE {
        notifyIndex          INTEGER,
        notifySPI            SPI,
        notifyIdentityName   AuthName,
        notifyTransportLabel TransportLabel,
        notifyContextName    AuthName,
        notifyViewName       AuthName,
        notifyMemoryType     MemoryType,
        notifyStatus         RowStatus
    }










    notifyIndex OBJECT-TYPE
        SYNTAX       INTEGER (0..2147483647)
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "An arbitrary unique value for each notification destination."
        ::= { notifyEntry 1 }

    notifySPI OBJECT-TYPE
        SYNTAX       SPI
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "This object identifies the security protocol to be used
              when sending this notification."
        ::= { notifyEntry 2 }

    notifyIdentityName OBJECT-TYPE
        SYNTAX       AuthName (SIZE(1..255))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The identity which will be used to send a notification.  This
              object specifies an identity within the security protocol
              specified by the corresponding value of notifySPI."
        ::= { notifyEntry 3 }

    notifyTransportLabel OBJECT-TYPE
        SYNTAX       TransportLabel
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "An instance of notifyTransportLabel identifies zero, one, or
              more conceptual rows in the transportTable which describe
              the transport endpoint(s) to which this notification should
              be delivered."
        ::= { notifyEntry 4 }

    notifyContextName OBJECT-TYPE
        SYNTAX       AuthName (SIZE(1..255))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The context for which notifications will be sent.  There
              may or may not be be a corresponding conceptual row in the










              v2ContextTable whose value of v2ContextName is equal to the
              value of this object.  If there is no corresponding conceptual
              row in the v2ContextTable, then no notifications shall be
              emitted as a result of this entry, even if the value of
              notifyStatus is 'active'."
        ::= { notifyEntry 5 }

    notifyViewName OBJECT-TYPE
        SYNTAX       AuthName (SIZE(1..255))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The family of view subtrees to which this notification has
              access.  A notification will only be delivered to this
              destination if all of the objects in the varbind list to be
              delivered are included in this MIB view.  This object
              specifies a set of entries in the viewTreeTable whose
              values of viewTreeName are equal to this object.

              The identified view is that for which viewTreeName has the
              same value as the instance of this object; if there are no
              active view subtrees for that value, or if the value of
              this object has zero-length, then the identified MIB view
              is the empty set of view subtrees, and thus no objects
              are included in the identified view."
        ::= { notifyEntry 6 }

    notifyMemoryType OBJECT-TYPE
        SYNTAX       MemoryType
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The storage type for this conceptual row in the notifyTable.
              Conceptual rows having the value 'permanent' need not allow
              write-access to any columnar objects in the row."
        ::= { notifyEntry 7 }

    notifyStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The status of this conceptual row in the notifyTable.

              For those columnar objects which permit write-access, their










              value in an existing conceptual row can be changed
              irrespective of the value of notifyStatus for that row."
        ::= { notifyEntry 8 }




















































    --
    -- The notifyInformParametersTable contains additional parameters for
    -- inform requests.  This table augments the notifyTable.
    --
    notifyInformParametersTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF NotifyInformParametersEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "Database of additional parameters for notification
              destinations.  This table need only be implemented by
              entities which are configured to send inform requests
              via entries in the notifyTable."
        ::= { v2AdminNotify 3 }

    notifyInformParametersEntry OBJECT-TYPE
        SYNTAX       NotifyInformParametersEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "Additional parameters for a notification destination."
        AUGMENTS { notifyEntry }
        ::= { notifyInformParametersTable 1 }

    NotifyInformParametersEntry ::= SEQUENCE {
        notifyConfirm         TruthValue,
        notifyAuthSnmpID      SnmpID,
        notifyTimeout         Integer32,
        notifyMaxRetry        Integer32
    }

    notifyConfirm OBJECT-TYPE
        SYNTAX       TruthValue
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "Indicates whether a notification should be confirmed.  If
              this value is true(1), then the notification will be sent
              as an inform request.  If the value is false(2), then the
              notification will be sent as a trap."
        ::= { notifyInformParametersEntry 1 }

    notifyAuthSnmpID OBJECT-TYPE
        SYNTAX       SnmpID
        MAX-ACCESS   read-create










        STATUS       current
        DESCRIPTION
              "Indicates the SnmpID to be used in the AuthInfo
              field of Inform requests.  This object is located in this
              table because the authSnmpID need only be specified
              for an Inform request, since this snmpID must be that
              of the entity to which the Inform is being sent.  For a trap,
              the authSnmpID would be equal to the local value of snmpID
              of the trap sender."
        ::= { notifyInformParametersEntry 2 }

    notifyTimeout OBJECT-TYPE
        SYNTAX       Integer32 (1..2147483647)
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The timeout interval to be used when waiting for the response
              to an inform request.  After this period has expired, the
              inform request will be resent.  This will be repeated a number
              of times up to notifyMaxRetry, until a response is
              received."
        ::= { notifyInformParametersEntry 3 }

    notifyMaxRetry OBJECT-TYPE
        SYNTAX       Integer32 (0..2147483647)
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The maximum number of times an inform request should be
              re-sent when a response is not received within the interval
              specified by the corresponding value of notifyTimeout."
        ::= { notifyInformParametersEntry 4 }























    --
    -- The v2AdminProxy group
    --

    v2AdminProxy OBJECT IDENTIFIER ::= { v2AdminMIB 8 }

    --
    -- The proxyForwardingTable need only be implemented by those entities
    -- which perform proxy operations.  This includes entities which forward
    -- SNMP Get, GetNext, GetBulk, Set, and Inform requests to another
    -- entity, and forward the responses resulting from these requests back
    -- to the originating entities, and entities which forward SNMP traps to
    -- another entity.
    --

    proxyForwardingTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF ProxyForwardingEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "The proxy configuration database.  Each conceptual row in
              this database specifies configuration information for an
              entity acting in a proxy role."
        ::= { v2AdminProxy 2 }

    proxyForwardingEntry OBJECT-TYPE
        SYNTAX       ProxyForwardingEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "A proxy configuration."
        INDEX { proxyIndex }
        ::= { proxyForwardingTable 1 }


    ProxyForwardingEntry ::= SEQUENCE {
        proxyIndex                 INTEGER,
        proxyType                  INTEGER,
        proxySPIIn                 SPI,
        proxyAuthSnmpIDIn          SnmpID,
        proxyIdentityNameIn        AuthName,
        proxyContextSnmpIDIn       SnmpID,
        proxyContextNameIn         AuthName,
        proxySPIOut                SPI,










        proxyIdentityNameOut       AuthName,
        proxyTransportLabelOut     TransportLabel,
        proxyMemoryType            MemoryType,
        proxyStatus                RowStatus
    }

    proxyIndex OBJECT-TYPE
        SYNTAX       INTEGER (0..2147483647)
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
              "An arbitrary unique value for each proxy configuration."
        ::= { proxyForwardingEntry 1 }

    proxyType OBJECT-TYPE
        SYNTAX       INTEGER {
                               gnb(1),
                               set(2),
                               trap(3),
                               inform(4)
                           }
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "Indicates whether the entity will act as a proxy for
              management requests being sent from one entity to another
              entity (and for the corresponding responses), for traps
              operations being sent from an agent to a manager, or for
              inform operations being sent from a manager to another manager
              (and for the corresponding responses).

              If this object is equal to gnb(1), then this conceptual row
              is a configuration for performing proxy operations for Get,
              GetNext, and GetBulk operations.

              If this object is equal to set(2), then this conceptual row
              is a configuration for performing proxy operations for Set
              operations.

              If this object is equal to trap(3), then this conceptual
              row is a configuration for performing proxy operations for
              Trap operations.

              If this object is equal to inform(4), then this conceptual
              row is a configuration for performing proxy operations for










              Inform operations."
        ::= { proxyForwardingEntry 2 }

    proxySPIIn OBJECT-TYPE
        SYNTAX       SPI
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The security protocol for which the agent will act as
              a proxy.  This entity will only perform proxy operations
              for management operations in which the security protocol
              in use matches this object."
        ::= { proxyForwardingEntry 3 }

    proxyAuthSnmpIDIn OBJECT-TYPE
        SYNTAX       SnmpID
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The value of authSnmpID for an incoming message.  For
              entries for which the value of proxyType is gnb(1), set(2) or
              inform(4), this object will have the same value as the local
              value for snmpID."
        ::= { proxyForwardingEntry 4 }

    proxyIdentityNameIn OBJECT-TYPE
        SYNTAX       AuthName(SIZE(1..255))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The identity for which this agent will act as a proxy.
              This entity will only perform proxy operations for management
              operations in which the identity derived by the security
              protocol from the authentication information matches an
              instance of this object."
        ::= { proxyForwardingEntry 5 }

    proxyContextSnmpIDIn OBJECT-TYPE
        SYNTAX       SnmpID
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "This object, along with the corresponding instance of
              proxyContextNameIn, specifies the context for which
              this entity will act as a proxy.  These two objects










              identify a particular globally unique context, i.e.,
              a particular v2ContextSnmpID and v2ContextName pair."
        ::= { proxyForwardingEntry 6 }

    proxyContextNameIn OBJECT-TYPE
        SYNTAX       AuthName (SIZE(1..255))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "This object, along with the corresponding instance of
              proxyContextSnmpIDIn, specifies the context for which
              this entity will act as a proxy.  These two objects
              identify a particular globally unique context, i.e.,
              a particular v2ContextSnmpID and v2ContextName pair."
        ::= { proxyForwardingEntry 7 }

    proxySPIOut OBJECT-TYPE
        SYNTAX       SPI
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The identifier of the security protocol to be used for
              forwarding the proxied requests or trap notifications."
        ::= { proxyForwardingEntry 8 }

    proxyIdentityNameOut OBJECT-TYPE
        SYNTAX       AuthName(SIZE(0..255))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The identity to be used for forwarding proxied requests or
              trap notifications."
        ::= { proxyForwardingEntry 10 }

    proxyTransportLabelOut OBJECT-TYPE
        SYNTAX       TransportLabel










        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The identification of zero, one, or many conceptual rows in
              the transportTable whose values of transportLabel equal the
              value of this object, designating the transport endpoint(s) to
              which proxied requests will be forwarded.

              Note that this object may specify multiple transport endpoints
              to which a proxied request may be forwarded.  If this is the
              case, then the first response to the forwarded request which
              is received will be accepted, and subsequent responses will
              be discarded.  In the case of proxy trap forwarding, multiple
              transport end-points simply represent a proxy fan-out."
        ::= { proxyForwardingEntry 11 }

    proxyMemoryType OBJECT-TYPE
        SYNTAX       MemoryType
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The storage type for this conceptual row in the
              proxyForwardingTable.  Conceptual rows having the value
              'permanent' need not allow write-access to any columnar
              objects in the row."
        ::= { proxyForwardingEntry 12 }

    proxyStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
              "The status of this conceptual row in the proxyForwardingTable.

              For those columnar objects which permit write-access, their
              value in an existing conceptual row can be changed
              irrespective of the value of proxyStatus for that row."
        ::= { proxyForwardingEntry 13 }

















    -- conformance information

    v2AdminMIBConformance
                   OBJECT IDENTIFIER ::= { v2AdminMIB 10 }
    v2AdminMIBCompliances
                   OBJECT IDENTIFIER ::= { v2AdminMIBConformance 1 }
    v2AdminMIBGroups
                   OBJECT IDENTIFIER ::= { v2AdminMIBConformance 2 }


    -- compliance statements

    v2AdminMIBBasicAgentCompliance MODULE-COMPLIANCE
        STATUS    current
        DESCRIPTION
              "The compliance statement for simple SNMPv2 agents which
              implement the SNMPv2 ADMIN MIB."
        MODULE  -- this module
            MANDATORY-GROUPS {
                              v2AdminBasicGroup
                             }
        ::= { v2AdminMIBCompliances 1 }

    v2AdminMIBBasicAgentWithTransportCheckingCompliance MODULE-COMPLIANCE
        STATUS    current
        DESCRIPTION
              "The compliance statement for simple SNMPv2 agents which
              implement the SNMPv2 ADMIN MIB, and which also perform
              transport endpoint checks when authenticating messages."
        MODULE  -- this module
            MANDATORY-GROUPS {
                              v2AdminBasicGroup,
                              v2AdminTransportGroup
                             }
        ::= { v2AdminMIBCompliances 2 }

    v2AdminMIBBasicAgentWithTrapsCompliance MODULE-COMPLIANCE
        STATUS    current
        DESCRIPTION
              "The compliance statement for SNMPv2 entities which
              implement the SNMPv2 ADMIN MIB."
        MODULE  -- this module
            MANDATORY-GROUPS {
                              v2AdminBasicGroup,
                              v2AdminTransportGroup,










                              v2AdminTrapGroup
                             }
        ::= { v2AdminMIBCompliances 3 }

    v2AdminMIBBasicAgentWithProxyCompliance MODULE-COMPLIANCE
        STATUS    current
        DESCRIPTION
              "The compliance statement for SNMPv2 entities which
              implement the SNMPv2 ADMIN MIB."
        MODULE  -- this module
            MANDATORY-GROUPS {
                              v2AdminBasicGroup,
                              v2AdminTransportGroup,
                              v2AdminProxyGroup
                             }
        ::= { v2AdminMIBCompliances 4 }

    v2AdminMIBBasicAgentWithTrapsAndProxyCompliance MODULE-COMPLIANCE
        STATUS    current
        DESCRIPTION
              "The compliance statement for SNMPv2 entities which
              implement the SNMPv2 ADMIN MIB."
        MODULE  -- this module
            MANDATORY-GROUPS {
                              v2AdminBasicGroup,
                              v2AdminTransportGroup,
                              v2AdminTrapGroup,
                              v2AdminProxyGroup
                             }
        ::= { v2AdminMIBCompliances 5 }

    v2AdminMIBDualRoleEntityCompliance MODULE-COMPLIANCE
        STATUS    current
        DESCRIPTION
              "The compliance statement for SNMPv2 entities which
              implement the SNMPv2 ADMIN MIB."
        MODULE  -- this module
            MANDATORY-GROUPS {
                              v2AdminBasicGroup,
                              v2AdminTransportGroup,
                              v2AdminTrapGroup,
                              v2AdminProxyGroup,
                              v2AdminInformGroup
                             }
        ::= { v2AdminMIBCompliances 6 }










    -- units of conformance

    v2AdminBasicGroup OBJECT-GROUP
        OBJECTS {
                 snmpID,
                 snmpMaxMessageSize,
                 maxIdentityNameLength,
                 maxGroupNameLength,
                 maxV2ContextNameLength,
                 maxViewTreeNameLength,
                 maxTransportLabelLength,
                 v2ContextSnmpID,
                 v2ContextName,
                 v2ContextLocalEntity,
                 v2ContextLocalTime,
                 v2ContextMemoryType,
                 v2ContextStatus,
                 viewTreeSpinLock,
                 viewTreeName,
                 viewTreeSubTree,
                 viewTreeMask,
                 viewTreeType,
                 viewTreeMemoryType,
                 viewTreeStatus,
                 acSpinLock,
                 acGroupName,
                 acContextName,
                 acContextNameMask,
                 acPrivs,
                 acReadViewName,
                 acWriteViewName,
                 acMemoryType,
                 acStatus
                }
        STATUS    current
        DESCRIPTION
              "A collection of objects providing for configuration of an
              SNMPv2 agent."
        ::= { v2AdminMIBGroups 1 }

    v2AdminTransportGroup OBJECT-GROUP
        OBJECTS {
                 transportSpinLock,
                 transportLabel,
                 transportSubindex,










                 transportDomain,
                 transportAddress,
                 transportReceiveMask,
                 transportMMS,
                 transportMemoryType,
                 transportStatus
                }
        STATUS    current
        DESCRIPTION
              "A collection of objects providing for configuration of
              transport endpoints."
        ::= { v2AdminMIBGroups 2 }

    v2AdminTrapGroup OBJECT-GROUP
        OBJECTS {
                 notifySpinLock,
                 notifyIndex,
                 notifySPI,
                 notifyIdentityName,
                 notifyTransportLabel,
                 notifyContextName,
                 notifyViewName,
                 notifyMemoryType,
                 notifyStatus
                }
        STATUS    current
        DESCRIPTION
              "A collection of objects providing for configuration of an
              SNMPv2 agent which will send traps."
        ::= { v2AdminMIBGroups 3 }

    v2AdminProxyGroup OBJECT-GROUP
        OBJECTS {
                 proxyIndex,
                 proxyType,
                 proxySPIIn,
                 proxyIdentityNameIn,
                 proxyContextSnmpIDIn,
                 proxyContextNameIn,
                 proxySPIOut,
                 proxyIdentityNameOut,
                 proxyTransportLabelOut,
                 proxyMemoryType,
                 proxyStatus










                }
        STATUS    current
        DESCRIPTION
              "A collection of objects providing for configuration of an
              SNMPv2 proxy agent."
        ::= { v2AdminMIBGroups 4 }

    v2AdminInformGroup OBJECT-GROUP
        OBJECTS {
                 notifyConfirm,
                 notifyAuthSnmpID,
                 notifyTimeout,
                 notifyMaxRetry
                }
        STATUS    current
        DESCRIPTION
              "A collection of objects providing for configuration of an
              SNMPv2 dual-role-entity which will send informs."
        ::= { v2AdminMIBGroups 5 }

END
