BATOSAY Shell
Server IP : 170.10.162.208  /  Your IP : 216.73.216.181
Web Server : LiteSpeed
System : Linux altar19.supremepanel19.com 4.18.0-553.69.1.lve.el8.x86_64 #1 SMP Wed Aug 13 19:53:59 UTC 2025 x86_64
User : deltahospital ( 1806)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/tmp/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /var/tmp/phpFJBCP8
NOTIFICATION-LOG-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    Integer32, Unsigned32,
    TimeTicks, Counter32, Counter64,
    IpAddress, Opaque, mib-2       FROM SNMPv2-SMI
    TimeStamp, DateAndTime,
    StorageType, RowStatus,
    TAddress, TDomain              FROM SNMPv2-TC
    SnmpAdminString, SnmpEngineID  FROM SNMP-FRAMEWORK-MIB
    MODULE-COMPLIANCE, OBJECT-GROUP     FROM SNMPv2-CONF;

notificationLogMIB MODULE-IDENTITY
    LAST-UPDATED "200011270000Z"            -- 27 November 2000
    ORGANIZATION "IETF Distributed Management Working Group"
    CONTACT-INFO "Ramanathan Kavasseri
                  Cisco Systems, Inc.
                  170 West Tasman Drive,
                  San Jose CA 95134-1706.
                  Phone: +1 408 527 2446
                  Email: ramk@cisco.com"
    DESCRIPTION
     "The MIB module for logging SNMP Notifications, that is, Traps

     and Informs."
-- Revision History

       REVISION     "200011270000Z"            -- 27 November 2000
       DESCRIPTION  "This is the initial version of this MIB.
               Published as RFC 3014"
    ::= { mib-2 92 }

notificationLogMIBObjects OBJECT IDENTIFIER ::= { notificationLogMIB 1 }

nlmConfig OBJECT IDENTIFIER ::= { notificationLogMIBObjects 1 }
nlmStats  OBJECT IDENTIFIER ::= { notificationLogMIBObjects 2 }
nlmLog         OBJECT IDENTIFIER ::= { notificationLogMIBObjects 3 }

--
-- Configuration Section
--

nlmConfigGlobalEntryLimit OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
     "The maximum number of notification entries that may be held
     in nlmLogTable for all nlmLogNames added together.  A particular
     setting does not guarantee that much data can be held.

     If an application changes the limit while there are
     Notifications in the log, the oldest Notifications MUST be
     discarded to bring the log down to the new limit - thus the
     value of nlmConfigGlobalEntryLimit MUST take precedence over
     the values of nlmConfigGlobalAgeOut and nlmConfigLogEntryLimit,
     even if the Notification being discarded has been present for
     fewer minutes than the value of nlmConfigGlobalAgeOut, or if
     the named log has fewer entries than that specified in
     nlmConfigLogEntryLimit.

     A value of 0 means no limit.

     Please be aware that contention between multiple managers
     trying to set this object to different values MAY affect the
     reliability and completeness of data seen by each manager."
    DEFVAL { 0 }
    ::= { nlmConfig 1 }

nlmConfigGlobalAgeOut OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "minutes"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
     "The number of minutes a Notification SHOULD be kept in a log
     before it is automatically removed.

     If an application changes the value of nlmConfigGlobalAgeOut,
     Notifications older than the new time MAY be discarded to meet the
     new time.

     A value of 0 means no age out.

     Please be aware that contention between multiple managers
     trying to set this object to different values MAY affect the
     reliability and completeness of data seen by each manager."
    DEFVAL { 1440 }  -- 24 hours
    ::= { nlmConfig 2 }

--
-- Basic Log Configuration Table
--

nlmConfigLogTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF NlmConfigLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "A table of logging control entries."
    ::= { nlmConfig 3 }

nlmConfigLogEntry OBJECT-TYPE
    SYNTAX      NlmConfigLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "A logging control entry.  Depending on the entry's storage type
     entries may be supplied by the system or created and deleted by
     applications using nlmConfigLogEntryStatus."
    INDEX      { nlmLogName }
    ::= { nlmConfigLogTable 1 }

NlmConfigLogEntry ::= SEQUENCE {
    nlmLogName           SnmpAdminString,
    nlmConfigLogFilterName    SnmpAdminString,
    nlmConfigLogEntryLimit    Unsigned32,
    nlmConfigLogAdminStatus   INTEGER,
    nlmConfigLogOperStatus    INTEGER,
    nlmConfigLogStorageType   StorageType,
    nlmConfigLogEntryStatus   RowStatus
    }

nlmLogName OBJECT-TYPE
    SYNTAX     SnmpAdminString (SIZE(0..32))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
     "The name of the log.

     An implementation may allow multiple named logs, up to some
     implementation-specific limit (which may be none).  A
     zero-length log name is reserved for creation and deletion by
     the managed system, and MUST be used as the default log name by
     systems that do not support named logs."
    ::= { nlmConfigLogEntry 1 }

nlmConfigLogFilterName OBJECT-TYPE
    SYNTAX     SnmpAdminString (SIZE(0..32))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
     "A value of snmpNotifyFilterProfileName as used as an index
     into the snmpNotifyFilterTable in the SNMP Notification MIB,
     specifying the locally or remotely originated Notifications
     to be filtered out and not logged in this log.

     A zero-length value or a name that does not identify an
     existing entry in snmpNotifyFilterTable indicate no
     Notifications are to be logged in this log."
    DEFVAL { ''H }
    ::= { nlmConfigLogEntry 2 }

nlmConfigLogEntryLimit OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
     "The maximum number of notification entries that can be held in
     nlmLogTable for this named log.  A particular setting does not
     guarantee that that much data can be held.

     If an application changes the limit while there are
     Notifications in the log, the oldest Notifications are discarded
     to bring the log down to the new limit.

     A value of 0 indicates no limit.

     Please be aware that contention between multiple managers
     trying to set this object to different values MAY affect the
     reliability and completeness of data seen by each manager."
    DEFVAL { 0 }
    ::= { nlmConfigLogEntry 3 }

nlmConfigLogAdminStatus OBJECT-TYPE
    SYNTAX     INTEGER { enabled(1), disabled(2) }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
     "Control to enable or disable the log without otherwise
     disturbing the log's entry.

     Please be aware that contention between multiple managers
     trying to set this object to different values MAY affect the
     reliability and completeness of data seen by each manager."
    DEFVAL { enabled }
    ::= { nlmConfigLogEntry 4 }

nlmConfigLogOperStatus OBJECT-TYPE
    SYNTAX     INTEGER { disabled(1), operational(2), noFilter(3) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
     "The operational status of this log:

          disabled  administratively disabled

          operational    administratively enabled and working

          noFilter  administratively enabled but either
                    nlmConfigLogFilterName is zero length
                    or does not name an existing entry in
                    snmpNotifyFilterTable"
    ::= { nlmConfigLogEntry 5 }

nlmConfigLogStorageType OBJECT-TYPE
    SYNTAX     StorageType
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
     "The storage type of this conceptual row."
    ::= { nlmConfigLogEntry 6 }

nlmConfigLogEntryStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
     "Control for creating and deleting entries.  Entries may be
     modified while active.

     For non-null-named logs, the managed system records the security
     credentials from the request that sets nlmConfigLogStatus
     to 'active' and uses that identity to apply access control to
     the objects in the Notification to decide if that Notification
     may be logged."
    ::= { nlmConfigLogEntry 7 }

--
-- Statistics Section
--

nlmStatsGlobalNotificationsLogged OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "notifications"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The number of Notifications put into the nlmLogTable.  This
     counts a Notification once for each log entry, so a Notification
      put into multiple logs is counted multiple times."
    ::= { nlmStats 1 }

nlmStatsGlobalNotificationsBumped OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "notifications"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The number of log entries discarded to make room for a new entry
     due to lack of resources or the value of nlmConfigGlobalEntryLimit
     or nlmConfigLogEntryLimit.  This does not include entries discarded
     due to the value of nlmConfigGlobalAgeOut."
    ::= { nlmStats 2 }

--
-- Log Statistics Table
--

nlmStatsLogTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF NlmStatsLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "A table of Notification log statistics entries."
    ::= { nlmStats 3 }

nlmStatsLogEntry OBJECT-TYPE
    SYNTAX      NlmStatsLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "A Notification log statistics entry."
    AUGMENTS { nlmConfigLogEntry }
    ::= { nlmStatsLogTable 1 }

NlmStatsLogEntry ::= SEQUENCE {
    nlmStatsLogNotificationsLogged Counter32,
    nlmStatsLogNotificationsBumped Counter32
}

nlmStatsLogNotificationsLogged OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "notifications"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The number of Notifications put in this named log."
    ::= { nlmStatsLogEntry 1 }

nlmStatsLogNotificationsBumped OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "notifications"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The number of log entries discarded from this named log to make
     room for a new entry due to lack of resources or the value of
     nlmConfigGlobalEntryLimit or nlmConfigLogEntryLimit.  This does not
     include entries discarded due to the value of
     nlmConfigGlobalAgeOut."
    ::= { nlmStatsLogEntry 2 }

--
-- Log Section
--

--
-- Log Table

--

nlmLogTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF NlmLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "A table of Notification log entries.

     It is an implementation-specific matter whether entries in this
     table are preserved across initializations of the management
     system.  In general one would expect that they are not.

     Note that keeping entries across initializations of the
     management system leads to some confusion with counters and
     TimeStamps, since both of those are based on sysUpTime, which
     resets on management initialization.  In this situation,
     counters apply only after the reset and nlmLogTime for entries
     made before the reset MUST be set to 0."
    ::= { nlmLog 1 }

nlmLogEntry OBJECT-TYPE
    SYNTAX      NlmLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "A Notification log entry.

     Entries appear in this table when Notifications occur and pass
     filtering by nlmConfigLogFilterName and access control.  They are
     removed to make way for new entries due to lack of resources or
     the values of nlmConfigGlobalEntryLimit, nlmConfigGlobalAgeOut, or
     nlmConfigLogEntryLimit.

     If adding an entry would exceed nlmConfigGlobalEntryLimit or system
     resources in general, the oldest entry in any log SHOULD be removed
     to make room for the new one.

     If adding an entry would exceed nlmConfigLogEntryLimit the oldest
     entry in that log SHOULD be removed to make room for the new one.

     Before the managed system puts a locally-generated Notification
     into a non-null-named log it assures that the creator of the log
     has access to the information in the Notification.  If not it
     does not log that Notification in that log."
    INDEX       { nlmLogName, nlmLogIndex }
    ::= { nlmLogTable 1 }

NlmLogEntry ::= SEQUENCE {
    nlmLogIndex                Unsigned32,
    nlmLogTime                 TimeStamp,
    nlmLogDateAndTime          DateAndTime,
    nlmLogEngineID             SnmpEngineID,
    nlmLogEngineTAddress       TAddress,
    nlmLogEngineTDomain        TDomain,
    nlmLogContextEngineID      SnmpEngineID,
    nlmLogContextName          SnmpAdminString,
    nlmLogNotificationID       OBJECT IDENTIFIER
}

nlmLogIndex OBJECT-TYPE
    SYNTAX     Unsigned32 (1..4294967295)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
     "A monotonically increasing integer for the sole purpose of
     indexing entries within the named log.  When it reaches the
     maximum value, an extremely unlikely event, the agent wraps the
     value back to 1."
    ::= { nlmLogEntry 1 }

nlmLogTime OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value of sysUpTime when the entry was placed in the log. If
     the entry occurred before the most recent management system
     initialization this object value MUST be set to zero."
    ::= { nlmLogEntry 2 }

nlmLogDateAndTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The local date and time when the entry was logged, instantiated
     only by systems that have date and time capability."
    ::= { nlmLogEntry 3 }

nlmLogEngineID OBJECT-TYPE
    SYNTAX      SnmpEngineID
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The identification of the SNMP engine at which the Notification

     originated.

     If the log can contain Notifications from only one engine
     or the Trap is in SNMPv1 format, this object is a zero-length
     string."
    ::= { nlmLogEntry 4 }

nlmLogEngineTAddress OBJECT-TYPE
    SYNTAX      TAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The transport service address of the SNMP engine from which the
     Notification was received, formatted according to the corresponding
     value of nlmLogEngineTDomain. This is used to identify the source
     of an SNMPv1 trap, since an nlmLogEngineId cannot be extracted
     from the SNMPv1 trap pdu.

     This object MUST always be instantiated, even if the log
     can contain Notifications from only one engine.

     Please be aware that the nlmLogEngineTAddress may not uniquely
     identify the SNMP engine from which the Notification was received.
     For example, if an SNMP engine uses DHCP or NAT to obtain
     ip addresses, the address it uses may be shared with other
     network devices, and hence will not uniquely identify the
     SNMP engine."
    ::= { nlmLogEntry 5 }

nlmLogEngineTDomain OBJECT-TYPE
    SYNTAX      TDomain
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "Indicates the kind of transport service by which a Notification
     was received from an SNMP engine. nlmLogEngineTAddress contains
     the transport service address of the SNMP engine from which
     this Notification was received.

     Possible values for this object are presently found in the
     Transport Mappings for SNMPv2 document (RFC 1906 [8])."
    ::= { nlmLogEntry 6 }

nlmLogContextEngineID OBJECT-TYPE
    SYNTAX      SnmpEngineID
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "If the Notification was received in a protocol which has a
      contextEngineID element like SNMPv3, this object has that value.
      Otherwise its value is a zero-length string."
     ::= { nlmLogEntry 7 }

nlmLogContextName OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The name of the SNMP MIB context from which the Notification came.
     For SNMPv1 Traps this is the community string from the Trap."
    ::= { nlmLogEntry 8 }

nlmLogNotificationID OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The NOTIFICATION-TYPE object identifier of the Notification that
     occurred."
    ::= { nlmLogEntry 9 }

--
-- Log Variable Table
--

nlmLogVariableTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF NlmLogVariableEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "A table of variables to go with Notification log entries."
    ::= { nlmLog 2 }

nlmLogVariableEntry OBJECT-TYPE
    SYNTAX      NlmLogVariableEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "A Notification log entry variable.

     Entries appear in this table when there are variables in
     the varbind list of a Notification in nlmLogTable."
    INDEX       { nlmLogName, nlmLogIndex, nlmLogVariableIndex }
    ::= { nlmLogVariableTable 1 }

NlmLogVariableEntry ::= SEQUENCE {

    nlmLogVariableIndex              Unsigned32,
    nlmLogVariableID                 OBJECT IDENTIFIER,
    nlmLogVariableValueType          INTEGER,
    nlmLogVariableCounter32Val       Counter32,
    nlmLogVariableUnsigned32Val      Unsigned32,
    nlmLogVariableTimeTicksVal       TimeTicks,
    nlmLogVariableInteger32Val       Integer32,
    nlmLogVariableOctetStringVal     OCTET STRING,
    nlmLogVariableIpAddressVal       IpAddress,
    nlmLogVariableOidVal             OBJECT IDENTIFIER,
    nlmLogVariableCounter64Val       Counter64,
    nlmLogVariableOpaqueVal          Opaque
}

nlmLogVariableIndex OBJECT-TYPE
    SYNTAX     Unsigned32 (1..4294967295)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
     "A monotonically increasing integer, starting at 1 for a given
     nlmLogIndex, for indexing variables within the logged
     Notification."
    ::= { nlmLogVariableEntry 1 }

nlmLogVariableID OBJECT-TYPE
    SYNTAX     OBJECT IDENTIFIER
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
     "The variable's object identifier."
    ::= { nlmLogVariableEntry 2 }

nlmLogVariableValueType OBJECT-TYPE
    SYNTAX      INTEGER { counter32(1), unsigned32(2), timeTicks(3),
                 integer32(4), ipAddress(5), octetString(6),
                 objectId(7), counter64(8), opaque(9) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The type of the value.  One and only one of the value
     objects that follow must be instantiated, based on this type."
    ::= { nlmLogVariableEntry 3 }

nlmLogVariableCounter32Val OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when nlmLogVariableType is 'counter32'."
    ::= { nlmLogVariableEntry 4 }

nlmLogVariableUnsigned32Val OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when nlmLogVariableType is 'unsigned32'."
    ::= { nlmLogVariableEntry 5 }

nlmLogVariableTimeTicksVal OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when nlmLogVariableType is 'timeTicks'."
    ::= { nlmLogVariableEntry 6 }

nlmLogVariableInteger32Val OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when nlmLogVariableType is 'integer32'."
    ::= { nlmLogVariableEntry 7 }

nlmLogVariableOctetStringVal OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when nlmLogVariableType is 'octetString'."
    ::= { nlmLogVariableEntry 8 }

nlmLogVariableIpAddressVal OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when nlmLogVariableType is 'ipAddress'.
     Although this seems to be unfriendly for IPv6, we
     have to recognize that there are a number of older
     MIBs that do contain an IPv4 format address, known
     as IpAddress.

     IPv6 addresses are represented using TAddress or
     InetAddress, and so the underlying datatype is

     OCTET STRING, and their value would be stored in
     the nlmLogVariableOctetStringVal column."
    ::= { nlmLogVariableEntry 9 }

nlmLogVariableOidVal OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when nlmLogVariableType is 'objectId'."
    ::= { nlmLogVariableEntry 10 }

nlmLogVariableCounter64Val OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when nlmLogVariableType is 'counter64'."
    ::= { nlmLogVariableEntry 11 }

nlmLogVariableOpaqueVal OBJECT-TYPE
    SYNTAX      Opaque
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when nlmLogVariableType is 'opaque'."
    ::= { nlmLogVariableEntry 12 }

--
-- Conformance
--

notificationLogMIBConformance OBJECT IDENTIFIER ::=
    { notificationLogMIB 3 }
notificationLogMIBCompliances OBJECT IDENTIFIER ::=
    { notificationLogMIBConformance 1 }
notificationLogMIBGroups      OBJECT IDENTIFIER ::=
    { notificationLogMIBConformance 2 }

-- Compliance

notificationLogMIBCompliance MODULE-COMPLIANCE
     STATUS current
     DESCRIPTION
          "The compliance statement for entities which implement
          the Notification Log MIB."
     MODULE    -- this module

          MANDATORY-GROUPS {
               notificationLogConfigGroup,
               notificationLogStatsGroup,
               notificationLogLogGroup
          }

     OBJECT nlmConfigGlobalEntryLimit
         SYNTAX Unsigned32 (0..4294967295)
         MIN-ACCESS read-only
         DESCRIPTION
          "Implementations may choose a limit and not allow it to be
          changed or may enforce an upper or lower bound on the
          limit."

     OBJECT nlmConfigLogEntryLimit
         SYNTAX Unsigned32 (0..4294967295)
         MIN-ACCESS read-only
         DESCRIPTION
          "Implementations may choose a limit and not allow it to be
          changed or may enforce an upper or lower bound on the
          limit."

     OBJECT nlmConfigLogEntryStatus
         MIN-ACCESS read-only
         DESCRIPTION
          "Implementations may disallow the creation of named logs."

     GROUP notificationLogDateGroup
         DESCRIPTION
          "This group is mandatory on systems that keep wall clock
          date and time and should not be implemented on systems that
          do not have a wall clock date."
     ::= { notificationLogMIBCompliances 1 }

-- Units of Conformance

notificationLogConfigGroup OBJECT-GROUP
     OBJECTS {
          nlmConfigGlobalEntryLimit,
          nlmConfigGlobalAgeOut,
          nlmConfigLogFilterName,
          nlmConfigLogEntryLimit,
          nlmConfigLogAdminStatus,
          nlmConfigLogOperStatus,
          nlmConfigLogStorageType,
          nlmConfigLogEntryStatus
     }
     STATUS current
     DESCRIPTION
          "Notification log configuration management."
     ::= { notificationLogMIBGroups 1 }

notificationLogStatsGroup OBJECT-GROUP
     OBJECTS {
          nlmStatsGlobalNotificationsLogged,
          nlmStatsGlobalNotificationsBumped,
          nlmStatsLogNotificationsLogged,
          nlmStatsLogNotificationsBumped
     }
     STATUS current
     DESCRIPTION
          "Notification log statistics."
     ::= { notificationLogMIBGroups 2 }

notificationLogLogGroup OBJECT-GROUP
     OBJECTS {
          nlmLogTime,
          nlmLogEngineID,
          nlmLogEngineTAddress,
          nlmLogEngineTDomain,
          nlmLogContextEngineID,
          nlmLogContextName,
          nlmLogNotificationID,
          nlmLogVariableID,
          nlmLogVariableValueType,
          nlmLogVariableCounter32Val,
          nlmLogVariableUnsigned32Val,
          nlmLogVariableTimeTicksVal,
          nlmLogVariableInteger32Val,
          nlmLogVariableOctetStringVal,
          nlmLogVariableIpAddressVal,
          nlmLogVariableOidVal,
          nlmLogVariableCounter64Val,
          nlmLogVariableOpaqueVal
     }
     STATUS current
     DESCRIPTION
          "Notification log data."
     ::= { notificationLogMIBGroups 3 }

notificationLogDateGroup OBJECT-GROUP
     OBJECTS {
          nlmLogDateAndTime
     }
     STATUS current
     DESCRIPTION
          "Conditionally mandatory notification log data.
          This group is mandatory on systems that keep wall
          clock date and time and should not be implemented
          on systems that do not have a wall clock date."
     ::= { notificationLogMIBGroups 4 }

END
SNMPv2-SMI DEFINITIONS ::= BEGIN

-- the path to the root

org            OBJECT IDENTIFIER ::= { iso 3 }  --  "iso" = 1
dod            OBJECT IDENTIFIER ::= { org 6 }
internet       OBJECT IDENTIFIER ::= { dod 1 }

directory      OBJECT IDENTIFIER ::= { internet 1 }

mgmt           OBJECT IDENTIFIER ::= { internet 2 }
mib-2          OBJECT IDENTIFIER ::= { mgmt 1 }
transmission   OBJECT IDENTIFIER ::= { mib-2 10 }

experimental   OBJECT IDENTIFIER ::= { internet 3 }

private        OBJECT IDENTIFIER ::= { internet 4 }
enterprises    OBJECT IDENTIFIER ::= { private 1 }

security       OBJECT IDENTIFIER ::= { internet 5 }

snmpV2         OBJECT IDENTIFIER ::= { internet 6 }

-- transport domains
snmpDomains    OBJECT IDENTIFIER ::= { snmpV2 1 }

-- transport proxies
snmpProxys     OBJECT IDENTIFIER ::= { snmpV2 2 }

-- module identities
snmpModules    OBJECT IDENTIFIER ::= { snmpV2 3 }

-- Extended UTCTime, to allow dates with four-digit years
-- (Note that this definition of ExtUTCTime is not to be IMPORTed
--  by MIB modules.)
ExtUTCTime ::= OCTET STRING(SIZE(11 | 13))
    -- format is YYMMDDHHMMZ or YYYYMMDDHHMMZ

    --   where: YY   - last two digits of year (only years
    --                 between 1900-1999)
    --          YYYY - last four digits of the year (any year)
    --          MM   - month (01 through 12)
    --          DD   - day of month (01 through 31)
    --          HH   - hours (00 through 23)
    --          MM   - minutes (00 through 59)
    --          Z    - denotes GMT (the ASCII character Z)
    --
    -- For example, "9502192015Z" and "199502192015Z" represent
    -- 8:15pm GMT on 19 February 1995. Years after 1999 must use
    -- the four digit year format. Years 1900-1999 may use the
    -- two or four digit format.

-- definitions for information modules

MODULE-IDENTITY MACRO ::=
BEGIN
    TYPE NOTATION ::=
                  "LAST-UPDATED" value(Update ExtUTCTime)
                  "ORGANIZATION" Text
                  "CONTACT-INFO" Text
                  "DESCRIPTION" Text
                  RevisionPart

    VALUE NOTATION ::=
                  value(VALUE OBJECT IDENTIFIER)

    RevisionPart ::=
                  Revisions
                | empty
    Revisions ::=
                  Revision
                | Revisions Revision
    Revision ::=
                  "REVISION" value(Update ExtUTCTime)
                  "DESCRIPTION" Text

    -- a character string as defined in section 3.1.1
    Text ::= value(IA5String)
END

OBJECT-IDENTITY MACRO ::=
BEGIN
    TYPE NOTATION ::=
                  "STATUS" Status
                  "DESCRIPTION" Text

                  ReferPart

    VALUE NOTATION ::=
                  value(VALUE OBJECT IDENTIFIER)

    Status ::=
                  "current"
                | "deprecated"
                | "obsolete"

    ReferPart ::=
                  "REFERENCE" Text
                | empty

    -- a character string as defined in section 3.1.1
    Text ::= value(IA5String)
END

-- names of objects
-- (Note that these definitions of ObjectName and NotificationName
--  are not to be IMPORTed by MIB modules.)

ObjectName ::=
    OBJECT IDENTIFIER

NotificationName ::=
    OBJECT IDENTIFIER

-- syntax of objects

-- the "base types" defined here are:
--   3 built-in ASN.1 types: INTEGER, OCTET STRING, OBJECT IDENTIFIER
--   8 application-defined types: Integer32, IpAddress, Counter32,
--              Gauge32, Unsigned32, TimeTicks, Opaque, and Counter64

ObjectSyntax ::=
    CHOICE {
        simple
            SimpleSyntax,
          -- note that SEQUENCEs for conceptual tables and
          -- rows are not mentioned here...

        application-wide
            ApplicationSyntax
    }

-- built-in ASN.1 types

SimpleSyntax ::=
    CHOICE {
        -- INTEGERs with a more restrictive range
        -- may also be used
        integer-value               -- includes Integer32
            INTEGER (-2147483648..2147483647),
        -- OCTET STRINGs with a more restrictive size
        -- may also be used
        string-value
            OCTET STRING (SIZE (0..65535)),
        objectID-value
            OBJECT IDENTIFIER
    }

-- indistinguishable from INTEGER, but never needs more than
-- 32-bits for a two's complement representation
Integer32 ::=
        INTEGER (-2147483648..2147483647)

-- application-wide types

ApplicationSyntax ::=
    CHOICE {
        ipAddress-value
            IpAddress,
        counter-value
            Counter32,
        timeticks-value
            TimeTicks,
        arbitrary-value
            Opaque,
        big-counter-value
            Counter64,
        unsigned-integer-value  -- includes Gauge32
            Unsigned32
    }

-- in network-byte order

-- (this is a tagged type for historical reasons)
IpAddress ::=
    [APPLICATION 0]
        IMPLICIT OCTET STRING (SIZE (4))

-- this wraps
Counter32 ::=
    [APPLICATION 1]
        IMPLICIT INTEGER (0..4294967295)

-- this doesn't wrap
Gauge32 ::=
    [APPLICATION 2]
        IMPLICIT INTEGER (0..4294967295)

-- an unsigned 32-bit quantity
-- indistinguishable from Gauge32
Unsigned32 ::=
    [APPLICATION 2]
        IMPLICIT INTEGER (0..4294967295)

-- hundredths of seconds since an epoch
TimeTicks ::=
    [APPLICATION 3]
        IMPLICIT INTEGER (0..4294967295)

-- for backward-compatibility only
Opaque ::=
    [APPLICATION 4]
        IMPLICIT OCTET STRING

-- for counters that wrap in less than one hour with only 32 bits
Counter64 ::=
    [APPLICATION 6]
        IMPLICIT INTEGER (0..18446744073709551615)

-- definition for objects

OBJECT-TYPE MACRO ::=
BEGIN
    TYPE NOTATION ::=
                  "SYNTAX" Syntax
                  UnitsPart
                  "MAX-ACCESS" Access
                  "STATUS" Status
                  "DESCRIPTION" Text
                  ReferPart

                  IndexPart
                  DefValPart

    VALUE NOTATION ::=
                  value(VALUE ObjectName)

    Syntax ::=   -- Must be one of the following:
                       -- a base type (or its refinement),
                       -- a textual convention (or its refinement), or
                       -- a BITS pseudo-type
                   type
                | "BITS" "{" NamedBits "}"

    NamedBits ::= NamedBit
                | NamedBits "," NamedBit

    NamedBit ::=  identifier "(" number ")" -- number is nonnegative

    UnitsPart ::=
                  "UNITS" Text
                | empty

    Access ::=
                  "not-accessible"
                | "accessible-for-notify"
                | "read-only"
                | "read-write"
                | "read-create"

    Status ::=
                  "current"
                | "deprecated"
                | "obsolete"

    ReferPart ::=
                  "REFERENCE" Text
                | empty

    IndexPart ::=
                  "INDEX"    "{" IndexTypes "}"
                | "AUGMENTS" "{" Entry      "}"
                | empty
    IndexTypes ::=
                  IndexType
                | IndexTypes "," IndexType
    IndexType ::=
                  "IMPLIED" Index
                | Index

    Index ::=
                    -- use the SYNTAX value of the
                    -- correspondent OBJECT-TYPE invocation
                  value(ObjectName)
    Entry ::=
                    -- use the INDEX value of the
                    -- correspondent OBJECT-TYPE invocation
                  value(ObjectName)

    DefValPart ::= "DEFVAL" "{" Defvalue "}"
                | empty

    Defvalue ::=  -- must be valid for the type specified in
                  -- SYNTAX clause of same OBJECT-TYPE macro
                  value(ObjectSyntax)
                | "{" BitsValue "}"

    BitsValue ::= BitNames
                | empty

    BitNames ::=  BitName
                | BitNames "," BitName

    BitName ::= identifier

    -- a character string as defined in section 3.1.1
    Text ::= value(IA5String)
END

-- definitions for notifications

NOTIFICATION-TYPE MACRO ::=
BEGIN
    TYPE NOTATION ::=
                  ObjectsPart
                  "STATUS" Status
                  "DESCRIPTION" Text
                  ReferPart

    VALUE NOTATION ::=
                  value(VALUE NotificationName)

    ObjectsPart ::=
                  "OBJECTS" "{" Objects "}"
                | empty
    Objects ::=
                  Object

                | Objects "," Object
    Object ::=
                  value(ObjectName)

    Status ::=
                  "current"
                | "deprecated"
                | "obsolete"

    ReferPart ::=
                  "REFERENCE" Text
                | empty

    -- a character string as defined in section 3.1.1
    Text ::= value(IA5String)
END

-- definitions of administrative identifiers

zeroDotZero    OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A value used for null identifiers."
    ::= { 0 0 }

END
SNMP-VIEW-BASED-ACM-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-COMPLIANCE, OBJECT-GROUP       FROM SNMPv2-CONF
    MODULE-IDENTITY, OBJECT-TYPE,
    snmpModules                           FROM SNMPv2-SMI
    TestAndIncr,
    RowStatus, StorageType                FROM SNMPv2-TC
    SnmpAdminString,
    SnmpSecurityLevel,
    SnmpSecurityModel                     FROM SNMP-FRAMEWORK-MIB;

snmpVacmMIB       MODULE-IDENTITY
    LAST-UPDATED "200210160000Z"          -- 16 Oct 2002, midnight
    ORGANIZATION "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:  Bert Wijnen
                              Lucent Technologies
                  postal:     Schagen 33
                              3461 GL Linschoten
                              Netherlands
                  email:      bwijnen@lucent.com
                  phone:      +31-348-480-685

                  Co-editor:  Randy Presuhn
                              BMC Software, Inc.

                  postal:     2141 North First Street
                              San Jose, CA 95131
                              USA
                  email:      randy_presuhn@bmc.com
                  phone:      +1 408-546-1006

                  Co-editor:  Keith McCloghrie
                              Cisco Systems, Inc.
                  postal:     170 West Tasman Drive
                              San Jose, CA  95134-1706
                              USA
                  email:      kzm@cisco.com
                  phone:      +1-408-526-5260
                 "
    DESCRIPTION  "The management information definitions for the
                  View-based Access Control Model for SNMP.

                  Copyright (C) The Internet Society (2002). This
                  version of this MIB module is part of RFC 3415;
                  see the RFC itself for full legal notices.
                 "
--  Revision history

    REVISION     "200210160000Z"          -- 16 Oct 2002, midnight
    DESCRIPTION  "Clarifications, published as RFC3415"

    REVISION     "199901200000Z"          -- 20 Jan 1999, midnight
    DESCRIPTION  "Clarifications, published as RFC2575"

    REVISION     "199711200000Z"          -- 20 Nov 1997, midnight
    DESCRIPTION  "Initial version, published as RFC2275"
    ::= { snmpModules 16 }

-- Administrative assignments ****************************************

vacmMIBObjects      OBJECT IDENTIFIER ::= { snmpVacmMIB 1 }
vacmMIBConformance  OBJECT IDENTIFIER ::= { snmpVacmMIB 2 }

-- Information about Local Contexts **********************************

vacmContextTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF VacmContextEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The table of locally available contexts.

                 This table provides information to SNMP Command

                 Generator applications so that they can properly
                 configure the vacmAccessTable to control access to
                 all contexts at the SNMP entity.

                 This table may change dynamically if the SNMP entity
                 allows that contexts are added/deleted dynamically
                 (for instance when its configuration changes).  Such
                 changes would happen only if the management
                 instrumentation at that SNMP entity recognizes more
                 (or fewer) contexts.

                 The presence of entries in this table and of entries
                 in the vacmAccessTable are independent.  That is, a
                 context identified by an entry in this table is not
                 necessarily referenced by any entries in the
                 vacmAccessTable; and the context(s) referenced by an
                 entry in the vacmAccessTable does not necessarily
                 currently exist and thus need not be identified by an
                 entry in this table.

                 This table must be made accessible via the default
                 context so that Command Responder applications have
                 a standard way of retrieving the information.

                 This table is read-only.  It cannot be configured via
                 SNMP.
                "
    ::= { vacmMIBObjects 1 }

vacmContextEntry OBJECT-TYPE
    SYNTAX       VacmContextEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "Information about a particular context."
    INDEX       {
                  vacmContextName
                }
    ::= { vacmContextTable 1 }

VacmContextEntry ::= SEQUENCE
    {
        vacmContextName SnmpAdminString
    }

vacmContextName  OBJECT-TYPE
    SYNTAX       SnmpAdminString (SIZE(0..32))
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "A human readable name identifying a particular
                 context at a particular SNMP entity.

                 The empty contextName (zero length) represents the
                 default context.
                "
    ::= { vacmContextEntry 1 }

-- Information about Groups ******************************************

vacmSecurityToGroupTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF VacmSecurityToGroupEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "This table maps a combination of securityModel and
                 securityName into a groupName which is used to define
                 an access control policy for a group of principals.
                "
    ::= { vacmMIBObjects 2 }

vacmSecurityToGroupEntry OBJECT-TYPE
    SYNTAX       VacmSecurityToGroupEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "An entry in this table maps the combination of a
                 securityModel and securityName into a groupName.
                "
    INDEX       {
                  vacmSecurityModel,
                  vacmSecurityName
                }
    ::= { vacmSecurityToGroupTable 1 }

VacmSecurityToGroupEntry ::= SEQUENCE
    {
        vacmSecurityModel               SnmpSecurityModel,
        vacmSecurityName                SnmpAdminString,
        vacmGroupName                   SnmpAdminString,
        vacmSecurityToGroupStorageType  StorageType,
        vacmSecurityToGroupStatus       RowStatus
    }

vacmSecurityModel OBJECT-TYPE
    SYNTAX       SnmpSecurityModel(1..2147483647)
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The Security Model, by which the vacmSecurityName
                 referenced by this entry is provided.

                 Note, this object may not take the 'any' (0) value.
                "
    ::= { vacmSecurityToGroupEntry 1 }

vacmSecurityName OBJECT-TYPE
    SYNTAX       SnmpAdminString (SIZE(1..32))
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The securityName for the principal, represented in a
                 Security Model independent format, which is mapped by
                 this entry to a groupName.
                "
    ::= { vacmSecurityToGroupEntry 2 }

vacmGroupName    OBJECT-TYPE
    SYNTAX       SnmpAdminString (SIZE(1..32))
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION "The name of the group to which this entry (e.g., the
                 combination of securityModel and securityName)
                 belongs.

                 This groupName is used as index into the
                 vacmAccessTable to select an access control policy.
                 However, a value in this table does not imply that an
                 instance with the value exists in table vacmAccesTable.
                "
    ::= { vacmSecurityToGroupEntry 3 }

vacmSecurityToGroupStorageType 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 }
    ::= { vacmSecurityToGroupEntry 4 }

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

                 Until instances of all corresponding columns are
                 appropriately configured, the value of the

                 corresponding instance of the vacmSecurityToGroupStatus
                 column is 'notReady'.

                 In particular, a newly created row cannot be made
                 active until a value has been set for vacmGroupName.

                 The  RowStatus TC [RFC2579] requires that this
                 DESCRIPTION clause states under which circumstances
                 other objects in this row can be modified:

                 The value of this object has no effect on whether
                 other objects in this conceptual row can be modified.
                "
    ::= { vacmSecurityToGroupEntry 5 }

-- Information about Access Rights ***********************************

vacmAccessTable  OBJECT-TYPE
    SYNTAX       SEQUENCE OF VacmAccessEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The table of access rights for groups.

                 Each entry is indexed by a groupName, a contextPrefix,
                 a securityModel and a securityLevel.  To determine
                 whether access is allowed, one entry from this table
                 needs to be selected and the proper viewName from that
                 entry must be used for access control checking.

                 To select the proper entry, follow these steps:

                 1) the set of possible matches is formed by the
                    intersection of the following sets of entries:

                      the set of entries with identical vacmGroupName
                      the union of these two sets:
                       - the set with identical vacmAccessContextPrefix
                       - the set of entries with vacmAccessContextMatch
                         value of 'prefix' and matching
                         vacmAccessContextPrefix
                      intersected with the union of these two sets:
                       - the set of entries with identical
                         vacmSecurityModel
                       - the set of entries with vacmSecurityModel
                         value of 'any'
                      intersected with the set of entries with
                      vacmAccessSecurityLevel value less than or equal
                      to the requested securityLevel

                 2) if this set has only one member, we're done
                    otherwise, it comes down to deciding how to weight
                    the preferences between ContextPrefixes,
                    SecurityModels, and SecurityLevels as follows:
                    a) if the subset of entries with securityModel
                       matching the securityModel in the message is
                       not empty, then discard the rest.
                    b) if the subset of entries with
                       vacmAccessContextPrefix matching the contextName
                       in the message is not empty,
                       then discard the rest
                    c) discard all entries with ContextPrefixes shorter
                       than the longest one remaining in the set
                    d) select the entry with the highest securityLevel

                 Please note that for securityLevel noAuthNoPriv, all
                 groups are really equivalent since the assumption that
                 the securityName has been authenticated does not hold.
                "
    ::= { vacmMIBObjects 4 }

vacmAccessEntry  OBJECT-TYPE
    SYNTAX       VacmAccessEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "An access right configured in the Local Configuration
                 Datastore (LCD) authorizing access to an SNMP context.

                 Entries in this table can use an instance value for
                 object vacmGroupName even if no entry in table
                 vacmAccessSecurityToGroupTable has a corresponding
                 value for object vacmGroupName.
                "
    INDEX       { vacmGroupName,
                  vacmAccessContextPrefix,
                  vacmAccessSecurityModel,
                  vacmAccessSecurityLevel
                }
    ::= { vacmAccessTable 1 }

VacmAccessEntry ::= SEQUENCE
    {
        vacmAccessContextPrefix    SnmpAdminString,
        vacmAccessSecurityModel    SnmpSecurityModel,
        vacmAccessSecurityLevel    SnmpSecurityLevel,
        vacmAccessContextMatch     INTEGER,
        vacmAccessReadViewName     SnmpAdminString,
        vacmAccessWriteViewName    SnmpAdminString,
        vacmAccessNotifyViewName   SnmpAdminString,
        vacmAccessStorageType      StorageType,
        vacmAccessStatus           RowStatus
    }

vacmAccessContextPrefix OBJECT-TYPE
    SYNTAX       SnmpAdminString (SIZE(0..32))
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "In order to gain the access rights allowed by this
                 conceptual row, a contextName must match exactly
                 (if the value of vacmAccessContextMatch is 'exact')
                 or partially (if the value of vacmAccessContextMatch
                 is 'prefix') to the value of the instance of this
                 object.
                "
    ::= { vacmAccessEntry 1 }

vacmAccessSecurityModel OBJECT-TYPE
    SYNTAX       SnmpSecurityModel
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "In order to gain the access rights allowed by this
                 conceptual row, this securityModel must be in use.
                "
    ::= { vacmAccessEntry 2 }

vacmAccessSecurityLevel OBJECT-TYPE
    SYNTAX       SnmpSecurityLevel
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The minimum level of security required in order to
                 gain the access rights allowed by this conceptual
                 row.  A securityLevel of noAuthNoPriv is less than
                 authNoPriv which in turn is less than authPriv.

                 If multiple entries are equally indexed except for
                 this vacmAccessSecurityLevel index, then the entry
                 which has the highest value for
                 vacmAccessSecurityLevel is selected.
                "
    ::= { vacmAccessEntry 3 }

vacmAccessContextMatch OBJECT-TYPE
    SYNTAX       INTEGER
                { exact (1), -- exact match of prefix and contextName
                  prefix (2) -- Only match to the prefix
                }
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION "If the value of this object is exact(1), then all
                 rows where the contextName exactly matches
                 vacmAccessContextPrefix are selected.

                 If the value of this object is prefix(2), then all
                 rows where the contextName whose starting octets
                 exactly match vacmAccessContextPrefix are selected.
                 This allows for a simple form of wildcarding.
                "
    DEFVAL      { exact }
    ::= { vacmAccessEntry 4 }

vacmAccessReadViewName OBJECT-TYPE
    SYNTAX       SnmpAdminString (SIZE(0..32))
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION "The value of an instance of this object identifies
                 the MIB view of the SNMP context to which this
                 conceptual row authorizes read access.

                 The identified MIB view is that one for which the
                 vacmViewTreeFamilyViewName has the same value as the
                 instance of this object; if the value is the empty
                 string or if there is no active MIB view having this
                 value of vacmViewTreeFamilyViewName, then no access
                 is granted.
                "
    DEFVAL      { ''H }   -- the empty string
    ::= { vacmAccessEntry 5 }

vacmAccessWriteViewName OBJECT-TYPE
    SYNTAX       SnmpAdminString (SIZE(0..32))
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION "The value of an instance of this object identifies
                 the MIB view of the SNMP context to which this
                 conceptual row authorizes write access.

                 The identified MIB view is that one for which the
                 vacmViewTreeFamilyViewName has the same value as the
                 instance of this object; if the value is the empty
                 string or if there is no active MIB view having this
                 value of vacmViewTreeFamilyViewName, then no access
                 is granted.
                "
    DEFVAL      { ''H }   -- the empty string
    ::= { vacmAccessEntry 6 }

vacmAccessNotifyViewName OBJECT-TYPE
    SYNTAX       SnmpAdminString (SIZE(0..32))
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION "The value of an instance of this object identifies
                 the MIB view of the SNMP context to which this
                 conceptual row authorizes access for notifications.

                 The identified MIB view is that one for which the
                 vacmViewTreeFamilyViewName has the same value as the
                 instance of this object; if the value is the empty
                 string or if there is no active MIB view having this
                 value of vacmViewTreeFamilyViewName, then no access
                 is granted.
                "
    DEFVAL      { ''H }   -- the empty string
    ::= { vacmAccessEntry 7 }

vacmAccessStorageType 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 }
    ::= { vacmAccessEntry 8 }

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

                 The  RowStatus TC [RFC2579] requires that this
                 DESCRIPTION clause states under which circumstances
                 other objects in this row can be modified:

                 The value of this object has no effect on whether
                 other objects in this conceptual row can be modified.
                "
    ::= { vacmAccessEntry 9 }

-- Information about MIB views ***************************************

-- Support for instance-level granularity is optional.
--
-- In some implementations, instance-level access control
-- granularity may come at a high performance cost.  Managers
-- should avoid requesting such configurations unnecessarily.

vacmMIBViews     OBJECT IDENTIFIER ::= { vacmMIBObjects 5 }

vacmViewSpinLock OBJECT-TYPE
    SYNTAX       TestAndIncr
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "An advisory lock used to allow cooperating SNMP
                 Command Generator applications to coordinate their
                 use of the Set operation in creating or modifying
                 views.

                 When creating a new view or altering an existing
                 view, it is important to understand the potential
                 interactions with other uses of the view.  The
                 vacmViewSpinLock should be retrieved.  The name of
                 the view to be created should be determined to be
                 unique by the SNMP Command Generator application by
                 consulting the vacmViewTreeFamilyTable.  Finally,
                 the named view may be created (Set), including the
                 advisory lock.
                 If another SNMP Command Generator application has
                 altered the views in the meantime, then the spin
                 lock's value will have changed, and so this creation
                 will fail because it will specify the wrong value for
                 the spin lock.

                 Since this is an advisory lock, the use of this lock
                 is not enforced.
                "
    ::= { vacmMIBViews 1 }

vacmViewTreeFamilyTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF VacmViewTreeFamilyEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "Locally held information about families of subtrees
                 within MIB views.

                 Each MIB view is defined by two sets of view subtrees:
                   - the included view subtrees, and
                   - the excluded view subtrees.
                 Every such view subtree, both the included and the

                 excluded ones, 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 vacmViewTreeFamilyType in the entry whose
                 value of vacmViewTreeFamilySubtree has the most
                 sub-identifiers.  If multiple entries match and have
                 the same number of sub-identifiers (when wildcarding
                 is specified with the value of vacmViewTreeFamilyMask),
                 then the lexicographically greatest instance of
                 vacmViewTreeFamilyType 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 vacmViewTreeFamilySubtree for the entry,
                 and each sub-identifier in the value of
                 vacmViewTreeFamilySubtree matches its corresponding
                 sub-identifier in X.  Two sub-identifiers match
                 either if the corresponding bit of the value of
                 vacmViewTreeFamilyMask for the entry is zero (the
                 'wild card' value), or if they are equal.

                 A 'family' of subtrees is the set of subtrees defined
                 by a particular combination of values of
                 vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask.

                 In the case where no 'wild card' is defined in the
                 vacmViewTreeFamilyMask, the family of subtrees reduces
                 to a single subtree.

                 When creating or changing MIB views, an SNMP Command
                 Generator application should utilize the
                 vacmViewSpinLock to try to avoid collisions.  See
                 DESCRIPTION clause of vacmViewSpinLock.

                 When creating MIB views, it is strongly advised that
                 first the 'excluded' vacmViewTreeFamilyEntries are
                 created and then the 'included' entries.

                 When deleting MIB views, it is strongly advised that
                 first the 'included' vacmViewTreeFamilyEntries are

                 deleted and then the 'excluded' entries.

                 If a create for an entry for instance-level access
                 control is received and the implementation does not
                 support instance-level granularity, then an
                 inconsistentName error must be returned.
                "
    ::= { vacmMIBViews 2 }

vacmViewTreeFamilyEntry OBJECT-TYPE
    SYNTAX       VacmViewTreeFamilyEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "Information on a particular family of view subtrees
                 included in or excluded from a particular SNMP
                 context's 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
                 vacmViewTreeFamilyTable.

                 If no conceptual rows exist in this table for a given
                 MIB view (viewName), that view may be thought of as
                 consisting of the empty set of view subtrees.
                "
    INDEX       { vacmViewTreeFamilyViewName,
                  vacmViewTreeFamilySubtree
                }
    ::= { vacmViewTreeFamilyTable 1 }

VacmViewTreeFamilyEntry ::= SEQUENCE
    {
        vacmViewTreeFamilyViewName     SnmpAdminString,
        vacmViewTreeFamilySubtree      OBJECT IDENTIFIER,
        vacmViewTreeFamilyMask         OCTET STRING,
        vacmViewTreeFamilyType         INTEGER,
        vacmViewTreeFamilyStorageType  StorageType,
        vacmViewTreeFamilyStatus       RowStatus
    }

vacmViewTreeFamilyViewName OBJECT-TYPE
    SYNTAX       SnmpAdminString (SIZE(1..32))
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The human readable name for a family of view subtrees.
                "
    ::= { vacmViewTreeFamilyEntry 1 }

vacmViewTreeFamilySubtree OBJECT-TYPE
    SYNTAX       OBJECT IDENTIFIER
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The MIB subtree which when combined with the
                 corresponding instance of vacmViewTreeFamilyMask
                 defines a family of view subtrees.
                "
    ::= { vacmViewTreeFamilyEntry 2 }

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

                 Each bit of this bit mask corresponds to a
                 sub-identifier of vacmViewTreeFamilySubtree, 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, for
                 each sub-identifier of the value of
                 vacmViewTreeFamilySubtree, either:

                   the i-th bit of vacmViewTreeFamilyMask is 0, or

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

                 If the value of this bit mask is M bits long and

                 there are more than M sub-identifiers in the
                 corresponding instance of vacmViewTreeFamilySubtree,
                 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 vacmViewTreeFamilySubtree.

                 Note that masks of length greater than zero length
                 do not need to be supported.  In this case this
                 object is made read-only.
                "
    DEFVAL      { ''H }
    ::= { vacmViewTreeFamilyEntry 3 }

vacmViewTreeFamilyType OBJECT-TYPE
    SYNTAX       INTEGER  { included(1), excluded(2) }
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION "Indicates whether the corresponding instances of
                 vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask
                 define a family of view subtrees which is included in
                 or excluded from the MIB view.
                "
    DEFVAL      { included }
    ::= { vacmViewTreeFamilyEntry 4 }

vacmViewTreeFamilyStorageType 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 }
    ::= { vacmViewTreeFamilyEntry 5 }

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

                 The  RowStatus TC [RFC2579] requires that this
                 DESCRIPTION clause states under which circumstances
                 other objects in this row can be modified:

                 The value of this object has no effect on whether
                 other objects in this conceptual row can be modified.
                "
    ::= { vacmViewTreeFamilyEntry 6 }

-- Conformance information *******************************************

vacmMIBCompliances  OBJECT IDENTIFIER ::= { vacmMIBConformance 1 }
vacmMIBGroups       OBJECT IDENTIFIER ::= { vacmMIBConformance 2 }

-- Compliance statements *********************************************

vacmMIBCompliance MODULE-COMPLIANCE
    STATUS       current
    DESCRIPTION "The compliance statement for SNMP engines which
                 implement the SNMP View-based Access Control Model
                 configuration MIB.
                "
    MODULE -- this module
        MANDATORY-GROUPS { vacmBasicGroup }

        OBJECT        vacmAccessContextMatch
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        vacmAccessReadViewName
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        vacmAccessWriteViewName
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        vacmAccessNotifyViewName
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        vacmAccessStorageType
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        vacmAccessStatus
        MIN-ACCESS    read-only
        DESCRIPTION  "Create/delete/modify access to the

                      vacmAccessTable is not required.
                     "

        OBJECT        vacmViewTreeFamilyMask
        WRITE-SYNTAX  OCTET STRING (SIZE (0))
        MIN-ACCESS    read-only
        DESCRIPTION  "Support for configuration via SNMP of subtree
                      families using wild-cards is not required.
                     "

        OBJECT        vacmViewTreeFamilyType
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        vacmViewTreeFamilyStorageType
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        vacmViewTreeFamilyStatus
        MIN-ACCESS    read-only
        DESCRIPTION  "Create/delete/modify access to the
                      vacmViewTreeFamilyTable is not required.
                     "
    ::= { vacmMIBCompliances 1 }

-- Units of conformance **********************************************

vacmBasicGroup OBJECT-GROUP
    OBJECTS {
              vacmContextName,
              vacmGroupName,
              vacmSecurityToGroupStorageType,
              vacmSecurityToGroupStatus,
              vacmAccessContextMatch,
              vacmAccessReadViewName,
              vacmAccessWriteViewName,
              vacmAccessNotifyViewName,
              vacmAccessStorageType,
              vacmAccessStatus,
              vacmViewSpinLock,
              vacmViewTreeFamilyMask,
              vacmViewTreeFamilyType,
              vacmViewTreeFamilyStorageType,
              vacmViewTreeFamilyStatus
            }
    STATUS       current
    DESCRIPTION "A collection of objects providing for remote
                 configuration of an SNMP engine which implements

                 the SNMP View-based Access Control Model.
                "
    ::= { vacmMIBGroups 1 }

END
UCD-IPFWACC-MIB DEFINITIONS ::= BEGIN

IMPORTS
    OBJECT-TYPE, MODULE-IDENTITY, IpAddress, Integer32, Counter32
	FROM SNMPv2-SMI
    DisplayString
	FROM SNMPv2-TC
    ucdExperimental
	FROM UCD-SNMP-MIB;

ucdIpFwAccMIB MODULE-IDENTITY
    LAST-UPDATED "9912160000Z"
    ORGANIZATION "University of California, Davis"
    CONTACT-INFO    
	"This mib is no longer being maintained by the University of
	 California and is now in life-support-mode and being
	 maintained by the net-snmp project.  The best place to write
	 for public questions about the net-snmp-coders mailing list
	 at net-snmp-coders@lists.sourceforge.net.

         postal:   Wes Hardaker
                   P.O. Box 382
                   Davis CA  95617

         email:    net-snmp-coders@lists.sourceforge.net
        "
    DESCRIPTION
	"This module defines MIB components for reading information
         from the accounting rules IP Firewall. This would typically
         let you read the rules and the counters. I did not include
         some flags and fields that I considered irrelevant for the
         accounting rules. Resetting the counters of the rules by SNMP
         would be simple, but I don't consider it so useful. I gave no
         consideration to implementing write access for allowing
         modification of the accounting rules.

         Cristian.Estan@net.utcluj.ro "
    REVISION	 "9912160000Z"
    DESCRIPTION
	"SMIv2 version converted from an older MIB definition."
    ::= { ucdExperimental 1 }

ipFwAccTable OBJECT-TYPE
    SYNTAX	SEQUENCE OF IpFwAccEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION
	"A table with the accounting rules of the IP firewall"
    ::= { ucdIpFwAccMIB 1 }

ipFwAccEntry OBJECT-TYPE
    SYNTAX	IpFwAccEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION
	"An accounting rule of the IP firewall"
    INDEX	{ ipFwAccIndex }
    ::= { ipFwAccTable 1 }

IpFwAccEntry ::= SEQUENCE {
    ipFwAccIndex	Integer32,
    ipFwAccSrcAddr	IpAddress,
    ipFwAccSrcNetMask	IpAddress,
    ipFwAccDstAddr	IpAddress,
    ipFwAccDstNetMask	IpAddress,
    ipFwAccViaName	DisplayString,
    ipFwAccViaAddr	IpAddress,
    ipFwAccProto	INTEGER,
    ipFwAccBidir	INTEGER,
    ipFwAccDir		INTEGER,
    ipFwAccBytes	Counter32,
    ipFwAccPackets	Counter32,
    ipFwAccNrSrcPorts	Integer32,
    ipFwAccNrDstPorts	Integer32,
    ipFwAccSrcIsRange	INTEGER,
    ipFwAccDstIsRange	INTEGER,
    ipFwAccPort1	Integer32,
    ipFwAccPort2	Integer32,
    ipFwAccPort3	Integer32,
    ipFwAccPort4	Integer32,
    ipFwAccPort5	Integer32,
    ipFwAccPort6	Integer32,
    ipFwAccPort7	Integer32,
    ipFwAccPort8	Integer32,
    ipFwAccPort9	Integer32,
    ipFwAccPort10	Integer32
}

ipFwAccIndex OBJECT-TYPE
    SYNTAX	Integer32 (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Reference index for each firewall rule."
    ::= { ipFwAccEntry 1 }

ipFwAccSrcAddr OBJECT-TYPE
    SYNTAX	IpAddress
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The source address in the firewall rule."
    ::= { ipFwAccEntry 2 }

ipFwAccSrcNetMask OBJECT-TYPE
    SYNTAX	IpAddress
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The netmask of the source address in the firewall rule."
    ::= { ipFwAccEntry 3 }

ipFwAccDstAddr OBJECT-TYPE
    SYNTAX	IpAddress
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The destination address in the firewall rule."
    ::= { ipFwAccEntry 4 }

ipFwAccDstNetMask OBJECT-TYPE
    SYNTAX	IpAddress
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The netmask of the destination address in the firewall rule."
    ::= { ipFwAccEntry 5 }

ipFwAccViaName OBJECT-TYPE
    SYNTAX	DisplayString (SIZE(1..64))
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The name of the interface to which the rule applies. If no
	 interface is associated with the present rule, this should
	 contain a dash (-)."
    ::= { ipFwAccEntry 6 }

ipFwAccViaAddr OBJECT-TYPE
    SYNTAX	IpAddress
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The address of the interface to which the rule applies.
	 Using this parameter makes sense when multiple addresses are
	 associated to the same physical interface. If not defined
	 for the current rule this should be set to 0."
    ::= { ipFwAccEntry 7 }

ipFwAccProto OBJECT-TYPE
    SYNTAX	INTEGER {
		    other(1),
		    all(2),
		    tcp(3),
		    udp(4),
		    icmp(5)
		}
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The protocol(s) to which the rule applies."
    ::= { ipFwAccEntry 8 }

ipFwAccBidir OBJECT-TYPE
    SYNTAX	INTEGER {
		    unidirectional(1),
		    bidirectional(2)
		}
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Whether the rule works in both directions (i.e. with the
	 source and destination parts swapped) or not."
    ::= { ipFwAccEntry 9 }

ipFwAccDir OBJECT-TYPE
    SYNTAX	INTEGER {
		    both(1),
		    in(2),
		    out(3)
		}
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Whether the rule applies to packets entering or exiting the
	 kernel."
    ::= { ipFwAccEntry 10 }

ipFwAccBytes OBJECT-TYPE
    SYNTAX	Counter32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The number of bytes that matched this rule since the last
	 reset of the counters."
    ::= { ipFwAccEntry 11 }

ipFwAccPackets OBJECT-TYPE
    SYNTAX	Counter32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The number of packets that matched this rule since the last
	 reset of the counters."
    ::= { ipFwAccEntry 12 }

ipFwAccNrSrcPorts OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The number of ports that refer to the source address."
    ::= { ipFwAccEntry 13 }

ipFwAccNrDstPorts OBJECT-TYPE
    SYNTAX	Integer32 
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The number of ports that refer to the destination address."
    ::= { ipFwAccEntry 14 }

ipFwAccSrcIsRange OBJECT-TYPE
    SYNTAX	INTEGER {
		    srchasrange(1),
		    srchasnorange(2)
		}
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Interpret the first two ports of the source part as
	 the upper and lower limit of an interval or not."
    ::= { ipFwAccEntry 15 }

ipFwAccDstIsRange OBJECT-TYPE
    SYNTAX	INTEGER {
		    dsthasrange(1),
		    dsthasnorange(2)
		}
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Interpret the first two ports of the destination part as
	 the upper and lower limit of an interval or not."
    ::= { ipFwAccEntry 16 }

ipFwAccPort1 OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Port number 1."
    ::= { ipFwAccEntry 17 }

ipFwAccPort2 OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Port number 2."
    ::= { ipFwAccEntry 18 }

ipFwAccPort3 OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Port number 3."
    ::= { ipFwAccEntry 19 }

ipFwAccPort4 OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Port number 4."
    ::= { ipFwAccEntry 20 }

ipFwAccPort5 OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Port number 5."
    ::= { ipFwAccEntry 21 }

ipFwAccPort6 OBJECT-TYPE
    SYNTAX	Integer32 
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Port number 6."
    ::= { ipFwAccEntry 22 }

ipFwAccPort7 OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Port number 7."
    ::= { ipFwAccEntry 23 }

ipFwAccPort8 OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Port number 8."
    ::= { ipFwAccEntry 24 }

ipFwAccPort9 OBJECT-TYPE
     SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Port number 9."
    ::= { ipFwAccEntry 25 }

ipFwAccPort10 OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Port number 10."
    ::= { ipFwAccEntry 26 }

END
IPV6-TC DEFINITIONS ::= BEGIN

-- Copyright (c) 2017 IETF Trust and the persons identified as
-- authors of the code.  All rights reserved.

--   Redistribution and use in source and binary forms, with or without
--   modification, is permitted pursuant to, and subject to the license
--   terms contained in, the Simplified BSD License set forth in Section
--   4.c of the IETF Trust's Legal Provisions Relating to IETF Documents
--   (http://trustee.ietf.org/license-info).

IMPORTS
     Integer32                FROM SNMPv2-SMI
     TEXTUAL-CONVENTION       FROM SNMPv2-TC;

-- definition of textual conventions
Ipv6Address ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "2x:"
     STATUS       obsolete
     DESCRIPTION
       "This data type is used to model IPv6 addresses.
        This is a binary string of 16 octets in network
        byte-order.

        This object is obsoleted by INET-ADDRESS-MIB::InetAddress."
     SYNTAX       OCTET STRING (SIZE (16))

Ipv6AddressPrefix ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "2x:"
     STATUS       obsolete
     DESCRIPTION
       "This data type is used to model IPv6 address
       prefixes.  This is a binary string of up to 16
       octets in network byte-order.
       This object is obsoleted by INET-ADDRESS-MIB::InetAddress."
     SYNTAX       OCTET STRING (SIZE (0..16))

Ipv6AddressIfIdentifier ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "2x:"
     STATUS       obsolete
     DESCRIPTION
       "This data type is used to model IPv6 address
       interface identifiers.  This is a binary string
        of up to 8 octets in network byte-order.

       This object is obsoleted by IP-MIB::Ipv6AddressIfIdentifierTC."
     SYNTAX      OCTET STRING (SIZE (0..8))

Ipv6IfIndex ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "d"
     STATUS       obsolete
     DESCRIPTION
       "A unique value, greater than zero for each
       internetwork-layer interface in the managed
       system.  It is recommended that values are assigned
       contiguously starting from 1.  The value for each
       internetwork-layer interface must remain constant
       at least from one re-initialization of the entity's
       network management system to the next
       re-initialization.

       This object is obsoleted by IF-MIB::InterfaceIndex."
     SYNTAX       Integer32 (1..2147483647)

Ipv6IfIndexOrZero ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "d"
     STATUS       obsolete
     DESCRIPTION
         "This textual convention is an extension of the
         Ipv6IfIndex convention.  The latter defines
         a greater than zero value used to identify an IPv6
         interface in the managed system.  This extension
         permits the additional value of zero.  The value
         zero is object-specific and must therefore be
         defined as part of the description of any object
         which uses this syntax.  Examples of the usage of
         zero might include situations where interface was
         unknown, or when none or all interfaces need to be
         referenced.

         This object is obsoleted by IF-MIB::InterfaceIndexOrZero."
     SYNTAX       Integer32 (0..2147483647)

END
HOST-RESOURCES-MIB DEFINITIONS ::= BEGIN

IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, mib-2,
Integer32, Counter32, Gauge32, TimeTicks  FROM SNMPv2-SMI

TEXTUAL-CONVENTION, DisplayString,
TruthValue, DateAndTime, AutonomousType   FROM SNMPv2-TC

MODULE-COMPLIANCE, OBJECT-GROUP           FROM SNMPv2-CONF

InterfaceIndexOrZero                      FROM IF-MIB;

hostResourcesMibModule MODULE-IDENTITY
   LAST-UPDATED "200003060000Z"    -- 6 March 2000
   ORGANIZATION "IETF Host Resources MIB Working Group"
   CONTACT-INFO
       "Steve Waldbusser
       Postal: Lucent Technologies, Inc.
               1213 Innsbruck Dr.
               Sunnyvale, CA 94089
               USA
       Phone:  650-318-1251
       Fax:    650-318-1633
       Email:  waldbusser@lucent.com

       In addition, the Host Resources MIB mailing list is
       dedicated to discussion of this MIB. To join the
       mailing list, send a request message to
       hostmib-request@andrew.cmu.edu. The mailing list
       address is hostmib@andrew.cmu.edu."
   DESCRIPTION
       "This MIB is for use in managing host systems. The term
       `host' is construed to mean any computer that communicates
       with other similar computers attached to the internet and
       that is directly used by one or more human beings. Although
       this MIB does not necessarily apply to devices whose primary
       function is communications services (e.g., terminal servers,
       routers, bridges, monitoring equipment), such relevance is
       not explicitly precluded.  This MIB instruments attributes
       common to all internet hosts including, for example, both
       personal computers and systems that run variants of Unix."

   REVISION "200003060000Z"        -- 6 March 2000
   DESCRIPTION
       "Clarifications and bug fixes based on implementation
       experience.  This revision was also reformatted in the SMIv2
       format. The revisions made were:

       New RFC document standards:
          Added Copyright notice, updated introduction to SNMP
          Framework, updated references section, added reference to
          RFC 2119, and added a meaningful Security Considerations
          section.

       New IANA considerations section for registration of new types

       Conversion to new SMIv2 syntax for the following types and
       macros:
           Counter32, Integer32, Gauge32, MODULE-IDENTITY,
           OBJECT-TYPE, TEXTUAL-CONVENTION, OBJECT-IDENTITY,
           MODULE-COMPLIANCE, OBJECT-GROUP

       Used new Textual Conventions:
           TruthValue, DateAndTime, AutonomousType,
           InterfaceIndexOrZero

       Fixed typo in hrPrinterStatus.

       Added missing error bits to hrPrinterDetectedErrorState and
       clarified confusion resulting from suggested mappings to
       hrPrinterStatus.

       Clarified that size of objects of type
       InternationalDisplayString is number of octets, not number
       of encoded symbols.

       Clarified the use of the following objects based on
       implementation experience:
           hrSystemInitialLoadDevice, hrSystemInitialLoadParameters,
           hrMemorySize, hrStorageSize, hrStorageAllocationFailures,
           hrDeviceErrors, hrProcessorLoad, hrNetworkIfIndex,
           hrDiskStorageCapacity, hrSWRunStatus, hrSWRunPerfCPU,
           and hrSWInstalledDate.

       Clarified implementation technique for hrSWInstalledTable.

       Used new AUGMENTS clause for hrSWRunPerfTable.

       Added Internationalization Considerations section.

This revision published as RFC2790."

   REVISION "9910202200Z"    -- 20 October, 1999
   DESCRIPTION
       "The original version of this MIB, published as
       RFC1514."
   ::= { hrMIBAdminInfo 1 }

host     OBJECT IDENTIFIER ::= { mib-2 25 }

hrSystem        OBJECT IDENTIFIER ::= { host 1 }
hrStorage       OBJECT IDENTIFIER ::= { host 2 }
hrDevice        OBJECT IDENTIFIER ::= { host 3 }
hrSWRun         OBJECT IDENTIFIER ::= { host 4 }
hrSWRunPerf     OBJECT IDENTIFIER ::= { host 5 }
hrSWInstalled   OBJECT IDENTIFIER ::= { host 6 }
hrMIBAdminInfo  OBJECT IDENTIFIER ::= { host 7 }

-- textual conventions

KBytes ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "Storage size, expressed in units of 1024 bytes."
    SYNTAX Integer32 (0..2147483647)

ProductID ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "This textual convention is intended to identify the

        manufacturer, model, and version of a specific
        hardware or software product.  It is suggested that
        these OBJECT IDENTIFIERs are allocated such that all
        products from a particular manufacturer are registered
        under a subtree distinct to that manufacturer.  In
        addition, all versions of a product should be
        registered under a subtree distinct to that product.
        With this strategy, a management station may uniquely
        determine the manufacturer and/or model of a product
        whose productID is unknown to the management station.
        Objects of this type may be useful for inventory
        purposes or for automatically detecting
        incompatibilities or version mismatches between
        various hardware and software components on a system.

        For example, the product ID for the ACME 4860 66MHz
        clock doubled processor might be:
        enterprises.acme.acmeProcessors.a4860DX2.MHz66

        A software product might be registered as:
        enterprises.acme.acmeOperatingSystems.acmeDOS.six(6).one(1)
        "
    SYNTAX OBJECT IDENTIFIER

-- unknownProduct will be used for any unknown ProductID
-- unknownProduct OBJECT IDENTIFIER ::= { 0 0 }

InternationalDisplayString ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "This data type is used to model textual information
        in some character set.  A network management station
        should use a local algorithm to determine which
        character set is in use and how it should be
        displayed.  Note that this character set may be
        encoded with more than one octet per symbol, but will
        most often be NVT ASCII. When a size clause is
        specified for an object of this type, the size refers
        to the length in octets, not the number of symbols."
    SYNTAX OCTET STRING

-- The Host Resources System Group

hrSystemUptime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The amount of time since this host was last
        initialized.  Note that this is different from
        sysUpTime in the SNMPv2-MIB [RFC1907] because
        sysUpTime is the uptime of the network management
        portion of the system."
    ::= { hrSystem 1 }

hrSystemDate OBJECT-TYPE
    SYNTAX     DateAndTime
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The host's notion of the local date and time of day."
    ::= { hrSystem 2 }

hrSystemInitialLoadDevice OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The index of the hrDeviceEntry for the device from
        which this host is configured to load its initial
        operating system configuration (i.e., which operating
        system code and/or boot parameters).

        Note that writing to this object just changes the
        configuration that will be used the next time the
        operating system is loaded and does not actually cause
        the reload to occur."
    ::= { hrSystem 3 }

hrSystemInitialLoadParameters OBJECT-TYPE
    SYNTAX     InternationalDisplayString (SIZE (0..128))
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "This object contains the parameters (e.g. a pathname
        and parameter) supplied to the load device when
        requesting the initial operating system configuration
        from that device.

     Note that writing to this object just changes the
     configuration that will be used the next time the
     operating system is loaded and does not actually cause
     the reload to occur."
    ::= { hrSystem 4 }

hrSystemNumUsers OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of user sessions for which this host is
        storing state information.  A session is a collection
        of processes requiring a single act of user
        authentication and possibly subject to collective job
        control."
    ::= { hrSystem 5 }

hrSystemProcesses OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of process contexts currently loaded or
        running on this system."
    ::= { hrSystem 6 }

hrSystemMaxProcesses OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The maximum number of process contexts this system
        can support.  If there is no fixed maximum, the value
        should be zero.  On systems that have a fixed maximum,
        this object can help diagnose failures that occur when
        this maximum is reached."
    ::= { hrSystem 7 }

-- The Host Resources Storage Group

-- Registration point for storage types, for use with hrStorageType.
-- These are defined in the HOST-RESOURCES-TYPES module.
hrStorageTypes          OBJECT IDENTIFIER ::= { hrStorage 1 }

hrMemorySize OBJECT-TYPE
    SYNTAX     KBytes
    UNITS      "KBytes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The amount of physical read-write main memory,
        typically RAM, contained by the host."
    ::= { hrStorage 2 }

hrStorageTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HrStorageEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table of logical storage areas on
        the host.

        An entry shall be placed in the storage table for each
        logical area of storage that is allocated and has
        fixed resource limits.  The amount of storage
        represented in an entity is the amount actually usable
        by the requesting entity, and excludes loss due to
        formatting or file system reference information.

        These entries are associated with logical storage
        areas, as might be seen by an application, rather than
        physical storage entities which are typically seen by
        an operating system.  Storage such as tapes and
        floppies without file systems on them are typically
        not allocated in chunks by the operating system to
        requesting applications, and therefore shouldn't
        appear in this table.  Examples of valid storage for
        this table include disk partitions, file systems, ram
        (for some architectures this is further segmented into
        regular memory, extended memory, and so on), backing
        store for virtual memory (`swap space').

        This table is intended to be a useful diagnostic for
        `out of memory' and `out of buffers' types of
        failures.  In addition, it can be a useful performance
        monitoring tool for tracking memory, disk, or buffer
        usage."
    ::= { hrStorage 3 }

hrStorageEntry OBJECT-TYPE
    SYNTAX     HrStorageEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A (conceptual) entry for one logical storage area on
        the host.  As an example, an instance of the
        hrStorageType object might be named hrStorageType.3"
    INDEX { hrStorageIndex }
    ::= { hrStorageTable 1 }

HrStorageEntry ::= SEQUENCE {
        hrStorageIndex               Integer32,
        hrStorageType                AutonomousType,
        hrStorageDescr               DisplayString,
        hrStorageAllocationUnits     Integer32,
        hrStorageSize                Integer32,
        hrStorageUsed                Integer32,
        hrStorageAllocationFailures  Counter32
    }

hrStorageIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A unique value for each logical storage area
        contained by the host."
    ::= { hrStorageEntry 1 }

hrStorageType OBJECT-TYPE
    SYNTAX     AutonomousType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The type of storage represented by this entry."
    ::= { hrStorageEntry 2 }

hrStorageDescr OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A description of the type and instance of the storage
        described by this entry."
    ::= { hrStorageEntry 3 }

hrStorageAllocationUnits OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    UNITS      "Bytes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The size, in bytes, of the data objects allocated
        from this pool.  If this entry is monitoring sectors,
        blocks, buffers, or packets, for example, this number
        will commonly be greater than one.  Otherwise this
        number will typically be one."
    ::= { hrStorageEntry 4 }

hrStorageSize OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The size of the storage represented by this entry, in
        units of hrStorageAllocationUnits. This object is
        writable to allow remote configuration of the size of
        the storage area in those cases where such an
        operation makes sense and is possible on the
        underlying system. For example, the amount of main
        memory allocated to a buffer pool might be modified or
        the amount of disk space allocated to virtual memory
        might be modified."
    ::= { hrStorageEntry 5 }

hrStorageUsed OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The amount of the storage represented by this entry
        that is allocated, in units of
        hrStorageAllocationUnits."
    ::= { hrStorageEntry 6 }

hrStorageAllocationFailures OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of requests for storage represented by
        this entry that could not be honored due to not enough
        storage.  It should be noted that as this object has a
        SYNTAX of Counter32, that it does not have a defined
        initial value.  However, it is recommended that this
        object be initialized to zero, even though management
        stations must not depend on such an initialization."
    ::= { hrStorageEntry 7 }

-- The Host Resources Device Group
--
-- The device group is useful for identifying and diagnosing the
-- devices on a system.  The hrDeviceTable contains common
-- information for any type of device.  In addition, some devices
-- have device-specific tables for more detailed information.  More
-- such tables may be defined in the future for other device types.

-- Registration point for device types, for use with hrDeviceType.

-- These are defined in the HOST-RESOURCES-TYPES module.
hrDeviceTypes             OBJECT IDENTIFIER ::= { hrDevice 1 }

hrDeviceTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HrDeviceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table of devices contained by the
        host."
    ::= { hrDevice 2 }

hrDeviceEntry OBJECT-TYPE
    SYNTAX     HrDeviceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A (conceptual) entry for one device contained by the
        host.  As an example, an instance of the hrDeviceType
        object might be named hrDeviceType.3"
    INDEX { hrDeviceIndex }
    ::= { hrDeviceTable 1 }

HrDeviceEntry ::= SEQUENCE {
        hrDeviceIndex           Integer32,
        hrDeviceType            AutonomousType,
        hrDeviceDescr           DisplayString,
        hrDeviceID              ProductID,
        hrDeviceStatus          INTEGER,
        hrDeviceErrors          Counter32
    }

hrDeviceIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A unique value for each device contained by the host.
        The value for each device must remain constant at
        least from one re-initialization of the agent to the
        next re-initialization."
    ::= { hrDeviceEntry 1 }

hrDeviceType OBJECT-TYPE
    SYNTAX     AutonomousType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "An indication of the type of device.

        If this value is
        `hrDeviceProcessor { hrDeviceTypes 3 }' then an entry
        exists in the hrProcessorTable which corresponds to
        this device.

        If this value is
        `hrDeviceNetwork { hrDeviceTypes 4 }', then an entry
        exists in the hrNetworkTable which corresponds to this
        device.

        If this value is
        `hrDevicePrinter { hrDeviceTypes 5 }', then an entry
        exists in the hrPrinterTable which corresponds to this
        device.

        If this value is
        `hrDeviceDiskStorage { hrDeviceTypes 6 }', then an
        entry exists in the hrDiskStorageTable which
        corresponds to this device."
    ::= { hrDeviceEntry 2 }

hrDeviceDescr OBJECT-TYPE
    SYNTAX     DisplayString (SIZE (0..64))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A textual description of this device, including the
        device's manufacturer and revision, and optionally,
        its serial number."
    ::= { hrDeviceEntry 3 }

hrDeviceID OBJECT-TYPE
    SYNTAX     ProductID
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The product ID for this device."
    ::= { hrDeviceEntry 4 }

hrDeviceStatus OBJECT-TYPE
    SYNTAX     INTEGER {
                   unknown(1),
                   running(2),
                   warning(3),
                   testing(4),
                   down(5)

               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The current operational state of the device described
        by this row of the table.  A value unknown(1)
        indicates that the current state of the device is
        unknown.  running(2) indicates that the device is up
        and running and that no unusual error conditions are
        known.  The warning(3) state indicates that agent has
        been informed of an unusual error condition by the
        operational software (e.g., a disk device driver) but
        that the device is still 'operational'.  An example
        would be a high number of soft errors on a disk.  A
        value of testing(4), indicates that the device is not
        available for use because it is in the testing state.
        The state of down(5) is used only when the agent has
        been informed that the device is not available for any
        use."
    ::= { hrDeviceEntry 5 }

hrDeviceErrors OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of errors detected on this device.  It
        should be noted that as this object has a SYNTAX of
        Counter32, that it does not have a defined initial
        value.  However, it is recommended that this object be
        initialized to zero, even though management stations
        must not depend on such an initialization."
    ::= { hrDeviceEntry 6 }

hrProcessorTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HrProcessorEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table of processors contained by the
        host.

        Note that this table is potentially sparse: a
        (conceptual) entry exists only if the correspondent
        value of the hrDeviceType object is
        `hrDeviceProcessor'."
    ::= { hrDevice 3 }

hrProcessorEntry OBJECT-TYPE
    SYNTAX     HrProcessorEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A (conceptual) entry for one processor contained by
        the host.  The hrDeviceIndex in the index represents
        the entry in the hrDeviceTable that corresponds to the
        hrProcessorEntry.

        As an example of how objects in this table are named,
        an instance of the hrProcessorFrwID object might be
        named hrProcessorFrwID.3"
    INDEX { hrDeviceIndex }
    ::= { hrProcessorTable 1 }

HrProcessorEntry ::= SEQUENCE {
        hrProcessorFrwID            ProductID,
        hrProcessorLoad             Integer32
    }

hrProcessorFrwID OBJECT-TYPE
    SYNTAX     ProductID
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The product ID of the firmware associated with the
        processor."
    ::= { hrProcessorEntry 1 }

hrProcessorLoad OBJECT-TYPE
    SYNTAX     Integer32 (0..100)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The average, over the last minute, of the percentage
        of time that this processor was not idle.
        Implementations may approximate this one minute
        smoothing period if necessary."
    ::= { hrProcessorEntry 2 }

hrNetworkTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HrNetworkEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table of network devices contained
        by the host.

        Note that this table is potentially sparse: a
        (conceptual) entry exists only if the correspondent
        value of the hrDeviceType object is
        `hrDeviceNetwork'."
    ::= { hrDevice 4 }

hrNetworkEntry OBJECT-TYPE
    SYNTAX     HrNetworkEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A (conceptual) entry for one network device contained
        by the host.  The hrDeviceIndex in the index
        represents the entry in the hrDeviceTable that
        corresponds to the hrNetworkEntry.

        As an example of how objects in this table are named,
        an instance of the hrNetworkIfIndex object might be
        named hrNetworkIfIndex.3"
    INDEX { hrDeviceIndex }
    ::= { hrNetworkTable 1 }

HrNetworkEntry ::= SEQUENCE {
        hrNetworkIfIndex    InterfaceIndexOrZero
    }

hrNetworkIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndexOrZero
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of ifIndex which corresponds to this
        network device. If this device is not represented in
        the ifTable, then this value shall be zero."
    ::= { hrNetworkEntry 1 }

hrPrinterTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HrPrinterEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table of printers local to the host.

        Note that this table is potentially sparse: a
        (conceptual) entry exists only if the correspondent
        value of the hrDeviceType object is
        `hrDevicePrinter'."
    ::= { hrDevice 5 }

hrPrinterEntry OBJECT-TYPE
    SYNTAX     HrPrinterEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A (conceptual) entry for one printer local to the
        host.  The hrDeviceIndex in the index represents the
        entry in the hrDeviceTable that corresponds to the
        hrPrinterEntry.

        As an example of how objects in this table are named,
        an instance of the hrPrinterStatus object might be
        named hrPrinterStatus.3"
    INDEX { hrDeviceIndex }
    ::= { hrPrinterTable 1 }

HrPrinterEntry ::= SEQUENCE {
        hrPrinterStatus             INTEGER,
        hrPrinterDetectedErrorState OCTET STRING
    }

hrPrinterStatus OBJECT-TYPE
    SYNTAX     INTEGER {
                   other(1),
                   unknown(2),
                   idle(3),
                   printing(4),
                   warmup(5)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The current status of this printer device."
    ::= { hrPrinterEntry 1 }

hrPrinterDetectedErrorState OBJECT-TYPE
    SYNTAX     OCTET STRING
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This object represents any error conditions detected
        by the printer.  The error conditions are encoded as
        bits in an octet string, with the following
        definitions:

             Condition         Bit #

             lowPaper              0

             noPaper               1
             lowToner              2
             noToner               3
             doorOpen              4
             jammed                5
             offline               6
             serviceRequested      7
             inputTrayMissing      8
             outputTrayMissing     9
             markerSupplyMissing  10
             outputNearFull       11
             outputFull           12
             inputTrayEmpty       13
             overduePreventMaint  14

        Bits are numbered starting with the most significant
        bit of the first byte being bit 0, the least
        significant bit of the first byte being bit 7, the
        most significant bit of the second byte being bit 8,
        and so on.  A one bit encodes that the condition was
        detected, while a zero bit encodes that the condition
        was not detected.

        This object is useful for alerting an operator to
        specific warning or error conditions that may occur,
        especially those requiring human intervention."
    ::= { hrPrinterEntry 2 }

hrDiskStorageTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HrDiskStorageEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table of long-term storage devices
        contained by the host.  In particular, disk devices
        accessed remotely over a network are not included
        here.

        Note that this table is potentially sparse: a
        (conceptual) entry exists only if the correspondent
        value of the hrDeviceType object is
        `hrDeviceDiskStorage'."
    ::= { hrDevice 6 }

hrDiskStorageEntry OBJECT-TYPE
    SYNTAX     HrDiskStorageEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A (conceptual) entry for one long-term storage device
        contained by the host.  The hrDeviceIndex in the index
        represents the entry in the hrDeviceTable that
        corresponds to the hrDiskStorageEntry. As an example,
        an instance of the hrDiskStorageCapacity object might
        be named hrDiskStorageCapacity.3"
    INDEX { hrDeviceIndex }
    ::= { hrDiskStorageTable 1 }

HrDiskStorageEntry ::= SEQUENCE {
        hrDiskStorageAccess         INTEGER,
        hrDiskStorageMedia          INTEGER,
        hrDiskStorageRemoveble      TruthValue,
        hrDiskStorageCapacity       KBytes
    }

hrDiskStorageAccess OBJECT-TYPE
    SYNTAX     INTEGER {
                   readWrite(1),
                   readOnly(2)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "An indication if this long-term storage device is
        readable and writable or only readable.  This should
        reflect the media type, any write-protect mechanism,
        and any device configuration that affects the entire
        device."
    ::= { hrDiskStorageEntry 1 }

hrDiskStorageMedia OBJECT-TYPE
    SYNTAX     INTEGER {
                   other(1),
                   unknown(2),
                   hardDisk(3),
                   floppyDisk(4),
                   opticalDiskROM(5),
                   opticalDiskWORM(6),     -- Write Once Read Many
                   opticalDiskRW(7),
                   ramDisk(8)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "An indication of the type of media used in this long-
        term storage device."
    ::= { hrDiskStorageEntry 2 }

hrDiskStorageRemoveble OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Denotes whether or not the disk media may be removed
        from the drive."
    ::= { hrDiskStorageEntry 3 }

hrDiskStorageCapacity OBJECT-TYPE
    SYNTAX     KBytes
    UNITS      "KBytes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The total size for this long-term storage device. If
        the media is removable and is currently removed, this
        value should be zero."
    ::= { hrDiskStorageEntry 4 }

hrPartitionTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HrPartitionEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table of partitions for long-term
        storage devices contained by the host.  In particular,
        partitions accessed remotely over a network are not
        included here."
    ::= { hrDevice 7 }

hrPartitionEntry OBJECT-TYPE
    SYNTAX     HrPartitionEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A (conceptual) entry for one partition.  The
        hrDeviceIndex in the index represents the entry in the
        hrDeviceTable that corresponds to the
        hrPartitionEntry.

        As an example of how objects in this table are named,
        an instance of the hrPartitionSize object might be
        named hrPartitionSize.3.1"
    INDEX { hrDeviceIndex, hrPartitionIndex }
    ::= { hrPartitionTable 1 }

HrPartitionEntry ::= SEQUENCE {
        hrPartitionIndex                Integer32,
        hrPartitionLabel                InternationalDisplayString,
        hrPartitionID                   OCTET STRING,
        hrPartitionSize                 KBytes,
        hrPartitionFSIndex              Integer32
    }

hrPartitionIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A unique value for each partition on this long-term
        storage device.  The value for each long-term storage
        device must remain constant at least from one re-
        initialization of the agent to the next re-
        initialization."
    ::= { hrPartitionEntry 1 }

hrPartitionLabel OBJECT-TYPE
    SYNTAX     InternationalDisplayString (SIZE (0..128))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A textual description of this partition."
    ::= { hrPartitionEntry 2 }

hrPartitionID OBJECT-TYPE
    SYNTAX     OCTET STRING
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A descriptor which uniquely represents this partition
        to the responsible operating system.  On some systems,
        this might take on a binary representation."
    ::= { hrPartitionEntry 3 }

hrPartitionSize OBJECT-TYPE
    SYNTAX     KBytes
    UNITS      "KBytes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The size of this partition."
    ::= { hrPartitionEntry 4 }

hrPartitionFSIndex OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The index of the file system mounted on this
        partition.  If no file system is mounted on this
        partition, then this value shall be zero.  Note that
        multiple partitions may point to one file system,
        denoting that that file system resides on those
        partitions.  Multiple file systems may not reside on
        one partition."
    ::= { hrPartitionEntry 5 }

-- The File System Table

-- Registration point for popular File System types,
-- for use with hrFSType. These are defined in the
-- HOST-RESOURCES-TYPES module.
hrFSTypes               OBJECT IDENTIFIER ::= { hrDevice 9 }

hrFSTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HrFSEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table of file systems local to this
        host or remotely mounted from a file server.  File
        systems that are in only one user's environment on a
        multi-user system will not be included in this table."
    ::= { hrDevice 8 }

hrFSEntry OBJECT-TYPE
    SYNTAX     HrFSEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A (conceptual) entry for one file system local to
        this host or remotely mounted from a file server.
        File systems that are in only one user's environment
        on a multi-user system will not be included in this
        table.

        As an example of how objects in this table are named,
        an instance of the hrFSMountPoint object might be
        named hrFSMountPoint.3"
    INDEX { hrFSIndex }
    ::= { hrFSTable 1 }

HrFSEntry ::= SEQUENCE {
        hrFSIndex                   Integer32,
        hrFSMountPoint              InternationalDisplayString,
        hrFSRemoteMountPoint        InternationalDisplayString,
        hrFSType                    AutonomousType,
        hrFSAccess                  INTEGER,
        hrFSBootable                TruthValue,
        hrFSStorageIndex            Integer32,
        hrFSLastFullBackupDate      DateAndTime,
        hrFSLastPartialBackupDate   DateAndTime
    }

hrFSIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A unique value for each file system local to this
        host.  The value for each file system must remain
        constant at least from one re-initialization of the
        agent to the next re-initialization."
    ::= { hrFSEntry 1 }

hrFSMountPoint OBJECT-TYPE
    SYNTAX     InternationalDisplayString (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The path name of the root of this file system."
    ::= { hrFSEntry 2 }

hrFSRemoteMountPoint OBJECT-TYPE
    SYNTAX     InternationalDisplayString (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A description of the name and/or address of the
        server that this file system is mounted from.  This
        may also include parameters such as the mount point on
        the remote file system.  If this is not a remote file
        system, this string should have a length of zero."
    ::= { hrFSEntry 3 }

hrFSType OBJECT-TYPE
    SYNTAX     AutonomousType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of this object identifies the type of this
        file system."
    ::= { hrFSEntry 4 }

hrFSAccess OBJECT-TYPE
    SYNTAX     INTEGER {
                   readWrite(1),
                   readOnly(2)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "An indication if this file system is logically
        configured by the operating system to be readable and
        writable or only readable.  This does not represent
        any local access-control policy, except one that is
        applied to the file system as a whole."
    ::= { hrFSEntry 5 }

hrFSBootable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A flag indicating whether this file system is
        bootable."
    ::= { hrFSEntry 6 }

hrFSStorageIndex OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The index of the hrStorageEntry that represents
        information about this file system.  If there is no
        such information available, then this value shall be
        zero.  The relevant storage entry will be useful in
        tracking the percent usage of this file system and
        diagnosing errors that may occur when it runs out of
        space."
    ::= { hrFSEntry 7 }

hrFSLastFullBackupDate OBJECT-TYPE
    SYNTAX     DateAndTime
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The last date at which this complete file system was

        copied to another storage device for backup.  This
        information is useful for ensuring that backups are
        being performed regularly.

        If this information is not known, then this variable
        shall have the value corresponding to January 1, year
        0000, 00:00:00.0, which is encoded as
        (hex)'00 00 01 01 00 00 00 00'."
    ::= { hrFSEntry 8 }

hrFSLastPartialBackupDate OBJECT-TYPE
    SYNTAX     DateAndTime
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The last date at which a portion of this file system
        was copied to another storage device for backup.  This
        information is useful for ensuring that backups are
        being performed regularly.

        If this information is not known, then this variable
        shall have the value corresponding to January 1, year
        0000, 00:00:00.0, which is encoded as
        (hex)'00 00 01 01 00 00 00 00'."
    ::= { hrFSEntry 9 }

-- The Host Resources Running Software Group
--
-- The hrSWRunTable contains an entry for each distinct piece of
-- software that is running or loaded into physical or virtual
-- memory in preparation for running.  This includes the host's
-- operating system, device drivers, and applications.

hrSWOSIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of the hrSWRunIndex for the hrSWRunEntry
        that represents the primary operating system running
        on this host.  This object is useful for quickly and
        uniquely identifying that primary operating system."
    ::= { hrSWRun 1 }

hrSWRunTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HrSWRunEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table of software running on the
        host."
    ::= { hrSWRun 2 }

hrSWRunEntry OBJECT-TYPE
    SYNTAX     HrSWRunEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A (conceptual) entry for one piece of software
        running on the host Note that because the installed
        software table only contains information for software
        stored locally on this host, not every piece of
        running software will be found in the installed
        software table.  This is true of software that was
        loaded and run from a non-local source, such as a
        network-mounted file system.

        As an example of how objects in this table are named,
        an instance of the hrSWRunName object might be named
        hrSWRunName.1287"
    INDEX { hrSWRunIndex }
    ::= { hrSWRunTable 1 }

HrSWRunEntry ::= SEQUENCE {
        hrSWRunIndex       Integer32,
        hrSWRunName        InternationalDisplayString,
        hrSWRunID          ProductID,
        hrSWRunPath        InternationalDisplayString,
        hrSWRunParameters  InternationalDisplayString,
        hrSWRunType        INTEGER,
        hrSWRunStatus      INTEGER
    }

hrSWRunIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A unique value for each piece of software running on
        the host.  Wherever possible, this should be the
        system's native, unique identification number."
    ::= { hrSWRunEntry 1 }

hrSWRunName OBJECT-TYPE
    SYNTAX     InternationalDisplayString (SIZE (0..64))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A textual description of this running piece of
        software, including the manufacturer, revision,  and
        the name by which it is commonly known.  If this
        software was installed locally, this should be the
        same string as used in the corresponding
        hrSWInstalledName."
    ::= { hrSWRunEntry 2 }

hrSWRunID OBJECT-TYPE
    SYNTAX     ProductID
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The product ID of this running piece of software."
    ::= { hrSWRunEntry 3 }

hrSWRunPath OBJECT-TYPE
    SYNTAX     InternationalDisplayString (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A description of the location on long-term storage
        (e.g. a disk drive) from which this software was
        loaded."
    ::= { hrSWRunEntry 4 }

hrSWRunParameters OBJECT-TYPE
    SYNTAX     InternationalDisplayString (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A description of the parameters supplied to this
        software when it was initially loaded."
    ::= { hrSWRunEntry 5 }

hrSWRunType OBJECT-TYPE
    SYNTAX     INTEGER {
                   unknown(1),
                   operatingSystem(2),
                   deviceDriver(3),
                   application(4)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The type of this software."
    ::= { hrSWRunEntry 6 }

hrSWRunStatus OBJECT-TYPE
    SYNTAX     INTEGER {
                   running(1),
                   runnable(2),    -- waiting for resource
                                   -- (i.e., CPU, memory, IO)
                   notRunnable(3), -- loaded but waiting for event
                   invalid(4)      -- not loaded
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The status of this running piece of software.
        Setting this value to invalid(4) shall cause this
        software to stop running and to be unloaded. Sets to
        other values are not valid."
    ::= { hrSWRunEntry 7 }

-- The Host Resources Running Software Performance Group
--
-- The hrSWRunPerfTable contains an entry corresponding to
-- each entry in the hrSWRunTable.

hrSWRunPerfTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HrSWRunPerfEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table of running software
        performance metrics."
    ::= { hrSWRunPerf 1 }

hrSWRunPerfEntry OBJECT-TYPE
    SYNTAX     HrSWRunPerfEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A (conceptual) entry containing software performance
        metrics.  As an example, an instance of the
        hrSWRunPerfCPU object might be named
        hrSWRunPerfCPU.1287"
    AUGMENTS { hrSWRunEntry }  -- This table augments information in
                               -- the hrSWRunTable.
    ::= { hrSWRunPerfTable 1 }

HrSWRunPerfEntry ::= SEQUENCE {
        hrSWRunPerfCPU          Integer32,
        hrSWRunPerfMem          KBytes
}

hrSWRunPerfCPU OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of centi-seconds of the total system's CPU
        resources consumed by this process.  Note that on a
        multi-processor system, this value may increment by
        more than one centi-second in one centi-second of real
        (wall clock) time."
    ::= { hrSWRunPerfEntry 1 }

hrSWRunPerfMem OBJECT-TYPE
    SYNTAX     KBytes
    UNITS      "KBytes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The total amount of real system memory allocated to
        this process."
    ::= { hrSWRunPerfEntry 2 }

-- The Host Resources Installed Software Group
--
-- The hrSWInstalledTable contains an entry for each piece
-- of software installed in long-term storage (e.g. a disk
-- drive) locally on this host.  Note that this does not
-- include software loadable remotely from a network
-- server.
--
-- Different implementations may track software in varying
-- ways. For example, while some implementations may track
-- executable files as distinct pieces of software, other
-- implementations may use other strategies such as keeping
-- track of software "packages" (e.g., related groups of files)
-- or keeping track of system or application "patches".
--
-- This table is useful for identifying and inventorying
-- software on a host and for diagnosing incompatibility
-- and version mismatch problems between various pieces
-- of hardware and software.

hrSWInstalledLastChange OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when an entry in the
        hrSWInstalledTable was last added, renamed, or
        deleted.  Because this table is likely to contain many
        entries, polling of this object allows a management
        station to determine when re-downloading of the table
        might be useful."
    ::= { hrSWInstalled 1 }

hrSWInstalledLastUpdateTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when the hrSWInstalledTable
        was last completely updated.  Because caching of this
        data will be a popular implementation strategy,
        retrieval of this object allows a management station
        to obtain a guarantee that no data in this table is
        older than the indicated time."
    ::= { hrSWInstalled 2 }

hrSWInstalledTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HrSWInstalledEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table of software installed on this
        host."
    ::= { hrSWInstalled 3 }

hrSWInstalledEntry OBJECT-TYPE
    SYNTAX     HrSWInstalledEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A (conceptual) entry for a piece of software
        installed on this host.

        As an example of how objects in this table are named,
        an instance of the hrSWInstalledName object might be
        named hrSWInstalledName.96"
    INDEX { hrSWInstalledIndex }
    ::= { hrSWInstalledTable 1 }

HrSWInstalledEntry ::= SEQUENCE {
        hrSWInstalledIndex       Integer32,
        hrSWInstalledName        InternationalDisplayString,
        hrSWInstalledID          ProductID,
        hrSWInstalledType        INTEGER,
        hrSWInstalledDate        DateAndTime
}

hrSWInstalledIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A unique value for each piece of software installed
        on the host.  This value shall be in the range from 1
        to the number of pieces of software installed on the
        host."
    ::= { hrSWInstalledEntry 1 }

hrSWInstalledName OBJECT-TYPE
    SYNTAX     InternationalDisplayString (SIZE (0..64))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A textual description of this installed piece of
        software, including the manufacturer, revision, the
        name by which it is commonly known, and optionally,
        its serial number."
    ::= { hrSWInstalledEntry 2 }

hrSWInstalledID OBJECT-TYPE
    SYNTAX     ProductID
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The product ID of this installed piece of software."
    ::= { hrSWInstalledEntry 3 }

hrSWInstalledType OBJECT-TYPE
    SYNTAX     INTEGER {
                   unknown(1),
                   operatingSystem(2),
                   deviceDriver(3),
                   application(4)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The type of this software."
    ::= { hrSWInstalledEntry 4 }

hrSWInstalledDate OBJECT-TYPE
    SYNTAX     DateAndTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The last-modification date of this application as it
        would appear in a directory listing.

        If this information is not known, then this variable
        shall have the value corresponding to January 1, year
        0000, 00:00:00.0, which is encoded as
        (hex)'00 00 01 01 00 00 00 00'."
    ::= { hrSWInstalledEntry 5 }

-- Conformance information

hrMIBCompliances OBJECT IDENTIFIER ::= { hrMIBAdminInfo 2 }
hrMIBGroups      OBJECT IDENTIFIER ::= { hrMIBAdminInfo 3 }

-- Compliance Statements
hrMIBCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "The requirements for conformance to the Host Resources MIB."
    MODULE -- this module
      MANDATORY-GROUPS { hrSystemGroup, hrStorageGroup,
                         hrDeviceGroup }

      OBJECT hrSystemDate
          MIN-ACCESS read-only
          DESCRIPTION
              "Write access is not required."

      OBJECT hrSystemInitialLoadDevice
          MIN-ACCESS read-only
          DESCRIPTION
              "Write access is not required."

      OBJECT hrSystemInitialLoadParameters
          MIN-ACCESS read-only
          DESCRIPTION
              "Write access is not required."

      OBJECT hrStorageSize
          MIN-ACCESS read-only
          DESCRIPTION
              "Write access is not required."

      OBJECT hrFSLastFullBackupDate
          MIN-ACCESS read-only
          DESCRIPTION
              "Write access is not required."

      OBJECT hrFSLastPartialBackupDate
          MIN-ACCESS read-only
          DESCRIPTION
              "Write access is not required."

      GROUP hrSWRunGroup
          DESCRIPTION
              "The Running Software Group. Implementation
              of this group is mandatory only when the
              hrSWRunPerfGroup is implemented."

      OBJECT hrSWRunStatus
          MIN-ACCESS read-only
          DESCRIPTION
              "Write access is not required."

      GROUP hrSWRunPerfGroup
          DESCRIPTION
              "The Running Software Performance Group.
              Implementation of this group is at the discretion
              of the implementor."

      GROUP hrSWInstalledGroup
          DESCRIPTION
              "The Installed Software Group.
              Implementation of this group is at the discretion
              of the implementor."
    ::= { hrMIBCompliances 1 }

    hrSystemGroup OBJECT-GROUP
        OBJECTS {
            hrSystemUptime, hrSystemDate,
            hrSystemInitialLoadDevice,
            hrSystemInitialLoadParameters,
            hrSystemNumUsers, hrSystemProcesses,
            hrSystemMaxProcesses
        }
        STATUS current
        DESCRIPTION
            "The Host Resources System Group."
        ::= { hrMIBGroups 1 }

    hrStorageGroup OBJECT-GROUP
        OBJECTS {
            hrMemorySize, hrStorageIndex, hrStorageType,
            hrStorageDescr, hrStorageAllocationUnits,
            hrStorageSize, hrStorageUsed,
            hrStorageAllocationFailures
        }
        STATUS current
        DESCRIPTION
            "The Host Resources Storage Group."
        ::= { hrMIBGroups 2 }

    hrDeviceGroup OBJECT-GROUP
        OBJECTS {
            hrDeviceIndex, hrDeviceType, hrDeviceDescr,
            hrDeviceID, hrDeviceStatus, hrDeviceErrors,
            hrProcessorFrwID, hrProcessorLoad,
            hrNetworkIfIndex, hrPrinterStatus,
            hrPrinterDetectedErrorState,
            hrDiskStorageAccess, hrDiskStorageMedia,
            hrDiskStorageRemoveble, hrDiskStorageCapacity,
            hrPartitionIndex, hrPartitionLabel,
            hrPartitionID, hrPartitionSize,
            hrPartitionFSIndex, hrFSIndex, hrFSMountPoint,
            hrFSRemoteMountPoint, hrFSType, hrFSAccess,
            hrFSBootable, hrFSStorageIndex,
            hrFSLastFullBackupDate,
            hrFSLastPartialBackupDate
        }
        STATUS current
        DESCRIPTION
            "The Host Resources Device Group."
        ::= { hrMIBGroups 3 }

    hrSWRunGroup OBJECT-GROUP
        OBJECTS {
            hrSWOSIndex, hrSWRunIndex, hrSWRunName,
            hrSWRunID, hrSWRunPath, hrSWRunParameters,
            hrSWRunType, hrSWRunStatus
        }
        STATUS current
        DESCRIPTION
            "The Host Resources Running Software Group."
        ::= { hrMIBGroups 4 }

    hrSWRunPerfGroup OBJECT-GROUP
        OBJECTS { hrSWRunPerfCPU, hrSWRunPerfMem }
        STATUS current
        DESCRIPTION
            "The Host Resources Running Software
            Performance Group."
        ::= { hrMIBGroups 5 }

    hrSWInstalledGroup OBJECT-GROUP
        OBJECTS {
            hrSWInstalledLastChange,
            hrSWInstalledLastUpdateTime,
            hrSWInstalledIndex, hrSWInstalledName,
            hrSWInstalledID, hrSWInstalledType,
            hrSWInstalledDate
        }
        STATUS current
        DESCRIPTION
            "The Host Resources Installed Software Group."
        ::= { hrMIBGroups 6 }

END
TCP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32,
    Gauge32, Counter32, Counter64, IpAddress, mib-2
                                       FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP    FROM SNMPv2-CONF
    InetAddress, InetAddressType,
    InetPortNumber                     FROM INET-ADDRESS-MIB;

tcpMIB MODULE-IDENTITY
    LAST-UPDATED "200502180000Z"  -- 18 February 2005
    ORGANIZATION
           "IETF IPv6 MIB Revision Team
            http://www.ietf.org/html.charters/ipv6-charter.html"
    CONTACT-INFO
           "Rajiv Raghunarayan (editor)

            Cisco Systems Inc.
            170 West Tasman Drive
            San Jose, CA 95134

            Phone: +1 408 853 9612
            Email: <raraghun@cisco.com>

            Send comments to <ipv6@ietf.org>"
    DESCRIPTION
           "The MIB module for managing TCP implementations.

            Copyright (C) The Internet Society (2005). This version
            of this MIB module is a part of RFC 4022; see the RFC
            itself for full legal notices."
    REVISION      "200502180000Z"  -- 18 February 2005
    DESCRIPTION
           "IP version neutral revision, published as RFC 4022."
    REVISION      "9411010000Z"
    DESCRIPTION
           "Initial SMIv2 version, published as RFC 2012."
    REVISION      "9103310000Z"
    DESCRIPTION
           "The initial revision of this MIB module was part of
            MIB-II."
    ::= { mib-2 49 }

-- the TCP base variables group

tcp      OBJECT IDENTIFIER ::= { mib-2 6 }

-- Scalars

tcpRtoAlgorithm OBJECT-TYPE
    SYNTAX      INTEGER {
                    other(1),    -- none of the following
                    constant(2), -- a constant rto
                    rsre(3),     -- MIL-STD-1778, Appendix B
                    vanj(4),     -- Van Jacobson's algorithm
                    rfc2988(5)   -- RFC 2988
                }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The algorithm used to determine the timeout value used for
            retransmitting unacknowledged octets."
    ::= { tcp 1 }

tcpRtoMin OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    UNITS      "milliseconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value permitted by a TCP implementation for
            the retransmission timeout, measured in milliseconds.
            More refined semantics for objects of this type depend
            on the algorithm used to determine the retransmission
            timeout; in particular, the IETF standard algorithm
            rfc2988(5) provides a minimum value."
    ::= { tcp 2 }

tcpRtoMax OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    UNITS      "milliseconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value permitted by a TCP implementation for
            the retransmission timeout, measured in milliseconds.
            More refined semantics for objects of this type depend
            on the algorithm used to determine the retransmission
            timeout; in particular, the IETF standard algorithm
            rfc2988(5) provides an upper bound (as part of an
            adaptive backoff algorithm)."
    ::= { tcp 3 }

tcpMaxConn OBJECT-TYPE
    SYNTAX     Integer32 (-1 | 0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The limit on the total number of TCP connections the entity
            can support.  In entities where the maximum number of
            connections is dynamic, this object should contain the
            value -1."
    ::= { tcp 4 }

tcpActiveOpens OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of times that TCP connections have made a direct
            transition to the SYN-SENT state from the CLOSED state.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 5 }

tcpPassiveOpens OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of times TCP connections have made a direct
            transition to the SYN-RCVD state from the LISTEN state.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 6 }

tcpAttemptFails OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of times that TCP connections have made a direct
            transition to the CLOSED state from either the SYN-SENT
            state or the SYN-RCVD state, plus the number of times that
            TCP connections have made a direct transition to the
            LISTEN state from the SYN-RCVD state.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 7 }

tcpEstabResets OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of times that TCP connections have made a direct
            transition to the CLOSED state from either the ESTABLISHED
            state or the CLOSE-WAIT state.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 8 }

tcpCurrEstab OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of TCP connections for which the current state
            is either ESTABLISHED or CLOSE-WAIT."
    ::= { tcp 9 }

tcpInSegs OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The total number of segments received, including those
            received in error.  This count includes segments received
            on currently established connections.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 10 }

tcpOutSegs OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The total number of segments sent, including those on
            current connections but excluding those containing only
            retransmitted octets.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 11 }

tcpRetransSegs OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The total number of segments retransmitted; that is, the
            number of TCP segments transmitted containing one or more
            previously transmitted octets.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 12 }

tcpInErrs OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The total number of segments received in error (e.g., bad
            TCP checksums).

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 14 }

tcpOutRsts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of TCP segments sent containing the RST flag.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 15 }

-- { tcp 16 } was used to represent the ipv6TcpConnTable in RFC 2452,
-- which has since been obsoleted.  It MUST not be used.

tcpHCInSegs OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The total number of segments received, including those
            received in error.  This count includes segments received

            on currently established connections.  This object is
            the 64-bit equivalent of tcpInSegs.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 17 }

tcpHCOutSegs OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The total number of segments sent, including those on
            current connections but excluding those containing only
            retransmitted octets.  This object is the 64-bit
            equivalent of tcpOutSegs.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 18 }

-- The TCP Connection table

tcpConnectionTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF TcpConnectionEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A table containing information about existing TCP
            connections.  Note that unlike earlier TCP MIBs, there
            is a separate table for connections in the LISTEN state."
    ::= { tcp 19 }

tcpConnectionEntry OBJECT-TYPE
    SYNTAX     TcpConnectionEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A conceptual row of the tcpConnectionTable containing
            information about a particular current TCP connection.
            Each row of this table is transient in that it ceases to
            exist when (or soon after) the connection makes the
            transition to the CLOSED state."
    INDEX   { tcpConnectionLocalAddressType,
              tcpConnectionLocalAddress,
              tcpConnectionLocalPort,
              tcpConnectionRemAddressType,
              tcpConnectionRemAddress,
              tcpConnectionRemPort }
    ::= { tcpConnectionTable 1 }

TcpConnectionEntry ::= SEQUENCE {
        tcpConnectionLocalAddressType   InetAddressType,
        tcpConnectionLocalAddress       InetAddress,
        tcpConnectionLocalPort          InetPortNumber,
        tcpConnectionRemAddressType     InetAddressType,
        tcpConnectionRemAddress         InetAddress,
        tcpConnectionRemPort            InetPortNumber,
        tcpConnectionState              INTEGER,
        tcpConnectionProcess            Unsigned32
    }

tcpConnectionLocalAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The address type of tcpConnectionLocalAddress."
    ::= { tcpConnectionEntry 1 }

tcpConnectionLocalAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The local IP address for this TCP connection.  The type
            of this address is determined by the value of
            tcpConnectionLocalAddressType.

            As this object is used in the index for the
            tcpConnectionTable, implementors should be
            careful not to create entries that would result in OIDs
            with more than 128 subidentifiers; otherwise the information
            cannot be accessed by using SNMPv1, SNMPv2c, or SNMPv3."
    ::= { tcpConnectionEntry 2 }

tcpConnectionLocalPort OBJECT-TYPE
    SYNTAX     InetPortNumber
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The local port number for this TCP connection."
    ::= { tcpConnectionEntry 3 }

tcpConnectionRemAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The address type of tcpConnectionRemAddress."
    ::= { tcpConnectionEntry 4 }

tcpConnectionRemAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The remote IP address for this TCP connection.  The type
            of this address is determined by the value of
            tcpConnectionRemAddressType.

            As this object is used in the index for the
            tcpConnectionTable, implementors should be
            careful not to create entries that would result in OIDs
            with more than 128 subidentifiers; otherwise the information
            cannot be accessed by using SNMPv1, SNMPv2c, or SNMPv3."
    ::= { tcpConnectionEntry 5 }

tcpConnectionRemPort OBJECT-TYPE
    SYNTAX     InetPortNumber
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The remote port number for this TCP connection."
    ::= { tcpConnectionEntry 6 }

tcpConnectionState OBJECT-TYPE
    SYNTAX     INTEGER {
                    closed(1),
                    listen(2),
                    synSent(3),
                    synReceived(4),
                    established(5),
                    finWait1(6),
                    finWait2(7),
                    closeWait(8),
                    lastAck(9),
                    closing(10),
                    timeWait(11),
                    deleteTCB(12)
                }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The state of this TCP connection.

            The value listen(2) is included only for parallelism to the
            old tcpConnTable and should not be used.  A connection in
            LISTEN state should be present in the tcpListenerTable.

            The only value that may be set by a management station is
            deleteTCB(12).  Accordingly, it is appropriate for an agent
            to return a `badValue' response if a management station
            attempts to set this object to any other value.

            If a management station sets this object to the value
            deleteTCB(12), then the TCB (as defined in [RFC793]) of
            the corresponding connection on the managed node is
            deleted, resulting in immediate termination of the
            connection.

            As an implementation-specific option, a RST segment may be
            sent from the managed node to the other TCP endpoint (note,
            however, that RST segments are not sent reliably)."
    ::= { tcpConnectionEntry 7 }

tcpConnectionProcess OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The system's process ID for the process associated with
            this connection, or zero if there is no such process.  This
            value is expected to be the same as HOST-RESOURCES-MIB::
            hrSWRunIndex or SYSAPPL-MIB::sysApplElmtRunIndex for some
            row in the appropriate tables."
    ::= { tcpConnectionEntry 8 }

-- The TCP Listener table

tcpListenerTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF TcpListenerEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A table containing information about TCP listeners.  A
            listening application can be represented in three
            possible ways:

            1. An application that is willing to accept both IPv4 and
               IPv6 datagrams is represented by

               a tcpListenerLocalAddressType of unknown (0) and
               a tcpListenerLocalAddress of ''h (a zero-length
               octet-string).

            2. An application that is willing to accept only IPv4 or
               IPv6 datagrams is represented by a
               tcpListenerLocalAddressType of the appropriate address
               type and a tcpListenerLocalAddress of '0.0.0.0' or '::'
               respectively.

            3. An application that is listening for data destined
               only to a specific IP address, but from any remote
               system, is represented by a tcpListenerLocalAddressType
               of an appropriate address type, with
               tcpListenerLocalAddress as the specific local address.

            NOTE: The address type in this table represents the
            address type used for the communication, irrespective
            of the higher-layer abstraction.  For example, an
            application using IPv6 'sockets' to communicate via
            IPv4 between ::ffff:10.0.0.1 and ::ffff:10.0.0.2 would
            use InetAddressType ipv4(1))."
    ::= { tcp 20 }

tcpListenerEntry OBJECT-TYPE
    SYNTAX     TcpListenerEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A conceptual row of the tcpListenerTable containing
            information about a particular TCP listener."
    INDEX   { tcpListenerLocalAddressType,
              tcpListenerLocalAddress,
              tcpListenerLocalPort }
    ::= { tcpListenerTable 1 }

TcpListenerEntry ::= SEQUENCE {
        tcpListenerLocalAddressType       InetAddressType,
        tcpListenerLocalAddress           InetAddress,
        tcpListenerLocalPort              InetPortNumber,
        tcpListenerProcess                Unsigned32
    }

tcpListenerLocalAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The address type of tcpListenerLocalAddress.  The value
            should be unknown (0) if connection initiations to all
            local IP addresses are accepted."
    ::= { tcpListenerEntry 1 }

tcpListenerLocalAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The local IP address for this TCP connection.

            The value of this object can be represented in three
            possible ways, depending on the characteristics of the
            listening application:

            1. For an application willing to accept both IPv4 and
               IPv6 datagrams, the value of this object must be
               ''h (a zero-length octet-string), with the value
               of the corresponding tcpListenerLocalAddressType
               object being unknown (0).

            2. For an application willing to accept only IPv4 or
               IPv6 datagrams, the value of this object must be
               '0.0.0.0' or '::' respectively, with
               tcpListenerLocalAddressType representing the
               appropriate address type.

            3. For an application which is listening for data
               destined only to a specific IP address, the value
               of this object is the specific local address, with
               tcpListenerLocalAddressType representing the
               appropriate address type.

            As this object is used in the index for the
            tcpListenerTable, implementors should be
            careful not to create entries that would result in OIDs
            with more than 128 subidentifiers; otherwise the information
            cannot be accessed, using SNMPv1, SNMPv2c, or SNMPv3."
    ::= { tcpListenerEntry 2 }

tcpListenerLocalPort OBJECT-TYPE
    SYNTAX     InetPortNumber
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The local port number for this TCP connection."
    ::= { tcpListenerEntry 3 }

tcpListenerProcess OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The system's process ID for the process associated with
            this listener, or zero if there is no such process.  This
            value is expected to be the same as HOST-RESOURCES-MIB::
            hrSWRunIndex or SYSAPPL-MIB::sysApplElmtRunIndex for some
            row in the appropriate tables."
    ::= { tcpListenerEntry 4 }

-- The deprecated TCP Connection table

tcpConnTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF TcpConnEntry
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
           "A table containing information about existing IPv4-specific
            TCP connections or listeners.  This table has been
            deprecated in favor of the version neutral
            tcpConnectionTable."
    ::= { tcp 13 }

tcpConnEntry OBJECT-TYPE
    SYNTAX     TcpConnEntry
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
           "A conceptual row of the tcpConnTable containing information
            about a particular current IPv4 TCP connection.  Each row
            of this table is transient in that it ceases to exist when
            (or soon after) the connection makes the transition to the
            CLOSED state."
    INDEX   { tcpConnLocalAddress,
              tcpConnLocalPort,
              tcpConnRemAddress,
              tcpConnRemPort }
    ::= { tcpConnTable 1 }

TcpConnEntry ::= SEQUENCE {
        tcpConnState         INTEGER,
        tcpConnLocalAddress  IpAddress,
        tcpConnLocalPort     Integer32,
        tcpConnRemAddress    IpAddress,
        tcpConnRemPort       Integer32

    }

tcpConnState OBJECT-TYPE
    SYNTAX     INTEGER {
                    closed(1),
                    listen(2),
                    synSent(3),
                    synReceived(4),
                    established(5),
                    finWait1(6),
                    finWait2(7),
                    closeWait(8),
                    lastAck(9),
                    closing(10),
                    timeWait(11),
                    deleteTCB(12)
                }
    MAX-ACCESS read-write
    STATUS     deprecated
    DESCRIPTION
           "The state of this TCP connection.

            The only value that may be set by a management station is
            deleteTCB(12).  Accordingly, it is appropriate for an agent
            to return a `badValue' response if a management station
            attempts to set this object to any other value.

            If a management station sets this object to the value
            deleteTCB(12), then the TCB (as defined in [RFC793]) of
            the corresponding connection on the managed node is
            deleted, resulting in immediate termination of the
            connection.

            As an implementation-specific option, a RST segment may be
            sent from the managed node to the other TCP endpoint (note,
            however, that RST segments are not sent reliably)."
    ::= { tcpConnEntry 1 }

tcpConnLocalAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The local IP address for this TCP connection.  In the case
            of a connection in the listen state willing to
            accept connections for any IP interface associated with the
            node, the value 0.0.0.0 is used."
    ::= { tcpConnEntry 2 }

tcpConnLocalPort OBJECT-TYPE
    SYNTAX     Integer32 (0..65535)
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The local port number for this TCP connection."
    ::= { tcpConnEntry 3 }

tcpConnRemAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The remote IP address for this TCP connection."
    ::= { tcpConnEntry 4 }

tcpConnRemPort OBJECT-TYPE
    SYNTAX     Integer32 (0..65535)
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The remote port number for this TCP connection."
    ::= { tcpConnEntry 5 }

-- conformance information

tcpMIBConformance OBJECT IDENTIFIER ::= { tcpMIB 2 }

tcpMIBCompliances OBJECT IDENTIFIER ::= { tcpMIBConformance 1 }
tcpMIBGroups      OBJECT IDENTIFIER ::= { tcpMIBConformance 2 }

-- compliance statements

tcpMIBCompliance2 MODULE-COMPLIANCE
    STATUS     current
    DESCRIPTION
           "The compliance statement for systems that implement TCP.

            A number of INDEX objects cannot be
            represented in the form of OBJECT clauses in SMIv2 but
            have the following compliance requirements,
            expressed in OBJECT clause form in this description
            clause:

            -- OBJECT      tcpConnectionLocalAddressType
            -- SYNTAX      InetAddressType { ipv4(1), ipv6(2) }
            -- DESCRIPTION
            --     This MIB requires support for only global IPv4

            --     and IPv6 address types.
            --
            -- OBJECT      tcpConnectionRemAddressType
            -- SYNTAX      InetAddressType { ipv4(1), ipv6(2) }
            -- DESCRIPTION
            --     This MIB requires support for only global IPv4
            --     and IPv6 address types.
            --
            -- OBJECT      tcpListenerLocalAddressType
            -- SYNTAX      InetAddressType { unknown(0), ipv4(1),
            --                               ipv6(2) }
            -- DESCRIPTION
            --     This MIB requires support for only global IPv4
            --     and IPv6 address types.  The type unknown also
            --     needs to be supported to identify a special
            --     case in the listener table: a listen using
            --     both IPv4 and IPv6 addresses on the device.
            --
           "
    MODULE  -- this module
        MANDATORY-GROUPS { tcpBaseGroup, tcpConnectionGroup,
                           tcpListenerGroup }
        GROUP       tcpHCGroup
        DESCRIPTION
           "This group is mandatory for systems that are capable
            of receiving or transmitting more than 1 million TCP
            segments per second.  1 million segments per second will
            cause a Counter32 to wrap in just over an hour."
        OBJECT      tcpConnectionState
        SYNTAX      INTEGER { closed(1), listen(2), synSent(3),
                              synReceived(4), established(5),
                              finWait1(6), finWait2(7), closeWait(8),
                              lastAck(9), closing(10), timeWait(11) }
        MIN-ACCESS  read-only
        DESCRIPTION
           "Write access is not required, nor is support for the value
            deleteTCB (12)."
    ::= { tcpMIBCompliances 2 }

tcpMIBCompliance MODULE-COMPLIANCE
    STATUS     deprecated
    DESCRIPTION
           "The compliance statement for IPv4-only systems that
            implement TCP.  In order to be IP version independent, this
            compliance statement is deprecated in favor of
            tcpMIBCompliance2.  However, agents are still encouraged
            to implement these objects in order to interoperate with
            the deployed base of managers."

    MODULE  -- this module
        MANDATORY-GROUPS { tcpGroup }
        OBJECT      tcpConnState
        MIN-ACCESS  read-only
        DESCRIPTION
           "Write access is not required."
    ::= { tcpMIBCompliances 1 }

-- units of conformance

tcpGroup OBJECT-GROUP
    OBJECTS   { tcpRtoAlgorithm, tcpRtoMin, tcpRtoMax,
                tcpMaxConn, tcpActiveOpens,
                tcpPassiveOpens, tcpAttemptFails,
                tcpEstabResets, tcpCurrEstab, tcpInSegs,
                tcpOutSegs, tcpRetransSegs, tcpConnState,
                tcpConnLocalAddress, tcpConnLocalPort,
                tcpConnRemAddress, tcpConnRemPort,
                tcpInErrs, tcpOutRsts }
    STATUS     deprecated
    DESCRIPTION
           "The tcp group of objects providing for management of TCP
            entities."
    ::= { tcpMIBGroups 1 }

tcpBaseGroup OBJECT-GROUP
    OBJECTS   { tcpRtoAlgorithm, tcpRtoMin, tcpRtoMax,
                tcpMaxConn, tcpActiveOpens,
                tcpPassiveOpens, tcpAttemptFails,
                tcpEstabResets, tcpCurrEstab, tcpInSegs,
                tcpOutSegs, tcpRetransSegs,
                tcpInErrs, tcpOutRsts }
    STATUS     current
    DESCRIPTION
           "The group of counters common to TCP entities."
    ::= { tcpMIBGroups 2 }

tcpConnectionGroup OBJECT-GROUP
    OBJECTS    { tcpConnectionState, tcpConnectionProcess }
    STATUS     current
    DESCRIPTION
           "The group provides general information about TCP
            connections."
    ::= { tcpMIBGroups 3 }

tcpListenerGroup OBJECT-GROUP
    OBJECTS    { tcpListenerProcess }
    STATUS     current
    DESCRIPTION
           "This group has objects providing general information about
            TCP listeners."
    ::= { tcpMIBGroups 4 }

tcpHCGroup OBJECT-GROUP
    OBJECTS    { tcpHCInSegs, tcpHCOutSegs }
    STATUS     current
    DESCRIPTION
           "The group of objects providing for counters of high speed
            TCP implementations."
    ::= { tcpMIBGroups 5 }

END
DISMAN-EVENT-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    Integer32, Unsigned32,
    NOTIFICATION-TYPE, Counter32,
    Gauge32, mib-2, zeroDotZero         FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, RowStatus,
    TruthValue                FROM SNMPv2-TC

    MODULE-COMPLIANCE, OBJECT-GROUP,
    NOTIFICATION-GROUP             FROM SNMPv2-CONF
    sysUpTime                 FROM SNMPv2-MIB
    SnmpTagValue              FROM SNMP-TARGET-MIB
    SnmpAdminString           FROM SNMP-FRAMEWORK-MIB;

dismanEventMIB MODULE-IDENTITY
    LAST-UPDATED "200010160000Z"            -- 16 October 2000
    ORGANIZATION "IETF Distributed Management Working Group"
    CONTACT-INFO "Ramanathan Kavasseri
                  Cisco Systems, Inc.
                  170 West Tasman Drive,
                  San Jose CA 95134-1706.
                  Phone: +1 408 526 4527
                  Email: ramk@cisco.com"
    DESCRIPTION
     "The MIB module for defining event triggers and actions
     for network management purposes."
-- Revision History

       REVISION     "200010160000Z"            -- 16 October 2000
       DESCRIPTION  "This is the initial version of this MIB.
                    Published as RFC 2981"
    ::= { mib-2 88 }

dismanEventMIBObjects OBJECT IDENTIFIER ::= { dismanEventMIB 1 }

-- Management Triggered Event (MTE) objects

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

--
-- Textual Conventions
--

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

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

        returning that code.

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

        localResourceLack       some local resource such as memory
                                lacking or
                                mteResourceSampleInstanceMaximum
                                exceeded
        badDestination          unrecognized domain name or otherwise
                                invalid destination address
        destinationUnreachable  can't get to destination address
        noResponse              no response to SNMP request
        badType                 the data syntax of a retrieved object
                                as not as expected
        sampleOverrun           another sample attempt occurred before
                                the previous one completed"
    SYNTAX      INTEGER { localResourceLack(-1),
                          badDestination(-2),
                          destinationUnreachable(-3),
                          noResponse(-4),
                          badType(-5),
                          sampleOverrun(-6),
                          noError(0),
                          tooBig(1),
                          noSuchName(2),
                          badValue(3),
                          readOnly(4),
                          genErr(5),
                          noAccess(6),
                          wrongType(7),
                          wrongLength(8),
                          wrongEncoding(9),
                          wrongValue(10),
                          noCreation(11),
                          inconsistentValue(12),
                          resourceUnavailable(13),
                          commitFailed(14),
                          undoFailed(15),
                          authorizationError(16),
                          notWritable(17),
                          inconsistentName(18) }
--

-- Resource Control Section
--

mteResourceSampleMinimum OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The minimum mteTriggerFrequency this system will
        accept.  A system may use the larger values of this minimum to
        lessen the impact of constant sampling.  For larger
        sampling intervals the system samples less often and
        suffers less overhead.  This object provides a way to enforce
        such lower overhead for all triggers created after it is
        set.

        Unless explicitly resource limited, a system's value for
        this object SHOULD be 1, allowing as small as a 1 second
        interval for ongoing trigger sampling.

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

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

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

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

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

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

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

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

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

--
-- Trigger Section
--

-- Counters

mteTriggerFailures OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "failures"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times an attempt to check for a trigger
        condition has failed.  This counts individually for each
        attempt in a group of targets or each attempt for a

        wildcarded object."
    ::= { mteTrigger 1 }

--
-- Trigger Table
--

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

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

MteTriggerEntry ::= SEQUENCE {
    mteOwner                            SnmpAdminString,
    mteTriggerName                      SnmpAdminString,
    mteTriggerComment                   SnmpAdminString,
    mteTriggerTest                      BITS,
    mteTriggerSampleType                INTEGER,
    mteTriggerValueID                   OBJECT IDENTIFIER,
    mteTriggerValueIDWildcard           TruthValue,
    mteTriggerTargetTag                 SnmpTagValue,
    mteTriggerContextName               SnmpAdminString,
    mteTriggerContextNameWildcard       TruthValue,
    mteTriggerFrequency                 Unsigned32,
    mteTriggerObjectsOwner              SnmpAdminString,
    mteTriggerObjects                   SnmpAdminString,
    mteTriggerEnabled                   TruthValue,
    mteTriggerEntryStatus               RowStatus
}

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

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

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

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

        For 'existence', the specific test is as selected by
        mteTriggerExistenceTest.  When an object appears, vanishes
        or changes value, the trigger fires. If the object's
        appearance caused the trigger firing, the object MUST
        vanish before the trigger can be fired again for it, and
        vice versa. If the trigger fired due to a change in the
        object's value, it will be fired again on every successive
        value change for that object.

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

        For 'threshold' the test works as described below for

        mteTriggerThresholdStartup, mteTriggerThresholdRising, and
        mteTriggerThresholdFalling.

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

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

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

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

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

        For 'deltaValue' mteTriggerDeltaTable contains further
        parameters.

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

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

        This may be wildcarded by truncating all or part of the
        instance portion, in which case the value is obtained
        as if with a GetNext function, checking multiple values

        if they exist.  If such wildcarding is applied,
        mteTriggerValueIDWildcard must be 'true' and if not it must
        be 'false'.

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

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

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

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

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

        Otherwise access rights are checked according to the security

        parameters resulting from the tag."
    DEFVAL { ''H }
    ::= { mteTriggerEntry 8 }

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

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

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

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

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

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

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

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

        Systems that can support this SHOULD document those cases
        where it can be used.  In cases where it can not, setting this
        object to 0 should be disallowed."
    DEFVAL { 600 }
    ::= { mteTriggerEntry 11 }

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

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

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

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

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

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

--
-- Trigger Delta Table
--

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

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

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

sysUpTimeInstance OBJECT IDENTIFIER ::= { sysUpTime 0 }

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

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

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

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

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

mteTriggerDeltaDiscontinuityIDWildcard OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "Control for whether mteTriggerDeltaDiscontinuityID is to be
        treated as fully-specified or wildcarded, with 'true'
        indicating wildcard. Note that the value of this object will
        be the same as that of the corresponding instance of
        mteTriggerValueIDWildcard when the corresponding

        mteTriggerSampleType is 'deltaValue'."
    DEFVAL { false }
    ::= { mteTriggerDeltaEntry 2 }

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

--
-- Trigger Existence Table
--

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

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

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

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

        present(0) - when this test is selected, the trigger fires
        when the mteTriggerValueID object goes from absent to present.

        absent(1)  - when this test is selected, the trigger fires
        when the mteTriggerValueID object goes from present to absent.
        changed(2) - when this test is selected, the trigger fires
        the mteTriggerValueID object value changes.

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

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

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

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

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

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

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

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

--
-- Trigger Boolean Table
--

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

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

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

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

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

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

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

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

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

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

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

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

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

--
-- Trigger Threshold Table
--

mteTriggerThresholdTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MteTriggerThresholdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of management event trigger information for threshold
        triggers."
    ::= { mteTrigger 6 }

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

MteTriggerThresholdEntry ::= SEQUENCE {
    mteTriggerThresholdStartup                  INTEGER,
    mteTriggerThresholdRising                   Integer32,
    mteTriggerThresholdFalling                  Integer32,
    mteTriggerThresholdDeltaRising              Integer32,
    mteTriggerThresholdDeltaFalling             Integer32,
    mteTriggerThresholdObjectsOwner             SnmpAdminString,
    mteTriggerThresholdObjects                  SnmpAdminString,
    mteTriggerThresholdRisingEventOwner         SnmpAdminString,
    mteTriggerThresholdRisingEvent              SnmpAdminString,
    mteTriggerThresholdFallingEventOwner        SnmpAdminString,
    mteTriggerThresholdFallingEvent             SnmpAdminString,
    mteTriggerThresholdDeltaRisingEventOwner    SnmpAdminString,
    mteTriggerThresholdDeltaRisingEvent         SnmpAdminString,
    mteTriggerThresholdDeltaFallingEventOwner   SnmpAdminString,
    mteTriggerThresholdDeltaFallingEvent        SnmpAdminString
}

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

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

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

        After a rising event is generated, another such event is not
        triggered until the sampled value falls below this threshold
        and reaches mteTriggerThresholdFalling."
    DEFVAL { 0 }
    ::= { mteTriggerThresholdEntry 2 }

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

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

        After a falling event is generated, another such event is not
        triggered until the sampled value rises above this threshold
        and reaches mteTriggerThresholdRising."
    DEFVAL { 0 }
    ::= { mteTriggerThresholdEntry 3 }

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

        When the delta value (difference) between the current sampled
        value (value(n)) and the previous sampled value (value(n-1))
        is greater than or equal to this threshold,
        and the delta value calculated at the last sampling interval
        (i.e. value(n-1) - value(n-2)) was less than this threshold,
        one mteTriggerThresholdDeltaRisingEvent is triggered. That event
        is also triggered if the first delta value calculated after this
        entry becomes active, i.e. value(2) - value(1), where value(1)
        is the first sample taken of that instance, is greater than or
        equal to this threshold.

        After a rising event is generated, another such event is not
        triggered until the delta value falls below this threshold and
        reaches mteTriggerThresholdDeltaFalling."
    DEFVAL { 0 }
    ::= { mteTriggerThresholdEntry 4 }

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

        When the delta value (difference) between the current sampled
        value (value(n)) and the previous sampled value (value(n-1))
        is less than or equal to this threshold,
        and the delta value calculated at the last sampling interval
        (i.e. value(n-1) - value(n-2)) was greater than this threshold,
        one mteTriggerThresholdDeltaFallingEvent is triggered. That event
        is also triggered if the first delta value calculated after this
        entry becomes active, i.e. value(2) - value(1), where value(1)
        is the first sample taken of that instance, is less than or
        equal to this threshold.

        After a falling event is generated, another such event is not
        triggered until the delta value falls below this threshold and
        reaches mteTriggerThresholdDeltaRising."
    DEFVAL { 0 }
    ::= { mteTriggerThresholdEntry 5 }

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

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

        A list of objects may also be added based on the overall

        trigger, the event or other settings in mteTriggerTest.

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

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

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

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

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

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

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

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

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

--
-- Objects Table
--

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

mteObjectsEntry OBJECT-TYPE
    SYNTAX      MteObjectsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A group of objects.  Applications create and delete entries
        using mteObjectsEntryStatus.

        When adding objects to a notification they are added in the
        lexical order of their index in this table.  Those associated
        with a trigger come first, then trigger test, then event."
    INDEX       { mteOwner, mteObjectsName, mteObjectsIndex }
    ::= { mteObjectsTable 1 }

MteObjectsEntry ::= SEQUENCE {
    mteObjectsName                      SnmpAdminString,
    mteObjectsIndex                     Unsigned32,
    mteObjectsID                        OBJECT IDENTIFIER,
    mteObjectsIDWildcard                TruthValue,
    mteObjectsEntryStatus               RowStatus
    }

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

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

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

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

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

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

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

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

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

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

--
-- Event Section
--

-- Counters

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

--
-- Event Table
--

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

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

MteEventEntry ::= SEQUENCE {
    mteEventName                        SnmpAdminString,
    mteEventComment                     SnmpAdminString,
    mteEventActions                     BITS,
    mteEventEnabled                     TruthValue,
    mteEventEntryStatus                 RowStatus
    }

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

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

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

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

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

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

        triggered."
    DEFVAL { false }
    ::= { mteEventEntry 4 }

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

--
-- Event Notification Table
--

mteEventNotificationTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MteEventNotificationEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of information about notifications to be sent as a
        consequence of management events."
    ::= { mteEvent 3 }

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

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

mteEventNotification OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The object identifier from the NOTIFICATION-TYPE for the
        notification to use if metEventActions has 'notification' set."
    DEFVAL { zeroDotZero }
    ::= { mteEventNotificationEntry 1 }

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

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

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

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

--
-- Event Set Table
--

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

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

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

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

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

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

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

        Bad object identifiers or a mismatch between truncating the
        identifier and the value of mteSetObjectWildcard
        result in operation as one would expect when providing the
        wrong identifier to a Set operation.  The Set will fail or set
        the wrong object.  If the value syntax of the destination
        object is not correct, the Set fails with the normal SNMP
        error code."
    DEFVAL { zeroDotZero }
    ::= { mteEventSetEntry 1 }

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

mteEventSetValue OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value to which to set the object at mteEventSetObject
        if mteEventActions has 'set' set."
    DEFVAL { 0 }
    ::= { mteEventSetEntry 3 }

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

        Systems limited to self management MAY reject a non-zero
        length for the value of this object.

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

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

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

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

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

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

--
-- Notifications
--

dismanEventMIBNotificationPrefix OBJECT IDENTIFIER ::=
    { dismanEventMIB 2 }
dismanEventMIBNotifications OBJECT IDENTIFIER ::=
    { dismanEventMIBNotificationPrefix 0 }
dismanEventMIBNotificationObjects OBJECT IDENTIFIER
   ::= { dismanEventMIBNotificationPrefix 1 }

--
-- Notification Objects
--

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

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

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

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

        For a trigger-related notification this is from
        mteTriggerValueID.

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

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

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

--
-- Notifications
--

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

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

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

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

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

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

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

--
-- Conformance
--

dismanEventMIBConformance OBJECT IDENTIFIER ::= { dismanEventMIB 3 }
dismanEventMIBCompliances OBJECT IDENTIFIER ::=
    { dismanEventMIBConformance 1 }
dismanEventMIBGroups      OBJECT IDENTIFIER ::=
    { dismanEventMIBConformance 2 }

-- Compliance

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

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

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

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

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

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

                OBJECT mteEventSetContextNameWildcard
                MIN-ACCESS  read-only
                DESCRIPTION
                        "Write access is not required, thus allowing
                        the system not to implement wildcarding."
        ::= { dismanEventMIBCompliances 1 }

-- Units of Conformance

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

dismanEventTriggerGroup OBJECT-GROUP
        OBJECTS {
                mteTriggerFailures,
                mteTriggerComment,
                mteTriggerTest,
                mteTriggerSampleType,
                mteTriggerValueID,
                mteTriggerValueIDWildcard,
                mteTriggerTargetTag,
                mteTriggerContextName,
                mteTriggerContextNameWildcard,
                mteTriggerFrequency,
                mteTriggerObjectsOwner,
                mteTriggerObjects,
                mteTriggerEnabled,
                mteTriggerEntryStatus,
                mteTriggerDeltaDiscontinuityID,
                mteTriggerDeltaDiscontinuityIDWildcard,
                mteTriggerDeltaDiscontinuityIDType,
                mteTriggerExistenceTest,
                mteTriggerExistenceStartup,
                mteTriggerExistenceObjectsOwner,
                mteTriggerExistenceObjects,
                mteTriggerExistenceEventOwner,
                mteTriggerExistenceEvent,
                mteTriggerBooleanComparison,
                mteTriggerBooleanValue,
                mteTriggerBooleanStartup,
                mteTriggerBooleanObjectsOwner,
                mteTriggerBooleanObjects,
                mteTriggerBooleanEventOwner,
                mteTriggerBooleanEvent,
                mteTriggerThresholdStartup,
                mteTriggerThresholdObjectsOwner,
                mteTriggerThresholdObjects,
                mteTriggerThresholdRising,
                mteTriggerThresholdFalling,
                mteTriggerThresholdDeltaRising,
                mteTriggerThresholdDeltaFalling,
                mteTriggerThresholdRisingEventOwner,
                mteTriggerThresholdRisingEvent,
                mteTriggerThresholdFallingEventOwner,
                mteTriggerThresholdFallingEvent,
                mteTriggerThresholdDeltaRisingEventOwner,
                mteTriggerThresholdDeltaRisingEvent,
                mteTriggerThresholdDeltaFallingEventOwner,
                mteTriggerThresholdDeltaFallingEvent
        }
        STATUS current
        DESCRIPTION
                "Event triggers."
        ::= { dismanEventMIBGroups 2 }

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

dismanEventEventGroup OBJECT-GROUP
        OBJECTS {
                mteEventFailures,
                mteEventComment,
                mteEventActions,
                mteEventEnabled,
                mteEventEntryStatus,
                mteEventNotification,
                mteEventNotificationObjectsOwner,
                mteEventNotificationObjects,
                mteEventSetObject,
                mteEventSetObjectWildcard,
                mteEventSetValue,
                mteEventSetTargetTag,
                mteEventSetContextName,
                mteEventSetContextNameWildcard
        }
        STATUS current
        DESCRIPTION
                "Events."
        ::= { dismanEventMIBGroups 4 }

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

dismanEventNotificationGroup NOTIFICATION-GROUP
        NOTIFICATIONS {
                mteTriggerFired,
                mteTriggerRising,
                mteTriggerFalling,
                mteTriggerFailure,
                mteEventSetFailure
        }
        STATUS current
        DESCRIPTION
                "Notifications."
        ::= { dismanEventMIBGroups 6 }

END
DISMAN-SCRIPT-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    Integer32, Unsigned32, mib-2
        FROM SNMPv2-SMI

    RowStatus, TimeInterval, DateAndTime, StorageType, DisplayString
        FROM SNMPv2-TC

    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM SNMPv2-CONF

    SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB;

scriptMIB MODULE-IDENTITY
    LAST-UPDATED "200108210000Z"
    ORGANIZATION "IETF Distributed Management Working Group"
    CONTACT-INFO
        "WG EMail:  disman@dorothy.bmc.com
         Subscribe: disman-request@dorothy.bmc.com

         Chair:     Randy Presuhn
                    BMC Software, Inc.

         Postal:    Office 1-3141
                    2141 North First Street
                    San Jose,  California 95131
                    USA
         EMail:     rpresuhn@bmc.com
         Phone:     +1 408 546-1006

         Editor:    David B. Levi
                    Nortel Networks
         Postal:    4401 Great America Parkway
                    Santa Clara, CA 95052-8185
                    USA
         EMail:     dlevi@nortelnetworks.com
         Phone:     +1 423 686 0432

         Editor:    Juergen Schoenwaelder
                    TU Braunschweig
         Postal:    Bueltenweg 74/75
                    38106 Braunschweig
                    Germany
         EMail:     schoenw@ibr.cs.tu-bs.de
         Phone:     +49 531 391-3283"
    DESCRIPTION
        "This MIB module defines a set of objects that allow to
         delegate management scripts to distributed managers."
    REVISION    "200108210000Z"
    DESCRIPTION
        "Revised version, published as RFC 3165.

         This revision introduces several new objects: smScriptError,
         smScriptLastChange, smLaunchError, smLaunchLastChange,
         smLaunchRowExpireTime, smRunResultTime, and smRunErrorTime.

         The following existing objects were updated: the maximum
         value of smRunLifeTime now disables the timer, an
         autostart value was added to the smLaunchAdminStatus
         object, and a new expired state was added to the
         smLaunchOperStatus object.

         A new smScriptException notification has been added to
         support runtime error notifications.

         Created new conformance and compliance statements that
         take care of the new objects and notifications.

         Clarifications have been added in several places to remove
         ambiguities or contradictions that were discovered and
         reported by implementors."

    REVISION    "199902221800Z"
    DESCRIPTION
        "Initial version, published as RFC 2592."
    ::= { mib-2 64 }

--
-- The groups defined within this MIB module:
--

smObjects       OBJECT IDENTIFIER ::= { scriptMIB 1 }
smNotifications OBJECT IDENTIFIER ::= { scriptMIB 2 }
smConformance   OBJECT IDENTIFIER ::= { scriptMIB 3 }

--
-- Script language and language extensions.
--
-- This group defines tables which list the languages and the
-- language extensions supported by a Script MIB implementation.
-- Languages are uniquely identified by object identifier values.
--

smLangTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SmLangEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table lists supported script languages."
    ::= { smObjects 1 }

smLangEntry OBJECT-TYPE
    SYNTAX      SmLangEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry describing a particular language."
    INDEX { smLangIndex }
    ::= { smLangTable 1 }

SmLangEntry ::= SEQUENCE {
    smLangIndex         Integer32,
    smLangLanguage      OBJECT IDENTIFIER,
    smLangVersion       SnmpAdminString,
    smLangVendor        OBJECT IDENTIFIER,
    smLangRevision      SnmpAdminString,
    smLangDescr         SnmpAdminString
}

smLangIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The locally arbitrary, but unique identifier associated
         with this language entry.

         The value is expected to remain constant at least from one
         re-initialization of the entity's network management system
         to the next re-initialization.

         Note that the data type and the range of this object must
         be consistent with the definition of smScriptLanguage."
    ::= { smLangEntry 1 }

smLangLanguage OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The globally unique identification of the language."
    ::= { smLangEntry 2 }

smLangVersion OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The version number of the language. The zero-length string
         shall be used if the language does not have a version
         number.

         It is suggested that the version number consist of one or
         more decimal numbers separated by dots, where the first
         number is called the major version number."
    ::= { smLangEntry 3 }

smLangVendor OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An object identifier which identifies the vendor who
         provides the implementation of the language. This object
         identifier SHALL point to the object identifier directly
         below the enterprise object identifier {1 3 6 1 4 1}
         allocated for the vendor. The value must be the object
         identifier {0 0} if the vendor is not known."
    ::= { smLangEntry 4 }

smLangRevision OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The version number of the language implementation.
         The value of this object must be an empty string if
         version number of the implementation is unknown.

         It is suggested that the value consist of one or more
         decimal numbers separated by dots, where the first
         number is called the major version number."
    ::= { smLangEntry 5 }

smLangDescr OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A textual description of the language."
    ::= { smLangEntry 6 }

smExtsnTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SmExtsnEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table lists supported language extensions."
    ::= { smObjects 2 }

smExtsnEntry OBJECT-TYPE
    SYNTAX      SmExtsnEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry describing a particular language extension."
    INDEX { smLangIndex, smExtsnIndex }
    ::= { smExtsnTable 1 }

SmExtsnEntry ::= SEQUENCE {
    smExtsnIndex        Integer32,
    smExtsnExtension    OBJECT IDENTIFIER,
    smExtsnVersion      SnmpAdminString,
    smExtsnVendor       OBJECT IDENTIFIER,
    smExtsnRevision     SnmpAdminString,
    smExtsnDescr        SnmpAdminString
}

smExtsnIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The locally arbitrary, but unique identifier associated
         with this language extension entry.

         The value is expected to remain constant at least from one
         re-initialization of the entity's network management system
         to the next re-initialization."
    ::= { smExtsnEntry 1}

smExtsnExtension OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The globally unique identification of the language
         extension."
    ::= { smExtsnEntry 2 }

smExtsnVersion OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The version number of the language extension.
         It is suggested that the version number consist of one or
         more decimal numbers separated by dots, where the first
         number is called the major version number."
    ::= { smExtsnEntry 3 }

smExtsnVendor OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An object identifier which identifies the vendor who
         provides the implementation of the extension. The
         object identifier value should point to the OID node
         directly below the enterprise OID {1 3 6 1 4 1}
         allocated for the vendor. The value must by the object
         identifier {0 0} if the vendor is not known."
    ::= { smExtsnEntry 4 }

smExtsnRevision OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The version number of the extension implementation.
         The value of this object must be an empty string if
         version number of the implementation is unknown.

         It is suggested that the value consist of one or more
         decimal numbers separated by dots, where the first
         number is called the major version number."
    ::= { smExtsnEntry 5 }

smExtsnDescr OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A textual description of the language extension."
    ::= { smExtsnEntry 6 }

--
-- Scripts known by the Script MIB implementation.
--
-- This group defines a table which lists all known scripts.
-- Scripts can be added and removed through manipulation of the
-- smScriptTable.
--

smScriptObjects OBJECT IDENTIFIER ::= { smObjects 3 }

smScriptTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SmScriptEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table lists and describes locally known scripts."
    ::= { smScriptObjects 1 }

smScriptEntry OBJECT-TYPE
    SYNTAX      SmScriptEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry describing a particular script. Every script that
         is stored in non-volatile memory is required to appear in
         this script table."
    INDEX { smScriptOwner, smScriptName }
    ::= { smScriptTable 1 }

SmScriptEntry ::= SEQUENCE {
    smScriptOwner       SnmpAdminString,
    smScriptName        SnmpAdminString,
    smScriptDescr       SnmpAdminString,
    smScriptLanguage    Integer32,
    smScriptSource      DisplayString,
    smScriptAdminStatus INTEGER,
    smScriptOperStatus  INTEGER,
    smScriptStorageType StorageType,
    smScriptRowStatus   RowStatus,
    smScriptError       SnmpAdminString,
    smScriptLastChange  DateAndTime
}

smScriptOwner OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The manager who owns this row in the smScriptTable."
    ::= { smScriptEntry 1 }

smScriptName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (1..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The locally-unique, administratively assigned name for this
         script. This object allows an smScriptOwner to have multiple
         entries in the smScriptTable.

         This value of this object may be used to derive the name
         (e.g. a file name) which is used by the Script MIB
         implementation to access the script in non-volatile
         storage. The details of this mapping are implementation
         specific. However, the mapping needs to ensure that scripts
         created by different owners with the same script name do not
         map to the same name in non-volatile storage."
    ::= { smScriptEntry 2 }

smScriptDescr OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A description of the purpose of the script."
    ::= { smScriptEntry 3 }

smScriptLanguage OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of this object type identifies an entry in the
         smLangTable which is used to execute this script.
         The special value 0 may be used by hard-wired scripts
         that can not be modified and that are executed by
         internal functions.

         Set requests to change this object are invalid if the
         value of smScriptOperStatus is `enabled' or `compiling'
         and will result in an inconsistentValue error.

         Note that the data type and the range of this object must
         be consistent with the definition of smLangIndex."
    ::= { smScriptEntry 4 }

smScriptSource OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object either contains a reference to the script
         source or an empty string. A reference must be given
         in the form of a Uniform Resource Locator (URL) as
         defined in RFC 2396. The allowed character sets and the
         encoding rules defined in RFC 2396 section 2 apply.

         When the smScriptAdminStatus object is set to `enabled',
         the Script MIB implementation will `pull' the script
         source from the URL contained in this object if the URL
         is not empty.

         An empty URL indicates that the script source is loaded
         from local storage. The script is read from the smCodeTable
         if the value of smScriptStorageType is volatile. Otherwise,
         the script is read from non-volatile storage.

         Note: This document does not mandate implementation of any
         specific URL scheme. An attempt to load a script from a
         nonsupported URL scheme will cause the smScriptOperStatus
         to report an `unknownProtocol' error.

         Set requests to change this object are invalid if the
         value of smScriptOperStatus is `enabled', `editing',
         `retrieving' or `compiling' and will result in an
         inconsistentValue error."
    DEFVAL { ''H }
    ::= { smScriptEntry 5 }

smScriptAdminStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                    enabled(1),
                    disabled(2),
                    editing(3)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of this object indicates the desired status of
         the script. See the definition of smScriptOperStatus for
         a description of the values.

         When the smScriptAdminStatus object is set to `enabled' and
         the smScriptOperStatus is `disabled' or one of the error
         states, the Script MIB implementation will `pull' the script
         source from the URL contained in the smScriptSource object
         if the URL is not empty."
    DEFVAL { disabled }
    ::= { smScriptEntry 6 }

smScriptOperStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                    enabled(1),
                    disabled(2),
                    editing(3),
                    retrieving(4),
                    compiling(5),
                    noSuchScript(6),
                    accessDenied(7),
                    wrongLanguage(8),
                    wrongVersion(9),
                    compilationFailed(10),
                    noResourcesLeft(11),
                    unknownProtocol(12),
                    protocolFailure(13),
                    genericError(14)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The actual status of the script in the runtime system. The
         value of this object is only meaningful when the value of
         the smScriptRowStatus object is `active'.

         The smScriptOperStatus object may have the following values:

         - `enabled' indicates that the script is available and can
            be started by a launch table entry.

         - `disabled' indicates that the script can not be used.

         - `editing' indicates that the script can be modified in the
           smCodeTable.

         - `retrieving' indicates that the script is currently being
           loaded from non-volatile storage or a remote system.

         - `compiling' indicates that the script is currently being
           compiled by the runtime system.

         - `noSuchScript' indicates that the script does not exist
           at the smScriptSource.

         - `accessDenied' indicates that the script can not be loaded
           from the smScriptSource due to a lack of permissions.

         - `wrongLanguage' indicates that the script can not be
            loaded from the smScriptSource because of a language
            mismatch.

         - `wrongVersion' indicates that the script can not be loaded
           from the smScriptSource because of a language version
           mismatch.

         - `compilationFailed' indicates that the compilation failed.

         - `noResourcesLeft' indicates that the runtime system does
           not have enough resources to load the script.

         - `unknownProtocol' indicates that the script could not be
           loaded from the smScriptSource because the requested
           protocol is not supported.

         - `protocolFailure' indicates that the script could not be
           loaded from the smScriptSource because of a protocol
           failure.

         - `genericError' indicates that the script could not be

           loaded due to an error condition not listed above.

         The `retrieving' and `compiling' states are transient states
         which will either lead to one of the error states or the
         `enabled' state. The `disabled' and `editing' states are
         administrative states which are only reached by explicit
         management operations.

         All launch table entries that refer to this script table
         entry shall have an smLaunchOperStatus value of `disabled'
         when the value of this object is not `enabled'."
    DEFVAL { disabled }
    ::= { smScriptEntry 7 }

smScriptStorageType OBJECT-TYPE
    SYNTAX      StorageType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object defines whether this row and the script
         controlled by this row are kept in volatile storage and
         lost upon reboot or if this row is backed up by
         non-volatile or permanent storage.

         The storage type of this row always complies with the value
         of this entry if the value of the corresponding RowStatus
         object is `active'.

         However, the storage type of the script controlled by this
         row may be different, if the value of this entry is
         `non-volatile'. The script controlled by this row is written
         into local non-volatile storage if the following condition
         becomes true:

         (a) the URL contained in the smScriptSource object is empty
             and
         (b) the smScriptStorageType is `nonVolatile'
             and
         (c) the smScriptOperStatus is `enabled'

         Setting this object to `volatile' removes a script from
         non-volatile storage if the script controlled by this row
         has been in non-volatile storage before. Attempts to set
         this object to permanent will always fail with an
         inconsistentValue error.

         The value of smScriptStorageType is only meaningful if the
         value of the corresponding RowStatus object is `active'.

         If smScriptStorageType has the value permanent(4), then all
         objects whose MAX-ACCESS value is read-create must be
         writable, with the exception of the smScriptStorageType and
         smScriptRowStatus objects, which shall be read-only."
    DEFVAL { volatile }
    ::= { smScriptEntry 8 }

smScriptRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A control that allows entries to be added and removed from
         this table.

         Changing the smScriptRowStatus from `active' to
         `notInService' will remove the associated script from the
         runtime system.

         Deleting conceptual rows from this table may affect the
         deletion of other resources associated with this row. For
         example, a script stored in non-volatile storage may be
         removed from non-volatile storage.

         An entry may not exist in the `active' state unless all
         required objects in the entry have appropriate values. Rows
         that are not complete or not in service are not known by the
         script runtime system.

         Attempts to `destroy' a row or to set a row `notInService'
         while the smScriptOperStatus is `enabled' will result in an
         inconsistentValue error.

         Attempts to `destroy' a row or to set a row `notInService'
         where the value of the smScriptStorageType object is
         `permanent' or `readOnly' will result in an
         inconsistentValue error.

         The value of this object has no effect on whether other
         objects in this conceptual row can be modified."
    ::= { smScriptEntry 9 }

smScriptError OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object contains a descriptive error message if the

         transition into the operational status `enabled' failed.
         Implementations must reset the error message to a
         zero-length string when a new attempt to change the
         script status to `enabled' is started."
    DEFVAL { ''H }
    ::= { smScriptEntry 10 }

smScriptLastChange OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The date and time when this script table entry was last
         modified. The value '0000000000000000'H is returned if
         the script table entry has not yet been modified.

         Note that the resetting of smScriptError is not considered
         a change of the script table entry."
    DEFVAL { '0000000000000000'H }
    ::= { smScriptEntry 11 }

--
-- Access to script code via SNMP
--
-- The smCodeTable allows script code to be read and modified
-- via SNMP.
--

smCodeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SmCodeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains the script code for scripts that are
         written via SNMP write operations."
    ::= { smScriptObjects 2 }

smCodeEntry OBJECT-TYPE
    SYNTAX      SmCodeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry describing a particular fragment of a script."
    INDEX { smScriptOwner, smScriptName, smCodeIndex }
    ::= { smCodeTable 1 }

SmCodeEntry ::= SEQUENCE {
    smCodeIndex         Unsigned32,
    smCodeText          OCTET STRING,
    smCodeRowStatus     RowStatus
}

smCodeIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The index value identifying this code fragment."
    ::= { smCodeEntry 1 }

smCodeText OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (1..1024))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The code that makes up a fragment of a script. The format
         of this code fragment depends on the script language which
         is identified by the associated smScriptLanguage object."
    ::= { smCodeEntry 2 }

smCodeRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A control that allows entries to be added and removed from
         this table.

         The value of this object has no effect on whether other
         objects in this conceptual row can be modified."
    ::= { smCodeEntry 3 }

--
-- Script execution.
--
-- This group defines tables which allow script execution to be
-- initiated, suspended, resumed, and terminated.  It also provides
-- a mechanism for keeping a history of recent script executions
-- and their results.
--

smRunObjects OBJECT IDENTIFIER ::= { smObjects 4 }

smLaunchTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SmLaunchEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table lists and describes scripts that are ready
         to be executed together with their parameters."
    ::= { smRunObjects 1 }

smLaunchEntry OBJECT-TYPE
    SYNTAX      SmLaunchEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry describing a particular executable script."
    INDEX { smLaunchOwner, smLaunchName }
    ::= { smLaunchTable 1 }

SmLaunchEntry ::= SEQUENCE {
    smLaunchOwner               SnmpAdminString,
    smLaunchName                SnmpAdminString,
    smLaunchScriptOwner         SnmpAdminString,
    smLaunchScriptName          SnmpAdminString,
    smLaunchArgument            OCTET STRING,
    smLaunchMaxRunning          Unsigned32,
    smLaunchMaxCompleted        Unsigned32,
    smLaunchLifeTime            TimeInterval,
    smLaunchExpireTime          TimeInterval,
    smLaunchStart               Integer32,
    smLaunchControl             INTEGER,
    smLaunchAdminStatus         INTEGER,
    smLaunchOperStatus          INTEGER,
    smLaunchRunIndexNext        Integer32,
    smLaunchStorageType         StorageType,
    smLaunchRowStatus           RowStatus,
    smLaunchError               SnmpAdminString,
    smLaunchLastChange          DateAndTime,
    smLaunchRowExpireTime       TimeInterval
}

smLaunchOwner OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The manager who owns this row in the smLaunchTable. Every
         instance of a running script started from a particular entry
         in the smLaunchTable (i.e. entries in the smRunTable) will
         be owned by the same smLaunchOwner used to index the entry
         in the smLaunchTable. This owner is not necessarily the same
         as the owner of the script itself (smLaunchScriptOwner)."
    ::= { smLaunchEntry 1 }

smLaunchName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (1..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The locally-unique, administratively assigned name for this
         launch table entry. This object allows an smLaunchOwner to
         have multiple entries in the smLaunchTable. The smLaunchName
         is an arbitrary name that must be different from any other
         smLaunchTable entries with the same smLaunchOwner but can be
         the same as other entries in the smLaunchTable with
         different smLaunchOwner values. Note that the value of
         smLaunchName is not related in any way to the name of the
         script being launched."
    ::= { smLaunchEntry 2 }

smLaunchScriptOwner OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of this object in combination with the value of
         smLaunchScriptName identifies the script that can be
         launched from this smLaunchTable entry. Attempts to write
         this object will fail with an inconsistentValue error if
         the value of smLaunchOperStatus is `enabled'."
    ::= { smLaunchEntry 3 }

smLaunchScriptName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of this object in combination with the value of
         the smLaunchScriptOwner identifies the script that can be
         launched from this smLaunchTable entry. The zero-length
         string may be used to point to a non-existing script.

         Attempts to write this object will fail with an
         inconsistentValue error if the value of smLaunchOperStatus
         is `enabled'."
    DEFVAL { ''H }
    ::= { smLaunchEntry 4 }

smLaunchArgument OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The argument supplied to the script. When a script is
         invoked, the value of this object is used to initialize
         the smRunArgument object."
    DEFVAL { ''H }
    ::= { smLaunchEntry 5 }

smLaunchMaxRunning OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The maximum number of concurrently running scripts that may
         be invoked from this entry in the smLaunchTable. Lowering
         the current value of this object does not affect any scripts
         that are already executing."
    DEFVAL { 1 }
    ::= { smLaunchEntry 6 }

smLaunchMaxCompleted OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The maximum number of finished scripts invoked from this
         entry in the smLaunchTable allowed to be retained in the
         smRunTable. Whenever the value of this object is changed
         and whenever a script terminates, entries in the smRunTable
         are deleted if necessary until the number of completed
         scripts is smaller than the value of this object. Scripts
         whose smRunEndTime value indicates the oldest completion
         time are deleted first."
    DEFVAL { 1 }
    ::= { smLaunchEntry 7 }

smLaunchLifeTime OBJECT-TYPE
    SYNTAX      TimeInterval
    UNITS       "centi-seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The default maximum amount of time a script launched
         from this entry may run. The value of this object is used
         to initialize the smRunLifeTime object when a script is
         launched. Changing the value of an smLaunchLifeTime
         instance does not affect scripts previously launched from

         this entry."
    DEFVAL { 360000 }
    ::= { smLaunchEntry 8 }

smLaunchExpireTime OBJECT-TYPE
    SYNTAX      TimeInterval
    UNITS       "centi-seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The default maximum amount of time information about a
         script launched from this entry is kept in the smRunTable
         after the script has completed execution.  The value of
         this object is used to initialize the smRunExpireTime
         object when a script is launched. Changing the value of an
         smLaunchExpireTime instance does not affect scripts
         previously launched from this entry."
    DEFVAL { 360000 }
    ::= { smLaunchEntry 9 }

smLaunchStart OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to start the execution of scripts.
         When retrieved, the value will be the value of smRunIndex
         for the last script that started execution by manipulating
         this object. The value will be zero if no script started
         execution yet.

         A script is started by setting this object to an unused
         smRunIndex value. A new row in the smRunTable will be
         created which is indexed by the value supplied by the
         set-request in addition to the value of smLaunchOwner and
         smLaunchName. An unused value can be obtained by reading
         the smLaunchRunIndexNext object.

         Setting this object to the special value 0 will start
         the script with a self-generated smRunIndex value. The
         consequence is that the script invoker has no reliable
         way to determine the smRunIndex value for this script
         invocation and that the invoker has therefore no way
         to obtain the results from this script invocation. The
         special value 0 is however useful for scheduled script
         invocations.

         If this object is set, the following checks must be

         performed:

         1) The value of the smLaunchOperStatus object in this
            entry of the smLaunchTable must be `enabled'.
         2) The values of smLaunchScriptOwner and
            smLaunchScriptName of this row must identify an
            existing entry in the smScriptTable.
         3) The value of smScriptOperStatus of this entry must
            be `enabled'.
         4) The principal performing the set operation must have
            read access to the script. This must be checked by
            calling the isAccessAllowed abstract service interface
            defined in RFC 2271 on the row in the smScriptTable
            identified by smLaunchScriptOwner and smLaunchScriptName.
            The isAccessAllowed abstract service interface must be
            called on all columnar objects in the smScriptTable with
            a MAX-ACCESS value different than `not-accessible'. The
            test fails as soon as a call indicates that access is
            not allowed.
         5) If the value provided by the set operation is not 0,
            a check must be made that the value is currently not
            in use. Otherwise, if the value provided by the set
            operation is 0, a suitable unused value must be
            generated.
         6) The number of currently executing scripts invoked
            from this smLaunchTable entry must be less than
            smLaunchMaxRunning.

         Attempts to start a script will fail with an
         inconsistentValue error if one of the checks described
         above fails.

         Otherwise, if all checks have been passed, a new entry
         in the smRunTable will be created indexed by smLaunchOwner,
         smLaunchName and the new value for smRunIndex. The value
         of smLaunchArgument will be copied into smRunArgument,
         the value of smLaunchLifeTime will be copied to
         smRunLifeTime, and the value of smLaunchExpireTime
         will be copied to smRunExpireTime.

         The smRunStartTime will be set to the current time and
         the smRunState will be set to `initializing' before the
         script execution is initiated in the appropriate runtime
         system.

         Note that the data type and the range of this object must
         be consistent with the smRunIndex object. Since this
         object might be written from the scheduling MIB, the

         data type Integer32 rather than Unsigned32 is used."
    DEFVAL { 0 }
    ::= { smLaunchEntry 10 }

smLaunchControl OBJECT-TYPE
    SYNTAX      INTEGER {
                    abort(1),
                    suspend(2),
                    resume(3),
                    nop(4)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to request a state change for all
         running scripts in the smRunTable that were started from
         this row in the smLaunchTable.

         Setting this object to abort(1), suspend(2) or resume(3)
         will set the smRunControl object of all applicable rows
         in the smRunTable to abort(1), suspend(2) or resume(3)
         respectively. The phrase `applicable rows' means the set of
         rows which were created from this entry in the smLaunchTable
         and whose value of smRunState allows the corresponding
         state change as described in the definition of the
         smRunControl object. Setting this object to nop(4) has no
         effect.

         Attempts to set this object lead to an inconsistentValue
         error only if all implicated sets on all the applicable
         rows lead to inconsistentValue errors. It is not allowed
         to return an inconsistentValue error if at least one state
         change on one of the applicable rows was successful."
    DEFVAL { nop }
    ::= { smLaunchEntry 11 }

smLaunchAdminStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                    enabled(1),
                    disabled(2),
                    autostart(3)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of this object indicates the desired status of
         this launch table entry. The values enabled(1) and
         autostart(3) both indicate that the launch table entry

         should transition into the operational enabled(1) state as
         soon as the associated script table entry is enabled(1).

         The value autostart(3) further indicates that the script
         is started automatically by conceptually writing the
         value 0 into the associated smLaunchStart object during
         the transition from the `disabled' into the `enabled'
         operational state. This is useful for scripts that are
         to be launched on system start-up."
    DEFVAL { disabled }
    ::= { smLaunchEntry 12 }

smLaunchOperStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                    enabled(1),
                    disabled(2),
                    expired(3)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of this object indicates the actual status of
         this launch table entry.  The smLaunchOperStatus object
         may have the following values:

         - `enabled' indicates that the launch table entry is
           available and can be used to start scripts.

         - `disabled' indicates that the launch table entry can
           not be used to start scripts.

         - `expired' indicates that the launch table entry can
           not be used to start scripts and will disappear as
           soon as all smRunTable entries associated with this
           launch table entry have disappeared.

         The value `enabled' requires that the smLaunchRowStatus
         object is active. The value `disabled' requires that there
         are no entries in the smRunTable associated with this
         smLaunchTable entry."
    DEFVAL { disabled }
    ::= { smLaunchEntry 13 }

smLaunchRunIndexNext OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This variable is used for creating rows in the smRunTable.
         The value of this variable is a currently unused value
         for smRunIndex, which can be written into the smLaunchStart
         object associated with this row to launch a script.

         The value returned when reading this variable must be unique
         for the smLaunchOwner and smLaunchName associated with this
         row. Subsequent attempts to read this variable must return
         different values.

         This variable will return the special value 0 if no new rows
         can be created.

         Note that the data type and the range of this object must be
         consistent with the definition of smRunIndex."
    ::= { smLaunchEntry 14 }

smLaunchStorageType OBJECT-TYPE
    SYNTAX      StorageType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object defines if this row is kept in volatile storage
         and lost upon reboot or if this row is backed up by stable
         storage.

         The value of smLaunchStorageType is only meaningful if the
         value of the corresponding RowStatus object is active.

         If smLaunchStorageType has the value permanent(4), then all
         objects whose MAX-ACCESS value is read-create must be
         writable, with the exception of the smLaunchStorageType and
         smLaunchRowStatus objects, which shall be read-only."
    DEFVAL { volatile }
    ::= { smLaunchEntry 15 }

smLaunchRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A control that allows entries to be added and removed from
         this table.

         Attempts to `destroy' a row or to set a row `notInService'
         while the smLaunchOperStatus is `enabled' will result in
         an inconsistentValue error.

         Attempts to `destroy' a row or to set a row `notInService'
         where the value of the smLaunchStorageType object is
         `permanent' or `readOnly' will result in an
         inconsistentValue error.

         The value of this object has no effect on whether other
         objects in this conceptual row can be modified."
    ::= { smLaunchEntry 16 }

smLaunchError OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object contains a descriptive error message if an
         attempt to launch a script fails. Implementations must reset
         the error message to a zero-length string when a new attempt
         to launch 

Batosay - 2023
IDNSEO Team