--
-- CMU Mib, generated at Thu May  7 23:20:50 EDT 1998
--

-- ######################################################

--
-- File: rfc/rfc1902.mib
--

SNMPv2-SMI DEFINITIONS ::= BEGIN

-- the path to the root

org            OBJECT IDENTIFIER ::= { iso 3 }
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 }

-- definitions for information modules

MODULE-IDENTITY MACRO ::=
BEGIN
    TYPE NOTATION ::=
                  "LAST-UPDATED" value(Update UTCTime)
                  "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 UTCTime)
                  "DESCRIPTION" Text

    -- uses the NVT ASCII character set
    Text ::= """" string """"
END

-- ######################################################

--
-- File: rfc/rfc1903.mib
--

SNMPv2-TC DEFINITIONS ::= BEGIN

IMPORTS
    ObjectSyntax, TimeTicks
        FROM SNMPv2-SMI;

-- definition of textual conventions

TEXTUAL-CONVENTION MACRO ::=
BEGIN
    TYPE NOTATION ::=
                  DisplayPart
                  "STATUS" Status
                  "DESCRIPTION" Text
                  ReferPart
                  "SYNTAX" Syntax

    VALUE NOTATION ::=
                  value(VALUE Syntax)

    DisplayPart ::=
                  "DISPLAY-HINT" Text
                | empty

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

    ReferPart ::=
                  "REFERENCE" Text
                | empty

    -- uses the NVT ASCII character set
    Text ::= """" string """"

    Syntax ::=
                  type(ObjectSyntax)
                | "BITS" "{" Kibbles "}"
    Kibbles ::=
                  Kibble
                | Kibbles "," Kibble
    Kibble ::=
                  identifier "(" nonNegativeNumber ")"


END

-- ######################################################

--
-- File: rfc/rfc1904.mib
--

SNMPv2-CONF DEFINITIONS ::= BEGIN

-- definitions for conformance groups

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

    VALUE NOTATION ::=
                  value(VALUE OBJECT IDENTIFIER)

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


                  value(Name ObjectName)

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

    ReferPart ::=
                  "REFERENCE" Text
                | empty

    -- uses the NVT ASCII character set
    Text ::= """" string """"
END

-- ######################################################

--
-- File: rfc/rfc1906.mib
--

SNMPv2-TM DEFINITIONS ::= BEGIN

IMPORTS
    OBJECT-IDENTITY, snmpDomains, snmpProxys
        FROM SNMPv2-SMI
    TEXTUAL-CONVENTION
        FROM SNMPv2-TC;

-- SNMPv2 over UDP over IPv4

snmpUDPDomain  OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The SNMPv2 over UDP transport domain.  The corresponding
            transport address is of type SnmpUDPAddress."
    ::= { snmpDomains 1 }

SnmpUDPAddress ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "1d.1d.1d.1d/2d"
    STATUS       current
    DESCRIPTION
            "Represents a UDP address:

               octets   contents        encoding
                1-4     IP-address      network-byte order
                5-6     UDP-port        network-byte order
            "
    SYNTAX       OCTET STRING (SIZE (6))

-- END OF TC

-- SNMPv2 over OSI

snmpCLNSDomain OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The SNMPv2 over CLNS transport domain.  The corresponding
            transport address is of type SnmpOSIAddress."
    ::= { snmpDomains 2 }

snmpCONSDomain OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The SNMPv2 over CONS transport domain.  The corresponding
            transport address is of type SnmpOSIAddress."
    ::= { snmpDomains 3 }


SnmpOSIAddress ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "*1x:/1x:"
    STATUS       current
    DESCRIPTION
            "Represents an OSI transport-address:

               octets   contents           encoding
                  1     length of NSAP     'n' as an unsigned-integer
                                              (either 0 or from 3 to 20)
               2..(n+1) NSAP                concrete binary representation
               (n+2)..m TSEL                string of (up to 64) octets
            "
    SYNTAX       OCTET STRING (SIZE (1 | 4..85))

-- END OF TC

-- SNMPv2 over DDP

snmpDDPDomain  OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The SNMPv2 over DDP transport domain.  The corresponding
            transport address is of type SnmpNBPAddress."
    ::= { snmpDomains 4 }

SnmpNBPAddress ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "Represents an NBP name:

                 octets        contents          encoding
                    1          length of object  'n' as an unsigned integer
                  2..(n+1)     object            string of (up to 32) octets
                   n+2         length of type    'p' as an unsigned integer
              (n+3)..(n+2+p)   type              string of (up to 32) octets
                  n+3+p        length of zone    'q' as an unsigned integer
            (n+4+p)..(n+3+p+q) zone              string of (up to 32) octets

            For comparison purposes, strings are case-insensitive All
            strings may contain any octet other than 255 (hex ff)."
    SYNTAX       OCTET STRING (SIZE (3..99))

-- END OF TC

-- SNMPv2 over IPX

snmpIPXDomain  OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The SNMPv2 over IPX transport domain.  The corresponding


            transport address is of type SnmpIPXAddress."
    ::= { snmpDomains 5 }

SnmpIPXAddress ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "4x.1x:1x:1x:1x:1x:1x.2d"
    STATUS       current
    DESCRIPTION
            "Represents an IPX address:

               octets   contents            encoding
                1-4     network-number      network-byte order
                5-10    physical-address    network-byte order
               11-12    socket-number       network-byte order
            "
    SYNTAX       OCTET STRING (SIZE (12))

-- END OF TC

-- for proxy to SNMPv1 (RFC 1157)

rfc1157Proxy   OBJECT IDENTIFIER ::= { snmpProxys 1 }

rfc1157Domain  OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The transport domain for SNMPv1 over UDP.  The
            corresponding transport address is of type SnmpUDPAddress."
    ::= { rfc1157Proxy 1 }

--  ::= { rfc1157Proxy 2 }            this OID is obsolete

END

-- ######################################################

--
-- File: rfc/rfc1907.mib
--

SNMPv2-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    TimeTicks, Counter32, snmpModules, mib-2
        FROM SNMPv2-SMI
    DisplayString, TestAndIncr, TimeStamp
        FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM SNMPv2-CONF;


snmpMIB MODULE-IDENTITY
    LAST-UPDATED "9511090000Z"
    ORGANIZATION "IETF SNMPv2 Working Group"
    CONTACT-INFO
            "        Marshall T. Rose

             Postal: Dover Beach Consulting, Inc.
                     420 Whisman Court
                     Mountain View, CA  94043-2186
                     US

                Tel: +1 415 968 1052

             E-mail: mrose@dbc.mtview.ca.us"
    DESCRIPTION
            "The MIB module for SNMPv2 entities."
    REVISION      "9304010000Z"
    DESCRIPTION
            "The initial revision of this MIB module was published as
            RFC 1450."
    ::= { snmpModules 1 }

snmpMIBObjects OBJECT IDENTIFIER ::= { snmpMIB 1 }

--  ::= { snmpMIBObjects 1 }        this OID is obsolete
--  ::= { snmpMIBObjects 2 }        this OID is obsolete
--  ::= { snmpMIBObjects 3 }        this OID is obsolete

-- the System group
--
-- a collection of objects common to all managed systems.

system   OBJECT IDENTIFIER ::= { mib-2 1 }

sysDescr OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "A textual description of the entity.  This value should
            include the full name and version identification of the
            system's hardware type, software operating-system, and
            networking software."
    ::= { system 1 }

sysObjectID OBJECT-TYPE


    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The vendor's authoritative identification of the network
            management subsystem contained in the entity.  This value is
            allocated within the SMI enterprises subtree (1.3.6.1.4.1)
            and provides an easy and unambiguous means for determining
            `what kind of box' is being managed.  For example, if vendor
            `Flintstones, Inc.' was assigned the subtree
            1.3.6.1.4.1.4242, it could assign the identifier
            1.3.6.1.4.1.4242.1.1 to its `Fred Router'."
    ::= { system 2 }

sysUpTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The time (in hundredths of a second) since the network
            management portion of the system was last re-initialized."
    ::= { system 3 }

sysContact OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The textual identification of the contact person for this
            managed node, together with information on how to contact
            this person.  If no contact information is known, the value
            is the zero-length string."
    ::= { system 4 }

sysName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "An administratively-assigned name for this managed node.
            By convention, this is the node's fully-qualified domain
            name.  If the name is unknown, the value is the zero-length
            string."
    ::= { system 5 }

sysLocation OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-write


    STATUS      current
    DESCRIPTION
            "The physical location of this node (e.g., `telephone
            closet, 3rd floor').  If the location is unknown, the value
            is the zero-length string."
    ::= { system 6 }

sysServices OBJECT-TYPE
    SYNTAX      INTEGER (0..127)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "A value which indicates the set of services that this
            entity may potentially offers.  The value is a sum.  This
            sum initially takes the value zero, Then, for each layer, L,
            in the range 1 through 7, that this node performs
            transactions for, 2 raised to (L - 1) is added to the sum.
            For example, a node which performs only routing functions
            would have a value of 4 (2^(3-1)).  In contrast, a node
            which is a host offering application services would have a
            value of 72 (2^(4-1) + 2^(7-1)).  Note that in the context
            of the Internet suite of protocols, values should be
            calculated accordingly:

                 layer      functionality
                   1        physical (e.g., repeaters)
                   2        datalink/subnetwork (e.g., bridges)
                   3        internet (e.g., supports the IP)
                   4        end-to-end  (e.g., supports the TCP)
                   7        applications (e.g., supports the SMTP)

            For systems including OSI protocols, layers 5 and 6 may also
            be counted."
    ::= { system 7 }

-- object resource information
--
-- a collection of objects which describe the SNMPv2 entity's
-- (statically and dynamically configurable) support of
-- various MIB modules.

sysORLastChange OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime at the time of the most recent


            change in state or value of any instance of sysORID."
    ::= { system 8 }

sysORTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SysOREntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the capabilities of the
            local SNMPv2 entity acting in an agent role with respect to
            various MIB modules.  SNMPv2 entities having dynamically-
            configurable support of MIB modules will have a
            dynamically-varying number of conceptual rows."
    ::= { system 9 }

sysOREntry OBJECT-TYPE
    SYNTAX     SysOREntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the sysORTable."
    INDEX      { sysORIndex }
    ::= { sysORTable 1 }

SysOREntry ::= SEQUENCE {
    sysORIndex     INTEGER,
    sysORID        OBJECT IDENTIFIER,
    sysORDescr     DisplayString,
    sysORUpTime    TimeStamp
}

sysORIndex OBJECT-TYPE
    SYNTAX     INTEGER (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The auxiliary variable used for identifying instances of
            the columnar objects in the sysORTable."
    ::= { sysOREntry 1 }

sysORID OBJECT-TYPE
    SYNTAX     OBJECT IDENTIFIER
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An authoritative identification of a capabilities statement
            with respect to various MIB modules supported by the local
            SNMPv2 entity acting in an agent role."


    ::= { sysOREntry 2 }

sysORDescr OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A textual description of the capabilities identified by the
            corresponding instance of sysORID."
    ::= { sysOREntry 3 }

sysORUpTime OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime at the time this conceptual row was
            last instanciated."
    ::= { sysOREntry 4 }

-- the SNMP group
--
-- a collection of objects providing basic instrumentation and
-- control of an SNMP entity.

snmp     OBJECT IDENTIFIER ::= { mib-2 11 }

snmpInPkts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of messages delivered to the SNMP entity
            from the transport service."
    ::= { snmp 1 }

snmpInBadVersions OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of SNMP messages which were delivered to
            the SNMP entity and were for an unsupported SNMP version."
    ::= { snmp 3 }

snmpInBadCommunityNames OBJECT-TYPE
    SYNTAX     Counter32


    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of SNMP messages delivered to the SNMP
            entity which used a SNMP community name not known to said
            entity."
    ::= { snmp 4 }

snmpInBadCommunityUses OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of SNMP messages delivered to the SNMP
            entity which represented an SNMP operation which was not
            allowed by the SNMP community named in the message."
    ::= { snmp 5 }

snmpInASNParseErrs OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of ASN.1 or BER errors encountered by the
            SNMP entity when decoding received SNMP messages."
    ::= { snmp 6 }

snmpEnableAuthenTraps OBJECT-TYPE
    SYNTAX      INTEGER { enabled(1), disabled(2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Indicates whether the SNMP entity is permitted to generate
            authenticationFailure traps.  The value of this object
            overrides any configuration information; as such, it
            provides a means whereby all authenticationFailure traps may
            be disabled.

            Note that it is strongly recommended that this object be
            stored in non-volatile memory so that it remains constant
            across re-initializations of the network management system."
    ::= { snmp 30 }

snmpSilentDrops OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION


            "The total number of GetRequest-PDUs, GetNextRequest-PDUs,
            GetBulkRequest-PDUs, SetRequest-PDUs, and InformRequest-PDUs
            delivered to the SNMP entity which were silently dropped
            because the size of a reply containing an alternate
            Response-PDU with an empty variable-bindings field was
            greater than either a local constraint or the maximum
            message size associated with the originator of the request."
    ::= { snmp 31 }

snmpProxyDrops OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of GetRequest-PDUs, GetNextRequest-PDUs,
            GetBulkRequest-PDUs, SetRequest-PDUs, and InformRequest-PDUs
            delivered to the SNMP entity which were silently dropped
            because the transmission of the (possibly translated)
            message to a proxy target failed in a manner (other than a
            time-out) such that no Response-PDU could be returned."
    ::= { snmp 32 }

-- information for notifications
--
-- a collection of objects which allow the SNMPv2 entity, when
-- acting in an agent role, to be configured to generate
-- SNMPv2-Trap-PDUs.

snmpTrap       OBJECT IDENTIFIER ::= { snmpMIBObjects 4 }

snmpTrapOID OBJECT-TYPE
    SYNTAX     OBJECT IDENTIFIER
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
            "The authoritative identification of the notification
            currently being sent.  This variable occurs as the second
            varbind in every SNMPv2-Trap-PDU and InformRequest-PDU."
    ::= { snmpTrap 1 }

--  ::= { snmpTrap 2 }   this OID is obsolete

snmpTrapEnterprise OBJECT-TYPE
    SYNTAX     OBJECT IDENTIFIER
    MAX-ACCESS accessible-for-notify
    STATUS     current


    DESCRIPTION
            "The authoritative identification of the enterprise
            associated with the trap currently being sent.  When a
            SNMPv2 proxy agent is mapping an RFC1157 Trap-PDU into a
            SNMPv2-Trap-PDU, this variable occurs as the last varbind."
    ::= { snmpTrap 3 }

--  ::= { snmpTrap 4 }   this OID is obsolete

-- well-known traps

snmpTraps      OBJECT IDENTIFIER ::= { snmpMIBObjects 5 }

coldStart NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A coldStart trap signifies that the SNMPv2 entity, acting
            in an agent role, is reinitializing itself and that its
            configuration may have been altered."
    ::= { snmpTraps 1 }

warmStart NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A warmStart trap signifies that the SNMPv2 entity, acting
            in an agent role, is reinitializing itself such that its
            configuration is unaltered."
    ::= { snmpTraps 2 }

-- Note the linkDown NOTIFICATION-TYPE ::= { snmpTraps 3 }
-- and the linkUp NOTIFICATION-TYPE ::= { snmpTraps 4 }
-- are defined in RFC 1573

authenticationFailure NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An authenticationFailure trap signifies that the SNMPv2
            entity, acting in an agent role, has received a protocol
            message that is not properly authenticated.  While all
            implementations of the SNMPv2 must be capable of generating
            this trap, the snmpEnableAuthenTraps object indicates
            whether this trap will be generated."
    ::= { snmpTraps 5 }

-- Note the egpNeighborLoss NOTIFICATION-TYPE ::= { snmpTraps 6 }
-- is defined in RFC 1213


-- the set group
--
-- a collection of objects which allow several cooperating
-- SNMPv2 entities, all acting in a manager role, to
-- coordinate their use of the SNMPv2 set operation.

snmpSet        OBJECT IDENTIFIER ::= { snmpMIBObjects 6 }

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

            This object is used for coarse-grain coordination.  To
            achieve fine-grain coordination, one or more similar objects
            might be defined within each MIB group, as appropriate."
    ::= { snmpSet 1 }

-- conformance information

snmpMIBConformance
               OBJECT IDENTIFIER ::= { snmpMIB 2 }

snmpMIBCompliances
               OBJECT IDENTIFIER ::= { snmpMIBConformance 1 }
snmpMIBGroups  OBJECT IDENTIFIER ::= { snmpMIBConformance 2 }

-- compliance statements

--    ::= { snmpMIBCompliances 1 }      this OID is obsolete

snmpBasicCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for SNMPv2 entities which
            implement the SNMPv2 MIB."
    MODULE  -- this module
        MANDATORY-GROUPS { snmpGroup, snmpSetGroup, systemGroup,
                           snmpBasicNotificationsGroup }

        GROUP   snmpCommunityGroup


        DESCRIPTION
            "This group is mandatory for SNMPv2 entities which
            support community-based authentication."

    ::= { snmpMIBCompliances 2 }

-- units of conformance

--  ::= { snmpMIBGroups 1 }           this OID is obsolete
--  ::= { snmpMIBGroups 2 }           this OID is obsolete
--  ::= { snmpMIBGroups 3 }           this OID is obsolete
--  ::= { snmpMIBGroups 4 }           this OID is obsolete

snmpGroup OBJECT-GROUP
    OBJECTS { snmpInPkts,
              snmpInBadVersions,
              snmpInASNParseErrs,
              snmpSilentDrops,
              snmpProxyDrops,
              snmpEnableAuthenTraps }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing basic instrumentation and
            control of an SNMPv2 entity."
    ::= { snmpMIBGroups 8 }

snmpCommunityGroup OBJECT-GROUP
    OBJECTS { snmpInBadCommunityNames,
              snmpInBadCommunityUses }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing basic instrumentation of
            a SNMPv2 entity which supports community-based
            authentication."
    ::= { snmpMIBGroups 9 }

snmpSetGroup OBJECT-GROUP
    OBJECTS { snmpSetSerialNo }
    STATUS  current
    DESCRIPTION
            "A collection of objects which allow several cooperating
            SNMPv2 entities, all acting in a manager role, to coordinate
            their use of the SNMPv2 set operation."
    ::= { snmpMIBGroups 5 }

systemGroup OBJECT-GROUP
    OBJECTS { sysDescr, sysObjectID, sysUpTime,


              sysContact, sysName, sysLocation,
              sysServices,
              sysORLastChange, sysORID,
              sysORUpTime, sysORDescr }
    STATUS  current
    DESCRIPTION
            "The system group defines objects which are common to all
            managed systems."
    ::= { snmpMIBGroups 6 }

snmpBasicNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS { coldStart, authenticationFailure }
    STATUS        current
    DESCRIPTION
            "The two notifications which an SNMPv2 entity is required to
            implement."
    ::= { snmpMIBGroups 7 }

-- definitions in RFC 1213 made obsolete by the inclusion of a
-- subset of the snmp group in this MIB

snmpOutPkts OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP Messages which were
            passed from the SNMP protocol entity to the
            transport service."
    ::= { snmp 2 }

-- { snmp 7 } is not used

snmpInTooBigs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP PDUs which were
            delivered to the SNMP protocol entity and for
            which the value of the error-status field is
            `tooBig'."
    ::= { snmp 8 }

snmpInNoSuchNames OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only


    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP PDUs which were
            delivered to the SNMP protocol entity and for
            which the value of the error-status field is
            `noSuchName'."
    ::= { snmp 9 }

snmpInBadValues OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP PDUs which were
            delivered to the SNMP protocol entity and for
            which the value of the error-status field is
            `badValue'."
    ::= { snmp 10 }

snmpInReadOnlys OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number valid SNMP PDUs which were
            delivered to the SNMP protocol entity and for
            which the value of the error-status field is
            `readOnly'.  It should be noted that it is a
            protocol error to generate an SNMP PDU which
            contains the value `readOnly' in the error-status
            field, as such this object is provided as a means
            of detecting incorrect implementations of the
            SNMP."
    ::= { snmp 11 }

snmpInGenErrs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP PDUs which were
            delivered to the SNMP protocol entity and for
            which the value of the error-status field is
            `genErr'."
    ::= { snmp 12 }

snmpInTotalReqVars OBJECT-TYPE
    SYNTAX      Counter32


    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of MIB objects which have been
            retrieved successfully by the SNMP protocol entity
            as the result of receiving valid SNMP Get-Request
            and Get-Next PDUs."
    ::= { snmp 13 }

snmpInTotalSetVars OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of MIB objects which have been
            altered successfully by the SNMP protocol entity
            as the result of receiving valid SNMP Set-Request
            PDUs."
    ::= { snmp 14 }

snmpInGetRequests OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP Get-Request PDUs which
            have been accepted and processed by the SNMP
            protocol entity."
    ::= { snmp 15 }

snmpInGetNexts OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP Get-Next PDUs which have
            been accepted and processed by the SNMP protocol
            entity."
    ::= { snmp 16 }

snmpInSetRequests OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP Set-Request PDUs which
            have been accepted and processed by the SNMP
            protocol entity."


    ::= { snmp 17 }

snmpInGetResponses OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP Get-Response PDUs which
            have been accepted and processed by the SNMP
            protocol entity."
    ::= { snmp 18 }

snmpInTraps OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP Trap PDUs which have
            been accepted and processed by the SNMP protocol
            entity."
    ::= { snmp 19 }

snmpOutTooBigs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP PDUs which were
            generated by the SNMP protocol entity and for
            which the value of the error-status field is
            `tooBig.'"
    ::= { snmp 20 }

snmpOutNoSuchNames OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP PDUs which were
            generated by the SNMP protocol entity and for
            which the value of the error-status is
            `noSuchName'."
    ::= { snmp 21 }

snmpOutBadValues OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete


    DESCRIPTION
            "The total number of SNMP PDUs which were
            generated by the SNMP protocol entity and for
            which the value of the error-status field is
            `badValue'."
    ::= { snmp 22 }

-- { snmp 23 } is not used

snmpOutGenErrs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP PDUs which were
            generated by the SNMP protocol entity and for
            which the value of the error-status field is
            `genErr'."
    ::= { snmp 24 }

snmpOutGetRequests OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP Get-Request PDUs which
            have been generated by the SNMP protocol entity."
    ::= { snmp 25 }

snmpOutGetNexts OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP Get-Next PDUs which have
            been generated by the SNMP protocol entity."
    ::= { snmp 26 }

snmpOutSetRequests OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP Set-Request PDUs which
            have been generated by the SNMP protocol entity."
    ::= { snmp 27 }


snmpOutGetResponses OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP Get-Response PDUs which
            have been generated by the SNMP protocol entity."
    ::= { snmp 28 }

snmpOutTraps OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
            "The total number of SNMP Trap PDUs which have
            been generated by the SNMP protocol entity."
    ::= { snmp 29 }

snmpObsoleteGroup OBJECT-GROUP
    OBJECTS { snmpOutPkts, snmpInTooBigs, snmpInNoSuchNames,
              snmpInBadValues, snmpInReadOnlys, snmpInGenErrs,
              snmpInTotalReqVars, snmpInTotalSetVars,
              snmpInGetRequests, snmpInGetNexts, snmpInSetRequests,
              snmpInGetResponses, snmpInTraps, snmpOutTooBigs,
              snmpOutNoSuchNames, snmpOutBadValues, snmpOutGenErrs,
              snmpOutGetRequests, snmpOutGetNexts, snmpOutSetRequests,
              snmpOutGetResponses, snmpOutTraps }
    STATUS  obsolete
    DESCRIPTION
            "A collection of objects from RFC 1213 made obsolete by this
            MIB."
    ::= { snmpMIBGroups 10 }

END

-- ######################################################

--
-- File: rfc/rfc1513.mib
--

TOKEN-RING-RMON-MIB DEFINITIONS ::= BEGIN

          IMPORTS
              Counter, TimeTicks          FROM RFC1155-SMI
              OBJECT-TYPE                 FROM RFC-1212
              OwnerString, EntryStatus,   -- Textual Conventions
              rmon, statistics, history
                                          FROM RFC1271-MIB;

             -- All representations of MAC addresses in this MIB
             -- Module use, as a textual convention (i.e. this
             -- convention does not affect their encoding), the
             -- data type:

             MacAddress ::= OCTET STRING (SIZE (6)) -- a 6 octet
                                                    -- address in
                                                    -- the "canonical"
                                                    -- order
             -- defined by IEEE 802.1a, i.e., as if it were
             -- transmitted least significant bit first, even though
             -- 802.5 (in contrast to other 802.x protocols) requires
             -- MAC addresses to be transmitted most significant bit
             -- first.

              TimeInterval ::= INTEGER
              -- A period of time, measured in units of 0.01 seconds.

          --  This MIB module uses the extended OBJECT-TYPE macro as
          --  defined in [2].

          --  Token Ring Remote Network Monitoring MIB

              tokenRing             OBJECT IDENTIFIER ::= { rmon 10 }

          -- The Token Ring Mac-Layer Statistics Group
          --
          -- Implementation of this group is optional

          tokenRingMLStatsTable OBJECT-TYPE
              SYNTAX SEQUENCE OF TokenRingMLStatsEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A list of Mac-Layer Token Ring statistics


                      entries."
              ::= { statistics 2 }

          tokenRingMLStatsEntry OBJECT-TYPE
              SYNTAX TokenRingMLStatsEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A collection of Mac-Layer statistics kept for a
                      particular Token Ring interface."
              INDEX { tokenRingMLStatsIndex }
              ::= { tokenRingMLStatsTable 1 }

          -- As an example, an instance of the
          -- tokenRingMLStatsMacOctets object
          -- might be named tokenRingMLStatsMacOctets.1

          TokenRingMLStatsEntry ::= SEQUENCE {
              tokenRingMLStatsIndex                     INTEGER,
              tokenRingMLStatsDataSource            OBJECT IDENTIFIER,
              tokenRingMLStatsDropEvents                Counter,
              tokenRingMLStatsMacOctets                 Counter,
              tokenRingMLStatsMacPkts                   Counter,
              tokenRingMLStatsRingPurgeEvents           Counter,
              tokenRingMLStatsRingPurgePkts             Counter,
              tokenRingMLStatsBeaconEvents              Counter,
              tokenRingMLStatsBeaconTime                TimeInterval,
              tokenRingMLStatsBeaconPkts                Counter,
              tokenRingMLStatsClaimTokenEvents          Counter,
              tokenRingMLStatsClaimTokenPkts            Counter,
              tokenRingMLStatsNAUNChanges               Counter,
              tokenRingMLStatsLineErrors                Counter,
              tokenRingMLStatsInternalErrors            Counter,
              tokenRingMLStatsBurstErrors               Counter,
              tokenRingMLStatsACErrors                  Counter,
              tokenRingMLStatsAbortErrors               Counter,
              tokenRingMLStatsLostFrameErrors           Counter,
              tokenRingMLStatsCongestionErrors          Counter,
              tokenRingMLStatsFrameCopiedErrors         Counter,
              tokenRingMLStatsFrequencyErrors           Counter,
              tokenRingMLStatsTokenErrors               Counter,
              tokenRingMLStatsSoftErrorReports          Counter,
              tokenRingMLStatsRingPollEvents            Counter,
              tokenRingMLStatsOwner                     OwnerString,
              tokenRingMLStatsStatus                    EntryStatus
          }


          tokenRingMLStatsIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The value of this object uniquely identifies this
                      tokenRingMLStats entry."
              ::= { tokenRingMLStatsEntry 1 }

          tokenRingMLStatsDataSource OBJECT-TYPE
              SYNTAX OBJECT IDENTIFIER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                      "This object identifies the source of the data
                      that this tokenRingMLStats entry is configured to
                      analyze.  This source can be any tokenRing
                      interface on this device.  In order to identify a
                      particular interface, this object shall identify
                      the instance of the ifIndex object, defined in
                      MIB-II [3], for the desired interface.  For
                      example, if an entry were to receive data from
                      interface #1, this object would be set to
                      ifIndex.1.

                      The statistics in this group reflect all error
                      reports on the local network segment attached to
                      the identified interface.

                      This object may not be modified if the associated
                      tokenRingMLStatsStatus object is equal to
                      valid(1)."
              ::= { tokenRingMLStatsEntry 2 }

          tokenRingMLStatsDropEvents OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of events in which packets were
                      dropped by the probe due to lack of resources.
                      Note that this number is not necessarily the
                      number of packets dropped; it is just the number
                      of times this condition has been detected.  This
                      value is the same as the corresponding
                      tokenRingPStatsDropEvents."
              ::= { tokenRingMLStatsEntry 3 }


          tokenRingMLStatsMacOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of octets of data in MAC packets
                      (excluding those that were not good frames)
                      received on the network (excluding framing bits
                      but including FCS octets)."
              ::= { tokenRingMLStatsEntry 4 }

          tokenRingMLStatsMacPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of MAC packets (excluding
                      packets that were not good frames) received."
              ::= { tokenRingMLStatsEntry 5 }

          tokenRingMLStatsRingPurgeEvents OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of times that the ring enters
                      the ring purge state from normal ring state.  The
                      ring purge state that comes in response to the
                      claim token or beacon state is not counted."
              ::= { tokenRingMLStatsEntry 6 }

          tokenRingMLStatsRingPurgePkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of ring purge MAC packets
                      detected by probe."
              ::= { tokenRingMLStatsEntry 7 }

          tokenRingMLStatsBeaconEvents OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of times that the ring enters a
                      beaconing state (beaconFrameStreamingState,
                      beaconBitStreamingState,


                      beaconSetRecoveryModeState, or
                      beaconRingSignalLossState) from a non-beaconing
                      state.  Note that a change of the source address
                      of the beacon packet does not constitute a new
                      beacon event."
              ::= { tokenRingMLStatsEntry 8 }

          tokenRingMLStatsBeaconTime OBJECT-TYPE
              SYNTAX TimeInterval
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total amount of time that the ring has been
                      in the beaconing state."
              ::= { tokenRingMLStatsEntry 9 }

          tokenRingMLStatsBeaconPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of beacon MAC packets detected
                      by the probe."
              ::= { tokenRingMLStatsEntry 10 }

          tokenRingMLStatsClaimTokenEvents OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of times that the ring enters
                      the claim token state from normal ring state or
                      ring purge state.  The claim token state that
                      comes in response to a beacon state is not
                      counted."
              ::= { tokenRingMLStatsEntry 11 }

          tokenRingMLStatsClaimTokenPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of claim token MAC packets
                      detected by the probe."
              ::= { tokenRingMLStatsEntry 12 }


          tokenRingMLStatsNAUNChanges OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of NAUN changes detected by the
                      probe."
              ::= { tokenRingMLStatsEntry 13 }

          tokenRingMLStatsLineErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of line errors reported in error
                      reporting packets detected by the probe."
              ::= { tokenRingMLStatsEntry 14 }

          tokenRingMLStatsInternalErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of adapter internal errors
                      reported in error reporting packets detected by
                      the probe."
              ::= { tokenRingMLStatsEntry 15 }

          tokenRingMLStatsBurstErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of burst errors reported in
                      error reporting packets detected by the probe."
              ::= { tokenRingMLStatsEntry 16 }

          tokenRingMLStatsACErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of AC (Address Copied)  errors
                      reported in error reporting packets detected by
                      the probe."
              ::= { tokenRingMLStatsEntry 17 }


          tokenRingMLStatsAbortErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of abort delimiters reported in
                      error reporting packets detected by the probe."
              ::= { tokenRingMLStatsEntry 18 }

          tokenRingMLStatsLostFrameErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of lost frame errors reported in
                      error reporting packets detected by the probe."
              ::= { tokenRingMLStatsEntry 19 }

          tokenRingMLStatsCongestionErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of receive congestion errors
                      reported in error reporting packets detected by
                      the probe."
              ::= { tokenRingMLStatsEntry 20 }

          tokenRingMLStatsFrameCopiedErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of frame copied errors reported
                      in error reporting packets detected by the probe."
              ::= { tokenRingMLStatsEntry 21 }

          tokenRingMLStatsFrequencyErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of frequency errors reported in
                      error reporting packets detected by the probe."
              ::= { tokenRingMLStatsEntry 22 }


          tokenRingMLStatsTokenErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of token errors reported in
                      error reporting packets detected by the probe."
              ::= { tokenRingMLStatsEntry 23 }

          tokenRingMLStatsSoftErrorReports OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of soft error report frames
                      detected by the probe."
              ::= { tokenRingMLStatsEntry 24 }

          tokenRingMLStatsRingPollEvents OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of ring poll events detected by
                      the probe (i.e. the number of ring polls initiated
                      by the active monitor that were detected)."
              ::= { tokenRingMLStatsEntry 25 }

          tokenRingMLStatsOwner OBJECT-TYPE
              SYNTAX OwnerString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                      "The entity that configured this entry and is
                      therefore using the resources assigned to it."
              ::= { tokenRingMLStatsEntry 26 }

          tokenRingMLStatsStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                      "The status of this tokenRingMLStats entry."
              ::= { tokenRingMLStatsEntry 27 }


          -- The Token Ring Promiscuous Statistics Group
          --
          -- Implementation of this group is optional

          tokenRingPStatsTable OBJECT-TYPE
              SYNTAX SEQUENCE OF TokenRingPStatsEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A list of promiscuous Token Ring statistics
                      entries."
              ::= { statistics 3 }

          tokenRingPStatsEntry OBJECT-TYPE
              SYNTAX TokenRingPStatsEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A collection of promiscuous statistics kept for
                      non-MAC packets on a particular Token Ring
                      interface."
              INDEX { tokenRingPStatsIndex }
              ::= { tokenRingPStatsTable 1 }

          -- As an example, an instance of the
          -- tokenRingPStatsDataOctets object
          -- might be named tokenRingPStatsDataOctets.1

          TokenRingPStatsEntry ::= SEQUENCE {
              tokenRingPStatsIndex                          INTEGER,
              tokenRingPStatsDataSource               OBJECT IDENTIFIER,
              tokenRingPStatsDropEvents                     Counter,
              tokenRingPStatsDataOctets                     Counter,
              tokenRingPStatsDataPkts                       Counter,
              tokenRingPStatsDataBroadcastPkts              Counter,
              tokenRingPStatsDataMulticastPkts              Counter,
              tokenRingPStatsDataPkts18to63Octets           Counter,
              tokenRingPStatsDataPkts64to127Octets          Counter,
              tokenRingPStatsDataPkts128to255Octets         Counter,
              tokenRingPStatsDataPkts256to511Octets         Counter,
              tokenRingPStatsDataPkts512to1023Octets        Counter,
              tokenRingPStatsDataPkts1024to2047Octets       Counter,
              tokenRingPStatsDataPkts2048to4095Octets       Counter,
              tokenRingPStatsDataPkts4096to8191Octets       Counter,
              tokenRingPStatsDataPkts8192to18000Octets      Counter,
              tokenRingPStatsDataPktsGreaterThan18000Octets Counter,
              tokenRingPStatsOwner                          OwnerString,
              tokenRingPStatsStatus                         EntryStatus


          }

          tokenRingPStatsIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The value of this object uniquely identifies this
                      tokenRingPStats entry."
              ::= { tokenRingPStatsEntry 1 }

          tokenRingPStatsDataSource OBJECT-TYPE
              SYNTAX OBJECT IDENTIFIER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                      "This object identifies the source of the data
                      that this tokenRingPStats entry is configured to
                      analyze.  This source can be any tokenRing
                      interface on this device.  In order to identify a
                      particular interface, this object shall identify
                      the instance of the ifIndex object, defined in
                      MIB-II [3], for the desired interface.  For
                      example, if an entry were to receive data from
                      interface #1, this object would be set to
                      ifIndex.1.

                      The statistics in this group reflect all non-MAC
                      packets on the local network segment attached to
                      the identified interface.

                      This object may not be modified if the associated
                      tokenRingPStatsStatus object is equal to
                      valid(1)."
              ::= { tokenRingPStatsEntry 2 }

          tokenRingPStatsDropEvents OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of events in which packets were
                      dropped by the probe due to lack of resources.
                      Note that this number is not necessarily the
                      number of packets dropped; it is just the number
                      of times this condition has been detected.  This
                      value is the same as the corresponding
                      tokenRingMLStatsDropEvents"


              ::= { tokenRingPStatsEntry 3 }

          tokenRingPStatsDataOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of octets of data in good frames
                      received on the network (excluding framing bits
                      but including FCS octets) in non-MAC packets."
              ::= { tokenRingPStatsEntry 4 }

          tokenRingPStatsDataPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of non-MAC packets in good
                      frames.  received."
              ::= { tokenRingPStatsEntry 5 }

          tokenRingPStatsDataBroadcastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      that were directed to an LLC broadcast address
                      (0xFFFFFFFFFFFF or 0xC000FFFFFFFF)."
              ::= { tokenRingPStatsEntry 6 }

          tokenRingPStatsDataMulticastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      that were directed to a local or global multicast
                      or functional address.  Note that this number does
                      not include packets directed to the broadcast
                      address."
              ::= { tokenRingPStatsEntry 7 }

          tokenRingPStatsDataPkts18to63Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION


                      "The total number of good non-MAC frames received
                      that were between 18 and 63 octets in length
                      inclusive, excluding framing bits but including
                      FCS octets."
              ::= { tokenRingPStatsEntry 8 }

          tokenRingPStatsDataPkts64to127Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      that were between 64 and 127 octets in length
                      inclusive, excluding framing bits but including
                      FCS octets."
              ::= { tokenRingPStatsEntry 9 }

          tokenRingPStatsDataPkts128to255Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      that were between 128 and 255 octets in length
                      inclusive, excluding framing bits but including
                      FCS octets."
              ::= { tokenRingPStatsEntry 10 }

          tokenRingPStatsDataPkts256to511Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      that were between 256 and 511 octets in length
                      inclusive, excluding framing bits but including
                      FCS octets."
              ::= { tokenRingPStatsEntry 11 }

          tokenRingPStatsDataPkts512to1023Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      that were between 512 and 1023 octets in length
                      inclusive, excluding framing bits but including
                      FCS octets."


              ::= { tokenRingPStatsEntry 12 }

          tokenRingPStatsDataPkts1024to2047Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      that were between 1024 and 2047 octets in length
                      inclusive, excluding framing bits but including
                      FCS octets."
              ::= { tokenRingPStatsEntry 13 }

          tokenRingPStatsDataPkts2048to4095Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      that were between 2048 and 4095 octets in length
                      inclusive, excluding framing bits but including
                      FCS octets."
              ::= { tokenRingPStatsEntry 14 }

          tokenRingPStatsDataPkts4096to8191Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      that were between 4096 and 8191 octets in length
                      inclusive, excluding framing bits but including
                      FCS octets."
              ::= { tokenRingPStatsEntry 15 }

          tokenRingPStatsDataPkts8192to18000Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      that were between 8192 and 18000 octets in length
                      inclusive, excluding framing bits but including
                      FCS octets."
              ::= { tokenRingPStatsEntry 16 }

          tokenRingPStatsDataPktsGreaterThan18000Octets OBJECT-TYPE
              SYNTAX Counter


              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      that were greater than 18000 octets in length,
                      excluding framing bits but including FCS octets."
              ::= { tokenRingPStatsEntry 17 }

          tokenRingPStatsOwner OBJECT-TYPE
              SYNTAX OwnerString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                      "The entity that configured this entry and is
                      therefore using the resources assigned to it."
              ::= { tokenRingPStatsEntry 18 }

          tokenRingPStatsStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                      "The status of this tokenRingPStats entry."
              ::= { tokenRingPStatsEntry 19 }

          -- The Token Ring History Groups

          -- When an entry in the historyControlTable is created that
          -- identifies a token ring interface as its
          -- historyControlDataSource, the probe shall create
          -- corresponding entries in the tokenRingMLHistoryTable
          -- and/or the tokenRingPHistoryTable, depending on which
          -- groups it supports.

          -- The Token Ring Mac-Layer History Group
          --
          -- Implementation of this group is optional.
          -- Implementation of this group requires implementation of
          -- the historyControl group from RFC1271.

          tokenRingMLHistoryTable OBJECT-TYPE
              SYNTAX SEQUENCE OF TokenRingMLHistoryEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A list of Mac-Layer Token Ring statistics


                      entries."
              ::= { history 3 }

          tokenRingMLHistoryEntry OBJECT-TYPE
              SYNTAX TokenRingMLHistoryEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A collection of Mac-Layer statistics kept for a
                      particular Token Ring interface."
              INDEX { tokenRingMLHistoryIndex,
                      tokenRingMLHistorySampleIndex }
              ::= { tokenRingMLHistoryTable 1 }

          -- As an example, an instance of the
          -- tokenRingMLHistoryMacOctets
          -- object might be named tokenRingMLHistoryMacOctets.1.27

          TokenRingMLHistoryEntry ::= SEQUENCE {
              tokenRingMLHistoryIndex                     INTEGER,
              tokenRingMLHistorySampleIndex               INTEGER,
              tokenRingMLHistoryIntervalStart             TimeTicks,
              tokenRingMLHistoryDropEvents                Counter,
              tokenRingMLHistoryMacOctets                 Counter,
              tokenRingMLHistoryMacPkts                   Counter,
              tokenRingMLHistoryRingPurgeEvents           Counter,
              tokenRingMLHistoryRingPurgePkts             Counter,
              tokenRingMLHistoryBeaconEvents              Counter,
              tokenRingMLHistoryBeaconTime                TimeInterval,
              tokenRingMLHistoryBeaconPkts                Counter,
              tokenRingMLHistoryClaimTokenEvents          Counter,
              tokenRingMLHistoryClaimTokenPkts            Counter,
              tokenRingMLHistoryNAUNChanges               Counter,
              tokenRingMLHistoryLineErrors                Counter,
              tokenRingMLHistoryInternalErrors            Counter,
              tokenRingMLHistoryBurstErrors               Counter,
              tokenRingMLHistoryACErrors                  Counter,
              tokenRingMLHistoryAbortErrors               Counter,
              tokenRingMLHistoryLostFrameErrors           Counter,
              tokenRingMLHistoryCongestionErrors          Counter,
              tokenRingMLHistoryFrameCopiedErrors         Counter,
              tokenRingMLHistoryFrequencyErrors           Counter,
              tokenRingMLHistoryTokenErrors               Counter,
              tokenRingMLHistorySoftErrorReports          Counter,
              tokenRingMLHistoryRingPollEvents            Counter,
              tokenRingMLHistoryActiveStations            INTEGER
          }


          tokenRingMLHistoryIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The history of which this entry is a part.  The
                      history identified by a particular value of this
                      index is the same history as identified by the
                      same value of historyControlIndex."
              ::= { tokenRingMLHistoryEntry 1 }

          tokenRingMLHistorySampleIndex OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "An index that uniquely identifies the particular
                      Mac-Layer sample this entry represents among all
                      Mac-Layer samples associated with the same
                      historyControlEntry.  This index starts at 1 and
                      increases by one as each new sample is taken."
              ::= { tokenRingMLHistoryEntry 2 }

          tokenRingMLHistoryIntervalStart OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The value of sysUpTime at the start of the
                      interval over which this sample was measured.  If
                      the probe keeps track of the time of day, it
                      should start the first sample of the history at a
                      time such that when the next hour of the day
                      begins, a sample is started at that instant.  Note
                      that following this rule may require the probe to
                      delay collecting the first sample of the history,
                      as each sample must be of the same interval.  Also
                      note that the sample which is currently being
                      collected is not accessible in this table until
                      the end of its interval."
              ::= { tokenRingMLHistoryEntry 3 }

          tokenRingMLHistoryDropEvents OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of events in which packets were


                      dropped by the probe due to lack of resources
                      during this sampling interval.  Note that this
                      number is not necessarily the number of packets
                      dropped, it is just the number of times this
                      condition has been detected."
              ::= { tokenRingMLHistoryEntry 4 }

          tokenRingMLHistoryMacOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of octets of data in MAC packets
                      (excluding those that were not good frames)
                      received on the network during this sampling
                      interval (excluding framing bits but including FCS
                      octets)."
              ::= { tokenRingMLHistoryEntry 5 }

          tokenRingMLHistoryMacPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of MAC packets (excluding those
                      that were not good frames) received during this
                      sampling interval."
              ::= { tokenRingMLHistoryEntry 6 }

          tokenRingMLHistoryRingPurgeEvents OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of times that the ring entered
                      the ring purge state from normal ring state during
                      this sampling interval.  The ring purge state that
                      comes from the claim token or beacon state is not
                      counted."
              ::= { tokenRingMLHistoryEntry 7 }

          tokenRingMLHistoryRingPurgePkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of Ring Purge MAC packets
                      detected by the probe during this sampling


                      interval."
              ::= { tokenRingMLHistoryEntry 8 }

          tokenRingMLHistoryBeaconEvents OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of times that the ring enters a
                      beaconing state (beaconFrameStreamingState,
                      beaconBitStreamingState,
                      beaconSetRecoveryModeState, or
                      beaconRingSignalLossState) during this sampling
                      interval.  Note that a change of the source
                      address of the beacon packet does not constitute a
                      new beacon event."
              ::= { tokenRingMLHistoryEntry 9 }

          tokenRingMLHistoryBeaconTime OBJECT-TYPE
              SYNTAX TimeInterval
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The amount of time that the ring has been in the
                      beaconing state during this sampling interval."
              ::= { tokenRingMLHistoryEntry 10 }

          tokenRingMLHistoryBeaconPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of beacon MAC packets detected
                      by the probe during this sampling interval."
              ::= { tokenRingMLHistoryEntry 11 }

          tokenRingMLHistoryClaimTokenEvents OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of times that the ring enters
                      the claim token state from normal ring state or
                      ring purge state during this sampling interval.
                      The claim token state that comes from the beacon
                      state is not counted."
              ::= { tokenRingMLHistoryEntry 12 }


          tokenRingMLHistoryClaimTokenPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of claim token MAC packets
                      detected by the probe during this sampling
                      interval."
              ::= { tokenRingMLHistoryEntry 13 }

          tokenRingMLHistoryNAUNChanges OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of NAUN changes detected by the
                      probe during this sampling interval."
              ::= { tokenRingMLHistoryEntry 14 }

          tokenRingMLHistoryLineErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of line errors reported in error
                      reporting packets detected by the probe during
                      this sampling interval."
              ::= { tokenRingMLHistoryEntry 15 }

          tokenRingMLHistoryInternalErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of adapter internal errors
                      reported in error reporting packets detected by
                      the probe during this sampling interval."
              ::= { tokenRingMLHistoryEntry 16 }

          tokenRingMLHistoryBurstErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of burst errors reported in
                      error reporting packets detected by the probe
                      during this sampling interval."
              ::= { tokenRingMLHistoryEntry 17 }


          tokenRingMLHistoryACErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of AC (Address Copied) errors
                      reported in error reporting packets detected by
                      the probe during this sampling interval."
              ::= { tokenRingMLHistoryEntry 18 }

          tokenRingMLHistoryAbortErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of abort delimiters reported in
                      error reporting packets detected by the probe
                      during this sampling interval."
              ::= { tokenRingMLHistoryEntry 19 }

          tokenRingMLHistoryLostFrameErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of lost frame errors reported in
                      error reporting packets detected by the probe
                      during this sampling interval."
              ::= { tokenRingMLHistoryEntry 20 }

          tokenRingMLHistoryCongestionErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of receive congestion errors
                      reported in error reporting packets detected by
                      the probe during this sampling interval."
              ::= { tokenRingMLHistoryEntry 21 }

          tokenRingMLHistoryFrameCopiedErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of frame copied errors reported
                      in error reporting packets detected by the probe
                      during this sampling interval."


              ::= { tokenRingMLHistoryEntry 22 }

          tokenRingMLHistoryFrequencyErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of frequency errors reported in
                      error reporting packets detected by the probe
                      during this sampling interval."
              ::= { tokenRingMLHistoryEntry 23 }

          tokenRingMLHistoryTokenErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of token errors reported in
                      error reporting packets detected by the probe
                      during this sampling interval."
              ::= { tokenRingMLHistoryEntry 24 }

          tokenRingMLHistorySoftErrorReports OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of soft error report frames
                      detected by the probe during this sampling
                      interval."
              ::= { tokenRingMLHistoryEntry 25 }

          tokenRingMLHistoryRingPollEvents OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of ring poll events detected by
                      the probe during this sampling interval."
              ::= { tokenRingMLHistoryEntry 26 }

          tokenRingMLHistoryActiveStations OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The maximum number of active stations on the ring
                      detected by the probe during this sampling


                      interval."
              ::= { tokenRingMLHistoryEntry 27}

          -- The Token Ring Promiscuous History Group
          --
          -- Implementation of this group is optional.
          -- Implementation of this group requires the implementation
          -- of the historyControl group from RFC1271.

          tokenRingPHistoryTable OBJECT-TYPE
              SYNTAX SEQUENCE OF TokenRingPHistoryEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A list of promiscuous Token Ring statistics
                      entries."
              ::= { history 4 }

          tokenRingPHistoryEntry OBJECT-TYPE
              SYNTAX TokenRingPHistoryEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A collection of promiscuous statistics kept for a
                      particular Token Ring interface."
              INDEX { tokenRingPHistoryIndex,
                      tokenRingPHistorySampleIndex }
              ::= { tokenRingPHistoryTable 1 }

          -- As an example, an instance of the
          -- tokenRingPHistoryDataPkts object
          -- might be named tokenRingPHistoryDataPkts.1.27

          TokenRingPHistoryEntry ::= SEQUENCE {
              tokenRingPHistoryIndex                          INTEGER,
              tokenRingPHistorySampleIndex                    INTEGER,
              tokenRingPHistoryIntervalStart                  TimeTicks,
              tokenRingPHistoryDropEvents                     Counter,
              tokenRingPHistoryDataOctets                     Counter,
              tokenRingPHistoryDataPkts                       Counter,
              tokenRingPHistoryDataBroadcastPkts              Counter,
              tokenRingPHistoryDataMulticastPkts              Counter,
              tokenRingPHistoryDataPkts18to63Octets           Counter,
              tokenRingPHistoryDataPkts64to127Octets          Counter,
              tokenRingPHistoryDataPkts128to255Octets         Counter,
              tokenRingPHistoryDataPkts256to511Octets         Counter,
              tokenRingPHistoryDataPkts512to1023Octets        Counter,


              tokenRingPHistoryDataPkts1024to2047Octets       Counter,
              tokenRingPHistoryDataPkts2048to4095Octets       Counter,
              tokenRingPHistoryDataPkts4096to8191Octets       Counter,
              tokenRingPHistoryDataPkts8192to18000Octets      Counter,
              tokenRingPHistoryDataPktsGreaterThan18000Octets Counter
          }

          tokenRingPHistoryIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The history of which this entry is a part.  The
                      history identified by a particular value of this
                      index is the same history as identified by the
                      same value of historyControlIndex."
              ::= { tokenRingPHistoryEntry 1 }

          tokenRingPHistorySampleIndex OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "An index that uniquely identifies the particular
                      sample this entry represents among all samples
                      associated with the same historyControlEntry.
                      This index starts at 1 and increases by one as
                      each new sample is taken."
              ::= { tokenRingPHistoryEntry 2 }

          tokenRingPHistoryIntervalStart OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The value of sysUpTime at the start of the
                      interval over which this sample was measured.  If
                      the probe keeps track of the time of day, it
                      should start the first sample of the history at a
                      time such that when the next hour of the day
                      begins, a sample is started at that instant.  Note
                      that following this rule may require the probe to
                      delay collecting the first sample of the history,
                      as each sample must be of the same interval.  Also
                      note that the sample which is currently being
                      collected is not accessible in this table until
                      the end of its interval."
              ::= { tokenRingPHistoryEntry 3 }


          tokenRingPHistoryDropEvents OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of events in which packets were
                      dropped by the probe due to lack of resources
                      during this sampling interval.  Note that this
                      number is not necessarily the number of packets
                      dropped, it is just the number of times this
                      condition has been detected."
              ::= { tokenRingPHistoryEntry 4 }

          tokenRingPHistoryDataOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of octets of data in good frames
                      received on the network (excluding framing bits
                      but including FCS octets) in non-MAC packets
                      during this sampling interval."
              ::= { tokenRingPHistoryEntry 5 }

          tokenRingPHistoryDataPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      during this sampling interval."
              ::= { tokenRingPHistoryEntry 6 }

          tokenRingPHistoryDataBroadcastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      during this sampling interval that were directed
                      to an LLC broadcast address (0xFFFFFFFFFFFF or
                      0xC000FFFFFFFF)."
              ::= { tokenRingPHistoryEntry 7 }

          tokenRingPHistoryDataMulticastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory


              DESCRIPTION
                      "The total number of good non-MAC frames received
                      during this sampling interval that were directed
                      to a local or global multicast or functional
                      address.  Note that this number does not include
                      packets directed to the broadcast address."
              ::= { tokenRingPHistoryEntry 8 }

          tokenRingPHistoryDataPkts18to63Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      during this sampling interval that were between 18
                      and 63 octets in length inclusive, excluding
                      framing bits but including FCS octets."
              ::= { tokenRingPHistoryEntry 9 }

          tokenRingPHistoryDataPkts64to127Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      during this sampling interval that were between 64
                      and 127 octets in length inclusive, excluding
                      framing bits but including FCS octets."
              ::= { tokenRingPHistoryEntry 10 }

          tokenRingPHistoryDataPkts128to255Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      during this sampling interval that were between
                      128 and 255 octets in length inclusive, excluding
                      framing bits but including FCS octets."
              ::= { tokenRingPHistoryEntry 11 }

          tokenRingPHistoryDataPkts256to511Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      during this sampling interval that were between


                      256 and 511 octets in length inclusive, excluding
                      framing bits but including FCS octets."
              ::= { tokenRingPHistoryEntry 12 }

          tokenRingPHistoryDataPkts512to1023Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      during this sampling interval that were between
                      512 and 1023 octets in length inclusive, excluding
                      framing bits but including FCS octets."
              ::= { tokenRingPHistoryEntry 13 }

          tokenRingPHistoryDataPkts1024to2047Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      during this sampling interval that were between
                      1024 and 2047 octets in length inclusive,
                      excluding framing bits but including FCS octets."
              ::= { tokenRingPHistoryEntry 14 }

          tokenRingPHistoryDataPkts2048to4095Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      during this sampling interval that were between
                      2048 and 4095 octets in length inclusive,
                      excluding framing bits but including FCS octets."
              ::= { tokenRingPHistoryEntry 15 }

          tokenRingPHistoryDataPkts4096to8191Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      during this sampling interval that were between
                      4096 and 8191 octets in length inclusive,
                      excluding framing bits but including FCS octets."
              ::= { tokenRingPHistoryEntry 16 }


          tokenRingPHistoryDataPkts8192to18000Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      during this sampling interval that were between
                      8192 and 18000 octets in length inclusive,
                      excluding framing bits but including FCS octets."
              ::= { tokenRingPHistoryEntry 17 }

          tokenRingPHistoryDataPktsGreaterThan18000Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good non-MAC frames received
                      during this sampling interval that were greater
                      than 18000 octets in length, excluding framing
                      bits but including FCS octets."
              ::= { tokenRingPHistoryEntry 18 }

          -- The Token Ring Ring Station Group
          --
          -- Implementation of this group is optional
          --
          -- Although the ringStationTable stores entries only for
          -- those stations physically attached to the local ring and
          -- the number of stations attached to a ring is limited, a
          -- probe may still need to free resources when resources
          -- grow tight.  In such a situation, it is suggested that
          -- the probe free only inactive stations, and to
          -- first free the stations that have been inactive for the
          -- longest time.

          ringStationControlTable OBJECT-TYPE
              SYNTAX SEQUENCE OF RingStationControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A list of ringStation table control entries."
              ::= { tokenRing 1 }

          ringStationControlEntry OBJECT-TYPE
              SYNTAX RingStationControlEntry
              ACCESS not-accessible
              STATUS mandatory


              DESCRIPTION
                      "A list of parameters that set up the discovery of
                      stations on a particular interface and the
                      collection of statistics about these stations."
              INDEX { ringStationControlIfIndex }
              ::= { ringStationControlTable 1 }

          -- As an example, an instance of the
          -- ringStationControlIfIndex object
          -- might be named ringStationControlIfIndex.1

          RingStationControlEntry ::= SEQUENCE {
              ringStationControlIfIndex          INTEGER,
              ringStationControlTableSize        INTEGER,
              ringStationControlActiveStations   INTEGER,
              ringStationControlRingState        INTEGER,
              ringStationControlBeaconSender     MacAddress,
              ringStationControlBeaconNAUN       MacAddress,
              ringStationControlActiveMonitor    MacAddress,
              ringStationControlOrderChanges     Counter,
              ringStationControlOwner            OwnerString,
              ringStationControlStatus           EntryStatus
          }

          ringStationControlIfIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The value of this object uniquely identifies the
                      interface on this remote network monitoring device
                      from which ringStation data is collected.  The
                      interface identified by a particular value of this
                      object is the same interface as identified by the
                      same value of the ifIndex object, defined in MIB-
                      II [3]."
              ::= { ringStationControlEntry 1 }

          ringStationControlTableSize OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The number of ringStationEntries in the
                      ringStationTable associated with this
                      ringStationControlEntry."
              ::= { ringStationControlEntry 2 }


          ringStationControlActiveStations OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The number of active ringStationEntries in the
                      ringStationTable associated with this
                      ringStationControlEntry."
              ::= { ringStationControlEntry 3 }

          ringStationControlRingState OBJECT-TYPE
              SYNTAX INTEGER {
                  normalOperation(1),
                  ringPurgeState(2),
                  claimTokenState(3),
                  beaconFrameStreamingState(4),
                  beaconBitStreamingState(5),
                  beaconRingSignalLossState(6),
                  beaconSetRecoveryModeState(7)
              }
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The current status of this ring."
              ::= { ringStationControlEntry 4 }

          ringStationControlBeaconSender OBJECT-TYPE
              SYNTAX MacAddress
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The address of the sender of the last beacon
                      frame received by the probe on this ring.  If no
                      beacon frames have been received, this object
                      shall be equal to six octets of zero."
              ::= { ringStationControlEntry 5 }

          ringStationControlBeaconNAUN OBJECT-TYPE
              SYNTAX MacAddress
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The address of the NAUN in the last beacon frame
                      received by the probe on this ring.  If no beacon
                      frames have been received, this object shall be
                      equal to six octets of zero."
              ::= { ringStationControlEntry 6 }


          ringStationControlActiveMonitor OBJECT-TYPE
              SYNTAX MacAddress
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The address of the Active Monitor on this
                      segment.  If this address is unknown, this object
                      shall be equal to six octets of zero."
              ::= { ringStationControlEntry 7 }

          ringStationControlOrderChanges OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The number of add and delete events in the
                      ringStationOrderTable optionally associated with
                      this ringStationControlEntry."
              ::= { ringStationControlEntry 8 }

          ringStationControlOwner OBJECT-TYPE
              SYNTAX OwnerString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                      "The entity that configured this entry and is
                      therefore using the resources assigned to it."
              ::= { ringStationControlEntry 9 }

          ringStationControlStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                      "The status of this ringStationControl entry.

                      If this object is not equal to valid(1), all
                      associated entries in the ringStationTable shall
                      be deleted by the agent."
              ::= { ringStationControlEntry 10 }

          ringStationTable OBJECT-TYPE
              SYNTAX SEQUENCE OF RingStationEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A list of ring station entries.  An entry will
                      exist for each station that is now or has


                      previously been detected as physically present on
                      this ring."
               ::= { tokenRing 2 }

          ringStationEntry OBJECT-TYPE
              SYNTAX RingStationEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A collection of statistics for a particular
                      station that has been discovered on a ring
                      monitored by this device."
              INDEX { ringStationIfIndex, ringStationMacAddress }
              ::= { ringStationTable 1 }

          -- As an example, an instance of the
          -- ringStationStationStatus object might be named
          -- ringStationStationStatus.1.16.0.90.0.64.131

          RingStationEntry ::= SEQUENCE {
              ringStationIfIndex                INTEGER,
              ringStationMacAddress             MacAddress,
              ringStationLastNAUN               MacAddress,
              ringStationStationStatus          INTEGER,
              ringStationLastEnterTime          TimeTicks,
              ringStationLastExitTime           TimeTicks,
              ringStationDuplicateAddresses     Counter,
              ringStationInLineErrors           Counter,
              ringStationOutLineErrors          Counter,
              ringStationInternalErrors         Counter,
              ringStationInBurstErrors          Counter,
              ringStationOutBurstErrors         Counter,
              ringStationACErrors               Counter,
              ringStationAbortErrors            Counter,
              ringStationLostFrameErrors        Counter,
              ringStationCongestionErrors       Counter,
              ringStationFrameCopiedErrors      Counter,
              ringStationFrequencyErrors        Counter,
              ringStationTokenErrors            Counter,
              ringStationInBeaconErrors         Counter,
              ringStationOutBeaconErrors        Counter,
              ringStationInsertions             Counter
          }

          ringStationIfIndex OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory


              DESCRIPTION
                      "The value of this object uniquely identifies the
                      interface on this remote network monitoring device
                      on which this station was detected.  The interface
                      identified by a particular value of this object is
                      the same interface as identified by the same value
                      of the ifIndex object, defined in MIB-II [3]."
              ::= { ringStationEntry 1 }

          ringStationMacAddress OBJECT-TYPE
              SYNTAX MacAddress
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The physical address of this station."
              ::= { ringStationEntry 2 }

          ringStationLastNAUN OBJECT-TYPE
              SYNTAX MacAddress
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The physical address of last known NAUN of this
                      station."
              ::= { ringStationEntry 3 }

          ringStationStationStatus OBJECT-TYPE
              SYNTAX INTEGER {
                  active(1),    -- actively participating in ring poll.
                  inactive(2),  -- Not participating in ring poll
                  forcedRemoval(3) -- Forced off ring by network
                                   -- management.
              }
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The status of this station on the ring."
              ::= { ringStationEntry 4 }

          ringStationLastEnterTime OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The value of sysUpTime at the time this station
                      last entered the ring.  If the time is unknown,
                      this value shall be zero."
              ::= { ringStationEntry 5 }


          ringStationLastExitTime OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The value of sysUpTime at the time the probe
                      detected that this station last exited the ring.
                      If the time is unknown, this value shall be zero."
              ::= { ringStationEntry 6 }

          ringStationDuplicateAddresses OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The number of times this station experienced a
                      duplicate address error."
              ::= { ringStationEntry 7 }

          ringStationInLineErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of line errors reported by this
                      station in error reporting packets detected by the
                      probe."
              ::= { ringStationEntry 8 }

          ringStationOutLineErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of line errors reported in error
                      reporting packets sent by the nearest active
                      downstream neighbor of this station and detected
                      by the probe."
              ::= { ringStationEntry 9 }

          ringStationInternalErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of adapter internal errors
                      reported by this station in error reporting
                      packets detected by the probe."


              ::= { ringStationEntry 10 }

          ringStationInBurstErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of burst errors reported by this
                      station in error reporting packets detected by the
                      probe."
              ::= { ringStationEntry 11 }

          ringStationOutBurstErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of burst errors reported in
                      error reporting packets sent by the nearest active
                      downstream neighbor of this station and detected
                      by the probe."
              ::= { ringStationEntry 12 }

          ringStationACErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of AC (Address Copied) errors
                      reported in error reporting packets sent by the
                      nearest active downstream neighbor of this station
                      and detected by the probe."
              ::= { ringStationEntry 13 }

          ringStationAbortErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of abort delimiters reported by
                      this station in error reporting packets detected
                      by the probe."
              ::= { ringStationEntry 14 }

          ringStationLostFrameErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory


              DESCRIPTION
                      "The total number of lost frame errors reported by
                      this station in error reporting packets detected
                      by the probe."
              ::= { ringStationEntry 15 }

          ringStationCongestionErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of receive congestion errors
                      reported by this station in error reporting
                      packets detected by the probe."
              ::= { ringStationEntry 16 }

          ringStationFrameCopiedErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of frame copied errors reported
                      by this station in error reporting packets
                      detected by the probe."
              ::= { ringStationEntry 17 }

          ringStationFrequencyErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of frequency errors reported by
                      this station in error reporting packets detected
                      by the probe."
              ::= { ringStationEntry 18 }

          ringStationTokenErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of token errors reported by this
                      station in error reporting frames detected by the
                      probe."
              ::= { ringStationEntry 19 }

          ringStationInBeaconErrors OBJECT-TYPE
              SYNTAX Counter


              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of beacon frames sent by this
                      station and detected by the probe."
              ::= { ringStationEntry 20 }

          ringStationOutBeaconErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of beacon frames detected by the
                      probe that name this station as the NAUN."
              ::= { ringStationEntry 21 }

          ringStationInsertions OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The number of times the probe detected this
                      station inserting onto the ring."
              ::= { ringStationEntry 22 }

          -- The Token Ring Ring Station Order Group
          --
          -- Implementation of this group is optional
          --

          -- The ringStationOrderTable

          ringStationOrderTable OBJECT-TYPE
              SYNTAX SEQUENCE OF RingStationOrderEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A list of ring station entries for stations in
                      the ring poll, ordered by their ring-order."
              ::= { tokenRing 3 }

          ringStationOrderEntry OBJECT-TYPE
              SYNTAX RingStationOrderEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A collection of statistics for a particular


                      station that is active on a ring monitored by this
                      device.  This table will contain information for
                      every interface that has a
                      ringStationControlStatus equal to valid."
              INDEX { ringStationOrderIfIndex,
                      ringStationOrderOrderIndex }
              ::= { ringStationOrderTable 1 }

          -- As an example, an instance of the
          -- ringStationOrderMacAddress object might be named
          -- ringStationOrderMacAddress.1.14

          RingStationOrderEntry ::= SEQUENCE {
              ringStationOrderIfIndex             INTEGER,
              ringStationOrderOrderIndex          INTEGER,
              ringStationOrderMacAddress          MacAddress
          }

          ringStationOrderIfIndex OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The value of this object uniquely identifies the
                      interface on this remote network monitoring device
                      on which this station was detected.  The interface
                      identified by a particular value of this object is
                      the same interface as identified by the same value
                      of the ifIndex object, defined in MIB-II [3]."
              ::= { ringStationOrderEntry 1 }

          ringStationOrderOrderIndex OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "This index denotes the location of this station
                      with respect to other stations on the ring.  This
                      index is one more than the number of hops
                      downstream that this station is from the rmon
                      probe.  The rmon probe itself gets the value one."
              ::= { ringStationOrderEntry 2 }

          ringStationOrderMacAddress OBJECT-TYPE
              SYNTAX MacAddress
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION


                      "The physical address of this station."
              ::= { ringStationOrderEntry 3 }

          -- The Token Ring Ring Station Config Group
          --
          -- Implementation of this group is optional.
          -- The ring station config group manages token ring nodes
          -- through active means.

          ringStationConfigControlTable OBJECT-TYPE
              SYNTAX SEQUENCE OF RingStationConfigControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A list of ring station configuration control
                      entries."
              ::= { tokenRing 4 }

          ringStationConfigControlEntry OBJECT-TYPE
              SYNTAX RingStationConfigControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "This entry controls active management of stations
                      by the probe.  One entry exists in this table for
                      each active station in the ringStationTable."
              INDEX { ringStationConfigControlIfIndex,
                      ringStationConfigControlMacAddress }
              ::= { ringStationConfigControlTable 1 }

          -- As an example, an instance of the
          -- ringStationConfigControlRemove object might be named
          -- ringStationConfigControlRemove.1.16.0.90.0.64.131

          RingStationConfigControlEntry ::= SEQUENCE {
              ringStationConfigControlIfIndex         INTEGER,
              ringStationConfigControlMacAddress      MacAddress,
              ringStationConfigControlRemove          INTEGER,
              ringStationConfigControlUpdateStats     INTEGER
          }

          ringStationConfigControlIfIndex OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The value of this object uniquely identifies the


                      interface on this remote network monitoring device
                      on which this station was detected.  The interface
                      identified by a particular value of this object is
                      the same interface as identified by the same value
                      of the ifIndex object, defined in MIB-II [3]."
              ::= { ringStationConfigControlEntry 1 }

          ringStationConfigControlMacAddress OBJECT-TYPE
              SYNTAX MacAddress
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The physical address of this station."
              ::= { ringStationConfigControlEntry 2 }

          ringStationConfigControlRemove OBJECT-TYPE
              SYNTAX INTEGER {
                  stable(1),
                  removing(2)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                      "Setting this object to `removing(2)' causes a
                      Remove Station MAC frame to be sent.  The agent
                      will set this object to `stable(1)' after
                      processing the request."
              ::= { ringStationConfigControlEntry 3 }

          ringStationConfigControlUpdateStats OBJECT-TYPE
              SYNTAX INTEGER {
                  stable(1),
                  updating(2)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                      "Setting this object to `updating(2)' causes the
                      configuration information associate with this
                      entry to be updated.  The agent will set this
                      object to `stable(1)' after processing the
                      request."
              ::= { ringStationConfigControlEntry 4 }


          --  The ringStationConfig Table
          --
          --  Entries exist in this table after an active
          --  configuration query has completed successfully for
          --  a station.  This query is initiated by the associated
          --  ringStationConfigControlUpdateStats variable.

          ringStationConfigTable OBJECT-TYPE
              SYNTAX SEQUENCE OF RingStationConfigEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A list of configuration entries for stations on a
                      ring monitored by this probe."
              ::= { tokenRing 5 }

          ringStationConfigEntry OBJECT-TYPE
              SYNTAX RingStationConfigEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A collection of statistics for a particular
                      station that has been discovered on a ring
                      monitored by this probe."
              INDEX { ringStationConfigIfIndex,
                      ringStationConfigMacAddress }
              ::= { ringStationConfigTable 1 }

          -- As an example, an instance of the
          -- ringStationConfigLocation object might be named
          -- ringStationConfigLocation.1.16.0.90.0.64.131

          RingStationConfigEntry ::= SEQUENCE {
              ringStationConfigIfIndex            INTEGER,
              ringStationConfigMacAddress         MacAddress,
              ringStationConfigUpdateTime         TimeTicks,
              ringStationConfigLocation           OCTET STRING,
              ringStationConfigMicrocode          OCTET STRING,
              ringStationConfigGroupAddress       OCTET STRING,
              ringStationConfigFunctionalAddress  OCTET STRING
          }

          ringStationConfigIfIndex OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The value of this object uniquely identifies the


                      interface on this remote network monitoring device
                      on which this station was detected.  The interface
                      identified by a particular value of this object is
                      the same interface as identified by the same value
                      of the ifIndex object, defined in MIB-II [3]."
              ::= { ringStationConfigEntry 1 }

          ringStationConfigMacAddress OBJECT-TYPE
              SYNTAX MacAddress
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The physical address of this station."
              ::= { ringStationConfigEntry 2 }

          ringStationConfigUpdateTime OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The value of sysUpTime at the time this
                      configuration information was last updated
                      (completely)."
              ::= { ringStationConfigEntry 3 }

          ringStationConfigLocation OBJECT-TYPE
              SYNTAX OCTET STRING (SIZE(4))
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The assigned physical location of this station."
              ::= { ringStationConfigEntry 4 }

          ringStationConfigMicrocode OBJECT-TYPE
              SYNTAX OCTET STRING (SIZE(10))
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The microcode EC level of this station."
              ::= { ringStationConfigEntry 5 }

          ringStationConfigGroupAddress OBJECT-TYPE
              SYNTAX OCTET STRING (SIZE(4))
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The low-order 4 octets of the group address
                      recognized by this station."


              ::= { ringStationConfigEntry 6 }

          ringStationConfigFunctionalAddress OBJECT-TYPE
              SYNTAX OCTET STRING (SIZE(4))
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "the functional addresses recognized by this
                      station."
              ::= { ringStationConfigEntry 7 }

          -- The Token Ring Source Routing group
          --
          -- Implementation of this group is optional.
          -- The data in this group is collected from the source
          -- routing information potentially present in any token ring
          -- packet.  This information will be valid only in a pure
          -- source route bridging environment.  In a transparent
          -- bridging or a mixed bridging environment, this
          -- information may not be accurate.

          sourceRoutingStatsTable OBJECT-TYPE
              SYNTAX SEQUENCE OF SourceRoutingStatsEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A list of source routing statistics entries."
              ::= { tokenRing 6 }

          sourceRoutingStatsEntry OBJECT-TYPE
              SYNTAX SourceRoutingStatsEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                      "A collection of source routing statistics kept
                      for a particular Token Ring interface."
              INDEX { sourceRoutingStatsIfIndex }
              ::= { sourceRoutingStatsTable 1 }

          -- As an example, an instance of the
          -- sourceRoutingStatsInFrames object might be named
          -- sourceRoutingStatsInFrames.1

          SourceRoutingStatsEntry ::= SEQUENCE {
              sourceRoutingStatsIfIndex                     INTEGER,
              sourceRoutingStatsRingNumber                  INTEGER,
              sourceRoutingStatsInFrames                    Counter,


                  -- in to our net

              sourceRoutingStatsOutFrames                   Counter,
                  -- out from our net

              sourceRoutingStatsThroughFrames               Counter,
                  -- through our net

              sourceRoutingStatsAllRoutesBroadcastFrames    Counter,
              sourceRoutingStatsSingleRouteBroadcastFrames  Counter,
              sourceRoutingStatsInOctets                    Counter,
              sourceRoutingStatsOutOctets                   Counter,
              sourceRoutingStatsThroughOctets               Counter,
              sourceRoutingStatsAllRoutesBroadcastOctets    Counter,
              sourceRoutingStatsSingleRoutesBroadcastOctets Counter,
              sourceRoutingStatsLocalLLCFrames              Counter,
              sourceRoutingStats1HopFrames                  Counter,
              sourceRoutingStats2HopsFrames                 Counter,
              sourceRoutingStats3HopsFrames                 Counter,
              sourceRoutingStats4HopsFrames                 Counter,
              sourceRoutingStats5HopsFrames                 Counter,
              sourceRoutingStats6HopsFrames                 Counter,
              sourceRoutingStats7HopsFrames                 Counter,
              sourceRoutingStats8HopsFrames                 Counter,
              sourceRoutingStatsMoreThan8HopsFrames         Counter,
              sourceRoutingStatsOwner                       OwnerString,
              sourceRoutingStatsStatus                      EntryStatus
          }

          sourceRoutingStatsIfIndex OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The value of this object uniquely identifies the
                      interface on this remote network monitoring device
                      on which source routing statistics will be
                      detected.  The interface identified by a
                      particular value of this object is the same
                      interface as identified by the same value of the
                      ifIndex object, defined in MIB-II [3]."
              ::= { sourceRoutingStatsEntry 1 }

          sourceRoutingStatsRingNumber OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION


                      "The ring number of the ring monitored by this
                      entry.  When any object in this entry is created,
                      the probe will attempt to discover the ring
                      number.  Only after the ring number is discovered
                      will this object be created.  After creating an
                      object in this entry, the management station
                      should poll this object to detect when it is
                      created.  Only after this object is created can
                      the management station set the
                      sourceRoutingStatsStatus entry to valid(1)."
              ::= { sourceRoutingStatsEntry 2 }

          sourceRoutingStatsInFrames OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The count of frames sent into this ring from
                      another ring."
              ::= { sourceRoutingStatsEntry 3 }

          sourceRoutingStatsOutFrames OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The count of frames sent from this ring to
                      another ring."
              ::= { sourceRoutingStatsEntry 4 }

          sourceRoutingStatsThroughFrames OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The count of frames sent from another ring,
                      through this ring, to another ring."
              ::= { sourceRoutingStatsEntry 5 }

          sourceRoutingStatsAllRoutesBroadcastFrames OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good frames received that
                      were All Routes Broadcast."
              ::= { sourceRoutingStatsEntry 6 }


          sourceRoutingStatsSingleRouteBroadcastFrames OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of good frames received that
                      were Single Route Broadcast."
              ::= { sourceRoutingStatsEntry 7 }

          sourceRoutingStatsInOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The count of octets in good frames sent into this
                      ring from another ring."
              ::= { sourceRoutingStatsEntry 8 }

          sourceRoutingStatsOutOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The count of octets in good frames sent from this
                      ring to another ring."
              ::= { sourceRoutingStatsEntry 9 }

          sourceRoutingStatsThroughOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The count of octets in good frames sent another
                      ring, through this ring, to another ring."
              ::= { sourceRoutingStatsEntry 10 }

          sourceRoutingStatsAllRoutesBroadcastOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of octets in good frames
                      received that were All Routes Broadcast."
              ::= { sourceRoutingStatsEntry 11 }

          sourceRoutingStatsSingleRoutesBroadcastOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only


              STATUS mandatory
              DESCRIPTION
                      "The total number of octets in good frames
                      received that were Single Route Broadcast."
              ::= { sourceRoutingStatsEntry 12 }

          sourceRoutingStatsLocalLLCFrames OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of frames received who had no
                      RIF field (or had a RIF field that only included
                      the local ring's number) and were not All Route
                      Broadcast Frames."
              ::= { sourceRoutingStatsEntry 13 }

          sourceRoutingStats1HopFrames OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of frames received whose route
                      had 1 hop, were not All Route Broadcast Frames,
                      and whose source or destination were on this ring
                      (i.e. frames that had a RIF field and had this
                      ring number in the first or last entry of the RIF
                      field)."
              ::= { sourceRoutingStatsEntry 14 }

          sourceRoutingStats2HopsFrames OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of frames received whose route
                      had 2 hops, were not All Route Broadcast Frames,
                      and whose source or destination were on this ring
                      (i.e. frames that had a RIF field and had this
                      ring number in the first or last entry of the RIF
                      field)."
              ::= { sourceRoutingStatsEntry 15 }

          sourceRoutingStats3HopsFrames OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION


                      "The total number of frames received whose route
                      had 3 hops, were not All Route Broadcast Frames,
                      and whose source or destination were on this ring
                      (i.e. frames that had a RIF field and had this
                      ring number in the first or last entry of the RIF
                      field)."
              ::= { sourceRoutingStatsEntry 16 }

          sourceRoutingStats4HopsFrames OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of frames received whose route
                      had 4 hops, were not All Route Broadcast Frames,
                      and whose source or destination were on this ring
                      (i.e. frames that had a RIF field and had this
                      ring number in the first or last entry of the RIF
                      field)."
              ::= { sourceRoutingStatsEntry 17 }

          sourceRoutingStats5HopsFrames OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of frames received whose route
                      had 5 hops, were not All Route Broadcast Frames,
                      and whose source or destination were on this ring
                      (i.e. frames that had a RIF field and had this
                      ring number in the first or last entry of the RIF
                      field)."
              ::= { sourceRoutingStatsEntry 18 }

          sourceRoutingStats6HopsFrames OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of frames received whose route
                      had 6 hops, were not All Route Broadcast Frames,
                      and whose source or destination were on this ring
                      (i.e. frames that had a RIF field and had this
                      ring number in the first or last entry of the RIF
                      field)."
              ::= { sourceRoutingStatsEntry 19 }

          sourceRoutingStats7HopsFrames OBJECT-TYPE


              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of frames received whose route
                      had 7 hops, were not All Route Broadcast Frames,
                      and whose source or destination were on this ring
                      (i.e. frames that had a RIF field and had this
                      ring number in the first or last entry of the RIF
                      field)."
              ::= { sourceRoutingStatsEntry 20 }

          sourceRoutingStats8HopsFrames OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of frames received whose route
                      had 8 hops, were not All Route Broadcast Frames,
                      and whose source or destination were on this ring
                      (i.e. frames that had a RIF field and had this
                      ring number in the first or last entry of the RIF
                      field)."
              ::= { sourceRoutingStatsEntry 21 }

          sourceRoutingStatsMoreThan8HopsFrames OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                      "The total number of frames received whose route
                      had more than 8 hops, were not All Route Broadcast
                      Frames, and whose source or destination were on
                      this ring (i.e. frames that had a RIF field and
                      had this ring number in the first or last entry of
                      the RIF field)."
              ::= { sourceRoutingStatsEntry 22 }

          sourceRoutingStatsOwner OBJECT-TYPE
              SYNTAX OwnerString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                      "The entity that configured this entry and is
                      therefore using the resources assigned to it."
              ::= { sourceRoutingStatsEntry 23 }

          sourceRoutingStatsStatus OBJECT-TYPE


              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                      "The status of this sourceRoutingStats entry."
              ::= { sourceRoutingStatsEntry 24 }

END

-- ######################################################

--
-- File: rfc/rfc1757.mib
--

RMON-MIB DEFINITIONS ::= BEGIN

              IMPORTS
                  Counter                FROM RFC1155-SMI
                  DisplayString          FROM RFC1158-MIB
                  mib-2                  FROM RFC1213-MIB
                  OBJECT-TYPE            FROM RFC-1212
                  TRAP-TYPE              FROM RFC-1215;

          --  Remote Network Monitoring MIB

              rmon    OBJECT IDENTIFIER ::= { mib-2 16 }

              -- textual conventions

              OwnerString ::= DisplayString
              -- This data type is used to model an administratively
              -- assigned name of the owner of a resource. This
              -- information is taken from the NVT ASCII character
              -- set.  It is suggested that this name contain one or


              -- more of the following: IP address, management station
              -- name, network manager's name, location, or phone
              -- number.
              -- In some cases the agent itself will be the owner of
              -- an entry.  In these cases, this string shall be set
              -- to a string starting with 'monitor'.
              --
              -- SNMP access control is articulated entirely in terms
              -- of the contents of MIB views; access to a particular
              -- SNMP object instance depends only upon its presence
              -- or absence in a particular MIB view and never upon
              -- its value or the value of related object instances.
              -- Thus, objects of this type afford resolution of
              -- resource contention only among cooperating managers;
              -- they realize no access control function with respect
              -- to uncooperative parties.
              --
              -- By convention, objects with this syntax are declared as
              -- having
              --
              --      SIZE (0..127)

              EntryStatus ::= INTEGER
                         { valid(1),
                           createRequest(2),
                           underCreation(3),
                           invalid(4)
                         }
              -- The status of a table entry.
              --
              -- Setting this object to the value invalid(4) has the
              -- effect of invalidating the corresponding entry.
              -- That is, it effectively disassociates the mapping
              -- identified with said entry.
              -- It is an implementation-specific matter as to whether
              -- the agent removes an invalidated entry from the table.
              -- Accordingly, management stations must be prepared to
              -- receive tabular information from agents that
              -- corresponds to entries currently not in use.  Proper
              -- interpretation of such entries requires examination
              -- of the relevant EntryStatus object.
              --
              -- An existing instance of this object cannot be set to
              -- createRequest(2).  This object may only be set to
              -- createRequest(2) when this instance is created.  When
              -- this object is created, the agent may wish to create
              -- supplemental object instances with default values
              -- to complete a conceptual row in this table.  Because


              -- the creation of these default objects is entirely at
              -- the option of the agent, the manager must not assume
              -- that any will be created, but may make use of any that
              -- are created. Immediately after completing the create
              -- operation, the agent must set this object to
              -- underCreation(3).
              --
              -- When in the underCreation(3) state, an entry is
              -- allowed to exist in a possibly incomplete, possibly
              -- inconsistent state, usually to allow it to be
              -- modified in mutiple PDUs.  When in this state, an
              -- entry is not fully active.  Entries shall exist in
              -- the underCreation(3) state until the management
              -- station is finished configuring the entry and sets
              -- this object to valid(1) or aborts, setting this
              -- object to invalid(4).  If the agent determines that
              -- an entry has been in the underCreation(3) state for
              -- an abnormally long time, it may decide that the
              -- management station has crashed.  If the agent makes
              -- this decision, it may set this object to invalid(4)
              -- to reclaim the entry.  A prudent agent will
              -- understand that the management station may need to
              -- wait for human input and will allow for that
              -- possibility in its determination of this abnormally
              -- long period.
              --
              -- An entry in the valid(1) state is fully configured and
              -- consistent and fully represents the configuration or
              -- operation such a row is intended to represent.  For
              -- example, it could be a statistical function that is
              -- configured and active, or a filter that is available
              -- in the list of filters processed by the packet capture
              -- process.
              --
              -- A manager is restricted to changing the state of an
              -- entry in the following ways:
              --
              --                       create   under
              --      To:       valid  Request  Creation  invalid
              -- From:
              -- valid             OK       NO        OK       OK
              -- createRequest    N/A      N/A       N/A      N/A
              -- underCreation     OK       NO        OK       OK
              -- invalid           NO       NO        NO       OK
              -- nonExistent       NO       OK        NO       OK
              --
              -- In the table above, it is not applicable to move the
              -- state from the createRequest state to any other


              -- state because the manager will never find the
              -- variable in that state.  The nonExistent state is
              -- not a value of the enumeration, rather it means that
              -- the entryStatus variable does not exist at all.
              --
              -- An agent may allow an entryStatus variable to change
              -- state in additional ways, so long as the semantics
              -- of the states are followed.  This allowance is made
              -- to ease the implementation of the agent and is made
              -- despite the fact that managers should never
              -- excercise these additional state transitions.

              statistics        OBJECT IDENTIFIER ::= { rmon 1 }
              history           OBJECT IDENTIFIER ::= { rmon 2 }
              alarm             OBJECT IDENTIFIER ::= { rmon 3 }
              hosts             OBJECT IDENTIFIER ::= { rmon 4 }
              hostTopN          OBJECT IDENTIFIER ::= { rmon 5 }
              matrix            OBJECT IDENTIFIER ::= { rmon 6 }
              filter            OBJECT IDENTIFIER ::= { rmon 7 }
              capture           OBJECT IDENTIFIER ::= { rmon 8 }
              event             OBJECT IDENTIFIER ::= { rmon 9 }

          -- The Ethernet Statistics Group
          --
          -- Implementation of the Ethernet Statistics group is
          -- optional.
          --
          -- The ethernet statistics group contains statistics
          -- measured by the probe for each monitored interface on
          -- this device.  These statistics take the form of free
          -- running counters that start from zero when a valid entry
          -- is created.
          --
          -- This group currently has statistics defined only for
          -- Ethernet interfaces.  Each etherStatsEntry contains
          -- statistics for one Ethernet interface.  The probe must
          -- create one etherStats entry for each monitored Ethernet
          -- interface on the device.

          etherStatsTable OBJECT-TYPE
              SYNTAX SEQUENCE OF EtherStatsEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of Ethernet statistics entries."
              ::= { statistics 1 }


          etherStatsEntry OBJECT-TYPE
              SYNTAX EtherStatsEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A collection of statistics kept for a particular
                  Ethernet interface.  As an example, an instance of the
                  etherStatsPkts object might be named etherStatsPkts.1"
              INDEX { etherStatsIndex }
              ::= { etherStatsTable 1 }

          EtherStatsEntry ::= SEQUENCE {
              etherStatsIndex                    INTEGER (1..65535),
              etherStatsDataSource               OBJECT IDENTIFIER,
              etherStatsDropEvents               Counter,
              etherStatsOctets                   Counter,
              etherStatsPkts                     Counter,
              etherStatsBroadcastPkts            Counter,
              etherStatsMulticastPkts            Counter,
              etherStatsCRCAlignErrors           Counter,
              etherStatsUndersizePkts            Counter,
              etherStatsOversizePkts             Counter,
              etherStatsFragments                Counter,
              etherStatsJabbers                  Counter,
              etherStatsCollisions               Counter,
              etherStatsPkts64Octets             Counter,
              etherStatsPkts65to127Octets        Counter,
              etherStatsPkts128to255Octets       Counter,
              etherStatsPkts256to511Octets       Counter,
              etherStatsPkts512to1023Octets      Counter,
              etherStatsPkts1024to1518Octets     Counter,
              etherStatsOwner                    OwnerString,
              etherStatsStatus                   EntryStatus
          }

          etherStatsIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of this object uniquely identifies this
                  etherStats entry."
              ::= { etherStatsEntry 1 }

          etherStatsDataSource OBJECT-TYPE
              SYNTAX OBJECT IDENTIFIER
              ACCESS read-write
              STATUS mandatory


              DESCRIPTION
                  "This object identifies the source of the data that
                  this etherStats entry is configured to analyze.  This
                  source can be any ethernet interface on this device.
                  In order to identify a particular interface, this
                  object shall identify the instance of the ifIndex
                  object, defined in RFC 1213 and RFC 1573 [4,6], for
                  the desired interface.  For example, if an entry
                  were to receive data from interface #1, this object
                  would be set to ifIndex.1.

                  The statistics in this group reflect all packets
                  on the local network segment attached to the
                  identified interface.

                  An agent may or may not be able to tell if
                  fundamental changes to the media of the interface
                  have occurred and necessitate an invalidation of
                  this entry.  For example, a hot-pluggable ethernet
                  card could be pulled out and replaced by a
                  token-ring card.  In such a case, if the agent has
                  such knowledge of the change, it is recommended that
                  it invalidate this entry.

                  This object may not be modified if the associated
                  etherStatsStatus object is equal to valid(1)."
              ::= { etherStatsEntry 2 }

          etherStatsDropEvents OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of events in which packets
                  were dropped by the probe due to lack of resources.
                  Note that this number is not necessarily the number of
                  packets dropped; it is just the number of times this
                  condition has been detected."
              ::= { etherStatsEntry 3 }

          etherStatsOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of octets of data (including
                  those in bad packets) received on the
                  network (excluding framing bits but including


                  FCS octets).

                  This object can be used as a reasonable estimate of
                  ethernet utilization.  If greater precision is
                  desired, the etherStatsPkts and etherStatsOctets
                  objects should be sampled before and after a common
                  interval.  The differences in the sampled values are
                  Pkts and Octets, respectively, and the number of
                  seconds in the interval is Interval.  These values
                  are used to calculate the Utilization as follows:

                                   Pkts * (9.6 + 6.4) + (Octets * .8)
                   Utilization = -------------------------------------
                                           Interval * 10,000

                  The result of this equation is the value Utilization
                  which is the percent utilization of the ethernet
                  segment on a scale of 0 to 100 percent."
              ::= { etherStatsEntry 4 }

          etherStatsPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets (including bad packets,
                  broadcast packets, and multicast packets) received."
              ::= { etherStatsEntry 5 }

          etherStatsBroadcastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of good packets received that were
                  directed to the broadcast address.  Note that this
                  does not include multicast packets."
              ::= { etherStatsEntry 6 }

          etherStatsMulticastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of good packets received that were
                  directed to a multicast address.  Note that this
                  number does not include packets directed to the
                  broadcast address."


              ::= { etherStatsEntry 7 }

          etherStatsCRCAlignErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets received that
                  had a length (excluding framing bits, but
                  including FCS octets) of between 64 and 1518
                  octets, inclusive, but but had either a bad
                  Frame Check Sequence (FCS) with an integral
                  number of octets (FCS Error) or a bad FCS with
                  a non-integral number of octets (Alignment Error)."
              ::= { etherStatsEntry 8 }

          etherStatsUndersizePkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets received that were
                  less than 64 octets long (excluding framing bits,
                  but including FCS octets) and were otherwise well
                  formed."
              ::= { etherStatsEntry 9 }

          etherStatsOversizePkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets received that were
                  longer than 1518 octets (excluding framing bits,
                  but including FCS octets) and were otherwise
                  well formed."
              ::= { etherStatsEntry 10 }

          etherStatsFragments OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets received that were less
                  than 64 octets in length (excluding framing bits but
                  including FCS octets) and had either a bad Frame
                  Check Sequence (FCS) with an integral number of
                  octets (FCS Error) or a bad FCS with a non-integral


                  number of octets (Alignment Error).

                  Note that it is entirely normal for
                  etherStatsFragments to increment.  This is because
                  it counts both runts (which are normal occurrences
                  due to collisions) and noise hits."
              ::= { etherStatsEntry 11 }

          etherStatsJabbers OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets received that were
                  longer than 1518 octets (excluding framing bits,
                  but including FCS octets), and had either a bad
                  Frame Check Sequence (FCS) with an integral number
                  of octets (FCS Error) or a bad FCS with a
                  non-integral number of octets (Alignment Error).

                  Note that this definition of jabber is different
                  than the definition in IEEE-802.3 section 8.2.1.5
                  (10BASE5) and section 10.3.1.4 (10BASE2).  These
                  documents define jabber as the condition where any
                  packet exceeds 20 ms.  The allowed range to detect
                  jabber is between 20 ms and 150 ms."
              ::= { etherStatsEntry 12 }

          etherStatsCollisions OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The best estimate of the total number of collisions
                  on this Ethernet segment.

                  The value returned will depend on the location of
                  the RMON probe. Section 8.2.1.3 (10BASE-5) and
                  section 10.3.1.3 (10BASE-2) of IEEE standard 802.3
                  states that a station must detect a collision, in
                  the receive mode, if three or more stations are
                  transmitting simultaneously.  A repeater port must
                  detect a collision when two or more stations are
                  transmitting simultaneously.  Thus a probe placed on
                  a repeater port could record more collisions than a
                  probe connected to a station on the same segment
                  would.


                  Probe location plays a much smaller role when
                  considering 10BASE-T.  14.2.1.4 (10BASE-T) of IEEE
                  standard 802.3 defines a collision as the
                  simultaneous presence of signals on the DO and RD
                  circuits (transmitting and receiving at the same
                  time).  A 10BASE-T station can only detect
                  collisions when it is transmitting.  Thus probes
                  placed on a station and a repeater, should report
                  the same number of collisions.

                  Note also that an RMON probe inside a repeater
                  should ideally report collisions between the
                  repeater and one or more other hosts (transmit
                  collisions as defined by IEEE 802.3k) plus receiver
                  collisions observed on any coax segments to which
                  the repeater is connected."
              ::= { etherStatsEntry 13 }

          etherStatsPkts64Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets (including bad
                  packets) received that were 64 octets in length
                  (excluding framing bits but including FCS octets)."
              ::= { etherStatsEntry 14 }

          etherStatsPkts65to127Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets (including bad
                  packets) received that were between
                  65 and 127 octets in length inclusive
                  (excluding framing bits but including FCS octets)."
              ::= { etherStatsEntry 15 }

          etherStatsPkts128to255Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets (including bad
                  packets) received that were between
                  128 and 255 octets in length inclusive
                  (excluding framing bits but including FCS octets)."


              ::= { etherStatsEntry 16 }

          etherStatsPkts256to511Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets (including bad
                  packets) received that were between
                  256 and 511 octets in length inclusive
                  (excluding framing bits but including FCS octets)."
              ::= { etherStatsEntry 17 }

          etherStatsPkts512to1023Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets (including bad
                  packets) received that were between
                  512 and 1023 octets in length inclusive
                  (excluding framing bits but including FCS octets)."
              ::= { etherStatsEntry 18 }

          etherStatsPkts1024to1518Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets (including bad
                  packets) received that were between
                  1024 and 1518 octets in length inclusive
                  (excluding framing bits but including FCS octets)."
              ::= { etherStatsEntry 19 }

          etherStatsOwner OBJECT-TYPE
              SYNTAX OwnerString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is
                  therefore using the resources assigned to it."
              ::= { etherStatsEntry 20 }

          etherStatsStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory


              DESCRIPTION
                  "The status of this etherStats entry."
              ::= { etherStatsEntry 21 }

          -- The History Control Group

          -- Implementation of the History Control group is optional.
          --
          -- The history control group controls the periodic statistical
          -- sampling of data from various types of networks.  The
          -- historyControlTable stores configuration entries that each
          -- define an interface, polling period, and other parameters.
          -- Once samples are taken, their data is stored in an entry
          -- in a media-specific table.  Each such entry defines one
          -- sample, and is associated with the historyControlEntry that
          -- caused the sample to be taken.  Each counter in the
          -- etherHistoryEntry counts the same event as its
          -- similarly-named counterpart in the etherStatsEntry,
          -- except that each value here is a cumulative sum during a
          -- sampling period.
          --
          -- If the probe keeps track of the time of day, it should
          -- start the first sample of the history at a time such that
          -- when the next hour of the day begins, a sample is
          -- started at that instant.  This tends to make more
          -- user-friendly reports, and enables comparison of reports
          -- from different probes that have relatively accurate time
          -- of day.
          --
          -- The probe is encouraged to add two history control entries
          -- per monitored interface upon initialization that describe
          -- a short term and a long term polling period.  Suggested
          -- parameters are 30 seconds for the short term polling period
          -- and 30 minutes for the long term period.

          historyControlTable OBJECT-TYPE
              SYNTAX SEQUENCE OF HistoryControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of history control entries."
              ::= { history 1 }

          historyControlEntry OBJECT-TYPE
              SYNTAX HistoryControlEntry
              ACCESS not-accessible
              STATUS mandatory


              DESCRIPTION
                  "A list of parameters that set up a periodic sampling
                  of statistics.  As an example, an instance of the
                  historyControlInterval object might be named
                  historyControlInterval.2"
              INDEX { historyControlIndex }
              ::= { historyControlTable 1 }

          HistoryControlEntry ::= SEQUENCE {
              historyControlIndex             INTEGER (1..65535),
              historyControlDataSource        OBJECT IDENTIFIER,
              historyControlBucketsRequested  INTEGER (1..65535),
              historyControlBucketsGranted    INTEGER (1..65535),
              historyControlInterval          INTEGER (1..3600),
              historyControlOwner             OwnerString,
              historyControlStatus            EntryStatus
          }

          historyControlIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry in the
                  historyControl table.  Each such entry defines a
                  set of samples at a particular interval for an
                  interface on the device."
              ::= { historyControlEntry 1 }

          historyControlDataSource OBJECT-TYPE
              SYNTAX OBJECT IDENTIFIER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "This object identifies the source of the data for
                  which historical data was collected and
                  placed in a media-specific table on behalf of this
                  historyControlEntry.  This source can be any
                  interface on this device.  In order to identify
                  a particular interface, this object shall identify
                  the instance of the ifIndex object, defined
                  in  RFC 1213 and RFC 1573 [4,6], for the desired
                  interface.  For example, if an entry were to receive
                  data from interface #1, this object would be set
                  to ifIndex.1.

                  The statistics in this group reflect all packets
                  on the local network segment attached to the


                  identified interface.

                  An agent may or may not be able to tell if fundamental
                  changes to the media of the interface have occurred
                  and necessitate an invalidation of this entry.  For
                  example, a hot-pluggable ethernet card could be
                  pulled out and replaced by a token-ring card.  In
                  such a case, if the agent has such knowledge of the
                  change, it is recommended that it invalidate this
                  entry.

                  This object may not be modified if the associated
                  historyControlStatus object is equal to valid(1)."
              ::= { historyControlEntry 2 }

          historyControlBucketsRequested OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The requested number of discrete time intervals
                  over which data is to be saved in the part of the
                  media-specific table associated with this
                  historyControlEntry.

                  When this object is created or modified, the probe
                  should set historyControlBucketsGranted as closely to
                  this object as is possible for the particular probe
                  implementation and available resources."
              DEFVAL { 50 }
              ::= { historyControlEntry 3 }

          historyControlBucketsGranted OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of discrete sampling intervals
                  over which data shall be saved in the part of
                  the media-specific table associated with this
                  historyControlEntry.

                  When the associated historyControlBucketsRequested
                  object is created or modified, the probe
                  should set this object as closely to the requested
                  value as is possible for the particular
                  probe implementation and available resources.  The
                  probe must not lower this value except as a result


                  of a modification to the associated
                  historyControlBucketsRequested object.

                  There will be times when the actual number of
                  buckets associated with this entry is less than
                  the value of this object.  In this case, at the
                  end of each sampling interval, a new bucket will
                  be added to the media-specific table.

                  When the number of buckets reaches the value of
                  this object and a new bucket is to be added to the
                  media-specific table, the oldest bucket associated
                  with this historyControlEntry shall be deleted by
                  the agent so that the new bucket can be added.

                  When the value of this object changes to a value less
                  than the current value, entries are deleted
                  from the media-specific table associated with this
                  historyControlEntry.  Enough of the oldest of these
                  entries shall be deleted by the agent so that their
                  number remains less than or equal to the new value of
                  this object.

                  When the value of this object changes to a value
                  greater than the current value, the number of
                  associated media- specific entries may be allowed to
                  grow."
              ::= { historyControlEntry 4 }

          historyControlInterval OBJECT-TYPE
              SYNTAX INTEGER (1..3600)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The interval in seconds over which the data is
                  sampled for each bucket in the part of the
                  media-specific table associated with this
                  historyControlEntry.  This interval can
                  be set to any number of seconds between 1 and
                  3600 (1 hour).

                  Because the counters in a bucket may overflow at their
                  maximum value with no indication, a prudent manager
                  will take into account the possibility of overflow
                  in any of the associated counters.  It is important
                  to consider the minimum time in which any counter
                  could overflow on a particular media type and set
                  the historyControlInterval object to a value less


                  than this interval.  This is typically most
                  important for the 'octets' counter in any
                  media-specific table.  For example, on an Ethernet
                  network, the etherHistoryOctets counter could
                  overflow in about one hour at the Ethernet's maximum
                  utilization.

                  This object may not be modified if the associated
                  historyControlStatus object is equal to valid(1)."
              DEFVAL { 1800 }
              ::= { historyControlEntry 5 }

          historyControlOwner OBJECT-TYPE
              SYNTAX OwnerString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is
                  therefore using the resources assigned to it."
              ::= { historyControlEntry 6 }

          historyControlStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this historyControl entry.

                  Each instance of the media-specific table associated
                  with this historyControlEntry will be deleted by the
                  agent if this historyControlEntry is not equal to
                  valid(1)."
              ::= { historyControlEntry 7 }

          -- The Ethernet History Group

          -- Implementation of the Ethernet History group is optional.
          --
          -- The Ethernet History group records periodic
          -- statistical samples from a network and stores them
          -- for later retrieval.  Once samples are taken, their
          -- data is stored in an entry in a media-specific
          -- table.  Each such entry defines one sample, and is
          -- associated with the historyControlEntry that caused
          -- the sample to be taken.  This group defines the
          -- etherHistoryTable, for Ethernet networks.
          --


          etherHistoryTable OBJECT-TYPE
              SYNTAX SEQUENCE OF EtherHistoryEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of Ethernet history entries."
              ::= { history 2 }

          etherHistoryEntry OBJECT-TYPE
              SYNTAX EtherHistoryEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "An historical sample of Ethernet statistics on a
                  particular Ethernet interface.  This sample is
                  associated with the historyControlEntry which set up
                  the parameters for a regular collection of these
                  samples.  As an example, an instance of the
                  etherHistoryPkts object might be named
                  etherHistoryPkts.2.89"
              INDEX { etherHistoryIndex , etherHistorySampleIndex }
              ::= { etherHistoryTable 1 }

          EtherHistoryEntry ::= SEQUENCE {
              etherHistoryIndex                 INTEGER (1..65535),
              etherHistorySampleIndex           INTEGER (1..2147483647),
              etherHistoryIntervalStart         TimeTicks,
              etherHistoryDropEvents            Counter,
              etherHistoryOctets                Counter,
              etherHistoryPkts                  Counter,
              etherHistoryBroadcastPkts         Counter,
              etherHistoryMulticastPkts         Counter,
              etherHistoryCRCAlignErrors        Counter,
              etherHistoryUndersizePkts         Counter,
              etherHistoryOversizePkts          Counter,
              etherHistoryFragments             Counter,
              etherHistoryJabbers               Counter,
              etherHistoryCollisions            Counter,
              etherHistoryUtilization           INTEGER (0..10000)
          }

          etherHistoryIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The history of which this entry is a part.  The
                  history identified by a particular value of this


                  index is the same history as identified
                  by the same value of historyControlIndex."
              ::= { etherHistoryEntry 1 }

          etherHistorySampleIndex OBJECT-TYPE
              SYNTAX INTEGER (1..2147483647)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies the particular
                  sample this entry represents among all samples
                  associated with the same historyControlEntry.
                  This index starts at 1 and increases by one
                  as each new sample is taken."
              ::= { etherHistoryEntry 2 }

          etherHistoryIntervalStart OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of sysUpTime at the start of the interval
                  over which this sample was measured.  If the probe
                  keeps track of the time of day, it should start
                  the first sample of the history at a time such that
                  when the next hour of the day begins, a sample is
                  started at that instant.  Note that following this
                  rule may require the probe to delay collecting the
                  first sample of the history, as each sample must be
                  of the same interval.  Also note that the sample which
                  is currently being collected is not accessible in this
                  table until the end of its interval."
              ::= { etherHistoryEntry 3 }

          etherHistoryDropEvents OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of events in which packets
                  were dropped by the probe due to lack of resources
                  during this sampling interval.  Note that this number
              is not necessarily the number of packets dropped, it
              is just the number of times this condition has been
              detected."
              ::= { etherHistoryEntry 4 }

          etherHistoryOctets OBJECT-TYPE


              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of octets of data (including
                  those in bad packets) received on the
                  network (excluding framing bits but including
                  FCS octets)."
              ::= { etherHistoryEntry 5 }

          etherHistoryPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets (including bad packets)
                  received during this sampling interval."
              ::= { etherHistoryEntry 6 }

          etherHistoryBroadcastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of good packets received during this
                  sampling interval that were directed to the
                  broadcast address."
              ::= { etherHistoryEntry 7 }

          etherHistoryMulticastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of good packets received during this
                  sampling interval that were directed to a
                  multicast address.  Note that this number does not
                  include packets addressed to the broadcast address."
              ::= { etherHistoryEntry 8 }

          etherHistoryCRCAlignErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets received during this sampling
                  interval that had a length (excluding framing bits
                  but including FCS octets) between 64 and 1518


                  octets, inclusive, but had either a bad Frame Check
                  Sequence (FCS) with an integral number of octets
                  (FCS Error) or a bad FCS with a non-integral number
                  of octets (Alignment Error)."
              ::= { etherHistoryEntry 9 }

          etherHistoryUndersizePkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets received during this
                  sampling interval that were less than 64 octets
                  long (excluding framing bits but including FCS
                  octets) and were otherwise well formed."
              ::= { etherHistoryEntry 10 }

          etherHistoryOversizePkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets received during this
                  sampling interval that were longer than 1518
                  octets (excluding framing bits but including
                  FCS octets) but were otherwise well formed."
              ::= { etherHistoryEntry 11 }

          etherHistoryFragments OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets received during this
                  sampling interval that were less than 64 octets in
                  length (excluding framing bits but including FCS
                  octets) had either a bad Frame Check Sequence (FCS)
                  with an integral number of octets (FCS Error) or a bad
                  FCS with a non-integral number of octets (Alignment
                  Error).

                  Note that it is entirely normal for
                  etherHistoryFragments to increment.  This is because
                  it counts both runts (which are normal occurrences
                  due to collisions) and noise hits."
              ::= { etherHistoryEntry 12 }

          etherHistoryJabbers OBJECT-TYPE


              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets received during this
                  sampling interval that were longer than 1518 octets
                  (excluding framing bits but including FCS octets),
                  and  had either a bad Frame Check Sequence (FCS)
                  with an integral number of octets (FCS Error) or
                  a bad FCS with a non-integral number of octets
                  (Alignment Error).

                  Note that this definition of jabber is different
                  than the definition in IEEE-802.3 section 8.2.1.5
                  (10BASE5) and section 10.3.1.4 (10BASE2).  These
                  documents define jabber as the condition where any
                  packet exceeds 20 ms.  The allowed range to detect
                  jabber is between 20 ms and 150 ms."
              ::= { etherHistoryEntry 13 }

          etherHistoryCollisions OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The best estimate of the total number of collisions
                  on this Ethernet segment during this sampling
                  interval.

                  The value returned will depend on the location of
                  the RMON probe. Section 8.2.1.3 (10BASE-5) and
                  section 10.3.1.3 (10BASE-2) of IEEE standard 802.3
                  states that a station must detect a collision, in
                  the receive mode, if three or more stations are
                  transmitting simultaneously.  A repeater port must
                  detect a collision when two or more stations are
                  transmitting simultaneously.  Thus a probe placed on
                  a repeater port could record more collisions than a
                  probe connected to a station on the same segment
                  would.

                  Probe location plays a much smaller role when
                  considering 10BASE-T.  14.2.1.4 (10BASE-T) of IEEE
                  standard 802.3 defines a collision as the
                  simultaneous presence of signals on the DO and RD
                  circuits (transmitting and receiving at the same
                  time).  A 10BASE-T station can only detect
                  collisions when it is transmitting.  Thus probes


                  placed on a station and a repeater, should report
                  the same number of collisions.

                  Note also that an RMON probe inside a repeater
                  should ideally report collisions between the
                  repeater and one or more other hosts (transmit
                  collisions as defined by IEEE 802.3k) plus receiver
                  collisions observed on any coax segments to which
                  the repeater is connected."
              ::= { etherHistoryEntry 14 }

          etherHistoryUtilization OBJECT-TYPE
              SYNTAX INTEGER (0..10000)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The best estimate of the mean physical layer
                  network utilization on this interface during this
                  sampling interval, in hundredths of a percent."
              ::= { etherHistoryEntry 15 }

          -- The Alarm Group

          -- Implementation of the Alarm group is optional.
          --
          -- The Alarm Group requires the implementation of the Event
          -- group.
          --
          -- The Alarm group periodically takes
          -- statistical samples from variables in the probe and
          -- compares them to thresholds that have been
          -- configured.  The alarm table stores configuration
          -- entries that each define a variable, polling period,
          -- and threshold parameters.  If a sample is found to
          -- cross the threshold values, an event is generated.
          -- Only variables that resolve to an ASN.1 primitive
          -- type of INTEGER (INTEGER, Counter, Gauge, or
          -- TimeTicks) may be monitored in this way.
          --
          -- This function has a hysteresis mechanism to limit
          -- the generation of events.  This mechanism generates
          -- one event as a threshold is crossed in the
          -- appropriate direction.  No more events are generated
          -- for that threshold until the opposite threshold is
          -- crossed.
          --
          -- In the case of a sampling a deltaValue, a probe may


          -- implement this mechanism with more precision if it
          -- takes a delta sample twice per period, each time
          -- comparing the sum of the latest two samples to the
          -- threshold.  This allows the detection of threshold
          -- crossings that span the sampling boundary.  Note
          -- that this does not require any special configuration
          -- of the threshold value.  It is suggested that probes
          -- implement this more precise algorithm.

          alarmTable OBJECT-TYPE
              SYNTAX SEQUENCE OF AlarmEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of alarm entries."
              ::= { alarm 1 }

          alarmEntry OBJECT-TYPE
              SYNTAX AlarmEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of parameters that set up a periodic checking
                  for alarm conditions.  For example, an instance of the
                  alarmValue object might be named alarmValue.8"
              INDEX { alarmIndex }
              ::= { alarmTable 1 }

          AlarmEntry ::= SEQUENCE {
              alarmIndex                    INTEGER (1..65535),
              alarmInterval                 INTEGER,
              alarmVariable                 OBJECT IDENTIFIER,
              alarmSampleType               INTEGER,
              alarmValue                    INTEGER,
              alarmStartupAlarm             INTEGER,
              alarmRisingThreshold          INTEGER,
              alarmFallingThreshold         INTEGER,
              alarmRisingEventIndex         INTEGER (0..65535),
              alarmFallingEventIndex        INTEGER (0..65535),
              alarmOwner                    OwnerString,
              alarmStatus                   EntryStatus
          }

          alarmIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION


                  "An index that uniquely identifies an entry in the
                  alarm table.  Each such entry defines a
                  diagnostic sample at a particular interval
                  for an object on the device."
              ::= { alarmEntry 1 }

          alarmInterval OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The interval in seconds over which the data is
                  sampled and compared with the rising and falling
                  thresholds.  When setting this variable, care
                  should be taken in the case of deltaValue
                  sampling - the interval should be set short enough
                  that the sampled variable is very unlikely to
                  increase or decrease by more than 2^31 - 1 during
                  a single sampling interval.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
              ::= { alarmEntry 2 }

          alarmVariable OBJECT-TYPE
              SYNTAX OBJECT IDENTIFIER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The object identifier of the particular variable to
                  be sampled.  Only variables that resolve to an ASN.1
                  primitive type of INTEGER (INTEGER, Counter, Gauge,
                  or TimeTicks) may be sampled.

                  Because SNMP access control is articulated entirely
                  in terms of the contents of MIB views, no access
                  control mechanism exists that can restrict the value
                  of this object to identify only those objects that
                  exist in a particular MIB view.  Because there is
                  thus no acceptable means of restricting the read
                  access that could be obtained through the alarm
                  mechanism, the probe must only grant write access to
                  this object in those views that have read access to
                  all objects on the probe.

                  During a set operation, if the supplied variable
                  name is not available in the selected MIB view, a
                  badValue error must be returned.  If at any time the


                  variable name of an established alarmEntry is no
                  longer available in the selected MIB view, the probe
                  must change the status of this alarmEntry to
                  invalid(4).

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
              ::= { alarmEntry 3 }

          alarmSampleType OBJECT-TYPE
              SYNTAX INTEGER {
                  absoluteValue(1),
                  deltaValue(2)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The method of sampling the selected variable and
                  calculating the value to be compared against the
                  thresholds.  If the value of this object is
                  absoluteValue(1), the value of the selected variable
                  will be compared directly with the thresholds at the
                  end of the sampling interval.  If the value of this
                  object is deltaValue(2), the value of the selected
                  variable at the last sample will be subtracted from
                  the current value, and the difference compared with
                  the thresholds.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
              ::= { alarmEntry 4 }

          alarmValue OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of the statistic during the last sampling
                  period.  For example, if the sample type is
                  deltaValue, this value will be the difference
                  between the samples at the beginning and end of the
                  period.  If the sample type is absoluteValue, this
                  value will be the sampled value at the end of the
                  period.

                  This is the value that is compared with the rising and
                  falling thresholds.


                  The value during the current sampling period is not
                  made available until the period is completed and will
                  remain available until the next period completes."
              ::= { alarmEntry 5 }

          alarmStartupAlarm OBJECT-TYPE
              SYNTAX INTEGER {
                  risingAlarm(1),
                  fallingAlarm(2),
                  risingOrFallingAlarm(3)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The alarm that may be sent when this entry is first
                  set to valid.  If the first sample after this entry
                  becomes valid is greater than or equal to the
                  risingThreshold and alarmStartupAlarm is equal to
                  risingAlarm(1) or risingOrFallingAlarm(3), then a
                  single rising alarm will be generated.  If the first
                  sample after this entry becomes valid is less than
                  or equal to the fallingThreshold and
                  alarmStartupAlarm is equal to fallingAlarm(2) or
                  risingOrFallingAlarm(3), then a single falling alarm
                  will be generated.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
              ::= { alarmEntry 6 }

          alarmRisingThreshold OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "A threshold for the sampled statistic.  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, a single
                  event will be generated.  A single event will also
                  be generated if the first sample after this entry
                  becomes valid is greater than or equal to this
                  threshold and the associated alarmStartupAlarm is
                  equal to risingAlarm(1) or risingOrFallingAlarm(3).

                  After a rising event is generated, another such event
                  will not be generated until the sampled value
                  falls below this threshold and reaches the


                  alarmFallingThreshold.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
              ::= { alarmEntry 7 }

          alarmFallingThreshold OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "A threshold for the sampled statistic.  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, a single
                  event will be generated.  A single event will also
                  be generated if the first sample after this entry
                  becomes valid is less than or equal to this
                  threshold and the associated alarmStartupAlarm is
                  equal to fallingAlarm(2) or risingOrFallingAlarm(3).

                  After a falling event is generated, another such event
                  will not be generated until the sampled value
                  rises above this threshold and reaches the
                  alarmRisingThreshold.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
              ::= { alarmEntry 8 }

          alarmRisingEventIndex OBJECT-TYPE
              SYNTAX INTEGER (0..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The index of the eventEntry that is
                  used when a rising threshold is crossed.  The
                  eventEntry identified by a particular value of
                  this index is the same as identified by the same value
                  of the eventIndex object.  If there is no
                  corresponding entry in the eventTable, then
                  no association exists.  In particular, if this value
                  is zero, no associated event will be generated, as
                  zero is not a valid event index.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
              ::= { alarmEntry 9 }


          alarmFallingEventIndex OBJECT-TYPE
              SYNTAX INTEGER (0..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The index of the eventEntry that is
                  used when a falling threshold is crossed.  The
                  eventEntry identified by a particular value of
                  this index is the same as identified by the same value
                  of the eventIndex object.  If there is no
                  corresponding entry in the eventTable, then
                  no association exists.  In particular, if this value
                  is zero, no associated event will be generated, as
                  zero is not a valid event index.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
              ::= { alarmEntry 10 }

          alarmOwner OBJECT-TYPE
              SYNTAX OwnerString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is
                  therefore using the resources assigned to it."
              ::= { alarmEntry 11 }

          alarmStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this alarm entry."
              ::= { alarmEntry 12 }

          -- The Host Group

          -- Implementation of the Host group is optional.
          --
          -- The host group discovers new hosts on the network by
          -- keeping a list of source and destination MAC Addresses seen
          -- in good packets.  For each of these addresses, the host
          -- group keeps a set of statistics.  The hostControlTable
          -- controls which interfaces this function is performed on,
          -- and contains some information about the process.  On
          -- behalf of each hostControlEntry, data is collected on an


          -- interface and placed in both the hostTable and the
          -- hostTimeTable.  If the monitoring device finds itself
          -- short of resources, it may delete entries as needed.  It
          -- is suggested that the device delete the least recently
          -- used entries first.

          -- The hostTable contains entries for each address
          -- discovered on a particular interface.  Each entry
          -- contains statistical data about that host.  This table is
          -- indexed by the MAC address of the host, through which a
          -- random access may be achieved.

          -- The hostTimeTable contains data in the same format as the
          -- hostTable, and must contain the same set of hosts, but is
          -- indexed using hostTimeCreationOrder rather than
          -- hostAddress.
          -- The hostTimeCreationOrder is an integer which reflects
          -- the relative order in which a particular entry was
          -- discovered and thus inserted into the table.  As this
          -- order, and thus the index, is among those entries
          -- currently in the table, the index for a particular entry
          -- may change if an (earlier) entry is deleted.  Thus the
          -- association between hostTimeCreationOrder and
          -- hostTimeEntry may be broken at any time.

          -- The hostTimeTable has two important uses.  The first is the
          -- fast download of this potentially large table.  Because the
          -- index of this table runs from 1 to the size of the table,
          -- inclusive, its values are predictable.  This allows very
          -- efficient packing of variables into SNMP PDU's and allows
          -- a table transfer to have multiple packets outstanding.
          -- These benefits increase transfer rates tremendously.

          -- The second use of the hostTimeTable is the efficient
          -- discovery by the management station of new entries added
          -- to the table. After the management station has downloaded
          -- the entire table, it knows that new entries will be added
          -- immediately after the end of the current table.  It can
          -- thus detect new entries there and retrieve them easily.

          -- Because the association between hostTimeCreationOrder and
          -- hostTimeEntry may be broken at any time, the management
          -- station must monitor the related hostControlLastDeleteTime
          -- object.  When the management station thus detects a
          -- deletion, it must assume that any such associations have
          --- been broken, and invalidate any it has stored locally.
          -- This includes restarting any download of the
          -- hostTimeTable that may have been in progress, as well as


          -- rediscovering the end of the hostTimeTable so that it may
          -- detect new entries.  If the management station does not
          -- detect the broken association, it may continue to refer
          -- to a particular host by its creationOrder while
          -- unwittingly retrieving the data associated with another
          -- host entirely.  If this happens while downloading the
          -- host table, the management station may fail to download
          -- all of the entries in the table.

          hostControlTable OBJECT-TYPE
              SYNTAX SEQUENCE OF HostControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of host table control entries."
              ::= { hosts 1 }

          hostControlEntry OBJECT-TYPE
              SYNTAX HostControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of parameters that set up the discovery of
                  hosts on a particular interface and the collection
                  of statistics about these hosts.  For example, an
                  instance of the hostControlTableSize object might be
                  named hostControlTableSize.1"
              INDEX { hostControlIndex }
              ::= { hostControlTable 1 }

          HostControlEntry ::= SEQUENCE {
              hostControlIndex            INTEGER (1..65535),
              hostControlDataSource       OBJECT IDENTIFIER,
              hostControlTableSize        INTEGER,
              hostControlLastDeleteTime   TimeTicks,
              hostControlOwner            OwnerString,
              hostControlStatus           EntryStatus
          }

          hostControlIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry in the
                  hostControl table.  Each such entry defines
                  a function that discovers hosts on a particular
                  interface and places statistics about them in the


                  hostTable and the hostTimeTable on behalf of this
                  hostControlEntry."
              ::= { hostControlEntry 1 }

          hostControlDataSource OBJECT-TYPE
              SYNTAX OBJECT IDENTIFIER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "This object identifies the source of the data for
                  this instance of the host function.  This source
                  can be any interface on this device.  In order
                  to identify a particular interface, this object shall
                  identify the instance of the ifIndex object, defined
                  in RFC 1213 and RFC 1573 [4,6], for the desired
                  interface. For example, if an entry were to receive
                  data from interface #1, this object would be set to
                  ifIndex.1.

                  The statistics in this group reflect all packets
                  on the local network segment attached to the
                  identified interface.

                  An agent may or may not be able to tell if
                  fundamental changes to the media of the interface
                  have occurred and necessitate an invalidation of
                  this entry.  For example, a hot-pluggable ethernet
                  card could be pulled out and replaced by a
                  token-ring card.  In such a case, if the agent has
                  such knowledge of the change, it is recommended that
                  it invalidate this entry.

                  This object may not be modified if the associated
                  hostControlStatus object is equal to valid(1)."
              ::= { hostControlEntry 2 }

          hostControlTableSize OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of hostEntries in the hostTable and the
                  hostTimeTable associated with this hostControlEntry."
              ::= { hostControlEntry 3 }

          hostControlLastDeleteTime OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only


              STATUS mandatory
              DESCRIPTION
                  "The value of sysUpTime when the last entry
                  was deleted from the portion of the hostTable
                  associated with this hostControlEntry.  If no
                  deletions have occurred, this value shall be zero."
              ::= { hostControlEntry 4 }

          hostControlOwner OBJECT-TYPE
              SYNTAX OwnerString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is
                  therefore using the resources assigned to it."
              ::= { hostControlEntry 5 }

          hostControlStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this hostControl entry.

                  If this object is not equal to valid(1), all
                  associated entries in the hostTable, hostTimeTable,
                  and the hostTopNTable shall be deleted by the
                  agent."
              ::= { hostControlEntry 6 }

          hostTable OBJECT-TYPE
              SYNTAX SEQUENCE OF HostEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of host entries."
              ::= { hosts 2 }

          hostEntry OBJECT-TYPE
              SYNTAX HostEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A collection of statistics for a particular host
                  that has been discovered on an interface of this
                  device.  For example, an instance of the
                  hostOutBroadcastPkts object might be named
                  hostOutBroadcastPkts.1.6.8.0.32.27.3.176"


              INDEX { hostIndex, hostAddress }
              ::= { hostTable 1 }

          HostEntry ::= SEQUENCE {
              hostAddress             OCTET STRING,
              hostCreationOrder       INTEGER (1..65535),
              hostIndex               INTEGER (1..65535),
              hostInPkts              Counter,
              hostOutPkts             Counter,
              hostInOctets            Counter,
              hostOutOctets           Counter,
              hostOutErrors           Counter,
              hostOutBroadcastPkts    Counter,
              hostOutMulticastPkts    Counter
          }

          hostAddress OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The physical address of this host."
              ::= { hostEntry 1 }

          hostCreationOrder OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that defines the relative ordering of
                  the creation time of hosts captured for a
                  particular hostControlEntry.  This index shall
                  be between 1 and N, where N is the value of
                  the associated hostControlTableSize.  The ordering
                  of the indexes is based on the order of each entry's
                  insertion into the table, in which entries added
                  earlier have a lower index value than entries added
                  later.

                  It is important to note that the order for a
                  particular entry may change as an (earlier) entry
                  is deleted from the table.  Because this order may
                  change, management stations should make use of the
                  hostControlLastDeleteTime variable in the
                  hostControlEntry associated with the relevant
                  portion of the hostTable.  By observing
                  this variable, the management station may detect
                  the circumstances where a previous association


                  between a value of hostCreationOrder
                  and a hostEntry may no longer hold."
              ::= { hostEntry 2 }

          hostIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The set of collected host statistics of which
                  this entry is a part.  The set of hosts
                  identified by a particular value of this
                  index is associated with the hostControlEntry
                  as identified by the same value of hostControlIndex."
              ::= { hostEntry 3 }

          hostInPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of good packets transmitted to this
                  address since it was added to the hostTable."
              ::= { hostEntry 4 }

          hostOutPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets, including bad packets,
                  transmitted by this address since it was added
                  to the hostTable."
              ::= { hostEntry 5 }

          hostInOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of octets transmitted to this address
                  since it was added to the hostTable (excluding
                  framing bits but including FCS octets), except for
                  those octets in bad packets."
              ::= { hostEntry 6 }

          hostOutOctets OBJECT-TYPE
              SYNTAX Counter


              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of octets transmitted by this address
                  since it was added to the hostTable (excluding
                  framing bits but including FCS octets), including
                  those octets in bad packets."
              ::= { hostEntry 7 }

          hostOutErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of bad packets transmitted by this address
                  since this host was added to the hostTable."
              ::= { hostEntry 8 }

          hostOutBroadcastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of good packets transmitted by this
                  address that were directed to the broadcast address
                  since this host was added to the hostTable."
              ::= { hostEntry 9 }

          hostOutMulticastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of good packets transmitted by this
                  address that were directed to a multicast address
                  since this host was added to the hostTable.
                  Note that this number does not include packets
                  directed to the broadcast address."
              ::= { hostEntry 10 }

          -- host Time Table

          hostTimeTable OBJECT-TYPE
              SYNTAX SEQUENCE OF HostTimeEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of time-ordered host table entries."


              ::= { hosts 3 }

          hostTimeEntry OBJECT-TYPE
              SYNTAX HostTimeEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A collection of statistics for a particular host
                  that has been discovered on an interface of this
                  device.  This collection includes the relative
                  ordering of the creation time of this object.  For
                  example, an instance of the hostTimeOutBroadcastPkts
                  object might be named
                  hostTimeOutBroadcastPkts.1.687"
              INDEX { hostTimeIndex, hostTimeCreationOrder }
              ::= { hostTimeTable 1 }

          HostTimeEntry ::= SEQUENCE {
              hostTimeAddress              OCTET STRING,
              hostTimeCreationOrder        INTEGER (1..65535),
              hostTimeIndex                INTEGER (1..65535),
              hostTimeInPkts               Counter,
              hostTimeOutPkts              Counter,
              hostTimeInOctets             Counter,
              hostTimeOutOctets            Counter,
              hostTimeOutErrors            Counter,
              hostTimeOutBroadcastPkts     Counter,
              hostTimeOutMulticastPkts     Counter
          }

          hostTimeAddress OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The physical address of this host."
              ::= { hostTimeEntry 1 }

          hostTimeCreationOrder OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry in
                  the hostTime table among those entries associated
                  with the same hostControlEntry.  This index shall
                  be between 1 and N, where N is the value of
                  the associated hostControlTableSize.  The ordering


                  of the indexes is based on the order of each entry's
                  insertion into the table, in which entries added
                  earlier have a lower index value than entries added
                  later. Thus the management station has the ability to
                  learn of new entries added to this table without
                  downloading the entire table.

                  It is important to note that the index for a
                  particular entry may change as an (earlier) entry
                  is deleted from the table.  Because this order may
                  change, management stations should make use of the
                  hostControlLastDeleteTime variable in the
                  hostControlEntry associated with the relevant
                  portion of the hostTimeTable.  By observing
                  this variable, the management station may detect
                  the circumstances where a download of the table
                  may have missed entries, and where a previous
                  association between a value of hostTimeCreationOrder
                  and a hostTimeEntry may no longer hold."
              ::= { hostTimeEntry 2 }

          hostTimeIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The set of collected host statistics of which
                  this entry is a part.  The set of hosts
                  identified by a particular value of this
                  index is associated with the hostControlEntry
                  as identified by the same value of hostControlIndex."
              ::= { hostTimeEntry 3 }

          hostTimeInPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of good packets transmitted to this
                  address since it was added to the hostTimeTable."
              ::= { hostTimeEntry 4 }

          hostTimeOutPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of god packets transmitted by this


                  address since it was added to the hostTimeTable."
              ::= { hostTimeEntry 5 }

          hostTimeInOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of octets transmitted to this address
                  since it was added to the hostTimeTable (excluding
                  framing bits but including FCS octets), except for
                  those octets in bad packets."
              ::= { hostTimeEntry 6 }

          hostTimeOutOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of octets transmitted by this address
                  since it was added to the hostTimeTable (excluding
                  framing bits but including FCS octets), including
                  those octets in bad packets."
              ::= { hostTimeEntry 7 }

          hostTimeOutErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of bad packets transmitted by this address
                  since this host was added to the hostTimeTable."
              ::= { hostTimeEntry 8 }

          hostTimeOutBroadcastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of good packets transmitted by this
                  address that were directed to the broadcast address
                  since this host was added to the hostTimeTable."
              ::= { hostTimeEntry 9 }

          hostTimeOutMulticastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory


              DESCRIPTION
                  "The number of good packets transmitted by this
                  address that were directed to a multicast address
                  since this host was added to the hostTimeTable.
                  Note that this number does not include packets
                  directed to the broadcast address."
              ::= { hostTimeEntry 10 }

          -- The Host Top "N" Group

          -- Implementation of the Host Top N group is optional.
          --
          -- The Host Top N group requires the implementation of the
          -- host group.
          --
          -- The Host Top N group is used to prepare reports that
          -- describe the hosts that top a list ordered by one of
          -- their statistics.
          -- The available statistics are samples of one of their
          -- base statistics, over an interval specified by the
          -- management station.  Thus, these statistics are rate
          -- based.  The management station also selects how many such
          -- hosts are reported.

          -- The hostTopNControlTable is used to initiate the
          -- generation of such a report.  The management station
          -- may select the parameters of such a report, such as
          -- which interface, which statistic, how many hosts,
          -- and the start and stop times of the sampling.  When
          -- the report is prepared, entries are created in the
          -- hostTopNTable associated with the relevant
          -- hostTopNControlEntry.  These entries are static for
          -- each report after it has been prepared.

          hostTopNControlTable OBJECT-TYPE
              SYNTAX SEQUENCE OF HostTopNControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of top N host control entries."
              ::= { hostTopN 1 }

          hostTopNControlEntry OBJECT-TYPE
              SYNTAX HostTopNControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION


                  "A set of parameters that control the creation of a
                  report of the top N hosts according to several
                  metrics.  For example, an instance of the
                  hostTopNDuration object might be named
                  hostTopNDuration.3"
              INDEX { hostTopNControlIndex }
              ::= { hostTopNControlTable 1 }

          HostTopNControlEntry ::= SEQUENCE {
              hostTopNControlIndex    INTEGER (1..65535),
              hostTopNHostIndex       INTEGER (1..65535),
              hostTopNRateBase        INTEGER,
              hostTopNTimeRemaining   INTEGER,
              hostTopNDuration        INTEGER,
              hostTopNRequestedSize   INTEGER,
              hostTopNGrantedSize     INTEGER,
              hostTopNStartTime       TimeTicks,
              hostTopNOwner           OwnerString,
              hostTopNStatus          EntryStatus
          }

          hostTopNControlIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry
                  in the hostTopNControl table.  Each such
                  entry defines one top N report prepared for
                  one interface."
              ::= { hostTopNControlEntry 1 }

          hostTopNHostIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The host table for which a top N report will be
                  prepared on behalf of this entry.  The host table
                  identified by a particular value of this index is
                  associated with the same host table as identified by
                  the same value of hostIndex.

                  This object may not be modified if the associated
                  hostTopNStatus object is equal to valid(1)."
              ::= { hostTopNControlEntry 2 }

          hostTopNRateBase OBJECT-TYPE


              SYNTAX INTEGER {
                      hostTopNInPkts(1),
                      hostTopNOutPkts(2),
                      hostTopNInOctets(3),
                      hostTopNOutOctets(4),
                      hostTopNOutErrors(5),
                      hostTopNOutBroadcastPkts(6),
                      hostTopNOutMulticastPkts(7)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The variable for each host that the hostTopNRate
                  variable is based upon.

                  This object may not be modified if the associated
                  hostTopNStatus object is equal to valid(1)."
              ::= { hostTopNControlEntry 3 }

          hostTopNTimeRemaining OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The number of seconds left in the report currently
                  being collected.  When this object is modified by
                  the management station, a new collection is started,
                  possibly aborting a currently running report.  The
                  new value is used as the requested duration of this
                  report, which is loaded into the associated
                  hostTopNDuration object.

                  When this object is set to a non-zero value, any
                  associated hostTopNEntries shall be made
                  inaccessible by the monitor.  While the value of
                  this object is non-zero, it decrements by one per
                  second until it reaches zero.  During this time, all
                  associated hostTopNEntries shall remain
                  inaccessible.  At the time that this object
                  decrements to zero, the report is made accessible in
                  the hostTopNTable.  Thus, the hostTopN table needs
                  to be created only at the end of the collection
                  interval."
              DEFVAL { 0 }
              ::= { hostTopNControlEntry 4 }

          hostTopNDuration OBJECT-TYPE
              SYNTAX INTEGER


              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of seconds that this report has collected
                  during the last sampling interval, or if this
                  report is currently being collected, the number
                  of seconds that this report is being collected
                  during this sampling interval.

                  When the associated hostTopNTimeRemaining object is
                  set, this object shall be set by the probe to the
                  same value and shall not be modified until the next
                  time the hostTopNTimeRemaining is set.

                  This value shall be zero if no reports have been
                  requested for this hostTopNControlEntry."
              DEFVAL { 0 }
              ::= { hostTopNControlEntry 5 }

          hostTopNRequestedSize OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The maximum number of hosts requested for the top N
                  table.

                  When this object is created or modified, the probe
                  should set hostTopNGrantedSize as closely to this
                  object as is possible for the particular probe
                  implementation and available resources."
              DEFVAL { 10 }
              ::= { hostTopNControlEntry 6 }

          hostTopNGrantedSize OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The maximum number of hosts in the top N table.

                  When the associated hostTopNRequestedSize object is
                  created or modified, the probe should set this
                  object as closely to the requested value as is
                  possible for the particular implementation and
                  available resources. The probe must not lower this
                  value except as a result of a set to the associated
                  hostTopNRequestedSize object.


                  Hosts with the highest value of hostTopNRate shall be
                  placed in this table in decreasing order of this rate
                  until there is no more room or until there are no more
                  hosts."
              ::= { hostTopNControlEntry 7 }

          hostTopNStartTime OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of sysUpTime when this top N report was
                  last started.  In other words, this is the time that
                  the associated hostTopNTimeRemaining object was
                  modified to start the requested report."
              ::= { hostTopNControlEntry 8 }

          hostTopNOwner OBJECT-TYPE
              SYNTAX OwnerString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is
                  therefore using the resources assigned to it."
              ::= { hostTopNControlEntry 9 }

          hostTopNStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this hostTopNControl entry.

                  If this object is not equal to valid(1), all
                  associated hostTopNEntries shall be deleted by the
                  agent."
              ::= { hostTopNControlEntry 10 }

          hostTopNTable OBJECT-TYPE
              SYNTAX SEQUENCE OF HostTopNEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of top N host entries."
              ::= { hostTopN 2 }

          hostTopNEntry OBJECT-TYPE
              SYNTAX HostTopNEntry


              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A set of statistics for a host that is part of a
                  top N report.  For example, an instance of the
                  hostTopNRate object might be named
                  hostTopNRate.3.10"
              INDEX { hostTopNReport, hostTopNIndex }
              ::= { hostTopNTable 1 }

          HostTopNEntry ::= SEQUENCE {
              hostTopNReport                INTEGER (1..65535),
              hostTopNIndex                 INTEGER (1..65535),
              hostTopNAddress               OCTET STRING,
              hostTopNRate                  INTEGER
          }

          hostTopNReport OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "This object identifies the top N report of which
                  this entry is a part.  The set of hosts
                  identified by a particular value of this
                  object is part of the same report as identified
                  by the same value of the hostTopNControlIndex object."
              ::= { hostTopNEntry 1 }

          hostTopNIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry in
                  the hostTopN table among those in the same report.
                  This index is between 1 and N, where N is the
                  number of entries in this table.  Increasing values
                  of hostTopNIndex shall be assigned to entries with
                  decreasing values of hostTopNRate until index N
                  is assigned to the entry with the lowest value of
                  hostTopNRate or there are no more hostTopNEntries."
              ::= { hostTopNEntry 2 }

          hostTopNAddress OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-only
              STATUS mandatory


              DESCRIPTION
                  "The physical address of this host."
              ::= { hostTopNEntry 3 }

          hostTopNRate OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The amount of change in the selected variable
                  during this sampling interval.  The selected
                  variable is this host's instance of the object
                  selected by hostTopNRateBase."
              ::= { hostTopNEntry 4 }

          -- The Matrix Group

          -- Implementation of the Matrix group is optional.
          --
          -- The Matrix group consists of the matrixControlTable,
          -- matrixSDTable and the matrixDSTable.  These tables
          -- store statistics for a particular conversation
          -- between two addresses.  As the device detects a new
          -- conversation, including those to a non-unicast
          -- address, it creates a new entry in both of the
          -- matrix tables.  It must only create new entries
          -- based on information received in good packets.  If
          -- the monitoring device finds itself short of
          -- resources, it may delete entries as needed.  It is
          -- suggested that the device delete the least recently
          -- used entries first.

          matrixControlTable OBJECT-TYPE
              SYNTAX SEQUENCE OF MatrixControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of information entries for the
                  traffic matrix on each interface."
              ::= { matrix 1 }

          matrixControlEntry OBJECT-TYPE
              SYNTAX MatrixControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "Information about a traffic matrix on a particular


                  interface.  For example, an instance of the
                  matrixControlLastDeleteTime object might be named
                  matrixControlLastDeleteTime.1"
              INDEX { matrixControlIndex }
              ::= { matrixControlTable 1 }

          MatrixControlEntry ::= SEQUENCE {
              matrixControlIndex           INTEGER (1..65535),
              matrixControlDataSource      OBJECT IDENTIFIER,
              matrixControlTableSize       INTEGER,
              matrixControlLastDeleteTime  TimeTicks,
              matrixControlOwner           OwnerString,
              matrixControlStatus          EntryStatus
          }

          matrixControlIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry in the
                  matrixControl table.  Each such entry defines
                  a function that discovers conversations on a
                  particular interface and places statistics about
                  them in the matrixSDTable and the matrixDSTable on
                  behalf of this matrixControlEntry."
              ::= { matrixControlEntry 1 }

          matrixControlDataSource OBJECT-TYPE
              SYNTAX OBJECT IDENTIFIER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "This object identifies the source of
                  the data from which this entry creates a traffic
                  matrix. This source can be any interface on this
                  device.  In order to identify a particular
                  interface, this object shall identify the instance
                  of the ifIndex object, defined in RFC 1213 and RFC
                  1573 [4,6], for the desired interface.  For example,
                  if an entry were to receive data from interface #1,
                  this object would be set to ifIndex.1.

                  The statistics in this group reflect all packets
                  on the local network segment attached to the
                  identified interface.

                  An agent may or may not be able to tell if


                  fundamental changes to the media of the interface
                  have occurred and necessitate an invalidation of
                  this entry.  For example, a hot-pluggable ethernet
                  card could be pulled out and replaced by a
                  token-ring card.  In such a case, if the agent has
                  such knowledge of the change, it is recommended that
                  it invalidate this entry.

                  This object may not be modified if the associated
                  matrixControlStatus object is equal to valid(1)."
              ::= { matrixControlEntry 2 }

          matrixControlTableSize OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of matrixSDEntries in the matrixSDTable
                  for this interface.  This must also be the value of
                  the number of entries in the matrixDSTable for this
                  interface."
              ::= { matrixControlEntry 3 }

          matrixControlLastDeleteTime OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of sysUpTime when the last entry
                  was deleted from the portion of the matrixSDTable
                  or matrixDSTable associated with this
                  matrixControlEntry. If no deletions have occurred,
                  this value shall be zero."
              ::= { matrixControlEntry 4 }

          matrixControlOwner OBJECT-TYPE
              SYNTAX OwnerString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is
                  therefore using the resources assigned to it."
              ::= { matrixControlEntry 5 }

          matrixControlStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory


              DESCRIPTION
                  "The status of this matrixControl entry.

                  If this object is not equal to valid(1), all
                  associated entries in the matrixSDTable and the
                  matrixDSTable shall be deleted by the agent."
              ::= { matrixControlEntry 6 }

          matrixSDTable OBJECT-TYPE
              SYNTAX SEQUENCE OF MatrixSDEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of traffic matrix entries indexed by
                  source and destination MAC address."
              ::= { matrix 2 }

          matrixSDEntry OBJECT-TYPE
              SYNTAX MatrixSDEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A collection of statistics for communications between
                  two addresses on a particular interface.  For example,
                  an instance of the matrixSDPkts object might be named
                  matrixSDPkts.1.6.8.0.32.27.3.176.6.8.0.32.10.8.113"
              INDEX { matrixSDIndex,
                      matrixSDSourceAddress, matrixSDDestAddress }
              ::= { matrixSDTable 1 }

          MatrixSDEntry ::= SEQUENCE {
              matrixSDSourceAddress       OCTET STRING,
              matrixSDDestAddress         OCTET STRING,
              matrixSDIndex               INTEGER (1..65535),
              matrixSDPkts                Counter,
              matrixSDOctets              Counter,
              matrixSDErrors              Counter
          }

          matrixSDSourceAddress OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The source physical address."
              ::= { matrixSDEntry 1 }

          matrixSDDestAddress OBJECT-TYPE


              SYNTAX OCTET STRING
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The destination physical address."
              ::= { matrixSDEntry 2 }

          matrixSDIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The set of collected matrix statistics of which
                  this entry is a part.  The set of matrix statistics
                  identified by a particular value of this index
                  is associated with the same matrixControlEntry
                  as identified by the same value of
                  matrixControlIndex."
              ::= { matrixSDEntry 3 }

          matrixSDPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets transmitted from the source
                  address to the destination address (this number
                  includes bad packets)."
              ::= { matrixSDEntry 4 }

          matrixSDOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of octets (excluding framing bits but
                  including FCS octets) contained in all packets
                  transmitted from the source address to the
                  destination address."
              ::= { matrixSDEntry 5 }

          matrixSDErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of bad packets transmitted from
                  the source address to the destination address."


              ::= { matrixSDEntry 6 }

          -- Traffic matrix tables from destination to source

          matrixDSTable OBJECT-TYPE
              SYNTAX SEQUENCE OF MatrixDSEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of traffic matrix entries indexed by
                  destination and source MAC address."
              ::= { matrix 3 }

          matrixDSEntry OBJECT-TYPE
              SYNTAX MatrixDSEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A collection of statistics for communications between
                  two addresses on a particular interface.  For example,
                  an instance of the matrixSDPkts object might be named
                  matrixSDPkts.1.6.8.0.32.10.8.113.6.8.0.32.27.3.176"
              INDEX { matrixDSIndex,
                      matrixDSDestAddress, matrixDSSourceAddress }
              ::= { matrixDSTable 1 }

          MatrixDSEntry ::= SEQUENCE {
              matrixDSSourceAddress       OCTET STRING,
              matrixDSDestAddress         OCTET STRING,
              matrixDSIndex               INTEGER (1..65535),
              matrixDSPkts                Counter,
              matrixDSOctets              Counter,
              matrixDSErrors              Counter
          }

          matrixDSSourceAddress OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The source physical address."
              ::= { matrixDSEntry 1 }

          matrixDSDestAddress OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-only
              STATUS mandatory


              DESCRIPTION
                  "The destination physical address."
              ::= { matrixDSEntry 2 }

          matrixDSIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The set of collected matrix statistics of which
                  this entry is a part.  The set of matrix statistics
                  identified by a particular value of this index
                  is associated with the same matrixControlEntry
                  as identified by the same value of
                  matrixControlIndex."
              ::= { matrixDSEntry 3 }

          matrixDSPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets transmitted from the source
                  address to the destination address (this number
                  includes bad packets)."
              ::= { matrixDSEntry 4 }

          matrixDSOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of octets (excluding framing bits
                  but including FCS octets) contained in all packets
                  transmitted from the source address to the
                  destination address."
              ::= { matrixDSEntry 5 }

          matrixDSErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of bad packets transmitted from
                  the source address to the destination address."
              ::= { matrixDSEntry 6 }


          -- The Filter Group

          -- Implementation of the Filter group is optional.
          --
          -- The Filter group allows packets to be captured with an
          -- arbitrary filter expression.  A logical data and
          -- event stream or "channel" is formed by the packets
          -- that match the filter expression.
          --
          -- This filter mechanism allows the creation of an arbitrary
          -- logical expression with which to filter packets.  Each
          -- filter associated with a channel is OR'ed with the others.
          -- Within a filter, any bits checked in the data and status
          -- are AND'ed with respect to other bits in the same filter.
          -- The NotMask also allows for checking for inequality.
          -- Finally, the channelAcceptType object allows for
          -- inversion of the whole equation.
          --
          -- If a management station wishes to receive a trap to alert
          -- it that new packets have been captured and are available
          -- for download, it is recommended that it set up an alarm
          -- entry that monitors the value of the relevant
          -- channelMatches instance.
          --
          -- The channel can be turned on or off, and can also
          -- generate events when packets pass through it.

          filterTable OBJECT-TYPE
              SYNTAX SEQUENCE OF FilterEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of packet filter entries."
              ::= { filter 1 }

          filterEntry OBJECT-TYPE
              SYNTAX FilterEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A set of parameters for a packet filter applied on a
                  particular interface.  As an example, an instance of
                  the filterPktData object might be named
                  filterPktData.12"
              INDEX { filterIndex }
              ::= { filterTable 1 }


          FilterEntry ::= SEQUENCE {
              filterIndex                 INTEGER (1..65535),
              filterChannelIndex          INTEGER (1..65535),
              filterPktDataOffset         INTEGER,
              filterPktData               OCTET STRING,
              filterPktDataMask           OCTET STRING,
              filterPktDataNotMask        OCTET STRING,
              filterPktStatus             INTEGER,
              filterPktStatusMask         INTEGER,
              filterPktStatusNotMask      INTEGER,
              filterOwner                 OwnerString,
              filterStatus                EntryStatus
          }

          filterIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry
                  in the filter table.  Each such entry defines
                  one filter that is to be applied to every packet
                  received on an interface."
              ::= { filterEntry 1 }

          filterChannelIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "This object identifies the channel of which this
                  filter is a part.  The filters identified by a
                  particular value of this object are associated with
                  the same channel as identified by the same value of
                  the channelIndex object."
              ::= { filterEntry 2 }

          filterPktDataOffset OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The offset from the beginning of each packet where
                  a match of packet data will be attempted.  This offset
                  is measured from the point in the physical layer
                  packet after the framing bits, if any.  For example,
                  in an Ethernet frame, this point is at the beginning
                  of the destination MAC address.


                  This object may not be modified if the associated
                  filterStatus object is equal to valid(1)."
              DEFVAL { 0 }
              ::= { filterEntry 3 }

          filterPktData OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The data that is to be matched with the input
                  packet.  For each packet received, this filter and
                  the accompanying filterPktDataMask and
                  filterPktDataNotMask will be adjusted for the
                  offset.  The only bits relevant to this match
                  algorithm are those that have the corresponding
                  filterPktDataMask bit equal to one.  The following
                  three rules are then applied to every packet:

                  (1) If the packet is too short and does not have data
                      corresponding to part of the filterPktData, the
                      packet will fail this data match.

                  (2) For each relevant bit from the packet with the
                      corresponding filterPktDataNotMask bit set to
                      zero, if the bit from the packet is not equal to
                      the corresponding bit from the filterPktData,
                      then the packet will fail this data match.

                  (3) If for every relevant bit from the packet with the
                      corresponding filterPktDataNotMask bit set to one,
                      the bit from the packet is equal to the
                      corresponding bit from the filterPktData, then
                      the packet will fail this data match.

                  Any packets that have not failed any of the three
                  matches above have passed this data match.  In
                  particular, a zero length filter will match any
                  packet.

                  This object may not be modified if the associated
                  filterStatus object is equal to valid(1)."
              ::= { filterEntry 4 }

          filterPktDataMask OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-write
              STATUS mandatory


              DESCRIPTION
                  "The mask that is applied to the match process.
                  After adjusting this mask for the offset, only those
                  bits in the received packet that correspond to bits
                  set in this mask are relevant for further processing
                  by the match algorithm.  The offset is applied to
                  filterPktDataMask in the same way it is applied to the
                  filter.  For the purposes of the matching algorithm,
                  if the associated filterPktData object is longer
                  than this mask, this mask is conceptually extended
                  with '1' bits until it reaches the length of the
                  filterPktData object.

                  This object may not be modified if the associated
                  filterStatus object is equal to valid(1)."
              ::= { filterEntry 5 }

          filterPktDataNotMask OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The inversion mask that is applied to the match
                  process.  After adjusting this mask for the offset,
                  those relevant bits in the received packet that
                  correspond to bits cleared in this mask must all be
                  equal to their corresponding bits in the
                  filterPktData object for the packet to be accepted.
                  In addition, at least one of those relevant bits in
                  the received packet that correspond to bits set in
                  this mask must be different to its corresponding bit
                  in the filterPktData object.

                  For the purposes of the matching algorithm, if the
                  associated filterPktData object is longer than this
                  mask, this mask is conceptually extended with '0'
                  bits until it reaches the length of the
                  filterPktData object.

                  This object may not be modified if the associated
                  filterStatus object is equal to valid(1)."
              ::= { filterEntry 6 }

          filterPktStatus OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION


                  "The status that is to be matched with the input
                  packet.  The only bits relevant to this match
                  algorithm are those that have the corresponding
                  filterPktStatusMask bit equal to one.  The following
                  two rules are then applied to every packet:

                  (1) For each relevant bit from the packet status
                      with the corresponding filterPktStatusNotMask bit
                      set to zero, if the bit from the packet status is
                      not equal to the corresponding bit from the
                      filterPktStatus, then the packet will fail this
                      status match.

                  (2) If for every relevant bit from the packet status
                      with the corresponding filterPktStatusNotMask bit
                      set to one, the bit from the packet status is
                      equal to the corresponding bit from the
                      filterPktStatus, then the packet will fail this
                      status match.

                  Any packets that have not failed either of the two
                  matches above have passed this status match.  In
                  particular, a zero length status filter will match any
                  packet's status.

                  The value of the packet status is a sum.  This sum
                  initially takes the value zero.  Then, for each
                  error, E, that has been discovered in this packet,
                  2 raised to a value representing E is added to the
                  sum. The errors and the bits that represent them are
                  dependent on the media type of the interface that
                  this channel is receiving packets from.

                  The errors defined for a packet captured off of an
                  Ethernet interface are as follows:

                      bit #    Error
                          0    Packet is longer than 1518 octets
                          1    Packet is shorter than 64 octets
                          2    Packet experienced a CRC or Alignment
                               error

                  For example, an Ethernet fragment would have a
                  value of 6 (2^1 + 2^2).

                  As this MIB is expanded to new media types, this
                  object will have other media-specific errors
                  defined.


                  For the purposes of this status matching algorithm,
                  if the packet status is longer than this
                  filterPktStatus object, this object is conceptually
                  extended with '0' bits until it reaches the size of
                  the packet status.

                  This object may not be modified if the associated
                  filterStatus object is equal to valid(1)."
              ::= { filterEntry 7 }

          filterPktStatusMask OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The mask that is applied to the status match
                  process.  Only those bits in the received packet
                  that correspond to bits set in this mask are
                  relevant for further processing by the status match
                  algorithm.  For the purposes of the matching
                  algorithm, if the associated filterPktStatus object
                  is longer than this mask, this mask is conceptually
                  extended with '1' bits until it reaches the size of
                  the filterPktStatus.  In addition, if a packet
                  status is longer than this mask, this mask is
                  conceptually extended with '0' bits until it reaches
                  the size of the packet status.

                  This object may not be modified if the associated
                  filterStatus object is equal to valid(1)."
              ::= { filterEntry 8 }

          filterPktStatusNotMask OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The inversion mask that is applied to the status
                  match process.  Those relevant bits in the received
                  packet status that correspond to bits cleared in
                  this mask must all be equal to their corresponding
                  bits in the filterPktStatus object for the packet to
                  be accepted.  In addition, at least one of those
                  relevant bits in the received packet status that
                  correspond to bits set in this mask must be
                  different to its corresponding bit in the
                  filterPktStatus object for the packet to be
                  accepted.


                  For the purposes of the matching algorithm, if the
                  associated filterPktStatus object or a packet status
                  is longer than this mask, this mask is conceptually
                  extended with '0' bits until it reaches the longer
                  of the lengths of the filterPktStatus object and the
                  packet status.

                  This object may not be modified if the associated
                  filterStatus object is equal to valid(1)."
              ::= { filterEntry 9 }

          filterOwner OBJECT-TYPE
              SYNTAX OwnerString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is
                  therefore using the resources assigned to it."
              ::= { filterEntry 10 }

          filterStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this filter entry."
              ::= { filterEntry 11 }

          channelTable OBJECT-TYPE
              SYNTAX SEQUENCE OF ChannelEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of packet channel entries."
              ::= { filter 2 }

          channelEntry OBJECT-TYPE
              SYNTAX ChannelEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A set of parameters for a packet channel applied on a
                  particular interface.  As an example, an instance of
                  the channelMatches object might be named
                  channelMatches.3"
              INDEX { channelIndex }
              ::= { channelTable 1 }


          ChannelEntry ::= SEQUENCE {
              channelIndex               INTEGER (1..65535),
              channelIfIndex             INTEGER (1..65535),
              channelAcceptType          INTEGER,
              channelDataControl         INTEGER,
              channelTurnOnEventIndex    INTEGER (0..65535),
              channelTurnOffEventIndex   INTEGER (0..65535),
              channelEventIndex          INTEGER (0..65535),
              channelEventStatus         INTEGER,
              channelMatches             Counter,
              channelDescription         DisplayString (SIZE (0..127)),
              channelOwner               OwnerString,
              channelStatus              EntryStatus
          }

          channelIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry in the
                  channel table.  Each such entry defines one channel,
                  a logical data and event stream.

                  It is suggested that before creating a channel, an
                  application should scan all instances of the
                  filterChannelIndex object to make sure that there
                  are no pre-existing filters that would be
                  inadvertently be linked to the channel."
              ::= { channelEntry 1 }

          channelIfIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The value of this object uniquely identifies the
                  interface on this remote network monitoring device
                  to which the associated filters are applied to allow
                  data into this channel.  The interface identified by
                  a particular value of this object is the same
                  interface as identified by the same value of the
                  ifIndex object, defined in RFC 1213 and RFC 1573
                  [4,6].

                  The filters in this group are applied to all packets
                  on the local network segment attached to the
                  identified interface.


                  An agent may or may not be able to tell if
                  fundamental changes to the media of the interface
                  have occurred and necessitate an invalidation of
                  this entry.  For example, a hot-pluggable ethernet
                  card could be pulled out and replaced by a
                  token-ring card.  In such a case, if the agent has
                  such knowledge of the change, it is recommended that
                  it invalidate this entry.

                  This object may not be modified if the associated
                  channelStatus object is equal to valid(1)."
              ::= { channelEntry 2 }

          channelAcceptType OBJECT-TYPE
              SYNTAX INTEGER {
                  acceptMatched(1),
                  acceptFailed(2)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "This object controls the action of the filters
                  associated with this channel.  If this object is equal
                  to acceptMatched(1), packets will be accepted to this
                  channel if they are accepted by both the packet data
                  and packet status matches of an associated filter.  If
                  this object is equal to acceptFailed(2), packets will
                  be accepted to this channel only if they fail either
                  the packet data match or the packet status match of
                  each of the associated filters.

                  In particular, a channel with no associated filters
                  will match no packets if set to acceptMatched(1)
                  case and will match all packets in the
                  acceptFailed(2) case.

                  This object may not be modified if the associated
                  channelStatus object is equal to valid(1)."
              ::= { channelEntry 3 }

          channelDataControl OBJECT-TYPE
              SYNTAX INTEGER {
                  on(1),
                  off(2)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION


                  "This object controls the flow of data through this
                  channel.  If this object is on(1), data, status and
                  events flow through this channel.  If this object is
                  off(2), data, status and events will not flow
                  through this channel."
              DEFVAL { off }
              ::= { channelEntry 4 }

          channelTurnOnEventIndex OBJECT-TYPE
              SYNTAX INTEGER (0..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The value of this object identifies the event
                  that is configured to turn the associated
                  channelDataControl from off to on when the event is
                  generated.  The event identified by a particular value
                  of this object is the same event as identified by the
                  same value of the eventIndex object.  If there is no
                  corresponding entry in the eventTable, then no
                  association exists.  In fact, if no event is intended
                  for this channel, channelTurnOnEventIndex must be
                  set to zero, a non-existent event index.

                  This object may not be modified if the associated
                  channelStatus object is equal to valid(1)."
              ::= { channelEntry 5 }

          channelTurnOffEventIndex OBJECT-TYPE
              SYNTAX INTEGER (0..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The value of this object identifies the event
                  that is configured to turn the associated
                  channelDataControl from on to off when the event is
                  generated.  The event identified by a particular value
                  of this object is the same event as identified by the
                  same value of the eventIndex object.  If there is no
                  corresponding entry in the eventTable, then no
                  association exists.  In fact, if no event is intended
                  for this channel, channelTurnOffEventIndex must be
                  set to zero, a non-existent event index.

                  This object may not be modified if the associated
                  channelStatus object is equal to valid(1)."
              ::= { channelEntry 6 }


          channelEventIndex OBJECT-TYPE
              SYNTAX INTEGER (0..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The value of this object identifies the event
                  that is configured to be generated when the
                  associated channelDataControl is on and a packet
                  is matched.  The event identified by a particular
                  value of this object is the same event as identified
                  by the same value of the eventIndex object.  If
                  there is no corresponding entry in the eventTable,
                  then no association exists.  In fact, if no event is
                  intended for this channel, channelEventIndex must be
                  set to zero, a non-existent event index.

                  This object may not be modified if the associated
                  channelStatus object is equal to valid(1)."
              ::= { channelEntry 7 }

          channelEventStatus OBJECT-TYPE
              SYNTAX INTEGER {
                  eventReady(1),
                  eventFired(2),
                  eventAlwaysReady(3)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The event status of this channel.

                  If this channel is configured to generate events
                  when packets are matched, a means of controlling
                  the flow of those events is often needed.  When
                  this object is equal to eventReady(1), a single
                  event may be generated, after which this object
                  will be set by the probe to eventFired(2).  While
                  in the eventFired(2) state, no events will be
                  generated until the object is modified to
                  eventReady(1) (or eventAlwaysReady(3)).  The
                  management station can thus easily respond to a
                  notification of an event by re-enabling this object.

                  If the management station wishes to disable this
                  flow control and allow events to be generated
                  at will, this object may be set to
                  eventAlwaysReady(3).  Disabling the flow control
                  is discouraged as it can result in high network


                  traffic or other performance problems."
              DEFVAL { eventReady }
              ::= { channelEntry 8 }

          channelMatches OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of times this channel has matched a
                  packet. Note that this object is updated even when
                  channelDataControl is set to off."
              ::= { channelEntry 9 }

          channelDescription OBJECT-TYPE
              SYNTAX DisplayString (SIZE (0..127))
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "A comment describing this channel."
              ::= { channelEntry 10 }

          channelOwner OBJECT-TYPE
              SYNTAX OwnerString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is
                  therefore using the resources assigned to it."
              ::= { channelEntry 11 }

          channelStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this channel entry."
              ::= { channelEntry 12 }

          -- The Packet Capture Group

          -- Implementation of the Packet Capture group is optional.
          --
          -- The Packet Capture Group requires implementation of the
          -- Filter Group.
          --
          -- The Packet Capture group allows packets to be captured


          -- upon a filter match.  The bufferControlTable controls
          -- the captured packets output from a channel that is
          -- associated with it.  The captured packets are placed
          -- in entries in the captureBufferTable.  These entries are
          -- associated with the bufferControlEntry on whose behalf they
          -- were stored.

          bufferControlTable OBJECT-TYPE
              SYNTAX SEQUENCE OF BufferControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of buffers control entries."
              ::= { capture 1 }

          bufferControlEntry OBJECT-TYPE
              SYNTAX BufferControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A set of parameters that control the collection of
                  a stream of packets that have matched filters.  As
                  an example, an instance of the
                  bufferControlCaptureSliceSize object might be named
                  bufferControlCaptureSliceSize.3"
              INDEX { bufferControlIndex }
              ::= { bufferControlTable 1 }

          BufferControlEntry ::= SEQUENCE {
              bufferControlIndex                INTEGER (1..65535),
              bufferControlChannelIndex         INTEGER (1..65535),
              bufferControlFullStatus           INTEGER,
              bufferControlFullAction           INTEGER,
              bufferControlCaptureSliceSize     INTEGER,
              bufferControlDownloadSliceSize    INTEGER,
              bufferControlDownloadOffset       INTEGER,
              bufferControlMaxOctetsRequested   INTEGER,
              bufferControlMaxOctetsGranted     INTEGER,
              bufferControlCapturedPackets      INTEGER,
              bufferControlTurnOnTime           TimeTicks,
              bufferControlOwner                OwnerString,
              bufferControlStatus               EntryStatus
          }

          bufferControlIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory


              DESCRIPTION
                  "An index that uniquely identifies an entry
                  in the bufferControl table.  The value of this
                  index shall never be zero.  Each such
                  entry defines one set of packets that is
                  captured and controlled by one or more filters."
              ::= { bufferControlEntry 1 }

          bufferControlChannelIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "An index that identifies the channel that is the
                  source of packets for this bufferControl table.
                  The channel identified by a particular value of this
                  index is the same as identified by the same value of
                  the channelIndex object.

                  This object may not be modified if the associated
                  bufferControlStatus object is equal to valid(1)."
              ::= { bufferControlEntry 2 }

          bufferControlFullStatus OBJECT-TYPE
              SYNTAX INTEGER {
                      spaceAvailable(1),
                      full(2)
              }
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "This object shows whether the buffer has room to
                  accept new packets or if it is full.

                  If the status is spaceAvailable(1), the buffer is
                  accepting new packets normally.  If the status is
                  full(2) and the associated bufferControlFullAction
                  object is wrapWhenFull, the buffer is accepting new
                  packets by deleting enough of the oldest packets
                  to make room for new ones as they arrive.  Otherwise,
                  if the status is full(2) and the
                  bufferControlFullAction object is lockWhenFull,
                  then the buffer has stopped collecting packets.

                  When this object is set to full(2) the probe must
                  not later set it to spaceAvailable(1) except in the
                  case of a significant gain in resources such as
                  an increase of bufferControlOctetsGranted.  In


                  particular, the wrap-mode action of deleting old
                  packets to make room for newly arrived packets
                  must not affect the value of this object."
              ::= { bufferControlEntry 3 }

          bufferControlFullAction OBJECT-TYPE
              SYNTAX INTEGER {
                      lockWhenFull(1),
                      wrapWhenFull(2)    -- FIFO
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "Controls the action of the buffer when it
                  reaches the full status.  When in the lockWhenFull(1)
                  state and a packet is added to the buffer that
                  fills the buffer, the bufferControlFullStatus will
                  be set to full(2) and this buffer will stop capturing
                  packets."
              ::= { bufferControlEntry 4 }

          bufferControlCaptureSliceSize OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The maximum number of octets of each packet
                  that will be saved in this capture buffer.
                  For example, if a 1500 octet packet is received by
                  the probe and this object is set to 500, then only
                  500 octets of the packet will be stored in the
                  associated capture buffer.  If this variable is set
                  to 0, the capture buffer will save as many octets
                  as is possible.

                  This object may not be modified if the associated
                  bufferControlStatus object is equal to valid(1)."
              DEFVAL { 100 }
              ::= { bufferControlEntry 5 }

          bufferControlDownloadSliceSize OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The maximum number of octets of each packet
                  in this capture buffer that will be returned in
                  an SNMP retrieval of that packet.  For example,


                  if 500 octets of a packet have been stored in the
                  associated capture buffer, the associated
                  bufferControlDownloadOffset is 0, and this
                  object is set to 100, then the captureBufferPacket
                  object that contains the packet will contain only
                  the first 100 octets of the packet.

                  A prudent manager will take into account possible
                  interoperability or fragmentation problems that may
                  occur if the download slice size is set too large.
                  In particular, conformant SNMP implementations are not
                  required to accept messages whose length exceeds 484
                  octets, although they are encouraged to support larger
                  datagrams whenever feasible."
              DEFVAL { 100 }
              ::= { bufferControlEntry 6 }

          bufferControlDownloadOffset OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The offset of the first octet of each packet
                  in this capture buffer that will be returned in
                  an SNMP retrieval of that packet.  For example,
                  if 500 octets of a packet have been stored in the
                  associated capture buffer and this object is set to
                  100, then the captureBufferPacket object that
                  contains the packet will contain bytes starting
                  100 octets into the packet."
              DEFVAL { 0 }
              ::= { bufferControlEntry 7 }

          bufferControlMaxOctetsRequested OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The requested maximum number of octets to be
                  saved in this captureBuffer, including any
                  implementation-specific overhead. If this variable
                  is set to -1, the capture buffer will save as many
                  octets as is possible.

                  When this object is created or modified, the probe
                  should set bufferControlMaxOctetsGranted as closely
                  to this object as is possible for the particular probe
                  implementation and available resources.  However, if


                  the object has the special value of -1, the probe
                  must set bufferControlMaxOctetsGranted to -1."
              DEFVAL { -1 }
              ::= { bufferControlEntry 8 }

          bufferControlMaxOctetsGranted OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The maximum number of octets that can be
                  saved in this captureBuffer, including overhead.
                  If this variable is -1, the capture buffer will save
                  as many octets as possible.

                  When the bufferControlMaxOctetsRequested object is
                  created or modified, the probe should set this object
                  as closely to the requested value as is possible for
                  the particular probe implementation and available
                  resources.
                  However, if the request object has the special value
                  of -1, the probe must set this object to -1.
                  The probe must not lower this value except as a result
                  of a modification to the associated
                  bufferControlMaxOctetsRequested object.

                  When this maximum number of octets is reached
                  and a new packet is to be added to this
                  capture buffer and the corresponding
                  bufferControlFullAction is set to wrapWhenFull(2),
                  enough of the oldest packets associated with this
                  capture buffer shall be deleted by the agent so
                  that the new packet can be added.  If the
                  corresponding bufferControlFullAction is set to
                  lockWhenFull(1), the new packet shall be discarded.
                  In either case, the probe must set
                  bufferControlFullStatus to full(2).

                  When the value of this object changes to a value less
                  than the current value, entries are deleted from
                  the captureBufferTable associated with this
                  bufferControlEntry.  Enough of the
                  oldest of these captureBufferEntries shall be
                  deleted by the agent so that the number of octets
                  used remains less than or equal to the new value of
                  this object.

                  When the value of this object changes to a value


                  greater than the current value, the number of
                  associated captureBufferEntries may be allowed to
                  grow."
              ::= { bufferControlEntry 9 }

          bufferControlCapturedPackets OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets currently in this
                  captureBuffer."
              ::= { bufferControlEntry 10 }

          bufferControlTurnOnTime OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of sysUpTime when this capture buffer was
                  first turned on."
              ::= { bufferControlEntry 11 }

          bufferControlOwner OBJECT-TYPE
              SYNTAX OwnerString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is
                  therefore using the resources assigned to it."
              ::= { bufferControlEntry 12 }

          bufferControlStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this buffer Control Entry."
              ::= { bufferControlEntry 13 }

          captureBufferTable OBJECT-TYPE
              SYNTAX SEQUENCE OF CaptureBufferEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of packets captured off of a channel."
              ::= { capture 2 }


          captureBufferEntry OBJECT-TYPE
              SYNTAX CaptureBufferEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A packet captured off of an attached network.  As an
                  example, an instance of the captureBufferPacketData
                  object might be named captureBufferPacketData.3.1783"
              INDEX { captureBufferControlIndex, captureBufferIndex }
              ::= { captureBufferTable 1 }

          CaptureBufferEntry ::= SEQUENCE {
              captureBufferControlIndex   INTEGER (1..65535),
              captureBufferIndex          INTEGER (1..2147483647),
              captureBufferPacketID       INTEGER,
              captureBufferPacketData     OCTET STRING,
              captureBufferPacketLength   INTEGER,
              captureBufferPacketTime     INTEGER,
              captureBufferPacketStatus   INTEGER
          }

          captureBufferControlIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The index of the bufferControlEntry with which
                  this packet is associated."
              ::= { captureBufferEntry 1 }

          captureBufferIndex OBJECT-TYPE
              SYNTAX INTEGER (1..2147483647)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry
                  in the captureBuffer table associated with a
                  particular bufferControlEntry.  This index will
                  start at 1 and increase by one for each new packet
                  added with the same captureBufferControlIndex.

                  Should this value reach 2147483647, the next packet
                  added with the same captureBufferControlIndex shall
                  cause this value to wrap around to 1."
              ::= { captureBufferEntry 2 }

          captureBufferPacketID OBJECT-TYPE
              SYNTAX INTEGER


              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that describes the order of packets
                  that are received on a particular interface.
                  The packetID of a packet captured on an
                  interface is defined to be greater than the
                  packetID's of all packets captured previously on
                  the same interface.  As the captureBufferPacketID
                  object has a maximum positive value of 2^31 - 1,
                  any captureBufferPacketID object shall have the
                  value of the associated packet's packetID mod 2^31."
              ::= { captureBufferEntry 3 }

          captureBufferPacketData OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The data inside the packet, starting at the
                  beginning of the packet plus any offset specified in
                  the associated bufferControlDownloadOffset,
                  including any link level headers.  The length of the
                  data in this object is the minimum of the length of
                  the captured packet minus the offset, the length of
                  the associated bufferControlCaptureSliceSize minus
                  the offset, and the associated
                  bufferControlDownloadSliceSize.  If this minimum is
                  less than zero, this object shall have a length of
                  zero."
              ::= { captureBufferEntry 4 }

          captureBufferPacketLength OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The actual length (off the wire) of the packet stored
                  in this entry, including FCS octets."
              ::= { captureBufferEntry 5 }

          captureBufferPacketTime OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of milliseconds that had passed since
                  this capture buffer was first turned on when this


                  packet was captured."
              ::= { captureBufferEntry 6 }

          captureBufferPacketStatus OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "A value which indicates the error status of this
                  packet.

                  The value of this object is defined in the same way as
                  filterPktStatus.  The value is a sum.  This sum
                  initially takes the value zero.  Then, for each
                  error, E, that has been discovered in this packet,
                  2 raised to a value representing E is added to the
                  sum.

                  The errors defined for a packet captured off of an
                  Ethernet interface are as follows:

                      bit #    Error
                          0    Packet is longer than 1518 octets
                          1    Packet is shorter than 64 octets
                          2    Packet experienced a CRC or Alignment
                               error
                          3    First packet in this capture buffer after
                               it was detected that some packets were
                               not processed correctly.
                          4    Packet's order in buffer is only
                               approximate (May only be set for packets
                               sent from the probe)

                  For example, an Ethernet fragment would have a
                  value of 6 (2^1 + 2^2).

                  As this MIB is expanded to new media types, this
                  object will have other media-specific errors defined."
              ::= { captureBufferEntry 7 }

          -- The Event Group

          -- Implementation of the Event group is optional.
          --
          -- The Event group controls the generation and notification
          -- of events from this device.  Each entry in the eventTable
          -- describes the parameters of the event that can be


          -- triggered. Each event entry is fired by an associated
          -- condition located elsewhere in the MIB.  An event entry
          -- may also be associated- with a function elsewhere in the
          -- MIB that will be executed when the event is generated.  For
          -- example, a channel may be turned on or off by the firing
          -- of an event.
          --
          -- Each eventEntry may optionally specify that a log entry
          -- be created on its behalf whenever the event occurs.
          -- Each entry may also specify that notification should
          -- occur by way of SNMP trap messages.  In this case, the
          -- community for the trap message is given in the associated
          -- eventCommunity object.  The enterprise and specific trap
          -- fields of the trap are determined by the condition that
          -- triggered the event.  Two traps are defined: risingAlarm
          -- and fallingAlarm.  If the eventTable is triggered by a
          -- condition specified elsewhere, the enterprise and
          -- specific trap fields must be specified for traps
          -- generated for that condition.

          eventTable OBJECT-TYPE
              SYNTAX SEQUENCE OF EventEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of events to be generated."
              ::= { event 1 }

          eventEntry OBJECT-TYPE
              SYNTAX EventEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A set of parameters that describe an event to be
                  generated when certain conditions are met.  As an
                  example, an instance of the eventLastTimeSent object
                  might be named eventLastTimeSent.6"
              INDEX { eventIndex }
              ::= { eventTable 1 }

          EventEntry ::= SEQUENCE {
              eventIndex          INTEGER (1..65535),
              eventDescription    DisplayString (SIZE (0..127)),
              eventType           INTEGER,
              eventCommunity      OCTET STRING (SIZE (0..127)),
              eventLastTimeSent   TimeTicks,
              eventOwner          OwnerString,
              eventStatus         EntryStatus


          }

          eventIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry in the
                  event table.  Each such entry defines one event that
                  is to be generated when the appropriate conditions
                  occur."
              ::= { eventEntry 1 }

          eventDescription OBJECT-TYPE
              SYNTAX DisplayString (SIZE (0..127))
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "A comment describing this event entry."
              ::= { eventEntry 2 }

          eventType OBJECT-TYPE
              SYNTAX INTEGER {
                      none(1),
                      log(2),
                      snmp-trap(3),    -- send an SNMP trap
                      log-and-trap(4)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The type of notification that the probe will make
                  about this event.  In the case of log, an entry is
                  made in the log table for each event.  In the case of
                  snmp-trap, an SNMP trap is sent to one or more
                  management stations."
              ::= { eventEntry 3 }

          eventCommunity OBJECT-TYPE
              SYNTAX OCTET STRING (SIZE (0..127))
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "If an SNMP trap is to be sent, it will be sent to
                  the SNMP community specified by this octet string.
                  In the future this table will be extended to include
                  the party security mechanism.  This object shall be
                  set to a string of length zero if it is intended that


                  that mechanism be used to specify the destination of
                  the trap."
              ::= { eventEntry 4 }

          eventLastTimeSent OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of sysUpTime at the time this event
                  entry last generated an event.  If this entry has
                  not generated any events, this value will be
                  zero."
              ::= { eventEntry 5 }

          eventOwner OBJECT-TYPE
              SYNTAX OwnerString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is
                  therefore using the resources assigned to it.

                  If this object contains a string starting with
                  'monitor' and has associated entries in the log
                  table, all connected management stations should
                  retrieve those log entries, as they may have
                  significance to all management stations connected to
                  this device"
              ::= { eventEntry 6 }

          eventStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this event entry.

                  If this object is not equal to valid(1), all
                  associated log entries shall be deleted by the
                  agent."
              ::= { eventEntry 7 }

          --
          logTable OBJECT-TYPE
              SYNTAX SEQUENCE OF LogEntry
              ACCESS not-accessible
              STATUS mandatory


              DESCRIPTION
                  "A list of events that have been logged."
              ::= { event 2 }

          logEntry OBJECT-TYPE
              SYNTAX LogEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A set of data describing an event that has been
                  logged.  For example, an instance of the
                  logDescription object might be named
                  logDescription.6.47"
              INDEX { logEventIndex, logIndex }
              ::= { logTable 1 }

          LogEntry ::= SEQUENCE {
              logEventIndex           INTEGER (1..65535),
              logIndex                INTEGER (1..2147483647),
              logTime                 TimeTicks,
              logDescription          DisplayString (SIZE (0..255))
          }

          logEventIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The event entry that generated this log
                  entry.  The log identified by a particular
                  value of this index is associated with the same
                  eventEntry as identified by the same value
                  of eventIndex."
              ::= { logEntry 1 }

          logIndex OBJECT-TYPE
              SYNTAX INTEGER (1..2147483647)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry
                  in the log table amongst those generated by the
                  same eventEntries.  These indexes are
                  assigned beginning with 1 and increase by one
                  with each new log entry.  The association
                  between values of logIndex and logEntries
                  is fixed for the lifetime of each logEntry.
                  The agent may choose to delete the oldest


                  instances of logEntry as required because of
                  lack of memory.  It is an implementation-specific
                  matter as to when this deletion may occur."
              ::= { logEntry 2 }

          logTime OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of sysUpTime when this log entry was
                  created."
              ::= { logEntry 3 }

          logDescription OBJECT-TYPE
              SYNTAX DisplayString (SIZE (0..255))
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An implementation dependent description of the
                  event that activated this log entry."
              ::= { logEntry 4 }

          --  These definitions use the TRAP-TYPE macro as
          --  defined in RFC 1215 [10]

          --  Remote Network Monitoring Traps

          risingAlarm TRAP-TYPE
              ENTERPRISE rmon
              VARIABLES { alarmIndex, alarmVariable, alarmSampleType,
                          alarmValue, alarmRisingThreshold }
              DESCRIPTION
                  "The SNMP trap that is generated when an alarm
                  entry crosses its rising threshold and generates
                  an event that is configured for sending SNMP
                  traps."
              ::= 1

          fallingAlarm TRAP-TYPE
              ENTERPRISE rmon
              VARIABLES { alarmIndex, alarmVariable, alarmSampleType,
                          alarmValue, alarmFallingThreshold }
              DESCRIPTION
                  "The SNMP trap that is generated when an alarm
                  entry crosses its falling threshold and generates
                  an event that is configured for sending SNMP
                  traps."


              ::= 2

END

-- ######################################################

--
-- File: rfc/rfc2011.mib
--

IP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Integer32,
    Counter32, IpAddress, mib-2        FROM SNMPv2-SMI
    PhysAddress                        FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP    FROM SNMPv2-CONF;

ipMIB MODULE-IDENTITY
    LAST-UPDATED "9411010000Z"
    ORGANIZATION "IETF SNMPv2 Working Group"
    CONTACT-INFO
            "        Keith McCloghrie

             Postal: Cisco Systems, Inc.
                     170 West Tasman Drive
                     San Jose, CA  95134-1706
                     US

             Phone:  +1 408 526 5260
             Email:  kzm@cisco.com"


    DESCRIPTION
            "The MIB module for managing IP and ICMP implementations,
            but excluding their management of IP routes."
    REVISION      "9103310000Z"
    DESCRIPTION
            "The initial revision of this MIB module was part of MIB-
            II."
    ::= { mib-2 48}

-- the IP group

ip       OBJECT IDENTIFIER ::= { mib-2 4 }

ipForwarding OBJECT-TYPE
    SYNTAX      INTEGER {
                    forwarding(1),    -- acting as a router
                    notForwarding(2)  -- NOT acting as a router
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The indication of whether this entity is acting as an IP
            router in respect to the forwarding of datagrams received
            by, but not addressed to, this entity.  IP routers forward
            datagrams.  IP hosts do not (except those source-routed via
            the host)."
    ::= { ip 1 }

ipDefaultTTL OBJECT-TYPE
    SYNTAX      INTEGER (1..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The default value inserted into the Time-To-Live field of
            the IP header of datagrams originated at this entity,
            whenever a TTL value is not supplied by the transport layer
            protocol."
    ::= { ip 2 }

ipInReceives OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of input datagrams received from
            interfaces, including those received in error."
    ::= { ip 3 }


ipInHdrErrors OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of input datagrams discarded due to errors in
            their IP headers, including bad checksums, version number
            mismatch, other format errors, time-to-live exceeded, errors
            discovered in processing their IP options, etc."
    ::= { ip 4 }

ipInAddrErrors OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of input datagrams discarded because the IP
            address in their IP header's destination field was not a
            valid address to be received at this entity.  This count
            includes invalid addresses (e.g., 0.0.0.0) and addresses of
            unsupported Classes (e.g., Class E).  For entities which are
            not IP routers and therefore do not forward datagrams, this
            counter includes datagrams discarded because the destination
            address was not a local address."
    ::= { ip 5 }

ipForwDatagrams OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of input datagrams for which this entity was not
            their final IP destination, as a result of which an attempt
            was made to find a route to forward them to that final
            destination.  In entities which do not act as IP routers,
            this counter will include only those packets which were
            Source-Routed via this entity, and the Source-Route option
            processing was successful."
    ::= { ip 6 }

ipInUnknownProtos OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of locally-addressed datagrams received
            successfully but discarded because of an unknown or
            unsupported protocol."


    ::= { ip 7 }

ipInDiscards OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of input IP datagrams for which no problems were
            encountered to prevent their continued processing, but which
            were discarded (e.g., for lack of buffer space).  Note that
            this counter does not include any datagrams discarded while
            awaiting re-assembly."
    ::= { ip 8 }

ipInDelivers OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of input datagrams successfully delivered
            to IP user-protocols (including ICMP)."
    ::= { ip 9 }

ipOutRequests OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of IP datagrams which local IP user-
            protocols (including ICMP) supplied to IP in requests for
            transmission.  Note that this counter does not include any
            datagrams counted in ipForwDatagrams."
    ::= { ip 10 }

ipOutDiscards OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of output IP datagrams for which no problem was
            encountered to prevent their transmission to their
            destination, but which were discarded (e.g., for lack of
            buffer space).  Note that this counter would include
            datagrams counted in ipForwDatagrams if any such packets met
            this (discretionary) discard criterion."
    ::= { ip 11 }

ipOutNoRoutes OBJECT-TYPE


    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of IP datagrams discarded because no route could
            be found to transmit them to their destination.  Note that
            this counter includes any packets counted in ipForwDatagrams
            which meet this `no-route' criterion.  Note that this
            includes any datagrams which a host cannot route because all
            of its default routers are down."
    ::= { ip 12 }

ipReasmTimeout OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The maximum number of seconds which received fragments are
            held while they are awaiting reassembly at this entity."
    ::= { ip 13 }

ipReasmReqds OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of IP fragments received which needed to be
            reassembled at this entity."
    ::= { ip 14 }

ipReasmOKs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of IP datagrams successfully re-assembled."
    ::= { ip 15 }

ipReasmFails OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of failures detected by the IP re-assembly
            algorithm (for whatever reason: timed out, errors, etc).
            Note that this is not necessarily a count of discarded IP
            fragments since some algorithms (notably the algorithm in
            RFC 815) can lose track of the number of fragments by


            combining them as they are received."
    ::= { ip 16 }

ipFragOKs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of IP datagrams that have been successfully
            fragmented at this entity."
    ::= { ip 17 }

ipFragFails OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of IP datagrams that have been discarded because
            they needed to be fragmented at this entity but could not
            be, e.g., because their Don't Fragment flag was set."
    ::= { ip 18 }

ipFragCreates OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of IP datagram fragments that have been
            generated as a result of fragmentation at this entity."
    ::= { ip 19 }

-- the IP address table

ipAddrTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IpAddrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The table of addressing information relevant to this
            entity's IP addresses."
    ::= { ip 20 }

ipAddrEntry OBJECT-TYPE
    SYNTAX      IpAddrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The addressing information for one of this entity's IP


            addresses."
    INDEX      { ipAdEntAddr }
    ::= { ipAddrTable 1 }

IpAddrEntry ::= SEQUENCE {
        ipAdEntAddr          IpAddress,
        ipAdEntIfIndex       INTEGER,
        ipAdEntNetMask       IpAddress,
        ipAdEntBcastAddr     INTEGER,
        ipAdEntReasmMaxSize  INTEGER
    }

ipAdEntAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The IP address to which this entry's addressing information
            pertains."
    ::= { ipAddrEntry 1 }

ipAdEntIfIndex OBJECT-TYPE
    SYNTAX      INTEGER (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The index value which uniquely identifies the interface to
            which this entry is applicable.  The interface identified by
            a particular value of this index is the same interface as
            identified by the same value of RFC 1573's ifIndex."
    ::= { ipAddrEntry 2 }

ipAdEntNetMask OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The subnet mask associated with the IP address of this
            entry.  The value of the mask is an IP address with all the
            network bits set to 1 and all the hosts bits set to 0."
    ::= { ipAddrEntry 3 }

ipAdEntBcastAddr OBJECT-TYPE
    SYNTAX      INTEGER (0..1)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The value of the least-significant bit in the IP broadcast


            address used for sending datagrams on the (logical)
            interface associated with the IP address of this entry.  For
            example, when the Internet standard all-ones broadcast
            address is used, the value will be 1.  This value applies to
            both the subnet and network broadcasts addresses used by the
            entity on this (logical) interface."
    ::= { ipAddrEntry 4 }

ipAdEntReasmMaxSize OBJECT-TYPE
    SYNTAX      INTEGER (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The size of the largest IP datagram which this entity can
            re-assemble from incoming IP fragmented datagrams received
            on this interface."
    ::= { ipAddrEntry 5 }

-- ipRouteTable  ::=   { ip 21 }        obsolete

-- the IP Address Translation table

-- The Address Translation tables contain the IpAddress to
-- "physical" address equivalences.  Some interfaces do not
-- use translation tables for determining address
-- equivalences (e.g., DDN-X.25 has an algorithmic method);
-- if all interfaces are of this type, then the Address
-- Translation table is empty, i.e., has zero entries.

ipNetToMediaTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IpNetToMediaEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The IP Address Translation table used for mapping from IP
            addresses to physical addresses."
    ::= { ip 22 }

ipNetToMediaEntry OBJECT-TYPE
    SYNTAX      IpNetToMediaEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Each entry contains one IpAddress to `physical' address
            equivalence."
    INDEX       { ipNetToMediaIfIndex,
                  ipNetToMediaNetAddress }


    ::= { ipNetToMediaTable 1 }

IpNetToMediaEntry ::= SEQUENCE {
        ipNetToMediaIfIndex      INTEGER,
        ipNetToMediaPhysAddress  PhysAddress,
        ipNetToMediaNetAddress   IpAddress,
        ipNetToMediaType         INTEGER
    }

ipNetToMediaIfIndex OBJECT-TYPE
    SYNTAX      INTEGER (1..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The interface on which this entry's equivalence is
            effective.  The interface identified by a particular value
            of this index is the same interface as identified by the
            same value of RFC 1573's ifIndex."
    ::= { ipNetToMediaEntry 1 }

ipNetToMediaPhysAddress OBJECT-TYPE
    SYNTAX      PhysAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The media-dependent `physical' address."
    ::= { ipNetToMediaEntry 2 }

ipNetToMediaNetAddress OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The IpAddress corresponding to the media-dependent
            `physical' address."
    ::= { ipNetToMediaEntry 3 }

ipNetToMediaType OBJECT-TYPE
    SYNTAX      INTEGER {
                other(1),        -- none of the following
                invalid(2),      -- an invalidated mapping
                dynamic(3),
                static(4)
            }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The type of mapping.


            Setting this object to the value invalid(2) has the effect
            of invalidating the corresponding entry in the
            ipNetToMediaTable.  That is, it effectively disassociates
            the interface identified with said entry from the mapping
            identified with said entry.  It is an implementation-
            specific matter as to whether the agent removes an
            invalidated entry from the table.  Accordingly, management
            stations must be prepared to receive tabular information
            from agents that corresponds to entries not currently in
            use.  Proper interpretation of such entries requires
            examination of the relevant ipNetToMediaType object."
    ::= { ipNetToMediaEntry 4 }

ipRoutingDiscards OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of routing entries which were chosen to be
            discarded even though they are valid.  One possible reason
            for discarding such an entry could be to free-up buffer
            space for other routing entries."
    ::= { ip 23 }

-- the ICMP group

icmp     OBJECT IDENTIFIER ::= { mib-2 5 }

icmpInMsgs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of ICMP messages which the entity
            received.  Note that this counter includes all those counted
            by icmpInErrors."
    ::= { icmp 1 }

icmpInErrors OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP messages which the entity received but
            determined as having ICMP-specific errors (bad ICMP
            checksums, bad length, etc.)."
    ::= { icmp 2 }


icmpInDestUnreachs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Destination Unreachable messages
            received."
    ::= { icmp 3 }

icmpInTimeExcds OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Time Exceeded messages received."
    ::= { icmp 4 }

icmpInParmProbs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Parameter Problem messages received."
    ::= { icmp 5 }

icmpInSrcQuenchs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Source Quench messages received."
    ::= { icmp 6 }

icmpInRedirects OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Redirect messages received."
    ::= { icmp 7 }

icmpInEchos OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Echo (request) messages received."
    ::= { icmp 8 }


icmpInEchoReps OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Echo Reply messages received."
    ::= { icmp 9 }

icmpInTimestamps OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Timestamp (request) messages received."
    ::= { icmp 10 }

icmpInTimestampReps OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Timestamp Reply messages received."
    ::= { icmp 11 }

icmpInAddrMasks OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Address Mask Request messages received."
    ::= { icmp 12 }

icmpInAddrMaskReps OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Address Mask Reply messages received."
    ::= { icmp 13 }

icmpOutMsgs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of ICMP messages which this entity
            attempted to send.  Note that this counter includes all
            those counted by icmpOutErrors."


    ::= { icmp 14 }

icmpOutErrors OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP messages which this entity did not send
            due to problems discovered within ICMP such as a lack of
            buffers.  This value should not include errors discovered
            outside the ICMP layer such as the inability of IP to route
            the resultant datagram.  In some implementations there may
            be no types of error which contribute to this counter's
            value."
    ::= { icmp 15 }

icmpOutDestUnreachs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Destination Unreachable messages sent."
    ::= { icmp 16 }

icmpOutTimeExcds OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Time Exceeded messages sent."
    ::= { icmp 17 }

icmpOutParmProbs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Parameter Problem messages sent."
    ::= { icmp 18 }

icmpOutSrcQuenchs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Source Quench messages sent."
    ::= { icmp 19 }


icmpOutRedirects OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Redirect messages sent.  For a host,
            this object will always be zero, since hosts do not send
            redirects."
    ::= { icmp 20 }

icmpOutEchos OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Echo (request) messages sent."
    ::= { icmp 21 }

icmpOutEchoReps OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Echo Reply messages sent."
    ::= { icmp 22 }

icmpOutTimestamps OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Timestamp (request) messages sent."
    ::= { icmp 23 }

icmpOutTimestampReps OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Timestamp Reply messages sent."
    ::= { icmp 24 }

icmpOutAddrMasks OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Address Mask Request messages sent."


    ::= { icmp 25 }

icmpOutAddrMaskReps OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of ICMP Address Mask Reply messages sent."
    ::= { icmp 26 }

-- conformance information

ipMIBConformance OBJECT IDENTIFIER ::= { ipMIB 2 }

ipMIBCompliances OBJECT IDENTIFIER ::= { ipMIBConformance 1 }
ipMIBGroups      OBJECT IDENTIFIER ::= { ipMIBConformance 2 }

-- compliance statements

ipMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for SNMPv2 entities which
            implement IP."
    MODULE  -- this module
        MANDATORY-GROUPS { ipGroup,
                           icmpGroup }
    ::= { ipMIBCompliances 1 }

-- units of conformance

ipGroup OBJECT-GROUP
    OBJECTS   { ipForwarding, ipDefaultTTL, ipInReceives,
                ipInHdrErrors, ipInAddrErrors,
                ipForwDatagrams, ipInUnknownProtos,
                ipInDiscards, ipInDelivers, ipOutRequests,
                ipOutDiscards, ipOutNoRoutes,
                ipReasmTimeout, ipReasmReqds, ipReasmOKs,
                ipReasmFails, ipFragOKs,
                ipFragFails, ipFragCreates,
                ipAdEntAddr, ipAdEntIfIndex, ipAdEntNetMask,
                ipAdEntBcastAddr, ipAdEntReasmMaxSize,
                ipNetToMediaIfIndex, ipNetToMediaPhysAddress,
                ipNetToMediaNetAddress, ipNetToMediaType,
                ipRoutingDiscards }
    STATUS    current
    DESCRIPTION


            "The ip group of objects providing for basic management of
            IP entities, exclusive of the management of IP routes."
    ::= { ipMIBGroups 1 }

icmpGroup OBJECT-GROUP
    OBJECTS   { icmpInMsgs, icmpInErrors,
                icmpInDestUnreachs, icmpInTimeExcds,
                icmpInParmProbs, icmpInSrcQuenchs,
                icmpInRedirects, icmpInEchos,
                icmpInEchoReps, icmpInTimestamps,
                icmpInTimestampReps, icmpInAddrMasks,
                icmpInAddrMaskReps, icmpOutMsgs,
                icmpOutErrors, icmpOutDestUnreachs,
                icmpOutTimeExcds, icmpOutParmProbs,
                icmpOutSrcQuenchs, icmpOutRedirects,
                icmpOutEchos, icmpOutEchoReps,
                icmpOutTimestamps, icmpOutTimestampReps,
                icmpOutAddrMasks, icmpOutAddrMaskReps }
    STATUS    current
    DESCRIPTION
            "The icmp group of objects providing ICMP statistics."
    ::= { ipMIBGroups 2 }

END

-- ######################################################

--
-- File: rfc/rfc2012.mib
--

TCP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Integer32, Gauge32,
    Counter32, IpAddress, mib-2        FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP    FROM SNMPv2-CONF;

tcpMIB MODULE-IDENTITY
    LAST-UPDATED "9411010000Z"
    ORGANIZATION "IETF SNMPv2 Working Group"
    CONTACT-INFO
            "        Keith McCloghrie

             Postal: Cisco Systems, Inc.
                     170 West Tasman Drive
                     San Jose, CA  95134-1706
                     US

             Phone:  +1 408 526 5260
             Email:  kzm@cisco.com"


    DESCRIPTION
            "The MIB module for managing TCP implementations."
    REVISION      "9103310000Z"
    DESCRIPTION
            "The initial revision of this MIB module was part of MIB-
            II."
    ::= { mib-2 49 }

-- the TCP group

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

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 [5]
                }
    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
    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 upon the
            algorithm used to determine the retransmission timeout.  In
            particular, when the timeout algorithm is rsre(3), an object
            of this type has the semantics of the LBOUND quantity
            described in RFC 793."
    ::= { tcp 2 }

tcpRtoMax OBJECT-TYPE
    SYNTAX      Integer32
    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 upon the
            algorithm used to determine the retransmission timeout.  In
            particular, when the timeout algorithm is rsre(3), an object
            of this type has the semantics of the UBOUND quantity
            described in RFC 793."
    ::= { tcp 3 }

tcpMaxConn OBJECT-TYPE
    SYNTAX      Integer32
    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 TCP connections have made a direct
            transition to the SYN-SENT state from the CLOSED state."
    ::= { 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."
    ::= { tcp 6 }

tcpAttemptFails OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of times 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 TCP
            connections have made a direct transition to the LISTEN
            state from the SYN-RCVD state."
    ::= { tcp 7 }


tcpEstabResets OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of times TCP connections have made a direct
            transition to the CLOSED state from either the ESTABLISHED
            state or the CLOSE-WAIT state."
    ::= { 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."
    ::= { 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."
    ::= { 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."


    ::= { tcp 12 }

-- the TCP Connection table

-- The TCP connection table contains information about this
-- entity's existing TCP connections.

tcpConnTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF TcpConnEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A table containing TCP connection-specific information."
    ::= { tcp 13 }

tcpConnEntry OBJECT-TYPE
    SYNTAX      TcpConnEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A conceptual row of the tcpConnTable 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   { tcpConnLocalAddress,
              tcpConnLocalPort,
              tcpConnRemAddress,
              tcpConnRemPort }
    ::= { tcpConnTable 1 }

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

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      current
    DESCRIPTION
            "The state of this TCP connection.

            The only value which 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 this has the effect of deleting the TCB
            (as defined in RFC 793) of the corresponding connection on
            the managed node, 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      current
    DESCRIPTION
            "The local IP address for this TCP connection.  In the case
            of a connection in the listen state which is 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      INTEGER (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The local port number for this TCP connection."
    ::= { tcpConnEntry 3 }

tcpConnRemAddress OBJECT-TYPE


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

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

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)."
    ::= { tcp 14 }

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

-- conformance information

tcpMIBConformance OBJECT IDENTIFIER ::= { tcpMIB 2 }

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

-- compliance statements

tcpMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for SNMPv2 entities which
            implement TCP."
    MODULE  -- this module


        MANDATORY-GROUPS { tcpGroup
                           }
    ::= { 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    current
    DESCRIPTION
            "The tcp group of objects providing for management of TCP
            entities."
    ::= { tcpMIBGroups 1 }

END

-- ######################################################

--
-- File: rfc/rfc2013.mib
--

UDP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Counter32,
    IpAddress, mib-2                   FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP    FROM SNMPv2-CONF;

udpMIB MODULE-IDENTITY
    LAST-UPDATED "9411010000Z"
    ORGANIZATION "IETF SNMPv2 Working Group"
    CONTACT-INFO
            "        Keith McCloghrie

             Postal: Cisco Systems, Inc.
                     170 West Tasman Drive
                     San Jose, CA  95134-1706
                     US

             Phone:  +1 408 526 5260
             Email:  kzm@cisco.com"


    DESCRIPTION
            "The MIB module for managing UDP implementations."
    REVISION      "9103310000Z"
    DESCRIPTION
            "The initial revision of this MIB module was part of MIB-
            II."
    ::= { mib-2 50 }

-- the UDP group

udp      OBJECT IDENTIFIER ::= { mib-2 7 }

udpInDatagrams OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of UDP datagrams delivered to UDP users."
    ::= { udp 1 }

udpNoPorts OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of received UDP datagrams for which there
            was no application at the destination port."
    ::= { udp 2 }

udpInErrors OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of received UDP datagrams that could not be
            delivered for reasons other than the lack of an application
            at the destination port."
    ::= { udp 3 }

udpOutDatagrams OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of UDP datagrams sent from this entity."
    ::= { udp 4 }


-- the UDP Listener table

-- The UDP listener table contains information about this
-- entity's UDP end-points on which a local application is
-- currently accepting datagrams.

udpTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF UdpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A table containing UDP listener information."
    ::= { udp 5 }

udpEntry OBJECT-TYPE
    SYNTAX      UdpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Information about a particular current UDP listener."
    INDEX   { udpLocalAddress, udpLocalPort }
    ::= { udpTable 1 }

UdpEntry ::= SEQUENCE {
        udpLocalAddress  IpAddress,
        udpLocalPort     INTEGER
    }

udpLocalAddress OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The local IP address for this UDP listener.  In the case of
            a UDP listener which is willing to accept datagrams for any
            IP interface associated with the node, the value 0.0.0.0 is
            used."
    ::= { udpEntry 1 }

udpLocalPort OBJECT-TYPE
    SYNTAX      INTEGER (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The local port number for this UDP listener."
    ::= { udpEntry 2 }


-- conformance information

udpMIBConformance OBJECT IDENTIFIER ::= { udpMIB 2 }

udpMIBCompliances OBJECT IDENTIFIER ::= { udpMIBConformance 1 }
udpMIBGroups      OBJECT IDENTIFIER ::= { udpMIBConformance 2 }

-- compliance statements

udpMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for SNMPv2 entities which
            implement UDP."
    MODULE  -- this module
        MANDATORY-GROUPS { udpGroup
                           }
    ::= { udpMIBCompliances 1 }

-- units of conformance

udpGroup OBJECT-GROUP
    OBJECTS   { udpInDatagrams, udpNoPorts,
                udpInErrors, udpOutDatagrams,
                udpLocalAddress, udpLocalPort }
    STATUS    current
    DESCRIPTION
            "The udp group of objects providing for management of UDP
            entities."
    ::= { udpMIBGroups 1 }

END

-- ######################################################

--
-- File: rfc/rfc2021.mib
--

RMON2-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Counter32, Integer32,
        Gauge32, IpAddress, TimeTicks            FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, RowStatus, DisplayString, TimeStamp
                                                 FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
    mib-2, ifIndex                  FROM RFC1213-MIB
    OwnerString, statistics, history, hosts,
    matrix, filter, etherStatsEntry, historyControlEntry,
    hostControlEntry, matrixControlEntry, filterEntry,
    channelEntry                    FROM RMON-MIB
    tokenRing, tokenRingMLStatsEntry, tokenRingPStatsEntry,
    ringStationControlEntry, sourceRoutingStatsEntry
                                    FROM TOKEN-RING-RMON-MIB;
--  Remote Network Monitoring MIB

rmon MODULE-IDENTITY
    LAST-UPDATED "9605270000Z"
    ORGANIZATION "IETF RMON MIB Working Group"
    CONTACT-INFO
        "Steve Waldbusser   (WG Editor)
         Postal: International Network Services
         650 Castro Street, Suite 260
         Mountain View, CA 94041
         Phone:  +1 415 254 4251
         Email:  waldbusser@ins.com

         Andy Bierman   (WG Chair)
         Phone:  +1 805 648 2028
         Email:  abierman@west.net"
    DESCRIPTION
        "The MIB module for managing remote monitoring
         device implementations. This MIB module
         augments the original RMON MIB as specified in
         RFC 1757."
    ::= { mib-2 16 }

-- { rmon 1 } through { rmon 10 } are defined in RMON and
-- the Token Ring RMON MIB [RFC 1513]


    protocolDir     OBJECT IDENTIFIER ::= { rmon 11 }
    protocolDist    OBJECT IDENTIFIER ::= { rmon 12 }
    addressMap      OBJECT IDENTIFIER ::= { rmon 13 }
    nlHost          OBJECT IDENTIFIER ::= { rmon 14 }
    nlMatrix        OBJECT IDENTIFIER ::= { rmon 15 }
    alHost          OBJECT IDENTIFIER ::= { rmon 16 }
    alMatrix        OBJECT IDENTIFIER ::= { rmon 17 }
    usrHistory      OBJECT IDENTIFIER ::= { rmon 18 }
    probeConfig     OBJECT IDENTIFIER ::= { rmon 19 }
    rmonConformance OBJECT IDENTIFIER ::= { rmon 20 }

-- Textual Conventions

ZeroBasedCounter32 ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "This TC describes an object which counts events with the
        following semantics: objects of this type will be set to
        zero(0) on creation and will thereafter count appropriate
        events, wrapping back to zero(0) when the value 2^32 is
        reached.

        Provided that an application discovers the new object within
        the minimum time to wrap it can use the initial value as a
        delta since it last polled the table of which this object is
        part.  It is important for a management station to be aware of
        this minimum time and the actual time between polls, and to
        discard data if the actual time is too long or there is no
        defined minimum time.

        Typically this TC is used in tables where the INDEX space is
        constantly changing and/or the TimeFilter mechanism is in use."
    SYNTAX Gauge32

LastCreateTime ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "This TC describes an object that stores the last time its
        entry was created.

        This can be used for polling applications to determine that an
        entry has been deleted and re-created between polls, causing
        an otherwise undetectable discontinuity in the data."
    SYNTAX TimeStamp

TimeFilter ::= TEXTUAL-CONVENTION
    STATUS        current
    DESCRIPTION


        "To be used for the index to a table.  Allows an application
        to download only those rows changed since a particular time.
        A row is considered changed if the value of any object in the
        row changes or if the row is created or deleted.

        When sysUpTime is equal to zero, this table shall be empty.

        One entry exists for each past value of sysUpTime, except that
        the whole table is purged should sysUpTime wrap.

        As this basic row is updated new conceptual rows are created
        (which still share the now updated object values with all
        other instances).  The number of instances which are created
        is determined by the value of sysUpTime at which the basic row
        was last updated.  One instance will exist for each value of
        sysUpTime at the last update time for the row.  A new
        timeMark instance is created for each new sysUpTime value.
        Each new conceptual row will be associated with the timeMark
        instance which was created at the value of sysUpTime with
        which the conceptual row is to be associated.

        By definition all conceptual rows were updated at or after
        time zero and so at least one conceptual row (associated with
        timeMark.0) must exist for each underlying (basic) row.

        See the appendix for further discussion of this variable.

        Consider the following fooTable:

        fooTable ...
        INDEX { fooTimeMark, fooIndex }

        FooEntry {
           fooTimeMark  TimeFilter
           fooIndex     INTEGER,
           fooCounts    Counter
        }

        Should there be two basic rows in this table (fooIndex == 1,
        fooIndex == 2) and row 1 was updated most recently at time 6,
        while row 2 was updated most recently at time 8, and both rows
        had been updated on several earlier occasions such that the
        current values were 5 and 9 respectively then the following
        fooCounts instances would exist.

        fooCounts.0.1  5
        fooCounts.0.2  9
        fooCounts.1.1  5


        fooCounts.1.2  9
        fooCounts.2.1  5
        fooCounts.2.2  9
        fooCounts.3.1  5
        fooCounts.3.2  9
        fooCounts.4.1  5
        fooCounts.4.2  9
        fooCounts.5.1  5
        fooCounts.5.2  9
        fooCounts.6.1  5
        fooCounts.6.2  9
        fooCounts.7.2  9    -- note that row 1 doesn't exist for
        fooCounts.8.2  9    -- times 7 and 8"
    SYNTAX    TimeTicks

DataSource ::= TEXTUAL-CONVENTION
    STATUS        current
    DESCRIPTION
        "Identifies the source of the data that the associated
        function is configured to analyze. This source can be any
        interface on this device.

        In order to identify a particular interface, this
        object shall identify the instance of the ifIndex
        object, defined in [3,5], for the desired interface.

        For example, if an entry were to receive data from
        interface #1, this object would be set to ifIndex.1."
    SYNTAX      OBJECT IDENTIFIER
--
-- Protocol Directory Group
--
-- Lists the inventory of protocols the probe has the capability of
-- monitoring and allows the addition, deletion, and configuration of
-- entries in this list.

protocolDirLastChange OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime at the time the protocol directory
        was last modified, either through insertions or deletions,
        or through modifications of either the
        protocolDirAddressMapConfig, protocolDirHostConfig, or
        protocolDirMatrixConfig."
    ::= { protocolDir 1 }


protocolDirTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ProtocolDirEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table lists the protocols that this agent has the
        capability to decode and count.  There is one entry in this
        table for each such protocol.  These protocols represent
        different network layer, transport layer, and higher-layer
        protocols.  The agent should boot up with this table
        preconfigured with those protocols that it knows about and
        wishes to monitor.  Implementations are strongly encouraged to
        support protocols higher than the network layer (at least for
        the protocol distribution group), even for implementations
        that don't support the application layer groups."
    ::= { protocolDir 2 }

protocolDirEntry OBJECT-TYPE
    SYNTAX      ProtocolDirEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the protocolDirTable.

         An example of the indexing of this entry is
         protocolDirLocalIndex.8.0.0.0.1.0.0.8.0.2.0.0, which is the
         encoding of a length of 8, followed by 8 subids encoding the
         protocolDirID of 1.2048, followed by a length of 2 and the
         2 subids encoding zero-valued parameters."
    INDEX { protocolDirID, protocolDirParameters }
    ::= { protocolDirTable  1 }

ProtocolDirEntry ::= SEQUENCE {
    protocolDirID                   OCTET STRING,
    protocolDirParameters           OCTET STRING,
    protocolDirLocalIndex           Integer32,
    protocolDirDescr                DisplayString,
    protocolDirType                 BITS,
    protocolDirAddressMapConfig     INTEGER,
    protocolDirHostConfig           INTEGER,
    protocolDirMatrixConfig         INTEGER,
    protocolDirOwner                OwnerString,
    protocolDirStatus               RowStatus
}

protocolDirID OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  not-accessible


    STATUS      current
    DESCRIPTION
        "A unique identifier for a particular protocol.  Standard
        identifiers will be defined in a manner such that they
        can often be used as specifications for new protocols - i.e.
        a tree-structured assignment mechanism that matches the
        protocol encapsulation `tree' and which has algorithmic
        assignment mechanisms for certain subtrees. See RFC XXX for
        more details.

        Despite the algorithmic mechanism, the probe will only place
        entries in here for those protocols it chooses to collect.  In
        other words, it need not populate this table with all of the
        possible ethernet protocol types, nor need it create them on
        the fly when it sees them.  Whether or not it does these
        things is a matter of product definition (cost/benefit,
        usability), and is up to the designer of the product.

        If an entry is written to this table with a protocolDirID that
        the agent doesn't understand, either directly or
        algorithmically, the SET request will be rejected with an
        inconsistentName or badValue (for SNMPv1) error."
    ::= { protocolDirEntry 1 }

protocolDirParameters OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A set of parameters for the associated protocolDirID.
        See the associated RMON2 Protocol Identifiers document
        for a description of the possible parameters. There
        will be one octet in this string for each sub-identifier in
        the protocolDirID, and the parameters will appear here in the
        same order as the associated sub-identifiers appear in the
        protocolDirID.

        Every node in the protocolDirID tree has a different, optional
        set of parameters defined (that is, the definition of
        parameters for a node is optional).  The proper parameter
        value for each node is included in this string.  Note that the
        inclusion of a parameter value in this string for each node is
        not optional - what is optional is that a node may have no
        parameters defined, in which case the parameter field for that
        node will be zero."
    ::= { protocolDirEntry 2 }

protocolDirLocalIndex OBJECT-TYPE


    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The locally arbitrary, but unique identifier associated
        with this protocolDir entry.

        The value for each supported protocol must remain constant at
        least from one re-initialization of the entity's network
        management system to the next re-initialization, except that
        if a protocol is deleted and re-created, it must be re-created
        with a new value that has not been used since the last
        re-initialization.

        The specific value is meaningful only within a given SNMP
        entity. A protocolDirLocalIndex must not be re-used until the
        next agent-restart in the event the protocol directory entry
        is deleted."
    ::= { protocolDirEntry 3 }

protocolDirDescr OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A textual description of the protocol encapsulation.
        A probe may choose to describe only a subset of the
        entire encapsulation (e.g. only the highest layer).

        This object is intended for human consumption only.

        This object may not be modified if the associated
        protocolDirStatus object is equal to active(1)."
    ::= { protocolDirEntry 4 }

protocolDirType OBJECT-TYPE
    SYNTAX      BITS {
                    extensible(0),
                    addressRecognitionCapable(1)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object describes 2 attributes of this protocol
         directory entry.

         The presence or absence of the `extensible' bit describes
         whether or not this protocol directory entry can be extended


         by the user by creating protocol directory entries which are
         children of this protocol.

         An example of an entry that will often allow extensibility is
         `ip.udp'.  The probe may automatically populate some children
         of this node such as `ip.udp.snmp' and `ip.udp.dns'.
         A probe administrator or user may also populate additional
         children via remote SNMP requests that create entries in this
         table.  When a child node is added for a protocol for which the
         probe has no built in support, extending a parent node (for
         which the probe does have built in support),
         that child node is not extendible.  This is termed `limited
         extensibility'.

         When a child node is added through this extensibility
         mechanism, the values of protocolDirLocalIndex and
         protocolDirType shall be assigned by the agent.

         The other objects in the entry will be assigned by the
         manager who is creating the new entry.

         This object also describes whether or not this agent can
         recognize addresses for this protocol, should it be a network
         level protocol.  That is, while a probe may be able to
         recognize packets of a particular network layer protocol and
         count them, it takes additional logic to be able to recognize
         the addresses in this protocol and to populate network layer
         or application layer tables with the addresses in this
         protocol.  If this bit is set, the agent will recognize
         network layer addresses for this protoocl and populate the
         network and application layer host and matrix tables with
         these protocols.

         Note that when an entry is created, the agent will supply
         values for the bits that match the capabilities of the agent
         with respect to this protocol.  Note that since row creations
         usually exercise the limited extensibility feature, these
         bits will usually be set to zero."
    ::= { protocolDirEntry 5 }

protocolDirAddressMapConfig OBJECT-TYPE
    SYNTAX      INTEGER {
                    notSupported(1),
                    supportedOff(2),
                    supportedOn(3)
                }
    MAX-ACCESS  read-create
    STATUS      current


    DESCRIPTION
        "This object describes and configures the probe's support for
        address mapping for this protocol.  When the probe creates
        entries in this table for all protocols that it understands,
        it will set the entry to notSupported(1) if it doesn't have
        the capability to perform address mapping for the protocol or
        if this protocol is not a network-layer protocol.  When
        an entry is created in this table by a management operation as
        part of the limited extensibility feature, the probe must set
        this value to notSupported(1), because limited extensibility
        of the protocolDirTable does not extend to interpreting
        addresses of the extended protocols.

        If the value of this object is notSupported(1), the probe
        will not perform address mapping for this protocol and
        shall not allow this object to be changed to any other value.
        If the value of this object is supportedOn(3), the probe
        supports address mapping for this protocol and is configured
        to perform address mapping for this protocol for all
        addressMappingControlEntries and all interfaces.
        If the value of this object is supportedOff(2), the probe
        supports address mapping for this protocol but is configured
        to not perform address mapping for this protocol for any
        addressMappingControlEntries and all interfaces.
        Whenever this value changes from supportedOn(3) to
        supportedOff(2), the probe shall delete all related entries in
        the addressMappingTable."
    ::= { protocolDirEntry 6 }

protocolDirHostConfig OBJECT-TYPE
    SYNTAX      INTEGER {
                    notSupported(1),
                    supportedOff(2),
                    supportedOn(3)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object describes and configures the probe's support for
        the network layer and application layer host tables for this
        protocol.  When the probe creates entries in this table for
        all protocols that it understands, it will set the entry to
        notSupported(1) if it doesn't have the capability to track the
        nlHostTable for this protocol or if the alHostTable is
        implemented but doesn't have the capability to track this
        protocol.  Note that if the alHostTable is implemented, the
        probe may only support a protocol if it is supported in both
        the nlHostTable and the alHostTable.


        If the associated protocolDirType object has the
        addressRecognitionCapable bit set, then this is a network
        layer protocol for which the probe recognizes addresses, and
        thus the probe will populate the nlHostTable and alHostTable
        with addresses it discovers for this protocol.

        If the value of this object is notSupported(1), the probe
        will not track the nlHostTable or alHostTable for this
        protocol and shall not allow this object to be changed to any
        other value. If the value of this object is supportedOn(3),
        the probe supports tracking of the nlHostTable and alHostTable
        for this protocol and is configured to track both tables
        for this protocol for all control entries and all interfaces.
        If the value of this object is supportedOff(2), the probe
        supports tracking of the nlHostTable and alHostTable for this
        protocol but is configured to not track these tables
        for any control entries or interfaces.
        Whenever this value changes from supportedOn(3) to
        supportedOff(2), the probe shall delete all related entries in
        the nlHostTable and alHostTable.

        Note that since each alHostEntry references 2 protocol
        directory entries, one for the network address and one for the
        type of the highest protocol recognized, that an entry will
        only be created in that table if this value is supportedOn(3)
        for both protocols."
    ::= { protocolDirEntry 7 }

protocolDirMatrixConfig OBJECT-TYPE
    SYNTAX      INTEGER {
                    notSupported(1),
                    supportedOff(2),
                    supportedOn(3)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object describes and configures the probe's support for
        the network layer and application layer matrix tables for this
        protocol.  When the probe creates entries in this table for
        all protocols that it understands, it will set the entry to
        notSupported(1) if it doesn't have the capability to track the
        nlMatrixTables for this protocol or if the alMatrixTables are
        implemented but don't have the capability to track this
        protocol.  Note that if the alMatrix tables are implemented,
        the probe may only support a protocol if it is supported in
        the the both of the nlMatrixTables and both of the
        alMatrixTables.


        If the associated protocolDirType object has the
        addressRecognitionCapable bit set, then this is a network
        layer protocol for which the probe recognizes addresses, and
        thus the probe will populate both of the nlMatrixTables and
        both of the alMatrixTables with addresses it discovers for
        this protocol.

        If the value of this object is notSupported(1), the probe
        will not track either of the nlMatrixTables or the
        alMatrixTables for this protocol and shall not allow this
        object to be changed to any other value. If the value of this
        object is supportedOn(3), the probe supports tracking of both
        of the nlMatrixTables and (if implemented) both of the
        alMatrixTables for this protocol and is configured to track
        these tables for this protocol for all control entries and all
        interfaces. If the value of this object is supportedOff(2),
        the probe supports tracking of both of the nlMatrixTables and
        (if implemented) both of the alMatrixTables for this protocol
        but is configured to not track these tables for this
        protocol for any control entries or interfaces.
        Whenever this value changes from supportedOn(3) to
        supportedOff(2), the probe shall delete all related entries in
        the nlMatrixTables and the alMatrixTables.

        Note that since each alMatrixEntry references 2 protocol
        directory entries, one for the network address and one for the
        type of the highest protocol recognized, that an entry will
        only be created in that table if this value is supportedOn(3)
        for both protocols."
    ::= { protocolDirEntry 8 }

protocolDirOwner OBJECT-TYPE
    SYNTAX      OwnerString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The entity that configured this entry and is
        therefore using the resources assigned to it."
    ::= { protocolDirEntry 9 }

protocolDirStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The status of this protocol directory entry.

        An entry may not exist in the active state unless all


        objects in the entry have an appropriate value.

        If this object is not equal to active(1), all associated
        entries in the nlHostTable, nlMatrixSDTable, nlMatrixDSTable,
        alHostTable, alMatrixSDTable, and alMatrixDSTable shall be
        deleted."
    ::= { protocolDirEntry 10 }

--
-- Protocol Distribution Group  (protocolDist)
--
-- Collects the relative amounts of octets and packets for the
-- different protocols detected on a network segment.
--    protocolDistControlTable,
--    protocolDistStatsTable

protocolDistControlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ProtocolDistControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Controls the setup of protocol type distribution statistics
        tables.

        Implementations are encouraged to add an entry per monitored
        interface upon initialization so that a default collection
        of protocol statistics is available.

        Rationale:
        This table controls collection of very basic statistics
        for any or all of the protocols detected on a given interface.
        An NMS can use this table to quickly determine bandwidth
        allocation utilized by different protocols.

        A media-specific statistics collection could also
        be configured (e.g. etherStats, trPStats) to easily obtain
        total frame, octet, and droppedEvents for the same
        interface."
    ::= { protocolDist 1 }

protocolDistControlEntry OBJECT-TYPE
    SYNTAX      ProtocolDistControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the protocolDistControlTable.

         An example of the indexing of this entry is


         protocolDistControlDroppedFrames.7"
    INDEX { protocolDistControlIndex }
    ::= { protocolDistControlTable 1 }

ProtocolDistControlEntry ::= SEQUENCE {
    protocolDistControlIndex                Integer32,
    protocolDistControlDataSource           DataSource,
    protocolDistControlDroppedFrames        Counter32,
    protocolDistControlCreateTime           LastCreateTime,
    protocolDistControlOwner                OwnerString,
    protocolDistControlStatus               RowStatus
}

protocolDistControlIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A unique index for this protocolDistControlEntry."
    ::= { protocolDistControlEntry 1 }

protocolDistControlDataSource OBJECT-TYPE
    SYNTAX      DataSource
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The source of data for the this protocol distribution.

        The statistics in this group reflect all packets
        on the local network segment attached to the
        identified interface.

        This object may not be modified if the associated
        protocolDistControlStatus object is equal to active(1)."
    ::= { protocolDistControlEntry 2 }

protocolDistControlDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
       "The total number of frames which were received by the probe
        and therefore not accounted for in the *StatsDropEvents, but
        for which the probe chose not to count for this entry for
        whatever reason.  Most often, this event occurs when the probe
        is out of some resources and decides to shed load from this
        collection.


        This count does not include packets that were not counted
        because they had MAC-layer errors.

        Note that, unlike the dropEvents counter, this number is the
        exact number of frames dropped."
    ::= { protocolDistControlEntry 3 }

protocolDistControlCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this control entry was last
        activated. This can be used by the management station to
        ensure that the table has not been deleted and recreated
        between polls."
    ::= { protocolDistControlEntry 4 }

protocolDistControlOwner OBJECT-TYPE
    SYNTAX      OwnerString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The entity that configured this entry and is
        therefore using the resources assigned to it."
    ::= { protocolDistControlEntry 5 }

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

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value.

        If this object is not equal to active(1), all associated
        entries in the protocolDistStatsTable shall be deleted."
    ::= { protocolDistControlEntry 6 }

-- per interface protocol distribution statistics table
protocolDistStatsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ProtocolDistStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry is made in this table for every protocol in the


        protocolDirTable which has been seen in at least one packet.
        Counters are updated in this table for every protocol type
        that is encountered when parsing a packet, but no counters are
        updated for packets with MAC-layer errors.

        Note that if a protocolDirEntry is deleted, all associated
        entries in this table are removed."
    ::= { protocolDist 2 }

protocolDistStatsEntry OBJECT-TYPE
    SYNTAX      ProtocolDistStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the protocolDistStatsTable.

        The index is composed of the protocolDistControlIndex of the
        associated protocolDistControlEntry followed by the
        protocolDirLocalIndex of the associated protocol that this
        entry represents.  In other words, the index identifies the
        protocol distribution an entry is a part of as well as the
        particular protocol that it represents.

        An example of the indexing of this entry is
        protocolDistStatsPkts.1.18"
    INDEX { protocolDistControlIndex, protocolDirLocalIndex }
    ::= { protocolDistStatsTable 1 }

ProtocolDistStatsEntry ::= SEQUENCE {
    protocolDistStatsPkts                    ZeroBasedCounter32,
    protocolDistStatsOctets                  ZeroBasedCounter32
}

protocolDistStatsPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets without errors received of this
        protocol type.  Note that this is the number of link-layer
        packets, so if a single network-layer packet is fragmented
        into several link-layer frames, this counter is incremented
        several times."
    ::= { protocolDistStatsEntry 1 }

protocolDistStatsOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only


    STATUS      current
    DESCRIPTION
        "The number of octets in packets received of this protocol
        type since it was added to the protocolDistStatsTable
        (excluding framing bits but including FCS octets), except for
        those octets in packets that contained errors.

        Note this doesn't count just those octets in the particular
        protocol frames, but includes the entire packet that contained
        the protocol."
    ::= { protocolDistStatsEntry 2 }

--
-- Address Map Group   (addressMap)
--
-- Lists MAC address to network address bindings discovered by the
-- probe and what interface they were last seen on.
--    addressMapControlTable
--    addressMapTable

addressMapInserts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of times an address mapping entry has been
        inserted into the addressMapTable.  If an entry is inserted,
        then deleted, and then inserted, this counter will be
        incremented by 2.

        Note that the table size can be determined by subtracting
        addressMapDeletes from addressMapInserts."
    ::= { addressMap 1 }

addressMapDeletes OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of times an address mapping entry has been
        deleted from the addressMapTable (for any reason).  If
        an entry is deleted, then inserted, and then deleted, this
        counter will be incremented by 2.

        Note that the table size can be determined by subtracting
        addressMapDeletes from addressMapInserts."
    ::= { addressMap 2 }


addressMapMaxDesiredEntries OBJECT-TYPE
    SYNTAX      Integer32 (-1..2147483647)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The maximum number of entries that are desired in the
        addressMapTable. The probe will not create more than
        this number of entries in the table, but may choose to create
        fewer entries in this table for any reason including the lack
        of resources.

        If this object is set to a value less than the current number
        of entries, enough entries are chosen in an
        implementation-dependent manner and deleted so that the number
        of entries in the table equals the value of this object.

        If this value is set to -1, the probe may create any number
        of entries in this table.

        This object may be used to control how resources are allocated
        on the probe for the various RMON functions."
    ::= { addressMap 3 }

addressMapControlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF AddressMapControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table to control the collection of network layer address to
        physical address to interface mappings.

        Note that this is not like the typical RMON
        controlTable and dataTable in which each entry creates
        its own data table.  Each entry in this table enables the
        discovery of addresses on a new interface and the placement
        of address mappings into the central addressMapTable.

        Implementations are encouraged to add an entry per monitored
        interface upon initialization so that a default collection
        of address mappings is available."
    ::= { addressMap 4 }

addressMapControlEntry OBJECT-TYPE
    SYNTAX      AddressMapControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the addressMapControlTable.


        An example of the indexing of this entry is
        addressMapControlDroppedFrames.1"
    INDEX { addressMapControlIndex }
    ::= { addressMapControlTable 1 }

AddressMapControlEntry ::= SEQUENCE {
    addressMapControlIndex              Integer32,
    addressMapControlDataSource         DataSource,
    addressMapControlDroppedFrames      Counter32,
    addressMapControlOwner              OwnerString,
    addressMapControlStatus             RowStatus
}

addressMapControlIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A unique index for this entry in the addressMapControlTable."
    ::= { addressMapControlEntry 1 }

addressMapControlDataSource OBJECT-TYPE
    SYNTAX      DataSource
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The source of data for this addressMapControlEntry."
    ::= { addressMapControlEntry 2 }

addressMapControlDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
       "The total number of frames which were received by the probe
        and therefore not accounted for in the *StatsDropEvents, but
        for which the probe chose not to count for this entry for
        whatever reason.  Most often, this event occurs when the probe
        is out of some resources and decides to shed load from this
        collection.

        This count does not include packets that were not counted
        because they had MAC-layer errors.

        Note that, unlike the dropEvents counter, this number is the
        exact number of frames dropped."
    ::= { addressMapControlEntry 3 }


addressMapControlOwner OBJECT-TYPE
    SYNTAX      OwnerString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The entity that configured this entry and is
        therefore using the resources assigned to it."
    ::= { addressMapControlEntry 4 }

addressMapControlStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The status of this addressMap control entry.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value.

        If this object is not equal to active(1), all associated
        entries in the addressMapTable shall be deleted."
    ::= { addressMapControlEntry 5 }

addressMapTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF AddressMapEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of network layer address to physical address to
        interface mappings.

        The probe will add entries to this table based on the source
        MAC and network addresses seen in packets without MAC-level
        errors. The probe will populate this table for all protocols
        in the protocol directory table whose value of
        protocolDirAddressMapConfig is equal to supportedOn(3), and
        will delete any entries whose protocolDirEntry is deleted or
        has a protocolDirAddressMapConfig value of supportedOff(2)."
    ::= { addressMap 5 }

addressMapEntry OBJECT-TYPE
    SYNTAX      AddressMapEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the addressMapTable.
        The protocolDirLocalIndex in the index identifies the network
        layer protocol of the addressMapNetworkAddress.


        An example of the indexing of this entry is
        addressMapSource.783495.18.4.128.2.6.6.11.1.3.6.1.2.1.2.2.1.1.1"
    INDEX { addressMapTimeMark, protocolDirLocalIndex,
            addressMapNetworkAddress, addressMapSource }
    ::= { addressMapTable 1 }

AddressMapEntry ::= SEQUENCE {
    addressMapTimeMark                 TimeFilter,
    addressMapNetworkAddress           OCTET STRING,
    addressMapSource                   OBJECT IDENTIFIER,
    addressMapPhysicalAddress          OCTET STRING,
    addressMapLastChange               TimeStamp
}

addressMapTimeMark OBJECT-TYPE
    SYNTAX      TimeFilter
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A TimeFilter for this entry.  See the TimeFilter textual
        convention to see how this works."
    ::= { addressMapEntry 1 }

addressMapNetworkAddress OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The network address for this relation.

        This is represented as an octet string with
        specific semantics and length as identified
        by the protocolDirLocalIndex component of the
        index.

        For example, if the protocolDirLocalIndex indicates an
        encapsulation of ip, this object is encoded as a length
        octet of 4, followed by the 4 octets of the ip address,
        in network byte order."
    ::= { addressMapEntry 2 }

addressMapSource OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The interface or port on which the associated network
         address was most recently seen.


        If this address mapping was discovered on an interface, this
        object shall identify the instance of the ifIndex
        object, defined in [3,5], for the desired interface.
        For example, if an entry were to receive data from
        interface #1, this object would be set to ifIndex.1.

        If this address mapping was discovered on a port, this
        object shall identify the instance of the rptrGroupPortIndex
        object, defined in [RFC1516], for the desired port.
        For example, if an entry were to receive data from
        group #1, port #1, this object would be set to
        rptrGroupPortIndex.1.1.

        Note that while the dataSource associated with this entry
        may only point to index objects, this object may at times
        point to repeater port objects. This situation occurs when
        the dataSource points to an interface which is a locally
        attached repeater and the agent has additional information
        about the source port of traffic seen on that repeater."
    ::= { addressMapEntry 3 }

addressMapPhysicalAddress OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The last source physical address on which the associated
        network address was seen.  If the protocol of the associated
        network address was encapsulated inside of a network-level or
        higher protocol, this will be the address of the next-lower
        protocol with the addressRecognitionCapable bit enabled and
        will be formatted as specified for that protocol."
    ::= { addressMapEntry 4 }

addressMapLastChange OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime at the time this entry was last
        created or the values of the physical address changed.

        This can be used to help detect duplicate address problems, in
        which case this object will be updated frequently."
    ::= { addressMapEntry 5 }

--
-- Network Layer Host Group


--
-- Counts the amount of traffic sent from and to each network address
-- discovered by the probe.
-- Note that while the hlHostControlTable also has objects that
-- control an optional alHostTable, implementation of the alHostTable is
-- not required to fully implement this group.

hlHostControlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HlHostControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of higher layer (i.e. non-MAC) host table control entries.

        These entries will enable the collection of the network and
        application level host tables indexed by network addresses.
        Both the network and application level host tables are
        controlled by this table is so that they will both be created
        and deleted at the same time, further increasing the ease with
        which they can be implemented as a single datastore (note that
        if an implementation stores application layer host records in
        memory, it can derive network layer host records from them).

        Entries in the nlHostTable will be created on behalf of each
        entry in this table. Additionally, if this probe implements
        the alHostTable, entries in the alHostTable will be created on
        behalf of each entry in this table.

        Implementations are encouraged to add an entry per monitored
        interface upon initialization so that a default collection
        of host statistics is available."
    ::= { nlHost 1 }

hlHostControlEntry OBJECT-TYPE
    SYNTAX      HlHostControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the hlHostControlTable.

        An example of the indexing of this entry is
        hlHostControlNlDroppedFrames.1"
    INDEX { hlHostControlIndex }
    ::= { hlHostControlTable 1 }

HlHostControlEntry ::= SEQUENCE {
    hlHostControlIndex               Integer32,
    hlHostControlDataSource          DataSource,


    hlHostControlNlDroppedFrames     Counter32,
    hlHostControlNlInserts           Counter32,
    hlHostControlNlDeletes           Counter32,
    hlHostControlNlMaxDesiredEntries Integer32,
    hlHostControlAlDroppedFrames     Counter32,
    hlHostControlAlInserts           Counter32,
    hlHostControlAlDeletes           Counter32,
    hlHostControlAlMaxDesiredEntries Integer32,
    hlHostControlOwner               OwnerString,
    hlHostControlStatus              RowStatus
}

hlHostControlIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An index that uniquely identifies an entry in the
        hlHostControlTable.  Each such entry defines
        a function that discovers hosts on a particular
        interface and places statistics about them in the
        nlHostTable, and optionally in the alHostTable, on
        behalf of this hlHostControlEntry."
    ::= { hlHostControlEntry 1 }

hlHostControlDataSource OBJECT-TYPE
    SYNTAX      DataSource
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The source of data for the associated host tables.

        The statistics in this group reflect all packets
        on the local network segment attached to the
        identified interface.

        This object may not be modified if the associated
        hlHostControlStatus object is equal to active(1)."
    ::= { hlHostControlEntry 2 }

hlHostControlNlDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
       "The total number of frames which were received by the probe
        and therefore not accounted for in the *StatsDropEvents, but
        for which the probe chose not to count for the associated


        nlHost entries for whatever reason.  Most often, this event
        occurs when the probe is out of some resources and decides to
        shed load from this collection.

        This count does not include packets that were not counted
        because they had MAC-layer errors.

        Note that if the nlHostTable is inactive because no protocols
        are enabled in the protocol directory, this value should be 0.

        Note that, unlike the dropEvents counter, this number is the
        exact number of frames dropped."
    ::= { hlHostControlEntry 3 }

hlHostControlNlInserts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of times an nlHost entry has been
        inserted into the nlHost table.  If an entry is inserted, then
        deleted, and then inserted, this counter will be incremented
        by 2.

        To allow for efficient implementation strategies, agents may
        delay updating this object for short periods of time.  For
        example, an implementation strategy may allow internal
        data structures to differ from those visible via SNMP for
        short periods of time.  This counter may reflect the internal
        data structures for those short periods of time.

        Note that the table size can be determined by subtracting
        hlHostControlNlDeletes from hlHostControlNlInserts."
    ::= { hlHostControlEntry 4 }

hlHostControlNlDeletes OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of times an nlHost entry has been
        deleted from the nlHost table (for any reason).  If an entry
        is deleted, then inserted, and then deleted, this counter will
        be incremented by 2.

        To allow for efficient implementation strategies, agents may
        delay updating this object for short periods of time.  For
        example, an implementation strategy may allow internal


        data structures to differ from those visible via SNMP for
        short periods of time.  This counter may reflect the internal
        data structures for those short periods of time.

        Note that the table size can be determined by subtracting
        hlHostControlNlDeletes from hlHostControlNlInserts."
    ::= { hlHostControlEntry 5 }

hlHostControlNlMaxDesiredEntries OBJECT-TYPE
    SYNTAX      Integer32 (-1..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The maximum number of entries that are desired in the
        nlHostTable on behalf of this control entry. The probe will
        not create more than this number of associated entries in the
        table, but may choose to create fewer entries in this table
        for any reason including the lack of resources.

        If this object is set to a value less than the current number
        of entries, enough entries are chosen in an
        implementation-dependent manner and deleted so that the number
        of entries in the table equals the value of this object.

        If this value is set to -1, the probe may create any number
        of entries in this table.  If the associated
        hlHostControlStatus object is equal to `active', this
        object may not be modified.

        This object may be used to control how resources are allocated
        on the probe for the various RMON functions."
    ::= { hlHostControlEntry 6 }

hlHostControlAlDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
       "The total number of frames which were received by the probe
        and therefore not accounted for in the *StatsDropEvents, but
        for which the probe chose not to count for the associated
        alHost entries for whatever reason.  Most often, this event
        occurs when the probe is out of some resources and decides to
        shed load from this collection.

        This count does not include packets that were not counted
        because they had MAC-layer errors.


        Note that if the alHostTable is not implemented or is inactive
        because no protocols are enabled in the protocol directory,
        this value should be 0.

        Note that, unlike the dropEvents counter, this number is the
        exact number of frames dropped."
    ::= { hlHostControlEntry 7 }

hlHostControlAlInserts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of times an alHost entry has been
        inserted into the alHost table.  If an entry is inserted, then
        deleted, and then inserted, this counter will be incremented
        by 2.

        To allow for efficient implementation strategies, agents may
        delay updating this object for short periods of time.  For
        example, an implementation strategy may allow internal
        data structures to differ from those visible via SNMP for
        short periods of time.  This counter may reflect the internal
        data structures for those short periods of time.

        Note that the table size can be determined by subtracting
        hlHostControlAlDeletes from hlHostControlAlInserts."
    ::= { hlHostControlEntry 8 }

hlHostControlAlDeletes OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of times an alHost entry has been
        deleted from the alHost table (for any reason).  If an entry
        is deleted, then inserted, and then deleted, this counter will
        be incremented by 2.

        To allow for efficient implementation strategies, agents may
        delay updating this object for short periods of time.  For
        example, an implementation strategy may allow internal
        data structures to differ from those visible via SNMP for
        short periods of time.  This counter may reflect the internal
        data structures for those short periods of time.

        Note that the table size can be determined by subtracting
        hlHostControlAlDeletes from hlHostControlAlInserts."


    ::= { hlHostControlEntry 9 }

hlHostControlAlMaxDesiredEntries OBJECT-TYPE
    SYNTAX      Integer32 (-1..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The maximum number of entries that are desired in the alHost
        table on behalf of this control entry. The probe will not
        create more than this number of associated entries in the
        table, but may choose to create fewer entries in this table
        for any reason including the lack of resources.

        If this object is set to a value less than the current number
        of entries, enough entries are chosen in an
        implementation-dependent manner and deleted so that the number
        of entries in the table equals the value of this object.

        If this value is set to -1, the probe may create any number
        of entries in this table.  If the associated
        hlHostControlStatus object is equal to `active', this
        object may not be modified.

        This object may be used to control how resources are allocated
        on the probe for the various RMON functions."
    ::= { hlHostControlEntry 10 }

hlHostControlOwner OBJECT-TYPE
    SYNTAX      OwnerString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The entity that configured this entry and is
        therefore using the resources assigned to it."
    ::= { hlHostControlEntry 11 }

hlHostControlStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The status of this hlHostControlEntry.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value.

        If this object is not equal to active(1), all associated
        entries in the nlHostTable and alHostTable shall be deleted."


    ::= { hlHostControlEntry 12 }

nlHostTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF NlHostEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A collection of statistics for a particular network layer
        address that has been discovered on an interface of this
        device.

        The probe will populate this table for all network layer
        protocols in the protocol directory table whose value of
        protocolDirHostConfig is equal to supportedOn(3), and
        will delete any entries whose protocolDirEntry is deleted or
        has a protocolDirHostConfig value of supportedOff(2).

        The probe will add to this table all addresses seen
        as the source or destination address in all packets with no
        MAC errors, and will increment octet and packet counts in the
        table for all packets with no MAC errors."
::= { nlHost 2 }

nlHostEntry OBJECT-TYPE
    SYNTAX      NlHostEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the nlHostTable.

        The hlHostControlIndex value in the index identifies the
        hlHostControlEntry on whose behalf this entry was created.
        The protocolDirLocalIndex value in the index identifies the
        network layer protocol of the nlHostAddress.

        An example of the indexing of this entry is
        nlHostOutPkts.1.783495.18.4.128.2.6.6."
    INDEX { hlHostControlIndex, nlHostTimeMark,
            protocolDirLocalIndex, nlHostAddress }
    ::= { nlHostTable 1 }

NlHostEntry ::= SEQUENCE {
    nlHostTimeMark              TimeFilter,
    nlHostAddress               OCTET STRING,
    nlHostInPkts                ZeroBasedCounter32,
    nlHostOutPkts               ZeroBasedCounter32,
    nlHostInOctets              ZeroBasedCounter32,
    nlHostOutOctets             ZeroBasedCounter32,


    nlHostOutMacNonUnicastPkts  ZeroBasedCounter32,
    nlHostCreateTime            LastCreateTime
}

nlHostTimeMark OBJECT-TYPE
    SYNTAX      TimeFilter
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A TimeFilter for this entry.  See the TimeFilter textual
        convention to see how this works."
    ::= { nlHostEntry 1 }

nlHostAddress OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The network address for this nlHostEntry.

        This is represented as an octet string with
        specific semantics and length as identified
        by the protocolDirLocalIndex component of the index.

        For example, if the protocolDirLocalIndex indicates an
        encapsulation of ip, this object is encoded as a length
        octet of 4, followed by the 4 octets of the ip address,
        in network byte order."
    ::= { nlHostEntry 2 }

nlHostInPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets without errors transmitted to
        this address since it was added to the nlHostTable.  Note that
        this is the number of link-layer packets, so if a single
        network-layer packet is fragmented into several link-layer
        frames, this counter is incremented several times."
    ::= { nlHostEntry 3 }

nlHostOutPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets without errors transmitted by


        this address since it was added to the nlHostTable.  Note that
        this is the number of link-layer packets, so if a single
        network-layer packet is fragmented into several link-layer
        frames, this counter is incremented several times."
    ::= { nlHostEntry 4 }

nlHostInOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of octets transmitted to this address
        since it was added to the nlHostTable (excluding
        framing bits but including FCS octets), excluding
        those octets in packets that contained errors.

        Note this doesn't count just those octets in the particular
        protocol frames, but includes the entire packet that contained
        the protocol."
    ::= { nlHostEntry 5 }

nlHostOutOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of octets transmitted by this address
        since it was added to the nlHostTable (excluding
        framing bits but including FCS octets), excluding
        those octets in packets that contained errors.

        Note this doesn't count just those octets in the particular
        protocol frames, but includes the entire packet that contained
        the protocol."
    ::= { nlHostEntry 6 }

nlHostOutMacNonUnicastPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets without errors transmitted by this
        address that were directed to any MAC broadcast addresses
        or to any MAC multicast addresses since this host was
        added to the nlHostTable. Note that this is the number of
        link-layer packets, so if a single network-layer packet is
        fragmented into several link-layer frames, this counter is
        incremented several times."


    ::= { nlHostEntry 7 }

nlHostCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this entry was last activated.
        This can be used by the management station to ensure that the
        entry has not been deleted and recreated between polls."
    ::= { nlHostEntry 8 }

--
-- Network Layer Matrix Group
--
-- Counts the amount of traffic sent between each pair of network
-- addresses discovered by the probe.
-- Note that while the hlMatrixControlTable also has objects that
-- control optional alMatrixTables, implementation of the
-- alMatrixTables is not required to fully implement this group.

hlMatrixControlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HlMatrixControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of higher layer (i.e. non-MAC) matrix control entries.

        These entries will enable the collection of the network and
        application level matrix tables containing conversation
        statistics indexed by pairs of network addresses.
        Both the network and application level matrix tables are
        controlled by this table is so that they will both be created
        and deleted at the same time, further increasing the ease with
        which they can be implemented as a single datastore (note that
        if an implementation stores application layer matrix records
        in memory, it can derive network layer matrix records from
        them).

        Entries in the nlMatrixSDTable and nlMatrixDSTable will be
        created on behalf of each entry in this table.  Additionally,
        if this probe implements the alMatrix tables, entries in the
        alMatrix tables will be created on behalf of each entry in
        this table."
    ::= { nlMatrix 1 }

hlMatrixControlEntry OBJECT-TYPE
    SYNTAX      HlMatrixControlEntry


    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the hlMatrixControlTable.

        An example of indexing of this entry is
        hlMatrixControlNlDroppedFrames.1"
    INDEX { hlMatrixControlIndex }
    ::= { hlMatrixControlTable 1 }

HlMatrixControlEntry ::= SEQUENCE {
    hlMatrixControlIndex                  Integer32,
    hlMatrixControlDataSource             DataSource,
    hlMatrixControlNlDroppedFrames        Counter32,
    hlMatrixControlNlInserts              Counter32,
    hlMatrixControlNlDeletes              Counter32,
    hlMatrixControlNlMaxDesiredEntries    Integer32,
    hlMatrixControlAlDroppedFrames        Counter32,
    hlMatrixControlAlInserts              Counter32,
    hlMatrixControlAlDeletes              Counter32,
    hlMatrixControlAlMaxDesiredEntries    Integer32,
    hlMatrixControlOwner                  OwnerString,
    hlMatrixControlStatus                 RowStatus
}

hlMatrixControlIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An index that uniquely identifies an entry in the
        hlMatrixControlTable.  Each such entry defines
        a function that discovers conversations on a particular
        interface and places statistics about them in the
        nlMatrixSDTable and the nlMatrixDSTable, and optionally the
        alMatrixSDTable and alMatrixDSTable, on behalf of this
        hlMatrixControlEntry."
    ::= { hlMatrixControlEntry 1 }

hlMatrixControlDataSource OBJECT-TYPE
    SYNTAX      DataSource
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The source of the data for the associated matrix tables.

        The statistics in this group reflect all packets
        on the local network segment attached to the


        identified interface.

        This object may not be modified if the associated
        hlMatrixControlStatus object is equal to active(1)."
    ::= { hlMatrixControlEntry 2 }

hlMatrixControlNlDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
       "The total number of frames which were received by the probe
        and therefore not accounted for in the *StatsDropEvents, but
        for which the probe chose not to count for this entry for
        whatever reason.  Most often, this event occurs when the probe
        is out of some resources and decides to shed load from this
        collection.

        This count does not include packets that were not counted
        because they had MAC-layer errors.

        Note that if the nlMatrixTables are inactive because no
        protocols are enabled in the protocol directory, this value
        should be 0.

        Note that, unlike the dropEvents counter, this number is the
        exact number of frames dropped."
    ::= { hlMatrixControlEntry 3 }

hlMatrixControlNlInserts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of times an nlMatrix entry has been
        inserted into the nlMatrix tables.  If an entry is inserted,
        then deleted, and then inserted, this counter will be
        incremented by 2.  The addition of a conversation into both
        the nlMatrixSDTable and nlMatrixDSTable shall be counted as
        two insertions (even though every addition into one table must
        be accompanied by an insertion into the other).

        To allow for efficient implementation strategies, agents may
        delay updating this object for short periods of time.  For
        example, an implementation strategy may allow internal
        data structures to differ from those visible via SNMP for
        short periods of time.  This counter may reflect the internal
        data structures for those short periods of time.


        Note that the sum of then nlMatrixSDTable and nlMatrixDSTable
        sizes can be determined by subtracting
        hlMatrixControlNlDeletes from hlMatrixControlNlInserts."
    ::= { hlMatrixControlEntry 4 }

hlMatrixControlNlDeletes OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of times an nlMatrix entry has been
        deleted from the nlMatrix tables (for any reason).  If an
        entry is deleted, then inserted, and then deleted, this
        counter will be incremented by 2.  The deletion of a
        conversation from both the nlMatrixSDTable and nlMatrixDSTable
        shall be counted as two deletions (even though every deletion
        from one table must be accompanied by a deletion from the
        other).

        To allow for efficient implementation strategies, agents may
        delay updating this object for short periods of time.  For
        example, an implementation strategy may allow internal
        data structures to differ from those visible via SNMP for
        short periods of time.  This counter may reflect the internal
        data structures for those short periods of time.

        Note that the table size can be determined by subtracting
        hlMatrixControlNlDeletes from hlMatrixControlNlInserts."
    ::= { hlMatrixControlEntry 5 }

hlMatrixControlNlMaxDesiredEntries OBJECT-TYPE
    SYNTAX      Integer32 (-1..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The maximum number of entries that are desired in the
        nlMatrix tables on behalf of this control entry. The probe
        will not create more than this number of associated entries in
        the table, but may choose to create fewer entries in this
        table for any reason including the lack of resources.

        If this object is set to a value less than the current number
        of entries, enough entries are chosen in an
        implementation-dependent manner and deleted so that the number
        of entries in the table equals the value of this object.

        If this value is set to -1, the probe may create any number
        of entries in this table.  If the associated


        hlMatrixControlStatus object is equal to `active', this
        object may not be modified.

        This object may be used to control how resources are allocated
        on the probe for the various RMON functions."
    ::= { hlMatrixControlEntry 6 }

hlMatrixControlAlDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
       "The total number of frames which were received by the probe
        and therefore not accounted for in the *StatsDropEvents, but
        for which the probe chose not to count for this entry for
        whatever reason.  Most often, this event occurs when the probe
        is out of some resources and decides to shed load from this
        collection.

        This count does not include packets that were not counted
        because they had MAC-layer errors.

        Note that if the alMatrixTables are not implemented or are
        inactive because no protocols are enabled in the protocol
        directory, this value should be 0.

        Note that, unlike the dropEvents counter, this number is the
        exact number of frames dropped."
    ::= { hlMatrixControlEntry 7 }

hlMatrixControlAlInserts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of times an alMatrix entry has been
        inserted into the alMatrix tables.  If an entry is inserted,
        then deleted, and then inserted, this counter will be
        incremented by 2.  The addition of a conversation into both
        the alMatrixSDTable and alMatrixDSTable shall be counted as
        two insertions (even though every addition into one table must
        be accompanied by an insertion into the other).

        To allow for efficient implementation strategies, agents may
        delay updating this object for short periods of time.  For
        example, an implementation strategy may allow internal
        data structures to differ from those visible via SNMP for
        short periods of time.  This counter may reflect the internal


        data structures for those short periods of time.

        Note that the table size can be determined by subtracting
        hlMatrixControlAlDeletes from hlMatrixControlAlInserts."
    ::= { hlMatrixControlEntry 8 }

hlMatrixControlAlDeletes OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of times an alMatrix entry has been
        deleted from the alMatrix tables.  If an entry is deleted,
        then inserted, and then deleted, this counter will be
        incremented by 2.  The deletion of a conversation from both
        the alMatrixSDTable and alMatrixDSTable shall be counted as
        two deletions (even though every deletion from one table must
        be accompanied by a deletion from the other).

        To allow for efficient implementation strategies, agents may
        delay updating this object for short periods of time.  For
        example, an implementation strategy may allow internal
        data structures to differ from those visible via SNMP for
        short periods of time.  This counter may reflect the internal
        data structures for those short periods of time.

        Note that the table size can be determined by subtracting
        hlMatrixControlAlDeletes from hlMatrixControlAlInserts."
    ::= { hlMatrixControlEntry 9 }

hlMatrixControlAlMaxDesiredEntries OBJECT-TYPE
    SYNTAX      Integer32 (-1..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The maximum number of entries that are desired in the
        alMatrix tables on behalf of this control entry. The probe
        will not create more than this number of associated entries in
        the table, but may choose to create fewer entries in this
        table for any reason including the lack of resources.

        If this object is set to a value less than the current number
        of entries, enough entries are chosen in an
        implementation-dependent manner and deleted so that the number
        of entries in the table equals the value of this object.

        If this value is set to -1, the probe may create any number
        of entries in this table.  If the associated


        hlMatrixControlStatus object is equal to `active', this
        object may not be modified.

        This object may be used to control how resources are allocated
        on the probe for the various RMON functions."
    ::= { hlMatrixControlEntry 10 }

hlMatrixControlOwner OBJECT-TYPE
    SYNTAX      OwnerString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The entity that configured this entry and is
        therefore using the resources assigned to it."
    ::= { hlMatrixControlEntry 11 }

hlMatrixControlStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The status of this hlMatrixControlEntry.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value.

        If this object is not equal to active(1), all
        associated entries in the nlMatrixSDTable,
        nlMatrixDSTable, alMatrixSDTable, and the alMatrixDSTable
        shall be deleted by the agent."
    ::= { hlMatrixControlEntry 12 }

nlMatrixSDTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF NlMatrixSDEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of traffic matrix entries which collect statistics for
        conversations between two network-level addresses.  This table
        is indexed first by the source address and then by the
        destination address to make it convenient to collect all
        conversations from a particular address.

        The probe will populate this table for all network layer
        protocols in the protocol directory table whose value of
        protocolDirMatrixConfig is equal to supportedOn(3), and
        will delete any entries whose protocolDirEntry is deleted or
        has a protocolDirMatrixConfig value of supportedOff(2).


        The probe will add to this table all pairs of addresses
        seen in all packets with no MAC errors, and will increment
        octet and packet counts in the table for all packets with no
        MAC errors.

        Further, this table will only contain entries that have a
        corresponding entry in the nlMatrixDSTable with the same
        source address and destination address."
    ::= { nlMatrix 2 }

nlMatrixSDEntry OBJECT-TYPE
    SYNTAX      NlMatrixSDEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the nlMatrixSDTable.

        The hlMatrixControlIndex value in the index identifies the
        hlMatrixControlEntry on whose behalf this entry was created.
        The protocolDirLocalIndex value in the index identifies the
        network layer protocol of the nlMatrixSDSourceAddress and
        nlMatrixSDDestAddress.

        An example of the indexing of this table is
        nlMatrixSDPkts.1.783495.18.4.128.2.6.6.4.128.2.6.7"
    INDEX { hlMatrixControlIndex, nlMatrixSDTimeMark,
            protocolDirLocalIndex,
            nlMatrixSDSourceAddress, nlMatrixSDDestAddress }
    ::= { nlMatrixSDTable 1 }

NlMatrixSDEntry ::= SEQUENCE {
    nlMatrixSDTimeMark              TimeFilter,
    nlMatrixSDSourceAddress         OCTET STRING,
    nlMatrixSDDestAddress           OCTET STRING,
    nlMatrixSDPkts                  ZeroBasedCounter32,
    nlMatrixSDOctets                ZeroBasedCounter32,
    nlMatrixSDCreateTime            LastCreateTime
}

nlMatrixSDTimeMark OBJECT-TYPE
    SYNTAX      TimeFilter
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A TimeFilter for this entry.  See the TimeFilter textual
        convention to see how this works."
    ::= { nlMatrixSDEntry 1 }


nlMatrixSDSourceAddress OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The network source address for this nlMatrixSDEntry.

        This is represented as an octet string with
        specific semantics and length as identified
        by the protocolDirLocalIndex component of the index.

        For example, if the protocolDirLocalIndex indicates an
        encapsulation of ip, this object is encoded as a length
        octet of 4, followed by the 4 octets of the ip address,
        in network byte order."
    ::= { nlMatrixSDEntry 2 }

nlMatrixSDDestAddress OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The network destination address for this
        nlMatrixSDEntry.

        This is represented as an octet string with
        specific semantics and length as identified
        by the protocolDirLocalIndex component of the index.

        For example, if the protocolDirLocalIndex indicates an
        encapsulation of ip, this object is encoded as a length
        octet of 4, followed by the 4 octets of the ip address,
        in network byte order."
    ::= { nlMatrixSDEntry 3 }

nlMatrixSDPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets without errors transmitted from the
        source address to the destination address since this entry was
        added to the nlMatrixSDTable.  Note that this is the number of
        link-layer packets, so if a single network-layer packet is
        fragmented into several link-layer frames, this counter is
        incremented several times."
    ::= { nlMatrixSDEntry 4 }


nlMatrixSDOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of octets transmitted from the source address to
        the destination address since this entry was added to the
        nlMatrixSDTable (excluding framing bits but
        including FCS octets), excluding those octets in packets that
        contained errors.

        Note this doesn't count just those octets in the particular
        protocol frames, but includes the entire packet that contained
        the protocol."
    ::= { nlMatrixSDEntry 5 }

nlMatrixSDCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this entry was last activated.
        This can be used by the management station to ensure that the
        entry has not been deleted and recreated between polls."
    ::= { nlMatrixSDEntry 6 }

-- Traffic matrix tables from destination to source

nlMatrixDSTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF NlMatrixDSEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of traffic matrix entries which collect statistics for
        conversations between two network-level addresses.  This table
        is indexed first by the destination address and then by the
        source address to make it convenient to collect all
        conversations to a particular address.

        The probe will populate this table for all network layer
        protocols in the protocol directory table whose value of
        protocolDirMatrixConfig is equal to supportedOn(3), and
        will delete any entries whose protocolDirEntry is deleted or
        has a protocolDirMatrixConfig value of supportedOff(2).

        The probe will add to this table all pairs of addresses
        seen in all packets with no MAC errors, and will increment


        octet and packet counts in the table for all packets with no
        MAC errors.

        Further, this table will only contain entries that have a
        corresponding entry in the nlMatrixSDTable with the same
        source address and destination address."
    ::= { nlMatrix 3 }

nlMatrixDSEntry OBJECT-TYPE
    SYNTAX      NlMatrixDSEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the nlMatrixDSTable.

        The hlMatrixControlIndex value in the index identifies the
        hlMatrixControlEntry on whose behalf this entry was created.
        The protocolDirLocalIndex value in the index identifies the
        network layer protocol of the nlMatrixDSSourceAddress and
        nlMatrixDSDestAddress.

        An example of the indexing of this table is
        nlMatrixDSPkts.1.783495.18.4.128.2.6.7.4.128.2.6.6"
    INDEX { hlMatrixControlIndex, nlMatrixDSTimeMark,
            protocolDirLocalIndex,
            nlMatrixDSDestAddress, nlMatrixDSSourceAddress }
    ::= { nlMatrixDSTable 1 }

NlMatrixDSEntry ::= SEQUENCE {
    nlMatrixDSTimeMark                 TimeFilter,
    nlMatrixDSSourceAddress            OCTET STRING,
    nlMatrixDSDestAddress              OCTET STRING,
    nlMatrixDSPkts                     ZeroBasedCounter32,
    nlMatrixDSOctets                   ZeroBasedCounter32,
    nlMatrixDSCreateTime               LastCreateTime
}

nlMatrixDSTimeMark OBJECT-TYPE
    SYNTAX      TimeFilter
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A TimeFilter for this entry.  See the TimeFilter textual
        convention to see how this works."
    ::= { nlMatrixDSEntry 1 }

nlMatrixDSSourceAddress OBJECT-TYPE
    SYNTAX      OCTET STRING


    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The network source address for this nlMatrixDSEntry.

        This is represented as an octet string with
        specific semantics and length as identified
        by the protocolDirLocalIndex component of the index.

        For example, if the protocolDirLocalIndex indicates an
        encapsulation of ip, this object is encoded as a length
        octet of 4, followed by the 4 octets of the ip address,
        in network byte order."
    ::= { nlMatrixDSEntry 2 }

nlMatrixDSDestAddress OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The network destination address for this
        nlMatrixDSEntry.

        This is represented as an octet string with
        specific semantics and length as identified
        by the protocolDirLocalIndex component of the index.

        For example, if the protocolDirLocalIndex indicates an
        encapsulation of ip, this object is encoded as a length
        octet of 4, followed by the 4 octets of the ip address,
        in network byte order."
    ::= { nlMatrixDSEntry 3 }

nlMatrixDSPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets without errors transmitted from the
        source address to the destination address since this entry was
        added to the nlMatrixDSTable.  Note that this is the number of
        link-layer packets, so if a single network-layer packet is
        fragmented into several link-layer frames, this counter is
        incremented several times."
    ::= { nlMatrixDSEntry 4 }

nlMatrixDSOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32


    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of octets transmitted from the source address
        to the destination address since this entry was added to the
        nlMatrixDSTable (excluding framing bits but
        including FCS octets), excluding those octets in packets that
        contained errors.

        Note this doesn't count just those octets in the particular
        protocol frames, but includes the entire packet that contained
        the protocol."
    ::= { nlMatrixDSEntry 5 }

nlMatrixDSCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this entry was last activated.
        This can be used by the management station to ensure that the
        entry has not been deleted and recreated between polls."
    ::= { nlMatrixDSEntry 6 }

nlMatrixTopNControlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF NlMatrixTopNControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A set of parameters that control the creation of a
        report of the top N matrix entries according to
        a selected metric."
    ::= { nlMatrix 4 }

nlMatrixTopNControlEntry OBJECT-TYPE
    SYNTAX      NlMatrixTopNControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the nlMatrixTopNControlTable.

        An example of the indexing of this table is
        nlMatrixTopNControlDuration.3"
    INDEX { nlMatrixTopNControlIndex }
    ::= { nlMatrixTopNControlTable 1 }

NlMatrixTopNControlEntry ::= SEQUENCE {
    nlMatrixTopNControlIndex            Integer32,


    nlMatrixTopNControlMatrixIndex      Integer32,
    nlMatrixTopNControlRateBase         INTEGER,
    nlMatrixTopNControlTimeRemaining    Integer32,
    nlMatrixTopNControlGeneratedReports Counter32,
    nlMatrixTopNControlDuration         Integer32,
    nlMatrixTopNControlRequestedSize    Integer32,
    nlMatrixTopNControlGrantedSize      Integer32,
    nlMatrixTopNControlStartTime        TimeStamp,
    nlMatrixTopNControlOwner            OwnerString,
    nlMatrixTopNControlStatus           RowStatus
}

nlMatrixTopNControlIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An index that uniquely identifies an entry
        in the nlMatrixTopNControlTable.  Each such
        entry defines one top N report prepared for
        one interface."
    ::= { nlMatrixTopNControlEntry 1 }

nlMatrixTopNControlMatrixIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The nlMatrix[SD/DS] table for which a top N report will be
        prepared on behalf of this entry.  The nlMatrix[SD/DS] table
        is identified by the value of the hlMatrixControlIndex
        for that table - that value is used here to identify the
        particular table.

        This object may not be modified if the associated
        nlMatrixTopNControlStatus object is equal to active(1)."
    ::= { nlMatrixTopNControlEntry 2 }

nlMatrixTopNControlRateBase OBJECT-TYPE
    SYNTAX      INTEGER {
                    nlMatrixTopNPkts(1),
                    nlMatrixTopNOctets(2)
                }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The variable for each nlMatrix[SD/DS] entry that the
        nlMatrixTopNEntries are sorted by.


        This object may not be modified if the associated
        nlMatrixTopNControlStatus object is equal to active(1)."
    ::= { nlMatrixTopNControlEntry 3 }

nlMatrixTopNControlTimeRemaining OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The number of seconds left in the report currently
        being collected.  When this object is modified by
        the management station, a new collection is started,
        possibly aborting a currently running report.  The
        new value is used as the requested duration of this
        report, and is immediately loaded into the associated
        nlMatrixTopNControlDuration object.
        When the report finishes, the probe will automatically
        start another collection with the same initial value
        of nlMatrixTopNControlTimeRemaining.  Thus the management
        station may simply read the resulting reports repeatedly,
        checking the startTime and duration each time to ensure that a
        report was not missed or that the report parameters were not
        changed.

        While the value of this object is non-zero, it decrements
        by one per second until it reaches zero.  At the time
        that this object decrements to zero, the report is made
        accessible in the nlMatrixTopNTable, overwriting any report
        that may be there.

        When this object is modified by the management station, any
        associated entries in the nlMatrixTopNTable shall be deleted.

        (Note that this is a different algorithm than the one used in
        the hostTopNTable)."
    DEFVAL { 1800 }
    ::= { nlMatrixTopNControlEntry 4 }

nlMatrixTopNControlGeneratedReports OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of reports that have been generated by this entry."
    ::= { nlMatrixTopNControlEntry 5 }

nlMatrixTopNControlDuration OBJECT-TYPE
    SYNTAX     Integer32


    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of seconds that this report has collected
        during the last sampling interval.

        When the associated nlMatrixTopNControlTimeRemaining object is
        set, this object shall be set by the probe to the
        same value and shall not be modified until the next
        time the nlMatrixTopNControlTimeRemaining is set.
        This value shall be zero if no reports have been
        requested for this nlMatrixTopNControlEntry."
    ::= { nlMatrixTopNControlEntry 6 }

nlMatrixTopNControlRequestedSize OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The maximum number of matrix entries requested for this report.

        When this object is created or modified, the probe
        should set nlMatrixTopNControlGrantedSize as closely to this
        object as is possible for the particular probe
        implementation and available resources."
    DEFVAL { 150 }
    ::= { nlMatrixTopNControlEntry 7 }

nlMatrixTopNControlGrantedSize OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The maximum number of matrix entries in this report.

        When the associated nlMatrixTopNControlRequestedSize object is
        created or modified, the probe should set this
        object as closely to the requested value as is
        possible for the particular implementation and
        available resources. The probe must not lower this
        value except as a result of a set to the associated
        nlMatrixTopNControlRequestedSize object.

        If the value of nlMatrixTopNControlRateBase is equal to
        nlMatrixTopNPkts, when the next topN report is generated,
        matrix entries with the highest value of nlMatrixTopNPktRate
        shall be placed in this table in decreasing order of this rate
        until there is no more room or until there are no more


        matrix entries.

        If the value of nlMatrixTopNControlRateBase is equal to
        nlMatrixTopNOctets, when the next topN report is generated,
        matrix entries with the highest value of nlMatrixTopNOctetRate
        shall be placed in this table in decreasing order of this rate
        until there is no more room or until there are no more
        matrix entries.

        It is an implementation-specific matter how entries with the
        same value of nlMatrixTopNPktRate or nlMatrixTopNOctetRate are
        sorted.  It is also an implementation-specific matter as to
        whether or not zero-valued entries are available."
    ::= { nlMatrixTopNControlEntry 8 }

nlMatrixTopNControlStartTime OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this top N report was
        last started.  In other words, this is the time that
        the associated nlMatrixTopNControlTimeRemaining object was
        modified to start the requested report or the time
        the report was last automatically (re)started.

        This object may be used by the management station to
        determine if a report was missed or not."
    ::= { nlMatrixTopNControlEntry 9 }

nlMatrixTopNControlOwner OBJECT-TYPE
    SYNTAX     OwnerString
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The entity that configured this entry and is
        therefore using the resources assigned to it."
    ::= { nlMatrixTopNControlEntry 10 }

nlMatrixTopNControlStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The status of this nlMatrixTopNControlEntry.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value.


        If this object is not equal to active(1), all
        associated entries in the nlMatrixTopNTable shall be deleted
        by the agent."
    ::= { nlMatrixTopNControlEntry 11 }

nlMatrixTopNTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF NlMatrixTopNEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A set of statistics for those network layer matrix entries
        that have counted the highest number of octets or packets."
    ::= { nlMatrix 5 }

nlMatrixTopNEntry OBJECT-TYPE
    SYNTAX     NlMatrixTopNEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A conceptual row in the nlMatrixTopNTable.

        The nlMatrixTopNControlIndex value in the index identifies the
        nlMatrixTopNControlEntry on whose behalf this entry was
        created.

        An example of the indexing of this table is
        nlMatrixTopNPktRate.3.10"
    INDEX { nlMatrixTopNControlIndex, nlMatrixTopNIndex }
    ::= { nlMatrixTopNTable 1 }

NlMatrixTopNEntry ::= SEQUENCE {
    nlMatrixTopNIndex                 Integer32,
    nlMatrixTopNProtocolDirLocalIndex Integer32,
    nlMatrixTopNSourceAddress         OCTET STRING,
    nlMatrixTopNDestAddress           OCTET STRING,
    nlMatrixTopNPktRate               Gauge32,
    nlMatrixTopNReversePktRate        Gauge32,
    nlMatrixTopNOctetRate             Gauge32,
    nlMatrixTopNReverseOctetRate      Gauge32
}

nlMatrixTopNIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An index that uniquely identifies an entry in
        the nlMatrixTopNTable among those in the same report.


        This index is between 1 and N, where N is the
        number of entries in this report.

        If the value of nlMatrixTopNControlRateBase is equal to
        nlMatrixTopNPkts, increasing values of nlMatrixTopNIndex shall
        be assigned to entries with decreasing values of
        nlMatrixTopNPktRate until index N is assigned or there are no
        more nlMatrixTopNEntries.

        If the value of nlMatrixTopNControlRateBase is equal to
        nlMatrixTopNOctets, increasing values of nlMatrixTopNIndex
        shall be assigned to entries with decreasing values of
        nlMatrixTopNOctetRate until index N is assigned or there are
        no more nlMatrixTopNEntries."
    ::= { nlMatrixTopNEntry 1 }

nlMatrixTopNProtocolDirLocalIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The protocolDirLocalIndex of the network layer protocol of
        this entry's network address."
    ::= { nlMatrixTopNEntry 2 }

nlMatrixTopNSourceAddress OBJECT-TYPE
    SYNTAX     OCTET STRING
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The network layer address of the source host in this
        conversation.

        This is represented as an octet string with
        specific semantics and length as identified
        by the associated nlMatrixTopNProtocolDirLocalIndex.

        For example, if the protocolDirLocalIndex indicates an
        encapsulation of ip, this object is encoded as a length
        octet of 4, followed by the 4 octets of the ip address,
        in network byte order."
    ::= { nlMatrixTopNEntry 3 }

nlMatrixTopNDestAddress OBJECT-TYPE
    SYNTAX     OCTET STRING
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION


        "The network layer address of the destination host in this
        conversation.

        This is represented as an octet string with
        specific semantics and length as identified
        by the associated nlMatrixTopNProtocolDirLocalIndex.

        For example, if the nlMatrixTopNProtocolDirLocalIndex
        indicates an encapsulation of ip, this object is encoded as a
        length octet of 4, followed by the 4 octets of the ip address,
        in network byte order."
    ::= { nlMatrixTopNEntry 4 }

nlMatrixTopNPktRate OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of packets seen from the source host
        to the destination host during this sampling interval, counted
        using the rules for counting the nlMatrixSDPkts object.
        If the value of nlMatrixTopNControlRateBase is
        nlMatrixTopNPkts, this variable will be used to sort this
        report."
    ::= { nlMatrixTopNEntry 5 }

nlMatrixTopNReversePktRate OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of packets seen from the destination host to the
        source host during this sampling interval, counted
        using the rules for counting the nlMatrixSDPkts object (note
        that the corresponding nlMatrixSDPkts object selected is the
        one whose source address is equal to nlMatrixTopNDestAddress
        and whose destination address is equal to
        nlMatrixTopNSourceAddress.)

        Note that if the value of nlMatrixTopNControlRateBase is equal
        to nlMatrixTopNPkts, the sort of topN entries is based
        entirely on nlMatrixTopNPktRate, and not on the value of this
        object."
    ::= { nlMatrixTopNEntry 6 }

nlMatrixTopNOctetRate OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only


    STATUS     current
    DESCRIPTION
        "The number of octets seen from the source host
        to the destination host during this sampling interval, counted
        using the rules for counting the nlMatrixSDOctets object.  If
        the value of nlMatrixTopNControlRateBase is
        nlMatrixTopNOctets, this variable will be used to sort this
        report."
    ::= { nlMatrixTopNEntry 7 }

nlMatrixTopNReverseOctetRate OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of octets seen from the destination host to the
        source host during this sampling interval, counted
        using the rules for counting the nlMatrixDSOctets object (note
        that the corresponding nlMatrixSDOctets object selected is the
        one whose source address is equal to nlMatrixTopNDestAddress
        and whose destination address is equal to
        nlMatrixTopNSourceAddress.)

        Note that if the value of nlMatrixTopNControlRateBase is equal
        to nlMatrixTopNOctets, the sort of topN entries is based
        entirely on nlMatrixTopNOctetRate, and not on the value of
        this object."
    ::= { nlMatrixTopNEntry 8 }

-- Application Layer Functions
--
-- The application layer host, matrix, and matrixTopN functions report
-- on protocol usage at the network layer or higher.  Note that the
-- use of the term application layer does not imply that only
-- application-layer protocols are counted, rather it means that
-- protocols up to and including the application layer are supported.

--
-- Application Layer Host Group
--
-- Counts the amount of traffic, by protocol, sent from and to each
-- network address discovered by the probe.
-- Implementation of this group requires implementation of the Network
-- Layer Host Group.

alHostTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF AlHostEntry
    MAX-ACCESS  not-accessible


    STATUS      current
    DESCRIPTION
        "A collection of statistics for a particular protocol from a
        particular network address that has been discovered on an
        interface of this device.

        The probe will populate this table for all protocols in the
        protocol directory table whose value of
        protocolDirHostConfig is equal to supportedOn(3), and
        will delete any entries whose protocolDirEntry is deleted or
        has a protocolDirHostConfig value of supportedOff(2).

        The probe will add to this table all addresses
        seen as the source or destination address in all packets with
        no MAC errors, and will increment octet and packet counts in
        the table for all packets with no MAC errors.  Further,
        entries will only be added to this table if their address
        exists in the nlHostTable and will be deleted from this table
        if their address is deleted from the nlHostTable."
    ::= { alHost 1 }

alHostEntry OBJECT-TYPE
    SYNTAX      AlHostEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the alHostTable.

        The hlHostControlIndex value in the index identifies the
        hlHostControlEntry on whose behalf this entry was created.
        The first protocolDirLocalIndex value in the index identifies
        the network layer protocol of the address.
        The nlHostAddress value in the index identifies the network
        layer address of this entry.
        The second protocolDirLocalIndex value in the index identifies
        the protocol that is counted by this entry.

        An example of the indexing in this entry is
        alHostOutPkts.1.783495.18.4.128.2.6.6.34"
    INDEX { hlHostControlIndex, alHostTimeMark,
            protocolDirLocalIndex, nlHostAddress,
            protocolDirLocalIndex }
    ::= { alHostTable 1 }

AlHostEntry ::= SEQUENCE {
    alHostTimeMark                 TimeFilter,
    alHostInPkts                   ZeroBasedCounter32,
    alHostOutPkts                  ZeroBasedCounter32,


    alHostInOctets                 ZeroBasedCounter32,
    alHostOutOctets                ZeroBasedCounter32,
    alHostCreateTime               LastCreateTime
}

alHostTimeMark OBJECT-TYPE
    SYNTAX      TimeFilter
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A TimeFilter for this entry.  See the TimeFilter textual
        convention to see how this works."
    ::= { alHostEntry 1 }

alHostInPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets of this protocol type without errors
        transmitted to this address since it was added to the
        alHostTable.  Note that this is the number of link-layer
        packets, so if a single network-layer packet is fragmented
        into several link-layer frames, this counter is incremented
        several times."
    ::= { alHostEntry 2 }

alHostOutPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets of this protocol type without errors
        transmitted by this address since it was added to the
        alHostTable.  Note that this is the number of link-layer
        packets, so if a single network-layer packet is fragmented
        into several link-layer frames, this counter is incremented
        several times."
     ::= { alHostEntry 3 }

alHostInOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of octets transmitted to this address
        of this protocol type since it was added to the
        alHostTable (excluding framing bits but including


        FCS octets), excluding those octets in packets that
        contained errors.

        Note this doesn't count just those octets in the particular
        protocol frames, but includes the entire packet that contained
        the protocol."
    ::= { alHostEntry 4 }

alHostOutOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of octets transmitted by this address
        of this protocol type since it was added to the
        alHostTable (excluding framing bits but including
        FCS octets), excluding those octets in packets that
        contained errors.

        Note this doesn't count just those octets in the particular
        protocol frames, but includes the entire packet that contained
        the protocol."
    ::= { alHostEntry 5 }

alHostCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this entry was last activated.
        This can be used by the management station to ensure that the
        entry has not been deleted and recreated between polls."
    ::= { alHostEntry 6 }

--
-- Application Layer Matrix Group
--
-- Counts the amount of traffic, by protocol, sent between each pair
-- of network addresses discovered by the probe.
-- Implementation of this group requires implementation of the Network
-- Layer Matrix Group.

alMatrixSDTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF AlMatrixSDEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of application traffic matrix entries which collect


        statistics for conversations of a particular protocol between
        two network-level addresses.  This table is indexed first by
        the source address and then by the destination address to make
        it convenient to collect all statistics from a particular
        address.

        The probe will populate this table for all protocols in the
        protocol directory table whose value of
        protocolDirMatrixConfig is equal to supportedOn(3), and
        will delete any entries whose protocolDirEntry is deleted or
        has a protocolDirMatrixConfig value of supportedOff(2).

        The probe will add to this table all pairs of addresses for
        all protocols seen in all packets with no MAC errors, and will
        increment octet and packet counts in the table for all packets
        with no MAC errors.  Further, entries will only be added to
        this table if their address pair exists in the nlMatrixSDTable
        and will be deleted from this table if the address pair is
        deleted from the nlMatrixSDTable."
    ::= { alMatrix 1 }

alMatrixSDEntry OBJECT-TYPE
    SYNTAX      AlMatrixSDEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the alMatrixSDTable.

        The hlMatrixControlIndex value in the index identifies the
        hlMatrixControlEntry on whose behalf this entry was created.
        The first protocolDirLocalIndex value in the index identifies
        the network layer protocol of the nlMatrixSDSourceAddress and
        nlMatrixSDDestAddress.
        The nlMatrixSDSourceAddress value in the index identifies the
        network layer address of the source host in this conversation.
        The nlMatrixSDDestAddress value in the index identifies the
        network layer address of the destination host in this
        conversation.
        The second protocolDirLocalIndex value in the index identifies
        the protocol that is counted by this entry.

        An example of the indexing of this entry is
        alMatrixSDPkts.1.783495.18.4.128.2.6.6.4.128.2.6.7.34"
    INDEX { hlMatrixControlIndex, alMatrixSDTimeMark,
            protocolDirLocalIndex,
            nlMatrixSDSourceAddress, nlMatrixSDDestAddress,
            protocolDirLocalIndex }
    ::= { alMatrixSDTable 1 }


AlMatrixSDEntry ::= SEQUENCE {
    alMatrixSDTimeMark                 TimeFilter,
    alMatrixSDPkts                     ZeroBasedCounter32,
    alMatrixSDOctets                   ZeroBasedCounter32,
    alMatrixSDCreateTime               LastCreateTime
}

alMatrixSDTimeMark OBJECT-TYPE
    SYNTAX      TimeFilter
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A TimeFilter for this entry.  See the TimeFilter textual
        convention to see how this works."
    ::= { alMatrixSDEntry 1 }

alMatrixSDPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets of this protocol type without errors
        transmitted from the source address to the destination address
        since this entry was added to the alMatrixSDTable.  Note that
        this is the number of link-layer packets, so if a single
        network-layer packet is fragmented into several link-layer
        frames, this counter is incremented several times."
    ::= { alMatrixSDEntry 2 }

alMatrixSDOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of octets in packets of this protocol type
        transmitted from the source address to the destination address
        since this entry was added to the alMatrixSDTable (excluding
        framing bits but including FCS octets), excluding those octets
        in packets that contained errors.

        Note this doesn't count just those octets in the particular
        protocol frames, but includes the entire packet that contained
        the protocol."
    ::= { alMatrixSDEntry 3 }

alMatrixSDCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only


    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this entry was last activated.
        This can be used by the management station to ensure that the
        entry has not been deleted and recreated between polls."
    ::= { alMatrixSDEntry 4 }

-- Traffic matrix tables from destination to source

alMatrixDSTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF AlMatrixDSEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of application traffic matrix entries which collect
        statistics for conversations of a particular protocol between
        two network-level addresses.  This table is indexed first by
        the destination address and then by the source address to make
        it convenient to collect all statistics to a particular
        address.

        The probe will populate this table for all protocols in the
        protocol directory table whose value of
        protocolDirMatrixConfig is equal to supportedOn(3), and
        will delete any entries whose protocolDirEntry is deleted or
        has a protocolDirMatrixConfig value of supportedOff(2).

        The probe will add to this table all pairs of addresses for
        all protocols seen in all packets with no MAC errors, and will
        increment octet and packet counts in the table for all packets
        with no MAC errors.  Further, entries will only be added to
        this table if their address pair exists in the nlMatrixDSTable
        and will be deleted from this table if the address pair is
        deleted from the nlMatrixDSTable."
    ::= { alMatrix 2 }

alMatrixDSEntry OBJECT-TYPE
    SYNTAX      AlMatrixDSEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the alMatrixDSTable.

        The hlMatrixControlIndex value in the index identifies the
        hlMatrixControlEntry on whose behalf this entry was created.
        The first protocolDirLocalIndex value in the index identifies
        the network layer protocol of the alMatrixDSSourceAddress and
        alMatrixDSDestAddress.


        The nlMatrixDSDestAddress value in the index identifies the
        network layer address of the destination host in this
        conversation.
        The nlMatrixDSSourceAddress value in the index identifies the
        network layer address of the source host in this conversation.
        The second protocolDirLocalIndex value in the index identifies
        the protocol that is counted by this entry.

        An example of the indexing of this entry is
        alMatrixDSPkts.1.783495.18.4.128.2.6.7.4.128.2.6.6.34"
    INDEX { hlMatrixControlIndex, alMatrixDSTimeMark,
            protocolDirLocalIndex,
            nlMatrixDSDestAddress, nlMatrixDSSourceAddress,
            protocolDirLocalIndex }
    ::= { alMatrixDSTable 1 }

AlMatrixDSEntry ::= SEQUENCE {
    alMatrixDSTimeMark                 TimeFilter,
    alMatrixDSPkts                     ZeroBasedCounter32,
    alMatrixDSOctets                   ZeroBasedCounter32,
    alMatrixDSCreateTime               LastCreateTime
}

alMatrixDSTimeMark OBJECT-TYPE
    SYNTAX      TimeFilter
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A TimeFilter for this entry.  See the TimeFilter textual
        convention to see how this works."
    ::= { alMatrixDSEntry 1 }

alMatrixDSPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets of this protocol type without errors
        transmitted from the source address to the destination address
        since this entry was added to the alMatrixDSTable.  Note that
        this is the number of link-layer packets, so if a single
        network-layer packet is fragmented into several link-layer
        frames, this counter is incremented several times."
    ::= { alMatrixDSEntry 2 }

alMatrixDSOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only


    STATUS      current
    DESCRIPTION
        "The number of octets in packets of this protocol type
        transmitted from the source address to the destination address
        since this entry was added to the alMatrixDSTable (excluding
        framing bits but including FCS octets), excluding those octets
        in packets that contained errors.

        Note this doesn't count just those octets in the particular
        protocol frames, but includes the entire packet that contained
        the protocol."
    ::= { alMatrixDSEntry 3 }

alMatrixDSCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this entry was last activated.
        This can be used by the management station to ensure that the
        entry has not been deleted and recreated between polls."
    ::= { alMatrixDSEntry 4 }

alMatrixTopNControlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF AlMatrixTopNControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A set of parameters that control the creation of a
        report of the top N matrix entries according to
        a selected metric."
    ::= { alMatrix 3 }

alMatrixTopNControlEntry OBJECT-TYPE
    SYNTAX      AlMatrixTopNControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the alMatrixTopNControlTable.

        An example of the indexing of this table is
        alMatrixTopNControlDuration.3"
    INDEX { alMatrixTopNControlIndex }
    ::= { alMatrixTopNControlTable 1 }

AlMatrixTopNControlEntry ::= SEQUENCE {
    alMatrixTopNControlIndex            Integer32,
    alMatrixTopNControlMatrixIndex      Integer32,


    alMatrixTopNControlRateBase         INTEGER,
    alMatrixTopNControlTimeRemaining    Integer32,
    alMatrixTopNControlGeneratedReports Counter32,
    alMatrixTopNControlDuration         Integer32,
    alMatrixTopNControlRequestedSize    Integer32,
    alMatrixTopNControlGrantedSize      Integer32,
    alMatrixTopNControlStartTime        TimeStamp,
    alMatrixTopNControlOwner            OwnerString,
    alMatrixTopNControlStatus           RowStatus
}

alMatrixTopNControlIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An index that uniquely identifies an entry
        in the alMatrixTopNControlTable.  Each such
        entry defines one top N report prepared for
        one interface."
    ::= { alMatrixTopNControlEntry 1 }

alMatrixTopNControlMatrixIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The alMatrix[SD/DS] table for which a top N report will be
        prepared on behalf of this entry.  The alMatrix[SD/DS] table
        is identified by the value of the hlMatrixControlIndex
        for that table - that value is used here to identify the
        particular table.

        This object may not be modified if the associated
        alMatrixTopNControlStatus object is equal to active(1)."
    ::= { alMatrixTopNControlEntry 2 }

alMatrixTopNControlRateBase OBJECT-TYPE
    SYNTAX     INTEGER {
                  alMatrixTopNTerminalsPkts(1),
                  alMatrixTopNTerminalsOctets(2),
                  alMatrixTopNAllPkts(3),
                  alMatrixTopNAllOctets(4)
               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The variable for each alMatrix[SD/DS] entry that the


        alMatrixTopNEntries are sorted by, as well as the
        selector of the view of the matrix table that will be
        used.

        The values alMatrixTopNTerminalsPkts and
        alMatrixTopNTerminalsOctets cause collection only from
        protocols that have no child protocols that are counted.  The
        values alMatrixTopNAllPkts and alMatrixTopNAllOctets cause
        collection from all alMatrix entries.

        This object may not be modified if the associated
        alMatrixTopNControlStatus object is equal to active(1)."
    ::= { alMatrixTopNControlEntry 3 }

alMatrixTopNControlTimeRemaining OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The number of seconds left in the report currently
        being collected.  When this object is modified by
        the management station, a new collection is started,
        possibly aborting a currently running report.  The
        new value is used as the requested duration of this
        report, and is immediately loaded into the associated
        alMatrixTopNControlDuration object.
        When the report finishes, the probe will automatically
        start another collection with the same initial value
        of alMatrixTopNControlTimeRemaining.  Thus the management
        station may simply read the resulting reports repeatedly,
        checking the startTime and duration each time to ensure that a
        report was not missed or that the report parameters were not
        changed.

        While the value of this object is non-zero, it decrements
        by one per second until it reaches zero.  At the time
        that this object decrements to zero, the report is made
        accessible in the alMatrixTopNTable, overwriting any report
        that may be there.

        When this object is modified by the management station, any
        associated entries in the alMatrixTopNTable shall be deleted.

        (Note that this is a different algorithm than the one used in
        the hostTopNTable)."
    DEFVAL { 1800 }
    ::= { alMatrixTopNControlEntry 4 }


alMatrixTopNControlGeneratedReports OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of reports that have been generated by this entry."
    ::= { alMatrixTopNControlEntry 5 }

alMatrixTopNControlDuration OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of seconds that this report has collected
        during the last sampling interval.

        When the associated alMatrixTopNControlTimeRemaining object
        is set, this object shall be set by the probe to the
        same value and shall not be modified until the next
        time the alMatrixTopNControlTimeRemaining is set.

        This value shall be zero if no reports have been
        requested for this alMatrixTopNControlEntry."
    ::= { alMatrixTopNControlEntry 6 }

alMatrixTopNControlRequestedSize OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The maximum number of matrix entries requested for this report.

        When this object is created or modified, the probe
        should set alMatrixTopNControlGrantedSize as closely to this
        object as is possible for the particular probe
        implementation and available resources."
    DEFVAL { 150 }
    ::= { alMatrixTopNControlEntry 7 }

alMatrixTopNControlGrantedSize OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The maximum number of matrix entries in this report.

        When the associated alMatrixTopNControlRequestedSize object
        is created or modified, the probe should set this


        object as closely to the requested value as is
        possible for the particular implementation and
        available resources. The probe must not lower this
        value except as a result of a set to the associated
        alMatrixTopNControlRequestedSize object.

        If the value of alMatrixTopNControlRateBase is equal to
        alMatrixTopNTerminalsPkts or alMatrixTopNAllPkts, when the
        next topN report is generated, matrix entries with the highest
        value of alMatrixTopNPktRate shall be placed in this table in
        decreasing order of this rate until there is no more room or
        until there are no more matrix entries.

        If the value of alMatrixTopNControlRateBase is equal to
        alMatrixTopNTerminalsOctets or alMatrixTopNAllOctets, when the
        next topN report is generated, matrix entries with the highest
        value of alMatrixTopNOctetRate shall be placed in this table
        in decreasing order of this rate until there is no more room
        or until there are no more matrix entries.

        It is an implementation-specific matter how entries with the
        same value of alMatrixTopNPktRate or alMatrixTopNOctetRate are
        sorted.  It is also an implementation-specific matter as to
        whether or not zero-valued entries are available."
    ::= { alMatrixTopNControlEntry 8 }

alMatrixTopNControlStartTime OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this top N report was
        last started.  In other words, this is the time that
        the associated alMatrixTopNControlTimeRemaining object
        was modified to start the requested report or the time
        the report was last automatically (re)started.

        This object may be used by the management station to
        determine if a report was missed or not."
    ::= { alMatrixTopNControlEntry 9 }

alMatrixTopNControlOwner OBJECT-TYPE
    SYNTAX     OwnerString
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The entity that configured this entry and is
        therefore using the resources assigned to it."


    ::= { alMatrixTopNControlEntry 10 }

alMatrixTopNControlStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The status of this alMatrixTopNControlEntry.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value.

        If this object is not equal to active(1), all
        associated entries in the alMatrixTopNTable shall be
        deleted by the agent."
    ::= { alMatrixTopNControlEntry 11 }

alMatrixTopNTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF AlMatrixTopNEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A set of statistics for those application layer matrix
        entries that have counted the highest number of octets or
        packets."
    ::= { alMatrix 4 }

alMatrixTopNEntry OBJECT-TYPE
    SYNTAX     AlMatrixTopNEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A conceptual row in the alMatrixTopNTable.

        The alMatrixTopNControlIndex value in the index identifies
        the alMatrixTopNControlEntry on whose behalf this entry was
        created.

        An example of the indexing of this table is
        alMatrixTopNPktRate.3.10"
    INDEX { alMatrixTopNControlIndex, alMatrixTopNIndex }
    ::= { alMatrixTopNTable 1 }

AlMatrixTopNEntry ::= SEQUENCE {
    alMatrixTopNIndex                      Integer32,
    alMatrixTopNProtocolDirLocalIndex      Integer32,
    alMatrixTopNSourceAddress              OCTET STRING,
    alMatrixTopNDestAddress                OCTET STRING,


    alMatrixTopNAppProtocolDirLocalIndex   Integer32,
    alMatrixTopNPktRate                    Gauge32,
    alMatrixTopNReversePktRate             Gauge32,
    alMatrixTopNOctetRate                  Gauge32,
    alMatrixTopNReverseOctetRate           Gauge32
  }

alMatrixTopNIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An index that uniquely identifies an entry in
        the alMatrixTopNTable among those in the same report.
        This index is between 1 and N, where N is the
        number of entries in this report.

        If the value of alMatrixTopNControlRateBase is equal to
        alMatrixTopNTerminalsPkts or alMatrixTopNAllPkts, increasing
        values of alMatrixTopNIndex shall be assigned to entries with
        decreasing values of alMatrixTopNPktRate until index N is
        assigned or there are no more alMatrixTopNEntries.

        If the value of alMatrixTopNControlRateBase is equal to
        alMatrixTopNTerminalsOctets or alMatrixTopNAllOctets,
        increasing values of alMatrixTopNIndex shall be assigned to
        entries with decreasing values of alMatrixTopNOctetRate until
        index N is assigned or there are no more alMatrixTopNEntries."
    ::= { alMatrixTopNEntry 1 }

alMatrixTopNProtocolDirLocalIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The protocolDirLocalIndex of the network layer protocol of
        this entry's network address."
    ::= { alMatrixTopNEntry 2 }

alMatrixTopNSourceAddress OBJECT-TYPE
    SYNTAX     OCTET STRING
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The network layer address of the source host in this
        conversation.
        This is represented as an octet string with
        specific semantics and length as identified


        by the associated alMatrixTopNProtocolDirLocalIndex.

        For example, if the alMatrixTopNProtocolDirLocalIndex
        indicates an encapsulation of ip, this object is encoded as a
        length octet of 4, followed by the 4 octets of the ip address,
        in network byte order."
    ::= { alMatrixTopNEntry 3 }

alMatrixTopNDestAddress OBJECT-TYPE
    SYNTAX     OCTET STRING
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The network layer address of the destination host in this
        conversation.

        This is represented as an octet string with
        specific semantics and length as identified
        by the associated alMatrixTopNProtocolDirLocalIndex.

        For example, if the alMatrixTopNProtocolDirLocalIndex
        indicates an encapsulation of ip, this object is encoded as a
        length octet of 4, followed by the 4 octets of the ip address,
        in network byte order."
    ::= { alMatrixTopNEntry 4 }

alMatrixTopNAppProtocolDirLocalIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The type of the protocol counted by this matrix entry."
    ::= { alMatrixTopNEntry 5 }

alMatrixTopNPktRate OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of packets seen of this protocol from the source
        host to the destination host during this sampling interval,
        counted using the rules for counting the alMatrixSDPkts
        object.

        If the value of alMatrixTopNControlRateBase is
        alMatrixTopNTerminalsPkts or alMatrixTopNAllPkts, this
        variable will be used to sort this report."
    ::= { alMatrixTopNEntry 6 }


alMatrixTopNReversePktRate OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of packets seen of this protocol from the
        destination host to the source host during this sampling
        interval, counted using the rules for counting the
        alMatrixDSPkts object  (note that the corresponding
        alMatrixSDPkts object selected is the one whose source address
        is equal to alMatrixTopNDestAddress and whose destination
        address is equal to alMatrixTopNSourceAddress.)

        Note that if the value of alMatrixTopNControlRateBase is equal
        to alMatrixTopNTerminalsPkts or alMatrixTopNAllPkts, the sort
        of topN entries is based entirely on alMatrixTopNPktRate, and
        not on the value of this object."
    ::= { alMatrixTopNEntry 7 }

alMatrixTopNOctetRate OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of octets seen of this protocol from the source
        host to the destination host during this sampling interval,
        counted using the rules for counting the alMatrixSDOctets
        object.

        If the value of alMatrixTopNControlRateBase is
        alMatrixTopNTerminalsOctets or alMatrixTopNAllOctets, this
        variable will be used to sort this report."
    ::= { alMatrixTopNEntry 8 }

alMatrixTopNReverseOctetRate OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of octets seen of this protocol from the
        destination host to the source host during this sampling
        interval, counted using the rules for counting the
        alMatrixDSOctets object  (note that the corresponding
        alMatrixSDOctets object selected is the one whose source
        address is equal to alMatrixTopNDestAddress and whose
        destination address is equal to alMatrixTopNSourceAddress.)

        Note that if the value of alMatrixTopNControlRateBase is equal


        to alMatrixTopNTerminalsOctets or alMatrixTopNAllOctets, the
        sort of topN entries is based entirely on
        alMatrixTopNOctetRate, and not on the value of this object."
    ::= { alMatrixTopNEntry 9 }

--
-- User History Collection Group (usrHistory)
--
-- The usrHistory group combines mechanisms seen in the alarm and
-- history groups to provide user-specified history collection,
-- utilizing two additional control tables and one additional data
-- table. This function has traditionally been done by NMS
-- applications, via periodic polling.  The usrHistory group allows
-- this task to be offloaded to an RMON probe.
--
-- Data (an ASN.1 INTEGER based object) is collected in the same
-- manner as any history data table (e.g. etherHistoryTable) except
-- that the user specifies the MIB instances to be collected. Objects
-- are collected in bucket-groups, with the intent that all MIB
-- instances in the same bucket-group are collected as atomically as
-- possible by the RMON probe.
--
-- The usrHistoryControlTable is a one-dimensional read-create table.
-- Each row configures a collection of user history buckets, much
-- the same as a historyControlEntry, except that the creation of a
-- row in this table will cause one or more associated instances in
-- the usrHistoryObjectTable to be created. The user specifies the
-- number of bucket elements (rows in the usrHistoryObjectTable)
-- requested, as well as the number of buckets requested.
--
-- The usrHistoryObjectTable is a 2-d read-write table.
-- Each row configures a single MIB instance to be collected.
-- All rows with the same major index constitute a bucket-group.
--
-- The usrHistoryTable is a 3-d read-only table containing
-- the data of associated usrHistoryControlEntries. Each
-- entry represents the value of a single MIB instance
-- during a specific sampling interval (or the rate of
-- change during the interval).
--
-- A sample value is stored in two objects - an absolute value and
-- a status object. This allows numbers from -(2G-1) to +4G to be
-- stored.  The status object also indicates whether a sample is
-- valid. This allows data collection to continue if periodic
-- retrieval of a particular instance fails for any reason.
--
-- Row Creation Order Relationships
--


-- The static nature of the usrHistoryObjectTable creates
-- some row creation/modification issues. The rows in this
-- table need to be set before the associated
-- usrHistoryControlEntry can be activated.
--
-- Note that the usrHistoryObject entries associated with a
-- particular usrHistoryControlEntry are not required to
-- be active before the control entry is activated. However,
-- the usrHistory data entries associated with an inactive
-- usrHistoryObject entry will be inactive (i.e.
-- usrHistoryValStatus == valueNotAvailable).
--

usrHistoryControlTable OBJECT-TYPE
    SYNTAX SEQUENCE OF UsrHistoryControlEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A list of data-collection configuration entries."
    ::= { usrHistory 1 }

usrHistoryControlEntry OBJECT-TYPE
    SYNTAX UsrHistoryControlEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A list of parameters that set up a group of user-defined
        MIB objects to be sampled periodically (called a
        bucket-group).

        For example, an instance of usrHistoryControlInterval
        might be named usrHistoryControlInterval.1"
    INDEX { usrHistoryControlIndex }
    ::= { usrHistoryControlTable 1 }

UsrHistoryControlEntry ::= SEQUENCE {
    usrHistoryControlIndex             Integer32,
    usrHistoryControlObjects           Integer32,
    usrHistoryControlBucketsRequested  Integer32,
    usrHistoryControlBucketsGranted    Integer32,
    usrHistoryControlInterval          Integer32,
    usrHistoryControlOwner             OwnerString,
    usrHistoryControlStatus            RowStatus
}

usrHistoryControlIndex OBJECT-TYPE
    SYNTAX Integer32 (1..65535)
    MAX-ACCESS not-accessible


    STATUS current
    DESCRIPTION
        "An index that uniquely identifies an entry in the
        usrHistoryControlTable.  Each such entry defines a
        set of samples at a particular interval for a specified
        set of MIB instances available from the managed system."
    ::= { usrHistoryControlEntry 1 }

usrHistoryControlObjects OBJECT-TYPE
    SYNTAX Integer32 (1..65535)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The number of MIB objects to be collected
        in the portion of usrHistoryTable associated with this
        usrHistoryControlEntry.

        This object may not be modified if the associated instance
        of usrHistoryControlStatus is equal to active(1)."
    ::= { usrHistoryControlEntry 2 }

usrHistoryControlBucketsRequested OBJECT-TYPE
    SYNTAX Integer32 (1..65535)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The requested number of discrete time intervals
        over which data is to be saved in the part of the
        usrHistoryTable associated with this usrHistoryControlEntry.

        When this object is created or modified, the probe
        should set usrHistoryControlBucketsGranted as closely to
        this object as is possible for the particular probe
        implementation and available resources."
    DEFVAL { 50 }
    ::= { usrHistoryControlEntry 3 }

usrHistoryControlBucketsGranted OBJECT-TYPE
    SYNTAX Integer32 (1..65535)
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of discrete sampling intervals
        over which data shall be saved in the part of
        the usrHistoryTable associated with this
        usrHistoryControlEntry.

        When the associated usrHistoryControlBucketsRequested


        object is created or modified, the probe should set
        this object as closely to the requested value as is
        possible for the particular  probe implementation and
        available resources.  The probe must not lower this
        value except as a result of a modification to the associated
        usrHistoryControlBucketsRequested object.

        The associated usrHistoryControlBucketsRequested object
        should be set before or at the same time as this object
        to allow the probe to accurately estimate the resources
        required for this usrHistoryControlEntry.

        There will be times when the actual number of buckets
        associated with this entry is less than the value of
        this object.  In this case, at the end of each sampling
        interval, a new bucket will be added to the usrHistoryTable.

        When the number of buckets reaches the value of this object
        and a new bucket is to be added to the usrHistoryTable,
        the oldest bucket associated with this usrHistoryControlEntry
        shall be deleted by the agent so that the new bucket can be
        added.

        When the value of this object changes to a value less than
        the current value, entries are deleted from the
        usrHistoryTable associated with this usrHistoryControlEntry.
        Enough of the oldest of these entries shall be deleted by the
        agent so that their number remains less than or equal to the
        new value of this object.

        When the value of this object changes to a value greater
        than the current value, the number of associated usrHistory
        entries may be allowed to grow."
    ::= { usrHistoryControlEntry 4 }

usrHistoryControlInterval OBJECT-TYPE
    SYNTAX Integer32 (1..2147483647)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The interval in seconds over which the data is
        sampled for each bucket in the part of the usrHistory
        table associated with this usrHistoryControlEntry.

        Because the counters in a bucket may overflow at their
        maximum value with no indication, a prudent manager will
        take into account the possibility of overflow in any of


        the associated counters. It is important to consider the
        minimum time in which any counter could overflow on a
        particular media type and set the usrHistoryControlInterval
        object to a value less than this interval.

        This object may not be modified if the associated
        usrHistoryControlStatus object is equal to active(1)."
    DEFVAL { 1800 }
    ::= { usrHistoryControlEntry 5 }

usrHistoryControlOwner OBJECT-TYPE
    SYNTAX OwnerString
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The entity that configured this entry and is
        therefore using the resources assigned to it."
    ::= { usrHistoryControlEntry 6 }

usrHistoryControlStatus OBJECT-TYPE
    SYNTAX RowStatus
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The status of this variable history control entry.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value.

        If this object is not equal to active(1), all associated
        entries in the usrHistoryTable shall be deleted."
    ::= { usrHistoryControlEntry 7 }

-- Object table

usrHistoryObjectTable OBJECT-TYPE
    SYNTAX SEQUENCE OF UsrHistoryObjectEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A list of data-collection configuration entries."
    ::= { usrHistory 2 }

usrHistoryObjectEntry OBJECT-TYPE
    SYNTAX UsrHistoryObjectEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION


        "A list of MIB instances to be sampled periodically.

        Entries in this table are created when an associated
        usrHistoryControlObjects object is created.

        The usrHistoryControlIndex value in the index is
        that of the associated usrHistoryControlEntry.

        For example, an instance of usrHistoryObjectVariable might be
        usrHistoryObjectVariable.1.3"
    INDEX { usrHistoryControlIndex, usrHistoryObjectIndex }
    ::= { usrHistoryObjectTable 1 }

UsrHistoryObjectEntry ::= SEQUENCE {
    usrHistoryObjectIndex             Integer32,
    usrHistoryObjectVariable          OBJECT IDENTIFIER,
    usrHistoryObjectSampleType        INTEGER
}

usrHistoryObjectIndex OBJECT-TYPE
    SYNTAX Integer32 (1..65535)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An index used to uniquely identify an entry in the
        usrHistoryObject table.  Each such entry defines a
        MIB instance to be collected periodically."
    ::= { usrHistoryObjectEntry 1 }

usrHistoryObjectVariable OBJECT-TYPE
    SYNTAX OBJECT IDENTIFIER
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The object identifier of the particular variable to be
        sampled.

        Only variables that resolve to an ASN.1 primitive type of
        Integer32 (Integer32, Counter, Gauge, or TimeTicks) may be
        sampled.

        Because SNMP access control is articulated entirely in terms
        of the contents of MIB views, no access control mechanism
        exists that can restrict the value of this object to identify
        only those objects that exist in a particular MIB view.
        Because there is thus no acceptable means of restricting the
        read access that could be obtained through the user history


        mechanism, the probe must only grant write access to this
        object in those views that have read access to all objects on
        the probe.

        During a set operation, if the supplied variable name is not
        available in the selected MIB view, a badValue error must be
        returned.

        This object may not be modified if the associated
        usrHistoryControlStatus object is equal to active(1)."
    ::= { usrHistoryObjectEntry 2 }

usrHistoryObjectSampleType OBJECT-TYPE
    SYNTAX INTEGER {
               absoluteValue(1),
               deltaValue(2)
           }
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The method of sampling the selected variable for storage in
        the usrHistoryTable.

        If the value of this object is absoluteValue(1), the value of
        the selected variable will be copied directly into the history
        bucket.

        If the value of this object is deltaValue(2), the value of the
        selected variable at the last sample will be subtracted from
        the current value, and the difference will be stored in the
        history bucket. If the associated usrHistoryObjectVariable
        instance could not be obtained at the previous sample
        interval, then a delta sample is not possible, and the value
        of the associated usrHistoryValStatus object for this interval
        will be valueNotAvailable(1).

        This object may not be modified if the associated
        usrHistoryControlStatus object is equal to active(1)."
    ::= { usrHistoryObjectEntry 3 }

-- data table

usrHistoryTable OBJECT-TYPE
    SYNTAX SEQUENCE OF UsrHistoryEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A list of user defined history entries."


    ::= { usrHistory 3 }

usrHistoryEntry OBJECT-TYPE
    SYNTAX UsrHistoryEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A historical sample of user-defined variables.  This sample
        is associated with the usrHistoryControlEntry which set up the
        parameters for a regular collection of these samples.

        The usrHistoryControlIndex value in the index identifies the
        usrHistoryControlEntry on whose behalf this entry was created.

        The usrHistoryObjectIndex value in the index identifies the
        usrHistoryObjectEntry on whose behalf this entry was created.

        For example, an instance of usrHistoryAbsValue, which represents
        the 14th sample of a variable collected as specified by
        usrHistoryControlEntry.1 and usrHistoryObjectEntry.1.5,
        would be named usrHistoryAbsValue.1.14.5"
    INDEX { usrHistoryControlIndex, usrHistorySampleIndex,
            usrHistoryObjectIndex }
    ::= { usrHistoryTable 1 }

UsrHistoryEntry ::= SEQUENCE {
    usrHistorySampleIndex   Integer32,
    usrHistoryIntervalStart TimeStamp,
    usrHistoryIntervalEnd   TimeStamp,
    usrHistoryAbsValue      Gauge32,
    usrHistoryValStatus     INTEGER
}

usrHistorySampleIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An index that uniquely identifies the particular sample this
        entry represents among all samples associated with the same
        usrHistoryControlEntry. This index starts at 1 and increases
        by one as each new sample is taken."
    ::= { usrHistoryEntry 1 }

usrHistoryIntervalStart OBJECT-TYPE
    SYNTAX TimeStamp
    MAX-ACCESS read-only
    STATUS current


    DESCRIPTION
        "The value of sysUpTime at the start of the interval over
        which this sample was measured.  If the probe keeps track of
        the time of day, it should start the first sample of the
        history at a time such that when the next hour of the day
        begins, a sample is started at that instant.

        Note that following this rule may require the probe to delay
        collecting the first sample of the history, as each sample
        must be of the same interval. Also note that the sample which
        is currently being collected is not accessible in this table
        until the end of its interval."
    ::= { usrHistoryEntry 2 }

usrHistoryIntervalEnd OBJECT-TYPE
    SYNTAX TimeStamp
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The value of sysUpTime at the end of the interval over which
        this sample was measured."
    ::= { usrHistoryEntry 3 }

usrHistoryAbsValue OBJECT-TYPE
    SYNTAX Gauge32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The absolute value (i.e. unsigned value) of the
        user-specified statistic during the last sampling period. The
        value during the current sampling period is not made available
        until the period is completed.

        To obtain the true value for this sampling interval, the
        associated instance of usrHistoryValStatus must be checked,
        and usrHistoryAbsValue adjusted as necessary.

        If the MIB instance could not be accessed during the sampling
        interval, then this object will have a value of zero and the
        associated instance of usrHistoryValStatus will be set to
        'valueNotAvailable(1)'."
    ::= { usrHistoryEntry 4 }

usrHistoryValStatus OBJECT-TYPE
    SYNTAX INTEGER {
        valueNotAvailable(1),
        valuePositive(2),


        valueNegative(3)
    }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This object indicates the validity and sign of the data in
        the associated instance of usrHistoryAbsValue.

        If the MIB instance could not be accessed during the sampling
        interval, then 'valueNotAvailable(1)' will be returned.

        If the sample is valid and actual value of the sample is
        greater than or equal to zero then 'valuePositive(2)' is
        returned.

        If the sample is valid and the actual value of the sample is
        less than zero, 'valueNegative(3)' will be returned. The
        associated instance of usrHistoryAbsValue should be multiplied
        by -1 to obtain the true sample value."
    ::= { usrHistoryEntry 5 }

-- The Probe Configuration Group
--
-- This group controls the configuration of various operating
-- parameters of the probe.

ControlString ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "This data type is used to communicate with a modem or a
        serial data switch.  A ControlString contains embedded
        commands to control how the device will interact with the
        remote device through the serial interface.  Commands are
        represented as two character sequences beginning with
        the `^' character.

        The following commands are recognized by the device (note
        that command characters are case sensitive):

           ^s  Send string that follows which is terminated by the
               next command or the end of string.
           ^c  Delay for the number of seconds that follows.  Toss
               out any data received rather than storing it in a
               buffer for parsing.
           ^t  Set timeout to the value represented by the decimal
               digits that follow.  The default timeout is 20
               seconds. Note that this timeout may be overridden
               by a smaller serialTimeout configured for the


               associated serial interface (see serialConfigTable).
           ^w  Wait for the reply string that follows which is
               terminated by the next command or the end of string.
               Partial and case insensitive matching is applied, ie.
               if the reply string (any case combination) is found
               anywhere in the received string, then the a match is
               found.  If the current timeout elapses without a match,
               then the remaining control string is ignored.
           ^!  The ^ character.
           ^d  Delay the number of seconds specified by the decimal
               digits that follow.
           ^b  Send break for the number of milliseconds specified by
               the decimal digits that follow.  If no digits follow,
               break will be enforced for 250 milliseconds by default.

        The following ASCII control characters may be inserted into
        the `^s' send string or the `^w' reply string:

           ^@    0x00
           ^A    0x01
            ..
           ^M    0x0D
            ..
           ^Z    0x1A
           ^[    0x1B
           ^    0x1C
           ^]    0x1D
           ^^    0x1E
           ^_    0x1F

        Binary data may also be inserted into the data stream.  The
        control sequence for each byte of binary data is ^0x##, where
        ## is the hexadecimal representation of the data byte.  Two
        ASCII characters (0-9, a-f, A-F) must follow the `^0x'
        control prefix.  For example, `^0x0D^0x0A' is interpreted as a
        carriage return followed by a line feed."
    SYNTAX DisplayString

probeCapabilities OBJECT-TYPE
    SYNTAX BITS {
        etherStats(0),
        historyControl(1),
        etherHistory(2),
        alarm(3),
        hosts(4),
        hostTopN(5),
        matrix(6),
        filter(7),


        capture(8),
        event(9),
        tokenRingMLStats(10),
        tokenRingPStats(11),
        tokenRingMLHistory(12),
        tokenRingPHistory(13),
        ringStation(14),
        ringStationOrder(15),
        ringStationConfig(16),
        sourceRouting(17),
        protocolDirectory(18),
        protocolDistribution(19),
        addressMapping(20),
        nlHost(21),
        nlMatrix(22),
        alHost(23),
        alMatrix(24),
        usrHistory(25),
        probeConfig(26)
    }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "An indication of the RMON MIB groups supported
        on at least one interface by this probe."
    ::= { probeConfig 1 }

probeSoftwareRev  OBJECT-TYPE
    SYNTAX     DisplayString (SIZE(0..15))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The software revision of this device.  This string will have
        a zero length if the revision is unknown."
    ::= { probeConfig 2 }

probeHardwareRev  OBJECT-TYPE
    SYNTAX     DisplayString (SIZE(0..31))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The hardware revision of this device.  This string will have
        a zero length if the revision is unknown."
    ::= { probeConfig 3 }

probeDateTime  OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (0 | 8 | 11))
    MAX-ACCESS read-write


    STATUS     current
    DESCRIPTION
        "Probe's current date and time.

         field  octets  contents                  range
         -----  ------  --------                  -----
           1      1-2   year                      0..65536
           2       3    month                     1..12
           3       4    day                       1..31
           4       5    hour                      0..23
           5       6    minutes                   0..59
           6       7    seconds                   0..60
                         (use 60 for leap-second)
           7       8    deci-seconds              0..9
           8       9    direction from UTC        '+' / '-'
           9      10    hours from UTC            0..11
          10      11    minutes from UTC          0..59

         For example, Tuesday May 26, 1992 at 1:30:15 PM
         EDT would be displayed as:

                     1992-5-26,13:30:15.0,-4:0

         Note that if only local time is known, then
         timezone information (fields 8-10) is not
         present, and if no time information is known, the null
         string is returned."
    ::= { probeConfig 4 }

probeResetControl  OBJECT-TYPE
    SYNTAX     INTEGER {
                    running(1),
                    warmBoot(2),
                    coldBoot(3)
              }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Setting this object to warmBoot(2) causes the device to
        restart the application software with current configuration
        parameters saved in non-volatile memory.  Setting this
        object to coldBoot(3) causes the device to reinitialize
        configuration parameters in non-volatile memory to default
        values and restart the application software.  When the device
        is running normally, this variable has a value of
        running(1)."
    ::= { probeConfig 5 }


-- The following download objects do not restrict an implementation
-- from implementing additional download mechanisms (controlled in an
-- implementation-specific manner).  Further, in the case where the RMON
-- agent shares a processor with other types of systems, the
-- implementation is not required to download those non-RMON functions
-- with this mechanism.

probeDownloadFile  OBJECT-TYPE
    SYNTAX     DisplayString (SIZE(0..127))
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The file name to be downloaded from the TFTP server when a
        download is next requested via this MIB.  This value is set to
        the zero length string when no file name has been specified."
    ::= { probeConfig 6 }

probeDownloadTFTPServer  OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The IP address of the TFTP server that contains the boot
        image to load when a download is next requested via this MIB.
        This value is set to `0.0.0.0' when no IP address has been
        specified."
    ::= { probeConfig 7 }

probeDownloadAction  OBJECT-TYPE
    SYNTAX     INTEGER {
                  notDownloading(1),
                  downloadToPROM(2),
                  downloadToRAM(3)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "When this object is set to downloadToRAM(2) or
        downloadToPROM(3), the device will discontinue its
        normal operation and begin download of the image specified
        by probeDownloadFile from the server specified by
        probeDownloadTFTPServer using the TFTP protocol.  If
        downloadToRAM(2) is specified, the new image is copied
        to RAM only (the old image remains unaltered in the flash
        EPROM).  If downloadToPROM(3) is specified
        the new image is written to the flash EPROM
        memory after its checksum has been verified to be correct.
        When the download process is completed, the device will


        warm boot to restart the newly loaded application.
        When the device is not downloading, this object will have
        a value of notDownloading(1)."
    ::= { probeConfig 8 }

probeDownloadStatus  OBJECT-TYPE
    SYNTAX     INTEGER {
                    downloadSuccess(1),
                    downloadStatusUnknown(2),
                    downloadGeneralError(3),
                    downloadNoResponseFromServer(4),
                    downloadChecksumError(5),
                    downloadIncompatibleImage(6),
                    downloadTftpFileNotFound(7),
                    downloadTftpAccessViolation(8)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The status of the last download procedure, if any.  This
        object will have a value of downloadStatusUnknown(2) if no
        download process has been performed."
    ::= { probeConfig 9 }

serialConfigTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF SerialConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table of serial interface configuration entries.  This data
        will be stored in non-volatile memory and preserved across
        probe resets or power loss."
    ::= { probeConfig 10 }

serialConfigEntry  OBJECT-TYPE
    SYNTAX     SerialConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A set of configuration parameters for a particular
        serial interface on this device. If the device has no serial
        interfaces, this table is empty.

        The index is composed of the ifIndex assigned to this serial
        line interface."
    INDEX  { ifIndex }
    ::= { serialConfigTable 1 }


SerialConfigEntry ::= SEQUENCE {
    serialMode                   INTEGER,
    serialProtocol               INTEGER,
    serialTimeout                Integer32 (1..65535),
    serialModemInitString        ControlString (SIZE (0..255)),
    serialModemHangUpString      ControlString (SIZE (0..255)),
    serialModemConnectResp       DisplayString (SIZE (0..255)),
    serialModemNoConnectResp     DisplayString (SIZE (0..255)),
    serialDialoutTimeout         Integer32 (1..65535),
    serialStatus                 RowStatus
}

serialMode  OBJECT-TYPE
    SYNTAX     INTEGER {
                   direct(1),
                   modem(2)
               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The type of incoming connection to expect on this serial
        interface."
    DEFVAL { direct }
    ::= { serialConfigEntry 1 }

serialProtocol  OBJECT-TYPE
    SYNTAX     INTEGER {
                   other(1),
                   slip(2),
                   ppp(3)
               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The type of data link encapsulation to be used on this
        serial interface."
    DEFVAL { slip }
    ::= { serialConfigEntry 2 }

serialTimeout  OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "This timeout value is used when the Management Station has
        initiated the conversation over the serial link. This variable
        represents the number of seconds of inactivity allowed before
        terminating the connection on this serial interface. Use the


        serialDialoutTimeout in the case where the probe has initiated
        the connection for the purpose of sending a trap."
    DEFVAL { 300 }
    ::= { serialConfigEntry 3 }

serialModemInitString  OBJECT-TYPE
    SYNTAX     ControlString (SIZE (0..255))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "A control string which controls how a modem attached to this
        serial interface should be initialized.  The initialization
        is performed once during startup and again after each
        connection is terminated if the associated serialMode has the
        value of modem(2).

        A control string that is appropriate for a wide variety of
        modems is: '^s^MATE0Q0V1X4 S0=1 S2=43^M'."
    ::= { serialConfigEntry 4 }

serialModemHangUpString  OBJECT-TYPE
    SYNTAX     ControlString (SIZE (0..255))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "A control string which specifies how to disconnect a modem
         connection on this serial interface.  This object is only
         meaningful if the associated serialMode has the value
         of modem(2).
         A control string that is appropriate for a wide variety of
         modems is: '^d2^s+++^d2^sATH0^M^d2'."
    ::= { serialConfigEntry 5 }

serialModemConnectResp  OBJECT-TYPE
    SYNTAX     DisplayString (SIZE (0..255))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "An ASCII string containing substrings that describe the
        expected modem connection response code and associated bps
        rate.  The substrings are delimited by the first character
        in the string, for example:
           /CONNECT/300/CONNECT 1200/1200/CONNECT 2400/2400/
           CONNECT 4800/4800/CONNECT 9600/9600
        will be interpreted as:
            response code    bps rate
            CONNECT            300
            CONNECT 1200      1200


            CONNECT 2400      2400
            CONNECT 4800      4800
            CONNECT 9600      9600
        The agent will use the information in this string to adjust
        the bps rate of this serial interface once a modem connection
        is established.

        A value that is appropriate for a wide variety of modems is:
        '/CONNECT/300/CONNECT 1200/1200/CONNECT 2400/2400/
         CONNECT 4800/4800/CONNECT 9600/9600/CONNECT 14400/14400/
        CONNECT 19200/19200/CONNECT 38400/38400/'."
    ::= { serialConfigEntry 6 }

serialModemNoConnectResp  OBJECT-TYPE
    SYNTAX     DisplayString (SIZE (0..255))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "An ASCII string containing response codes that may be
        generated by a modem to report the reason why a connection
        attempt has failed.  The response codes are delimited by
        the first character in the string, for example:
           /NO CARRIER/BUSY/NO DIALTONE/NO ANSWER/ERROR/
        If one of these response codes is received via this serial
        interface while attempting to make a modem connection,
        the agent will issue the hang up command as specified by
        serialModemHangUpString.

        A value that is appropriate for a wide variety of modems is:
        '/NO CARRIER/BUSY/NO DIALTONE/NO ANSWER/ERROR/'."
    ::= { serialConfigEntry 7 }

serialDialoutTimeout  OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "This timeout value is used when the probe initiates the
        serial connection with the intention of contacting a
        management station. This variable represents the number
        of seconds of inactivity allowed before terminating the
        connection on this serial interface."
    DEFVAL { 20 }
    ::= { serialConfigEntry 8 }

serialStatus  OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create


    STATUS     current
    DESCRIPTION
        "The status of this serialConfigEntry.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value."
    ::= { serialConfigEntry 9 }

netConfigTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF NetConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table of netConfigEntries."
    ::= { probeConfig 11 }

netConfigEntry  OBJECT-TYPE
    SYNTAX     NetConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A set of configuration parameters for a particular
        network interface on this device. If the device has no network
        interface, this table is empty.

        The index is composed of the ifIndex assigned to the
        corresponding interface."
    INDEX  { ifIndex }
    ::= { netConfigTable 1 }

NetConfigEntry ::= SEQUENCE {
    netConfigIPAddress         IpAddress,
    netConfigSubnetMask        IpAddress,
    netConfigStatus            RowStatus
}

netConfigIPAddress  OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The IP address of this Net interface.  The default value
        for this object is 0.0.0.0.  If either the netConfigIPAddress
        or netConfigSubnetMask are 0.0.0.0, then when the device
        boots, it may use BOOTP to try to figure out what these
        values should be. If BOOTP fails, before the device
        can talk on the network, this value must be configured
        (e.g., through a terminal attached to the device). If BOOTP is


        used, care should be taken to not send BOOTP broadcasts too
        frequently and to eventually send very infrequently if no
        replies are received."
    ::= { netConfigEntry 1 }

netConfigSubnetMask  OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The subnet mask of this Net interface.  The default value
        for this object is 0.0.0.0.  If either the netConfigIPAddress
        or netConfigSubnetMask are 0.0.0.0, then when the device
        boots, it may use BOOTP to try to figure out what these
        values should be. If BOOTP fails, before the device
        can talk on the network, this value must be configured
        (e.g., through a terminal attached to the device). If BOOTP is
        used, care should be taken to not send BOOTP broadcasts too
        frequently and to eventually send very infrequently if no
        replies are received."
    ::= { netConfigEntry 2 }

netConfigStatus  OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The status of this netConfigEntry.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value."
    ::= { netConfigEntry 3 }

netDefaultGateway  OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The IP Address of the default gateway.  If this value is
        undefined or unknown, it shall have the value 0.0.0.0."
    ::= { probeConfig 12 }

-- Trap Destination Table
--
-- This table defines the destination addresses for traps generated
-- from the device.  This table maps a community to one or more trap
-- destination entries.
--


-- The same trap will be sent to all destinations specified in the
-- entries that have the same trapDestCommunity as the eventCommunity
-- (as defined by RMON MIB).  Information in this table will be stored
-- in non-volatile memory.  If the device has gone through a hard
-- restart, this information will be reset to its default state.

trapDestTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF TrapDestEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A list of trap destination entries."
    ::= { probeConfig 13 }

trapDestEntry  OBJECT-TYPE
    SYNTAX     TrapDestEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This entry includes a destination IP address to which to send
        traps for this community."
    INDEX { trapDestIndex }
    ::= { trapDestTable 1 }

TrapDestEntry ::= SEQUENCE {
    trapDestIndex               Integer32,
    trapDestCommunity           OCTET STRING,
    trapDestProtocol            INTEGER,
    trapDestAddress             OCTET STRING,
    trapDestOwner               OwnerString,
    trapDestStatus              RowStatus
}

trapDestIndex  OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A value that uniquely identifies this trapDestEntry."
    ::= { trapDestEntry 1 }

trapDestCommunity  OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE(0..127))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "A community to which this destination address belongs.
        This entry is associated with any eventEntries in the RMON


        MIB whose value of eventCommunity is equal to the value of
        this object.  Every time an associated event entry sends a
        trap due to an event, that trap will be sent to each
        address in the trapDestTable with a trapDestCommunity equal to
        eventCommunity.

        This object may not be modified if the associated
        trapDestStatus object is equal to active(1)."
    ::= { trapDestEntry 2 }

trapDestProtocol OBJECT-TYPE
    SYNTAX     INTEGER {
                    ip(1),
                    ipx(2)
                }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The protocol with which to send this trap."
    ::= { trapDestEntry 3 }

trapDestAddress  OBJECT-TYPE
    SYNTAX     OCTET STRING
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The address to send traps on behalf of this entry.

        If the associated trapDestProtocol object is equal to ip(1),
        the encoding of this object is the same as the snmpUDPAddress
        textual convention in [RFC1906]:
          -- for a SnmpUDPAddress of length 6:
          --
          -- octets   contents        encoding
          --  1-4     IP-address      network-byte order
          --  5-6     UDP-port        network-byte order

        If the associated trapDestProtocol object is equal to ipx(2),
        the encoding of this object is the same as the snmpIPXAddress
        textual convention in [RFC1906]:
          -- for a SnmpIPXAddress of length 12:
          --
          -- octets   contents            encoding
          --  1-4     network-number      network-byte order
          --  5-10    physical-address    network-byte order
          -- 11-12    socket-number       network-byte order

        This object may not be modified if the associated


        trapDestStatus object is equal to active(1)."
    ::= { trapDestEntry 4 }

trapDestOwner  OBJECT-TYPE
    SYNTAX     OwnerString
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The entity that configured this entry and is
        therefore using the resources assigned to it."
    ::= { trapDestEntry 5 }

trapDestStatus  OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The status of this trap destination entry.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value."
    ::= { trapDestEntry 6 }

-- Serial Connection Table
--
-- The device may communicate with a management station using
-- SLIP.  In order for the device to send traps via SLIP, it must
-- be able to initiate a connection over the serial interface.  The
-- serialConnectionTable stores the parameters for such connection
-- initiation.

serialConnectionTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF SerialConnectionEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A list of serialConnectionEntries."
    ::= { probeConfig 14 }

serialConnectionEntry  OBJECT-TYPE
    SYNTAX     SerialConnectionEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Configuration for a SLIP link over a serial line."
    INDEX { serialConnectIndex }
    ::= { serialConnectionTable 1 }


SerialConnectionEntry ::= SEQUENCE {
    serialConnectIndex                   Integer32,
    serialConnectDestIpAddress           IpAddress,
    serialConnectType                    INTEGER,
    serialConnectDialString              ControlString,
    serialConnectSwitchConnectSeq        ControlString,
    serialConnectSwitchDisconnectSeq     ControlString,
    serialConnectSwitchResetSeq          ControlString,
    serialConnectOwner                   OwnerString,
    serialConnectStatus                  RowStatus
}

serialConnectIndex  OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A value that uniquely identifies this serialConnection
        entry."
    ::= { serialConnectionEntry 1 }

serialConnectDestIpAddress  OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The IP Address that can be reached at the other end of this
        serial connection.
        This object may not be modified if the associated
        serialConnectStatus object is equal to active(1)."
    ::= { serialConnectionEntry 2 }

serialConnectType  OBJECT-TYPE
    SYNTAX     INTEGER {
                    direct(1),
                    modem(2),
                    switch(3),
                    modemSwitch(4)
               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The type of outgoing connection to make.  If this object
        has the value direct(1), then a direct serial connection
        is assumed.  If this object has the value modem(2),
        then serialConnectDialString will be used to make a modem
        connection.  If this object has the value switch(3),


        then serialConnectSwitchConnectSeq will be used to establish
        the connection over a serial data switch, and
        serialConnectSwitchDisconnectSeq will be used to terminate
        the connection.  If this object has the value
        modem-switch(4), then a modem connection will be made first
        followed by the switch connection.

        This object may not be modified if the associated
        serialConnectStatus object is equal to active(1)."

    DEFVAL { direct }
    ::= { serialConnectionEntry 3 }

serialConnectDialString  OBJECT-TYPE
    SYNTAX     ControlString (SIZE(0..255))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "A control string which specifies how to dial the phone
        number in order to establish a modem connection.  The
        string should include dialing prefix and suffix.  For
        example: ``^s^MATD9,888-1234^M'' will instruct the Probe
        to send a carriage return followed by the dialing prefix
        ``ATD'', the phone number ``9,888-1234'', and a carriage
        return as the dialing suffix.
        This object may not be modified if the associated
        serialConnectStatus object is equal to active(1)."
    ::= { serialConnectionEntry 4 }

serialConnectSwitchConnectSeq  OBJECT-TYPE
    SYNTAX     ControlString (SIZE(0..255))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "A control string which specifies how to establish a
        data switch connection.
        This object may not be modified if the associated
        serialConnectStatus object is equal to active(1)."
     ::= { serialConnectionEntry 5 }

serialConnectSwitchDisconnectSeq  OBJECT-TYPE
    SYNTAX     ControlString (SIZE(0..255))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "A control string which specifies how to terminate a
        data switch connection.
        This object may not be modified if the associated


        serialConnectStatus object is equal to active(1)."
    ::= { serialConnectionEntry 6 }

serialConnectSwitchResetSeq  OBJECT-TYPE
    SYNTAX     ControlString (SIZE(0..255))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "A control string which specifies how to reset a data
        switch in the event of a timeout.
        This object may not be modified if the associated
        serialConnectStatus object is equal to active(1)."
    ::= { serialConnectionEntry 7 }

serialConnectOwner  OBJECT-TYPE
    SYNTAX     OwnerString
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The entity that configured this entry and is
        therefore using the resources assigned to it."
    ::= { serialConnectionEntry 8 }

serialConnectStatus  OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The status of this serialConnectionEntry.

        If the manager attempts to set this object to active(1) when
        the serialConnectType is set to modem(2) or modem-switch(4)
        and the serialConnectDialString is a zero-length string or
        cannot be correctly parsed as a ConnectString, the set
        request will be rejected with badValue(3).

        If the manager attempts to set this object to active(1) when
        the serialConnectType is set to switch(3) or modem-switch(4)
        and the serialConnectSwitchConnectSeq,
        the serialConnectSwitchDisconnectSeq, or
        the serialConnectSwitchResetSeq are zero-length strings
        or cannot be correctly parsed as ConnectStrings, the set
        request will be rejected with badValue(3).

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value."
    ::= { serialConnectionEntry 9 }


--
-- Extensions to the RMON 1 MIB for RMON 2 devices
--
-- These extensions include the standard LastCreateTime Textual
-- Convention for all control tables, as well as an augmentation of
-- the filter entry that provides variable-length offsets into
-- packets.

-- Each of the following, except for filterDroppedFrames, is a
-- read-only object which, if implemented, automatically appears when
-- the RMON1 row it is associated with is created.

etherStats2Table  OBJECT-TYPE
    SYNTAX     SEQUENCE OF EtherStats2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    ::= { statistics 4 }

etherStats2Entry  OBJECT-TYPE
    SYNTAX     EtherStats2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    AUGMENTS { etherStatsEntry }
    ::= { etherStats2Table 1 }

EtherStats2Entry ::= SEQUENCE {
    etherStatsDroppedFrames     Counter32,
    etherStatsCreateTime        LastCreateTime
}

etherStatsDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
       "The total number of frames which were received by the probe
        and therefore not accounted for in the *StatsDropEvents, but
        for which the probe chose not to count for this entry for
        whatever reason.  Most often, this event occurs when the probe
        is out of some resources and decides to shed load from this
        collection.

        This count does not include packets that were not counted


        because they had MAC-layer errors.

        Note that, unlike the dropEvents counter, this number is the
        exact number of frames dropped."
    ::= { etherStats2Entry 1 }

etherStatsCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this control entry was last
        activated. This can be used by the management station to
        ensure that the table has not been deleted and recreated
        between polls."
    ::= { etherStats2Entry 2 }

historyControl2Table  OBJECT-TYPE
    SYNTAX     SEQUENCE OF HistoryControl2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    ::= { history 5 }

historyControl2Entry  OBJECT-TYPE
    SYNTAX     HistoryControl2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    AUGMENTS { historyControlEntry }
    ::= { historyControl2Table 1 }

HistoryControl2Entry ::= SEQUENCE {
    historyControlDroppedFrames Counter32
}

historyControlDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
       "The total number of frames which were received by the probe
        and therefore not accounted for in the *StatsDropEvents, but
        for which the probe chose not to count for this entry for
        whatever reason.  Most often, this event occurs when the probe
        is out of some resources and decides to shed load from this


        collection.

        This count does not include packets that were not counted
        because they had MAC-layer errors.

        Note that, unlike the dropEvents counter, this number is the
        exact number of frames dropped."
    ::= { historyControl2Entry 1 }

hostControl2Table  OBJECT-TYPE
    SYNTAX     SEQUENCE OF HostControl2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    ::= { hosts 4 }

hostControl2Entry  OBJECT-TYPE
    SYNTAX     HostControl2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    AUGMENTS { hostControlEntry }
    ::= { hostControl2Table 1 }

HostControl2Entry ::= SEQUENCE {
    hostControlDroppedFrames    Counter32,
    hostControlCreateTime       LastCreateTime
}

hostControlDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
       "The total number of frames which were received by the probe
        and therefore not accounted for in the *StatsDropEvents, but
        for which the probe chose not to count for this entry for
        whatever reason.  Most often, this event occurs when the probe
        is out of some resources and decides to shed load from this
        collection.

        This count does not include packets that were not counted
        because they had MAC-layer errors.

        Note that, unlike the dropEvents counter, this number is the
        exact number of frames dropped."


    ::= { hostControl2Entry 1 }

hostControlCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this control entry was last
        activated. This can be used by the management station to
        ensure that the table has not been deleted and recreated
        between polls."
    ::= { hostControl2Entry 2 }

matrixControl2Table  OBJECT-TYPE
    SYNTAX     SEQUENCE OF MatrixControl2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    ::= { matrix 4 }

matrixControl2Entry  OBJECT-TYPE
    SYNTAX     MatrixControl2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    AUGMENTS { matrixControlEntry }
    ::= { matrixControl2Table 1 }

MatrixControl2Entry ::= SEQUENCE {
    matrixControlDroppedFrames  Counter32,
    matrixControlCreateTime     LastCreateTime
}

matrixControlDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
       "The total number of frames which were received by the probe
        and therefore not accounted for in the *StatsDropEvents, but
        for which the probe chose not to count for this entry for
        whatever reason.  Most often, this event occurs when the probe
        is out of some resources and decides to shed load from this
        collection.

        This count does not include packets that were not counted


        because they had MAC-layer errors.

        Note that, unlike the dropEvents counter, this number is the
        exact number of frames dropped."
    ::= { matrixControl2Entry 1 }

matrixControlCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this control entry was last
        activated. This can be used by the management station to
        ensure that the table has not been deleted and recreated
        between polls."
    ::= { matrixControl2Entry 2 }

channel2Table  OBJECT-TYPE
    SYNTAX     SEQUENCE OF Channel2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    ::= { filter 3 }

channel2Entry  OBJECT-TYPE
    SYNTAX     Channel2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    AUGMENTS { channelEntry }
    ::= { channel2Table 1 }

Channel2Entry ::= SEQUENCE {
    channelDroppedFrames    Counter32,
    channelCreateTime       LastCreateTime
}

channelDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
       "The total number of frames which were received by the probe
        and therefore not accounted for in the *StatsDropEvents, but
        for which the probe chose not to count for this entry for
        whatever reason.  Most often, this event occurs when the probe


        is out of some resources and decides to shed load from this
        collection.

        This count does not include packets that were not counted
        because they had MAC-layer errors.

        Note that, unlike the dropEvents counter, this number is the
        exact number of frames dropped."
    ::= { channel2Entry 1 }

channelCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this control entry was last
        activated. This can be used by the management station to
        ensure that the table has not been deleted and recreated
        between polls."
    ::= { channel2Entry 2 }

tokenRingMLStats2Table  OBJECT-TYPE
    SYNTAX     SEQUENCE OF TokenRingMLStats2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    ::= { statistics 5 }

tokenRingMLStats2Entry  OBJECT-TYPE
    SYNTAX     TokenRingMLStats2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    AUGMENTS { tokenRingMLStatsEntry }
    ::= { tokenRingMLStats2Table 1 }

TokenRingMLStats2Entry ::= SEQUENCE {
    tokenRingMLStatsDroppedFrames       Counter32,
    tokenRingMLStatsCreateTime          LastCreateTime
}

tokenRingMLStatsDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION


       "The total number of frames which were received by the probe
        and therefore not accounted for in the *StatsDropEvents, but
        for which the probe chose not to count for this entry for
        whatever reason.  Most often, this event occurs when the probe
        is out of some resources and decides to shed load from this
        collection.

        This count does not include packets that were not counted
        because they had MAC-layer errors.

        Note that, unlike the dropEvents counter, this number is the
        exact number of frames dropped."
    ::= { tokenRingMLStats2Entry 1 }

tokenRingMLStatsCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this control entry was last activated.
        This can be used by the management station to ensure that the
        table has not been deleted and recreated between polls."
    ::= { tokenRingMLStats2Entry 2 }

tokenRingPStats2Table  OBJECT-TYPE
    SYNTAX     SEQUENCE OF TokenRingPStats2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    ::= { statistics 6 }

tokenRingPStats2Entry  OBJECT-TYPE
    SYNTAX     TokenRingPStats2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    AUGMENTS {  tokenRingPStatsEntry }
    ::= { tokenRingPStats2Table 1 }

TokenRingPStats2Entry ::= SEQUENCE {
    tokenRingPStatsDroppedFrames    Counter32,
    tokenRingPStatsCreateTime       LastCreateTime
}

tokenRingPStatsDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32


    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
       "The total number of frames which were received by the probe
        and therefore not accounted for in the *StatsDropEvents, but
        for which the probe chose not to count for this entry for
        whatever reason.  Most often, this event occurs when the probe
        is out of some resources and decides to shed load from this
        collection.

        This count does not include packets that were not counted
        because they had MAC-layer errors.

        Note that, unlike the dropEvents counter, this number is the
        exact number of frames dropped."
    ::= { tokenRingPStats2Entry 1 }

tokenRingPStatsCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this control entry was last activated.
        This can be used by the management station to ensure that the
        table has not been deleted and recreated between polls."
    ::= { tokenRingPStats2Entry 2 }

ringStationControl2Table  OBJECT-TYPE
    SYNTAX     SEQUENCE OF RingStationControl2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    ::= { tokenRing 7 }

ringStationControl2Entry  OBJECT-TYPE
    SYNTAX     RingStationControl2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    AUGMENTS { ringStationControlEntry }
    ::= { ringStationControl2Table 1 }

RingStationControl2Entry ::= SEQUENCE {
    ringStationControlDroppedFrames Counter32,
    ringStationControlCreateTime    LastCreateTime
}


ringStationControlDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
       "The total number of frames which were received by the probe
        and therefore not accounted for in the *StatsDropEvents, but
        for which the probe chose not to count for this entry for
        whatever reason.  Most often, this event occurs when the probe
        is out of some resources and decides to shed load from this
        collection.

        This count does not include packets that were not counted
        because they had MAC-layer errors.

        Note that, unlike the dropEvents counter, this number is the
        exact number of frames dropped."
    ::= { ringStationControl2Entry 1 }

ringStationControlCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this control entry was last activated.
        This can be used by the management station to ensure that the
        table has not been deleted and recreated between polls."
    ::= { ringStationControl2Entry 2 }

sourceRoutingStats2Table  OBJECT-TYPE
    SYNTAX     SEQUENCE OF SourceRoutingStats2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    ::= { tokenRing 8 }

sourceRoutingStats2Entry  OBJECT-TYPE
    SYNTAX     SourceRoutingStats2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Contains the RMON-2 augmentations to RMON-1."
    AUGMENTS { sourceRoutingStatsEntry }
    ::= { sourceRoutingStats2Table 1 }

SourceRoutingStats2Entry ::= SEQUENCE {
    sourceRoutingStatsDroppedFrames Counter32,


    sourceRoutingStatsCreateTime    LastCreateTime
}

sourceRoutingStatsDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
       "The total number of frames which were received by the probe
        and therefore not accounted for in the *StatsDropEvents, but
        for which the probe chose not to count for this entry for
        whatever reason.  Most often, this event occurs when the probe
        is out of some resources and decides to shed load from this
        collection.

        This count does not include packets that were not counted
        because they had MAC-layer errors.

        Note that, unlike the dropEvents counter, this number is the
        exact number of frames dropped."
    ::= { sourceRoutingStats2Entry 1 }

sourceRoutingStatsCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime when this control entry was last activated.
        This can be used by the management station to ensure that the
        table has not been deleted and recreated between polls."
    ::= { sourceRoutingStats2Entry 2 }

filter2Table OBJECT-TYPE
    SYNTAX     SEQUENCE OF Filter2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Provides a variable-length packet filter feature to the
        RMON-1 filter table."
    ::= { filter 4 }

filter2Entry OBJECT-TYPE
    SYNTAX     Filter2Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Provides a variable-length packet filter feature to the
        RMON-1 filter table."


    AUGMENTS { filterEntry }
    ::= { filter2Table 1 }

Filter2Entry ::= SEQUENCE {
    filterProtocolDirDataLocalIndex     Integer32,
    filterProtocolDirLocalIndex         Integer32
}

filterProtocolDirDataLocalIndex OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "When this object is set to a non-zero value, the filter that
        it is associated with performs the following operations on
        every packet:

        1) - If the packet doesn't match the protocol directory entry
             identified by this object, discard the packet and exit
             (i.e., discard the packet if it is not of the identified
             protocol).
        2) - If the associated filterProtocolDirLocalIndex is non-zero
             and the packet doesn't match the protocol directory
             entry identified by that object, discard the packet and
             exit
        3) - If the packet matches, perform the regular filter
             algorithm as if the beginning of this named protocol is
             the beginning of the packet, potentially applying the
             filterOffset value to move further into the packet."
    DEFVAL { 0 }
    ::= { filter2Entry 1 }

filterProtocolDirLocalIndex OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "When this object is set to a non-zero value, the filter that
        it is associated with will discard the packet if the packet
        doesn't match this protocol directory entry."
    DEFVAL { 0 }
    ::= { filter2Entry 2 }

-- Conformance Macros

rmon2MIBCompliances OBJECT IDENTIFIER ::= { rmonConformance 1 }
rmon2MIBGroups      OBJECT IDENTIFIER ::= { rmonConformance 2 }


rmon2MIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
        "Describes the requirements for conformance to
        the RMON2 MIB"
    MODULE  -- this module
        MANDATORY-GROUPS { protocolDirectoryGroup,
                           protocolDistributionGroup,
                           addressMapGroup,
                           nlHostGroup,
                           nlMatrixGroup,
                           usrHistoryGroup,
                           probeInformationGroup }

        GROUP   rmon1EnhancementGroup
        DESCRIPTION
            "The rmon1EnhancementGroup is mandatory for systems which
            implement RMON [RFC1757]"
    ::= { rmon2MIBCompliances 1 }

rmon2MIBApplicationLayerCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
        "Describes the requirements for conformance to
        the RMON2 MIB with Application Layer Enhancements."
    MODULE  -- this module
        MANDATORY-GROUPS { protocolDirectoryGroup,
                           protocolDistributionGroup,
                           addressMapGroup,
                           nlHostGroup,
                           nlMatrixGroup,
                           alHostGroup,
                           alMatrixGroup,
                           usrHistoryGroup,
                           probeInformationGroup }

        GROUP   rmon1EnhancementGroup
        DESCRIPTION
            "The rmon1EnhancementGroup is mandatory for systems which
            implement RMON [RFC1757]"
    ::= { rmon2MIBCompliances 2 }

protocolDirectoryGroup OBJECT-GROUP
    OBJECTS { protocolDirLastChange,
              protocolDirLocalIndex, protocolDirDescr,
              protocolDirType, protocolDirAddressMapConfig,
              protocolDirHostConfig, protocolDirMatrixConfig,


              protocolDirOwner, protocolDirStatus }
    STATUS  current
    DESCRIPTION
        "Lists the inventory of protocols the probe has the capability
        of monitoring and allows the addition, deletion, and
        configuration of entries in this list."
    ::= { rmon2MIBGroups 1 }

protocolDistributionGroup OBJECT-GROUP
    OBJECTS { protocolDistControlDataSource,
              protocolDistControlDroppedFrames,
              protocolDistControlCreateTime,
              protocolDistControlOwner, protocolDistControlStatus,
              protocolDistStatsPkts, protocolDistStatsOctets }
    STATUS  current
    DESCRIPTION
        "Collects the relative amounts of octets and packets for the
        different protocols detected on a network segment."
    ::= { rmon2MIBGroups 2 }

addressMapGroup OBJECT-GROUP
    OBJECTS { addressMapInserts, addressMapDeletes,
              addressMapMaxDesiredEntries,
              addressMapControlDataSource,
              addressMapControlDroppedFrames,
              addressMapControlOwner, addressMapControlStatus,
              addressMapPhysicalAddress,
              addressMapLastChange }
    STATUS  current
    DESCRIPTION
        "Lists MAC address to network address bindings discovered by
        the probe and what interface they were last seen on."
    ::= { rmon2MIBGroups 3 }

nlHostGroup OBJECT-GROUP
    OBJECTS { hlHostControlDataSource,
              hlHostControlNlDroppedFrames, hlHostControlNlInserts,
              hlHostControlNlDeletes,
              hlHostControlNlMaxDesiredEntries,
              hlHostControlAlDroppedFrames, hlHostControlAlInserts,
              hlHostControlAlDeletes,
              hlHostControlAlMaxDesiredEntries, hlHostControlOwner,
              hlHostControlStatus, nlHostInPkts, nlHostOutPkts,
              nlHostInOctets, nlHostOutOctets,
              nlHostOutMacNonUnicastPkts, nlHostCreateTime }
    STATUS  current
    DESCRIPTION
        "Counts the amount of traffic sent from and to each network


        address discovered by the probe. Note that while the
        hlHostControlTable also has objects that control an optional
        alHostTable, implementation of the alHostTable is not required
        to fully implement this group."
    ::= { rmon2MIBGroups 4 }

nlMatrixGroup OBJECT-GROUP
    OBJECTS { hlMatrixControlDataSource,
              hlMatrixControlNlDroppedFrames,
              hlMatrixControlNlInserts, hlMatrixControlNlDeletes,
              hlMatrixControlNlMaxDesiredEntries,
              hlMatrixControlAlDroppedFrames,
              hlMatrixControlAlInserts, hlMatrixControlAlDeletes,
              hlMatrixControlAlMaxDesiredEntries,
              hlMatrixControlOwner, hlMatrixControlStatus,
              nlMatrixSDPkts, nlMatrixSDOctets, nlMatrixSDCreateTime,
              nlMatrixDSPkts, nlMatrixDSOctets, nlMatrixDSCreateTime,
              nlMatrixTopNControlMatrixIndex,
              nlMatrixTopNControlRateBase,
              nlMatrixTopNControlTimeRemaining,
              nlMatrixTopNControlGeneratedReports,
              nlMatrixTopNControlDuration,
              nlMatrixTopNControlRequestedSize,
              nlMatrixTopNControlGrantedSize,
              nlMatrixTopNControlStartTime,
              nlMatrixTopNControlOwner, nlMatrixTopNControlStatus,
              nlMatrixTopNProtocolDirLocalIndex,
              nlMatrixTopNSourceAddress, nlMatrixTopNDestAddress,
              nlMatrixTopNPktRate, nlMatrixTopNReversePktRate,
              nlMatrixTopNOctetRate, nlMatrixTopNReverseOctetRate }
    STATUS  current
    DESCRIPTION
        "Counts the amount of traffic sent between each pair of
        network addresses discovered by the probe. Note that while the
        hlMatrixControlTable also has objects that control optional
        alMatrixTables, implementation of the alMatrixTables is not
        required to fully implement this group."
    ::= { rmon2MIBGroups 5 }

alHostGroup OBJECT-GROUP
    OBJECTS { alHostInPkts, alHostOutPkts,
              alHostInOctets, alHostOutOctets, alHostCreateTime }
    STATUS  current
    DESCRIPTION
        "Counts the amount of traffic, by protocol, sent from and to
        each network address discovered by the probe. Implementation
        of this group requires implementation of the Network Layer
        Host Group."


    ::= { rmon2MIBGroups 6 }

alMatrixGroup OBJECT-GROUP
    OBJECTS { alMatrixSDPkts, alMatrixSDOctets, alMatrixSDCreateTime,
              alMatrixDSPkts, alMatrixDSOctets, alMatrixDSCreateTime,
              alMatrixTopNControlMatrixIndex,
              alMatrixTopNControlRateBase,
              alMatrixTopNControlTimeRemaining,
              alMatrixTopNControlGeneratedReports,
              alMatrixTopNControlDuration,
              alMatrixTopNControlRequestedSize,
              alMatrixTopNControlGrantedSize,
              alMatrixTopNControlStartTime,
              alMatrixTopNControlOwner, alMatrixTopNControlStatus,
              alMatrixTopNProtocolDirLocalIndex,
              alMatrixTopNSourceAddress, alMatrixTopNDestAddress,
              alMatrixTopNAppProtocolDirLocalIndex,
              alMatrixTopNPktRate, alMatrixTopNReversePktRate,
              alMatrixTopNOctetRate, alMatrixTopNReverseOctetRate }
    STATUS  current
    DESCRIPTION
        "Counts the amount of traffic, by protocol, sent between each
        pair of network addresses discovered by the
        probe. Implementation of this group requires implementation of
        the Network Layer Matrix Group."
    ::= { rmon2MIBGroups 7 }

usrHistoryGroup OBJECT-GROUP
    OBJECTS { usrHistoryControlObjects,
              usrHistoryControlBucketsRequested,
              usrHistoryControlBucketsGranted,
              usrHistoryControlInterval,
              usrHistoryControlOwner, usrHistoryControlStatus,
              usrHistoryObjectVariable, usrHistoryObjectSampleType,
              usrHistoryIntervalStart, usrHistoryIntervalEnd,
              usrHistoryAbsValue, usrHistoryValStatus }
    STATUS  current
    DESCRIPTION
        "The usrHistoryGroup provides user-defined collection of
        historical information from MIB objects on the probe."
    ::= { rmon2MIBGroups 8 }

probeInformationGroup OBJECT-GROUP
    OBJECTS { probeCapabilities,
              probeSoftwareRev, probeHardwareRev, probeDateTime }
    STATUS  current
    DESCRIPTION
        "This group describes various operating parameters of the


        probe as well as controlling the local time of the probe."
    ::= { rmon2MIBGroups 9 }

probeConfigurationGroup OBJECT-GROUP
    OBJECTS { probeResetControl, probeDownloadFile,
              probeDownloadTFTPServer, probeDownloadAction,
              probeDownloadStatus,
              serialMode, serialProtocol, serialTimeout,
              serialModemInitString, serialModemHangUpString,
              serialModemConnectResp, serialModemNoConnectResp,
              serialDialoutTimeout, serialStatus,
              netConfigIPAddress, netConfigSubnetMask,
              netConfigStatus, netDefaultGateway,
              trapDestCommunity, trapDestProtocol, trapDestAddress,
              trapDestOwner, trapDestStatus,
              serialConnectDestIpAddress, serialConnectType,
              serialConnectDialString, serialConnectSwitchConnectSeq,
              serialConnectSwitchDisconnectSeq,
              serialConnectSwitchResetSeq,
              serialConnectOwner, serialConnectStatus }
    STATUS  current
    DESCRIPTION
        "This group controls the configuration of various operating
        parameters of the probe."
    ::= { rmon2MIBGroups 10 }

rmon1EnhancementGroup OBJECT-GROUP
    OBJECTS { historyControlDroppedFrames, hostControlDroppedFrames,
              hostControlCreateTime, matrixControlDroppedFrames,
              matrixControlCreateTime, channelDroppedFrames,
              channelCreateTime, filterProtocolDirDataLocalIndex,
              filterProtocolDirLocalIndex }
    STATUS  current
    DESCRIPTION
        "This group adds some enhancements to RMON-1 that help
        management stations."
    ::= { rmon2MIBGroups 11 }

rmon1EthernetEnhancementGroup OBJECT-GROUP
    OBJECTS { etherStatsDroppedFrames, etherStatsCreateTime }
    STATUS  current
    DESCRIPTION
        "This group adds some enhancements to RMON-1 that help
        management stations."
    ::= { rmon2MIBGroups 12 }

rmon1TokenRingEnhancementGroup OBJECT-GROUP
    OBJECTS { tokenRingMLStatsDroppedFrames,


              tokenRingMLStatsCreateTime,
              tokenRingPStatsDroppedFrames, tokenRingPStatsCreateTime,
              ringStationControlDroppedFrames,
              ringStationControlCreateTime,
              sourceRoutingStatsDroppedFrames,
              sourceRoutingStatsCreateTime }
    STATUS  current
    DESCRIPTION
        "This group adds some enhancements to RMON-1 that help
        management stations."
    ::= { rmon2MIBGroups 13 }
END

-- ######################################################

--
-- File: rfc/rfc2096.mib
--

IP-FORWARD-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, IpAddress, Integer32, Gauge32
        FROM SNMPv2-SMI
    RowStatus
        FROM SNMPv2-TC
    ip
        FROM RFC1213-MIB
    MODULE-COMPLIANCE, OBJECT-GROUP
        FROM SNMPv2-CONF;

ipForward MODULE-IDENTITY
    LAST-UPDATED "9609190000Z"     -- Thu Sep 26 16:34:47 PDT 1996
    ORGANIZATION "IETF OSPF Working Group"
    CONTACT-INFO
     "        Fred Baker
      Postal: Cisco Systems
              519 Lado Drive
              Santa Barbara, California 93111

      Phone:  +1 805 681 0115
      Email:  fred@cisco.com
      "
    DESCRIPTION
            "The MIB module for the display of CIDR multipath IP Routes."
    REVISION      "9609190000Z"
    DESCRIPTION
            "Revisions made by the OSPF WG."
    ::= { ip 24 }

ipCidrRouteNumber OBJECT-TYPE
    SYNTAX   Gauge32
    MAX-ACCESS read-only
    STATUS   current
    DESCRIPTION
       "The number of current ipCidrRouteTable entries
       that are not invalid."
    ::= { ipForward 3 }

--  IP CIDR Route Table

--  The IP CIDR Route Table obsoletes and replaces the ipRoute
--  Table current in MIB-I and MIB-II and the IP Forwarding Table.
--  It adds knowledge of the autonomous system of the next hop,
--  multiple next hops, and policy routing, and Classless


--  Inter-Domain Routing.

ipCidrRouteTable OBJECT-TYPE
    SYNTAX   SEQUENCE OF IpCidrRouteEntry
    MAX-ACCESS not-accessible
    STATUS   current
    DESCRIPTION
       "This entity's IP Routing table."
    REFERENCE
       "RFC 1213 Section 6.6, The IP Group"
    ::= { ipForward 4 }

ipCidrRouteEntry OBJECT-TYPE
    SYNTAX   IpCidrRouteEntry
    MAX-ACCESS not-accessible
    STATUS   current
    DESCRIPTION
       "A particular route to  a  particular  destina-
       tion, under a particular policy."
    INDEX {
        ipCidrRouteDest,
        ipCidrRouteMask,
        ipCidrRouteTos,
        ipCidrRouteNextHop
        }
    ::= { ipCidrRouteTable 1 }

IpCidrRouteEntry ::=
    SEQUENCE {
        ipCidrRouteDest
            IpAddress,
        ipCidrRouteMask
            IpAddress,
        ipCidrRouteTos
             Integer32,
        ipCidrRouteNextHop
            IpAddress,
        ipCidrRouteIfIndex
            Integer32,
        ipCidrRouteType
            INTEGER,
        ipCidrRouteProto
            INTEGER,
        ipCidrRouteAge
            Integer32,
        ipCidrRouteInfo
            OBJECT IDENTIFIER,
        ipCidrRouteNextHopAS


            Integer32,
        ipCidrRouteMetric1
            Integer32,
        ipCidrRouteMetric2
            Integer32,
        ipCidrRouteMetric3
            Integer32,
        ipCidrRouteMetric4
            Integer32,
        ipCidrRouteMetric5
            Integer32,
        ipCidrRouteStatus
            RowStatus
    }

ipCidrRouteDest OBJECT-TYPE
    SYNTAX   IpAddress
    MAX-ACCESS read-only
    STATUS   current
    DESCRIPTION
       "The destination IP address of this route.

       This object may not take a Multicast (Class  D)
       address value.

       Any assignment (implicit or  otherwise)  of  an
       instance  of  this  object to a value x must be
       rejected if the bitwise logical-AND of  x  with
       the  value of the corresponding instance of the
       ipCidrRouteMask object is not equal to x."
    ::= { ipCidrRouteEntry 1 }

ipCidrRouteMask OBJECT-TYPE
    SYNTAX   IpAddress
    MAX-ACCESS read-only
    STATUS   current
    DESCRIPTION
       "Indicate the mask to be logical-ANDed with the
       destination  address  before  being compared to
       the value  in  the  ipCidrRouteDest  field.   For
       those  systems  that  do  not support arbitrary
       subnet masks, an agent constructs the value  of
       the  ipCidrRouteMask  by  reference to the IP Ad-
       dress Class.

       Any assignment (implicit or  otherwise)  of  an
       instance  of  this  object to a value x must be
       rejected if the bitwise logical-AND of  x  with


       the  value of the corresponding instance of the
       ipCidrRouteDest object is not equal to ipCidrRoute-
       Dest."
    ::= { ipCidrRouteEntry 2 }

-- The following convention is included for specification
-- of TOS Field contents.  At this time, the Host Requirements
-- and the Router Requirements documents disagree on the width
-- of the TOS field.  This mapping describes the Router
-- Requirements mapping, and leaves room to widen the TOS field
-- without impact to fielded systems.

ipCidrRouteTos OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-only
    STATUS   current
    DESCRIPTION
       "The policy specifier is the IP TOS Field.  The encoding
       of IP TOS is as specified  by  the  following convention.
       Zero indicates the default path if no more  specific
       policy applies.

       +-----+-----+-----+-----+-----+-----+-----+-----+
       |                 |                       |     |
       |   PRECEDENCE    |    TYPE OF SERVICE    |  0  |
       |                 |                       |     |
       +-----+-----+-----+-----+-----+-----+-----+-----+

                IP TOS                IP TOS
           Field     Policy      Field     Policy
           Contents    Code      Contents    Code
           0 0 0 0  ==>   0      0 0 0 1  ==>   2
           0 0 1 0  ==>   4      0 0 1 1  ==>   6
           0 1 0 0  ==>   8      0 1 0 1  ==>  10
           0 1 1 0  ==>  12      0 1 1 1  ==>  14
           1 0 0 0  ==>  16      1 0 0 1  ==>  18
           1 0 1 0  ==>  20      1 0 1 1  ==>  22
           1 1 0 0  ==>  24      1 1 0 1  ==>  26
           1 1 1 0  ==>  28      1 1 1 1  ==>  30"
    ::= { ipCidrRouteEntry 3 }

ipCidrRouteNextHop OBJECT-TYPE
    SYNTAX   IpAddress
    MAX-ACCESS read-only
    STATUS   current
    DESCRIPTION
       "On remote routes, the address of the next sys-
       tem en route; Otherwise, 0.0.0.0."


    ::= { ipCidrRouteEntry 4 }

ipCidrRouteIfIndex OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-create
    STATUS   current
    DESCRIPTION
       "The ifIndex value which identifies  the  local
       interface  through  which  the next hop of this
       route should be reached."
    DEFVAL { 0 }
    ::= { ipCidrRouteEntry 5 }

ipCidrRouteType OBJECT-TYPE
    SYNTAX   INTEGER {
                other    (1), -- not specified by this MIB
                reject   (2), -- route which discards traffic
                local    (3), -- local interface
                remote   (4)  -- remote destination
             }
    MAX-ACCESS read-create
    STATUS   current
    DESCRIPTION
       "The type of route.  Note that local(3)  refers
       to  a route for which the next hop is the final
       destination; remote(4) refers to  a  route  for
       which  the  next  hop is not the final destina-
       tion.

       Routes which do not result in traffic forwarding or
       rejection should not be displayed even if the
       implementation keeps them stored internally.

       reject (2) refers to a route which, if matched, discards
       the message as unreachable. This is used in some
       protocols as a means of correctly aggregating routes."
    ::= { ipCidrRouteEntry 6 }

ipCidrRouteProto OBJECT-TYPE
    SYNTAX   INTEGER {
                other     (1),  -- not specified
                local     (2),  -- local interface
                netmgmt   (3),  -- static route
                icmp      (4),  -- result of ICMP Redirect

                        -- the following are all dynamic
                        -- routing protocols


                egp        (5),  -- Exterior Gateway Protocol
                ggp        (6),  -- Gateway-Gateway Protocol
                hello      (7),  -- FuzzBall HelloSpeak
                rip        (8),  -- Berkeley RIP or RIP-II
                isIs       (9),  -- Dual IS-IS
                esIs       (10), -- ISO 9542
                ciscoIgrp  (11), -- Cisco IGRP
                bbnSpfIgp  (12), -- BBN SPF IGP
                ospf       (13), -- Open Shortest Path First
                bgp        (14), -- Border Gateway Protocol
                idpr       (15), -- InterDomain Policy Routing
                ciscoEigrp (16)  -- Cisco EIGRP
             }
    MAX-ACCESS read-only
    STATUS   current
    DESCRIPTION
       "The routing mechanism via which this route was
       learned.  Inclusion of values for gateway rout-
       ing protocols is not  intended  to  imply  that
       hosts should support those protocols."
    ::= { ipCidrRouteEntry 7 }

ipCidrRouteAge OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-only
    STATUS   current
    DESCRIPTION
       "The number of seconds  since  this  route  was
       last  updated  or  otherwise  determined  to be
       correct.  Note that no semantics of  `too  old'
       can  be implied except through knowledge of the
       routing  protocol  by  which  the   route   was
       learned."
    DEFVAL  { 0 }
    ::= { ipCidrRouteEntry 8 }

ipCidrRouteInfo OBJECT-TYPE
    SYNTAX   OBJECT IDENTIFIER
    MAX-ACCESS read-create
    STATUS   current
    DESCRIPTION
       "A reference to MIB definitions specific to the
       particular  routing protocol which is responsi-
       ble for this route, as determined by the  value
       specified  in the route's ipCidrRouteProto value.
       If this information is not present,  its  value
       should be set to the OBJECT IDENTIFIER { 0 0 },
       which is a syntactically valid object  identif-


       ier, and any implementation conforming to ASN.1
       and the Basic Encoding Rules must  be  able  to
       generate and recognize this value."
    ::= { ipCidrRouteEntry 9 }

ipCidrRouteNextHopAS OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-create
    STATUS   current
    DESCRIPTION
       "The Autonomous System Number of the Next  Hop.
       The  semantics of this object are determined by
       the routing-protocol specified in  the  route's
       ipCidrRouteProto  value. When  this object is
       unknown or not relevant its value should be set
       to zero."
    DEFVAL { 0 }
    ::= { ipCidrRouteEntry 10 }

ipCidrRouteMetric1 OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-create
    STATUS   current
    DESCRIPTION
       "The primary routing  metric  for  this  route.
       The  semantics of this metric are determined by
       the routing-protocol specified in  the  route's
       ipCidrRouteProto  value.   If  this metric is not
       used, its value should be set to -1."
    DEFVAL { -1 }
    ::= { ipCidrRouteEntry 11 }

ipCidrRouteMetric2 OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-create
    STATUS   current
    DESCRIPTION
       "An alternate routing metric  for  this  route.
       The  semantics of this metric are determined by
       the routing-protocol specified in  the  route's
       ipCidrRouteProto  value.   If  this metric is not
       used, its value should be set to -1."
    DEFVAL { -1 }
    ::= { ipCidrRouteEntry 12 }

ipCidrRouteMetric3 OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-create


    STATUS   current
    DESCRIPTION
       "An alternate routing metric  for  this  route.
       The  semantics of this metric are determined by
       the routing-protocol specified in  the  route's
       ipCidrRouteProto  value.   If  this metric is not
       used, its value should be set to -1."
    DEFVAL { -1 }
    ::= { ipCidrRouteEntry 13 }

ipCidrRouteMetric4 OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-create
    STATUS   current
    DESCRIPTION
       "An alternate routing metric  for  this  route.
       The  semantics of this metric are determined by
       the routing-protocol specified in  the  route's
       ipCidrRouteProto  value.   If  this metric is not
       used, its value should be set to -1."
    DEFVAL { -1 }
    ::= { ipCidrRouteEntry 14 }

ipCidrRouteMetric5 OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-create
    STATUS   current
    DESCRIPTION
       "An alternate routing metric  for  this  route.
       The  semantics of this metric are determined by
       the routing-protocol specified in  the  route's
       ipCidrRouteProto  value.   If  this metric is not
       used, its value should be set to -1."
    DEFVAL { -1 }
    ::= { ipCidrRouteEntry 15 }

ipCidrRouteStatus OBJECT-TYPE
    SYNTAX   RowStatus
    MAX-ACCESS read-create
    STATUS   current
    DESCRIPTION
       "The row status variable, used according to
       row installation and removal conventions."
    ::= { ipCidrRouteEntry 16 }

-- conformance information

ipForwardConformance OBJECT IDENTIFIER ::= { ipForward 5 }


ipForwardGroups      OBJECT IDENTIFIER ::= { ipForwardConformance 1 }
ipForwardCompliances OBJECT IDENTIFIER ::= { ipForwardConformance 2 }

-- compliance statements

ipForwardCompliance MODULE-COMPLIANCE
   STATUS  current
   DESCRIPTION
       "The compliance statement for SNMPv2 entities
       which implement the ipForward MIB."

   MODULE  -- this module
   MANDATORY-GROUPS { ipForwardCidrRouteGroup }

   ::= { ipForwardCompliances 1 }

-- units of conformance

ipForwardCidrRouteGroup OBJECT-GROUP
    OBJECTS { ipCidrRouteNumber,
              ipCidrRouteDest, ipCidrRouteMask, ipCidrRouteTos,
              ipCidrRouteNextHop, ipCidrRouteIfIndex, ipCidrRouteType,
              ipCidrRouteProto, ipCidrRouteAge, ipCidrRouteInfo,
              ipCidrRouteNextHopAS, ipCidrRouteMetric1,
              ipCidrRouteMetric2, ipCidrRouteMetric3,
              ipCidrRouteMetric4, ipCidrRouteMetric5, ipCidrRouteStatus
        }
    STATUS  current
    DESCRIPTION
       "The CIDR Route Table."
    ::= { ipForwardGroups 3 }

-- Obsoleted Definitions - Objects

ipForwardNumber OBJECT-TYPE
    SYNTAX   Gauge32
    MAX-ACCESS read-only
    STATUS   obsolete
    DESCRIPTION
       "The number of current  ipForwardTable  entries
       that are not invalid."
    ::= { ipForward 1 }

--  IP Forwarding Table

--  The IP Forwarding Table obsoletes and replaces the ipRoute
--  Table current in MIB-I and MIB-II.  It adds knowledge of
--  the autonomous system of the next hop, multiple next hop


--  support, and policy routing support.

ipForwardTable OBJECT-TYPE
    SYNTAX   SEQUENCE OF IpForwardEntry
    MAX-ACCESS not-accessible
    STATUS   obsolete
    DESCRIPTION
       "This entity's IP Routing table."
    REFERENCE
       "RFC 1213 Section 6.6, The IP Group"
    ::= { ipForward 2 }

ipForwardEntry OBJECT-TYPE
    SYNTAX   IpForwardEntry
    MAX-ACCESS not-accessible
    STATUS   obsolete
    DESCRIPTION
       "A particular route to  a  particular  destina-
       tion, under a particular policy."
    INDEX {
        ipForwardDest,
        ipForwardProto,
        ipForwardPolicy,
        ipForwardNextHop
        }
    ::= { ipForwardTable 1 }

IpForwardEntry ::=
    SEQUENCE {
        ipForwardDest
            IpAddress,
        ipForwardMask
            IpAddress,
        ipForwardPolicy
             Integer32,
        ipForwardNextHop
            IpAddress,
        ipForwardIfIndex
            Integer32,
        ipForwardType
            INTEGER,
        ipForwardProto
            INTEGER,
        ipForwardAge
            Integer32,
        ipForwardInfo
            OBJECT IDENTIFIER,
        ipForwardNextHopAS


            Integer32,
        ipForwardMetric1
            Integer32,
        ipForwardMetric2
            Integer32,
        ipForwardMetric3
            Integer32,
        ipForwardMetric4
            Integer32,
        ipForwardMetric5
            Integer32
    }

ipForwardDest OBJECT-TYPE
    SYNTAX   IpAddress
    MAX-ACCESS read-only
    STATUS   obsolete
    DESCRIPTION
       "The destination IP address of this route.   An
       entry  with  a value of 0.0.0.0 is considered a
       default route.

       This object may not take a Multicast (Class  D)
       address value.

       Any assignment (implicit or  otherwise)  of  an
       instance  of  this  object to a value x must be
       rejected if the bitwise logical-AND of  x  with
       the  value of the corresponding instance of the
       ipForwardMask object is not equal to x."
    ::= { ipForwardEntry 1 }

ipForwardMask OBJECT-TYPE
    SYNTAX   IpAddress
    MAX-ACCESS read-create
    STATUS   obsolete
    DESCRIPTION
       "Indicate the mask to be logical-ANDed with the
       destination  address  before  being compared to
       the value  in  the  ipForwardDest  field.   For
       those  systems  that  do  not support arbitrary
       subnet masks, an agent constructs the value  of
       the  ipForwardMask  by  reference to the IP Ad-
       dress Class.

       Any assignment (implicit or  otherwise)  of  an
       instance  of  this  object to a value x must be
       rejected if the bitwise logical-AND of  x  with


       the  value of the corresponding instance of the
       ipForwardDest object is not equal to ipForward-
       Dest."
    DEFVAL { '00000000'h }      -- 0.0.0.0
    ::= { ipForwardEntry 2 }

-- The following convention is included for specification
-- of TOS Field contents.  At this time, the Host Requirements
-- and the Router Requirements documents disagree on the width
-- of the TOS field.  This mapping describes the Router
-- Requirements mapping, and leaves room to widen the TOS field
-- without impact to fielded systems.

ipForwardPolicy OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-only
    STATUS   obsolete
    DESCRIPTION
       "The general set of conditions that would cause
       the  selection  of  one multipath route (set of
       next hops for a given destination) is  referred
       to as 'policy'.

       Unless the mechanism indicated by ipForwardPro-
       to specifies otherwise, the policy specifier is
       the IP TOS Field.  The encoding of IP TOS is as
        specified  by  the  following convention.  Zero
       indicates the default path if no more  specific
       policy applies.

       +-----+-----+-----+-----+-----+-----+-----+-----+
       |                 |                       |     |
       |   PRECEDENCE    |    TYPE OF SERVICE    |  0  |
       |                 |                       |     |
       +-----+-----+-----+-----+-----+-----+-----+-----+

                IP TOS                IP TOS
           Field     Policy      Field     Policy
           Contents    Code      Contents    Code
           0 0 0 0  ==>   0      0 0 0 1  ==>   2
           0 0 1 0  ==>   4      0 0 1 1  ==>   6
           0 1 0 0  ==>   8      0 1 0 1  ==>  10
           0 1 1 0  ==>  12      0 1 1 1  ==>  14
           1 0 0 0  ==>  16      1 0 0 1  ==>  18
           1 0 1 0  ==>  20      1 0 1 1  ==>  22
           1 1 0 0  ==>  24      1 1 0 1  ==>  26
           1 1 1 0  ==>  28      1 1 1 1  ==>  30


       Protocols defining 'policy' otherwise must  ei-
       ther define a set of values which are valid for
       this  object  or  must  implement  an  integer-
       instanced  policy table for which this object's
       value acts as an index."
    ::= { ipForwardEntry 3 }

ipForwardNextHop OBJECT-TYPE
    SYNTAX   IpAddress
    MAX-ACCESS read-only
    STATUS   obsolete
    DESCRIPTION
       "On remote routes, the address of the next sys-
       tem en route; Otherwise, 0.0.0.0."
    ::= { ipForwardEntry 4 }

ipForwardIfIndex OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-create
    STATUS   obsolete
    DESCRIPTION
       "The ifIndex value which identifies  the  local
       interface  through  which  the next hop of this
       route should be reached."
    DEFVAL { 0 }
    ::= { ipForwardEntry 5 }

ipForwardType OBJECT-TYPE
    SYNTAX   INTEGER {
                other    (1), -- not specified by this MIB
                invalid  (2), -- logically deleted
                local    (3), -- local interface
                remote   (4)  -- remote destination
             }
    MAX-ACCESS read-create
    STATUS   obsolete
    DESCRIPTION
       "The type of route.  Note that local(3)  refers
       to  a route for which the next hop is the final
       destination; remote(4) refers to  a  route  for
       which  the  next  hop is not the final destina-
       tion.

       Setting this object to the value invalid(2) has
       the  effect  of  invalidating the corresponding
       entry in the ipForwardTable object.   That  is,
       it  effectively  disassociates  the destination
       identified with said entry from the route iden-


       tified    with    said   entry.    It   is   an
       implementation-specific matter  as  to  whether
       the agent removes an invalidated entry from the
       table.  Accordingly, management  stations  must
       be prepared to receive tabular information from
       agents that corresponds to entries not current-
       ly  in  use.  Proper interpretation of such en-
       tries requires examination of the relevant  ip-
       ForwardType object."
    DEFVAL { invalid }
    ::= { ipForwardEntry 6 }

ipForwardProto OBJECT-TYPE
    SYNTAX   INTEGER {
                other     (1),  -- not specified
                local     (2),  -- local interface
                netmgmt   (3),  -- static route
                icmp      (4),  -- result of ICMP Redirect

                        -- the following are all dynamic
                        -- routing protocols
                egp       (5),  -- Exterior Gateway Protocol
                ggp       (6),  -- Gateway-Gateway Protocol
                hello     (7),  -- FuzzBall HelloSpeak
                rip       (8),  -- Berkeley RIP or RIP-II
                is-is     (9),  -- Dual IS-IS
                es-is     (10), -- ISO 9542
                ciscoIgrp (11), -- Cisco IGRP
                bbnSpfIgp (12), -- BBN SPF IGP
                ospf      (13), -- Open Shortest Path First
                bgp       (14), -- Border Gateway Protocol
                idpr      (15)  -- InterDomain Policy Routing
             }
    MAX-ACCESS read-only
    STATUS   obsolete
    DESCRIPTION
       "The routing mechanism via which this route was
       learned.  Inclusion of values for gateway rout-
       ing protocols is not  intended  to  imply  that
       hosts should support those protocols."
    ::= { ipForwardEntry 7 }

ipForwardAge OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-only
    STATUS   obsolete
    DESCRIPTION
       "The number of seconds  since  this  route  was


       last  updated  or  otherwise  determined  to be
       correct.  Note that no semantics of  `too  old'
       can  be implied except through knowledge of the
       routing  protocol  by  which  the   route   was
       learned."
    DEFVAL  { 0 }
    ::= { ipForwardEntry 8 }

ipForwardInfo OBJECT-TYPE
    SYNTAX   OBJECT IDENTIFIER
    MAX-ACCESS read-create
    STATUS   obsolete
    DESCRIPTION
       "A reference to MIB definitions specific to the
       particular  routing protocol which is responsi-
       ble for this route, as determined by the  value
       specified  in the route's ipForwardProto value.
       If this information is not present,  its  value
       should be set to the OBJECT IDENTIFIER { 0 0 },
       which is a syntactically valid object  identif-
       ier, and any implementation conforming to ASN.1
       and the Basic Encoding Rules must  be  able  to
       generate and recognize this value."
    ::= { ipForwardEntry 9 }

ipForwardNextHopAS OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-create
    STATUS   obsolete
    DESCRIPTION
       "The Autonomous System Number of the Next  Hop.
       When  this  is  unknown  or not relevant to the
       protocol indicated by ipForwardProto, zero."
    DEFVAL { 0 }
    ::= { ipForwardEntry 10 }

ipForwardMetric1 OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-create
    STATUS   obsolete
    DESCRIPTION
       "The primary routing  metric  for  this  route.
       The  semantics of this metric are determined by
       the routing-protocol specified in  the  route's
       ipForwardProto  value.   If  this metric is not
       used, its value should be set to -1."
    DEFVAL { -1 }
    ::= { ipForwardEntry 11 }


ipForwardMetric2 OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-create
    STATUS   obsolete
    DESCRIPTION
       "An alternate routing metric  for  this  route.
       The  semantics of this metric are determined by
       the routing-protocol specified in  the  route's
       ipForwardProto  value.   If  this metric is not
       used, its value should be set to -1."

    DEFVAL { -1 }
    ::= { ipForwardEntry 12 }

ipForwardMetric3 OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-create
    STATUS   obsolete
    DESCRIPTION
       "An alternate routing metric  for  this  route.
       The  semantics of this metric are determined by
       the routing-protocol specified in  the  route's
       ipForwardProto  value.   If  this metric is not
       used, its value should be set to -1."
    DEFVAL { -1 }
    ::= { ipForwardEntry 13 }

ipForwardMetric4 OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-create
    STATUS   obsolete
    DESCRIPTION
       "An alternate routing metric  for  this  route.
       The  semantics of this metric are determined by
       the routing-protocol specified in  the  route's
       ipForwardProto  value.   If  this metric is not
       used, its value should be set to -1."
    DEFVAL { -1 }
    ::= { ipForwardEntry 14 }

ipForwardMetric5 OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS read-create
    STATUS   obsolete
    DESCRIPTION
       "An alternate routing metric  for  this  route.
       The  semantics of this metric are determined by
       the routing-protocol specified in  the  route's


       ipForwardProto  value.   If  this metric is not
       used, its value should be set to -1."
    DEFVAL { -1 }
    ::= { ipForwardEntry 15 }

-- Obsoleted Definitions - Groups
-- compliance statements

ipForwardOldCompliance MODULE-COMPLIANCE
   STATUS  obsolete
   DESCRIPTION
       "The compliance statement for SNMP entities
       which implement the ipForward MIB."

   MODULE  -- this module
   MANDATORY-GROUPS { ipForwardMultiPathGroup }

   ::= { ipForwardCompliances 2 }

ipForwardMultiPathGroup OBJECT-GROUP
    OBJECTS { ipForwardNumber,
              ipForwardDest, ipForwardMask, ipForwardPolicy,
              ipForwardNextHop, ipForwardIfIndex, ipForwardType,
              ipForwardProto, ipForwardAge, ipForwardInfo,
              ipForwardNextHopAS,
              ipForwardMetric1, ipForwardMetric2, ipForwardMetric3,
              ipForwardMetric4, ipForwardMetric5
        }
    STATUS  obsolete
    DESCRIPTION
       "IP Multipath Route Table."
    ::= { ipForwardGroups 2 }

END

-- ######################################################

--
-- File: rfc/rfc2206.mib
--

RSVP-MIB DEFINITIONS ::= BEGIN

        IMPORTS
                MODULE-IDENTITY, OBJECT-TYPE, Gauge32,
                NOTIFICATION-TYPE, Integer32, mib-2
                                                    FROM SNMPv2-SMI
                TEXTUAL-CONVENTION, TruthValue, RowStatus,
                TimeStamp, TestAndIncr, TimeInterval
                                                    FROM SNMPv2-TC
                MODULE-COMPLIANCE, OBJECT-GROUP,
                NOTIFICATION-GROUP                  FROM SNMPv2-CONF
                Port, SessionNumber, SessionType,
                Protocol, QosService, intSrvFlowStatus,
                MessageSize, BitRate, BurstSize
                                            FROM INTEGRATED-SERVICES-MIB
                ifIndex, InterfaceIndex             FROM IF-MIB;

    rsvp MODULE-IDENTITY
            LAST-UPDATED "9511030500Z" -- Thu Aug 28 09:03:53 PDT 1997
            ORGANIZATION "IETF RSVP Working Group"
            CONTACT-INFO
           "       Fred Baker
           Postal: Cisco Systems
                   519 Lado Drive
                   Santa Barbara, California 93111
           Tel:    +1 805 681 0115
           E-Mail: fred@cisco.com


                   John Krawczyk
           Postal: ArrowPoint Communications
                   235 Littleton Road
                   Westford, Massachusetts 01886
           Tel:    +1 508 692 5875
           E-Mail: jjk@tiac.net

                   Arun Sastry
           Postal: Cisco Systems
                   210 W. Tasman Drive
                   San Jose, California 95134
           Tel:    +1 408 526 7685
           E-Mail: arun@cisco.com"
       DESCRIPTION
          "The MIB module to describe the RSVP Protocol"
      ::= { mib-2 51 }

  rsvpObjects               OBJECT IDENTIFIER
                            ::= { rsvp 1 } -- tables
  rsvpGenObjects            OBJECT IDENTIFIER
                            ::= { rsvp 2 } -- global objects
  rsvpNotificationsPrefix   OBJECT IDENTIFIER
                            ::= { rsvp 3 } -- traps
  rsvpConformance           OBJECT IDENTIFIER
                            ::= { rsvp 4 } -- conformance

    RsvpEncapsulation ::= TEXTUAL-CONVENTION
         STATUS   current
         DESCRIPTION
           "This indicates the encapsulation that an  RSVP
           Neighbor is perceived to be using."
        SYNTAX   INTEGER {
                   ip (1),   -- IP Protocol 46
                   udp (2),  -- UDP Encapsulation
                   both (3)  -- neighbor is using both encapsulations
                 }

    RefreshInterval ::= TEXTUAL-CONVENTION
         DISPLAY-HINT "d"
         STATUS   current
         DESCRIPTION
           "The number of milliseconds that  are  expected
           to elapse between refreshes of path or reserva-
           tion state.  Unrefreshed  Path  or  reservation
           state is removed after a small multiple of this
           period."


        SYNTAX   INTEGER (0..'7FFFFFFF'h)

--      The RSVP Session Statistics Database displays statistics
--      relating to the number of senders and receivers in each
--      session.

    rsvpSessionTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RsvpSessionEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "A table of all sessions seen by a  given  sys-
           tem."
       ::= { rsvpObjects 1 }

    rsvpSessionEntry OBJECT-TYPE
        SYNTAX      RsvpSessionEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "A single session seen by a given system."
       INDEX { rsvpSessionNumber }
       ::= { rsvpSessionTable 1 }

    RsvpSessionEntry ::=
        SEQUENCE {
        rsvpSessionNumber           SessionNumber,
        rsvpSessionType             SessionType,
        rsvpSessionDestAddr         OCTET STRING,
        rsvpSessionDestAddrLength   INTEGER,
        rsvpSessionProtocol         Protocol,
        rsvpSessionPort             Port,
        rsvpSessionSenders          Gauge32,
        rsvpSessionReceivers        Gauge32,
        rsvpSessionRequests         Gauge32
        }

    rsvpSessionNumber OBJECT-TYPE
        SYNTAX      SessionNumber
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "The number of this session.  This is for  SNMP


           Indexing  purposes  only and has no relation to
           any protocol value."
       ::= { rsvpSessionEntry 1 }

    rsvpSessionType OBJECT-TYPE
        SYNTAX      SessionType
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The type of session (IP4, IP6, IP6  with  flow
           information, etc)."
       ::= { rsvpSessionEntry 2 }

    rsvpSessionDestAddr OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(4..16))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The destination address used by all senders in
           this  session.   This object may not be changed
           when the value of the RowStatus object is  'ac-
           tive'."
       ::= { rsvpSessionEntry 3 }

    rsvpSessionDestAddrLength OBJECT-TYPE
        SYNTAX      INTEGER(0..128)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The CIDR prefix length of the session address,
           which  is  32  for  IP4  host and multicast ad-
           dresses, and 128 for IP6 addresses.   This  ob-
           ject  may  not be changed when the value of the
           RowStatus object is 'active'."
       ::= { rsvpSessionEntry 4 }

    rsvpSessionProtocol OBJECT-TYPE
        SYNTAX      Protocol
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The IP Protocol used by  this  session.   This
           object may not be changed when the value of the
           RowStatus object is 'active'."


       ::= { rsvpSessionEntry 5 }

    rsvpSessionPort OBJECT-TYPE
        SYNTAX      Port
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The UDP or TCP port number used as a  destina-
           tion  port for all senders in this session.  If
           the IP protocol in use, specified  by  rsvpSen-
           derProtocol,  is  50  (ESP)  or  51  (AH), this
           represents a virtual destination  port  number.
           A  value of zero indicates that the IP protocol
           in use does not have ports.   This  object  may
           not  be changed when the value of the RowStatus
           object is 'active'."
       ::= { rsvpSessionEntry 6 }

    rsvpSessionSenders OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The number of distinct senders currently known
           to be part of this session."
       ::= { rsvpSessionEntry 7 }

    rsvpSessionReceivers OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The number of reservations being requested  of
           this system for this session."
       ::= { rsvpSessionEntry 8 }

    rsvpSessionRequests OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The number of reservation requests this system
           is sending upstream for this session."
       ::= { rsvpSessionEntry 9 }


    rsvpBadPackets OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "This object keeps a count of the number of bad
           RSVP packets received."
       ::= { rsvpGenObjects 1 }

--      The RSVP Session Sender Database contains the information
--      displayed by senders regarding their potential contribution
--      to session data content. It is in essence a list of the
--      valid PATH messages that the RSVP Router or Host is receiving.

    rsvpSenderNewIndex OBJECT-TYPE
        SYNTAX      TestAndIncr
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
           "This  object  is  used  to  assign  values  to
           rsvpSenderNumber  as described in 'Textual Con-
           ventions  for  SNMPv2'.   The  network  manager
           reads  the  object,  and  then writes the value
           back in the SET that creates a new instance  of
           rsvpSenderEntry.   If  the  SET  fails with the
           code 'inconsistentValue', then the process must
           be  repeated; If the SET succeeds, then the ob-
           ject is incremented, and the  new  instance  is
           created according to the manager's directions."
       ::= { rsvpGenObjects 2 }

    rsvpSenderTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RsvpSenderEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "Information describing the  state  information
           displayed by senders in PATH messages."
       ::= { rsvpObjects 2 }

    rsvpSenderEntry OBJECT-TYPE
        SYNTAX      RsvpSenderEntry
        MAX-ACCESS  not-accessible
        STATUS      current


        DESCRIPTION
           "Information describing the  state  information
           displayed by a single sender's PATH message."
       INDEX { rsvpSessionNumber, rsvpSenderNumber }
       ::= { rsvpSenderTable 1 }

RsvpSenderEntry ::=

    SEQUENCE {
        rsvpSenderNumber                        SessionNumber,
        rsvpSenderType                          SessionType,
        rsvpSenderDestAddr                      OCTET STRING,
        rsvpSenderAddr                          OCTET STRING,
        rsvpSenderDestAddrLength                INTEGER,
        rsvpSenderAddrLength                    INTEGER,
        rsvpSenderProtocol                      Protocol,
        rsvpSenderDestPort                      Port,
        rsvpSenderPort                          Port,
        rsvpSenderFlowId                        INTEGER,
        rsvpSenderHopAddr                       OCTET STRING,
        rsvpSenderHopLih                        Integer32,
        rsvpSenderInterface                     InterfaceIndex,
        rsvpSenderTSpecRate                     BitRate,
        rsvpSenderTSpecPeakRate                 BitRate,
        rsvpSenderTSpecBurst                    BurstSize,
        rsvpSenderTSpecMinTU                    MessageSize,
        rsvpSenderTSpecMaxTU                    MessageSize,
        rsvpSenderInterval                      RefreshInterval,
        rsvpSenderRSVPHop                       TruthValue,
        rsvpSenderLastChange                    TimeStamp,
        rsvpSenderPolicy                        OCTET STRING,
        rsvpSenderAdspecBreak                   TruthValue,
        rsvpSenderAdspecHopCount                INTEGER,
        rsvpSenderAdspecPathBw                  BitRate,
        rsvpSenderAdspecMinLatency              Integer32,
        rsvpSenderAdspecMtu                     INTEGER,
        rsvpSenderAdspecGuaranteedSvc           TruthValue,
        rsvpSenderAdspecGuaranteedBreak         TruthValue,
        rsvpSenderAdspecGuaranteedCtot          Integer32,
        rsvpSenderAdspecGuaranteedDtot          Integer32,
        rsvpSenderAdspecGuaranteedCsum          Integer32,
        rsvpSenderAdspecGuaranteedDsum          Integer32,
        rsvpSenderAdspecGuaranteedHopCount      INTEGER,
        rsvpSenderAdspecGuaranteedPathBw        BitRate,
        rsvpSenderAdspecGuaranteedMinLatency    Integer32,
        rsvpSenderAdspecGuaranteedMtu           INTEGER,
        rsvpSenderAdspecCtrlLoadSvc             TruthValue,


        rsvpSenderAdspecCtrlLoadBreak           TruthValue,
        rsvpSenderAdspecCtrlLoadHopCount        INTEGER,
        rsvpSenderAdspecCtrlLoadPathBw          BitRate,
        rsvpSenderAdspecCtrlLoadMinLatency      Integer32,
        rsvpSenderAdspecCtrlLoadMtu             INTEGER,
        rsvpSenderStatus                        RowStatus,

        rsvpSenderTTL                           INTEGER
    }

    rsvpSenderNumber OBJECT-TYPE
        SYNTAX      SessionNumber
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "The number of this sender.  This is  for  SNMP
           Indexing  purposes  only and has no relation to
           any protocol value."
       ::= { rsvpSenderEntry 1 }

    rsvpSenderType OBJECT-TYPE
        SYNTAX      SessionType
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The type of session (IP4, IP6, IP6  with  flow
           information, etc)."
       ::= { rsvpSenderEntry 2 }

    rsvpSenderDestAddr OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(4..16))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The destination address used by all senders in
           this  session.   This object may not be changed
           when the value of the RowStatus object is  'ac-
           tive'."
       ::= { rsvpSenderEntry 3 }

    rsvpSenderAddr OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(4..16))
        MAX-ACCESS  read-create
        STATUS      current


        DESCRIPTION
           "The source address used by this sender in this
           session.   This  object may not be changed when
           the value of the RowStatus object is 'active'."
       ::= { rsvpSenderEntry 4 }

    rsvpSenderDestAddrLength OBJECT-TYPE
        SYNTAX      INTEGER(0..128)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The length of the destination address in bits.
           This  is  the CIDR Prefix Length, which for IP4
           hosts and multicast addresses is 32 bits.  This
           object may not be changed when the value of the
           RowStatus object is 'active'."
       ::= { rsvpSenderEntry 5 }

    rsvpSenderAddrLength OBJECT-TYPE
        SYNTAX      INTEGER(0..128)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The length of the sender's  address  in  bits.
           This  is  the CIDR Prefix Length, which for IP4
           hosts and multicast addresses is 32 bits.  This
           object may not be changed when the value of the
           RowStatus object is 'active'."
       ::= { rsvpSenderEntry 6 }

    rsvpSenderProtocol OBJECT-TYPE
        SYNTAX      Protocol
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The IP Protocol used by  this  session.   This
           object may not be changed when the value of the
           RowStatus object is 'active'."
       ::= { rsvpSenderEntry 7 }

    rsvpSenderDestPort OBJECT-TYPE
        SYNTAX      Port
        MAX-ACCESS  read-create
        STATUS      current


        DESCRIPTION
           "The UDP or TCP port number used as a  destina-
           tion  port for all senders in this session.  If
           the IP protocol in use, specified  by  rsvpSen-
           derProtocol,  is  50  (ESP)  or  51  (AH), this
           represents a virtual destination  port  number.
           A  value of zero indicates that the IP protocol
           in use does not have ports.   This  object  may
           not  be changed when the value of the RowStatus
           object is 'active'."
       ::= { rsvpSenderEntry 8 }

    rsvpSenderPort OBJECT-TYPE
        SYNTAX      Port
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The UDP or TCP port number used  as  a  source
           port  for  this sender in this session.  If the
           IP protocol in use, specified by rsvpSenderPro-
           tocol is 50 (ESP) or 51 (AH), this represents a
           generalized port identifier (GPI).  A value  of
           zero indicates that the IP protocol in use does
           not have ports.  This object may not be changed
           when  the value of the RowStatus object is 'ac-
           tive'."
       ::= { rsvpSenderEntry 9 }

    rsvpSenderFlowId OBJECT-TYPE
        SYNTAX      INTEGER (0..16777215)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The flow ID that  this  sender  is  using,  if
           this  is  an IPv6 session."
       ::= { rsvpSenderEntry 10 }

    rsvpSenderHopAddr OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(4..16))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The address used  by  the  previous  RSVP  hop
           (which may be the original sender)."
       ::= { rsvpSenderEntry 11 }


    rsvpSenderHopLih OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The Logical Interface Handle used by the  pre-
           vious  RSVP  hop  (which  may  be  the original
           sender)."
       ::= { rsvpSenderEntry 12 }

    rsvpSenderInterface OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The ifIndex value of the  interface  on  which
           this PATH message was most recently received."
       ::= { rsvpSenderEntry 13 }

    rsvpSenderTSpecRate OBJECT-TYPE
        SYNTAX      BitRate
        UNITS       "bits per second"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The Average Bit  Rate  of  the  sender's  data
           stream.   Within  a transmission burst, the ar-
           rival rate may be as fast  as  rsvpSenderTSpec-
           PeakRate  (if  supported by the service model);
           however, averaged across two or more burst  in-
           tervals,  the  rate  should not exceed rsvpSen-
           derTSpecRate.

           Note that this is a prediction, often based  on
           the  general  capability  of a type of codec or
           particular encoding; the measured average  rate
           may be significantly lower."
       ::= { rsvpSenderEntry 14 }

    rsvpSenderTSpecPeakRate OBJECT-TYPE
        SYNTAX      BitRate
        UNITS       "bits per second"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION


           "The Peak Bit Rate of the sender's data stream.
           Traffic  arrival is not expected to exceed this
           rate at any time, apart  from  the  effects  of
           jitter in the network.  If not specified in the
           TSpec, this returns zero or noSuchValue."
       ::= { rsvpSenderEntry 15 }

    rsvpSenderTSpecBurst OBJECT-TYPE
        SYNTAX      BurstSize
        UNITS       "bytes"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The size of the largest  burst  expected  from
           the sender at a time."
       ::= { rsvpSenderEntry 16 }

    rsvpSenderTSpecMinTU OBJECT-TYPE
        SYNTAX      MessageSize
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The minimum message size for  this  flow.  The
           policing  algorithm will treat smaller messages
           as though they are this size."
       ::= { rsvpSenderEntry 17 }

    rsvpSenderTSpecMaxTU OBJECT-TYPE
        SYNTAX      MessageSize
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The maximum message size for  this  flow.  The
           admission  algorithm  will  reject TSpecs whose
           Maximum Transmission Unit, plus  the  interface
           headers, exceed the interface MTU."
       ::= { rsvpSenderEntry 18 }

    rsvpSenderInterval OBJECT-TYPE
        SYNTAX      RefreshInterval
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The interval between refresh messages  as  ad-


           vertised by the Previous Hop."
       ::= { rsvpSenderEntry 19 }

    rsvpSenderRSVPHop OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If TRUE, the node believes that  the  previous
           IP  hop is an RSVP hop.  If FALSE, the node be-
           lieves that the previous IP hop may not  be  an
           RSVP hop."
       ::= { rsvpSenderEntry 20 }

    rsvpSenderLastChange OBJECT-TYPE
        SYNTAX      TimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The time of the last change in this PATH  mes-
           sage;  This is either the first time it was re-
           ceived or the time of the most recent change in
           parameters."
       ::= { rsvpSenderEntry 21 }

    rsvpSenderPolicy OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(4..65536))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The contents of the policy  object,  displayed
           as an uninterpreted string of octets, including
           the object header.  In the absence of  such  an
           object, this should be of zero length."
       ::= { rsvpSenderEntry 22 }

    rsvpSenderAdspecBreak OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The global break bit general  characterization
           parameter  from  the ADSPEC.  If TRUE, at least
           one non-IS hop was detected in  the  path.   If


           FALSE, no non-IS hops were detected."
       ::= { rsvpSenderEntry 23 }

    rsvpSenderAdspecHopCount OBJECT-TYPE
        SYNTAX      INTEGER (0..65535)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The hop count general characterization parame-
           ter  from  the  ADSPEC.   A  return  of zero or
           noSuchValue indicates one of the following con-
           ditions:

              the invalid bit was set
              the parameter was not present"
       ::= { rsvpSenderEntry 24 }

    rsvpSenderAdspecPathBw OBJECT-TYPE
        SYNTAX      BitRate
        UNITS       "bits per second"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The path bandwidth estimate general character-
           ization parameter from the ADSPEC.  A return of
           zero or noSuchValue indicates one of  the  fol-
           lowing conditions:

              the invalid bit was set
              the parameter was not present"
       ::= { rsvpSenderEntry 25 }

    rsvpSenderAdspecMinLatency OBJECT-TYPE
        SYNTAX      Integer32
        UNITS       "microseconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The minimum path latency general characteriza-
           tion  parameter  from  the ADSPEC.  A return of
           zero or noSuchValue indicates one of  the  fol-
           lowing conditions:

              the invalid bit was set
              the parameter was not present"


       ::= { rsvpSenderEntry 26 }

    rsvpSenderAdspecMtu OBJECT-TYPE
        SYNTAX      INTEGER (0..65535)
        UNITS       "bytes"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The composed Maximum Transmission Unit general
           characterization  parameter from the ADSPEC.  A
           return of zero or noSuchValue indicates one  of
           the following conditions:

              the invalid bit was set
              the parameter was not present"
       ::= { rsvpSenderEntry 27 }

    rsvpSenderAdspecGuaranteedSvc OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If TRUE, the ADSPEC contains a Guaranteed Ser-
           vice  fragment.   If FALSE, the ADSPEC does not
           contain a Guaranteed Service fragment."
       ::= { rsvpSenderEntry 28 }

    rsvpSenderAdspecGuaranteedBreak OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If TRUE, the Guaranteed Service  fragment  has
           its  'break'  bit  set,  indicating that one or
           more nodes along the path do  not  support  the
           guaranteed  service.   If  FALSE,  and rsvpSen-
           derAdspecGuaranteedSvc is TRUE, the 'break' bit
           is not set.

           If rsvpSenderAdspecGuaranteedSvc is FALSE, this
           returns FALSE or noSuchValue."
       ::= { rsvpSenderEntry 29 }

    rsvpSenderAdspecGuaranteedCtot OBJECT-TYPE


        SYNTAX      Integer32
        UNITS       "bytes"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION

           "If rsvpSenderAdspecGuaranteedSvc is TRUE, this
           is   the  end-to-end  composed  value  for  the
           guaranteed service 'C' parameter.  A return  of
           zero  or  noSuchValue indicates one of the fol-
           lowing conditions:

              the invalid bit was set
              the parameter was not present

           If rsvpSenderAdspecGuaranteedSvc is FALSE, this
           returns zero or noSuchValue."
       ::= { rsvpSenderEntry 30 }

    rsvpSenderAdspecGuaranteedDtot OBJECT-TYPE
        SYNTAX      Integer32
        UNITS       "microseconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If rsvpSenderAdspecGuaranteedSvc is TRUE, this
           is   the  end-to-end  composed  value  for  the
           guaranteed service 'D' parameter.  A return  of
           zero  or  noSuchValue indicates one of the fol-
           lowing conditions:

              the invalid bit was set
              the parameter was not present

           If rsvpSenderAdspecGuaranteedSvc is FALSE, this
           returns zero or noSuchValue."
       ::= { rsvpSenderEntry 31 }

    rsvpSenderAdspecGuaranteedCsum OBJECT-TYPE
        SYNTAX      Integer32
        UNITS       "bytes"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If rsvpSenderAdspecGuaranteedSvc is TRUE, this
           is  the  composed value for the guaranteed ser-


           vice 'C' parameter  since  the  last  reshaping
           point.   A  return of zero or noSuchValue indi-
           cates one of the following conditions:

              the invalid bit was set
              the parameter was not present

           If rsvpSenderAdspecGuaranteedSvc is FALSE, this
           returns zero or noSuchValue."
       ::= { rsvpSenderEntry 32 }

    rsvpSenderAdspecGuaranteedDsum OBJECT-TYPE
        SYNTAX      Integer32
        UNITS       "microseconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If rsvpSenderAdspecGuaranteedSvc is TRUE, this
           is  the  composed value for the guaranteed ser-
           vice 'D' parameter  since  the  last  reshaping
           point.   A  return of zero or noSuchValue indi-
           cates one of the following conditions:

              the invalid bit was set
              the parameter was not present

           If rsvpSenderAdspecGuaranteedSvc is FALSE, this
           returns zero or noSuchValue."
       ::= { rsvpSenderEntry 33 }

    rsvpSenderAdspecGuaranteedHopCount OBJECT-TYPE
        SYNTAX      INTEGER (0..65535)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION

           "If rsvpSenderAdspecGuaranteedSvc is TRUE, this
           is  the  service-specific  override  of the hop
           count general characterization  parameter  from
           the  ADSPEC.   A  return of zero or noSuchValue
           indicates one of the following conditions:

              the invalid bit was set
              the parameter was not present

           If rsvpSenderAdspecGuaranteedSvc is FALSE, this


           returns zero or noSuchValue."
       ::= { rsvpSenderEntry 34 }

    rsvpSenderAdspecGuaranteedPathBw OBJECT-TYPE
        SYNTAX      BitRate
        UNITS       "bits per second"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If rsvpSenderAdspecGuaranteedSvc is TRUE, this
           is  the  service-specific  override of the path
           bandwidth  estimate  general   characterization
           parameter from the ADSPEC.  A return of zero or
           noSuchValue indicates one of the following con-
           ditions:

              the invalid bit was set
              the parameter was not present

           If rsvpSenderAdspecGuaranteedSvc is FALSE, this
           returns zero or noSuchValue."
       ::= { rsvpSenderEntry 35 }

    rsvpSenderAdspecGuaranteedMinLatency OBJECT-TYPE
        SYNTAX      Integer32
        UNITS       "microseconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If rsvpSenderAdspecGuaranteedSvc is TRUE, this
           is the service-specific override of the minimum
           path latency general characterization parameter
           from  the  ADSPEC.  A return of zero or noSuch-
           Value indicates one  of  the  following  condi-
           tions:

              the invalid bit was set
              the parameter was not present

           If rsvpSenderAdspecGuaranteedSvc is FALSE, this
           returns zero or noSuchValue."
       ::= { rsvpSenderEntry 36 }

    rsvpSenderAdspecGuaranteedMtu OBJECT-TYPE
        SYNTAX      INTEGER (0..65535)


        UNITS       "bytes"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If rsvpSenderAdspecGuaranteedSvc is TRUE, this
           is  the  service-specific  override of the com-
           posed Maximum Transmission Unit general charac-
           terization parameter from the ADSPEC.  A return
           of zero or noSuchValue  indicates  one  of  the
           following conditions:

              the invalid bit was set
              the parameter was not present

           If rsvpSenderAdspecGuaranteedSvc is FALSE, this
           returns zero or noSuchValue."
       ::= { rsvpSenderEntry 37 }

    rsvpSenderAdspecCtrlLoadSvc OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If TRUE, the ADSPEC contains a Controlled Load
           Service  fragment.   If  FALSE, the ADSPEC does
           not contain a  Controlled  Load  Service  frag-
           ment."
       ::= { rsvpSenderEntry 38 }

    rsvpSenderAdspecCtrlLoadBreak OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If TRUE, the Controlled Load Service  fragment
           has its 'break' bit set, indicating that one or
           more nodes along the path do  not  support  the
           controlled   load   service.    If  FALSE,  and
           rsvpSenderAdspecCtrlLoadSvc   is   TRUE,    the
           'break' bit is not set.

           If rsvpSenderAdspecCtrlLoadSvc is  FALSE,  this
           returns FALSE or noSuchValue."
       ::= { rsvpSenderEntry 39 }


    rsvpSenderAdspecCtrlLoadHopCount OBJECT-TYPE
        SYNTAX      INTEGER (0..65535)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION

           "If rsvpSenderAdspecCtrlLoadSvc is  TRUE,  this
           is  the  service-specific  override  of the hop
           count general characterization  parameter  from
           the  ADSPEC.   A  return of zero or noSuchValue
           indicates one of the following conditions:

              the invalid bit was set
              the parameter was not present

           If rsvpSenderAdspecCtrlLoadSvc is  FALSE,  this
           returns zero or noSuchValue."
       ::= { rsvpSenderEntry 40 }

    rsvpSenderAdspecCtrlLoadPathBw OBJECT-TYPE
        SYNTAX      BitRate
        UNITS       "bits per second"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If rsvpSenderAdspecCtrlLoadSvc is  TRUE,  this
           is  the  service-specific  override of the path
           bandwidth  estimate  general   characterization
           parameter from the ADSPEC.  A return of zero or
           noSuchValue indicates one of the following con-
           ditions:

              the invalid bit was set
              the parameter was not present

           If rsvpSenderAdspecCtrlLoadSvc is  FALSE,  this
           returns zero or noSuchValue."
       ::= { rsvpSenderEntry 41 }

    rsvpSenderAdspecCtrlLoadMinLatency OBJECT-TYPE
        SYNTAX      Integer32
        UNITS       "microseconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If rsvpSenderAdspecCtrlLoadSvc is  TRUE,  this


           is the service-specific override of the minimum
           path latency general characterization parameter
           from  the  ADSPEC.  A return of zero or noSuch-
           Value indicates one  of  the  following  condi-
           tions:

              the invalid bit was set
              the parameter was not present

           If rsvpSenderAdspecCtrlLoadSvc is  FALSE,  this
           returns zero or noSuchValue."
       ::= { rsvpSenderEntry 42 }

    rsvpSenderAdspecCtrlLoadMtu OBJECT-TYPE
        SYNTAX      INTEGER (0..65535)
        UNITS       "bytes"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If rsvpSenderAdspecCtrlLoadSvc is  TRUE,  this
           is  the  service-specific  override of the com-
           posed Maximum Transmission Unit general charac-
           terization parameter from the ADSPEC.  A return
           of zero or noSuchValue  indicates  one  of  the
           following conditions:

              the invalid bit was set
              the parameter was not present

           If rsvpSenderAdspecCtrlLoadSvc is  FALSE,  this
           returns zero or noSuchValue."
       ::= { rsvpSenderEntry 43 }

    rsvpSenderStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "'active' for all active PATH  messages.   This
           object  may  be used to install static PATH in-
           formation or delete PATH information."
       ::= { rsvpSenderEntry 44 }

    rsvpSenderTTL OBJECT-TYPE
        SYNTAX      INTEGER (0..255)


        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The TTL value in the RSVP header that was last
           received."
       ::= { rsvpSenderEntry 45 }

    rsvpSenderOutInterfaceTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RsvpSenderOutInterfaceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "List of outgoing interfaces that PATH messages
           use.  The  ifIndex  is the ifIndex value of the
           egress interface."
       ::= { rsvpObjects 3 }

    rsvpSenderOutInterfaceEntry OBJECT-TYPE
        SYNTAX      RsvpSenderOutInterfaceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "List of outgoing interfaces that a  particular
           PATH message has."
       INDEX { rsvpSessionNumber, rsvpSenderNumber, ifIndex }
       ::= { rsvpSenderOutInterfaceTable 1 }

RsvpSenderOutInterfaceEntry ::=
    SEQUENCE {
        rsvpSenderOutInterfaceStatus            RowStatus
    }

    rsvpSenderOutInterfaceStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "'active' for all active PATH messages."
       ::= { rsvpSenderOutInterfaceEntry 1 }

--      The RSVP Reservation Requests Received Table contains the
--      information displayed by receivers regarding their needs with
--      respect to sessions and senders. It is in essence a list of the
--      valid RESV messages that the RSVP Router or Host is receiving.


    rsvpResvNewIndex OBJECT-TYPE
        SYNTAX      TestAndIncr
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
           "This  object  is  used  to  assign  values  to
           rsvpResvNumber as described in 'Textual Conven-
           tions for SNMPv2'.  The network  manager  reads
           the  object,  and then writes the value back in
           the  SET  that  creates  a  new   instance   of
           rsvpResvEntry.   If the SET fails with the code
           'inconsistentValue', then the process  must  be
           repeated;  If the SET succeeds, then the object
           is incremented, and the new instance is created
           according to the manager's directions."
       ::= { rsvpGenObjects 3 }

    rsvpResvTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RsvpResvEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "Information describing the  state  information
           displayed by receivers in RESV messages."
       ::= { rsvpObjects 4 }

    rsvpResvEntry OBJECT-TYPE
        SYNTAX      RsvpResvEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "Information describing the  state  information
           displayed  by  a single receiver's RESV message
           concerning a single sender."
       INDEX { rsvpSessionNumber, rsvpResvNumber }
       ::= { rsvpResvTable 1 }

    RsvpResvEntry ::=
        SEQUENCE {
            rsvpResvNumber                  SessionNumber,
            rsvpResvType                    SessionType,
            rsvpResvDestAddr                OCTET STRING,
            rsvpResvSenderAddr              OCTET STRING,
            rsvpResvDestAddrLength          INTEGER,


            rsvpResvSenderAddrLength        INTEGER,
            rsvpResvProtocol                Protocol,
            rsvpResvDestPort                Port,
            rsvpResvPort                    Port,
            rsvpResvHopAddr                 OCTET STRING,
            rsvpResvHopLih                  Integer32,
            rsvpResvInterface               InterfaceIndex,
            rsvpResvService                 QosService,
            rsvpResvTSpecRate               BitRate,
            rsvpResvTSpecPeakRate           BitRate,
            rsvpResvTSpecBurst              BurstSize,
            rsvpResvTSpecMinTU              MessageSize,
            rsvpResvTSpecMaxTU              MessageSize,
            rsvpResvRSpecRate               BitRate,
            rsvpResvRSpecSlack              Integer32,
            rsvpResvInterval                RefreshInterval,
            rsvpResvScope                   OCTET STRING,
            rsvpResvShared                  TruthValue,
            rsvpResvExplicit                TruthValue,
            rsvpResvRSVPHop                 TruthValue,
            rsvpResvLastChange              TimeStamp,
            rsvpResvPolicy                  OCTET STRING,
            rsvpResvStatus                  RowStatus,
            rsvpResvTTL                     INTEGER,
            rsvpResvFlowId                  INTEGER
        }

    rsvpResvNumber OBJECT-TYPE
        SYNTAX      SessionNumber
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "The number of this reservation request.   This
           is  for  SNMP Indexing purposes only and has no
           relation to any protocol value."
       ::= { rsvpResvEntry 1 }

    rsvpResvType OBJECT-TYPE
        SYNTAX      SessionType
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The type of session (IP4, IP6, IP6  with  flow
           information, etc)."
       ::= { rsvpResvEntry 2 }


    rsvpResvDestAddr OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(4..16))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The destination address used by all senders in
           this  session.   This object may not be changed
           when the value of the RowStatus object is  'ac-
           tive'."
       ::= { rsvpResvEntry 3 }

    rsvpResvSenderAddr OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(4..16))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The source address of the sender  selected  by
           this  reservation.  The value of all zeroes in-
           dicates 'all senders'.  This object may not  be
           changed  when the value of the RowStatus object
           is 'active'."
       ::= { rsvpResvEntry 4 }

    rsvpResvDestAddrLength OBJECT-TYPE
        SYNTAX      INTEGER(0..128)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The length of the destination address in bits.
           This  is  the CIDR Prefix Length, which for IP4
           hosts and multicast addresses is 32 bits.  This
           object may not be changed when the value of the
           RowStatus object is 'active'."
       ::= { rsvpResvEntry 5 }

    rsvpResvSenderAddrLength OBJECT-TYPE
        SYNTAX      INTEGER(0..128)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The length of the sender's  address  in  bits.
           This  is  the CIDR Prefix Length, which for IP4
           hosts and multicast addresses is 32 bits.  This
           object may not be changed when the value of the
           RowStatus object is 'active'."


       ::= { rsvpResvEntry 6 }

    rsvpResvProtocol OBJECT-TYPE
        SYNTAX      Protocol
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The IP Protocol used by  this  session.   This
           object may not be changed when the value of the
           RowStatus object is 'active'."
       ::= { rsvpResvEntry 7 }

    rsvpResvDestPort OBJECT-TYPE
        SYNTAX      Port
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The UDP or TCP port number used as a  destina-
           tion  port for all senders in this session.  If
           the  IP   protocol   in   use,   specified   by
           rsvpResvProtocol,  is 50 (ESP) or 51 (AH), this
           represents a virtual destination  port  number.
           A  value of zero indicates that the IP protocol
           in use does not have ports.   This  object  may
           not  be changed when the value of the RowStatus
           object is 'active'."
       ::= { rsvpResvEntry 8 }

    rsvpResvPort OBJECT-TYPE
        SYNTAX      Port
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The UDP or TCP port number used  as  a  source
           port  for  this sender in this session.  If the
           IP protocol in use, specified by rsvpResvProto-
           col  is  50 (ESP) or 51 (AH), this represents a
           generalized port identifier (GPI).  A value  of
           zero indicates that the IP protocol in use does
           not have ports.  This object may not be changed
           when  the value of the RowStatus object is 'ac-
           tive'."
       ::= { rsvpResvEntry 9 }


    rsvpResvHopAddr OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(4..16))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The address used by the next RSVP  hop  (which
           may be the ultimate receiver)."
       ::= { rsvpResvEntry 10 }

    rsvpResvHopLih OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The Logical Interface Handle received from the
           previous  RSVP  hop  (which may be the ultimate
           receiver)."
       ::= { rsvpResvEntry 11 }

    rsvpResvInterface OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The ifIndex value of the  interface  on  which
           this RESV message was most recently received."
       ::= { rsvpResvEntry 12 }

    rsvpResvService OBJECT-TYPE
        SYNTAX      QosService
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The QoS Service  classification  requested  by
           the receiver."
       ::= { rsvpResvEntry 13 }

    rsvpResvTSpecRate OBJECT-TYPE
        SYNTAX      BitRate
        UNITS       "bits per second"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The Average Bit  Rate  of  the  sender's  data


           stream.   Within  a transmission burst, the ar-
           rival rate may be  as  fast  as  rsvpResvTSpec-
           PeakRate  (if  supported by the service model);
           however, averaged across two or more burst  in-
           tervals,    the    rate   should   not   exceed
           rsvpResvTSpecRate.

           Note that this is a prediction, often based  on
           the  general  capability  of a type of codec or
           particular encoding; the measured average  rate
           may be significantly lower."
       ::= { rsvpResvEntry 14 }

    rsvpResvTSpecPeakRate OBJECT-TYPE
        SYNTAX      BitRate
        UNITS       "bits per second"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The Peak Bit Rate of the sender's data stream.
           Traffic  arrival is not expected to exceed this
           rate at any time, apart  from  the  effects  of
           jitter in the network.  If not specified in the
           TSpec, this returns zero or noSuchValue."
       ::= { rsvpResvEntry 15 }

    rsvpResvTSpecBurst OBJECT-TYPE
        SYNTAX      BurstSize
        UNITS       "bytes"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The size of the largest  burst  expected  from
           the sender at a time.

           If this is less than  the  sender's  advertised
           burst  size, the receiver is asking the network
           to provide flow pacing  beyond  what  would  be
           provided  under normal circumstances. Such pac-
           ing is at the network's option."
       ::= { rsvpResvEntry 16 }

    rsvpResvTSpecMinTU OBJECT-TYPE
        SYNTAX      MessageSize
        MAX-ACCESS  read-create


        STATUS      current
        DESCRIPTION
           "The minimum message size for  this  flow.  The
           policing  algorithm will treat smaller messages
           as though they are this size."
       ::= { rsvpResvEntry 17 }

    rsvpResvTSpecMaxTU OBJECT-TYPE
        SYNTAX      MessageSize
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The maximum message size for  this  flow.  The
           admission  algorithm  will  reject TSpecs whose
           Maximum Transmission Unit, plus  the  interface
           headers, exceed the interface MTU."
       ::= { rsvpResvEntry 18 }

    rsvpResvRSpecRate OBJECT-TYPE
        SYNTAX      BitRate
        UNITS       "bits per second"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If the requested  service  is  Guaranteed,  as
           specified   by  rsvpResvService,  this  is  the
           clearing rate that is being requested.   Other-
           wise,  it  is  zero,  or  the  agent may return
           noSuchValue."
       ::= { rsvpResvEntry 19 }

    rsvpResvRSpecSlack OBJECT-TYPE
        SYNTAX      Integer32
        UNITS       "microseconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If the requested  service  is  Guaranteed,  as
           specified by rsvpResvService, this is the delay
           slack.  Otherwise, it is zero, or the agent may
           return noSuchValue."
       ::= { rsvpResvEntry 20 }

    rsvpResvInterval OBJECT-TYPE


        SYNTAX      RefreshInterval
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The interval between refresh messages  as  ad-
           vertised by the Next Hop."
       ::= { rsvpResvEntry 21 }

    rsvpResvScope OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..65536))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION

           "The contents of the scope object, displayed as
           an  uninterpreted  string  of octets, including
           the object header.  In the absence of  such  an
           object, this should be of zero length.

           If the length  is  non-zero,  this  contains  a
           series of IP4 or IP6 addresses."
       ::= { rsvpResvEntry 22 }

    rsvpResvShared OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If TRUE, a reservation shared among senders is
           requested.  If FALSE, a reservation specific to
           this sender is requested."
       ::= { rsvpResvEntry 23 }

    rsvpResvExplicit OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If TRUE, individual senders are  listed  using
           Filter  Specifications.   If FALSE, all senders
           are implicitly selected.  The Scope Object will
           contain  a list of senders that need to receive
           this reservation request  for  the  purpose  of
           routing the RESV message."
       ::= { rsvpResvEntry 24 }


    rsvpResvRSVPHop OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If TRUE, the node believes that  the  previous
           IP  hop is an RSVP hop.  If FALSE, the node be-
           lieves that the previous IP hop may not  be  an
           RSVP hop."
       ::= { rsvpResvEntry 25 }

    rsvpResvLastChange OBJECT-TYPE
        SYNTAX      TimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The time of the last change in  this  reserva-
           tion  request; This is either the first time it
           was received or the time  of  the  most  recent
           change in parameters."
       ::= { rsvpResvEntry 26 }

    rsvpResvPolicy OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..65536))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The contents of the policy  object,  displayed
           as an uninterpreted string of octets, including
           the object header.  In the absence of  such  an
           object, this should be of zero length."
       ::= { rsvpResvEntry 27 }

    rsvpResvStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "'active' for all active RESV  messages.   This
           object  may  be used to install static RESV in-
           formation or delete RESV information."
       ::= { rsvpResvEntry 28 }

    rsvpResvTTL OBJECT-TYPE


        SYNTAX      INTEGER (0..255)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The TTL value in the RSVP header that was last
           received."
       ::= { rsvpResvEntry 29 }

    rsvpResvFlowId OBJECT-TYPE
        SYNTAX      INTEGER (0..16777215)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The flow ID that this receiver  is  using,  if
           this  is  an IPv6 session."
       ::= { rsvpResvEntry 30 }

--      The RSVP Reservation Requests Forwarded Table contains the
--      information displayed by receivers regarding their needs with
--      respect to sessions and senders. It is in essence a list of the
--      valid RESV messages that the RSVP Router or Host is sending
--      to its upstream neighbors.

    rsvpResvFwdNewIndex OBJECT-TYPE
        SYNTAX      TestAndIncr
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
           "This  object  is  used  to  assign  values  to
           rsvpResvFwdNumber as described in 'Textual Con-
           ventions  for  SNMPv2'.   The  network  manager
           reads  the  object,  and  then writes the value
           back in the SET that creates a new instance  of
           rsvpResvFwdEntry.   If  the  SET fails with the
           code 'inconsistentValue', then the process must
           be  repeated; If the SET succeeds, then the ob-
           ject is incremented, and the  new  instance  is
           created according to the manager's directions."
       ::= { rsvpGenObjects 4 }

    rsvpResvFwdTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RsvpResvFwdEntry
        MAX-ACCESS  not-accessible
        STATUS      current


        DESCRIPTION
           "Information describing the  state  information
           displayed upstream in RESV messages."
       ::= { rsvpObjects 5 }

    rsvpResvFwdEntry OBJECT-TYPE
        SYNTAX      RsvpResvFwdEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "Information describing the  state  information
           displayed  upstream in an RESV message concern-
           ing a single sender."
       INDEX { rsvpSessionNumber, rsvpResvFwdNumber }
       ::= { rsvpResvFwdTable 1 }

    RsvpResvFwdEntry ::=
        SEQUENCE {
            rsvpResvFwdNumber               SessionNumber,
            rsvpResvFwdType                 SessionType,
            rsvpResvFwdDestAddr             OCTET STRING,
            rsvpResvFwdSenderAddr           OCTET STRING,
            rsvpResvFwdDestAddrLength       INTEGER,
            rsvpResvFwdSenderAddrLength     INTEGER,
            rsvpResvFwdProtocol             Protocol,
            rsvpResvFwdDestPort             Port,
            rsvpResvFwdPort                 Port,
            rsvpResvFwdHopAddr              OCTET STRING,
            rsvpResvFwdHopLih               Integer32,
            rsvpResvFwdInterface            InterfaceIndex,
            rsvpResvFwdService              QosService,
            rsvpResvFwdTSpecRate            BitRate,
            rsvpResvFwdTSpecPeakRate        BitRate,
            rsvpResvFwdTSpecBurst           BurstSize,
            rsvpResvFwdTSpecMinTU           MessageSize,
            rsvpResvFwdTSpecMaxTU           MessageSize,
            rsvpResvFwdRSpecRate            BitRate,
            rsvpResvFwdRSpecSlack           Integer32,
            rsvpResvFwdInterval             RefreshInterval,
            rsvpResvFwdScope                OCTET STRING,
            rsvpResvFwdShared               TruthValue,
            rsvpResvFwdExplicit             TruthValue,
            rsvpResvFwdRSVPHop              TruthValue,
            rsvpResvFwdLastChange           TimeStamp,
            rsvpResvFwdPolicy               OCTET STRING,
            rsvpResvFwdStatus               RowStatus,


            rsvpResvFwdTTL                  INTEGER,
            rsvpResvFwdFlowId               INTEGER
        }

    rsvpResvFwdNumber OBJECT-TYPE
        SYNTAX      SessionNumber
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "The number of this reservation request.   This
           is  for  SNMP Indexing purposes only and has no
           relation to any protocol value."
       ::= { rsvpResvFwdEntry 1 }

    rsvpResvFwdType OBJECT-TYPE
        SYNTAX      SessionType
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The type of session (IP4, IP6, IP6  with  flow
           information, etc)."
       ::= { rsvpResvFwdEntry 2 }

    rsvpResvFwdDestAddr OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(4..16))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The destination address used by all senders in
           this  session.   This object may not be changed
           when the value of the RowStatus object is  'ac-
           tive'."
       ::= { rsvpResvFwdEntry 3 }

    rsvpResvFwdSenderAddr OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(4..16))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The source address of the sender  selected  by
           this  reservation.  The value of all zeroes in-
           dicates 'all senders'.  This object may not  be
           changed  when the value of the RowStatus object
           is 'active'."


       ::= { rsvpResvFwdEntry 4 }

    rsvpResvFwdDestAddrLength OBJECT-TYPE
        SYNTAX      INTEGER(0..128)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The length of the destination address in bits.
           This  is  the CIDR Prefix Length, which for IP4
           hosts and multicast addresses is 32 bits.  This
           object may not be changed when the value of the
           RowStatus object is 'active'."
       ::= { rsvpResvFwdEntry 5 }

    rsvpResvFwdSenderAddrLength OBJECT-TYPE
        SYNTAX      INTEGER(0..128)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The length of the sender's  address  in  bits.
           This  is  the CIDR Prefix Length, which for IP4
           hosts and multicast addresses is 32 bits.  This
           object may not be changed when the value of the
           RowStatus object is 'active'."
       ::= { rsvpResvFwdEntry 6 }

    rsvpResvFwdProtocol OBJECT-TYPE
        SYNTAX      Protocol
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The IP Protocol used by a session. for  secure
           sessions, this indicates IP Security.  This ob-
           ject may not be changed when the value  of  the
           RowStatus object is 'active'."
       ::= { rsvpResvFwdEntry 7 }

    rsvpResvFwdDestPort OBJECT-TYPE
        SYNTAX      Port
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The UDP or TCP port number used as a  destina-
           tion  port for all senders in this session.  If


           the  IP   protocol   in   use,   specified   by
           rsvpResvFwdProtocol,  is  50  (ESP) or 51 (AH),
           this  represents  a  virtual  destination  port
           number.   A value of zero indicates that the IP
           protocol in use does not have ports.  This  ob-
           ject  may  not be changed when the value of the
           RowStatus object is 'active'."
       ::= { rsvpResvFwdEntry 8 }

    rsvpResvFwdPort OBJECT-TYPE
        SYNTAX      Port
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The UDP or TCP port number used  as  a  source
           port  for  this sender in this session.  If the
           IP    protocol    in    use,    specified    by
           rsvpResvFwdProtocol  is  50  (ESP)  or 51 (AH),
           this represents a generalized  port  identifier
           (GPI).   A  value of zero indicates that the IP
           protocol in use does not have ports.  This  ob-
           ject  may  not be changed when the value of the
           RowStatus object is 'active'."
       ::= { rsvpResvFwdEntry 9 }

    rsvpResvFwdHopAddr OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(4..16))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The address of the (previous) RSVP  that  will
           receive this message."
       ::= { rsvpResvFwdEntry 10 }

    rsvpResvFwdHopLih OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The Logical Interface Handle sent to the (pre-
           vious) RSVP that will receive this message."
       ::= { rsvpResvFwdEntry 11 }

    rsvpResvFwdInterface OBJECT-TYPE


        SYNTAX      InterfaceIndex
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The ifIndex value of the  interface  on  which
           this RESV message was most recently sent."
       ::= { rsvpResvFwdEntry 12 }

    rsvpResvFwdService OBJECT-TYPE
        SYNTAX      QosService
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The QoS Service classification requested."
       ::= { rsvpResvFwdEntry 13 }

    rsvpResvFwdTSpecRate OBJECT-TYPE
        SYNTAX      BitRate
        UNITS       "bits per second"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The Average Bit  Rate  of  the  sender's  data
           stream.   Within  a transmission burst, the ar-
           rival rate may be as fast as  rsvpResvFwdTSpec-
           PeakRate  (if  supported by the service model);
           however, averaged across two or more burst  in-
           tervals,    the    rate   should   not   exceed
           rsvpResvFwdTSpecRate.

           Note that this is a prediction, often based  on
           the  general  capability  of a type of codec or
           particular encoding; the measured average  rate
           may be significantly lower."
       ::= { rsvpResvFwdEntry 14 }

    rsvpResvFwdTSpecPeakRate OBJECT-TYPE
        SYNTAX      BitRate
        UNITS       "bits per second"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The Peak Bit Rate of the sender's data  stream
           Traffic  arrival is not expected to exceed this
           rate at any time, apart  from  the  effects  of


           jitter in the network.  If not specified in the
           TSpec, this returns zero or noSuchValue."
       ::= { rsvpResvFwdEntry 15 }

    rsvpResvFwdTSpecBurst OBJECT-TYPE
        SYNTAX      BurstSize
        UNITS       "bytes"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The size of the largest  burst  expected  from
           the sender at a time.

           If this is less than  the  sender's  advertised
           burst  size, the receiver is asking the network
           to provide flow pacing  beyond  what  would  be
           provided  under normal circumstances. Such pac-
           ing is at the network's option."
       ::= { rsvpResvFwdEntry 16 }

    rsvpResvFwdTSpecMinTU OBJECT-TYPE
        SYNTAX      MessageSize
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The minimum message size for  this  flow.  The
           policing  algorithm will treat smaller messages
           as though they are this size."
       ::= { rsvpResvFwdEntry 17 }

    rsvpResvFwdTSpecMaxTU OBJECT-TYPE
        SYNTAX      MessageSize
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The maximum message size for  this  flow.  The
           admission  algorithm  will  reject TSpecs whose
           Maximum Transmission Unit, plus  the  interface
           headers, exceed the interface MTU."
       ::= { rsvpResvFwdEntry 18 }

    rsvpResvFwdRSpecRate OBJECT-TYPE
        SYNTAX      BitRate
        UNITS       "bytes per second"


        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "If the requested  service  is  Guaranteed,  as
           specified   by  rsvpResvService,  this  is  the
           clearing rate that is being requested.   Other-
           wise,  it  is  zero,  or  the  agent may return
           noSuchValue."
       ::= { rsvpResvFwdEntry 19 }

    rsvpResvFwdRSpecSlack OBJECT-TYPE
        SYNTAX      Integer32
        UNITS       "microseconds"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "If the requested  service  is  Guaranteed,  as
           specified by rsvpResvService, this is the delay
           slack.  Otherwise, it is zero, or the agent may
           return noSuchValue."
       ::= { rsvpResvFwdEntry 20 }

    rsvpResvFwdInterval OBJECT-TYPE
        SYNTAX      RefreshInterval
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The interval between refresh  messages  adver-
           tised to the Previous Hop."
       ::= { rsvpResvFwdEntry 21 }

    rsvpResvFwdScope OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..65536))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The contents of the scope object, displayed as
           an  uninterpreted  string  of octets, including
           the object header.  In the absence of  such  an
           object, this should be of zero length."
       ::= { rsvpResvFwdEntry 22 }

    rsvpResvFwdShared OBJECT-TYPE
        SYNTAX      TruthValue


        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "If TRUE, a reservation shared among senders is
           requested.  If FALSE, a reservation specific to
           this sender is requested."
       ::= { rsvpResvFwdEntry 23 }

    rsvpResvFwdExplicit OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "If TRUE, individual senders are  listed  using
           Filter  Specifications.   If FALSE, all senders
           are implicitly selected.  The Scope Object will
           contain  a list of senders that need to receive
           this reservation request  for  the  purpose  of
           routing the RESV message."
       ::= { rsvpResvFwdEntry 24 }

    rsvpResvFwdRSVPHop OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "If TRUE, the node believes that  the  next  IP
           hop  is  an  RSVP  hop.  If FALSE, the node be-
           lieves that the next IP hop may not be an  RSVP
           hop."
       ::= { rsvpResvFwdEntry 25 }

    rsvpResvFwdLastChange OBJECT-TYPE
        SYNTAX      TimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The time of the last change in  this  request;
           This  is  either  the first time it was sent or
           the time of the most recent change  in  parame-
           ters."
       ::= { rsvpResvFwdEntry 26 }

    rsvpResvFwdPolicy OBJECT-TYPE


        SYNTAX      OCTET STRING (SIZE(0..65536))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The contents of the policy  object,  displayed
           as an uninterpreted string of octets, including
           the object header.  In the absence of  such  an
           object, this should be of zero length."
       ::= { rsvpResvFwdEntry 27 }

    rsvpResvFwdStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
           "'active' for all active RESV  messages.   This
           object may be used to delete RESV information."
       ::= { rsvpResvFwdEntry 28 }

    rsvpResvFwdTTL OBJECT-TYPE
        SYNTAX      INTEGER (0..255)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The TTL value in the RSVP header that was last
           received."
       ::= { rsvpResvFwdEntry 29 }

    rsvpResvFwdFlowId OBJECT-TYPE
        SYNTAX      INTEGER (0..16777215)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The flow ID that this receiver  is  using,  if
           this  is  an IPv6 session."
       ::= { rsvpResvFwdEntry 30 }

--      The RSVP Interface Attributes Database contains the
--      RSVP-specific information for an interface. Information
--      that is shared with other reservation procedures such
--      as ST-II is in the Integrated Interface Attributes
--      Database.


    rsvpIfTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RsvpIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "The RSVP-specific attributes of  the  system's
           interfaces."
       ::= { rsvpObjects 6 }

    rsvpIfEntry OBJECT-TYPE
        SYNTAX      RsvpIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "The RSVP-specific attributes of  the  a  given
           interface."
       INDEX { ifIndex }
       ::= { rsvpIfTable 1 }

RsvpIfEntry ::=
    SEQUENCE {
    rsvpIfUdpNbrs                       Gauge32,
    rsvpIfIpNbrs                        Gauge32,
    rsvpIfNbrs                          Gauge32,
    rsvpIfEnabled                       TruthValue,
    rsvpIfUdpRequired                   TruthValue,
    rsvpIfRefreshBlockadeMultiple       INTEGER,
    rsvpIfRefreshMultiple               INTEGER,
    rsvpIfTTL                           INTEGER,
    rsvpIfRefreshInterval               TimeInterval,
    rsvpIfRouteDelay                    TimeInterval,
    rsvpIfStatus                        RowStatus
    }

    rsvpIfUdpNbrs OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The number of neighbors perceived to be  using
           only the RSVP UDP Encapsulation."
       ::= { rsvpIfEntry 1 }

    rsvpIfIpNbrs OBJECT-TYPE
        SYNTAX      Gauge32


        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The number of neighbors perceived to be  using
           only the RSVP IP Encapsulation."
       ::= { rsvpIfEntry 2 }

    rsvpIfNbrs OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The number of neighbors  currently  perceived;
           this  will  exceed rsvpIfIpNbrs + rsvpIfUdpNbrs
           by the number of neighbors using both  encapsu-
           lations."
       ::= { rsvpIfEntry 3 }

    rsvpIfRefreshBlockadeMultiple OBJECT-TYPE
        SYNTAX      INTEGER (1..65536)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The value of the RSVP value 'Kb', Which is the
           minimum   number   of  refresh  intervals  that
           blockade state will last once entered."
       DEFVAL      { 4 }
       ::= { rsvpIfEntry 4 }

    rsvpIfRefreshMultiple OBJECT-TYPE
        SYNTAX      INTEGER (1..65536)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The value of the RSVP value 'K', which is  the
           number  of  refresh intervals which must elapse
           (minimum) before a PATH or RESV  message  which
           is not being refreshed will be aged out."
       DEFVAL      { 3 }
       ::= { rsvpIfEntry 5 }

    rsvpIfTTL OBJECT-TYPE
        SYNTAX      INTEGER (0..255)
        MAX-ACCESS  read-create


        STATUS      current
        DESCRIPTION
           "The value of SEND_TTL used on  this  interface
           for  messages  this node originates.  If set to
           zero, the node determines  the  TTL  via  other
           means."
       DEFVAL { 0 } -- which is to say, no override
       ::= { rsvpIfEntry 6 }

    rsvpIfRefreshInterval OBJECT-TYPE
        SYNTAX      TimeInterval
        UNITS       "milliseconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The value of the RSVP value 'R', which is  the
           minimum period between refresh transmissions of
           a given PATH or RESV message on an interface."
       DEFVAL      { 3000 }        -- 30 seconds
       ::= { rsvpIfEntry 7 }

    rsvpIfRouteDelay OBJECT-TYPE
        SYNTAX      TimeInterval
        UNITS       "hundredths of a second"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The approximate period from the time  a  route
           is  changed to the time a resulting message ap-
           pears on the interface."
       DEFVAL      { 200 } -- 2 seconds
       ::= { rsvpIfEntry 8 }

    rsvpIfEnabled OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If TRUE, RSVP is enabled  on  this  Interface.
           If  FALSE,  RSVP  is not enabled on this inter-
           face."
       ::= { rsvpIfEntry 9 }

    rsvpIfUdpRequired OBJECT-TYPE


        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If TRUE, manual configuration forces  the  use
           of  UDP  encapsulation  on  the  interface.  If
           FALSE, UDP encapsulation is only used if rsvpI-
           fUdpNbrs is not zero."

       ::= { rsvpIfEntry 10 }

    rsvpIfStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "'active' on interfaces that are configured for
           RSVP."
       ::= { rsvpIfEntry 11 }

--      The RSVP Neighbor Database lists the neighbors the RSVP
--      process currently is receiving messages from.

    rsvpNbrTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RsvpNbrEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "Information describing  the  Neighbors  of  an
           RSVP system."
       ::= { rsvpObjects 7 }

    rsvpNbrEntry OBJECT-TYPE
        SYNTAX      RsvpNbrEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "Information describing a  single  RSVP  Neigh-
           bor."
       INDEX { ifIndex, rsvpNbrAddress }
       ::= { rsvpNbrTable 1 }

RsvpNbrEntry ::=
    SEQUENCE {


    rsvpNbrAddress      OCTET STRING,
    rsvpNbrProtocol     RsvpEncapsulation,
    rsvpNbrStatus       RowStatus
    }

    rsvpNbrAddress OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(4..16))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "The IP4 or IP6 Address used by this  neighbor.
           This  object  may not be changed when the value
           of the RowStatus object is 'active'."
       ::= { rsvpNbrEntry 1 }

    rsvpNbrProtocol OBJECT-TYPE
        SYNTAX      RsvpEncapsulation
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The encapsulation being used  by  this  neigh-
           bor."
       ::= { rsvpNbrEntry 2 }

    rsvpNbrStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "'active' for all neighbors.  This  object  may
           be  used  to configure neighbors.  In the pres-
           ence of configured neighbors,  the  implementa-
           tion may (but is not required to) limit the set
           of valid neighbors to those configured."
       ::= { rsvpNbrEntry 3 }

--
--      Notifications used to signal events
--

    rsvpNotifications OBJECT IDENTIFIER
                      ::= { rsvpNotificationsPrefix 0 }

    newFlow NOTIFICATION-TYPE


        OBJECTS {
                    intSrvFlowStatus, rsvpSessionDestAddr,
                    rsvpResvFwdStatus, rsvpResvStatus, rsvpSenderStatus
                }
        STATUS  current
        DESCRIPTION
           "The newFlow trap indicates that the  originat-
           ing  system  has  installed  a  new flow in its
           classifier, or (when reservation  authorization
           is  in view) is prepared to install such a flow
           in the classifier and is requesting  authoriza-
           tion.   The objects included with the Notifica-
           tion may be used to  read  further  information
           using  the  Integrated  Services and RSVP MIBs.
           Authorization  or  non-authorization   may   be
           enacted by a write to the variable intSrvFlowS-
           tatus."
       ::= { rsvpNotifications 1 }

    lostFlow NOTIFICATION-TYPE
        OBJECTS {
                    intSrvFlowStatus, rsvpSessionDestAddr,
                    rsvpResvFwdStatus, rsvpResvStatus, rsvpSenderStatus
                }
        STATUS  current
        DESCRIPTION
           "The lostFlow trap indicates that the originat-
           ing system has removed a flow from its classif-
           ier."
       ::= { rsvpNotifications 2 }

-- conformance information

rsvpGroups      OBJECT IDENTIFIER ::= { rsvpConformance 1 }
rsvpCompliances OBJECT IDENTIFIER ::= { rsvpConformance 2 }

-- compliance statements

    rsvpCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
           "The compliance statement.  Note that  the  im-
           plementation  of this module requires implemen-
           tation of the Integrated Services MIB as well."


       MODULE  -- this module
       MANDATORY-GROUPS {
           rsvpSessionGroup, rsvpSenderGroup, rsvpResvGroup,
           rsvpIfGroup, rsvpNbrGroup
           }

       GROUP rsvpResvFwdGroup
         DESCRIPTION
          "The Reservation Requests table  is  appropriate
          in  implementations that store upstream reserva-
          tion messages, but not appropriate in  implemen-
          tations  which  calculate them on each transmis-
          sion."

      GROUP rsvpNotificationGroup
        DESCRIPTION
         "The notifications in this module may be used  to
         advise a network management station of changes in
         flow status, and are required when this use is in
         view."

     OBJECT       rsvpSessionRequests
       MIN-ACCESS not-accessible
       DESCRIPTION
        "This object is optional."

    OBJECT       rsvpSenderType
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderDestAddr
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderAddr
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderDestAddrLength
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be


       read-only."

    OBJECT       rsvpSenderAddrLength
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderProtocol
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderDestPort
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderPort
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderHopAddr
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderHopLih
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderInterface
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderTSpecRate
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be


       read-only."

    OBJECT       rsvpSenderTSpecPeakRate
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderTSpecBurst
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderTSpecMinTU
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderTSpecMaxTU
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderInterval
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderRSVPHop
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderPolicy
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderAdspecBreak
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be


       read-only."

    OBJECT       rsvpSenderAdspecHopCount
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderAdspecPathBw
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderAdspecMinLatency
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderAdspecMtu
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderAdspecGuaranteedSvc
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This may be not-accessible if the system does  not
       support Guaranteed Service."

    OBJECT       rsvpSenderAdspecGuaranteedBreak
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This may be not-accessible if the system does  not
       support Guaranteed Service."

    OBJECT       rsvpSenderAdspecGuaranteedCtot
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This may be not-accessible if the system does  not
       support Guaranteed Service."

    OBJECT       rsvpSenderAdspecGuaranteedDtot
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This may be not-accessible if the system does  not


       support Guaranteed Service."

    OBJECT       rsvpSenderAdspecGuaranteedCsum
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This may be not-accessible if the system does  not
       support Guaranteed Service."

    OBJECT       rsvpSenderAdspecGuaranteedDsum
      MIN-ACCESS read-only
      DESCRIPTION
       "This may be not-accessible if the system does  not
       support Guaranteed Service."

    OBJECT       rsvpSenderAdspecGuaranteedHopCount
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This may be not-accessible if the system does  not
       support Guaranteed Service."

    OBJECT       rsvpSenderAdspecGuaranteedPathBw
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This may be not-accessible if the system does  not
       support Guaranteed Service."

    OBJECT       rsvpSenderAdspecGuaranteedMinLatency
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This may be not-accessible if the system does  not
       support Guaranteed Service."

    OBJECT       rsvpSenderAdspecGuaranteedMtu
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This may be not-accessible if the system does  not
       support Guaranteed Service."

    OBJECT       rsvpSenderAdspecCtrlLoadSvc
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This may be not-accessible if the system does  not
       support Controlled Load."

    OBJECT       rsvpSenderAdspecCtrlLoadBreak
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This may be not-accessible if the system does  not


       support Controlled Load."

    OBJECT       rsvpSenderAdspecCtrlLoadHopCount
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This may be not-accessible if the system does  not
       support Controlled Load."

    OBJECT       rsvpSenderAdspecCtrlLoadPathBw
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This may be not-accessible if the system does  not
       support Controlled Load."

    OBJECT       rsvpSenderAdspecCtrlLoadMinLatency
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This may be not-accessible if the system does  not
       support Controlled Load."

    OBJECT       rsvpSenderAdspecCtrlLoadMtu
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This may be not-accessible if the system does  not
       support Controlled Load."

    OBJECT       rsvpSenderStatus
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpSenderFlowId
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This object is needed only in a system that imple-
       ments IPv6."

    OBJECT       rsvpResvType
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvDestAddr
      MIN-ACCESS read-only
      DESCRIPTION


       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvSenderAddr
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvDestAddrLength
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvSenderAddrLength
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvProtocol
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvDestPort
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvPort
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvHopAddr
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvHopLih
      MIN-ACCESS read-only
      DESCRIPTION


       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvInterface
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvService
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvTSpecRate
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvTSpecPeakRate
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvTSpecBurst
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvTSpecMinTU
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvTSpecMaxTU
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvRSpecRate
      MIN-ACCESS read-only
      DESCRIPTION


       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvRSpecSlack
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvInterval
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvScope
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvShared
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvExplicit
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvRSVPHop
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvPolicy
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvStatus
      MIN-ACCESS read-only
      DESCRIPTION


       "read-create access is not required.  This  may  be
       read-only."
    OBJECT       rsvpResvFlowId
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This object is needed only in a system that imple-
       ments IPv6."

    OBJECT       rsvpResvFwdStatus
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       rsvpResvFwdFlowId
      MIN-ACCESS not-accessible
      DESCRIPTION
       "This object is needed only in a system that imple-
       ments IPv6."

    ::= { rsvpCompliances 1 }

    rsvpSessionGroup OBJECT-GROUP
         OBJECTS {
            rsvpSessionType, rsvpSessionDestAddr,
            rsvpSessionDestAddrLength, rsvpSessionProtocol,
            rsvpSessionPort, rsvpSessionSenders, rsvpSessionReceivers,
            rsvpSessionRequests
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for RSVP Systems."
       ::= { rsvpGroups 1 }

    rsvpSenderGroup OBJECT-GROUP
         OBJECTS {
            rsvpSenderType, rsvpSenderDestAddr, rsvpSenderAddr,
            rsvpSenderDestAddrLength, rsvpSenderAddrLength,
            rsvpSenderProtocol, rsvpSenderDestPort, rsvpSenderPort,
            rsvpSenderHopAddr, rsvpSenderHopLih, rsvpSenderInterface,
            rsvpSenderTSpecRate, rsvpSenderTSpecPeakRate,
            rsvpSenderTSpecBurst, rsvpSenderTSpecMinTU,
            rsvpSenderTSpecMaxTU, rsvpSenderInterval,
            rsvpSenderLastChange, rsvpSenderStatus,
            rsvpSenderRSVPHop, rsvpSenderPolicy,
            rsvpSenderAdspecBreak, rsvpSenderAdspecHopCount,
            rsvpSenderAdspecPathBw, rsvpSenderAdspecMinLatency,


            rsvpSenderAdspecMtu, rsvpSenderAdspecGuaranteedSvc,
            rsvpSenderAdspecGuaranteedBreak,
            rsvpSenderAdspecGuaranteedCtot,
            rsvpSenderAdspecGuaranteedDtot,
            rsvpSenderAdspecGuaranteedCsum,
            rsvpSenderAdspecGuaranteedDsum,
            rsvpSenderAdspecGuaranteedHopCount,
            rsvpSenderAdspecGuaranteedPathBw,
            rsvpSenderAdspecGuaranteedMinLatency,
            rsvpSenderAdspecGuaranteedMtu, rsvpSenderAdspecCtrlLoadSvc,
            rsvpSenderAdspecCtrlLoadBreak,
            rsvpSenderAdspecCtrlLoadHopCount,
            rsvpSenderAdspecCtrlLoadPathBw,
            rsvpSenderAdspecCtrlLoadMinLatency,
            rsvpSenderAdspecCtrlLoadMtu, rsvpSenderNewIndex
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for RSVP Systems."
       ::= { rsvpGroups 2 }

    rsvpResvGroup OBJECT-GROUP
         OBJECTS {
            rsvpResvType, rsvpResvDestAddr, rsvpResvSenderAddr,
            rsvpResvDestAddrLength, rsvpResvSenderAddrLength,
            rsvpResvProtocol, rsvpResvDestPort, rsvpResvPort,
            rsvpResvHopAddr, rsvpResvHopLih, rsvpResvInterface,
            rsvpResvService, rsvpResvTSpecRate, rsvpResvTSpecBurst,
            rsvpResvTSpecPeakRate, rsvpResvTSpecMinTU,
            rsvpResvTSpecMaxTU, rsvpResvRSpecRate,
            rsvpResvRSpecSlack, rsvpResvInterval,
            rsvpResvScope, rsvpResvShared, rsvpResvExplicit,
            rsvpResvRSVPHop, rsvpResvLastChange, rsvpResvPolicy,
            rsvpResvStatus, rsvpResvNewIndex
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for RSVP Systems."
       ::= { rsvpGroups 3 }

    rsvpResvFwdGroup OBJECT-GROUP
         OBJECTS {
            rsvpResvFwdType, rsvpResvFwdDestAddr, rsvpResvFwdSenderAddr,
            rsvpResvFwdDestAddrLength, rsvpResvFwdSenderAddrLength,
            rsvpResvFwdProtocol, rsvpResvFwdDestPort, rsvpResvFwdPort,
            rsvpResvFwdHopAddr, rsvpResvFwdHopLih, rsvpResvFwdInterface,


            rsvpResvFwdNewIndex, rsvpResvFwdService,
            rsvpResvFwdTSpecPeakRate, rsvpResvFwdTSpecMinTU,
            rsvpResvFwdTSpecMaxTU, rsvpResvFwdTSpecRate,
            rsvpResvFwdTSpecBurst, rsvpResvFwdRSpecRate,
            rsvpResvFwdRSpecSlack, rsvpResvFwdInterval,
            rsvpResvFwdScope, rsvpResvFwdShared, rsvpResvFwdExplicit,
            rsvpResvFwdRSVPHop, rsvpResvFwdLastChange,
            rsvpResvFwdPolicy, rsvpResvFwdStatus
        }
        STATUS  current
        DESCRIPTION
           "These objects are optional, used for some RSVP
           Systems."
       ::= { rsvpGroups 4 }

    rsvpIfGroup OBJECT-GROUP
         OBJECTS {
            rsvpIfUdpNbrs, rsvpIfIpNbrs, rsvpIfNbrs, rsvpIfEnabled,
            rsvpIfUdpRequired, rsvpIfRefreshBlockadeMultiple,
            rsvpIfRefreshMultiple, rsvpIfRefreshInterval, rsvpIfTTL,
            rsvpIfRouteDelay, rsvpIfStatus
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for RSVP Systems."
       ::= { rsvpGroups 6 }

    rsvpNbrGroup OBJECT-GROUP
         OBJECTS {
            rsvpNbrProtocol, rsvpNbrStatus
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for RSVP Systems."
       ::= { rsvpGroups 7 }

    rsvpNotificationGroup NOTIFICATION-GROUP
        NOTIFICATIONS { newFlow, lostFlow }
        STATUS  current
        DESCRIPTION
           "This notification is required for Systems sup-
           porting  the  RSVP  Policy Module using an SNMP
           interface to the Policy Manager."
       ::= { rsvpGroups 8 }


END

-- ######################################################

--
-- File: rfc/rfc2213.mib
--

INTEGRATED-SERVICES-MIB DEFINITIONS ::= BEGIN

    IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE, Counter32,
            Gauge32, Integer32, mib-2                FROM SNMPv2-SMI
            TimeInterval, TEXTUAL-CONVENTION, RowStatus,
            TruthValue                               FROM SNMPv2-TC
            MODULE-COMPLIANCE, OBJECT-GROUP          FROM SNMPv2-CONF
            ifIndex, InterfaceIndex                  FROM IF-MIB;

--  This MIB module uses the extended OBJECT-TYPE macro as
--  defined in [9].

intSrv MODULE-IDENTITY
        LAST-UPDATED "9511030500Z" -- Thu Aug 28 09:04:13 PDT 1997
        ORGANIZATION "IETF Integrated Services Working Group"
        CONTACT-INFO
       "       Fred Baker
       Postal: Cisco Systems
               519 Lado Drive
               Santa Barbara, California 93111
       Tel:    +1 805 681 0115
       E-Mail: fred@cisco.com

               John Krawczyk
       Postal: ArrowPoint Communications
               235 Littleton Road
               Westford, Massachusetts 01886
       Tel:    +1 508 692 5875
       E-Mail: jjk@tiac.net"
    DESCRIPTION
       "The MIB module to describe the Integrated Services


       Protocol"
    ::= { mib-2 52 }

intSrvObjects          OBJECT IDENTIFIER ::= { intSrv 1 }
intSrvGenObjects       OBJECT IDENTIFIER ::= { intSrv 2 }
intSrvNotifications    OBJECT IDENTIFIER ::= { intSrv 3 }
intSrvConformance      OBJECT IDENTIFIER ::= { intSrv 4 }

-- Textual Conventions
--

    SessionNumber ::= TEXTUAL-CONVENTION
        STATUS   current
        DESCRIPTION
           "The Session  Number  convention  is  used  for
           numbers  identifying  sessions or saved PATH or
           RESV information. It is a number in  the  range
           returned  by  a TestAndIncr variable, having no
           protocol meaning whatsoever but serving instead
           as simple identifier.

           The alternative was a very complex instance  or
           instance object that became unwieldy."
       SYNTAX   INTEGER (0..2147483647)

    Protocol ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "d"
        STATUS   current
        DESCRIPTION
           "The value of the IP Protocol field  of  an  IP
           Datagram  Header.  This identifies the protocol
           layer above IP.  For example, the  value  6  is
           used  for TCP and the value 17 is used for UDP.
           The values of this field are defined in the As-
           signed Numbers RFC."
       SYNTAX   INTEGER (1..255)

    SessionType ::= TEXTUAL-CONVENTION
        STATUS   current
        DESCRIPTION
           "The value of the C-Type field of a Session ob-
           ject,  as  defined  in  the RSVP specification.
           This value  determines  the  lengths  of  octet
           strings  and use of certain objects such as the
           'port' variables. If the C-Type  calls  for  an
           IP6  address, one would expect all source, des-


           tination, and next/previous hop addresses to be
           16  bytes long, and for the ports to be UDP/TCP
           port numbers, for example."
       SYNTAX   INTEGER (1..255)

    Port ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "d"
        STATUS   current
        DESCRIPTION
           "The value of the UDP or TCP Source or Destina-
           tion  Port field, a virtual destination port or
           generalized port identifier used with the IPSEC
           Authentication Header or Encapsulating Security
           Payload, or other session discriminator.  If it
           is  not  used, the value should be of length 0.
           This pair, when coupled with the  IP  Addresses
           of the source and destination system and the IP
           protocol  field,  uniquely  identifies  a  data
           stream."
       SYNTAX   OCTET STRING (SIZE(2..4))

    MessageSize ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "d"
        STATUS   current
        DESCRIPTION
           "The size of a message in bytes. This  is  used
           to  specify  the  minimum and maximum size of a
           message along an integrated services route."
       SYNTAX   INTEGER (0..'7FFFFFFF'h)

    BitRate ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "d"
        STATUS   current
        DESCRIPTION
           "The rate, in bits/second, that data  may  move
           in  the context.  Applicable contexts minimally
           include the speed of an  interface  or  virtual
           circuit, the data rate of a (potentially aggre-
           gated) data flow, or the data rate to be  allo-
           cated for use by a flow."
       SYNTAX   INTEGER (0..'7FFFFFFF'h)

    BurstSize ::= TEXTUAL-CONVENTION
         DISPLAY-HINT "d"
         STATUS   current
         DESCRIPTION


           "The number of octets of IP Data, including  IP
           Headers, that a stream may send without concern
           for policing."
        SYNTAX   INTEGER (0..'7FFFFFFF'h)

    QosService ::= TEXTUAL-CONVENTION
         STATUS   current
         DESCRIPTION
           "The class of service in use by a flow."
        SYNTAX   INTEGER {
                   bestEffort (1),         -- Best Effort Service
                   guaranteedDelay (2),    -- Guaranteed Delay
                   controlledLoad (5)      -- Controlled Load
                 }

--      The Integrated Services Interface Attributes Database contains
--      information about resources allocated by resource reservation
--      protocols, such as RSVP and ST-II.

    intSrvIfAttribTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF IntSrvIfAttribEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "The reservable attributes of the system's  in-
           terfaces."
       ::= { intSrvObjects 1 }

    intSrvIfAttribEntry OBJECT-TYPE
        SYNTAX      IntSrvIfAttribEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "The reservable attributes of  a  given  inter-
           face."
       INDEX { ifIndex }
       ::= { intSrvIfAttribTable 1 }

IntSrvIfAttribEntry ::=
    SEQUENCE {
        intSrvIfAttribAllocatedBits     BitRate,
        intSrvIfAttribMaxAllocatedBits  BitRate,
        intSrvIfAttribAllocatedBuffer   BurstSize,
        intSrvIfAttribFlows             Gauge32,
        intSrvIfAttribPropagationDelay  Integer32,


        intSrvIfAttribStatus            RowStatus
    }

    intSrvIfAttribAllocatedBits OBJECT-TYPE
        SYNTAX      BitRate
        UNITS       "Bits per second"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The number of bits/second currently  allocated
           to reserved sessions on the interface."
       ::= { intSrvIfAttribEntry 1 }

    intSrvIfAttribMaxAllocatedBits OBJECT-TYPE
        SYNTAX      BitRate
        UNITS       "Bits per second"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The maximum number of bits/second that may  be
           allocated  to  reserved  sessions on the inter-
           face."
       ::= { intSrvIfAttribEntry 2 }

    intSrvIfAttribAllocatedBuffer OBJECT-TYPE
        SYNTAX      BurstSize
        UNITS       "Bytes"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The amount of buffer space  required  to  hold
           the simultaneous burst of all reserved flows on
           the interface."
       ::= { intSrvIfAttribEntry 3 }

    intSrvIfAttribFlows OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The number of reserved flows currently  active
           on  this  interface.  A flow can be created ei-
           ther from a reservation protocol (such as  RSVP
           or ST-II) or via configuration information."
       ::= { intSrvIfAttribEntry 4 }


    intSrvIfAttribPropagationDelay OBJECT-TYPE
        SYNTAX      Integer32
        UNITS       "microseconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The amount of propagation delay that this  in-
           terface  introduces  in addition to that intro-
           diced by bit propagation delays."
       DEFVAL { 0 }-- by default, interfaces are presumed to add
                   -- no extra delays
       ::= { intSrvIfAttribEntry 5 }

    intSrvIfAttribStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "'active' on interfaces that are configured for
           RSVP."
       ::= { intSrvIfAttribEntry 6 }

--      The Integrated Services Active Flows Database
--      lists all flows active on an outgoing interface, including
--      relevant attributes.

    intSrvFlowTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF IntSrvFlowEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "Information describing the reserved flows  us-
           ing the system's interfaces."
       ::= { intSrvObjects 2 }

    intSrvFlowEntry OBJECT-TYPE
        SYNTAX      IntSrvFlowEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "Information describing the use of a given  in-
           terface   by   a   given   flow.   The  counter
           intSrvFlowPoliced starts counting  at  the  in-
           stallation of the flow."


       INDEX { intSrvFlowNumber }
       ::= { intSrvFlowTable 1 }

    IntSrvFlowEntry ::=
        SEQUENCE {
            intSrvFlowNumber                  SessionNumber,
            intSrvFlowType                    SessionType,
            intSrvFlowOwner                   INTEGER,
            intSrvFlowDestAddr                OCTET STRING,
            intSrvFlowSenderAddr              OCTET STRING,
            intSrvFlowDestAddrLength          INTEGER,
            intSrvFlowSenderAddrLength        INTEGER,
            intSrvFlowProtocol                Protocol,
            intSrvFlowDestPort                Port,
            intSrvFlowPort                    Port,
            intSrvFlowFlowId                  INTEGER,
            intSrvFlowInterface               InterfaceIndex,
            intSrvFlowIfAddr                  OCTET STRING,
            intSrvFlowRate                    BitRate,
            intSrvFlowBurst                   BurstSize,
            intSrvFlowWeight                  Integer32,
            intSrvFlowQueue                   Integer32,
            intSrvFlowMinTU                   MessageSize,
            intSrvFlowMaxTU                   MessageSize,
            intSrvFlowBestEffort              Counter32,
            intSrvFlowPoliced                 Counter32,
            intSrvFlowDiscard                 TruthValue,
            intSrvFlowService                 QosService,
            intSrvFlowOrder                   INTEGER,
            intSrvFlowStatus                  RowStatus
        }

    intSrvFlowNumber OBJECT-TYPE
        SYNTAX      SessionNumber
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "The number of this flow.  This is for SNMP In-
           dexing purposes only and has no relation to any
           protocol value."
       ::= { intSrvFlowEntry 1 }

    intSrvFlowType OBJECT-TYPE
        SYNTAX      SessionType
        MAX-ACCESS  read-create


        STATUS      current
        DESCRIPTION
           "The type of session (IP4, IP6, IP6  with  flow
           information, etc)."
       ::= { intSrvFlowEntry 2 }

    intSrvFlowOwner OBJECT-TYPE
        SYNTAX      INTEGER {
                         other(1),
                         rsvp(2),
                         management(3)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The process that installed this  flow  in  the
           queue policy database."
       ::= { intSrvFlowEntry 3 }

    intSrvFlowDestAddr OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(4..16))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The destination address used by all senders in
           this  session.   This object may not be changed
           when the value of the RowStatus object is  'ac-
           tive'."
       ::= { intSrvFlowEntry 4 }

    intSrvFlowSenderAddr OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(4..16))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The source address of the sender  selected  by
           this  reservation.  The value of all zeroes in-
           dicates 'all senders'.  This object may not  be
           changed  when the value of the RowStatus object
           is 'active'."
       ::= { intSrvFlowEntry 5 }

    intSrvFlowDestAddrLength OBJECT-TYPE
        SYNTAX      INTEGER(0..128)


        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The length of the destination address in bits.
           This  is  the CIDR Prefix Length, which for IP4
           hosts and multicast addresses is 32 bits.  This
           object may not be changed when the value of the
           RowStatus object is 'active'."
       ::= { intSrvFlowEntry 6 }

    intSrvFlowSenderAddrLength OBJECT-TYPE
        SYNTAX      INTEGER(0..128)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The length of the sender's  address  in  bits.
           This  is  the CIDR Prefix Length, which for IP4
           hosts and multicast addresses is 32 bits.  This
           object may not be changed when the value of the
           RowStatus object is 'active'."
               ::= { intSrvFlowEntry 7 }

    intSrvFlowProtocol OBJECT-TYPE
        SYNTAX      Protocol
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The IP Protocol used by a session.   This  ob-
           ject  may  not be changed when the value of the
           RowStatus object is 'active'."
       ::= { intSrvFlowEntry 8 }

    intSrvFlowDestPort OBJECT-TYPE
        SYNTAX      Port
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The UDP or TCP port number used as a  destina-
           tion  port for all senders in this session.  If
           the  IP   protocol   in   use,   specified   by
           intSrvResvFwdProtocol,  is 50 (ESP) or 51 (AH),
           this  represents  a  virtual  destination  port
           number.   A value of zero indicates that the IP
           protocol in use does not have ports.  This  ob-
           ject  may  not be changed when the value of the


           RowStatus object is 'active'."
       ::= { intSrvFlowEntry 9 }

    intSrvFlowPort OBJECT-TYPE
        SYNTAX      Port
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The UDP or TCP port number used  as  a  source
           port  for  this sender in this session.  If the
           IP    protocol    in    use,    specified    by
           intSrvResvFwdProtocol  is  50 (ESP) or 51 (AH),
           this represents a generalized  port  identifier
           (GPI).   A  value of zero indicates that the IP
           protocol in use does not have ports.  This  ob-
           ject  may  not be changed when the value of the
           RowStatus object is 'active'."
       ::= { intSrvFlowEntry 10 }

    intSrvFlowFlowId OBJECT-TYPE
        SYNTAX      INTEGER (0..16777215)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The flow ID that  this  sender  is  using,  if
           this  is  an IPv6 session."
       ::= { intSrvFlowEntry 11 }

    intSrvFlowInterface OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The ifIndex value of the  interface  on  which
           this reservation exists."
       ::= { intSrvFlowEntry 12 }

    intSrvFlowIfAddr OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(4..16))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The IP Address on the ifEntry  on  which  this
           reservation  exists.  This is present primarily


           to support those interfaces which layer  multi-
           ple IP Addresses on the interface."
       ::= { intSrvFlowEntry 13 }

    intSrvFlowRate OBJECT-TYPE
        SYNTAX      BitRate
        UNITS       "bits per second"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The Reserved Rate of the sender's data stream.
           If this is a Controlled Load service flow, this
           rate is derived from the Tspec  rate  parameter
           (r).   If  this  is  a Guaranteed service flow,
           this rate is derived from  the  Rspec  clearing
           rate parameter (R)."
       ::= { intSrvFlowEntry 14 }

    intSrvFlowBurst OBJECT-TYPE
        SYNTAX      BurstSize
        UNITS       "bytes"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The size of the largest  burst  expected  from
           the sender at a time.

           If this is less than  the  sender's  advertised
           burst  size, the receiver is asking the network
           to provide flow pacing  beyond  what  would  be
           provided  under normal circumstances. Such pac-
           ing is at the network's option."
       ::= { intSrvFlowEntry 15 }

    intSrvFlowWeight OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The weight used  to  prioritize  the  traffic.
           Note  that the interpretation of this object is
           implementation-specific,   as   implementations
           vary in their use of weighting procedures."
       ::= { intSrvFlowEntry 16 }


    intSrvFlowQueue OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The number of the queue used by this  traffic.
           Note  that the interpretation of this object is
           implementation-specific,   as   implementations
           vary in their use of queue identifiers."
       ::= { intSrvFlowEntry 17 }

    intSrvFlowMinTU OBJECT-TYPE
        SYNTAX      MessageSize
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The minimum message size for  this  flow.  The
           policing  algorithm will treat smaller messages
           as though they are this size."
       ::= { intSrvFlowEntry 18 }

    intSrvFlowMaxTU OBJECT-TYPE
        SYNTAX      MessageSize
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The maximum datagram size for this  flow  that
           will conform to the traffic specification. This
           value cannot exceed the MTU of the interface."
       ::= { intSrvFlowEntry 19 }

    intSrvFlowBestEffort OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The number of packets that  were  remanded  to
           best effort service."
       ::= { intSrvFlowEntry 20 }

    intSrvFlowPoliced OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current


        DESCRIPTION
           "The number of packets policed since the incep-
           tion of the flow's service."
       ::= { intSrvFlowEntry 21 }

    intSrvFlowDiscard OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If 'true', the flow  is  to  incur  loss  when
           traffic is policed.  If 'false', policed traff-
           ic is treated as best effort traffic."
       DEFVAL { false } -- traffic is, by default, treated as best
                        -- effort
       ::= { intSrvFlowEntry 22 }

    intSrvFlowService OBJECT-TYPE
        SYNTAX      QosService
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The QoS service being applied to this flow."
       ::= { intSrvFlowEntry 23 }

    intSrvFlowOrder OBJECT-TYPE
        SYNTAX      INTEGER (0..65535)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "In the event of ambiguity, the order in  which
           the  classifier  should  make  its comparisons.
           The row with intSrvFlowOrder=0 is tried  first,
           and  comparisons  proceed  in  the order of in-
           creasing value.  Non-serial implementations  of
           the classifier should emulate this behavior."
       ::= { intSrvFlowEntry 24 }

    intSrvFlowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "'active' for all active  flows.   This  object


           may be used to install static classifier infor-
           mation, delete classifier information,  or  au-
           thorize such."
       ::= { intSrvFlowEntry 25 }

    intSrvFlowNewIndex OBJECT-TYPE
        SYNTAX      TestAndIncr
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
           "This  object  is  used  to  assign  values  to
           intSrvFlowNumber  as described in 'Textual Con-
           ventions  for  SNMPv2'.   The  network  manager
           reads  the  object,  and  then writes the value
           back in the SET that creates a new instance  of
           intSrvFlowEntry.   If  the  SET  fails with the
           code 'inconsistentValue', then the process must
           be  repeated; If the SET succeeds, then the ob-
           ject is incremented, and the  new  instance  is
           created according to the manager's directions."
       ::= { intSrvGenObjects 1 }

-- conformance information

intSrvGroups      OBJECT IDENTIFIER ::= { intSrvConformance 1 }
intSrvCompliances OBJECT IDENTIFIER ::= { intSrvConformance 2 }

-- compliance statements

    intSrvCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
           "The compliance statement "
       MODULE  -- this module
       MANDATORY-GROUPS { intSrvIfAttribGroup, intSrvFlowsGroup }

       OBJECT       intSrvFlowType
         MIN-ACCESS read-only
         DESCRIPTION
          "read-create access is not required. This may be
          read-only."

      OBJECT       intSrvFlowOwner
        MIN-ACCESS read-only


        DESCRIPTION
         "read-create access is not required. This may  be
         read-only."

     OBJECT       intSrvFlowDestAddr
       MIN-ACCESS read-only
       DESCRIPTION
        "read-create access is not required. This  may  be
        read-only."

    OBJECT       intSrvFlowSenderAddr
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       intSrvFlowDestAddrLength
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       intSrvFlowSenderAddrLength
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       intSrvFlowProtocol
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       intSrvFlowDestPort
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       intSrvFlowPort
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       intSrvFlowFlowId
      MIN-ACCESS not-accessible


      DESCRIPTION
       "This object is needed only in a system that imple-
       ments IPv6."

    OBJECT       intSrvFlowInterface
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       intSrvFlowRate
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       intSrvFlowBurst
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       intSrvFlowWeight
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       intSrvFlowQueue
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       intSrvFlowMinTU
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       intSrvFlowMaxTU
      MIN-ACCESS read-only
      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    OBJECT       intSrvFlowStatus
      MIN-ACCESS read-only


      DESCRIPTION
       "read-create access is not required.  This  may  be
       read-only."

    ::= { intSrvCompliances 1 }

    intSrvIfAttribGroup OBJECT-GROUP
         OBJECTS {
            intSrvIfAttribAllocatedBits, intSrvIfAttribMaxAllocatedBits,
            intSrvIfAttribAllocatedBuffer, intSrvIfAttribFlows,
            intSrvIfAttribPropagationDelay, intSrvIfAttribStatus
        }
        STATUS  current
        DESCRIPTION
           "These objects are required  for  Systems  sup-
           porting the Integrated Services Architecture."
       ::= { intSrvGroups 1 }

    intSrvFlowsGroup OBJECT-GROUP
         OBJECTS {
            intSrvFlowType, intSrvFlowOwner, intSrvFlowDestAddr,
            intSrvFlowSenderAddr, intSrvFlowDestAddrLength,
            intSrvFlowSenderAddrLength, intSrvFlowProtocol,
            intSrvFlowDestPort, intSrvFlowPort, intSrvFlowInterface,
            intSrvFlowBestEffort, intSrvFlowRate, intSrvFlowBurst,
            intSrvFlowWeight, intSrvFlowQueue, intSrvFlowMinTU,
            intSrvFlowDiscard, intSrvFlowPoliced, intSrvFlowService,
            intSrvFlowIfAddr, intSrvFlowOrder, intSrvFlowStatus
        }
        STATUS  current
        DESCRIPTION
           "These objects are required  for  Systems  sup-
           porting the Integrated Services Architecture."
       ::= { intSrvGroups 2 }

END

-- ######################################################

--
-- File: rfc/rfc2214.mib
--

INTEGRATED-SERVICES-GUARANTEED-MIB DEFINITIONS ::= BEGIN

    IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE             FROM SNMPv2-SMI
            RowStatus                                FROM SNMPv2-TC
            MODULE-COMPLIANCE, OBJECT-GROUP          FROM SNMPv2-CONF
            intSrv                        FROM INTEGRATED-SERVICES-MIB
            ifIndex                                  FROM IF-MIB;

--  This MIB module uses the extended OBJECT-TYPE macro as
--  defined in [9].

intSrvGuaranteed MODULE-IDENTITY
        LAST-UPDATED "9511030500Z" -- Thu Aug 28 09:04:22 PDT 1997
        ORGANIZATION "IETF Integrated Services Working Group"
        CONTACT-INFO
       "       Fred Baker
       Postal: Cisco Systems
               519 Lado Drive
               Santa Barbara, California 93111
       Tel:    +1 805 681 0115
       E-Mail: fred@cisco.com"
    DESCRIPTION
       "The MIB module to describe the Guaranteed Service of
       the Integrated Services Protocol"
    ::= { intSrv 5 }

intSrvGuaranteedObjects          OBJECT IDENTIFIER
                                 ::= { intSrvGuaranteed 1 }
intSrvGuaranteedNotifications    OBJECT IDENTIFIER
                                 ::= { intSrvGuaranteed 2 }
intSrvGuaranteedConformance      OBJECT IDENTIFIER
                                 ::= { intSrvGuaranteed 3 }

--      The Integrated Services Interface Attributes Database
--      contains information that is shared with other reservation
--      procedures such as ST-II.

    intSrvGuaranteedIfTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF IntSrvGuaranteedIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current


        DESCRIPTION
           "The attributes of the system's interfaces  ex-
           ported by the Guaranteed Service."
       ::= { intSrvGuaranteedObjects 1 }

    intSrvGuaranteedIfEntry OBJECT-TYPE
        SYNTAX      IntSrvGuaranteedIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "The reservable attributes of  a  given  inter-
           face."
       INDEX { ifIndex }
       ::= { intSrvGuaranteedIfTable 1 }

IntSrvGuaranteedIfEntry ::=
    SEQUENCE {
        intSrvGuaranteedIfBacklog INTEGER,
        intSrvGuaranteedIfDelay   INTEGER,
        intSrvGuaranteedIfSlack   INTEGER,
        intSrvGuaranteedIfStatus  RowStatus
    }

    intSrvGuaranteedIfBacklog OBJECT-TYPE
        SYNTAX      INTEGER (0..'0FFFFFFF'h)
        UNITS       "bytes"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The Backlog  parameter  is  the  data  backlog
           resulting  from  the vagaries of how a specific
           implementation deviates from a  strict  bit-by-
           bit  service.  So, for instance, for packetized
           weighted fair queueing, Backlog is set  to  the
           Maximum Packet Size.

           The Backlog term is measured in units of bytes.
           An  individual  element can advertise a Backlog
           value between 1 and 2**28 (a  little  over  250
           megabytes)  and  the  total added over all ele-
           ments can range as high as  (2**32)-1.   Should
           the  sum of the different elements delay exceed
           (2**32)-1, the end-to-end error term should  be
           (2**32)-1."
       ::= { intSrvGuaranteedIfEntry 1 }

    intSrvGuaranteedIfDelay OBJECT-TYPE


        SYNTAX      INTEGER (0..'0FFFFFFF'h)
        UNITS       "microseconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The Delay parameter at  each  service  element
           should  be  set  to the maximum packet transfer
           delay (independent of bucket size) through  the
           service  element.   For  instance,  in a simple
           router, one might compute the worst case amount
           of  time  it  make  take  for a datagram to get
           through the input interface to  the  processor,
           and how long it would take to get from the pro-
           cessor to the outbound interface (assuming  the
           queueing  schemes work correctly).  For an Eth-
           ernet, it might represent the worst case  delay
           if  the maximum number of collisions is experi-
           enced.

           The Delay term is measured in units of one  mi-
           crosecond.  An individual element can advertise
           a delay value between  1  and  2**28  (somewhat
           over two minutes) and the total delay added all
           elements  can  range  as  high  as   (2**32)-1.
           Should  the sum of the different elements delay
           exceed (2**32)-1, the end-to-end  delay  should
           be (2**32)-1."
       ::= { intSrvGuaranteedIfEntry 2 }

    intSrvGuaranteedIfSlack OBJECT-TYPE
        SYNTAX      INTEGER (0..'0FFFFFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If a network element uses a certain amount  of
           slack,  Si,  to  reduce the amount of resources
           that it has reserved for a particular flow,  i,
           the  value  Si  should be stored at the network
           element.   Subsequently,  if  reservation   re-
           freshes  are  received  for flow i, the network
           element must use the same slack Si without  any
           further computation. This guarantees consisten-
           cy in the reservation process.

           As an example for the use of  the  slack  term,
           consider the case where the required end-to-end
           delay, Dreq, is larger than the  maximum  delay
           of the fluid flow system.  In this, Ctot is the


           sum of the Backlog terms end to end,  and  Dtot
           is the sum of the delay terms end to end.  Dreq
           is obtained by setting R=r in the  fluid  delay
           formula, and is given by

                        b/r + Ctot/r + Dtot.

           In this case the slack term is

                  S = Dreq - (b/r + Ctot/r + Dtot).

           The slack term may be used by the network  ele-
           ments  to  adjust  their local reservations, so
           that they can admit flows that would  otherwise
           have been rejected. A service element at an in-
           termediate network element that can  internally
           differentiate between delay and rate guarantees
           can now take advantage of this  information  to
           lower the amount of resources allocated to this
           flow. For example, by taking an amount of slack
           s  <= S, an RCSD scheduler [5] can increase the
           local delay bound, d, assigned to the flow,  to
           d+s. Given an RSpec, (Rin, Sin), it would do so
           by setting Rout = Rin and Sout = Sin - s.

           Similarly,  a  network  element  using  a   WFQ
           scheduler  can  decrease  its local reservation
           from Rin to Rout by using some of the slack  in
           the  RSpec.  This  can be accomplished by using
           the transformation rules given in the  previous
           section,  that ensure that the reduced reserva-
           tion level will not increase the  overall  end-
           to-end delay."
       ::= { intSrvGuaranteedIfEntry 3 }

    intSrvGuaranteedIfStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "'valid' on interfaces that are configured  for
           the Guaranteed Service."
       ::= { intSrvGuaranteedIfEntry 4 }

--      No notifications are currently defined

-- conformance information


intSrvGuaranteedGroups      OBJECT IDENTIFIER
                            ::= { intSrvGuaranteedConformance 1 }
intSrvGuaranteedCompliances OBJECT IDENTIFIER
                            ::= { intSrvGuaranteedConformance 2 }

-- compliance statements

    intSrvGuaranteedCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
           "The compliance statement "
       MODULE  -- this module
       MANDATORY-GROUPS {
           intSrvGuaranteedIfAttribGroup
           }
       ::= { intSrvGuaranteedCompliances 1 }

    intSrvGuaranteedIfAttribGroup OBJECT-GROUP
         OBJECTS {
            intSrvGuaranteedIfBacklog,
            intSrvGuaranteedIfDelay,
            intSrvGuaranteedIfSlack,
            intSrvGuaranteedIfStatus
        }
        STATUS  current
        DESCRIPTION
           "These objects are required  for  Systems  sup-
           porting the Guaranteed Service of the Integrat-
           ed Services Architecture."
       ::= { intSrvGuaranteedGroups 2 }

END

-- ######################################################

--
-- File: rfc/rfc2233.mib
--

IF-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32, Counter64,
       Integer32, TimeTicks, mib-2,
       NOTIFICATION-TYPE                        FROM SNMPv2-SMI
       TEXTUAL-CONVENTION, DisplayString,
       PhysAddress, TruthValue, RowStatus,
       TimeStamp, AutonomousType, TestAndIncr   FROM SNMPv2-TC
       MODULE-COMPLIANCE, OBJECT-GROUP          FROM SNMPv2-CONF
       snmpTraps                                FROM SNMPv2-MIB
       IANAifType                               FROM IANAifType-MIB;


   ifMIB MODULE-IDENTITY
       LAST-UPDATED "9611031355Z"
       ORGANIZATION "IETF Interfaces MIB Working Group"
       CONTACT-INFO
               "   Keith McCloghrie
                   Cisco Systems, Inc.
                   170 West Tasman Drive
                   San Jose, CA  95134-1706
                   US

                   408-526-5260
                   kzm@cisco.com"
       DESCRIPTION
               "The MIB module to describe generic objects for
               network interface sub-layers.  This MIB is an updated
               version of MIB-II's ifTable, and incorporates the
               extensions defined in RFC 1229."
       REVISION      "9602282155Z"
       DESCRIPTION
               "Revisions made by the Interfaces MIB WG."
       REVISION      "9311082155Z"
       DESCRIPTION
               "Initial revision, published as part of RFC 1573."
       ::= { mib-2 31 }

   ifMIBObjects OBJECT IDENTIFIER ::= { ifMIB 1 }

   interfaces   OBJECT IDENTIFIER ::= { mib-2 2 }

   OwnerString ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "255a"
       STATUS       current
       DESCRIPTION
               "This data type is used to model an administratively
               assigned name of the owner of a resource.  This
               information is taken from the NVT ASCII character set.
               It is suggested that this name contain one or more of
               the following: ASCII form of the manager station's
               transport address, management station name (e.g.,
               domain name), network management personnel's name,
               location, or phone number.  In some cases the agent
               itself will be the owner of an entry.  In these cases,
               this string shall be set to a string starting with
               'agent'."
       SYNTAX       OCTET STRING (SIZE(0..255))


   -- InterfaceIndex contains the semantics of ifIndex and
   -- should be used for any objects defined on other mib
   -- modules that need these semantics.

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

   InterfaceIndexOrZero ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS       current
       DESCRIPTION
               "This textual convention is an extension of the
               InterfaceIndex convention.  The latter defines a
               greater than zero value used to identify an interface
               or interface sub-layer 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."
       SYNTAX       Integer32 (0..2147483647)

   ifNumber  OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of network interfaces (regardless of their
               current state) present on this system."
       ::= { interfaces 1 }


   ifTableLastChange  OBJECT-TYPE
       SYNTAX      TimeTicks
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The value of sysUpTime at the time of the last
               creation or deletion of an entry in the ifTable.  If
               the number of entries has been unchanged since the
               last re-initialization of the local network management
               subsystem, then this object contains a zero value."
       ::= { ifMIBObjects 5 }

   -- the Interfaces table

   -- The Interfaces table contains information on the entity's
   -- interfaces.  Each sub-layer below the internetwork-layer
   -- of a network interface is considered to be an interface.

   ifTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF IfEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "A list of interface entries.  The number of entries
               is given by the value of ifNumber."
       ::= { interfaces 2 }

   ifEntry OBJECT-TYPE
       SYNTAX      IfEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "An entry containing management information applicable
               to a particular interface."
       INDEX   { ifIndex }

       ::= { ifTable 1 }

   IfEntry ::=
       SEQUENCE {
           ifIndex                 InterfaceIndex,
           ifDescr                 DisplayString,
           ifType                  IANAifType,
           ifMtu                   Integer32,
           ifSpeed                 Gauge32,


           ifPhysAddress           PhysAddress,
           ifAdminStatus           INTEGER,
           ifOperStatus            INTEGER,
           ifLastChange            TimeTicks,
           ifInOctets              Counter32,
           ifInUcastPkts           Counter32,
           ifInNUcastPkts          Counter32,  -- deprecated
           ifInDiscards            Counter32,
           ifInErrors              Counter32,
           ifInUnknownProtos       Counter32,
           ifOutOctets             Counter32,
           ifOutUcastPkts          Counter32,
           ifOutNUcastPkts         Counter32,  -- deprecated
           ifOutDiscards           Counter32,
           ifOutErrors             Counter32,
           ifOutQLen               Gauge32,    -- deprecated
           ifSpecific              OBJECT IDENTIFIER -- deprecated
       }

   ifIndex OBJECT-TYPE
       SYNTAX      InterfaceIndex
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A unique value, greater than zero, for each
               interface.  It is recommended that values are assigned
               contiguously starting from 1.  The value for each
               interface sub-layer must remain constant at least from
               one re-initialization of the entity's network
               management system to the next re-initialization."
       ::= { ifEntry 1 }

   ifDescr OBJECT-TYPE
       SYNTAX      DisplayString (SIZE (0..255))
       MAX-ACCESS  read-only

       STATUS      current
       DESCRIPTION
               "A textual string containing information about the
               interface.  This string should include the name of the
               manufacturer, the product name and the version of the
               interface hardware/software."
       ::= { ifEntry 2 }


   ifType OBJECT-TYPE
       SYNTAX      IANAifType
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The type of interface.  Additional values for ifType
               are assigned by the Internet Assigned Numbers
               Authority (IANA), through updating the syntax of the
               IANAifType textual convention."
       ::= { ifEntry 3 }

   ifMtu OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The size of the largest packet which can be
               sent/received on the interface, specified in octets.
               For interfaces that are used for transmitting network
               datagrams, this is the size of the largest network
               datagram that can be sent on the interface."
       ::= { ifEntry 4 }

   ifSpeed OBJECT-TYPE
       SYNTAX      Gauge32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "An estimate of the interface's current bandwidth in
               bits per second.  For interfaces which do not vary in
               bandwidth or for those where no accurate estimation
               can be made, this object should contain the nominal
               bandwidth.  If the bandwidth of the interface is
               greater than the maximum value reportable by this
               object then this object should report its maximum
               value (4,294,967,295) and ifHighSpeed must be used to
               report the interace's speed.  For a sub-layer which
               has no concept of bandwidth, this object should be
               zero."
       ::= { ifEntry 5 }

   ifPhysAddress OBJECT-TYPE
       SYNTAX      PhysAddress
       MAX-ACCESS  read-only
       STATUS      current


       DESCRIPTION
               "The interface's address at its protocol sub-layer.
               For example, for an 802.x interface, this object
               normally contains a MAC address.  The interface's
               media-specific MIB must define the bit and byte
               ordering and the format of the value of this object.
               For interfaces which do not have such an address
               (e.g., a serial line), this object should contain an
               octet string of zero length."
       ::= { ifEntry 6 }

   ifAdminStatus OBJECT-TYPE
       SYNTAX  INTEGER {
                   up(1),       -- ready to pass packets
                   down(2),
                   testing(3)   -- in some test mode
               }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
               "The desired state of the interface.  The testing(3)
               state indicates that no operational packets can be
               passed.  When a managed system initializes, all
               interfaces start with ifAdminStatus in the down(2)
               state.  As a result of either explicit management
               action or per configuration information retained by
               the managed system, ifAdminStatus is then changed to
               either the up(1) or testing(3) states (or remains in
               the down(2) state)."
       ::= { ifEntry 7 }

   ifOperStatus OBJECT-TYPE
       SYNTAX  INTEGER {
                   up(1),        -- ready to pass packets
                   down(2),
                   testing(3),   -- in some test mode
                   unknown(4),   -- status can not be determined
                                 -- for some reason.
                   dormant(5),
                   notPresent(6),    -- some component is missing
                   lowerLayerDown(7) -- down due to state of
                                     -- lower-layer interface(s)
               }


       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The current operational state of the interface.  The
               testing(3) state indicates that no operational packets
               can be passed.  If ifAdminStatus is down(2) then
               ifOperStatus should be down(2).  If ifAdminStatus is
               changed to up(1) then ifOperStatus should change to
               up(1) if the interface is ready to transmit and
               receive network traffic; it should change to
               dormant(5) if the interface is waiting for external
               actions (such as a serial line waiting for an incoming
               connection); it should remain in the down(2) state if
               and only if there is a fault that prevents it from
               going to the up(1) state; it should remain in the
               notPresent(6) state if the interface has missing
               (typically, hardware) components."
       ::= { ifEntry 8 }

   ifLastChange OBJECT-TYPE
       SYNTAX      TimeTicks
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The value of sysUpTime at the time the interface
               entered its current operational state.  If the current
               state was entered prior to the last re-initialization
               of the local network management subsystem, then this
               object contains a zero value."
       ::= { ifEntry 9 }

   ifInOctets OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of octets received on the interface,
               including framing characters.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifEntry 10 }


   ifInUcastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were not addressed to a
               multicast or broadcast address at this sub-layer.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifEntry 11 }

   ifInNUcastPkts OBJECT-TYPE
       SYNTAX  Counter32
       MAX-ACCESS  read-only
       STATUS      deprecated
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were addressed to a
               multicast or broadcast address at this sub-layer.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime.

               This object is deprecated in favour of
               ifInMulticastPkts and ifInBroadcastPkts."
       ::= { ifEntry 12 }

   ifInDiscards OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of inbound packets which were chosen to be
               discarded even though no errors had been detected to
               prevent their being deliverable to a higher-layer
               protocol.  One possible reason for discarding such a
               packet could be to free up buffer space.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."


       ::= { ifEntry 13 }

   ifInErrors OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "For packet-oriented interfaces, the number of inbound
               packets that contained errors preventing them from
               being deliverable to a higher-layer protocol.  For
               character-oriented or fixed-length interfaces, the
               number of inbound transmission units that contained
               errors preventing them from being deliverable to a
               higher-layer protocol.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifEntry 14 }

   ifInUnknownProtos OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "For packet-oriented interfaces, the number of packets
               received via the interface which were discarded
               because of an unknown or unsupported protocol.  For
               character-oriented or fixed-length interfaces that
               support protocol multiplexing the number of
               transmission units received via the interface which
               were discarded because of an unknown or unsupported
               protocol.  For any interface that does not support
               protocol multiplexing, this counter will always be 0.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifEntry 15 }


   ifOutOctets OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of octets transmitted out of the
               interface, including framing characters.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifEntry 16 }

   ifOutUcastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were not
               addressed to a multicast or broadcast address at this
               sub-layer, including those that were discarded or not
               sent.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifEntry 17 }

   ifOutNUcastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      deprecated
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were
               addressed to a multicast or broadcast address at this
               sub-layer, including those that were discarded or not
               sent.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime.


               This object is deprecated in favour of
               ifOutMulticastPkts and ifOutBroadcastPkts."
       ::= { ifEntry 18 }

   ifOutDiscards OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of outbound packets which were chosen to
               be discarded even though no errors had been detected
               to prevent their being transmitted.  One possible
               reason for discarding such a packet could be to free
               up buffer space.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifEntry 19 }

   ifOutErrors OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "For packet-oriented interfaces, the number of
               outbound packets that could not be transmitted because
               of errors.  For character-oriented or fixed-length
               interfaces, the number of outbound transmission units
               that could not be transmitted because of errors.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifEntry 20 }

   ifOutQLen OBJECT-TYPE
       SYNTAX      Gauge32
       MAX-ACCESS  read-only
       STATUS      deprecated
       DESCRIPTION
               "The length of the output packet queue (in packets)."
       ::= { ifEntry 21 }


   ifSpecific OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-only
       STATUS      deprecated
       DESCRIPTION
               "A reference to MIB definitions specific to the
               particular media being used to realize the interface.
               It is recommended that this value point to an instance
               of a MIB object in the media-specific MIB, i.e., that
               this object have the semantics associated with the
               InstancePointer textual convention defined in RFC
               1903.  In fact, it is recommended that the media-
               specific MIB specify what value ifSpecific should/can
               take for values of ifType.  If no MIB definitions
               specific to the particular media are available, the
               value should be set to the OBJECT IDENTIFIER { 0 0 }."
       ::= { ifEntry 22 }

   --
   --   Extension to the interface table
   --
   -- This table replaces the ifExtnsTable table.
   --

   ifXTable        OBJECT-TYPE
       SYNTAX      SEQUENCE OF IfXEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "A list of interface entries.  The number of entries
               is given by the value of ifNumber.  This table
               contains additional objects for the interface table."
       ::= { ifMIBObjects 1 }

   ifXEntry        OBJECT-TYPE
       SYNTAX      IfXEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "An entry containing additional management information
               applicable to a particular interface."
       AUGMENTS    { ifEntry }
       ::= { ifXTable 1 }


   IfXEntry ::=
       SEQUENCE {
           ifName                  DisplayString,
           ifInMulticastPkts       Counter32,
           ifInBroadcastPkts       Counter32,
           ifOutMulticastPkts      Counter32,
           ifOutBroadcastPkts      Counter32,
           ifHCInOctets            Counter64,
           ifHCInUcastPkts         Counter64,
           ifHCInMulticastPkts     Counter64,
           ifHCInBroadcastPkts     Counter64,
           ifHCOutOctets           Counter64,
           ifHCOutUcastPkts        Counter64,
           ifHCOutMulticastPkts    Counter64,
           ifHCOutBroadcastPkts    Counter64,
           ifLinkUpDownTrapEnable  INTEGER,
           ifHighSpeed             Gauge32,
           ifPromiscuousMode       TruthValue,
           ifConnectorPresent      TruthValue,
           ifAlias                 DisplayString,
           ifCounterDiscontinuityTime TimeStamp
       }

   ifName OBJECT-TYPE
       SYNTAX      DisplayString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The textual name of the interface.  The value of this
               object should be the name of the interface as assigned
               by the local device and should be suitable for use in
               commands entered at the device's `console'.  This
               might be a text name, such as `le0' or a simple port
               number, such as `1', depending on the interface naming
               syntax of the device.  If several entries in the
               ifTable together represent a single interface as named
               by the device, then each will have the same value of
               ifName.  Note that for an agent which responds to SNMP
               queries concerning an interface on some other
               (proxied) device, then the value of ifName for such an
               interface is the proxied device's local name for it.

               If there is no local name, or this object is otherwise
               not applicable, then this object contains a zero-
               length string."
       ::= { ifXEntry 1 }


   ifInMulticastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were addressed to a
               multicast address at this sub-layer.  For a MAC layer
               protocol, this includes both Group and Functional
               addresses.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifXEntry 2 }

   ifInBroadcastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were addressed to a
               broadcast address at this sub-layer.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifXEntry 3 }

   ifOutMulticastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were
               addressed to a multicast address at this sub-layer,
               including those that were discarded or not sent.  For
               a MAC layer protocol, this includes both Group and
               Functional addresses.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."


       ::= { ifXEntry 4 }

   ifOutBroadcastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were
               addressed to a broadcast address at this sub-layer,
               including those that were discarded or not sent.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifXEntry 5 }

   --
   -- High Capacity Counter objects.  These objects are all
   -- 64 bit versions of the "basic" ifTable counters.  These
   -- objects all have the same basic semantics as their 32-bit
   -- counterparts, however, their syntax has been extended
   -- to 64 bits.
   --

   ifHCInOctets OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current

       DESCRIPTION
               "The total number of octets received on the interface,
               including framing characters.  This object is a 64-bit
               version of ifInOctets.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifXEntry 6 }


   ifHCInUcastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were not addressed to a
               multicast or broadcast address at this sub-layer.
               This object is a 64-bit version of ifInUcastPkts.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifXEntry 7 }

   ifHCInMulticastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were addressed to a
               multicast address at this sub-layer.  For a MAC layer
               protocol, this includes both Group and Functional
               addresses.  This object is a 64-bit version of
               ifInMulticastPkts.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifXEntry 8 }

   ifHCInBroadcastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were addressed to a
               broadcast address at this sub-layer.  This object is a
               64-bit version of ifInBroadcastPkts.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of


               ifCounterDiscontinuityTime."
       ::= { ifXEntry 9 }

   ifHCOutOctets OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of octets transmitted out of the
               interface, including framing characters.  This object
               is a 64-bit version of ifOutOctets.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifXEntry 10 }

   ifHCOutUcastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were not
               addressed to a multicast or broadcast address at this
               sub-layer, including those that were discarded or not
               sent.  This object is a 64-bit version of
               ifOutUcastPkts.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifXEntry 11 }

   ifHCOutMulticastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were
               addressed to a multicast address at this sub-layer,
               including those that were discarded or not sent.  For
               a MAC layer protocol, this includes both Group and
               Functional addresses.  This object is a 64-bit version
               of ifOutMulticastPkts.


               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifXEntry 12 }

   ifHCOutBroadcastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were
               addressed to a broadcast address at this sub-layer,
               including those that were discarded or not sent.  This
               object is a 64-bit version of ifOutBroadcastPkts.

               Discontinuities in the value of this counter can occur
               at re-initialization of the management system, and at
               other times as indicated by the value of
               ifCounterDiscontinuityTime."
       ::= { ifXEntry 13 }

   ifLinkUpDownTrapEnable  OBJECT-TYPE
       SYNTAX      INTEGER { enabled(1), disabled(2) }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION

               "Indicates whether linkUp/linkDown traps should be
               generated for this interface.

               By default, this object should have the value
               enabled(1) for interfaces which do not operate on
               'top' of any other interface (as defined in the
               ifStackTable), and disabled(2) otherwise."
       ::= { ifXEntry 14 }

   ifHighSpeed OBJECT-TYPE
       SYNTAX      Gauge32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "An estimate of the interface's current bandwidth in
               units of 1,000,000 bits per second.  If this object
               reports a value of `n' then the speed of the interface
               is somewhere in the range of `n-500,000' to
               `n+499,999'.  For interfaces which do not vary in


               bandwidth or for those where no accurate estimation
               can be made, this object should contain the nominal
               bandwidth.  For a sub-layer which has no concept of
               bandwidth, this object should be zero."
       ::= { ifXEntry 15 }

   ifPromiscuousMode  OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
               "This object has a value of false(2) if this interface
               only accepts packets/frames that are addressed to this
               station.  This object has a value of true(1) when the
               station accepts all packets/frames transmitted on the
               media.  The value true(1) is only legal on certain
               types of media.  If legal, setting this object to a
               value of true(1) may require the interface to be reset
               before becoming effective.

               The value of ifPromiscuousMode does not affect the
               reception of broadcast and multicast packets/frames by
               the interface."
       ::= { ifXEntry 16 }

   ifConnectorPresent   OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "This object has the value 'true(1)' if the interface
               sublayer has a physical connector and the value
               'false(2)' otherwise."
       ::= { ifXEntry 17 }

   ifAlias   OBJECT-TYPE
       SYNTAX      DisplayString (SIZE(0..64))
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
               "This object is an 'alias' name for the interface as
               specified by a network manager, and provides a non-
               volatile 'handle' for the interface.

               On the first instantiation of an interface, the value
               of ifAlias associated with that interface is the
               zero-length string.  As and when a value is written
               into an instance of ifAlias through a network


               management set operation, then the agent must retain
               the supplied value in the ifAlias instance associated
               with the same interface for as long as that interface
               remains instantiated, including across all re-
               initializations/reboots of the network management
               system, including those which result in a change of
               the interface's ifIndex value.

               An example of the value which a network manager might
               store in this object for a WAN interface is the
               (Telco's) circuit number/identifier of the interface.

               Some agents may support write-access only for
               interfaces having particular values of ifType.  An
               agent which supports write access to this object is
               required to keep the value in non-volatile storage,
               but it may limit the length of new values depending on
               how much storage is already occupied by the current
               values for other interfaces."
       ::= { ifXEntry 18 }

   ifCounterDiscontinuityTime OBJECT-TYPE
       SYNTAX      TimeStamp
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The value of sysUpTime on the most recent occasion at
               which any one or more of this interface's counters
               suffered a discontinuity.  The relevant counters are
               the specific instances associated with this interface
               of any Counter32 or Counter64 object contained in the
               ifTable or ifXTable.  If no such discontinuities have
               occurred since the last re-initialization of the local
               management subsystem, then this object contains a zero
               value."
       ::= { ifXEntry 19 }

   --           The Interface Stack Group
   --
   -- Implementation of this group is mandatory for all systems
   --

   ifStackTable  OBJECT-TYPE
        SYNTAX        SEQUENCE OF IfStackEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION


               "The table containing information on the relationships
               between the multiple sub-layers of network interfaces.
               In particular, it contains information on which sub-
               layers run 'on top of' which other sub-layers, where
               each sub-layer corresponds to a conceptual row in the
               ifTable.  For example, when the sub-layer with ifIndex
               value x runs over the sub-layer with ifIndex value y,
               then this table contains:

                 ifStackStatus.x.y=active

               For each ifIndex value, I, which identifies an active
               interface, there are always at least two instantiated
               rows in this table associated with I.  For one of
               these rows, I is the value of ifStackHigherLayer; for
               the other, I is the value of ifStackLowerLayer.  (If I
               is not involved in multiplexing, then these are the
               only two rows associated with I.)

               For example, two rows exist even for an interface
               which has no others stacked on top or below it:

                 ifStackStatus.0.x=active
                 ifStackStatus.x.0=active "
        ::= { ifMIBObjects 2 }

   ifStackEntry  OBJECT-TYPE
        SYNTAX        IfStackEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
               "Information on a particular relationship between two
               sub-layers, specifying that one sub-layer runs on
               'top' of the other sub-layer.  Each sub-layer
               corresponds to a conceptual row in the ifTable."
        INDEX { ifStackHigherLayer, ifStackLowerLayer }
        ::= { ifStackTable 1 }

   IfStackEntry ::=
       SEQUENCE {
           ifStackHigherLayer  Integer32,
           ifStackLowerLayer   Integer32,
           ifStackStatus       RowStatus
        }


   ifStackHigherLayer  OBJECT-TYPE
        SYNTAX        Integer32
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
               "The value of ifIndex corresponding to the higher
               sub-layer of the relationship, i.e., the sub-layer
               which runs on 'top' of the sub-layer identified by the
               corresponding instance of ifStackLowerLayer.  If there
               is no higher sub-layer (below the internetwork layer),
               then this object has the value 0."
        ::= { ifStackEntry 1 }

   ifStackLowerLayer  OBJECT-TYPE
        SYNTAX        Integer32
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
               "The value of ifIndex corresponding to the lower sub-
               layer of the relationship, i.e., the sub-layer which
               runs 'below' the sub-layer identified by the
               corresponding instance of ifStackHigherLayer.  If
               there is no lower sub-layer, then this object has the
               value 0."
        ::= { ifStackEntry 2 }

   ifStackStatus  OBJECT-TYPE
       SYNTAX         RowStatus
       MAX-ACCESS     read-create
       STATUS         current
       DESCRIPTION
               "The status of the relationship between two sub-
               layers.

               Changing the value of this object from 'active' to
               'notInService' or 'destroy' will likely have
               consequences up and down the interface stack.  Thus,
               write access to this object is likely to be
               inappropriate for some types of interfaces, and many
               implementations will choose not to support write-
               access for any type of interface."
       ::= { ifStackEntry 3 }

   ifStackLastChange OBJECT-TYPE
       SYNTAX         TimeTicks
       MAX-ACCESS     read-only


       STATUS         current
       DESCRIPTION
               "The value of sysUpTime at the time of the last change
               of the (whole) interface stack.  A change of the
               interface stack is defined to be any creation,
               deletion, or change in value of any instance of
               ifStackStatus.  If the interface stack has been
               unchanged since the last re-initialization of the
               local network management subsystem, then this object
               contains a zero value."
       ::= { ifMIBObjects 6 }

   --   Generic Receive Address Table
   --
   -- This group of objects is mandatory for all types of
   -- interfaces which can receive packets/frames addressed to
   -- more than one address.
   --
   -- This table replaces the ifExtnsRcvAddr table.  The main
   -- difference is that this table makes use of the RowStatus
   -- textual convention, while ifExtnsRcvAddr did not.

   ifRcvAddressTable  OBJECT-TYPE
       SYNTAX      SEQUENCE OF IfRcvAddressEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "This table contains an entry for each address
               (broadcast, multicast, or uni-cast) for which the
               system will receive packets/frames on a particular
               interface, except as follows:

               - for an interface operating in promiscuous mode,
               entries are only required for those addresses for
               which the system would receive frames were it not
               operating in promiscuous mode.

               - for 802.5 functional addresses, only one entry is
               required, for the address which has the functional
               address bit ANDed with the bit mask of all functional
               addresses for which the interface will accept frames.

               A system is normally able to use any unicast address
               which corresponds to an entry in this table as a
               source address."
       ::= { ifMIBObjects 4 }


   ifRcvAddressEntry  OBJECT-TYPE
       SYNTAX      IfRcvAddressEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "A list of objects identifying an address for which
               the system will accept packets/frames on the
               particular interface identified by the index value
               ifIndex."
       INDEX  { ifIndex, ifRcvAddressAddress }
       ::= { ifRcvAddressTable 1 }

   IfRcvAddressEntry ::=
       SEQUENCE {
           ifRcvAddressAddress   PhysAddress,
           ifRcvAddressStatus    RowStatus,
           ifRcvAddressType      INTEGER
       }

   ifRcvAddressAddress OBJECT-TYPE
       SYNTAX      PhysAddress
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "An address for which the system will accept
               packets/frames on this entry's interface."

       ::= { ifRcvAddressEntry 1 }

   ifRcvAddressStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
               "This object is used to create and delete rows in the
               ifRcvAddressTable."

       ::= { ifRcvAddressEntry 2 }

   ifRcvAddressType OBJECT-TYPE
       SYNTAX      INTEGER {
                       other(1),
                       volatile(2),
                       nonVolatile(3)
                   }

       MAX-ACCESS  read-create
       STATUS      current


       DESCRIPTION
               "This object has the value nonVolatile(3) for those
               entries in the table which are valid and will not be
               deleted by the next restart of the managed system.
               Entries having the value volatile(2) are valid and
               exist, but have not been saved, so that will not exist
               after the next restart of the managed system.  Entries
               having the value other(1) are valid and exist but are
               not classified as to whether they will continue to
               exist after the next restart."

       DEFVAL  { volatile }
       ::= { ifRcvAddressEntry 3 }

   -- definition of interface-related traps.

   linkDown NOTIFICATION-TYPE
           OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
           STATUS  current
           DESCRIPTION
               "A linkDown trap signifies that the SNMPv2 entity,
               acting in an agent role, has detected that the
               ifOperStatus object for one of its communication links
               is about to enter the down state from some other state
               (but not from the notPresent state).  This other state
               is indicated by the included value of ifOperStatus."
       ::= { snmpTraps 3 }

   linkUp NOTIFICATION-TYPE
           OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
           STATUS  current
           DESCRIPTION
               "A linkDown trap signifies that the SNMPv2 entity,
               acting in an agent role, has detected that the
               ifOperStatus object for one of its communication links
               left the down state and transitioned into some other
               state (but not into the notPresent state).  This other
               state is indicated by the included value of
               ifOperStatus."
       ::= { snmpTraps 4 }

   -- conformance information

   ifConformance OBJECT IDENTIFIER ::= { ifMIB 2 }

   ifGroups      OBJECT IDENTIFIER ::= { ifConformance 1 }
   ifCompliances OBJECT IDENTIFIER ::= { ifConformance 2 }


   -- compliance statements

   ifCompliance2 MODULE-COMPLIANCE
       STATUS  current
       DESCRIPTION
               "The compliance statement for SNMPv2 entities which
               have network interfaces."

       MODULE  -- this module
           MANDATORY-GROUPS { ifGeneralInformationGroup, ifStackGroup2,
                              ifCounterDiscontinuityGroup }

           GROUP       ifFixedLengthGroup
           DESCRIPTION
               "This group is mandatory for all network interfaces
               which are character-oriented or transmit data in
               fixed-length transmission units."

           GROUP       ifHCFixedLengthGroup
           DESCRIPTION
               "This group is mandatory only for those network
               interfaces which are character-oriented or transmit
               data in fixed-length transmission units, and for which
               the value of the corresponding instance of ifSpeed is
               greater than 20,000,000 bits/second."

           GROUP       ifPacketGroup
           DESCRIPTION
               "This group is mandatory for all network interfaces
               which are packet-oriented."

           GROUP       ifHCPacketGroup
           DESCRIPTION
               "This group is mandatory only for those network
               interfaces which are packet-oriented and for which the
               value of the corresponding instance of ifSpeed is
               greater than 650,000,000 bits/second."

           GROUP       ifRcvAddressGroup
           DESCRIPTION
               "The applicability of this group MUST be defined by
               the media-specific MIBs.  Media-specific MIBs must
               define the exact meaning, use, and semantics of the
               addresses in this group."


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

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

           OBJECT      ifStackStatus
           SYNTAX      INTEGER { active(1) } -- subset of RowStatus
           MIN-ACCESS  read-only
           DESCRIPTION
               "Write access is not required, and only one of the six
               enumerated values for the RowStatus textual convention
               need be supported, specifically: active(1)."

           OBJECT       ifAdminStatus
           SYNTAX       INTEGER { up(1), down(2) }
           MIN-ACCESS   read-only
           DESCRIPTION
               "Write access is not required, nor is support for the
               value testing(3)."

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

       ::= { ifCompliances 2 }

   -- units of conformance

   ifGeneralInformationGroup    OBJECT-GROUP
       OBJECTS { ifIndex, ifDescr, ifType, ifSpeed, ifPhysAddress,
                 ifAdminStatus, ifOperStatus, ifLastChange,
                 ifLinkUpDownTrapEnable, ifConnectorPresent,
                 ifHighSpeed, ifName, ifNumber, ifAlias,
                 ifTableLastChange }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               applicable to all network interfaces."
       ::= { ifGroups 10 }

   -- the following five groups are mutually exclusive; at most
   -- one of these groups is implemented for any interface


   ifFixedLengthGroup    OBJECT-GROUP
       OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos,
                 ifInErrors, ifOutErrors }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to non-high speed (non-high speed interfaces
               transmit and receive at speeds less than or equal to
               20,000,000 bits/second) character-oriented or fixed-
               length-transmission network interfaces."
       ::= { ifGroups 2 }

   ifHCFixedLengthGroup    OBJECT-GROUP
       OBJECTS { ifHCInOctets, ifHCOutOctets,
                 ifInOctets, ifOutOctets, ifInUnknownProtos,
                 ifInErrors, ifOutErrors }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to high speed (greater than 20,000,000
               bits/second) character-oriented or fixed-length-
               transmission network interfaces."
       ::= { ifGroups 3 }

   ifPacketGroup    OBJECT-GROUP
       OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos,
                 ifInErrors, ifOutErrors,
                 ifMtu, ifInUcastPkts, ifInMulticastPkts,
                 ifInBroadcastPkts, ifInDiscards,
                 ifOutUcastPkts, ifOutMulticastPkts,
                 ifOutBroadcastPkts, ifOutDiscards,
                 ifPromiscuousMode }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to non-high speed (non-high speed interfaces
               transmit and receive at speeds less than or equal to
               20,000,000 bits/second) packet-oriented network
               interfaces."
       ::= { ifGroups 4 }

   ifHCPacketGroup    OBJECT-GROUP
       OBJECTS { ifHCInOctets, ifHCOutOctets,
                 ifInOctets, ifOutOctets, ifInUnknownProtos,
                 ifInErrors, ifOutErrors,
                 ifMtu, ifInUcastPkts, ifInMulticastPkts,
                 ifInBroadcastPkts, ifInDiscards,
                 ifOutUcastPkts, ifOutMulticastPkts,


                 ifOutBroadcastPkts, ifOutDiscards,
                 ifPromiscuousMode }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to high speed (greater than 20,000,000
               bits/second but less than or equal to 650,000,000
               bits/second) packet-oriented network interfaces."
       ::= { ifGroups 5 }

   ifVHCPacketGroup    OBJECT-GROUP
       OBJECTS { ifHCInUcastPkts, ifHCInMulticastPkts,
                 ifHCInBroadcastPkts, ifHCOutUcastPkts,
                 ifHCOutMulticastPkts, ifHCOutBroadcastPkts,
                 ifHCInOctets, ifHCOutOctets,
                 ifInOctets, ifOutOctets, ifInUnknownProtos,
                 ifInErrors, ifOutErrors,
                 ifMtu, ifInUcastPkts, ifInMulticastPkts,
                 ifInBroadcastPkts, ifInDiscards,
                 ifOutUcastPkts, ifOutMulticastPkts,
                 ifOutBroadcastPkts, ifOutDiscards,
                 ifPromiscuousMode }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to higher speed (greater than 650,000,000
               bits/second) packet-oriented network interfaces."
       ::= { ifGroups 6 }

   ifRcvAddressGroup    OBJECT-GROUP
       OBJECTS { ifRcvAddressStatus, ifRcvAddressType }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information on the
               multiple addresses which an interface receives."
       ::= { ifGroups 7 }

   ifStackGroup2    OBJECT-GROUP
       OBJECTS { ifStackStatus, ifStackLastChange }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information on the
               layering of MIB-II interfaces."
       ::= { ifGroups 11 }

   ifCounterDiscontinuityGroup  OBJECT-GROUP
       OBJECTS { ifCounterDiscontinuityTime }
       STATUS  current


       DESCRIPTION
               "A collection of objects providing information
               specific to interface counter discontinuities."
       ::= { ifGroups 13 }

   -- Deprecated Definitions - Objects

   --
   --    The Interface Test Table
   --
   -- This group of objects is optional.  However, a media-specific
   -- MIB may make implementation of this group mandatory.
   --
   -- This table replaces the ifExtnsTestTable
   --

   ifTestTable   OBJECT-TYPE
       SYNTAX      SEQUENCE OF IfTestEntry
       MAX-ACCESS  not-accessible
       STATUS      deprecated
       DESCRIPTION
               "This table contains one entry per interface.  It
               defines objects which allow a network manager to
               instruct an agent to test an interface for various
               faults.  Tests for an interface are defined in the
               media-specific MIB for that interface.  After invoking
               a test, the object ifTestResult can be read to
               determine the outcome.  If an agent can not perform
               the test, ifTestResult is set to so indicate.  The
               object ifTestCode can be used to provide further
               test-specific or interface-specific (or even
               enterprise-specific) information concerning the
               outcome of the test.  Only one test can be in progress
               on each interface at any one time.  If one test is in
               progress when another test is invoked, the second test
               is rejected.  Some agents may reject a test when a
               prior test is active on another interface.

               Before starting a test, a manager-station must first
               obtain 'ownership' of the entry in the ifTestTable for
               the interface to be tested.  This is accomplished with
               the ifTestId and ifTestStatus objects as follows:

            try_again:
                get (ifTestId, ifTestStatus)
                while (ifTestStatus != notInUse)
                    /*


                     * Loop while a test is running or some other
                     * manager is configuring a test.
                     */
                    short delay
                    get (ifTestId, ifTestStatus)
                }

                /*
                 * Is not being used right now -- let's compete
                 * to see who gets it.
                 */
                lock_value = ifTestId

                if ( set(ifTestId = lock_value, ifTestStatus = inUse,
                         ifTestOwner = 'my-IP-address') == FAILURE)
                    /*
                     * Another manager got the ifTestEntry -- go
                     * try again
                     */
                    goto try_again;

                /*
                 * I have the lock
                 */
                set up any test parameters.

                /*
                 * This starts the test
                 */
                set(ifTestType = test_to_run);

                wait for test completion by polling ifTestResult

                when test completes, agent sets ifTestResult
                     agent also sets ifTestStatus = 'notInUse'

                retrieve any additional test results, and ifTestId

                if (ifTestId == lock_value+1) results are valid

              A manager station first retrieves the value of the
              appropriate ifTestId and ifTestStatus objects,
              periodically repeating the retrieval if necessary,
              until the value of ifTestStatus is 'notInUse'.  The
              manager station then tries to set the same ifTestId
              object to the value it just retrieved, the same
              ifTestStatus object to 'inUse', and the corresponding
              ifTestOwner object to a value indicating itself.  If


              the set operation succeeds then the manager has
              obtained ownership of the ifTestEntry, and the value of
              the ifTestId object is incremented by the agent (per
              the semantics of TestAndIncr).  Failure of the set
              operation indicates that some other manager has
              obtained ownership of the ifTestEntry.

              Once ownership is obtained, any test parameters can be
              setup, and then the test is initiated by setting
              ifTestType.  On completion of the test, the agent sets
              ifTestStatus to 'notInUse'.  Once this occurs, the
              manager can retrieve the results.  In the (rare) event
              that the invocation of tests by two network managers
              were to overlap, then there would be a possibility that
              the first test's results might be overwritten by the
              second test's results prior to the first results being
              read.  This unlikely circumstance can be detected by a
              network manager retrieving ifTestId at the same time as
              retrieving the test results, and ensuring that the
              results are for the desired request.

              If ifTestType is not set within an abnormally long
              period of time after ownership is obtained, the agent
              should time-out the manager, and reset the value of the
              ifTestStatus object back to 'notInUse'.  It is
              suggested that this time-out period be 5 minutes.

              In general, a management station must not retransmit a
              request to invoke a test for which it does not receive
              a response; instead, it properly inspects an agent's
              MIB to determine if the invocation was successful.
              Only if the invocation was unsuccessful, is the
              invocation request retransmitted.

              Some tests may require the interface to be taken off-
              line in order to execute them, or may even require the
              agent to reboot after completion of the test.  In these
              circumstances, communication with the management
              station invoking the test may be lost until after
              completion of the test.  An agent is not required to
              support such tests.  However, if such tests are
              supported, then the agent should make every effort to
              transmit a response to the request which invoked the
              test prior to losing communication.  When the agent is
              restored to normal service, the results of the test are
              properly made available in the appropriate objects.
              Note that this requires that the ifIndex value assigned
              to an interface must be unchanged even if the test


              causes a reboot.  An agent must reject any test for
              which it cannot, perhaps due to resource constraints,
              make available at least the minimum amount of
              information after that test completes."
       ::= { ifMIBObjects 3 }

   ifTestEntry OBJECT-TYPE
       SYNTAX       IfTestEntry
       MAX-ACCESS   not-accessible
       STATUS       deprecated
       DESCRIPTION
               "An entry containing objects for invoking tests on an
               interface."
       AUGMENTS  { ifEntry }
       ::= { ifTestTable 1 }

   IfTestEntry ::=
       SEQUENCE {
           ifTestId           TestAndIncr,
           ifTestStatus       INTEGER,
           ifTestType         AutonomousType,
           ifTestResult       INTEGER,
           ifTestCode         OBJECT IDENTIFIER,
           ifTestOwner        OwnerString
       }

   ifTestId         OBJECT-TYPE
       SYNTAX       TestAndIncr
       MAX-ACCESS   read-write
       STATUS       deprecated
       DESCRIPTION
               "This object identifies the current invocation of the
               interface's test."
       ::= { ifTestEntry 1 }

   ifTestStatus     OBJECT-TYPE
       SYNTAX       INTEGER { notInUse(1), inUse(2) }
       MAX-ACCESS   read-write
       STATUS       deprecated
       DESCRIPTION
               "This object indicates whether or not some manager
               currently has the necessary 'ownership' required to
               invoke a test on this interface.  A write to this
               object is only successful when it changes its value
               from 'notInUse(1)' to 'inUse(2)'.  After completion of
               a test, the agent resets the value back to
               'notInUse(1)'."
       ::= { ifTestEntry 2 }


   ifTestType       OBJECT-TYPE
       SYNTAX       AutonomousType
       MAX-ACCESS   read-write
       STATUS       deprecated
       DESCRIPTION
               "A control variable used to start and stop operator-
               initiated interface tests.  Most OBJECT IDENTIFIER
               values assigned to tests are defined elsewhere, in
               association with specific types of interface.
               However, this document assigns a value for a full-
               duplex loopback test, and defines the special meanings
               of the subject identifier:

                   noTest  OBJECT IDENTIFIER ::= { 0 0 }

               When the value noTest is written to this object, no
               action is taken unless a test is in progress, in which
               case the test is aborted.  Writing any other value to
               this object is only valid when no test is currently in
               progress, in which case the indicated test is
               initiated.

               When read, this object always returns the most recent
               value that ifTestType was set to.  If it has not been
               set since the last initialization of the network
               management subsystem on the agent, a value of noTest
               is returned."
       ::= { ifTestEntry 3 }

   ifTestResult  OBJECT-TYPE
       SYNTAX       INTEGER {
                        none(1),          -- no test yet requested
                        success(2),
                        inProgress(3),
                        notSupported(4),
                        unAbleToRun(5),   -- due to state of system
                        aborted(6),
                        failed(7)
                    }
       MAX-ACCESS   read-only
       STATUS       deprecated
       DESCRIPTION
               "This object contains the result of the most recently
               requested test, or the value none(1) if no tests have
               been requested since the last reset.  Note that this
               facility provides no provision for saving the results
               of one test when starting another, as could be
               required if used by multiple managers concurrently."


       ::= { ifTestEntry 4 }

   ifTestCode  OBJECT-TYPE
       SYNTAX       OBJECT IDENTIFIER
       MAX-ACCESS   read-only
       STATUS       deprecated
       DESCRIPTION
               "This object contains a code which contains more
               specific information on the test result, for example
               an error-code after a failed test.  Error codes and
               other values this object may take are specific to the
               type of interface and/or test.  The value may have the
               semantics of either the AutonomousType or
               InstancePointer textual conventions as defined in RFC
               1903.  The identifier:

                   testCodeUnknown  OBJECT IDENTIFIER ::= { 0 0 }

               is defined for use if no additional result code is
               available."
       ::= { ifTestEntry 5 }

   ifTestOwner      OBJECT-TYPE
       SYNTAX       OwnerString
       MAX-ACCESS   read-write
       STATUS       deprecated
       DESCRIPTION
               "The entity which currently has the 'ownership'
               required to invoke a test on this interface."
       ::= { ifTestEntry 6 }

   -- Deprecated Definitions - Groups

   ifGeneralGroup    OBJECT-GROUP
       OBJECTS { ifDescr, ifType, ifSpeed, ifPhysAddress,
                 ifAdminStatus, ifOperStatus, ifLastChange,
                 ifLinkUpDownTrapEnable, ifConnectorPresent,
                 ifHighSpeed, ifName }
       STATUS  deprecated
       DESCRIPTION
               "A collection of objects deprecated in favour of
               ifGeneralInformationGroup."
       ::= { ifGroups 1 }

   ifTestGroup    OBJECT-GROUP
       OBJECTS { ifTestId, ifTestStatus, ifTestType,


                 ifTestResult, ifTestCode, ifTestOwner }
       STATUS  deprecated
       DESCRIPTION
               "A collection of objects providing the ability to
               invoke tests on an interface."
       ::= { ifGroups 8 }

   ifStackGroup    OBJECT-GROUP
       OBJECTS { ifStackStatus }
       STATUS  deprecated
       DESCRIPTION
               "The previous collection of objects providing
               information on the layering of MIB-II interfaces."
       ::= { ifGroups 9 }

   ifOldObjectsGroup    OBJECT-GROUP
       OBJECTS { ifInNUcastPkts, ifOutNUcastPkts,
                 ifOutQLen, ifSpecific }
       STATUS  deprecated
       DESCRIPTION
               "The collection of objects deprecated from the
               original MIB-II interfaces group."
       ::= { ifGroups 12 }

   -- Deprecated Definitions - Compliance

   ifCompliance MODULE-COMPLIANCE
       STATUS  deprecated
       DESCRIPTION
               "The previous compliance statement for SNMPv2 entities
               which have network interfaces."

       MODULE  -- this module
           MANDATORY-GROUPS { ifGeneralGroup, ifStackGroup }

           GROUP       ifFixedLengthGroup
           DESCRIPTION
               "This group is mandatory for all network interfaces
               which are character-oriented or transmit data in
               fixed-length transmission units."

           GROUP       ifHCFixedLengthGroup
           DESCRIPTION
               "This group is mandatory only for those network
               interfaces which are character-oriented or transmit


               data in fixed-length transmission units, and for which
               the value of the corresponding instance of ifSpeed is
               greater than 20,000,000 bits/second."

           GROUP       ifPacketGroup
           DESCRIPTION
               "This group is mandatory for all network interfaces
               which are packet-oriented."

           GROUP       ifHCPacketGroup
           DESCRIPTION
               "This group is mandatory only for those network
               interfaces which are packet-oriented and for which the
               value of the corresponding instance of ifSpeed is
               greater than 650,000,000 bits/second."

           GROUP       ifTestGroup
           DESCRIPTION
               "This group is optional.  Media-specific MIBs which
               require interface tests are strongly encouraged to use
               this group for invoking tests and reporting results.
               A medium specific MIB which has mandatory tests may
               make implementation of this group mandatory."

           GROUP       ifRcvAddressGroup
           DESCRIPTION
               "The applicability of this group MUST be defined by
               the media-specific MIBs.  Media-specific MIBs must
               define the exact meaning, use, and semantics of the
               addresses in this group."

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

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

           OBJECT      ifStackStatus
           SYNTAX      INTEGER { active(1) } -- subset of RowStatus
           MIN-ACCESS  read-only
           DESCRIPTION
               "Write access is not required, and only one of the six
               enumerated values for the RowStatus textual convention
               need be supported, specifically: active(1)."


           OBJECT       ifAdminStatus
           SYNTAX       INTEGER { up(1), down(2) }
           MIN-ACCESS   read-only
           DESCRIPTION
               "Write access is not required, nor is support for the
               value testing(3)."
       ::= { ifCompliances 1 }

END

-- ######################################################

--
-- File: rfc/rfc2261.mib
--

SNMP-FRAMEWORK-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE,
       OBJECT-IDENTITY,
       snmpModules                           FROM SNMPv2-SMI
       TEXTUAL-CONVENTION                    FROM SNMPv2-TC
       MODULE-COMPLIANCE, OBJECT-GROUP       FROM SNMPv2-CONF;

   snmpFrameworkMIB MODULE-IDENTITY
       LAST-UPDATED "9711200000Z"            -- 20 November 1997
       ORGANIZATION "SNMPv3 Working Group"
       CONTACT-INFO "WG-email:   snmpv3@tis.com
                     Subscribe:  majordomo@tis.com
                                 In message body:  subscribe snmpv3

                     Chair:      Russ Mundy
                                 Trusted Information Systems
                     postal:     3060 Washington Rd
                                 Glenwood MD 21738
                                 USA
                     email:      mundy@tis.com
                     phone:      +1 301-854-6889

                     Co-editor   Dave Harrington
                                 Cabletron Systems, Inc.
                     postal:     Post Office Box 5005
                                 Mail Stop: Durham
                                 35 Industrial Way
                                 Rochester, NH 03867-5005
                                 USA
                     email:      dbh@ctron.com
                     phone:      +1 603-337-7357

                     Co-editor   Randy Presuhn
                                 BMC Software, Inc.
                     postal:     1190 Saratoga Avenue
                                 Suite 130
                                 San Jose, CA 95129
                                 USA
                     email:      rpresuhn@bmc.com
                     phone:      +1 408-556-0720

                     Co-editor:  Bert Wijnen
                                 IBM T.J. Watson Research
                     postal:     Schagen 33


                                 3461 GL Linschoten
                                 Netherlands
                     email:      wijnen@vnet.ibm.com
                     phone:      +31 348-432-794
                    "
       DESCRIPTION  "The SNMP Management Architecture MIB"
       ::= { snmpModules 2 }

   -- Textual Conventions used in the SNMP Management Architecture ***

   SnmpEngineID ::= TEXTUAL-CONVENTION
       STATUS       current
       DESCRIPTION "An SNMP engine's administratively-unique identifier.

                    The value for this object may not be all zeros or
                    all 'ff'H or the empty (zero length) string.

                    The initial value for this object may be configured
                    via an operator console entry or via an algorithmic
                    function.  In the latter case, the following
                    example algorithm is recommended.

                    In cases where there are multiple engines on the
                    same system, the use of this algorithm is NOT
                    appropriate, as it would result in all of those
                    engines ending up with the same ID value.

                    1) The very first bit is used to indicate how the
                       rest of the data is composed.

                       0 - as defined by enterprise using former methods
                           that existed before SNMPv3. See item 2 below.

                       1 - as defined by this architecture, see item 3
                           below.

                       Note that this allows existing uses of the
                       engineID (also known as AgentID [RFC1910]) to
                       co-exist with any new uses.

                    2) The snmpEngineID has a length of 12 octets.

                       The first four octets are set to the binary
                       equivalent of the agent's SNMP management
                       private enterprise number as assigned by the
                       Internet Assigned Numbers Authority (IANA).
                       For example, if Acme Networks has been assigned
                       { enterprises 696 }, the first four octets would


                       be assigned '000002b8'H.

                       The remaining eight octets are determined via
                       one or more enterprise-specific methods. Such
                       methods must be designed so as to maximize the
                       possibility that the value of this object will
                       be unique in the agent's administrative domain.
                       For example, it may be the IP address of the SNMP
                       entity, or the MAC address of one of the
                       interfaces, with each address suitably padded
                       with random octets.  If multiple methods are
                       defined, then it is recommended that the first
                       octet indicate the method being used and the
                       remaining octets be a function of the method.

                    3) The length of the octet strings varies.

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

                       The very first bit is set to 1. For example, the
                       above value for Acme Networks now changes to be
                       '800002b8'H.

                       The fifth octet indicates how the rest (6th and
                       following octets) are formatted. The values for
                       the fifth octet are:

                         0     - reserved, unused.

                         1     - IPv4 address (4 octets)
                                 lowest non-special IP address

                         2     - IPv6 address (16 octets)
                                 lowest non-special IP address

                         3     - MAC address (6 octets)
                                 lowest IEEE MAC address, canonical
                                 order

                         4     - Text, administratively assigned
                                 Maximum remaining length 27


                         5     - Octets, administratively assigned
                                 Maximum remaining length 27

                         6-127 - reserved, unused

                       127-255 - as defined by the enterprise
                                 Maximum remaining length 27
                   "
       SYNTAX       OCTET STRING (SIZE(1..32))

   SnmpSecurityModel ::= TEXTUAL-CONVENTION
       STATUS       current
       DESCRIPTION "An identifier that uniquely identifies a
                    securityModel of the Security Subsystem within the
                    SNMP Management Architecture.

                    The values for securityModel are allocated as
                    follows:

                    - The zero value is reserved.
                    - Values between 1 and 255, inclusive, are reserved
                      for standards-track Security Models and are
                      managed by the Internet Assigned Numbers Authority
                      (IANA).
                    - Values greater than 255 are allocated to
                      enterprise-specific Security Models.  An
                      enterprise-specific securityModel value is defined
                      to be:

                      enterpriseID * 256 + security model within
                      enterprise

                      For example, the fourth Security Model defined by
                      the enterprise whose enterpriseID is 1 would be
                      260.

                    This scheme for allocation of securityModel
                    values allows for a maximum of 255 standards-
                    based Security Models, and for a maximum of
                    255 Security Models per enterprise.

                    It is believed that the assignment of new
                    securityModel values will be rare in practice
                    because the larger the number of simultaneously
                    utilized Security Models, the larger the
                    chance that interoperability will suffer.
                    Consequently, it is believed that such a range
                    will be sufficient.  In the unlikely event that


                    the standards committee finds this number to be
                    insufficient over time, an enterprise number
                    can be allocated to obtain an additional 255
                    possible values.

                    Note that the most significant bit must be zero;
                    hence, there are 23 bits allocated for various
                    organizations to design and define non-standard
                    securityModels.  This limits the ability to
                    define new proprietary implementations of Security
                    Models to the first 8,388,608 enterprises.

                    It is worthwhile to note that, in its encoded
                    form, the securityModel value will normally
                    require only a single byte since, in practice,
                    the leftmost bits will be zero for most messages
                    and sign extension is suppressed by the encoding
                    rules.

                    As of this writing, there are several values
                    of securityModel defined for use with SNMP or
                    reserved for use with supporting MIB objects.
                    They are as follows:

                        0  reserved for 'any'
                        1  reserved for SNMPv1
                        2  reserved for SNMPv2c
                        3  User-Based Security Model (USM)
                   "
       SYNTAX       INTEGER(0..2147483647)

   SnmpMessageProcessingModel ::= TEXTUAL-CONVENTION
       STATUS       current
       DESCRIPTION "An identifier that uniquely identifies a Message
                    Processing Model of the Message Processing
                    Subsystem within a SNMP Management Architecture.

                    The values for messageProcessingModel are
                    allocated as follows:

                    - Values between 0 and 255, inclusive, are
                      reserved for standards-track Message Processing
                      Models and are managed by the Internet Assigned
                      Numbers Authority (IANA).
                    - Values greater than 255 are allocated to
                      enterprise-specific Message Processing Models.
                      An enterprise messageProcessingModel value is
                      defined to be:


                      enterpriseID * 256 +
                           messageProcessingModel within enterprise

                      For example, the fourth Message Processing Model
                      defined by the enterprise whose enterpriseID
                      is 1 would be 260.

                    This scheme for allocation of securityModel
                    values allows for a maximum of 255 standards-
                    based Message Processing Models, and for a
                    maximum of 255 Message Processing Models per
                    enterprise.

                    It is believed that the assignment of new
                    messageProcessingModel values will be rare
                    in practice because the larger the number of
                    simultaneously utilized Message Processing Models,
                    the larger the chance that interoperability
                    will suffer. It is believed that such a range
                    will be sufficient.  In the unlikely event that
                    the standards committee finds this number to be
                    insufficient over time, an enterprise number
                    can be allocated to obtain an additional 256
                    possible values.

                    Note that the most significant bit must be zero;
                    hence, there are 23 bits allocated for various
                    organizations to design and define non-standard
                    messageProcessingModels.  This limits the ability
                    to define new proprietary implementations of
                    Message Processing Models to the first 8,388,608
                    enterprises.

                    It is worthwhile to note that, in its encoded
                    form, the securityModel value will normally
                    require only a single byte since, in practice,
                    the leftmost bits will be zero for most messages
                    and sign extension is suppressed by the encoding
                    rules.

                    As of this writing, there are several values of
                    messageProcessingModel defined for use with SNMP.
                    They are as follows:

                        0  reserved for SNMPv1
                        1  reserved for SNMPv2c
                        2  reserved for SNMPv2u and SNMPv2*
                        3  reserved for SNMPv3


                   "
       SYNTAX       INTEGER(0..2147483647)

   SnmpSecurityLevel ::= TEXTUAL-CONVENTION
       STATUS       current
       DESCRIPTION "A Level of Security at which SNMP messages can be
                    sent or with which operations are being processed;
                    in particular, one of:

                      noAuthNoPriv - without authentication and
                                     without privacy,
                      authNoPriv   - with authentication but
                                     without privacy,
                      authPriv     - with authentication and
                                     with privacy.

                    These three values are ordered such that
                    noAuthNoPriv is less than authNoPriv and
                    authNoPriv is less than authPriv.
                   "
       SYNTAX       INTEGER { noAuthNoPriv(1),
                              authNoPriv(2),
                              authPriv(3)
                            }

   SnmpAdminString ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "255a"
       STATUS       current
       DESCRIPTION "An octet string containing administrative
                    information, preferably in human-readable form.

                    To facilitate internationalization, this
                    information is represented using the ISO/IEC
                    IS 10646-1 character set, encoded as an octet
                    string using the UTF-8 transformation format
                    described in [RFC2044].

                    Since additional code points are added by
                    amendments to the 10646 standard from time
                    to time, implementations must be prepared to
                    encounter any code point from 0x00000000 to
                    0x7fffffff.

                    The use of control codes should be avoided.

                    When it is necessary to represent a newline,
                    the control code sequence CR LF should be used.


                    The use of leading or trailing white space should
                    be avoided.

                    For code points not directly supported by user
                    interface hardware or software, an alternative
                    means of entry and display, such as hexadecimal,
                    may be provided.

                    For information encoded in 7-bit US-ASCII,
                    the UTF-8 encoding is identical to the
                    US-ASCII encoding.

                    Note that when this TC is used for an object that
                    is used or envisioned to be used as an index, then
                    a SIZE restriction must be specified so that the
                    number of sub-identifiers for any object instance
                    does not exceed the limit of 128, as defined by
                    [RFC1905].
                   "
       SYNTAX       OCTET STRING (SIZE (0..255))

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

   snmpFrameworkAdmin
       OBJECT IDENTIFIER ::= { snmpFrameworkMIB 1 }
   snmpFrameworkMIBObjects
       OBJECT IDENTIFIER ::= { snmpFrameworkMIB 2 }
   snmpFrameworkMIBConformance
       OBJECT IDENTIFIER ::= { snmpFrameworkMIB 3 }

   -- the snmpEngine Group ********************************************

   snmpEngine OBJECT IDENTIFIER ::= { snmpFrameworkMIBObjects 1 }

   snmpEngineID     OBJECT-TYPE
       SYNTAX       SnmpEngineID
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION "An SNMP engine's administratively-unique identifier.
                   "
       ::= { snmpEngine 1 }

   snmpEngineBoots  OBJECT-TYPE
       SYNTAX       INTEGER (1..2147483647)
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION "The number of times that the SNMP engine has


                    (re-)initialized itself since its initial
                    configuration.
                   "
       ::= { snmpEngine 2 }

   snmpEngineTime   OBJECT-TYPE
       SYNTAX       INTEGER (0..2147483647)
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION "The number of seconds since the SNMP engine last
                    incremented the snmpEngineBoots object.
                   "
       ::= { snmpEngine 3 }

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

   -- Registration Points for Authentication and Privacy Protocols **

   snmpAuthProtocols OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION  "Registration point for standards-track
                     authentication protocols used in SNMP Management
                     Frameworks.
                    "
       ::= { snmpFrameworkAdmin 1 }

   snmpPrivProtocols OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION  "Registration point for standards-track privacy
                     protocols used in SNMP Management Frameworks.
                    "
       ::= { snmpFrameworkAdmin 2 }

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

   snmpFrameworkMIBCompliances
                  OBJECT IDENTIFIER ::= {snmpFrameworkMIBConformance 1}


   snmpFrameworkMIBGroups
                  OBJECT IDENTIFIER ::= {snmpFrameworkMIBConformance 2}

   -- compliance statements

   snmpFrameworkMIBCompliance MODULE-COMPLIANCE
       STATUS       current
       DESCRIPTION "The compliance statement for SNMP engines which
                    implement the SNMP Management Framework MIB.
                   "
       MODULE    -- this module
           MANDATORY-GROUPS { snmpEngineGroup }

       ::= { snmpFrameworkMIBCompliances 1 }

   -- units of conformance

   snmpEngineGroup OBJECT-GROUP
       OBJECTS {
                 snmpEngineID,
                 snmpEngineBoots,
                 snmpEngineTime,
                 snmpEngineMaxMessageSize
               }
       STATUS       current
       DESCRIPTION "A collection of objects for identifying and
                    determining the configuration and current timeliness
                    values of an SNMP engine.
                   "
       ::= { snmpFrameworkMIBGroups 1 }

END

-- ######################################################

--
-- File: rfc/rfc2262.mib
--

SNMP-MPD-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-COMPLIANCE, OBJECT-GROUP         FROM SNMPv2-CONF
       MODULE-IDENTITY, OBJECT-TYPE,
       snmpModules, Counter32                  FROM SNMPv2-SMI;

   snmpMPDMIB MODULE-IDENTITY
       LAST-UPDATED "9711200000Z"              -- 20 November 1997
       ORGANIZATION "SNMPv3 Working Group"
       CONTACT-INFO "WG-email:   snmpv3@tis.com
                     Subscribe:  majordomo@tis.com
                                 In message body:  subscribe snmpv3

                     Chair:      Russ Mundy
                                 Trusted Information Systems
                     postal:     3060 Washington Road
                                 Glenwood, MD 21738
                                 USA
                     email:      mundy@tis.com
                     phone:      +1 301-854-6889

                     Co-editor:  Jeffrey Case
                                 SNMP Research, Inc.
                     postal:     3001 Kimberlin Heights Road
                                 Knoxville, TN 37920-9716
                                 USA
                     email:      case@snmp.com
                     phone:      +1 423-573-1434


                     Co-editor   Dave Harrington
                                 Cabletron Systems, Inc.
                     postal:     Post Office Box 5005
                                 MailStop: Durham
                                 35 Industrial Way
                                 Rochester, NH 03867-5005
                                 USA
                     email:      dbh@ctron.com
                     phone:      +1 603-337-7357

                     Co-editor:  Randy Presuhn
                                 BMC Software, Inc.
                     postal:     1190 Saratoga Ave, Suite 190
                                 San Jose, CA 95120
                                 USA
                     email:      rpresuhn@bmc.com
                     phone:      +1 408-556-0720

                     Co-editor:  Bert Wijnen
                                 IBM T. J. Watson Research
                     postal:     Schagen 33
                                 3461 GL Linschoten
                                 Netherlands
                     email:      wijnen@vnet.ibm.com
                     phone:      +31 348-432-794

                    "
       DESCRIPTION  "The MIB for Message Processing and Dispatching"
       ::= { snmpModules 3 }

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

   snmpMPDAdmin           OBJECT IDENTIFIER ::= { snmpMPDMIB 1 }
   snmpMPDMIBObjects      OBJECT IDENTIFIER ::= { snmpMPDMIB 2 }
   snmpMPDMIBConformance  OBJECT IDENTIFIER ::= { snmpMPDMIB 3 }

   -- Statistics for SNMP Messages *************************************

   snmpMPDStats           OBJECT IDENTIFIER ::= { snmpMPDMIBObjects 1 }

   snmpUnknownSecurityModels OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION "The total number of packets received by the SNMP
                    engine which were dropped because they referenced a
                    securityModel that was not known to or supported by
                    the SNMP engine.


                   "
       ::= { snmpMPDStats 1 }

   snmpInvalidMsgs OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION "The total number of packets received by the SNMP
                    engine which were dropped because there were invalid
                    or inconsistent components in the SNMP message.
                   "
       ::= { snmpMPDStats 2 }

   snmpUnknownPDUHandlers OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION "The total number of packets received by the SNMP
                    engine which were dropped because the PDU contained
                    in the packet could not be passed to an application
                    responsible for handling the pduType, e.g. no SNMP
                    application had registered for the proper
                    combination of the contextEngineID and the pduType.
                   "
       ::= { snmpMPDStats 3 }

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

   snmpMPDMIBCompliances OBJECT IDENTIFIER ::= {snmpMPDMIBConformance 1}
   snmpMPDMIBGroups      OBJECT IDENTIFIER ::= {snmpMPDMIBConformance 2}

   -- Compliance statements

   snmpMPDCompliance MODULE-COMPLIANCE
       STATUS       current
       DESCRIPTION "The compliance statement for SNMP entities which
                    implement the SNMP-MPD-MIB.
                   "

       MODULE    -- this module

           MANDATORY-GROUPS { snmpMPDGroup }

       ::= { snmpMPDMIBCompliances 1 }

   snmpMPDGroup OBJECT-GROUP
       OBJECTS {
                 snmpUnknownSecurityModels,


                 snmpInvalidMsgs,
                 snmpUnknownPDUHandlers
               }
       STATUS       current
       DESCRIPTION "A collection of objects providing for remote
                    monitoring of the SNMP Message Processing and
                    Dispatching process.
                   "
       ::= { snmpMPDMIBGroups 1 }

END

-- ######################################################

--
-- File: rfc/rfc2265.mib
--

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 "9711200000Z"            -- 20 Nov 1997, midnight
    ORGANIZATION "SNMPv3 Working Group"
    CONTACT-INFO "WG-email:   snmpv3@tis.com
                  Subscribe:  majordomo@tis.com
                              In message body:  subscribe snmpv3


                  Chair:      Russ Mundy
                              Trusted Information Systems
                  postal:     3060 Washington Rd
                              Glenwood MD 21738
                              USA
                  email:      mundy@tis.com
                  phone:      +1-301-854-6889

                  Co-editor:  Bert Wijnen
                              IBM T.J. Watson Research
                  postal:     Schagen 33
                              3461 GL Linschoten
                              Netherlands
                  email:      wijnen@vnet.ibm.com
                  phone:      +31-348-432-794

                  Co-editor:  Randy Presuhn
                              BMC Software, Inc
                  postal:     1190 Saratoga Avenue, Suite 130
                              San Jose, CA  95129-3433
                              USA
                  email:      rpresuhn@bmc.com
                  phone:      +1-408-556-0720

                  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.
                 "
    ::= { snmpModules 5 }

-- 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.

                 The securityName for a principal represented in a
                 Security Model independent format.
                "
    ::= { 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.
                "
    ::= { 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.

                 The  RowStatus TC [RFC1903] 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 contextPrefix, a groupName
                 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 identical
                       securityModels is not empty, discard the rest.
                    b) if the subset of entries with identical
                       vacmAccessContextPrefix is not empty,
                       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.
                "
    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 wins.
                "
    ::= { 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.


                 See also the example in the DESCRIPTION clause of
                 the vacmAccessTable above.
                "
    ::= { 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 [RFC1903] 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, 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 [RFC1903] 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

-- ######################################################

--
-- File: cmu/cmu.mib
--

CMU-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, enterprises
        FROM SNMPv2-SMI;

cmuMIB MODULE-IDENTITY
    LAST-UPDATED "9701220000Z"
    ORGANIZATION "Carnegie Mellon"
    CONTACT-INFO
                "       Email: dc0m@andrew.cmu.edu

                        Network Development
                        Computing Services
                        Carnegie Mellon University
                        Pittsburgh PA. 15213

                "
    DESCRIPTION
            "The MIB module for CMU SNMP entities."
    REVISION    "9701220000Z"
    DESCRIPTION
            "The initial revision of this MIB"
    REVISION    "9706031200Z"
    DESCRIPTION "Expanded MIB, incorporated old CMU information.
                 Updated contact information.
                "
    ::= { enterprises 3 }

   -- CMU Systems
   cmuSystems OBJECT IDENTIFIER ::= { cmuMIB 1 }

   -- Other MIBs
   cmuMIBs    OBJECT IDENTIFIER ::= { cmuMIB 2 }

   -- Not Used
   -- cmuSimpleSecurity ::= { cmuMIB 3 }

   -- Monitored:  Names of monitored entities
   cmuMonitored OBJECT IDENTIFIER ::= { cmuMIB 4 }

   -- ********** System Monitoring **********

-- These aren't used anymore.

--   cmuOldSNMPD OBJECT IDENTIFIER ::= { cmuSystems 1 }
--   cmuKip      OBJECT IDENTIFIER ::= { cmuSystems 2 }
--   cmuRouter   OBJECT IDENTIFIER ::= { cmuSystems 3 }
--   cmuBridge   OBJECT IDENTIFIER ::= { cmuSystems 4 }
--   cmuDelni    OBJECT IDENTIFIER ::= { cmuSystems 5 }

   -- Bind patch, http://www.net.cmu.edu/projects/snmp/dns
   cmuDNS      OBJECT IDENTIFIER ::= { cmuSystems 6 } -- CMU-DNS-MIB

-- Not used anymore
--   cmuUNIX     OBJECT IDENTIFIER ::= { cmuSystems 7 }

   -- CMU SNMPD
   cmuSNMPD    OBJECT IDENTIFIER ::= { cmuSystems 8 } -- CMU-SNMPD-MIB

   -- libevent specific information
   cmuNADINE   OBJECT IDENTIFIER ::= { cmuSystems 9 } -- CMU-NADINE-MIB

   -- CMU DHCP
-- cmuDHCP     OBJECT IDENTIFIER ::= { cmuSystems 10 } -- CMU-DHCP-MIB

   -- ********** Other MIBs **********

--   cmuRouterMIB  OBJECT IDENTIFIER ::= { cmuMIBs 1 } Defined in ROUTER-MIB
--   cmuUnixMIB    OBJECT IDENTIFIER ::= { cmuMIBs 2 } Defined in CMU-UNIX-MIB
--   cmuFaultMIB   OBJECT IDENTIFIER ::= { cmuMIBs 3 } Defined in CMU-FAULT-MIB

-- Not used anymore (if ever)
--   cmuProcwatch  OBJECT IDENTIFIER ::= { cmuMIBs 4 }
--   cmuPing       OBJECT IDENTIFIER ::= { cmuMIBs 5 }

END

-- ######################################################

--
-- File: cmu/cmu-dns.mib
--

CMU-DNS-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, IpAddress, Counter32
        FROM SNMPv2-SMI
    DisplayString
        FROM SNMPv2-TC
    cmuDNS
        FROM CMU-MIB;

cmuNamedMIB MODULE-IDENTITY
    LAST-UPDATED "9701220254Z"
    ORGANIZATION "CMU Network Development"
    CONTACT-INFO
                "       Email: dc0m@andrew.cmu.edu

                        Network Development
                        Computing Services
                        Carnegie Mellon University
                        Pittsburgh PA. 15213

                "
    DESCRIPTION
                "The MIB module for entities implementing the
                 snmp interface to the statistics in BIND 4.9.5.
                "
    REVISION    "9701220254Z"
    DESCRIPTION "Initial Revision"
    REVISION    "9706031200Z"
    DESCRIPTION "Cleaned up contact information, MIB name.  Now fits in 
                 with the CMU MIB.
                "
        ::= { cmuDNS 1 }


   dnsServMIBObjects       OBJECT IDENTIFIER ::= { cmuNamedMIB 1 }

   -- (Old-style) groups in the DNS server MIB.

   dnsServConfig           OBJECT IDENTIFIER ::= { dnsServMIBObjects 1 }
   dnsServCounter          OBJECT IDENTIFIER ::= { dnsServMIBObjects 2 }
   dnsServZone             OBJECT IDENTIFIER ::= { dnsServMIBObjects 3 }

   -- Server Configuration Group

   dnsServConfigImplementIdent OBJECT-TYPE
       SYNTAX      DisplayString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " The server version ID implemented on this system."
       ::= { dnsServConfig 1 }

   dnsServConfigRecurs  OBJECT-TYPE
       SYNTAX      INTEGER { available(1),
                             restricted(2),
                             unavailable(3) }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
       " The recursion services offered by this server.

        Values are:
        available(1)  - preforms recursion on requests from clients.
        restricted(2) - recursion is preformed on requests only from certian
                        clients.
        unavailable(3)- recursion is not available."
        ::= { dnsServConfig 2 }

   dnsServConfigUpTime OBJECT-TYPE
       SYNTAX      INTEGER (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " If the server has a persistent state (e.g., a process),
        this value will be the time elapsed since it started in
        seconds. For software without a persistent state this value
        will be zero."
       ::= { dnsServConfig 3 }

   dnsServConfigResetTime OBJECT-TYPE
       SYNTAX      INTEGER (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " If the software has a persistent state (e.g., a process)
        and supports a 'reset' operation (e.g., can be told to re-read
        configuration files), this value will be the time elapsed
        since the last time the name server was 'reset' in seconds.
        For software that does not have a persistent state the value
        returned will be zero."
       ::= { dnsServConfig 4 }

   dnsServConfigReset OBJECT-TYPE
       SYNTAX      INTEGER { other(1),
                             initializing(3),
                             running(4) }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " Return the reset status of the DNS server. Responses are:
        other(1) - the server is in some unknown state;
        initializing(3) - the server is (re)initializing;
        running(4) - the server is operational."
       ::= { dnsServConfig 5 }

   dnsServConfigMemoryUsage OBJECT-TYPE
        SYNTAX     INTEGER (0..2147483647)
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " If the software has a persisten state and the OS supports a
        'get usage' operation return the real memory (resident set)
        size of the name server process. If this operation is not possible
        then return zero."
        ::= { dnsServConfig 6 }

   -- Query Counter Group
   -- This group containe the DNS server query statistics
   -- as exported from ns_stats

  dnsServCounterReceivedAns OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS      read-only
        STATUS  current
       DESCRIPTION
       " Number of answers received from other DNS servers."
        ::= { dnsServCounter 1 }

  dnsServCounterReceivedNXD  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Number of answers received that were a No Such Domain answer."
        ::= { dnsServCounter 2 }

  dnsServCounterReceivedFwdR  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Number of responses we had to forward."
        ::= { dnsServCounter 3 }

  dnsServCounterSentDupQ  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Sent them a retry."
        ::= { dnsServCounter 4 }

  dnsServCounterReceivedSerFail  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Number of SERVFAIL answers received."
        ::= { dnsServCounter 5 }

  dnsServCounterReceivedFormErr  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Number of FORMERRs received."
        ::= { dnsServCounter 6 }

  dnsServCounterReceivedErr  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Sent us some other error."
        ::= { dnsServCounter 7 }

  dnsServCounterReceivedAXFR  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Number of AXFRs received."
        ::= { dnsServCounter 8 }

  dnsServCounterReceivedLame  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Number of lame delegations received."
        ::= { dnsServCounter 9 }

  dnsServCounterReceivedIPOpts  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Sent us some IP options."
        ::= { dnsServCounter 10 }

  dnsServCounterSentSysQ  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Sent them a sysquery."
        ::= { dnsServCounter 11 }

  dnsServCounterSentAns  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Sent them an answer."
        ::= { dnsServCounter 12 }

  dnsServCounterSentFwdQ  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Forwarded a query to them."
        ::= { dnsServCounter 13 }

  dnsServCounterReceivedDupQ  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Number of duplicate queries received - retries."
        ::= { dnsServCounter 14 }

  dnsServCounterSentErr  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Sendto function error."
        ::= { dnsServCounter 15 }

  dnsServCounterReceivedQuery OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS read-only
        STATUS      current
       DESCRIPTION
       " Number of queries received." 
        ::= { dnsServCounter 16 }

  dnsServCounterReceivedIQ  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
        " Number of inverse queries received."
        ::= { dnsServCounter 17 }

  dnsServCounterReceivedFwdQ  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Number of queries that we had to forward."
        ::= { dnsServCounter 18 }

  dnsServCounterReceivedDupR  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Number of duplicate answers received."
        ::= { dnsServCounter 19 }

  dnsServCounterReceivedTCPQuery  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Number of TCP queries received."
        ::= { dnsServCounter 20 }

  dnsServCounterSentFwdR  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Forwarded a response to them."
        ::= { dnsServCounter 21 }

  dnsServCounterSentFail  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Sent them a SERVFAIL."
        ::= { dnsServCounter 22 }

  dnsServCounterSentFErr  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Sent them a FORMERR."
        ::= { dnsServCounter 23 }

  dnsServCounterSentNaAns  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Sent a non-authoritative answer."
        ::= { dnsServCounter 24 }

  dnsServCounterSentSNXD  OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
       DESCRIPTION
       " Sent a No Such Domain (NXD) answer."
        ::= { dnsServCounter 25 }

-- 26 does not exist!

  dnsServNSSCounterTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF DnsServNSSCounterEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
       " This table contains an enumeration of the above
        DNS queries broken down by name server."
       ::= { dnsServCounter 27 }

  dnsServNSSCounterEntry OBJECT-TYPE
       SYNTAX      DnsServNSSCounterEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
       " An entry in the name server table."
       INDEX     { dnsServNSSCounterName }
       ::= { dnsServNSSCounterTable 1 }

  DnsServNSSCounterEntry ::= SEQUENCE {
                  dnsServNSSCounterName
                        IpAddress,
                  dnsServNSSCounterReceivedAns
                        Counter32,
                  dnsServNSSCounterReceivedNXD
                        Counter32,
                  dnsServNSSCounterReceivedFwdR
                        Counter32,
                  dnsServNSSCounterReceivedDupR
                        Counter32,
                  dnsServNSSCounterReceivedSerFail
                        Counter32,
                  dnsServNSSCounterReceivedFormErr
                        Counter32,
                  dnsServNSSCounterReceivedErr
                        Counter32,
                  dnsServNSSCounterReceivedAXFR
                        Counter32,
                  dnsServNSSCounterReceivedLame
                        Counter32,
                  dnsServNSSCounterReceivedIPOpts
                        Counter32,
                  dnsServNSSCounterSentSysQ
                        Counter32,
                  dnsServNSSCounterSentAns
                        Counter32,
                  dnsServNSSCounterSentFwdQ
                        Counter32,
                  dnsServNSSCounterSentDupQ
                        Counter32,
		  dnsServNSSCounterSentErr
			Counter32,
-- xstats below
                  dnsServNSSCounterReceivedQuery
                        Counter32,
                  dnsServNSSCounterReceivedIQ
                        Counter32,
                  dnsServNSSCounterReceivedFwdQ
                        Counter32,
                  dnsServNSSCounterReceivedDupQ
                        Counter32,
                  dnsServNSSCounterReceivedTCPQuery
                        Counter32,
                  dnsServNSSCounterSentFwdR
                        Counter32,
                  dnsServNSSCounterSentFail
                        Counter32,
                  dnsServNSSCounterSentFErr
                        Counter32,
                  dnsServNSSCounterSentNaAns
                        Counter32,
                  dnsServNSSCounterSentSNXD
                        Counter32
        }

        dnsServNSSCounterName OBJECT-TYPE
                SYNTAX IpAddress
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Name (ip-address) of the name server contacting us."
                ::= { dnsServNSSCounterEntry 1 }

        dnsServNSSCounterReceivedAns OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Number of answers sent to us from this server."
                ::= { dnsServNSSCounterEntry 2 }

        dnsServNSSCounterReceivedNXD OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Number of No Such Domain received from this server."
                ::= { dnsServNSSCounterEntry 3 }

        dnsServNSSCounterReceivedFwdR OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Number of responses from this server we had to forward."
                ::= { dnsServNSSCounterEntry 4 }

        dnsServNSSCounterReceivedDupR OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Number of duplicate answers we received from this server."
                ::= { dnsServNSSCounterEntry 5 }

        dnsServNSSCounterReceivedSerFail OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Number of Server Failed responses we received from this server."
                ::= { dnsServNSSCounterEntry 6 }

        dnsServNSSCounterReceivedFormErr OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Number of FORM Errors we received from this server."
                ::= { dnsServNSSCounterEntry 7 }

        dnsServNSSCounterReceivedErr OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Number of other errors we received from this server."
                ::= { dnsServNSSCounterEntry 8 }

        dnsServNSSCounterReceivedAXFR OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Received an AXFR from this server. "
                ::= { dnsServNSSCounterEntry 9 }

        dnsServNSSCounterReceivedLame OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Received a lame deligation from this server."
                ::= { dnsServNSSCounterEntry 10 }

        dnsServNSSCounterReceivedIPOpts OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Sent us some IP options."
                ::= { dnsServNSSCounterEntry 11 }

        dnsServNSSCounterSentSysQ OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Sent them a SysQ"
                ::= { dnsServNSSCounterEntry 12 }

        dnsServNSSCounterSentAns OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Sent them an answer."
                ::= { dnsServNSSCounterEntry 13 }

        dnsServNSSCounterSentFwdQ OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Forwarded them a query."
                ::= { dnsServNSSCounterEntry 14 }

        dnsServNSSCounterSentDupQ OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Sent them a retry."
                ::= { dnsServNSSCounterEntry 15 }

        dnsServNSSCounterSentErr OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Sent some other error."
                ::= { dnsServNSSCounterEntry 16 }

        dnsServNSSCounterReceivedQuery OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Number of queries sent to us from this server."
                ::= { dnsServNSSCounterEntry 17 }

        dnsServNSSCounterReceivedIQ OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Number of inverse queries received from this server."
                ::= { dnsServNSSCounterEntry 18 }

        dnsServNSSCounterReceivedFwdQ OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Number of queries from this server we had to forward."
                ::= { dnsServNSSCounterEntry 19 }

        dnsServNSSCounterReceivedDupQ OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Number of retries from this server."
                ::= { dnsServNSSCounterEntry 20 }

        dnsServNSSCounterReceivedTCPQuery OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Number of TCP queries we received from this server."
                ::= { dnsServNSSCounterEntry 21 }

        dnsServNSSCounterSentFwdR OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Forward them a response."
                ::= { dnsServNSSCounterEntry 22 }

        dnsServNSSCounterSentFail OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Sent them a server fail."
                ::= { dnsServNSSCounterEntry 23 }

        dnsServNSSCounterSentFErr OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Sent them a FORM Error."
                ::= { dnsServNSSCounterEntry 24 }

        dnsServNSSCounterSentNaAns OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Sent them a non-authoritative answer."
                ::= { dnsServNSSCounterEntry 25 }

        dnsServNSSCounterSentSNXD OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
       DESCRIPTION
       " Sent then a No Such Domain NXD."
                ::= { dnsServNSSCounterEntry 26 }

   -- DNS Server Query Counter32 Table

   dnsServQueryTypeTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF DnsServQueryTypeEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               " Counter information broken down by DNS class and type."
       ::= { dnsServCounter 28 }


   dnsServQueryTypeEntry OBJECT-TYPE
       SYNTAX      DnsServQueryTypeEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
       " description"
       INDEX     { dnsServQueryTypeIndex  }
       ::= { dnsServQueryTypeTable 1 }

   
   DnsServQueryTypeEntry ::=
       SEQUENCE {
           dnsServQueryTypeIndex
               INTEGER (0..2147483647),
           dnsServQueryTypeName
               OCTET STRING,
           dnsServQueryTypeCounter
               INTEGER (0..2147483647)
          }

    dnsServQueryTypeIndex OBJECT-TYPE
       SYNTAX      INTEGER (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " Table index - query op-code mapped into the index."
       ::= { dnsServQueryTypeEntry 1 }

   dnsServQueryTypeName OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " Name of query type."
       ::= { dnsServQueryTypeEntry 2 }

   dnsServQueryTypeCounter OBJECT-TYPE
       SYNTAX      INTEGER (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " Number of requests of this query type."
       ::= { dnsServQueryTypeEntry 3 }

   -- Server Zone Group

   -- DNS Management Zone Configuration Table

   -- This table contains zone configuration information.

   dnsServZoneTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF DnsServZoneEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
       " Table of zones for which this server provides information."
       ::= { dnsServZone 1 }

   dnsServZoneEntry OBJECT-TYPE
       SYNTAX      DnsServZoneEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
       " An entry in the name server zone table. New rows may only be
        added by the name server."
       INDEX     { dnsServZoneIndex }
       ::= { dnsServZoneTable 1 }

   DnsServZoneEntry ::=
       SEQUENCE {
           dnsServZoneIndex
               INTEGER (0..65535),
           dnsServZoneName
               OCTET STRING,
           dnsServZoneClass
               INTEGER (0..65535),
           dnsServZoneLastReload
               INTEGER (0..2147483647),
           dnsServZoneNextReload
               INTEGER (0..2147483647),
           dnsServZoneRefresh
               INTEGER (0..2147483647),
           dnsServZoneReloadRetry
               INTEGER (0..2147483647),
           dnsServZoneExpire
               INTEGER (0..2147483647),
           dnsServZoneMinTTL
               INTEGER (0..2147483647),
           dnsServZoneSource
               OCTET STRING,
           dnsServZoneSourceModTime
               INTEGER (0..2147483647),
           dnsServZoneOverRideServer
               IpAddress,
           dnsServZoneType
               INTEGER,
           dnsServZoneState
               INTEGER,
           dnsServZoneSerial
               INTEGER
       }

   dnsServZoneIndex OBJECT-TYPE
       SYNTAX      INTEGER (0..65535)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " An index into the name server zone table."
       ::= { dnsServZoneEntry 1 }
        
   dnsServZoneName OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " Root domain name of zone."
       ::= { dnsServZoneEntry 2 }

   dnsServZoneClass OBJECT-TYPE
--       SYNTAX      DnsClass
       SYNTAX      INTEGER (0..65535)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " DNS class of the RRs in this zone."
       ::= { dnsServZoneEntry 3 }

   dnsServZoneLastReload OBJECT-TYPE
       SYNTAX      INTEGER (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " Elapsed time since last successful refresh of
        this zone in seconds since boot time of the
        DNS server."
       ::= { dnsServZoneEntry 4 }

   dnsServZoneNextReload OBJECT-TYPE
       SYNTAX      INTEGER (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " Time of next refresh of this zone in seconds
        since the boot of the DNS server."
       ::= { dnsServZoneEntry 5 }


   dnsServZoneRefresh OBJECT-TYPE
       SYNTAX      INTEGER (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " The refresh interval for this zone in seconds."
       ::= { dnsServZoneEntry 6 }


   dnsServZoneReloadRetry OBJECT-TYPE
       SYNTAX      INTEGER (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " The refresh retry interval for this zone in seconds."
       ::= { dnsServZoneEntry 7 }

   dnsServZoneExpire OBJECT-TYPE
       SYNTAX      INTEGER (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " Expire time of cached information for this zone in seconds
        since the start of the name server."
       ::= { dnsServZoneEntry 8 }


   dnsServZoneMinTTL OBJECT-TYPE
       SYNTAX      INTEGER (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " Minimum TTL value for this zone."
       ::= { dnsServZoneEntry 9 }

   dnsServZoneSource OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " Sounce of this zone."
       ::= { dnsServZoneEntry 10 }


   dnsServZoneSourceModTime OBJECT-TYPE
       SYNTAX      INTEGER (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " Source modification time in seconds"
       ::= { dnsServZoneEntry 11 }
   
   dnsServZoneOverRideServer OBJECT-TYPE
       SYNTAX      IpAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               " IP address of host from which most recent zone transfer
               of this zone was attempted."
       ::= { dnsServZoneEntry 12 }

    dnsServZoneType OBJECT-TYPE
       SYNTAX      INTEGER {    primary(1),
                                secondary(2),
                                cache(3) }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       " Type of zone. "
       ::= { dnsServZoneEntry  13 }

-- Wrong, wrong, wrong
dnsServZoneState OBJECT-TYPE
    SYNTAX INTEGER {
        none(0),
        authoritative(1),
        need_xfer(2),
        xfer_running(3),
        need_reload(4),
        syslogged(5),
        qserial(6),
        found(7),
        include(8),
        db_bad(9),
        tmp_file(10),
        xfer_aborted(11),
        xfer_gone(12)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    " A mask which may contain the following values:
     auth         0x0001 - zone is authoritative
     need_xfer    0x0002 - waiting to do xfer
     xfer_running 0x0004 - asynch. xfer is running 
     need_reload  0x0008 - waiting to do reload 
     syslogged    0x0010 - have logged timeout 
     qserial      0x0020 - sysquery()'ing for serial number
     found        0x0040 - found in boot file when reloading
     include      0x0080 - set if include used in file
     db_bad       0x0100 - errors when loading file
     tmp_file     0x0200 - backup file for xfer is temporary
     xfer_aborted 0x2000 - zone transfer has been aborted
     xfer_gone    0x4000 - zone transfer process is gone
     "
    ::= { dnsServZoneEntry 14 }

     dnsServZoneSerial OBJECT-TYPE
        SYNTAX      INTEGER (0..2147483647)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
        " Zone serial number."
        ::= { dnsServZoneEntry 15 }

END

-- End of CMU-DNS-MIB

-- ######################################################

--
-- File: cmu/cmu-router.mib
--

CMU-ROUTER-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE
        FROM SNMPv2-SMI
    cmuMIBs
        FROM CMU-MIB;

cmuRouterMIB MODULE-IDENTITY
    LAST-UPDATED "9706031200Z"
    ORGANIZATION "CMU Network Development"
    CONTACT-INFO
                "       Email: dc0m@andrew.cmu.edu

                        Network Development
                        Computing Services
                        Carnegie Mellon University
                        Pittsburgh PA. 15213

                "
    DESCRIPTION
                " MIB for CMU AT Routers
                "
    REVISION    "9706031200Z"
    DESCRIPTION "Initial Revision"
        ::= { cmuMIBs 1 }

  cmuRResources OBJECT IDENTIFIER ::= { cmuRouterMIB 1 }

  -- Router Resources

  buffersFree OBJECT-TYPE
    SYNTAX INTEGER (0..2147483647)
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    " Total number of free buffers" 
    ::= { cmuRResources 1 }

  memFree OBJECT-TYPE
    SYNTAX INTEGER (0..2147483647)
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    " Memory Currently Available (unit unknown)" 
    ::= { cmuRResources 2 }

  memMax OBJECT-TYPE
    SYNTAX INTEGER (0..2147483647)
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    " Total Memory Available (unit unknown)" 
    ::= { cmuRResources 3 }

END

-- End of CMU-ROUTER-MIB

-- ######################################################

--
-- File: cmu/cmu-snmpd.mib
--

CMU-SNMPD-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE
        FROM SNMPv2-SMI
    DisplayString
        FROM SNMPv2-TC
    cmuSNMPD
        FROM CMU-MIB;

cmuSNMPDMIB MODULE-IDENTITY
    LAST-UPDATED "9706031200Z"
    ORGANIZATION "CMU Network Development"
    CONTACT-INFO
                "       Email: dc0m@andrew.cmu.edu

                        Network Development
                        Computing Services
                        Carnegie Mellon University
                        Pittsburgh PA. 15213

                "
    DESCRIPTION
                "The MIB module for entities implementing a
                 CMU SNMP Agent.
                "
    REVISION    "9706031200Z"
    DESCRIPTION "Initial Revision"
        ::= { cmuSNMPD 1 }

  -- cmuSNMPDMIB:  .1.3.6.1.4.1.3.1.8.1

  -- What we monitor is based on
  cmuSNMPDSys          OBJECT IDENTIFIER ::= { cmuSNMPDMIB 1 }
  cmuSNMPDGeneral      OBJECT IDENTIFIER ::= { cmuSNMPDMIB 2 }

  -- System Information
  cmuSNMPDSystype      OBJECT IDENTIFIER ::= { cmuSNMPDSys 1 }

  -- Monitored SYSTypes
  cmuSolarisAgent      OBJECT IDENTIFIER ::= { cmuSNMPDSystype 1 }

  -- Daemon Information
  cmuSNMPDVersion OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      " Version of this SNMP Agent" 
    ::= { cmuSNMPDGeneral 1 }

  cmuSNMPDUptime OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      " Amount of time, in seconds, this daemon has been running." 
    ::= { cmuSNMPDGeneral 2 }

  cmuSNMPDMemUsage OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      " If the OS supports a 'get usage' operation, returns the real memory
       (resident set) size of the SNMP Agent.  If this operations is not
       possible, returns zero." 
    ::= { cmuSNMPDGeneral 3 }

END

-- End of CMU-SNMPD-MIB

-- ######################################################

--
-- File: cmu/cmu-unix.mib
--

CMU-UNIX-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Counter32
        FROM SNMPv2-SMI
    DisplayString
        FROM SNMPv2-TC
    cmuMIBs
        FROM CMU-MIB;

cmuUnixMIB MODULE-IDENTITY
    LAST-UPDATED "9706031200Z"
    ORGANIZATION "CMU Network Development"
    CONTACT-INFO
                "       Email: dc0m@andrew.cmu.edu

                        Network Development
                        Computing Services
                        Carnegie Mellon University
                        Pittsburgh PA. 15213

                "
    DESCRIPTION
                " MIB for CMU Unix Hosts
                "
    REVISION    "9706031200Z"
    DESCRIPTION "Initial Revision"
        ::= { cmuMIBs 2 }

  -- .1.3.6.1.4.1.3.2.2 -> cmuUnixMIB

  -- Things we monitor in Unix hosts

  cmuUnixProcesses OBJECT IDENTIFIER ::= { cmuUnixMIB 1 }
  cmuUnixResources OBJECT IDENTIFIER ::= { cmuUnixMIB 2 }


  -- **********************************************************************

  -- UnixProcesses :: Process Table
  -- .1.3.6.1.4.1.3.2.2.1

  cmuUnixProcessTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF CmuUnixProcessEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuUnixProcesses 1 }

  cmuUnixProcessEntry OBJECT-TYPE
    SYNTAX      CmuUnixProcessEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION " " 
    INDEX       { cmuUnixProcessSlotIndex }
    ::= { cmuUnixProcessTable 1 }

  CmuUnixProcessEntry ::= SEQUENCE {
    cmuUnixProcessSlotIndex            INTEGER,
    cmuUnixProcessId                   INTEGER,
    cmuUnixProcessCommand              OCTET STRING
    }

  cmuUnixProcessSlotIndex OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuUnixProcessEntry 1 }

  cmuUnixProcessId OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuUnixProcessEntry 2 }

  cmuUnixProcessCommand OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuUnixProcessEntry 3 }

  -- UnixProcesses :: Process Table ::

  cmuUnixProcessQueueRun  OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuUnixProcesses 2 }

  -- UnixProcesses :: Process Table ::

  cmuUnixProcessQueueBlocked  OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuUnixProcesses 3 }

  -- UnixProcesses :: Process Table ::

  cmuUnixProcessQueueSwapped  OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuUnixProcesses 4 }

  -- **********************************************************************

  -- Unix Resources
  -- .1.3.6.1.4.1.3.2.2.2


  cmuURCPU  OBJECT IDENTIFIER      ::= { cmuUnixResources 1 }
  cmuURMem  OBJECT IDENTIFIER      ::= { cmuUnixResources 2 }
  cmuURDisk OBJECT IDENTIFIER      ::= { cmuUnixResources 3 }


  -- Unix Resources :: CPU
  -- .1.3.6.1.4.1.3.2.2.2.1

  cmuURCPULoad   OBJECT IDENTIFIER      ::= { cmuURCPU 1 }                
  cmuURCPUUsage  OBJECT IDENTIFIER      ::= { cmuURCPU 2 }                

  cmuURCPULoadOneMinute  OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuURCPULoad 1 }

  cmuURCPULoadFiveMinute  OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuURCPULoad 2 }

  cmuURCPULoadFifteenMinute  OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuURCPULoad 3 }

  cmuURCPUUsageUser  OBJECT-TYPE
    SYNTAX      INTEGER (0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuURCPUUsage 1 }

  cmuURCPUUsageSystem  OBJECT-TYPE
    SYNTAX      INTEGER (0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuURCPUUsage 2 }

  cmuURCPUUsageIdle  OBJECT-TYPE
    SYNTAX      INTEGER (0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuURCPUUsage 3 }


  -- Unix Resources :: Memory

  cmuURMemActiveVirtual  OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuURMem 1 }

  cmuURMemTotalVirtual  OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)                         
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuURMem 2 }

  cmuURMemActiveReal  OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuURMem 3 }

  cmuURMemTotalUsedRead  OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuURMem 4 }

  -- Unix Resources :: Disk Information
  -- Unix Resources :: Disk Information :: File System

  fileSystemTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF FileSystemEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuURDisk 1 }        

  fileSystemEntry  OBJECT-TYPE
    SYNTAX      FileSystemEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION " " 
    INDEX       { fileSystemIndex }
    ::= { fileSystemTable 1 }
                
  FileSystemEntry ::= SEQUENCE {
    fileSystemIndex      INTEGER,
    fileSystemName       DisplayString,
    fileSystemSize       INTEGER,
    fileSystemFree       INTEGER,
    fileSystemUsed       INTEGER,
    fileSystemMountPoint DisplayString        
    }

  fileSystemIndex  OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { fileSystemEntry 1 }                

  fileSystemName  OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { fileSystemEntry 2 }                

  fileSystemSize  OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { fileSystemEntry 3 }

  fileSystemFree OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { fileSystemEntry 4 }

  fileSystemUsed OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { fileSystemEntry 5 }

  fileSystemMountPoint OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { fileSystemEntry 6 }

  -- Unix Resources :: Disk Information :: Physical Disk Information

  cmuURDiskDriveTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF CmuURDiskDriveEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuURDisk 2 } 

  cmuURDiskDriveEntry  OBJECT-TYPE
    SYNTAX      CmuURDiskDriveEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION " " 
    INDEX       { cmuURDiskDriveIndex }
    ::= { cmuURDiskDriveTable 1 }
                
  CmuURDiskDriveEntry ::= SEQUENCE {
    cmuURDiskDriveIndex       INTEGER,
    cmuURDiskDriveTime        Counter32,
    cmuURDiskDriveTransfers   Counter32,
    cmuURDiskDriveWords	      Counter32
    }

  cmuURDiskDriveIndex  OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuURDiskDriveEntry 1 }    

  cmuURDiskDriveTime  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuURDiskDriveEntry 2 } 

  cmuURDiskDriveTransfers  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuURDiskDriveEntry 3 } 

  cmuURDiskDriveWords  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " " 
    ::= { cmuURDiskDriveEntry 4 } 


END

-- End of CMU-UNIX MIB

-- ######################################################

--
-- File: cmu/cmu-monitored.mib
--

CMU-MONITORED-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY
        FROM SNMPv2-SMI
    cmuMonitored
        FROM CMU-MIB;

cmuMonitoredMIB MODULE-IDENTITY
    LAST-UPDATED "9706031200Z"
    ORGANIZATION "CMU Network Development"
    CONTACT-INFO
                "       Email: dc0m@andrew.cmu.edu

                        Network Development
                        Computing Services
                        Carnegie Mellon University
                        Pittsburgh PA. 15213

                "
    DESCRIPTION
                "This MIB contains entries for the various things we
                 monitor via NADINE.
                "
    REVISION    "9706031200Z"
    DESCRIPTION "Initial Revision"
        ::= { cmuMonitored 1 }

  -- .1.3.6.1.4.1.3 == CMU
  -- .1.3.6.1.4.1.3.4.1 == cmuMonitoredMIB

  cmuServerProc        OBJECT IDENTIFIER ::= { cmuMonitoredMIB 1 }
  cmuServices          OBJECT IDENTIFIER ::= { cmuMonitoredMIB 2 }
  cmuAFSProcess        OBJECT IDENTIFIER ::= { cmuMonitoredMIB 3 }
  cmuNADINEObjects     OBJECT IDENTIFIER ::= { cmuMonitoredMIB 4 }
  cmuNetworkObject     OBJECT IDENTIFIER ::= { cmuMonitoredMIB 5 }

  -- *****************************************************************
  -- Production Server Processes .1.3.6.1.4.1.3.4.1.1

  nNTPServer           OBJECT IDENTIFIER ::= { cmuServerProc 1 }
  sMTPServer           OBJECT IDENTIFIER ::= { cmuServerProc 2 }
  iMAPServer           OBJECT IDENTIFIER ::= { cmuServerProc 3 }
  wWWServer            OBJECT IDENTIFIER ::= { cmuServerProc 4 }
  kerberosServer       OBJECT IDENTIFIER ::= { cmuServerProc 5 }
  dHCPServer           OBJECT IDENTIFIER ::= { cmuServerProc 6 }

  -- *****************************************************************
  -- Production Services .1.3.6.1.4.1.3.4.1.2

  machinePool          OBJECT IDENTIFIER ::= { cmuServices 1 }

  -- *****************************************************************
  -- AFS Stuff .1.3.6.1.4.1.3.4.1.3

  aFSPtsServer         OBJECT IDENTIFIER ::= { cmuAFSProcess 1 }
  aFSVldbServer        OBJECT IDENTIFIER ::= { cmuAFSProcess 2 }
  aFSKauthServer       OBJECT IDENTIFIER ::= { cmuAFSProcess 3 }

  -- *****************************************************************
  -- NADINE Stuff .1.3.6.1.4.1.3.4.1.4

  unknownDevice        OBJECT IDENTIFIER ::= { cmuNADINEObjects 1 }
  nADINEMonitor        OBJECT IDENTIFIER ::= { cmuNADINEObjects 2 }
  nADINEEventDaemon    OBJECT IDENTIFIER ::= { cmuNADINEObjects 3 }

  -- *****************************************************************
  -- Network Stuff .1.3.6.1.4.1.3.4.1.5

  network              OBJECT IDENTIFIER ::= { cmuNetworkObject 1 }

END

-- End CMU-MONITORED-MIB

-- ######################################################

--
-- File: cmu/cmu-dhcp.mib
--

CMU-DHCP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, IpAddress, TimeTicks
        FROM SNMPv2-SMI
    cmuSystems
        FROM CMU-MIB;

cmuDHCP MODULE-IDENTITY
    LAST-UPDATED "9710220254Z"
    ORGANIZATION "CMU Network Development"
    CONTACT-INFO
                "       Email: dc0m@andrew.cmu.edu

                        Network Development
                        Computing Services
                        Carnegie Mellon University
                        Pittsburgh PA. 15213

                "
    DESCRIPTION
                "The MIB module for the CMU DHCP Server.
                "
    REVISION    "9710220254Z"
    DESCRIPTION "Initial Revision"
        ::= { cmuSystems 10 }

  -- The main groups

  cmuDHCPStats		OBJECT IDENTIFIER ::= { cmuDHCP 1 }
  cmuDHCPConfigure	OBJECT IDENTIFIER ::= { cmuDHCP 2 }
  -- bindTable	OBJECT IDENTIFIER ::= { cmuDHCP 3 }
  -- lastBindTable OBJECT IDENTIFIER ::= { cmuDHCP 4 }
  cmuDHCPDynamic	OBJECT IDENTIFIER ::= { cmuDHCP 5 }

  -- unknownTable	OBJECT IDENTIFIER ::= { cmuDHCP 12 }

  -- Statistics

  cmuDHCPUptime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    " foo "
    ::= { cmuDHCPStats 1 }

  cmuDHCPVersion OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS	read-only
    STATUS 	current
    DESCRIPTION
    " foo "
    ::= { cmuDHCPStats 2 }

  cmuDHCPLastTabRead OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " The last time the bootptab was read. "
    ::= { cmuDHCPStats 3 }

		-- Last time the configuration file was read
  cmuDHCPLastConfRead OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " The last time the config file was read "
    ::= { cmuDHCPStats 4 }


  cmuDHCPNextGarbageCollect OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " Time scheduled to recollect expired bindings "
    ::= { cmuDHCPStats 5 }

  -- The folling are messages sent and received by the DHCP server
  -- XXXXX

  cmuDHCPDiscovers OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPStats 6 }

  cmuDHCPOffers OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPStats 7 }

  cmuDHCPRequests OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPStats 8 }

  cmuDHCPDeclines OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPStats 9 }

  cmuDHCPAcks OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPStats 10 }

  cmuDHCPNacks OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPStats 11 }

  cmuDHCPReleases OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPStats 12 }

  cmuDHCPInforms OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPStats 13 }

  cmuDHCPBootpRequests OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPStats 14 }

  cmuDHCPBootpReplys OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPStats 15 }

  cmuDHCPActiveLeases OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPStats 16 }

  cmuDHCPExpired OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPStats 17 }

  cmuDHCPReclaimedDynamic OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPStats 18 }

-- Configuration Options

  cmuDHCPCommand OBJECT-TYPE
    SYNTAX  INTEGER  {	readtab(1),
			readconf(2),
			flush(3),
			garbagecollect(4) }
-- XXXXX 
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION " foo "
    ::= { cmuDHCPConfigure 1 }

  cmuDHCPConfTabFile OBJECT-TYPE
    SYNTAX      OCTET STRING  
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION " Name of bootptab to use. "
    ::= { cmuDHCPConfigure 2 }

  cmuDHCPConfConfFile OBJECT-TYPE
    SYNTAX      OCTET STRING  
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION " Name of config file to use. "
    ::= { cmuDHCPConfigure 3 }

  cmuDHCPConfGCInterval OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION " Garbage collection interval. "
    ::= { cmuDHCPConfigure 4 }

  cmuDHCPConfFlushInterval OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPConfigure 5 }

  cmuDHCPConfFlushItems OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPConfigure 6 }


-- Bindings Table
-- Table of non-expired non-infinite bindings

  cmuDHCPBindTable  OBJECT-TYPE
    SYNTAX   	SEQUENCE OF CmuDHCPBindTableEntry
    MAX-ACCESS	not-accessible
    STATUS     	current
    DESCRIPTION " Table of non-expired non-infinite bindings "
			::= { cmuDHCP 3 }

  cmuDHCPBindTableEntry OBJECT-TYPE
    SYNTAX	CmuDHCPBindTableEntry
    MAX-ACCESS	not-accessible
    STATUS      current
    DESCRIPTION " foo "
    INDEX	{ cmuDHCPbeClientID }
    ::= { cmuDHCPBindTable 1 }

   CmuDHCPBindTableEntry ::= SEQUENCE {
	cmuDHCPbeClientID	OCTET STRING ,
	cmuDHCPbeAddress	IpAddress ,
	cmuDHCPbeExpire	INTEGER ,
	cmuDHCPbeCode		INTEGER
    }

  cmuDHCPbeClientID OBJECT-TYPE
    SYNTAX	OCTET STRING
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " This hosts's MAC Address "
    ::= { cmuDHCPBindTableEntry 1 }

  cmuDHCPbeAddress OBJECT-TYPE
    SYNTAX	IpAddress
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " IP Address given to this host "
    ::= { cmuDHCPBindTableEntry 2 }

  cmuDHCPbeExpire OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " Time this binding expires "
    ::= { cmuDHCPBindTableEntry 3 }

  -- Actually a bitmask XXXXX
  cmuDHCPbeCode OBJECT-TYPE
    SYNTAX	INTEGER {
		dhcp(1),	-- Dynamically assigned via DHCP
		bootp(2),	-- Dynamically assigned via BOOTP
		roaming(4),	-- Dynamically assigned via BOOTP
		reserved(8),    -- Address is reserved for client
		synch (127)	-- Binding obtained via synchronization
		}
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPBindTableEntry 4 }


  -- Bindings which may or may not have expired

  cmuDHCPLastBindTable  OBJECT-TYPE
    SYNTAX	SEQUENCE OF CmuDHCPLastBindEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCP 4 }


  cmuDHCPLastBindEntry OBJECT-TYPE
    SYNTAX	CmuDHCPLastBindEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION " foo "
    INDEX       { cmuLBEclientid }
    ::= { cmuDHCPLastBindTable 1}

  CmuDHCPLastBindEntry ::= SEQUENCE {
		cmuLBEclientid		OCTET STRING,
		cmuLBEbindaddress	IpAddress,
		cmuLBEhwaddress		OCTET STRING,
		cmuLBEvendorid		OCTET STRING,
		cmuLBEclass		OCTET STRING,
		cmuLBEreplys		INTEGER,
		cmuLBElasttouched	INTEGER,
		cmuLBEbindexpire	INTEGER,
		cmuLBEmisc		OCTET STRING
		}

  cmuLBEclientid OBJECT-TYPE
    SYNTAX	OCTET STRING
    MAX-ACCESS  read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPLastBindEntry 1 }

  cmuLBEbindaddress OBJECT-TYPE
    SYNTAX	IpAddress
    MAX-ACCESS  read-only
    STATUS	current
    DESCRIPTION " This binding's IP address "
    ::= { cmuDHCPLastBindEntry 2 }

  cmuLBEhwaddress OBJECT-TYPE
    SYNTAX	OCTET STRING
    MAX-ACCESS  read-only
    STATUS	current
    DESCRIPTION " This binding's MAC address "
    ::= { cmuDHCPLastBindEntry 3 }

  cmuLBEvendorid OBJECT-TYPE
    SYNTAX	OCTET STRING
    MAX-ACCESS  read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPLastBindEntry 4 }

  cmuLBEclass OBJECT-TYPE
    SYNTAX	OCTET STRING
    MAX-ACCESS  read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPLastBindEntry 5 }

  cmuLBEreplys OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPLastBindEntry 6 }

  cmuLBElasttouched OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPLastBindEntry 7 }

  cmuLBEbindexpire OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPLastBindEntry 8 }

  cmuLBEmisc OBJECT-TYPE
    SYNTAX	OCTET STRING
    MAX-ACCESS  read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPLastBindEntry 9 } -- not implemented


  -- Dynamic Information ( NOT IMPLEMENTED YET )

  cmuDHCPNetworkTable  OBJECT-TYPE
    SYNTAX	SEQUENCE OF CmuDHCPNetworkEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPDynamic 1 }

  cmuDHCPNetworkEntry OBJECT-TYPE
    SYNTAX	CmuDHCPNetworkEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION " foo "
    INDEX       { cmuDHCPnename }
    ::= { cmuDHCPNetworkTable 1}

  CmuDHCPNetworkEntry ::= SEQUENCE {
	cmuDHCPnename		OCTET STRING,
	cmuDHCPnenetwork	IpAddress,
	cmuDHCPnemask		OCTET STRING,
	cmuDHCPnecode		INTEGER,
	cmuDHCPnefree		INTEGER,
	cmuDHCPnetotal		INTEGER
	}

  cmuDHCPnename OBJECT-TYPE
    SYNTAX	OCTET STRING
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPNetworkEntry 1 }

  cmuDHCPnenetwork OBJECT-TYPE
    SYNTAX	IpAddress
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPNetworkEntry 2 }

  cmuDHCPnemask OBJECT-TYPE
    SYNTAX	OCTET STRING
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPNetworkEntry 3 }

  cmuDHCPnecode OBJECT-TYPE
    SYNTAX	INTEGER	{
			dhcp(1),
			bootp(2),
			roaming(3),
			any(127)
			}
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPNetworkEntry 4 }

  cmuDHCPnefree OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPNetworkEntry 5 }

  cmuDHCPnetotal OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPNetworkEntry 6 }

  cmuDHCPdyGateway	OBJECT IDENTIFIER ::= { cmuDHCPDynamic 2 }  -- not implemented

-- Table of unknown hardware addresses 

  cmuDHCPUnknownTable  OBJECT-TYPE
    SYNTAX	SEQUENCE OF CmuDHCPUnknownEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCP 12 }

  cmuDHCPUnknownEntry OBJECT-TYPE
    SYNTAX	CmuDHCPUnknownEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION " foo "
    INDEX       { cmuDHCPueMACAddress }
    ::= { cmuDHCPUnknownTable 1}

  CmuDHCPUnknownEntry ::= SEQUENCE {
	cmuDHCPueMACAddress	OCTET STRING,
	cmuDHCPueHType		INTEGER,
	cmuDHCPueHLen		INTEGER,
	cmuDHCPueLastSeen	INTEGER,
	cmuDHCPueRelayAgent	IpAddress,
	cmuDHCPueFromIP		IpAddress
	}

  cmuDHCPueMACAddress OBJECT-TYPE
    SYNTAX	OCTET STRING
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPUnknownEntry 1}

  cmuDHCPueHType OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPUnknownEntry 2}

  cmuDHCPueHLen OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPUnknownEntry 3}

  cmuDHCPueLastSeen OBJECT-TYPE
    SYNTAX	INTEGER (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPUnknownEntry 4}

  cmuDHCPueRelayAgent OBJECT-TYPE
    SYNTAX	IpAddress
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPUnknownEntry 5}

  cmuDHCPueFromIP OBJECT-TYPE
    SYNTAX	IpAddress
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION " foo "
    ::= { cmuDHCPUnknownEntry 6}

END

-- End of CMU-DHCP-MIB

-- ######################################################

--
-- File: cmu/cmu-nadine.mib
--

CMU-NADINE-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE
        FROM SNMPv2-SMI
    DisplayString
        FROM SNMPv2-TC
    cmuNADINE
        FROM CMU-MIB;

cmuNADINEMIB MODULE-IDENTITY
    LAST-UPDATED "9706031200Z"
    ORGANIZATION "CMU Network Development"
    CONTACT-INFO
                "       Email: dc0m@andrew.cmu.edu

                        Network Development
                        Computing Services
                        Carnegie Mellon University
                        Pittsburgh PA. 15213

                "
    DESCRIPTION
                "The MIB module for NADINE componants.
                "
    REVISION    "9709181200Z"
    DESCRIPTION "Initial Revision"
        ::= { cmuNADINE 1 }


  -- Entries in this MIB
  cmuNadineVersionInfo  OBJECT IDENTIFIER ::= { cmuNADINEMIB 1 }

  -- Version Information
  cmuNadineSNMPVersion OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      " Version of the CMU SNMP library used in this componant."
    ::= { cmuNadineVersionInfo 1 }

  cmuNadineNadineVersion OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      " Version of NADINE's event library used in this componant."
    ::= { cmuNadineVersionInfo 2 }

  cmuNadineMonitorVersion OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      " Version of this NADINE componant."
    ::= { cmuNadineVersionInfo 3 }

END

-- END of CMU-NADINE-MIB

-- ######################################################

--
-- File: cmu/cmu-event.mib
--

CMU-EVENT-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Opaque
        FROM SNMPv2-SMI
    cmuMIBs
        FROM CMU-MIB;

cmuEventMIB MODULE-IDENTITY
    LAST-UPDATED "9706031200Z"
    ORGANIZATION "CMU Network Development"
    CONTACT-INFO
                "       Email: dc0m@andrew.cmu.edu

                        Network Development
                        Computing Services
                        Carnegie Mellon University
                        Pittsburgh PA. 15213

                "
    DESCRIPTION
                " Event MIB for NADINE

                  Network Anomaly Detection, Identification, and Notification
                  Engine

		  This MIB describes a NADINE Event in detail, and 
		  contains the list of problems currently defined.

                "
    REVISION    "9709181200Z"
    DESCRIPTION " Initial Revision"
        ::= { cmuMIBs 3 }

  cmuEvents OBJECT IDENTIFIER ::= { cmuEventMIB 1 }

  -- *****************************************************************

  -- The Event Table


  cmuEventTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF cmuEventEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "  " 
    ::= { cmuEvents 1 }

  cmuEventEntry OBJECT-TYPE
    SYNTAX      cmuEventEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "  " 
    INDEX { cmuEventIndex }
    ::= { cmuEventTable 1 }
        
  CmuEventEntry ::= SEQUENCE {
    cmuEventObjectClass             OBJECT IDENTIFIER,
    cmuEventObjectType              INTEGER,
    cmuEventObjectInstance          OCTET STRING,
    cmuEventTime                    INTEGER,
    cmuEventAlarmType               INTEGER,
    cmuEventProbableCause           INTEGER,
    cmuEventSpecificProblem         OBJECT IDENTIFIER,
    cmuEventPerceivedSeverity       INTEGER,
    cmuEventTriggeredThreshold      OBJECT IDENTIFIER,
    cmuEventThresholdLevel          INTEGER,
    cmuEventThresholdObservedValue  INTEGER,
    cmuEventNotificationID          OCTET STRING,
    cmuEventCorrelatedNotifications OCTET STRING,
    cmuEventMonitoredAttributes     Opaque,
    cmuEventProposedRepairAction    OCTET STRING,
    cmuEventProblemData             OCTET STRING,
    cmuEventProblemText             OCTET STRING,
    cmuEventCredibility             INTEGER,
    cmuEventVersion                 INTEGER,
    cmuEventIndex                   INTEGER,
    cmuEventStatus                  INTEGER
    }
        
  cmuEventObjectClass OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Object Identifier describing the entity this event is
                 about.  This is usually the OID stored in the
                 entities System Description MIB, but does not have to
                 be."
    ::= { cmuEventEntry 1 }
        
  cmuEventObjectType OBJECT-TYPE
    SYNTAX     INTEGER {
                other(1),
                macAddress(2),
                ipAddress(3),
                ddpAddress(4),
                decnetAddress(5),
                domainName(6),
                nbpName(7),
                adminName(8)
                }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION " Type describing the format of the cmuEventObjectInstance." 
    ::= { cmuEventEntry 2 }
        
  cmuEventObjectInstance OBJECT-TYPE
    SYNTAX      OCTET STRING -- (SIZE(0..128))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Actual name of the entity this event is about."
    ::= { cmuEventEntry 3 }
        
  cmuEventTime OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Time this event occured." 
    ::= { cmuEventEntry 4 }
        
  cmuEventAlarmType OBJECT-TYPE
    SYNTAX      INTEGER {
                otherError(1),          -- None of the following
        
                communicationError(2),  -- Associated with sending
                                        -- information from one
                                        -- system to another.
        
                qualityOfServiceError(3),       -- Associated with the
                                                -- degradation in the quality
                                                -- of a service by a service
                                                -- provider.
        
                processingError(4),             -- Related to a software event
        
                configurationError(5),
        
                equipmentError(6),
        
                environmentError(7),    -- Associated with a
                                        -- condition relating to an
                                        -- enclosure in which the
                                        -- equipment resides.
        
                unknownError(8)         -- An error whose cause is
                                        -- not known.
            }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Type of alarm this event is about. (YYYYY)"
    ::= { cmuEventEntry 5 }
        
  cmuEventProbableCause OBJECT-TYPE
    SYNTAX      INTEGER {
                otherFailure(1),                -- None of the following
        
                -- Communications Errors
                lossOfSignal(2),
                framingError(3),
                localTransmissionError(4),
                remoteTransmissionError(5),
                callEstablishmentError(6),
        
                -- Quality of Service Errors
                responseTimeExcessive(7),
                queueSizeExceeded(8),
                bandwidthReduced(9),
                retransmissionRateExcessive(10),
        
                -- Processing errors
                storageCapacityProblem(11),
                versionMismatch(12),
                corruptData(13),
                cpuCyclesLimitExceeded(14),
                softwareError(15),
                outOfMemory(16),
        
                -- Equipment errors
                powerProblem(17),
                timingProblem(18),
                trunkCardProblem(19),
                lineCardProblem(20),
                processorProblem(21),
                terminalProblem(22),
                externalInterfaceDeviceProblem(23),
                dataSetProblem(24),
                multiplexorProblem(25),
        
                -- Environmental Errors
                smokeDetection(26),
                enclosureDoorOpen(27),
                ambientTemperatureProblem(28),
                humidityProblem(29),
                intrusionDetection(30),
        
                unknownFailure(31)      -- An error whose cause is
                                        -- not known and cannot be
                                        -- discovered or estimated.
            }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Probable cause of this event. (YYYYY)"
    ::= { cmuEventEntry 6 }
        
  cmuEventSpecificProblem OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Object Identifier describing the exact problem that
                 is occuring." 
    ::= { cmuEventEntry 7 }
        
  cmuEventPerceivedSeverity OBJECT-TYPE
    SYNTAX      INTEGER {
                indeterminate(1),
                cleared(2),     -- clears one or more previously reported alarms
                informational(3),
                minor(4),       -- an error condition not currently degrading service
                warning(5),     -- a potential or impending event
                major(6),       -- urgent action required
                critical(7)     -- immediate action required
            }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Each cmuEvent has a severity, showing how important it
                 is compared to other events.  Monitors can sort
                 events in a thread based on severity and other
                 attributes."
    ::= { cmuEventEntry 8 }
        
  cmuEventTriggeredThreshold OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "  " 
    ::= { cmuEventEntry 9 }
        
  cmuEventThresholdLevel OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "  " 
    ::= { cmuEventEntry 10 }
        
  cmuEventThresholdObservedValue OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "  " 
    ::= { cmuEventEntry 11 }
        
  cmuEventNotificationID OBJECT-TYPE
    SYNTAX      OCTET STRING -- (SIZE(12))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Unique identifier identifying this cmuEvent apart from
                 events created by any/all other components."
    ::= { cmuEventEntry 12 }
        
  cmuEventThreadID OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " NotificationID of the thread this event belongs to."
    ::= { cmuEventEntry 13 }
        
  cmuEventMonitoredAttributes OBJECT-TYPE
    SYNTAX      Opaque
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "  " 
    ::= { cmuEventEntry 14 }
        
  cmuEventProposedRepairAction OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Textual description of what may be done to remedy
                 this event."
    ::= { cmuEventEntry 15 }
        
  cmuEventProblemData OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "  "
    ::= { cmuEventEntry 16 }
        
  cmuEventProblemText OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Textual description of the actual problem." 
    ::= { cmuEventEntry 17 }
        
  cmuEventCredibility OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Numeric value indicating the credibility of this
                 event, in relation to others.  Threads are sorted by
                 this value, among others."
    ::= { cmuEventEntry 18 }
        
  cmuEventVersion OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Current version of this event.  Every time an
                 attribute is changed, this value is updated."
    ::= { cmuEventEntry 19 }
        
  cmuEventIndex OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " The index into the event list on the originating machine."
    ::= { cmuEventEntry 20 }
        
  cmuEventStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                pending(1),
                notpending(2),
                invalid(3)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Current status if this event.  If the status is
                 notpending, the event is no longer applicable, and
                 will shortly be removed."
    ::= { cmuEventEntry 21 }

  -- *****************************************************************

  -- Possible problems
  --

  problems OBJECT IDENTIFIER ::= { cmuEvents 2 }


  -- Problem Types
  --

  device                    OBJECT IDENTIFIER ::= { problems 1 }
  misc                      OBJECT IDENTIFIER ::= { problems 2 }
  highRate                  OBJECT IDENTIFIER ::= { problems 3 }
  process                   OBJECT IDENTIFIER ::= { problems 4 }
  dns                       OBJECT IDENTIFIER ::= { problems 5 }
  appletalk                 OBJECT IDENTIFIER ::= { problems 6 }
  routing                   OBJECT IDENTIFIER ::= { problems 7 }
  -- diskmon
  filesystem                OBJECT IDENTIFIER ::= { problems 8 }
  -- afsmon
  afs                       OBJECT IDENTIFIER ::= { problems 9 }

  -- Problems :: Devices

  coldStart                 OBJECT IDENTIFIER ::= { device 1 }
  warmStart                 OBJECT IDENTIFIER ::= { device 2 }
  linkDown                  OBJECT IDENTIFIER ::= { device 3 }
  linkUp                    OBJECT IDENTIFIER ::= { device 4 }
  interfaceFlapping         OBJECT IDENTIFIER ::= { device 5 }
  interfaceDown             OBJECT IDENTIFIER ::= { device 6 }
  deviceUnreachable         OBJECT IDENTIFIER ::= { device 7 }
  deviceRebooted            OBJECT IDENTIFIER ::= { device 8 }
  beaconingTokenRing        OBJECT IDENTIFIER ::= { device 9 }
  lowBuffers                OBJECT IDENTIFIER ::= { device 10 }
  lowMemory                 OBJECT IDENTIFIER ::= { device 11 }
  temperatureWarm           OBJECT IDENTIFIER ::= { device 12 }
  temperatureHot            OBJECT IDENTIFIER ::= { device 13 }

  -- Problems :: Misc

  authFailure               OBJECT IDENTIFIER ::= { misc 1 }
  egpNeighborLoss           OBJECT IDENTIFIER ::= { misc 2 }
  duplicateIpAddr           OBJECT IDENTIFIER ::= { misc 3 }

  -- Problems :: High Rates
  
  highNetworkLoad           OBJECT IDENTIFIER ::= { highRate 1 }
  highErrorRate             OBJECT IDENTIFIER ::= { highRate 2 }
  highBroadcastRate         OBJECT IDENTIFIER ::= { highRate 3 }
  highCollisionRate         OBJECT IDENTIFIER ::= { highRate 4 }

  -- Problems :: Process Problems

  fileServerDown            OBJECT IDENTIFIER ::= { process 1 }
  vldbServerCorrupted       OBJECT IDENTIFIER ::= { process 2 }
  datacommDBError           OBJECT IDENTIFIER ::= { process 3 }
  processNotRunning         OBJECT IDENTIFIER ::= { process 4 }
  rogueProcess              OBJECT IDENTIFIER ::= { process 5 }
  configurationError        OBJECT IDENTIFIER ::= { process 6 }

  -- Problems :: DNS Server Problems

  incorrectDNSData          OBJECT IDENTIFIER ::= { dns 1 }
  missingDNSDomainName      OBJECT IDENTIFIER ::= { dns 2 }
  malformedDNSResponse      OBJECT IDENTIFIER ::= { dns 3 }
  noDNSResponse             OBJECT IDENTIFIER ::= { dns 4 }
  dNSServerDown             OBJECT IDENTIFIER ::= { dns 5 }
  dNSServerMalfunction      OBJECT IDENTIFIER ::= { dns 6 }
  dNSServerMisconfigured    OBJECT IDENTIFIER ::= { dns 7 }
  dNSZoneMisconfigured      OBJECT IDENTIFIER ::= { dns 8 }

  -- Problems :: Appletalk

  networkPartitioned        OBJECT IDENTIFIER ::= { appletalk 1 }
  highHostDropRate1         OBJECT IDENTIFIER ::= { appletalk 2 }
  highHostDropRate2         OBJECT IDENTIFIER ::= { appletalk 3 }
  highNetDropRate           OBJECT IDENTIFIER ::= { appletalk 4 }
  alapError                 OBJECT IDENTIFIER ::= { appletalk 5 }
  ddpError                  OBJECT IDENTIFIER ::= { appletalk 6 }
  fastpathInterfaceProblem  OBJECT IDENTIFIER ::= { appletalk 7 }
  fastpathIpProblem         OBJECT IDENTIFIER ::= { appletalk 8 }
  fastpathEthernetProblem   OBJECT IDENTIFIER ::= { appletalk 9 }
  fastpathKipProblem        OBJECT IDENTIFIER ::= { appletalk 10 }
  fastpathRtmpProblem       OBJECT IDENTIFIER ::= { appletalk 11 }
  fastpathSccProblem        OBJECT IDENTIFIER ::= { appletalk 12 }
  missingZone               OBJECT IDENTIFIER ::= { appletalk 13 }
  extraZone                 OBJECT IDENTIFIER ::= { appletalk 14 }

  -- Problems :: Routing

  routeProblem              OBJECT IDENTIFIER ::= { routing 1 }
  routerProblem             OBJECT IDENTIFIER ::= { routing 2 }

  -- Problems :: FileSystem (DISKMON)
  exceededLowWaterMark      OBJECT IDENTIFIER ::= { filesystem 1 }
  exceededHighWaterMark     OBJECT IDENTIFIER ::= { filesystem 2 }
  diskFull                  OBJECT IDENTIFIER ::= { filesystem 3 }
  directoryFull             OBJECT IDENTIFIER ::= { filesystem 4 }

  -- Problems :: AFS (AFSMON)

  aFSServerDown             OBJECT IDENTIFIER ::= { afs 1 }
  aFSServerSalvaging        OBJECT IDENTIFIER ::= { afs 2 }
  ubikQuoromLost            OBJECT IDENTIFIER ::= { afs 3 }
  ubikServerError           OBJECT IDENTIFIER ::= { afs 4 }
  excessiveClockSkew        OBJECT IDENTIFIER ::= { afs 5 }
  volumeOverQuota           OBJECT IDENTIFIER ::= { afs 6 }

END

-- End of CMU-EVENT-MIB

-- ######################################################

--
-- File: other/hpnp.mib
--


-- { iso org(3) dod(6) internet(1) private(4) enterprises(1) 11 }

JETDIRECT3-MIB DEFINITIONS ::= BEGIN

IMPORTS
     private, enterprises, Counter, Gauge, TimeTicks, NetworkAddress
          FROM RFC1065-SMI;
hp                  OBJECT IDENTIFIER ::= { enterprises 11 }
nm                  OBJECT IDENTIFIER ::= { hp 2 }
system              OBJECT IDENTIFIER ::= { nm 3 }
interface           OBJECT IDENTIFIER ::= { nm 4 }
snmp                OBJECT IDENTIFIER ::= { nm 13 }
net_peripheral      OBJECT IDENTIFIER ::= { system 9 }
net_printer         OBJECT IDENTIFIER ::= { net_peripheral 1 }
generalDeviceStatus OBJECT IDENTIFIER ::= { net_printer 1 }
ieee8023Mac         OBJECT IDENTIFIER ::= { interface 1 }
--- ieee8025Mac     OBJECT IDENTIFIER ::= { interface 2 }
npCard              OBJECT IDENTIFIER ::= { interface 3 }
trap                OBJECT IDENTIFIER ::= { snmp 1 }
npSys               OBJECT IDENTIFIER ::= { npCard 1 }
npConns             OBJECT IDENTIFIER ::= { npCard 4 }
npCfg               OBJECT IDENTIFIER ::= { npCard 5 }
npTcp               OBJECT IDENTIFIER ::= { npCard 6 }
npCtl               OBJECT IDENTIFIER ::= { npCard 7 }
npNpi               OBJECT IDENTIFIER ::= { npCard 8 }
npElt               OBJECT IDENTIFIER ::= { npCard 9 }
npIpx               OBJECT IDENTIFIER ::= { npCard 10 }


-- object types

-- The Status Group

gdStatusBytes OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of valid bytes in the gdStatusEntry
         array."
    ::={ generalDeviceStatus 1 }

gdStatusEntry OBJECT-TYPE
    SYNTAX  GdStatusEntry
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The networked peripheral's 32 octet status
         information that is shared between the peripheral
         and the LAN card."
    ::={ generalDeviceStatus 2 }

GdStatusEntry ::=
    SEQUENCE {
        gdStatusLineState
            INTEGER,
        gdStatusPaperState
            INTEGER,
        gdStatusInterventionState
            INTEGER,
        gdStatusNewMode
            INTEGER,
        gdStatusConnectionTerminationAck
            INTEGER,
        gdStatusPeripheralError
            INTEGER,
        gdStatusPaperOut
            INTEGER,
        gdStatusPaperJam
            INTEGER,
        gdStatusTonerLow
            INTEGER,
        gdStatusPagePunt
            INTEGER,
        gdStatusMemoryOut
            INTEGER,
        gdStatusIoActive
            INTEGER,
        gdStatusBusy
            INTEGER,
        gdStatusWait
            INTEGER,
        gdStatusInitialize
            INTEGER,
        gdStatusDoorOpen
            INTEGER,
        gdStatusPrinting
            INTEGER,
        gdStatusPaperOutput
            INTEGER,
        gdStatusReserved
            OCTET STRING,
        gdStatusNovBusy
            INTEGER,
        gdStatusLlcBusy
            INTEGER,
        gdStatusTcpBusy
            INTEGER,
        gdStatusAtBusy
            INTEGER
}

gdStatusLineState OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This describes the line state of the peripheral.
         When non-zero, the peripheral is off-line.  When
         zero the peripheral is on-line."
    ::={ gdStatusEntry 1 }

gdStatusPaperState OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This describes the state of the paper on the peripheral.
         When non-zero, the peripheral has a paper problem. When
         zero, the peripheral does not have a paper problem."
    ::={ gdStatusEntry 2 }

gdStatusInterventionState OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This describes the intervention state of the
         peripheral.  When non-zero, the peripheral requires
         human intervention to continue working.  When
         zero, it requires no assistance."
    ::={ gdStatusEntry 3 }

gdStatusNewMode OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates to which read channel state the
         card should move.  When non-zero, the card should
         indicate that the read channel is idle.  When zero,
         the card should indicate that the read channel is
         operating.  This object is Lan Manager io channel 
         specific.  It is kept here for backward compatibility."
    ::={ gdStatusEntry 4 }

gdStatusConnectionTerminationAck OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates whether the peripheral is waiting for
         the Connection termination ACK.  When non-zero, it
         is waiting.  When zero, it is not waiting."
    ::={ gdStatusEntry 5 }

gdStatusPeripheralError OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This is the error code from the peripheral."
    ::={ gdStatusEntry 6 }

gdStatusPaperOut OBJECT-TYPE
    SYNTAX  INTEGER {
                OFF(0),
                PAPER_OUT_OR_PAPER_MOUNT(1),
                MANUAL_PAPER_FEED_NEEDED(2)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the peripheral is out of paper.

         For some peripherals, such as the HP LaserJet IIISi printer
         or HP DesignJet plotter, this value is always a zero (0)."
    ::={ gdStatusEntry 8 }

gdStatusPaperJam OBJECT-TYPE
    SYNTAX  INTEGER {
                OFF(0),
                PAPER_JAM(1)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the peripheral has a paper jam.
         For some peripherals, such as the HP LaserJet IIISi printer
         or HP DesignJet plotter, this value is always a zero (0)."
    ::={ gdStatusEntry 9 }

gdStatusTonerLow OBJECT-TYPE
    SYNTAX  INTEGER {
                OFF(0),
                TONER_LOW(1),
                NO_TONER_CARTRIDGE(2)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the peripheral has a low toner condition.
         For some peripherals, such as the HP LaserJet IIISi printer
         or HP DesignJet plotter, this value is always a zero (0)."
    ::={ gdStatusEntry 10 }

gdStatusPagePunt OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the peripheral did not receive data fast
         enough to keep up with the print engine when generating a page.
         For some peripherals, such as the HP LaserJet IIISi printer
         or HP DesignJet plotter, this value is always a zero (0)."
    ::={ gdStatusEntry 11 }

gdStatusMemoryOut OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the peripheral did not have enough memory
         to render an image on a page.
         For some peripherals, such as the HP LaserJet IIISi printer
         or HP DesignJet plotter, this value is always a zero (0)."
    ::={ gdStatusEntry 12 }

gdStatusIoActive OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the peripheral is processing data from
         this I/O interface card.
         For some peripherals, such as the HP LaserJet IIISi printer
         or HP DesignJet plotter, this value is always a zero (0)."
    ::={ gdStatusEntry 13 }

gdStatusBusy OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the peripheral is busy processing
         print/plot data.
         For some peripherals, such as the HP LaserJet IIISi printer
         or HP DesignJet plotter, this value is always a zero (0)."
    ::={ gdStatusEntry 14 }

gdStatusWait OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the peripheral is waiting for print/plot
         data to process.
         For some peripherals, such as the HP LaserJet IIISi printer
         or HP DesignJet plotter, this value is always a zero (0)."
    ::={ gdStatusEntry 15 }

gdStatusInitialize OBJECT-TYPE
    SYNTAX  INTEGER {
                OFF(0),
                INITIALIZING(1),
                WARM_UP(2)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the peripheral is initializing or
         warming up.
         For some peripherals, such as the HP LaserJet IIISi printer
         or HP DesignJet plotter, this value is always a zero (0)."
    ::={ gdStatusEntry 16 }

gdStatusDoorOpen OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the peripheral cover or door is open.
         For some peripherals, such as the HP LaserJet IIISi printer
         or HP DesignJet plotter, this value is always a zero (0)."
    ::={ gdStatusEntry 17 }

gdStatusPrinting OBJECT-TYPE
    SYNTAX  INTEGER {
                OFF(0),
                ORDINARY_PAGE(1),
                TEST_FONTS_CONFIG_OR_START_PAGE(2)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the peripheral is printing or otherwise
         marking or moving paper.
         For some peripherals, such as the HP LaserJet IIISi printer
         or HP DesignJet plotter, this value is always a zero (0)."
    ::={ gdStatusEntry 18 }

gdStatusPaperOutput OBJECT-TYPE
    SYNTAX  INTEGER {
                OFF(0),
                OUTPUT_STORAGE_FULL(1)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the peripheral has a paper output problem
         such as the output storage bin being full.
         For some peripherals, such as the HP LaserJet IIISi printer
         or HP DesignJet plotter, this value is always a zero (0)."
    ::={ gdStatusEntry 19 }

gdStatusReserved OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE (0..13))
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This is the reserved area that is not currently
         used, but will allow for growth within the gdStatusEntry table."
    ::={ gdStatusEntry 20 }

gdStatusNovBusy OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates if this channel is active.  If the 
         value is 0 then this channel is active or the peripheral
         is idle.  If this value is non-zero then another channel
         is active.  This is the Novell io channel"
    ::={ gdStatusEntry 21 }

gdStatusLlcBusy OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates if this channel is active.  If the 
         value is 0 then this channel is active or the peripheral
         is idle.  If this value is non-zero then another channel
         is active.  This is the LLC io channel"
    ::={ gdStatusEntry 22 }

gdStatusTcpBusy OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates if this channel is active.  If the 
         value is 0 then this channel is active or the peripheral
         is idle.  If this value is non-zero then another channel
         is active.  This is the TCP io channel"
    ::={ gdStatusEntry 23 }

gdStatusAtBusy OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates if this channel is active.  If the 
         value is 0 then this channel is active or the peripheral
         is idle.  If this value is non-zero then another channel
         is active.  This is the Apple talk io channel"
    ::={ gdStatusEntry 24 }

gdStatusDisplay OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The string diplayed on the peripheral front panel.
         For some peripherals, such as the HP LaserJet IIISi printer
         or HP DesignJet plotter, this is always a zero length string."
    ::={ generalDeviceStatus 3 }

gdStatusJobName OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The current job name set by the peripheral.
         For some peripherals, such as the HP LaserJet IIISi printer
         or HP DesignJet plotter, this is always a zero length string."
    ::={ generalDeviceStatus 4 }

gdStatusSource OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        " "
    ::={ generalDeviceStatus 5 }

gdStatusPapstatus OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        " "
    ::={ generalDeviceStatus 6 }

gdStatusId OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        " "
    ::={ generalDeviceStatus 7 }

gdStatusDisplayCode OBJECT-TYPE
    SYNTAX  INTEGER 
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This is the display code that the peripheral uses
         to tell the card what type of display the front
         panel of the printer is."
    ::={ generalDeviceStatus 8 }

gdStatusNlsCode OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This value is the representation of what native
         language the printer is in currently."
    ::={ generalDeviceStatus 9 }

-- the Ieee8023Mac group

ieee8023MacTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF Ieee8023MacEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
        "A list of ieee8023MacEntry entries."
    ::= { ieee8023Mac 1 }

ieee8023MacEntry OBJECT-TYPE
    SYNTAX  Ieee8023MacEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
        "An entry containing the hp ieee8023 extentions."
    INDEX   { ieee8023MacIndex }
    ::= { ieee8023MacTable 1 }

Ieee8023MacEntry ::= SEQUENCE {
    ieee8023MacIndex
        INTEGER,
    ieee8023MacTransmitted
        Counter,
    ieee8023MacNotTransmitted
        Counter,
    ieee8023MacDeferred
        Counter,
    ieee8023MacCollisions
        Counter,
    ieee8023MacSingleCollisions
        Counter,
    ieee8023MacMultipleCollisions
        Counter,
    ieee8023MacExcessCollisions
        Counter,
    ieee8023MacLateCollisions
        Counter,
    ieee8023MacCarrierLostErrors
        Counter,
    ieee8023MacNoHeartBeatErrors
        Counter,
    ieee8023MacFramesReceived
        Counter,
    ieee8023MacUndeliverableFramesReceived
        Counter,
    ieee8023MacCrcErrors
        Counter,
    ieee8023MacAlignmentErrors
        Counter,
    ieee8023MacResourceErrors
        Counter,
    ieee8023MacControlFieldErrors
        Counter,
    ieee8023MacUnknownProtocolErrors
        Counter,
    ieee8023MacMulticastsAccepted
        Counter,
    ieee8023MacMulticastsAccepted
        Counter,
    ieee8023MacInfiniteDeferrals
        Counter,
    ieee8023MacUnderflowErrors
        Counter,
    ieee8023MacNoResources
        Counter,
    ieee8023MacLengthErrors
        Counter
}

ieee8023MacIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The index value which uniquely identifies the interface/port to
         which this entry is applicable.  The interface/port identified by
         a particular value of this index is the same interface/port as
         identified by the same value of ifIndex."
    ::= { ieee8023MacEntry 1 }

ieee8023MacTransmitted OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of frames successfully transmitted."
    ::= { ieee8023MacEntry 2 }

ieee8023MacNotTransmitted OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of frames not transmitted."
    ::= { ieee8023MacEntry 3 }

ieee8023MacDeferred OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "Number of frames which were successfully transmitted after a
         deferral.  If any collisions occurred before transmission,
         xmtDeferredTransmission isn't incremented."
    ::= { ieee8023MacEntry 4 }

ieee8023MacCollisions OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "Total number of transmit attempts that were retransmitted due to
         collisions, and are subsequently transmitted successfully."
    ::= { ieee8023MacEntry 5 }

ieee8023MacSingleCollisions OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "Number of transmit attempts that are involved in a single
         collision, and are subsequently transmitted successfully."
    ::= { ieee8023MacEntry 6 }

ieee8023MacMultipleCollisions OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "Number of transmit attempts that are involved in between one and
         fifteen collision attempts, and are subsequently transmitted
         successfully."
    ::= { ieee8023MacEntry 7 }

ieee8023MacExcessCollisions OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of transmits that occur after more than 15 collisions,
         and are subsequently transmitted successfully."
    ::= { ieee8023MacEntry 8 }

ieee8023MacLateCollisions OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of collisions that occured after one end-to-end frame
         propagation delay."
    ::= { ieee8023MacEntry 9 }

ieee8023MacCarrierLostErrors OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "Number of times that carrier sense was lost when attempting to
         transmit."
    ::= { ieee8023MacEntry 10 }

ieee8023MacNoHeartBeatErrors OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of times the MAU failed to assert SQE after
         transmitting a packet."
    ::= { ieee8023MacEntry 11 }

ieee8023MacFramesReceived OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of frames successfully received."
    ::= { ieee8023MacEntry 12 }

ieee8023MacUndeliverableFramesReceived OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of frames received that could not be delivered because
         the software buffer was overrun when frames were sent faster than
         they could be received."
    ::= { ieee8023MacEntry 13 }

ieee8023MacCrcErrors OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of Cyclical Redundancy Check (CRC) errors detected."
    ::= { ieee8023MacEntry 14 }

ieee8023MacAlignmentErrors OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of frames received that were both misaligned and had
         bad CRC."
    ::= { ieee8023MacEntry 15 }

ieee8023MacResourceErrors OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of frames received that were lost due to lack of
         resources."
    ::= { ieee8023MacEntry 16 }

ieee8023MacControlFieldErrors OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of frames received with errors in the control field."
    ::= { ieee8023MacEntry 17 }

ieee8023MacUnknownProtocolErrors OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number frames dropped because the type field or sap field
         referenced an invalid protocol."
    ::= { ieee8023MacEntry 18 }

ieee8023MacMulticastsAccepted OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "Number of accepted muliticast addresses."
    ::= { ieee8023MacEntry 19 }

ieee8023MacInfiniteDeferrals OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of frames not transmitted successfully
         due to excessive number of deferrals."
    ::= { ieee8023MacEntry 20 }

ieee8023MacUnderflowErrors OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of frames not transmitted successfully
         because an underflow occurred on the transmit."
    ::= { ieee8023MacEntry 21 }

ieee8023MacNoResources OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of frames not transmitted successfully
         because the MAC lacked resources to handle the frame."
    ::= { ieee8023MacEntry 22 }

ieee8023MacLengthErrors OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of frames received that have length errors."
    ::= { ieee8023MacEntry 23 }


--  The 802.3 Multicast Address Table

ieee8023MacMcaTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF Ieee8023MacMcaTableEntry
    ACCESS  not-accessible
    STATUS  optional
    DESCRIPTION
        "The 802.3 multicast address table."
    ::= { ieee8023Mac 2 }

ieee8023MacMcaTableEntry OBJECT-TYPE
    SYNTAX  Ieee8023MacMcaTableEntry
    ACCESS  not-accessible
    STATUS  optional
    DESCRIPTION
        "Entries in the ieee8023MacMcaTable."
    ::= { ieee8023MacMcaTable 1 }

Ieee8023MacMcaTableEntry ::=
    SEQUENCE {
        ieee8023MacMcaIndex
            INTEGER,
        ieee8023MacMcaAddress
            OCTET STRING
    }

ieee8023MacMcaIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The index corresponding to a particular instance
         in the ieee8023MacMcaTable."
    ::= { ieee8023MacMcaTableEntry 1 }

ieee8023MacMcaAddress OBJECT-TYPE
    SYNTAX  OCTET STRING
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The multicast address of a particular instance in
         the ieee8023McaTable."
    ::= { ieee8023MacMcaTableEntry 2 }


--  Other 802.3 Objects

ieee8023MacState OBJECT-TYPE
    SYNTAX  INTEGER {
                OFFLINE(1),
                INITIALIZING(2),
                ONLINE(4),
                ERROR(5),
                IO_NOT_READY(6)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The internal state of this instance."
    ::= { ieee8023Mac 3 }

ieee8023MacConfigurationStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                INTERNAL_MAU_SELECTED1(1),
                INTERNAL_MAU_SELECTED5(5),
                INTERNAL_MAU_SELECTED13(13),
                EXTERNAL_MAU_SELECTED(14)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This is the four bits of hardware power sense and
         jumper sense registers:

            15  14  13  12  11
            +---+---+---+---+----------+
            |apa|mpa|ext|int|  unused  |
            +---+---+---+---+----------+

            unused    Reserved for future status.
            apa       12v power detected at the AUI connector.
            mpa       12v power detected at the Peripheral
            interface.
            ext       External AUI connector selected.
            int       Internal tranceiver selected."
    ::= { ieee8023Mac 4 }

ieee8023MacNumberActiveMCAs OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of entries in the multicast address table."
    ::= { ieee8023Mac 5 }


-- The HP Network Peripheral Card (npCard) Group
-- The System subgroup of npCard

npSysState OBJECT-TYPE
    SYNTAX  INTEGER {
                Offline(1),
                Initializing(2),
                Online(4),
                Error(5),
                IO_NOT_READY(6)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The state of the LAN card to network peripheral
         interface driver."
    ::={ npSys 1 }

npSysStatusMessage OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "A status string reflecting the current state of the card
         and peripheral."
    ::={ npSys 2 }

npSysPeripheralFatalError OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The most recent peripheral fatal error that is
         being displayed on the peripheral's display panel.
         The error typically appears as a '80 Service
         (00xx)' error.  Refer to peripheral documentation
         to determine what the error means."
    ::={ npSys 3 }

npSysCardFatalError OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The most recent LAN Card error that is being
         displayed on the peripheral's display panel.  The
         error typically appears as a '80 Service (01xx)'
         error.  Refer to peripheral documentation to
         determine what the error means."
    ::={ npSys 4 }

npSysMaximumWriteBuffers OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The maximum number of write buffers configured for
         the LAN card (this translates to the write window
         size of the connection)."
    ::={ npSys 5 }

npSysMaximumReadBuffers OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The maximum number of read buffers configured for
         the LAN card (this translates to the read window
         size of the connection)."
    ::={ npSys 6 }

npSysTotalBytesRecvs OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The total number of bytes received since reset."
    ::={ npSys 7 }

npSysTotalBytesSents OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The total number of bytes sent since reset."
    ::={ npSys 8 }

npSysCurrReadReq OBJECT-TYPE
    SYNTAX  Gauge
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The current number of read data buffers owned by
         the LAN card."
    ::={ npSys 9 }

-- The following 2 objects are from the original Lan Manager MIB.  They
-- need to exist to be backward compatible.

npCardPFatalErr OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The most recent peripheral fatal error that is
         being displayed on the peripheral's display panel.
         The error typically appears as a '80 Service
         (00xx)' error.  Refer to peripheral documentation
         to determine what the error means."
    ::={ npCard 2 }

npCardIoFatalErr OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The most recent LAN Card error that is being
         displayed on the peripheral's display panel.  The
         error typically appears as a '80 Service (01xx)'
         error.  Refer to peripheral documentation to
         determine what the error means."
    ::={ npCard 3 }

--- The Card Connection Statistics subgroup of npCard

npConnsAccepts OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of connections accepted since reset."
    ::={ npConns 1 }

npConnsRefused OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of connections refused since reset.  Connections
         are refused for the following reasons: a connection is already
         active, the peripheral is offline, the network peripheral
         interface is not ready for connections after a power-up or
         reset, or there isn't enough buffer space on the card to
         establish a connection."
    ::={ npConns 2 }

npConnsDenys OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of connections that the card denied due to failure
         to match the access list."
    ::={ npConns 3 }

npConnsDenysIP OBJECT-TYPE
    SYNTAX  IpAddress
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The IP address of the last node to be denied a connection
         due to failure to match the access list."
    ::={ npConns 4 }

npConnsAborts OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of connections aborted due to a network problem."
    ::={ npConns 5 }

npConnsAbortReason OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The textual description of why the last abort on the
         card occurred."
    ::={ npConns 6 }

npConnsAbortIP OBJECT-TYPE
    SYNTAX  IpAddress
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The IP address of the last node to establish a connection
         before the card aborted."
    ::={ npConns 7 }

npConnsAbortPort OBJECT-TYPE
    SYNTAX  INTEGER (0..65535)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The port of the last node to establish a connection
         before the card aborted."
    ::={ npConns 8 }

npConnsAbortTime OBJECT-TYPE
    SYNTAX  TimeTicks
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The time (in hundredths of a second) since the last
         time the card was aborted."
    ::={ npConns 9 }

npConnsState OBJECT-TYPE
    SYNTAX  INTEGER {
                up(1),
                down(2)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "State of current connection to card."
    ::={ npConns 10 }

npConnsIP OBJECT-TYPE
    SYNTAX  IpAddress
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "Remote IP address of the node currently connected to the card.
         Zero if no connection is active."
    ::={ npConns 11 }

npConnsPort OBJECT-TYPE
    SYNTAX  INTEGER (0..65535)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "Remote port number of the node currently connected to the card.
         Zero if no connection is active."
    ::={ npConns 12 }

npConnsPeriphClose OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of connections closed in response to a peripheral
         request I/O channel reset request."
    ::={ npConns 13 }

npConnsIdleTimeouts OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of connections closed due to an idle timeout."
    ::={ npConns 14 }

npConnsNmClose OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of connections closed by SetRequests to the MIB
         variable, npCtlCloseConnection."
    ::={ npConns 15 }

npConnsBytesRecvd OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of bytes received by this connection."
    ::={ npConns 16 }

npConnsBytesSent OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of bytes transmitted by this connection."
    ::={ npConns 17 }


--- The Card Configuration subgroup of npCard

npCfgSource OBJECT-TYPE
    SYNTAX  INTEGER {
                BOOTP(0),
                FRONTPANEL(1)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates whether the card obtained its configuration
         from the system that sent the BOOTP reply or from the
         front panel."
    ::={ npCfg 1 }

npCfgYiaddr OBJECT-TYPE
    SYNTAX  IpAddress
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The IP address assigned to the card from the BOOTP reply
         yiaddr field."
    ::={ npCfg 2 }

npCfgSiaddr OBJECT-TYPE
    SYNTAX  IpAddress
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The IP address of the TFTP server from the BOOTP reply
         siaddr field."
    ::={ npCfg 3 }

npCfgGiaddr OBJECT-TYPE
    SYNTAX  IpAddress
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The IP address of the TFTP gateway from the BOOTP reply
         giaddr field."
    ::={ npCfg 4 }

npCfgLogServer OBJECT-TYPE
    SYNTAX  IpAddress
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The IP address of the Log Server from the BOOTP reply
         Tag: 7 field."
    ::={ npCfg 5 }

npCfgSyslogFacility OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This specifies the facility identifier used in syslog messages
         generated by the card."
    ::={ npCfg 6 }

npCfgAccessState OBJECT-TYPE
    SYNTAX  INTEGER {
                allowed(1),
                not-allowed(2)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "An indication of whether or not the requesting host
         is allowed to connect to the card as dictated by the
         access list."
    ::={ npCfg 7 }

npCfgAccessListNum OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of access list entries."
    ::={ npCfg 8 }

npCfgAccessListTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF AccessListEntry
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "List of access addresses and masks."
    ::={ npCfg 9 }

accessListEntry OBJECT-TYPE
    SYNTAX  AccessListEntry
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "Each entry contains an access address and mask."
    INDEX    { npCfgAccessListIndex }
    ::={ npCfgAccessListTable 1 }

AccessListEntry ::=
    SEQUENCE {
        npCfgAccessListIndex
            INTEGER,
        npCfgAccessListAddress
            IpAddress,
        npCfgAccessListAddrMask
            IpAddress
    }

npCfgAccessListIndex OBJECT-TYPE
    SYNTAX  INTEGER (0..9)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "Index to the configuration access list table."
    ::={ accessListEntry 1 }

npCfgAccessListAddress OBJECT-TYPE
    SYNTAX  IpAddress
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "Address to compare with after applying the wildcard to
         the requestor's address."
    ::={ accessListEntry 2 }

npCfgAccessListAddrMask OBJECT-TYPE
    SYNTAX  IpAddress
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "Address mask used to help determine whether or not a given
         IP address is allowed access to the card.  An IP address is
         allowed access if (Addr & AddrMask) == (IP & AddrMask)."
    ::={ accessListEntry 3 }

npCfgIdleTimeout OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The idle timeout is the length in seconds after which an
         idle connection is terminated.  A value of zero disables
         the timeout."
    ::={ npCfg 10 }

npCfgLocalSubnets OBJECT-TYPE
    SYNTAX  INTEGER {
                none(0),
                exist(1)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "An indication of whether or not the card recognizes
         any local subnets."
    ::={ npCfg 11 }


-- The TCP subgroup of npCard

npTcpInSegInOrder OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of TCP segments received in order."
    ::={ npTcp 1 }

npTcpInSegOutOfOrder OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of TCP segments received out of order."
    ::={ npTcp 2 }

npTcpInSegZeroProbe OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of TCP zero window probes received."
    ::={ npTcp 3 }

npTcpInDiscards OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of TCP segments received that were
         discarded."
    ::={ npTcp 4 }


-- The Card Control subgroup of npCard

npCtlReconfigIP OBJECT-TYPE
    SYNTAX  IpAddress
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The IP address of the last node to request a reconfig
         of the card.  This value is preserved across a reconfig."
    ::={ npCtl 1 }

npCtlReconfigPort OBJECT-TYPE
    SYNTAX  INTEGER (0..65535)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The port of the last node to request a reconfig of the
         card.  This value is preserved across a reconfig."
    ::={ npCtl 2 }

npCtlReconfigTime OBJECT-TYPE
    SYNTAX  TimeTicks
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The time (in hundredths of a second) since the last
         time the card was reconfigured."
    ::={ npCtl 3 }

npCtlCloseIP OBJECT-TYPE
    SYNTAX  IpAddress
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The IP address of the last node to request a close of
         the peripheral data connection on the card.  This
         value is cleared on a reconfig."
    ::={ npCtl 4 }

npCtlClosePort OBJECT-TYPE
    SYNTAX  INTEGER (0..65535)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The port of the last node to request a close of the
         peripheral data connection on the card.  This
         value is cleared on a reconfig."
    ::={ npCtl 5 }

npCtlImageDump OBJECT-TYPE
    SYNTAX  INTEGER {
                OFF(0),
                DUMP(1)
            }
    ACCESS  read-write
    STATUS  optional
    DESCRIPTION
        "Writing a one (1) to this variable causes the card to dump
         its RAM image into a file using TFTP.  The file is dumped
         onto the BOOTP server machine whose IP address is in the MIB
         variable, npCfgSiaddr { npCfg 3 }.  The file name is:
         npi.<IPaddr> in the tftp directory, where <IPaddr> is the
         IP address of the card.  The file must be writable by TFTP."
    ::= { npCtl 6 }

npCtlCloseConnection OBJECT-TYPE
    SYNTAX  INTEGER {
                OFF(0),
                CLOSE(1)
            }
    ACCESS  read-write
    STATUS  optional
    DESCRIPTION
        "Writing a one (1) to this variable causes the card to close
         the current peripheral data connection"
    ::= { npCtl 7 }

npCtlReconfig OBJECT-TYPE
    SYNTAX  INTEGER {
                OFF(0),
                REBOOT(1)
            }
    ACCESS  read-write
    STATUS  optional
    DESCRIPTION
        "Writing a one (1) to this variable causes the card to
         reconfigure itself by doing the BOOTP/TFTP configuration
         activity."
    ::= { npCtl 8 }

npCtlProtocolSet OBJECT-TYPE
    SYNTAX  INTEGER 
    ACCESS  read-write
    STATUS  optional
    DESCRIPTION
        "Reading this 4 byte integer will show several things.  It will
         show.  Writing the protocol bits will enable/disable the protocols
         specified."
    ::={ npCtl 9 }


-- The HP Modular Input/Output (MIO) subgroup of npCard
-- The Card Status Entry

npNpiCardStatusEntry OBJECT-TYPE
    SYNTAX  npNpiStatusEntry
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "These are the set of status bytes that the
         peripheral passes to the network card.  The
         peripheral and LAN card exchange these status
         bytes whenever an event causes the status to
         change."
    ::={ npNpi 1 }

npNpiCardStatusEntry ::=
    SEQUENCE {
        npNpiCseDataState
            INTEGER,
        npNpiCseErrorCode
            INTEGER,
        npNpiCseLinkEvent
            INTEGER,
        npNpiCseReadMode
            INTEGER,
        npNpiCseWriteMode
            INTEGER,
        npNpiCseWarningCode
            INTEGER,
        npNpiCseConnectionState
            INTEGER,
        npNpiCseNovWarningCode
            INTEGER,
        npNpiCseLlcWarningCode
            INTEGER,
        npNpiCseTcpWarningCode
            INTEGER,
        npNpiCseAtkWarningCode
            INTEGER
}

npNpiCseDataState OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The data state of the LAN card."
    ::={ npNpiCardStatusEntry 1 }

npNpiCseErrorCode OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The LAN card's error code."
    ::={ npNpiCardStatusEntry 2 }

npNpiCseLinkEvent OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The LAN link event (reset or initialized or
         triggered)."
    ::={ npNpiCardStatusEntry 3 }

npNpiCseReadMode OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The state of the LAN card's read channel (operate
         or idle)."
    ::={ npNpiCardStatusEntry 4 }

npNpiCseWriteMode OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The state of the LAN card's write channel (operate
         or idle)."
    ::={ npNpiCardStatusEntry 5 }

npNpiCseWarningCode OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the LAN card channel zero
         has encountered an error condition which isn't 
         serious enough to shut the peripheral down, 
         but should be checked out."
    ::={ npNpiCardStatusEntry 6 }

npNpiCseConnectionState OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "Indicates whether or not the peripheral is
         currently connected to a server."
    ::={ npNpiCardStatusEntry 7 }

npNpiCseNovWarningCode OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the Novell stack has encountered
         an error condition which isn't serious enough to
         shut the peripheral down, but should be checked
         out."
    ::={ npNpiCardStatusEntry 8 }

npNpiCseLlcWarningCode OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the LLC stack has encountered
         an error condition which isn't serious enough to
         shut the peripheral down, but should be checked
         out."
    ::={ npNpiCardStatusEntry 9 }

npNpiCseTcpWarningCode OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the TCP stack has encountered
         an error condition which isn't serious enough to
         shut the peripheral down, but should be checked
         out."
    ::={ npNpiCardStatusEntry 10 }

npNpiCseAtkWarningCode OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This indicates that the AppleTalk stack has encountered
         an error condition which isn't serious enough to
         shut the peripheral down, but should be checked
         out."
    ::={ npNpiCardStatusEntry 11 }

--  The Peripheral Attribute Entry

npNpiPeripheralAttributeCount OBJECT-TYPE
    SYNTAX  INTEGER (0..32)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of valid bytes of peripheral attributes
         received from the peripheral."
    ::={ npNpi 2 }

npNpiPeripheralAttributeEntry OBJECT-TYPE
    SYNTAX  npNpiPeripheralAttributeEntry
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The set of bytes that describe the peripheral's
         attributes as received from the peripheral during
         the setup of the peripheral to LAN card
         communications."
    ::={ npNpi 3 }

npNpiPeripheralAttributeEntry ::=
    SEQUENCE {
        npNpiPaeLinkDirection
            INTEGER,
        npNpiPaeClass
            INTEGER,
        npNpiPaeIdentification
            INTEGER,
        npNpiPaeRevision
            INTEGER,
        npNpiPaeAppleTalk
            INTEGER,
        npNpiPaeMessage
            INTEGER,
        npNpiPaeReserved 
            INTEGER,
        npNpiPaeMultichanFlag
            INTEGER,
        npNpiPaePad
            OCTET STRING
}

npNpiPaeLinkDirection OBJECT-TYPE
    SYNTAX  INTEGER {
                NO_PERIPH_DATA_XFER(0),
                XFER_PERIPH_TO_HOST(1),
                XFER_HOST_TO_PERIPH(2),
                BI_DIRECT_PERIPH_DATA_XFER(3)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The directions that the peripheral is able to
         transfer data (read and write channels, read
         channel only, or write channel only)."
    ::={ npNpiPeripheralAttributeEntry 1 }

npNpiPaeClass OBJECT-TYPE
    SYNTAX  INTEGER {
                UNDEFINED_CLASS(0),
                PRINTER(1),
                PLOTTER(2),
                INSTRUMENT(3)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The class assigned to the peripheral onto which
         this card is plugged."
    ::={ npNpiPeripheralAttributeEntry 2 }

npNpiPaeIdentification OBJECT-TYPE
    SYNTAX  INTEGER {
                UNDEFINED_PERIPH(0),
                LASERJET_IIISI(1)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The Identification number of the peripheral."
    ::={ npNpiPeripheralAttributeEntry 3 }

npNpiPaeRevision OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The revision number of the peripheral."
    ::={ npNpiPeripheralAttributeEntry 4 }

npNpiPaeAppleTalk OBJECT-TYPE
    SYNTAX  INTEGER {
                NO_APPLETALK_SUPPORT(0),
                APPLETALK_SUPPORT(1)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "Indicates the peripheral supports functionality
         that the apple talk protocol network provides."
    ::={ npNpiPeripheralAttributeEntry 5 }

npNpiPaeMessage OBJECT-TYPE
    SYNTAX  INTEGER {
                NO_MSGMODE_SUPPORT(0),
                MSGMODE_SUPPORT(1)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "Reserved for future use."
    ::={ npNpiPeripheralAttributeEntry 6 }

npNpiPaeReserved OBJECT-TYPE
    SYNTAX  INTEGER 
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This field is an unused byte."
    ::={ npNpiPeripheralAttributeEntry 7 }

npNpiPaeMultichan OBJECT-TYPE
    SYNTAX  INTEGER 
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        " "
    ::={ npNpiPeripheralAttributeEntry 8 }

npNpiPaePad OBJECT-TYPE
    SYNTAX  OCTET STRING 
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This object is a pad for future use."
    ::={ npNpiPeripheralAttributeEntry 9 }



--  The Card Attribute Entry

npNpiCardAttributeEntry OBJECT-TYPE
    SYNTAX  npNpiCardAttributeEntry 
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The set of bytes describing the card's attributes
         as stored in the ROM of this particular LAN card."
    ::={ npNpi 4 }

npNpiCardAttributeEntry ::=
    SEQUENCE {
        npNpiCaeLinkDirection
            INTEGER,
        npNpiCaeClass
            INTEGER,
        npNpiCaeIdentification
            INTEGER,
        npNpiCaeRevision
            INTEGER,
        npNpiCaeAppleTalk
            INTEGER,
        npNpiCaeMessage
            INTEGER,
        npNpiCaeReserved
            INTEGER,
        npNpiCaeMultichan
            INTEGER
}

npNpiCaeLinkDirection OBJECT-TYPE
    SYNTAX  INTEGER {
                NO_LINK_DATA_XFER(0),
                XFER_LINK_TO_HOST(1),
                XFER_HOST_TO_LINK(2),
                BI_DIRECT_LINK_DATA_XFER(3)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The directions that this particular network
         peripheral card is able to transfer data (read and
         write, read only or write only)."
    ::={ npNpiCardAttributeEntry 1 }

npNpiCaeClass OBJECT-TYPE
    SYNTAX  INTEGER {
                UNDEFINED_CLASS(0),
                RS_232(1),
                CENTRONICS(2),
                CSMD_CD_NETWORK(3),
                TOKEN_RING_NETWORK(4),
                SCSI(5),
                HPIB(6),
                LOCALTALK(7)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The class of this network peripheral card."
    ::={ npNpiCardAttributeEntry 2 }

npNpiCaeIdentification OBJECT-TYPE
    SYNTAX  INTEGER (0..65535)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The identification number assigned this network
         peripheral card."
    ::={ npNpiCardAttributeEntry 3 }

npNpiCaeRevision OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The revision number of the network peripheral
         connection card code on this card."
    ::={ npNpiCardAttributeEntry 4 }

npNpiCaeAppleTalk OBJECT-TYPE
    SYNTAX  INTEGER {
                NO_APPLETALK_SUPPORT(0),
                APPLETALK_SUPPORT(1)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "Indicates that the card supports the apple talk
         protocol network."
    ::={ npNpiCardAttributeEntry 5 }

npNpiCaeMessage OBJECT-TYPE
    SYNTAX  INTEGER {
                NO_MSGMODE_SUPPORT(0),
                MSGMODE_SUPPORT(1)
            }
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "Indicates that the card supports the messaging mode protocol."
    ::={ npNpiCardAttributeEntry 6 }

npNpiCaeReserved OBJECT-TYPE
    SYNTAX  INTEGER 
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "Reserved object for future use."
    ::={ npNpiCardAttributeEntry 7 }

npNpiCaeMultichan OBJECT-TYPE
    SYNTAX  INTEGER 
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        " "
    ::={ npNpiCardAttributeEntry 8 }

--  The Error Log Table subgroup of npCard

npEltErrorLogTable OBJECT-TYPE
    SYNTAX  npEltErrorLogTable
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The LAN card's error log."
    ::={ npElt 1 }

npEltEntry OBJECT-TYPE
    SYNTAX  npEltErrorLogTable
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The LAN card's error log table entries."
    ::={ npEltErrorLogTable 1 }

npEltErrorLogTable ::=
    SEQUENCE {
        npEltErrIndex
            INTEGER,
        npEltErrErrorId
            INTEGER,
        npEltErrErrorParam
            INTEGER,
        npEltErrTimeStamp
            TimeTicks
    }

npEltErrIndex OBJECT-TYPE
    SYNTAX  INTEGER (0..255)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The index that uniquely identifies an error log
         entry."
    ::={ npEltEntry 1 }

npEltErrErrorId OBJECT-TYPE
    SYNTAX  INTEGER (0..65535)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "Identification for this error."
    ::={ npEltEntry 2 }

npEltErrErrorParam OBJECT-TYPE
    SYNTAX  INTEGER (0..4294967295)
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "Error Parameter value."
    ::={ npEltEntry 3 }

npEltErrTimeStamp OBJECT-TYPE
    SYNTAX  TimeTicks
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "Time in timer ticks when error log entry was made."
    ::={ npEltEntry 4 }

--  The IPX group

npIpxGetUnitCfgResp OBJECT-TYPE
    SYNTAX  OCTET STRING
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This object is the Get Unit Config Response
         structure described in the IPX code.  This
         structure is of variable length depending
         on how many servers are configured."
    ::={ npIpx 1 }

npIpx8022frametype OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of IPX FT8022 frames received."
    ::={ npIpx 2 }

npIpxSNAPframetype OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of IPX FTSNAP frames received."
    ::={ npIpx 3 }

npIpxEthernetframetype OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of IPX FTEthernet frames received."
    ::={ npIpx 4 }

npIpx8023Rawframetype OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of IPX FT8023RAW frames received."
    ::={ npIpx 5 }

--  LLC Connection State

llcconstategroup OBJECT-TYPE
    SYNTAX  llcconstategroup
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This is the llc connection state group.  This 
         is only here since we need to have the Lan
         Manager/Server backward compatibility."
    ::={ npCard 12 }

LlcConnectionstate OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "This is the llc connection state for Lan Manager
         and Lan Server.  It is here for backward 
         compatibility."
    ::={ llcconstategroup 7 }

--- The Trap Group

trapDestinationNum OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  optional
    DESCRIPTION
        "The number of trap destinations."
    ::={ trap 1 }

-- The Trap Destination Table

trapDestinationTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF TrapDestinationEntry
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "List of addresses to which the agent sends traps."
    ::= { trap 2 }

trapDestinationEntry OBJECT-TYPE
    SYNTAX  TrapDestinationEntry
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "Each entry contains the address of a management
         station."
    INDEX    { trapDestination }
    ::= { trapDestinationTable 1 }

TrapDestinationEntry ::= SEQUENCE {
    trapDestination
    NetworkAddress
}

trapDestination OBJECT-TYPE
    SYNTAX  NetworkAddress
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "Address to which the agent sends traps."
    ::= { trapDestinationEntry 1 }

END

-- @(#) $Revision: 1.2 $
-- @(#) $Date: 1998/05/08 18:07:36 $

-- ######################################################

--
-- File: cisco/CISCO-SMI.mib
--

-- *****************************************************************
-- CISCO-SMI.my:  Cisco Enterprise Structure of Management Information
--
-- April 1994, Jeffrey T. Johnson
--
-- Copyright (c) 1994-1997 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************
--

CISCO-SMI DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY,
	OBJECT-IDENTITY,
	enterprises
		FROM SNMPv2-SMI;

cisco MODULE-IDENTITY
	LAST-UPDATED "9704090000Z"
	ORGANIZATION "Cisco Systems, Inc."
	CONTACT-INFO
		"	Cisco Systems
			Customer Service

		Postal: 170 West Tasman Drive
			San Jose, CA  95134
			USA

		   Tel: +1 800 553-NETS

		E-mail: cs-snmp@cisco.com"
	DESCRIPTION
		"The Structure of Management Information for the
		Cisco enterprise."
	REVISION      "9704090000Z"
	DESCRIPTION
		"Added ciscoPartnerProducts to generate sysObjectID
		for partner platforms"

	REVISION      "9505160000Z"
	DESCRIPTION
		"New oid assignments for Cisco REPEATER MIB and others."
	REVISION      "9404262000Z"
	DESCRIPTION
		"Initial version of this MIB module."
	::= { enterprises 9 }	-- assigned by IANA


ciscoProducts OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"ciscoProducts is the root OBJECT IDENTIFIER from
		which sysObjectID values are assigned.  Actual
		values are defined in CISCO-PRODUCTS-MIB."
	::= { cisco 1 }

local OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"Subtree beneath which pre-10.2 MIBS were built."
	::= { cisco 2 }

temporary OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"Subtree beneath which pre-10.2 experiments were
		placed."
	::= { cisco 3 }

pakmon OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"reserved for pakmon"
	::= { cisco 4 }

workgroup OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"subtree reserved for use by the Workgroup Business Unit"
	::= { cisco 5 }

otherEnterprises OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"otherEnterprises provides a root object identifier
		from which mibs produced by other companies may be
		placed.  mibs produced by other enterprises are
		typicially implemented with the object identifiers
		as defined in the mib, but if the mib is deemed to
		be uncontrolled, we may reroot the mib at this
		subtree in order to have a controlled version."
	::= { cisco 6 }

ciscoAgentCapability OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"ciscoAgentCapability provides a root object identifier
		from which AGENT-CAPABILITIES values may be assigned."
	::= { cisco 7 }

ciscoConfig OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"ciscoConfig is the main subtree for configuration mibs."
	::= { cisco 8 }

ciscoMgmt OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"ciscoMgmt is the main subtree for new mib development."
	::= { cisco 9 }

ciscoExperiment OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"ciscoExperiment provides a root object identifier
		from which experimental mibs may be temporarily
		based.  mibs are typicially based here if they
		fall in one of two categories
		1) are IETF work-in-process mibs which have not
		been assigned a permanent object identifier by
		the IANA.
		2) are cisco work-in-process which has not been
		assigned a permanent object identifier by the
		cisco assigned number authority, typicially because
		the mib is not ready for deployment.

		NOTE WELL:  support for mibs in the ciscoExperiment
		subtree will be deleted when a permanent object
		identifier assignment is made."
	::= { cisco 10 }

ciscoAdmin OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"ciscoAdmin is reserved for administratively assigned
		OBJECT IDENTIFIERS, i.e. those not associated with MIB
		objects"
	::= { cisco 11 }

ciscoModules OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"ciscoModules provides a root object identifier
		from which MODULE-IDENTITY values may be assigned."
	::= { cisco 12 }

lightstream OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"subtree reserved for use by Lightstream"
	::= { cisco 13 }

ciscoworks OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"ciscoworks provides a root object identifier beneath
		which mibs applicable to the CiscoWorks family of network
		management products are defined."
	::= { cisco 14 }

newport OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"subtree reserved for use by the former Newport Systems
		Solutions, now a portion of the Access Business Unit."
	::= { cisco 15 }

ciscoPartnerProducts OBJECT-IDENTITY
        STATUS  current
        DESCRIPTION
		"ciscoPartnerProducts is the root OBJECT IDENTIFIER from
		which partner sysObjectID values may be assigned. Such 
		sysObjectID values are composed of the ciscoPartnerProducts
		prefix, followed by a single identifier that is unique for 
		each partner, followed by the value of sysObjectID of the
		Cisco product from which partner product is derived.  Note
		that the chassisPartner MIB object defines the value of the
		identifier assigned to each partner."
        ::= { cisco 16 }

-- ciscoAdmin assignments follow

ciscoProxy OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"ciscoProxy OBJECT IDENTIFIERS are used to uniquely name
		party mib records created to proxy for SNMPv1."
	::= { ciscoAdmin 1 }
ciscoPartyProxy		OBJECT IDENTIFIER ::= { ciscoProxy 1 }
ciscoContextProxy	OBJECT IDENTIFIER ::= { ciscoProxy 2 }

--
-- Administrative assignments for repeaters
--

ciscoRptrGroupObjectID OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"ciscoRptrGroupObjectID OBJECT IDENTIFIERS are used to
		uniquely identify groups of repeater ports for use by the
		SNMP-REPEATER-MIB (RFC 1516) rptrGroupObjectID object."
	::= { ciscoAdmin 2 }

ciscoUnknownRptrGroup OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"The identity of an unknown repeater port group."
	::= { ciscoRptrGroupObjectID 1 }

cisco2505RptrGroup OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"The authoritative identity of the Cisco 2505 repeater
		port group."
	::= { ciscoRptrGroupObjectID 2 }

cisco2507RptrGroup OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"The authoritative identity of the Cisco 2507 repeater
		port group."
	::= { ciscoRptrGroupObjectID 3 }

cisco2516RptrGroup OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"The authoritative identity of the Cisco 2516 repeater
		port group."
	::= { ciscoRptrGroupObjectID 4 }

ciscoWsx5020RptrGroup OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"The authoritative identity of the wsx5020 repeater
		port group."
	::= { ciscoRptrGroupObjectID 5 }

--
--  Administrative assignments for chip sets
--

ciscoChipSets OBJECT-IDENTITY
	STATUS	current
	DESCRIPTION
		"Numerous media-specific MIBS have an object, defined as
		an OBJECT IDENTIFIER, which is the identity of the chipset
		realizing the interface.  Cisco-specific chipsets have their 
		OBJECT IDENTIFIERS assigned under this subtree."
	::= { ciscoAdmin 3 }

ciscoChipSetSaint1 OBJECT-IDENTITY
	STATUS current
	DESCRIPTION
		"The identity of the Rev 1 SAINT ethernet chipset
		manufactured for cisco by LSI Logic."
	::= { ciscoChipSets 1 }

ciscoChipSetSaint2 OBJECT-IDENTITY
	STATUS current
	DESCRIPTION
		"The identity of the Rev 2 SAINT ethernet chipset
		manufactured for cisco by LSI Logic."
	::= { ciscoChipSets 2 }

ciscoChipSetSaint3 OBJECT-IDENTITY
	STATUS current
	DESCRIPTION
		"The identity of the Rev 3 SAINT ethernet chipset
		manufactured for cisco by Plessey."
	::= { ciscoChipSets 3 }

ciscoChipSetSaint4 OBJECT-IDENTITY
	STATUS current
	DESCRIPTION
		"The identity of the Rev 4 SAINT ethernet chipset
		manufactured for cisco by Mitsubishi."
	::= { ciscoChipSets 4 }

END

-- ######################################################

--
-- File: cisco/CISCO-PRODUCTS-MIB.mib
--

-- *****************************************************************
-- CISCO-PRODUCTS-MIB.my:  Cisco Product Object Identifier Assignments
--
--
-- January 1995, Jeffrey T. Johnson
--
-- Copyright (c) 1995-1997, 1998 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************


CISCO-PRODUCTS-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY
		FROM SNMPv2-SMI
	ciscoModules,
	ciscoProducts
		FROM CISCO-SMI;

ciscoProductsMIB MODULE-IDENTITY
	LAST-UPDATED	"9505310000Z"
	ORGANIZATION	"Cisco Systems, Inc."
	CONTACT-INFO
		"       Cisco Systems
			Customer Service

		Postal: 170 W Tasman Drive
			San Jose, CA  95134
			USA

		   Tel: +1 800 553-NETS

		E-mail: cs-snmp@cisco.com"
	DESCRIPTION
		"This module defines the object identifiers that are
		assigned to various hardware platforms, and hence are
		returned as values for sysObjectID"
 	REVISION	"9505310000Z"
  	DESCRIPTION
		"Miscellaneous updates."
	::= { ciscoModules 2 }

-- older cisco routers (i.e. CGS, MGS, AGS) do not have the ability
-- to determine what kind of router they are.  these devices return
-- a sysObjectID value that indicates their configured functionality
ciscoGatewayServer OBJECT IDENTIFIER ::= { ciscoProducts 1 }
ciscoTerminalServer OBJECT IDENTIFIER ::= { ciscoProducts 2 }
ciscoTrouter OBJECT IDENTIFIER ::= { ciscoProducts 3 }
ciscoProtocolTranslator OBJECT IDENTIFIER ::= { ciscoProducts 4 }

-- newer devices return a sysObjectID value that corresponds to the
-- device model number
ciscoIGS OBJECT IDENTIFIER ::= { ciscoProducts 5 }
cisco3000 OBJECT IDENTIFIER ::= { ciscoProducts 6 }
cisco4000 OBJECT IDENTIFIER ::= { ciscoProducts 7 }
cisco7000 OBJECT IDENTIFIER ::= { ciscoProducts 8 }
ciscoCS500 OBJECT IDENTIFIER ::= { ciscoProducts 9 }
cisco2000 OBJECT IDENTIFIER ::= { ciscoProducts 10 }

-- note well that an AGS+ must contain a cBus controller in order to
-- know that it is an AGS+, otherwise it is unable to determine what
-- kind of device it is, and returns one of the functionality-based
-- sysObjectID values from above
ciscoAGSplus OBJECT IDENTIFIER ::= { ciscoProducts 11 }

cisco7010 OBJECT IDENTIFIER ::= { ciscoProducts 12 }
cisco2500 OBJECT IDENTIFIER ::= { ciscoProducts 13 }
cisco4500 OBJECT IDENTIFIER ::= { ciscoProducts 14 }
cisco2102 OBJECT IDENTIFIER ::= { ciscoProducts 15 }
cisco2202 OBJECT IDENTIFIER ::= { ciscoProducts 16 }
cisco2501 OBJECT IDENTIFIER ::= { ciscoProducts 17 }
cisco2502 OBJECT IDENTIFIER ::= { ciscoProducts 18 }
cisco2503 OBJECT IDENTIFIER ::= { ciscoProducts 19 }
cisco2504 OBJECT IDENTIFIER ::= { ciscoProducts 20 }
cisco2505 OBJECT IDENTIFIER ::= { ciscoProducts 21 }
cisco2506 OBJECT IDENTIFIER ::= { ciscoProducts 22 }
cisco2507 OBJECT IDENTIFIER ::= { ciscoProducts 23 }
cisco2508 OBJECT IDENTIFIER ::= { ciscoProducts 24 }
cisco2509 OBJECT IDENTIFIER ::= { ciscoProducts 25 }
cisco2510 OBJECT IDENTIFIER ::= { ciscoProducts 26 }
cisco2511 OBJECT IDENTIFIER ::= { ciscoProducts 27 }
cisco2512 OBJECT IDENTIFIER ::= { ciscoProducts 28 }
cisco2513 OBJECT IDENTIFIER ::= { ciscoProducts 29 }
cisco2514 OBJECT IDENTIFIER ::= { ciscoProducts 30 }
cisco2515 OBJECT IDENTIFIER ::= { ciscoProducts 31 }
cisco3101 OBJECT IDENTIFIER ::= { ciscoProducts 32 }
cisco3102 OBJECT IDENTIFIER ::= { ciscoProducts 33 }
cisco3103 OBJECT IDENTIFIER ::= { ciscoProducts 34 }
cisco3104 OBJECT IDENTIFIER ::= { ciscoProducts 35 }
cisco3202 OBJECT IDENTIFIER ::= { ciscoProducts 36 }
cisco3204 OBJECT IDENTIFIER ::= { ciscoProducts 37 }
ciscoAccessProRC OBJECT IDENTIFIER ::= { ciscoProducts 38 }
ciscoAccessProEC OBJECT IDENTIFIER ::= { ciscoProducts 39 }
cisco1000 OBJECT IDENTIFIER ::= { ciscoProducts 40 }
cisco1003 OBJECT IDENTIFIER ::= { ciscoProducts 41 }
cisco2516 OBJECT IDENTIFIER ::= { ciscoProducts 42 }
cisco1020 OBJECT IDENTIFIER ::= { ciscoProducts 43 }
cisco1004 OBJECT IDENTIFIER ::= { ciscoProducts 44 }
cisco7507 OBJECT IDENTIFIER ::= { ciscoProducts 45 }
cisco7513 OBJECT IDENTIFIER ::= { ciscoProducts 46 }
cisco7505 OBJECT IDENTIFIER ::= { ciscoProducts 48 }
cisco1005 OBJECT IDENTIFIER ::= { ciscoProducts 49 }
cisco4700 OBJECT IDENTIFIER ::= { ciscoProducts 50 }
ciscoPro1003 OBJECT IDENTIFIER ::= { ciscoProducts 51 }
ciscoPro1004 OBJECT IDENTIFIER ::= { ciscoProducts 52 }
ciscoPro1005 OBJECT IDENTIFIER ::= { ciscoProducts 53 }
ciscoPro2500PCE OBJECT IDENTIFIER ::= { ciscoProducts 55 }
ciscoPro2501 OBJECT IDENTIFIER ::= { ciscoProducts 56 }
ciscoPro2503 OBJECT IDENTIFIER ::= { ciscoProducts 57 }
ciscoPro2505 OBJECT IDENTIFIER ::= { ciscoProducts 58 }
ciscoPro2507 OBJECT IDENTIFIER ::= { ciscoProducts 59 }
ciscoPro2509 OBJECT IDENTIFIER ::= { ciscoProducts 60 }
ciscoPro2511 OBJECT IDENTIFIER ::= { ciscoProducts 61 }
ciscoPro2514 OBJECT IDENTIFIER ::= { ciscoProducts 62 }
ciscoPro2516 OBJECT IDENTIFIER ::= { ciscoProducts 63 }
ciscoPro2519 OBJECT IDENTIFIER ::= { ciscoProducts 64 }
ciscoPro4500 OBJECT IDENTIFIER ::= { ciscoProducts 66 }
cisco2517 OBJECT IDENTIFIER ::= { ciscoProducts 67 }
cisco2518 OBJECT IDENTIFIER ::= { ciscoProducts 68 }
cisco2519 OBJECT IDENTIFIER ::= { ciscoProducts 69 }
cisco2520 OBJECT IDENTIFIER ::= { ciscoProducts 70 }
cisco2521 OBJECT IDENTIFIER ::= { ciscoProducts 71 }
cisco2522 OBJECT IDENTIFIER ::= { ciscoProducts 72 }
cisco2523 OBJECT IDENTIFIER ::= { ciscoProducts 73 }
cisco2524 OBJECT IDENTIFIER ::= { ciscoProducts 74 }
cisco2525 OBJECT IDENTIFIER ::= { ciscoProducts 75 }
ciscoPro751 OBJECT IDENTIFIER ::= { ciscoProducts 76 }
ciscoPro752 OBJECT IDENTIFIER ::= { ciscoProducts 77 }
ciscoPro753 OBJECT IDENTIFIER ::= { ciscoProducts 78 }
cisco751 OBJECT IDENTIFIER ::= { ciscoProducts 81 }
cisco752 OBJECT IDENTIFIER ::= { ciscoProducts 82 }
cisco753 OBJECT IDENTIFIER ::= { ciscoProducts 83 }
ciscoPro765 OBJECT IDENTIFIER ::= { ciscoProducts 92 }
ciscoPro766 OBJECT IDENTIFIER ::= { ciscoProducts 93 }
cisco761 OBJECT IDENTIFIER ::= { ciscoProducts 98 }
cisco762 OBJECT IDENTIFIER ::= { ciscoProducts 99 }
cisco765 OBJECT IDENTIFIER ::= { ciscoProducts 102 }
cisco766 OBJECT IDENTIFIER ::= { ciscoProducts 103 }
ciscoPro2520 OBJECT IDENTIFIER ::= { ciscoProducts 104 }
ciscoPro2522 OBJECT IDENTIFIER ::= { ciscoProducts 105 }
ciscoPro2524 OBJECT IDENTIFIER ::= { ciscoProducts 106 }
ciscoLS1010 OBJECT IDENTIFIER ::= { ciscoProducts 107 }
cisco7206 OBJECT IDENTIFIER ::= { ciscoProducts 108 }
ciscoAS5200 OBJECT IDENTIFIER ::= { ciscoProducts 109 }
cisco3640 OBJECT IDENTIFIER ::= { ciscoProducts 110 }
cisco1601 OBJECT IDENTIFIER ::= { ciscoProducts 113 }
cisco1602 OBJECT IDENTIFIER ::= { ciscoProducts 114 }
cisco1603 OBJECT IDENTIFIER ::= { ciscoProducts 115 }
cisco1604 OBJECT IDENTIFIER ::= { ciscoProducts 116 }
ciscoPro1601 OBJECT IDENTIFIER ::= { ciscoProducts 117 }
ciscoPro1602 OBJECT IDENTIFIER ::= { ciscoProducts 118 }
ciscoPro1603 OBJECT IDENTIFIER ::= { ciscoProducts 119 }
ciscoPro1604 OBJECT IDENTIFIER ::= { ciscoProducts 120 }
cisco3620 OBJECT IDENTIFIER ::= { ciscoProducts 122 }
cisco7204 OBJECT IDENTIFIER ::= { ciscoProducts 125 }
cisco771 OBJECT IDENTIFIER ::= { ciscoProducts 126 }	
cisco772 OBJECT IDENTIFIER ::= { ciscoProducts 127 }
cisco775 OBJECT IDENTIFIER ::= { ciscoProducts 128 }
cisco776 OBJECT IDENTIFIER ::= { ciscoProducts 129 }
ciscoPro2502 OBJECT IDENTIFIER ::= { ciscoProducts 130 }
ciscoPro2504 OBJECT IDENTIFIER ::= { ciscoProducts 131 }
ciscoPro2506 OBJECT IDENTIFIER ::= { ciscoProducts 132 }
ciscoPro2508 OBJECT IDENTIFIER ::= { ciscoProducts 133 }
ciscoPro2510 OBJECT IDENTIFIER ::= { ciscoProducts 134 }
ciscoPro2512 OBJECT IDENTIFIER ::= { ciscoProducts 135 }
ciscoPro2513 OBJECT IDENTIFIER ::= { ciscoProducts 136 }
ciscoPro2515 OBJECT IDENTIFIER ::= { ciscoProducts 137 }
ciscoPro2517 OBJECT IDENTIFIER ::= { ciscoProducts 138 }
ciscoPro2518 OBJECT IDENTIFIER ::= { ciscoProducts 139 }
ciscoPro2523 OBJECT IDENTIFIER ::= { ciscoProducts 140 }
ciscoPro2525 OBJECT IDENTIFIER ::= { ciscoProducts 141 }
ciscoPro4700 OBJECT IDENTIFIER ::= { ciscoProducts 142 }
ciscoPro316T OBJECT IDENTIFIER ::= { ciscoProducts 147 }
ciscoPro316C OBJECT IDENTIFIER ::= { ciscoProducts 148 }
ciscoPro3116 OBJECT IDENTIFIER ::= { ciscoProducts 149 }
catalyst116T OBJECT IDENTIFIER ::= { ciscoProducts 150 }
catalyst116C OBJECT IDENTIFIER ::= { ciscoProducts 151 }
catalyst1116 OBJECT IDENTIFIER ::= { ciscoProducts 152 }
ciscoAS2509RJ OBJECT IDENTIFIER ::= { ciscoProducts 153 }
ciscoAS2511RJ OBJECT IDENTIFIER ::= { ciscoProducts 154 }
ciscoMC3810 OBJECT IDENTIFIER ::= { ciscoProducts 157 }
cisco1503 OBJECT IDENTIFIER ::= { ciscoProducts 160 }
cisco1502 OBJECT IDENTIFIER ::= { ciscoProducts 161 }
ciscoAS5300 OBJECT IDENTIFIER ::= { ciscoProducts 162 }
ciscoLS1015 OBJECT IDENTIFIER ::= { ciscoProducts 164 }	
cisco2501FRADFX OBJECT IDENTIFIER ::= { ciscoProducts 165 }
cisco2501LANFRADFX OBJECT IDENTIFIER ::= { ciscoProducts 166 }
cisco2502LANFRADFX OBJECT IDENTIFIER ::= { ciscoProducts 167 }
ciscoWSX5302 OBJECT IDENTIFIER ::= { ciscoProducts 168 }
ciscoFastHub216T OBJECT IDENTIFIER ::= { ciscoProducts 169 }
catalyst2908 OBJECT IDENTIFIER ::= { ciscoProducts 170 }
catalyst2916 OBJECT IDENTIFIER ::= { ciscoProducts 171 }
cisco1605 OBJECT IDENTIFIER ::= { ciscoProducts 172 }
cisco12012 OBJECT IDENTIFIER ::= { ciscoProducts 173 }
catalyst1912C OBJECT IDENTIFIER ::= { ciscoProducts 175 }
ciscoMicroWebServer2 OBJECT IDENTIFIER ::= { ciscoProducts 176 }
ciscoFastHubBMMTX OBJECT IDENTIFIER ::= { ciscoProducts 177 }
ciscoFastHubBMMFX OBJECT IDENTIFIER ::= { ciscoProducts 178 }
cisco12004 OBJECT IDENTIFIER ::= { ciscoProducts 181 }
cisco12008 OBJECT IDENTIFIER ::= { ciscoProducts 182 }
catalyst2924 OBJECT IDENTIFIER ::= { ciscoProducts 183 }
catalyst2924C OBJECT IDENTIFIER ::= { ciscoProducts 184 }

END

-- ######################################################

--
-- File: cisco/CISCO-TCP-MIB.mib
--

-- *****************************************************************
-- CISCO-TCP-MIB.my:  Cisco Enterprise TCP MIB file
--
-- July 1994, Jeffrey T. Johnson
--
-- Copyright (c) 1994 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************
--

CISCO-TCP-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY,
	OBJECT-TYPE,
	TimeTicks,
	Integer32,
	Counter32
		FROM SNMPv2-SMI
	MODULE-COMPLIANCE,
	OBJECT-GROUP
		FROM SNMPv2-CONF
	tcpConnEntry
		FROM TCP-MIB
	ciscoMgmt
		FROM CISCO-SMI;

ciscoTcpMIB MODULE-IDENTITY
	LAST-UPDATED	"9612030000Z"
	ORGANIZATION	"Cisco Systems, Inc."
	CONTACT-INFO
		"	Cisco Systems
			Customer Service

		Postal:	170 W. Tasman Drive
			San Jose, CA  95134
			USA

		   Tel: +1 800 553-NETS

		E-mail: cs-snmp@cisco.com"
	DESCRIPTION
		"An extension to the IETF MIB module for managing
		TCP implementations"
	REVISION	"9612030000Z"
	DESCRIPTION
		"Import tcpConnEntry from TCP-MIB instead of RFC1213-MIB"
	REVISION	"9407210000Z"
	DESCRIPTION
		"Initial version of this MIB module."
	::= { ciscoMgmt 6 }

ciscoTcpMIBObjects OBJECT IDENTIFIER ::= { ciscoTcpMIB 1 }

-- Local TCP Connection Table
-- This table augments the tcpConnTable defined in the TCP-MIB

ciscoTcpConnTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF CiscoTcpConnEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"A table containing TCP connection-specific information."
	::= { ciscoTcpMIBObjects 1 }

ciscoTcpConnEntry OBJECT-TYPE
	SYNTAX     CiscoTcpConnEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"Additional information about a particular current TCP
		connection beyond that provided by the TCP-MIB tcpConnEntry.
		An object of this type is transient, in that it ceases to
		exist when (or soon after) the connection makes the transition
		to the CLOSED state."
	AUGMENTS { tcpConnEntry }
	::= { ciscoTcpConnTable 1 }

CiscoTcpConnEntry ::=
	SEQUENCE {
		ciscoTcpConnInBytes	Counter32,
		ciscoTcpConnOutBytes	Counter32,
		ciscoTcpConnInPkts	Counter32,
		ciscoTcpConnOutPkts	Counter32,
		ciscoTcpConnElapsed	TimeTicks,
		ciscoTcpConnSRTT	Integer32
	}

ciscoTcpConnInBytes OBJECT-TYPE
	SYNTAX     Counter32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Number of bytes that have been input on this TCP
		connection."
	::= { ciscoTcpConnEntry 1 }

ciscoTcpConnOutBytes OBJECT-TYPE
	SYNTAX     Counter32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Number of bytes that have been output on this TCP
		connection."
	::= { ciscoTcpConnEntry 2 }

ciscoTcpConnInPkts OBJECT-TYPE
	SYNTAX     Counter32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Number of packets that have been input on this TCP
		connection."
	::= { ciscoTcpConnEntry 3 }

ciscoTcpConnOutPkts OBJECT-TYPE
	SYNTAX     Counter32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Number of packets that have been output on this TCP
		connection."
	::= { ciscoTcpConnEntry 4 }

ciscoTcpConnElapsed OBJECT-TYPE
	SYNTAX     TimeTicks
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Amount of time this TCP connection has been established."
	::= { ciscoTcpConnEntry 5 }

ciscoTcpConnSRTT OBJECT-TYPE
	SYNTAX     Integer32
	UNITS	   "milliseconds"
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"`Smoothed' round-trip time for this TCP connection."
	::= { ciscoTcpConnEntry 6 }


ciscoTcpMIBTraps OBJECT IDENTIFIER ::= { ciscoTcpMIB 2 }
-- no traps are currently defined

-- conformance information

ciscoTcpMIBConformance	OBJECT IDENTIFIER ::= { ciscoTcpMIB 3 }
ciscoTcpMIBCompliances	OBJECT IDENTIFIER ::= { ciscoTcpMIBConformance 1 }
ciscoTcpMIBGroups	OBJECT IDENTIFIER ::= { ciscoTcpMIBConformance 2 }


-- compliance statement

ciscoTcpMIBCompliance MODULE-COMPLIANCE
	STATUS	current
	DESCRIPTION
		"The compliance statement for entities which implement
		the Cisco TCP MIB"
	MODULE	-- this module
		MANDATORY-GROUPS { ciscoTcpMIBGroup }
	::= { ciscoTcpMIBCompliances 1 }

-- units of conformance

ciscoTcpMIBGroup OBJECT-GROUP
	OBJECTS {
		ciscoTcpConnInBytes,
		ciscoTcpConnOutBytes,
		ciscoTcpConnInPkts,
		ciscoTcpConnOutPkts,
		ciscoTcpConnElapsed,
		ciscoTcpConnSRTT
	}
	STATUS	current
	DESCRIPTION
		"A collection of objects providing TCP connection
		monitoring."
	::= { ciscoTcpMIBGroups 1 }
	
END

-- ######################################################

--
-- File: cisco/CISCO-FLASH-MIB.mib
--

-- *****************************************************************
-- CISCO-FLASH-MIB.my:  Cisco Flash MIB file
--
-- April 1995, Ashwin Baindur
--
-- Copyright (c) 1995-1996 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

CISCO-FLASH-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY,
	OBJECT-TYPE,
	NOTIFICATION-TYPE,
	IpAddress,
	Integer32,
	Gauge32,
	Counter32,
	TimeTicks
		FROM SNMPv2-SMI
	TEXTUAL-CONVENTION, 
	DisplayString, 
	TruthValue,
	TimeStamp,
	InstancePointer,
	RowStatus
		FROM SNMPv2-TC
	MODULE-COMPLIANCE,
	OBJECT-GROUP
		FROM SNMPv2-CONF
	ciscoMgmt
		FROM CISCO-SMI;

ciscoFlashMIB  MODULE-IDENTITY
	LAST-UPDATED    "9604170000Z"
	ORGANIZATION	"Cisco Systems, Inc."
	CONTACT-INFO
		"	Cisco Systems
			Customer Service

		Postal:	170 W. Tasman Drive
			San Jose, CA  95134
			USA

		Tel: +1 800 553-NETS

		E-mail:	cs-snmp@cisco.com"
	DESCRIPTION
		""
	REVISION	"9604170000Z"
	DESCRIPTION
		"Add enumerations to objects in ciscoFlashMiscOpTable
		 to support formatting of flash devices."
	REVISION        "9510180000Z"
	DESCRIPTION
		"Add enumerations to a couple objects, and clarify
		several object DESCRIPTIONs."
	REVISION        "9508150000Z"
	DESCRIPTION
		"Specify a correct (non-negative) range for several
		index objects."
	REVISION	"9504290000Z"
	DESCRIPTION
		"Miscellaneous updates, including updated description of
		ciscoFlashDeviceCard object."
	REVISION	"9501130000Z"
	DESCRIPTION
		"Initial version of Flash operations MIB module."
	::= { ciscoMgmt 10 }

FlashChipCode ::= TEXTUAL-CONVENTION
	DISPLAY-HINT "x:x"
	STATUS	current
	DESCRIPTION
		"The chip code for a Flash device consists of a 2 digit
		manufacturer code and a 2 digit device code. 
		The upper 2 digits are the manufacturer code, and the
		lower two are the device code.
		Since programming algorithms differ from chip type to
		chip type, the chip code is used to determine which 
		algorithms to use (and thereby whether the chip is
		supported in the first place).
		"
	SYNTAX	OCTET STRING (SIZE (2))

-- END OF TC

ChecksumString ::= TEXTUAL-CONVENTION
	DISPLAY-HINT "x"
	STATUS	current
	DESCRIPTION
		"Represents the checksum of a file.
		"
	SYNTAX	OCTET STRING

-- END OF TC

ciscoFlashMIBObjects	OBJECT IDENTIFIER ::= { ciscoFlashMIB 1 }

ciscoFlashDevice 	OBJECT IDENTIFIER ::= { ciscoFlashMIBObjects 1 }
ciscoFlashOps 		OBJECT IDENTIFIER ::= { ciscoFlashMIBObjects 2 }
ciscoFlashMIBTrapPrefix	OBJECT IDENTIFIER ::= { ciscoFlashMIBObjects 3 }


--   An overview
--
--   This MIB is organized hierarchically as follows :
--     Device information :
--       * device level info
--       * chip info
--       * partition info
--         * file info (for files within a partition)
--     Operations :
--       * copy operations
--       * partitioning operations
--       * miscellaneous operations
--     Traps
--       * operation completion traps
--       * device change trap
--
--   It is organized into the following groups :
--   Information groups :
--     Device info group (mandatory device information)
--     Device optional info group 
--       The optional device information group contains  objects
--       that depend on optional system features, as well as on 
--       features that may be considered optional at the network 
--       management (NM) application level.
--     Partition information group (mandatory)
--       The partition information group contains objects related
--       to a partition. Note that this group is essential since
--       a device without explicit partitioning is considered to
--       be a device with a single partition spanning the entire 
--       device. Such a model simplifies the view of the device
--       and the definition of the objects.
--     File information group (mandatory)
--       This group contains objects that provide information
--       on each file within a partition.
--     Chip information group (mandatory)
--       The chip information group contains objects required for
--       error diagnosis/investigation.
--
--   Operations groups :
--     File copy operations group (mandatory)
--     Partitioning operations group (optional)
--     Miscellaneous operations group (optional)
--


--  Flash Device level information

ciscoFlashDevicesSupported   OBJECT-TYPE
	SYNTAX	Integer32 (1..32)
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Number of Flash devices supported by the system.
		If the system does not support any Flash devices, this
		MIB will not be loaded on that system. The value of this
		object will therefore be atleast 1.
		"
	::= { ciscoFlashDevice 1 }
       
ciscoFlashDeviceTable OBJECT-TYPE
	SYNTAX	SEQUENCE OF CiscoFlashDeviceEntry
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"Table of Flash device properties for each initialized 
		Flash device. Each Flash device installed in a system 
		is detected, sized, and initialized when the system 
		image boots up. 
		For removable Flash devices, the device properties
		will be dynamically deleted and recreated as the
		device is removed and inserted. Note that in this 
		case, the newly inserted device may not be the same as 
		the earlier removed one. The ciscoFlashDeviceInitTime
		object is available for a management station to determine
		the time at which a device was initialized, and thereby
		detect the change of a removable device.
		A removable device that has not been installed will
		also have an entry in this table. This is to let a
		management station know about a removable device that 
		has been removed. Since a removed device obviously
		cannot be sized and initialized, the table entry for 
		such a device will have 
		ciscoFlashDeviceSize equal to zero,
		and the following objects will have
		an indeterminate value:
			ciscoFlashDeviceMinPartitionSize,
			ciscoFlashDeviceMaxPartitions,
			ciscoFlashDevicePartitions, and
			ciscoFlashDeviceChipCount.
		ciscoFlashDeviceRemovable will be
		true to indicate it is removable.
		"
	::= { ciscoFlashDevice 2 }
 
ciscoFlashDeviceEntry OBJECT-TYPE
	SYNTAX	CiscoFlashDeviceEntry
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"An entry in the table of flash device properties for
		each initialized flash device.
		Each entry can be randomly accessed by using 
		ciscoFlashDeviceIndex as an index into the table.
		Note that removable devices will have an entry in
		the table even when they have been removed. However,
		a non-removable device that has not been installed
		will not have an entry in the table.
		"
	INDEX	{ ciscoFlashDeviceIndex }
	::= { ciscoFlashDeviceTable 1 }

CiscoFlashDeviceEntry ::=
	SEQUENCE {
		ciscoFlashDeviceIndex 			Integer32,
		ciscoFlashDeviceSize 			Integer32,
		ciscoFlashDeviceMinPartitionSize 	Integer32,
		ciscoFlashDeviceMaxPartitions		Integer32,
		ciscoFlashDevicePartitions 		Integer32,
		ciscoFlashDeviceChipCount		Integer32,
		ciscoFlashDeviceName 			DisplayString,
		ciscoFlashDeviceDescr 			DisplayString,
		ciscoFlashDeviceController 		DisplayString,
		ciscoFlashDeviceCard 			InstancePointer,
		ciscoFlashDeviceProgrammingJumper	INTEGER,
		ciscoFlashDeviceInitTime    		TimeStamp,
		ciscoFlashDeviceRemovable 		TruthValue
	}

ciscoFlashDeviceIndex OBJECT-TYPE
	SYNTAX	Integer32 (1..32)
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"Flash device sequence number to index within the
		table of initialized flash devices.
		The lowest value should be 1. The highest should be 
		less than or equal to the value of the 
		ciscoFlashDevicesSupported object.
		"
	::= { ciscoFlashDeviceEntry 1 }

ciscoFlashDeviceSize OBJECT-TYPE
	SYNTAX	Integer32 
	UNITS      "bytes"
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Total size of the Flash device.
		For a removable device, the size will be zero if
		the device has been removed.
		"
	::= { ciscoFlashDeviceEntry 2 }

ciscoFlashDeviceMinPartitionSize OBJECT-TYPE
	SYNTAX	Integer32 
	UNITS      "bytes"
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"This object will give the minimum partition size 
		supported for this device. For systems that execute code
		directly out of Flash, the minimum partition size needs
		to be the bank size. (Bank size is equal to the size of a 
		chip multiplied by the width of the device. In most cases, 
		the device width is 4 bytes, and so the bank size would be 
		four times the size of a chip). This has to be so because
		all programming commands affect the operation of an
		entire chip (in our case, an entire bank because all
		operations are done on the entire width of the device)
		even though the actual command may be localized to a small
		portion of each chip. So when executing code out of Flash,
		one needs to be able to write and erase some portion of 
		Flash without affecting the code execution.
		For systems that execute code out of DRAM or ROM, it is
		possible to partition Flash with a finer granularity (for 
		eg., at erase sector boundaries) if the system code supports
		such granularity. 

		This object will let a management entity know the
		minimum partition size as defined by the system.
		If the system does not support partitioning, the value
		will be equal to the device size in ciscoFlashDeviceSize.
		The maximum number of partitions that could be configured
		will be equal to the minimum of 
		ciscoFlashDeviceMaxPartitions
		and
		(ciscoFlashDeviceSize / ciscoFlashDeviceMinPartitionSize).
		"
	::= { ciscoFlashDeviceEntry 3 }

ciscoFlashDeviceMaxPartitions  OBJECT-TYPE
	SYNTAX	Integer32  (1..8)
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Max number of partitions supported by the system for 
		this Flash device. Default will be 1, which actually 
		means that partitioning is not supported. Note that
		this value will be defined by system limitations, not
		by the flash device itself (for eg., the system may 
		impose a limit of 2 partitions even though the device
		may be large enough to be partitioned into 4 based on
		the smallest partition unit supported).
		On systems that execute code out of Flash, partitioning
		is a way of creating multiple file systems in the Flash 
		device so that writing into or erasing of one file system 
		can be done while executing code residing in another file 
		system.
		For systems executing code out of DRAM, partitioning
		gives a way of sub-dividing a large Flash device for
		easier management of files.
		"
	::= { ciscoFlashDeviceEntry 4 }
        
ciscoFlashDevicePartitions OBJECT-TYPE
	SYNTAX	Integer32 
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Flash device partitions actually present. Number of 
		partitions cannot exceed the minimum of
		ciscoFlashDeviceMaxPartitions
		and
		(ciscoFlashDeviceSize / ciscoFlashDeviceMinPartitionSize).
		Will be equal to at least 1, the case where the partition
		spans the entire device (actually no partitioning).
		A partition will contain one or more minimum partition
		units (where a minimum partition unit is defined by
		ciscoFlashDeviceMinPartitionSize).
		"
	::= { ciscoFlashDeviceEntry 5 }

ciscoFlashDeviceChipCount OBJECT-TYPE
	SYNTAX	Integer32  (1..64)
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Total number of chips within the Flash device.
		The purpose of this object is to provide information
		upfront to a management station on how much chip info
		to expect and possibly help double check the chip index
		against an upper limit when randomly retrieving chip
		info for a partition.
		"
	::= { ciscoFlashDeviceEntry 6 }

ciscoFlashDeviceName OBJECT-TYPE
	SYNTAX	DisplayString (SIZE (0..16)) 
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Flash device name. This name is used to refer to the
		device within the system. Flash operations get directed 
		to a device based on this name.
		The system has a concept of a default device.
		This would be the primary or most used device in case of 
		multiple devices. The system directs an operation to the 
		default device whenever a device name is not specified.
		The device name is therefore mandatory except when the 
		operation is being done on the default device, or,
		the system supports only a single Flash device.
		The device name will always be available for a 
		removable device, even when the device has been removed.
		"
	::= { ciscoFlashDeviceEntry 7 }

ciscoFlashDeviceDescr OBJECT-TYPE
	SYNTAX	DisplayString (SIZE (0..64)) 
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Description of a Flash device. The description is meant 
		to explain what the Flash device and its purpose is.
		Current values are:
		  System flash - for the primary Flash used to store full
				 system images.
		  Boot flash   - for the secondary Flash used to store 
				 bootstrap images.
		The ciscoFlashDeviceDescr, ciscoFlashDeviceController 
		(if applicable), and ciscoFlashDeviceCard objects are 
		expected to collectively give all information about a 
		Flash device.
		The device description will always be available for a 
		removable device, even when the device has been removed.
		"
	::= { ciscoFlashDeviceEntry 8 }

ciscoFlashDeviceController OBJECT-TYPE
	SYNTAX	DisplayString (SIZE (0..64)) 
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Flash device controller. The h/w card that actually
		controls Flash read/write/erase. Relevant for the AGS+
		systems where Flash may be controlled by the MC+, STR or 
		the ENVM cards, cards that may not actually contain the
		Flash chips.
		For systems that have removable PCMCIA flash cards that
		are controlled by a PCMCIA controller chip, this object 
		may contain a description of that controller chip.
		Where irrelevant (Flash is a direct memory mapped device
		accessed directly by the main processor), this object will
		have an empty (NULL) string.
		"
	::= { ciscoFlashDeviceEntry 9 }

ciscoFlashDeviceCard OBJECT-TYPE
	SYNTAX	InstancePointer 
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"This object will point to an instance of a card entry
		in the cardTable. The card entry will give details about
		the card on which the Flash device is actually located.
		For most systems, this is usually the main processor board.
		On the AGS+ systems, Flash is located on a separate multibus
		card such as the MC.
		This object will therefore be used to essentially index 
		into cardTable to retrieve details about the card such as 
		cardDescr, cardSlotNumber, etc.
		"
	::= { ciscoFlashDeviceEntry 10 }

ciscoFlashDeviceProgrammingJumper OBJECT-TYPE
	SYNTAX	INTEGER 
		{  
		installed(1),
		notInstalled(2),
		unknown(3)
		}
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"This object gives the state of a jumper (if present and can be
		determined) that controls the programming voltage called Vpp
		to the Flash device. Vpp is required for programming (erasing
		and writing) Flash. For certain older technology chips it is
		also required for identifying the chips (which in turn is
		required to identify which programming algorithms to use;
		different chips require different algorithms and commands).
		The purpose of the jumper, on systems where it is available, 
		is to write protect a Flash device.
		On most of the newer remote access routers, this jumper is 
		unavailable since users are not expected to visit remote sites
		just to install and remove the jumpers when upgrading software
		in the Flash device. The unknown(3) value will be returned for 
		such systems and can be interpreted to mean that a programming
		jumper is not present or not required on those systems.
		On systems where the programming jumper state can be read back
		via a hardware register, the installed(1) or notInstalled(2) 
		value will be returned.
		This object is expected to be used in conjunction with the
		ciscoFlashPartitionStatus object whenever that object has
		the readOnly(1) value. In such a case, this object will 
		indicate whether the programming jumper is a possible reason 
		for the readOnly state.
		"
	::= { ciscoFlashDeviceEntry 11 }

ciscoFlashDeviceInitTime OBJECT-TYPE
	SYNTAX	TimeStamp 
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"System time at which device was initialized.
		For fixed devices, this will be the system time at 
		boot up.
		For removable devices, it will be the time at which 
		the device was inserted, which may be boot up time, 
		or a later time (if device was inserted later).
		If a device (fixed or removable) was repartitioned,
		it will be the time of repartitioning.
		The purpose of this object is to help a management
		station determine if a removable device has been
		changed. The application should retrieve this
		object prior to any operation and compare with
		the previously retrieved value.
		Note that this time will not be real time but a
		running time maintained by the system. This running
		time starts from zero when the system boots up.
		For a removable device that has been removed, this
		value will be zero.
		"
	::= { ciscoFlashDeviceEntry 12 }

ciscoFlashDeviceRemovable OBJECT-TYPE
	SYNTAX	TruthValue
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Whether Flash device is removable. Generally, only PCMCIA
		Flash cards will be treated as removable. Socketed Flash
		chips and Flash SIMM modules will not be treated as removable.
		Simply put, only those Flash devices that can be inserted 
		or removed without opening the hardware casing will be 
		considered removable. 
		Further, removable Flash devices are expected to have
		the necessary hardware support - 
		  1. on-line removal and insertion
		  2. interrupt generation on removal or insertion.
		"
	::= { ciscoFlashDeviceEntry 13 }


--  Flash device sub group : Chip level information

ciscoFlashChips OBJECT IDENTIFIER ::= { ciscoFlashDevice 3 }

ciscoFlashChipTable  OBJECT-TYPE
	SYNTAX	SEQUENCE OF CiscoFlashChipEntry
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"Table of Flash device chip properties for each
		initialized Flash device.
		This table is meant primarily for aiding error
		diagnosis.
		"
	::= { ciscoFlashChips 1 }

ciscoFlashChipEntry  OBJECT-TYPE
	SYNTAX	CiscoFlashChipEntry
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"An entry in the table of chip info for each 
		flash device initialized in the system.
		An entry is indexed by two objects - the
		device index and the chip index within that
		device.
		"
	INDEX   {  ciscoFlashDeviceIndex,
		   ciscoFlashChipIndex 
                }
	::= { ciscoFlashChipTable 1 }
 
CiscoFlashChipEntry ::=
	SEQUENCE {
		ciscoFlashChipIndex		Integer32,
		ciscoFlashChipCode		FlashChipCode,
		ciscoFlashChipDescr 		DisplayString,
		ciscoFlashChipWriteRetries	Counter32,
		ciscoFlashChipEraseRetries	Counter32,
		ciscoFlashChipMaxWriteRetries	Integer32,
		ciscoFlashChipMaxEraseRetries	Integer32
	}

ciscoFlashChipIndex OBJECT-TYPE
	SYNTAX	Integer32 (1..64)
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"Chip sequence number within selected flash device.
		Used to index within chip info table.
		Value starts from 1 and should not be greater than
		ciscoFlashDeviceChipCount for that device.
		When retrieving chip information for chips within a
		partition, the sequence number should lie between 
		ciscoFlashPartitionStartChip & ciscoFlashPartitionEndChip
		(both inclusive).
		"
	::= { ciscoFlashChipEntry 1 }

ciscoFlashChipCode OBJECT-TYPE
	SYNTAX	FlashChipCode
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Manufacturer and device code for a chip.
		Lower byte will contain the device code.
		Upper byte will contain the manufacturer code.
		If a chip code is unknown because it could not
		be queried out of the chip, the value of this
		object will be 00:00.
		"
	::= { ciscoFlashChipEntry 2 }

ciscoFlashChipDescr OBJECT-TYPE
	SYNTAX	DisplayString (SIZE (0..32))
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Flash chip name corresponding to the chip code.
		The name will contain the manufacturer and the
		chip type. It will be of the form :
		  Intel 27F008SA.
		In the case where a chip code is unknown, this
		object will be an empty (NULL) string.
		In the case where the chip code is known but the
		chip is not supported by the system, this object
		will be an empty (NULL) string. 
		A management station is therefore expected to use the
		chip code and the chip description in conjunction 
		to provide additional information whenever the
		ciscoFlashPartitionStatus object has the readOnly(1)
		value.
		"
	::= { ciscoFlashChipEntry 3 }


ciscoFlashChipWriteRetries OBJECT-TYPE
	SYNTAX	Counter32 
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"This object will provide a cumulative count
		(since last system boot up or initialization) of 
		the number of write retries that were done in the chip.
		If no writes have been done to Flash, the count
		will be zero. Typically, a maximum of 25 retries are 
		done on a single location before flagging a write
		error.
		A management station is expected to get this object
		for each chip in a partition after a write failure
		in that partition. To keep a track of retries for
		a given write operation, the management station would 
		have to retrieve the values for the concerned chips 
		before and after any write operation.
		"
	::= { ciscoFlashChipEntry 4 }


ciscoFlashChipEraseRetries OBJECT-TYPE
	SYNTAX	Counter32 
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"This object will provide a cumulative count
		(since last system boot up or initialization) of 
		the number of erase retries that were done in the chip.
		Typically, a maximum of 2000 retries are done in a 
		single erase zone (which may be a full chip or a 
		portion, depending on the chip technology) before 
		flagging an erase error.
		A management station is expected to get this object
		for each chip in a partition after an erase failure
		in that partition. To keep a track of retries for
		a given erase operation, the management station would 
		have to retrieve the values for the concerned chips 
		before and after any erase operation.
		Note that erase may be done through an independent
		command, or through a copy-to-flash command.
		"
	::= { ciscoFlashChipEntry 5 }

ciscoFlashChipMaxWriteRetries OBJECT-TYPE
	SYNTAX	Integer32 
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"The maximum number of write retries done at any
		single location before declaring a write failure.
		"
	::= { ciscoFlashChipEntry 6 }


ciscoFlashChipMaxEraseRetries OBJECT-TYPE
	SYNTAX	Integer32 
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"The maximum number of erase retries done within
		an erase sector before declaring an erase failure.
		"
	::= { ciscoFlashChipEntry 7 }


--  Flash device sub group : Partition level information

--  Flash Partition level information :
--     A flash partition is a logical sub-division of a flash
--     device and may or may not be equal to the entire device
--     itself. When there is no explicit partitioning done,
--     a single partition is assumed to exist, spanning the
--     entire device.
--     Partitioning has some restrictions :
--       * a partition must always start and end at the boundary of 
--         a system defined minimum unit. Therefore a device must 
--         have atleast two such minimum units in order to be partitioned.
--       * existing files and file systems on a device always
--         override any partitioning commands when it comes to
--         partitioning a Flash device. In other words, the existence
--         or configuration of partitions in a Flash device is always 
--         first determined by the location of existing files in
--         the device.
--       * partitioning of a device cannot be changed if it
--         can cause loss of existing files in a partition.
--         Those files have to be explicitly erased (by erasing the
--         partition containing them).

ciscoFlashPartitions OBJECT IDENTIFIER ::= { ciscoFlashDevice 4 }

ciscoFlashPartitionTable OBJECT-TYPE
	SYNTAX	SEQUENCE OF CiscoFlashPartitionEntry
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"Table of flash device partition properties for each 
		initialized flash partition. Whenever there is no 
		explicit partitioning done, a single partition spanning
		the entire device will be assumed to exist. There will 
		therefore always be atleast one partition on a device.
		"
	::= { ciscoFlashPartitions 1 }
 
ciscoFlashPartitionEntry OBJECT-TYPE
	SYNTAX	CiscoFlashPartitionEntry
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"An entry in the table of flash partition properties 
		for each initialized flash partition. Each entry
		will be indexed by a device number and a partition
		number within the device.
		"
	INDEX   { 
		ciscoFlashDeviceIndex,
		ciscoFlashPartitionIndex 
                }
	::= { ciscoFlashPartitionTable 1 }

CiscoFlashPartitionEntry ::=
	SEQUENCE {
		ciscoFlashPartitionIndex 		Integer32,
		ciscoFlashPartitionStartChip		Integer32,
		ciscoFlashPartitionEndChip		Integer32,
		ciscoFlashPartitionSize 		Integer32,
		ciscoFlashPartitionFreeSpace 		Gauge32,
		ciscoFlashPartitionFileCount 		Integer32,
		ciscoFlashPartitionChecksumAlgorithm 	INTEGER,
		ciscoFlashPartitionStatus		INTEGER,
		ciscoFlashPartitionUpgradeMethod 	INTEGER,
		ciscoFlashPartitionName 		DisplayString,
		ciscoFlashPartitionNeedErasure		TruthValue,
		ciscoFlashPartitionFileNameLength	Integer32
	}

ciscoFlashPartitionIndex OBJECT-TYPE
	SYNTAX	Integer32 (1..8)
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"Flash partition sequence number used to index within
		table of initialized flash partitions.
		"
	::= { ciscoFlashPartitionEntry 1 }

ciscoFlashPartitionStartChip OBJECT-TYPE
	SYNTAX	Integer32 (1..64)
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Chip sequence number of first chip in partition.
		Used as an index into the chip table.
		"
	::= { ciscoFlashPartitionEntry 2 }

ciscoFlashPartitionEndChip OBJECT-TYPE
	SYNTAX	Integer32 (1..64)
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Chip sequence number of last chip in partition.
		Used as an index into the chip table.
		"
	::= { ciscoFlashPartitionEntry 3 }

ciscoFlashPartitionSize OBJECT-TYPE
	SYNTAX	Integer32 
	UNITS      "bytes"
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Flash partition size. It should be an integral
		multiple of ciscoFlashDeviceMinPartitionSize.
		If there is a single partition, this size will be equal
		to ciscoFlashDeviceSize.
		"
	::= { ciscoFlashPartitionEntry 4 }

ciscoFlashPartitionFreeSpace OBJECT-TYPE
	SYNTAX	Gauge32 
	UNITS      "bytes"
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Free space within a Flash partition.
		Note that the actual size of a file in Flash includes 
		a small overhead that represents the file system's 
		file header. 
		Certain file systems may also have a partition or
		device header overhead to be considered when 
		computing the free space.
		Free space will be computed as total partition size 
		less size of all existing files (valid/invalid/deleted 
		files and including file header of each file),
		less size of any partition header, less size of
		header of next file to be copied in. In short, this
		object will give the size of the largest file that
		can be copied in. The management entity will not be
		expected to know or use any overheads such as file
		and partition header lengths, since such overheads 
		may vary from file system to file system.
		Deleted files in Flash do not free up space.
		A partition may have to be erased in order to reclaim 
		the space occupied by files.
		"
	::= { ciscoFlashPartitionEntry 5 }

ciscoFlashPartitionFileCount OBJECT-TYPE
	SYNTAX	Integer32 
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Count of all files in a flash partition. Both 
		good and bad (deleted or invalid checksum) files 
		will be included in this count.
		"
	::= { ciscoFlashPartitionEntry 6 }

ciscoFlashPartitionChecksumAlgorithm OBJECT-TYPE
	SYNTAX	INTEGER 
		{
		simpleChecksum(1),
		undefined(2),
		simpleCRC(3)
		}
		MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Checksum algorithm identifier for checksum method 
		used by the file system. Normally, this would be
		fixed for a particular file system. When a file
		system writes a file to Flash, it checksums the 
		data written. The checksum then serves as a way
		to validate the data read back whenever the file 
		is opened for reading.
		Since there is no way, when using TFTP, to guarantee
		that a network download has been error free (since
		UDP checksums may not have been enabled), this
		object together with the ciscoFlashFileChecksum
		object provides a method for any management station
		to regenerate the checksum of the original file
		on the server and compare checksums to ensure that 
		the file download to Flash was error free.
		simpleChecksum represents a simple 1s complement
		addition of short word values. Other algorithm
		values will be added as necessary.
		"
	::= { ciscoFlashPartitionEntry 7 }

ciscoFlashPartitionStatus OBJECT-TYPE
	SYNTAX	INTEGER 
		{
		readOnly(1),
		runFromFlash(2),
		readWrite(3)
		}
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Flash partition status can be :

		* readOnly if device is not programmable either because
		chips could not be recognized or an erroneous mismatch
		of chips was detected. Chip recognition may fail either
		because the chips are not supported by the system,
		or because the Vpp voltage required to identify chips
		has been disabled via the programming jumper.
		The ciscoFlashDeviceProgrammingJumper, ciscoFlashChipCode, 
		and ciscoFlashChipDescr objects can be examined to get
		more details on the cause of this status
		* runFromFlash (RFF) if current image is running from 
		this partition.
		The ciscoFlashPartitionUpgradeMethod object will then
		indicate whether the Flash Load Helper can be used
		to write a file to this partition or not.

		* readWrite if partition is programmable.
		"
	::= { ciscoFlashPartitionEntry 8 }

ciscoFlashPartitionUpgradeMethod OBJECT-TYPE
	SYNTAX	INTEGER 
		{
		unknown(1),
		rxbootFLH(2),
		direct(3)
		}
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Flash partition upgrade method, ie., method by which
		new files can be downloaded into the partition.
		FLH stands for Flash Load Helper, a feature provided
		on run-from-Flash systems for upgrading Flash. This
		feature uses the bootstrap code in ROMs to help in 
		automatic download.
		This object should be retrieved if the partition 
		status is runFromFlash(2).
		If the partition status	is readOnly(1), the upgrade 
		method would depend on the reason for the readOnly 
		status.	For eg., it may simply be a matter of installing 
		the programming jumper, or it may require execution of a 
		later version of software that supports the Flash chips.

		unknown      - 	the current system image does not know
				how Flash can be programmed. A possible
				method would be to reload the ROM image
				and perform the upgrade manually.
		rxbootFLH    - 	the Flash Load Helper is available to
				download files to Flash. A copy-to-flash
				command can be used and this system image
				will automatically reload the Rxboot image
				in ROM and direct it to carry out the 
				download request.
		direct       - 	will be done directly by this image.
		"
		::= { ciscoFlashPartitionEntry 9 }

ciscoFlashPartitionName OBJECT-TYPE
	SYNTAX	DisplayString (SIZE (0..16)) 
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Flash partition name used to refer to a partition
		by the system. This can be any alpha-numeric character 
		string of the form AAAAAAAAnn, where A represents an 
		optional alpha character and n a numeric character. 
		Any numeric characters must always form the trailing 
		part of the string. The system will strip off the alpha 
		characters and use the numeric portion to map to a 
		partition index.
		Flash operations get directed to a device partition
		based on this name. 
		The system has a concept of a default partition. This 
		would be the first partition in the device. The system 
		directs an operation to the default partition whenever 
		a partition name is not specified.
		The partition name is therefore mandatory except when 
		the operation is being done on the default partition, or
		the device has just one partition (is not partitioned).
		"
	::= { ciscoFlashPartitionEntry 10 }

ciscoFlashPartitionNeedErasure OBJECT-TYPE
	SYNTAX	TruthValue 
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"This object indicates whether a partition requires
		erasure before any write operations can be done in it.
		A management station should therefore retrieve this
		object prior to attempting any write operation.
		A partition requires erasure after it becomes full
		free space left is less than or equal to the
		(filesystem file header size).
		A partition also requires erasure if the system does
		not find the existence of any file system when it
		boots up.
		The partition may be erased explicitly through the 
		erase(5) command, or by using the copyToFlashWithErase(1)
		command.
		If a copyToFlashWithoutErase(2) command is issued
		when this object has the TRUE value, the command
		will fail.
		"
	::= { ciscoFlashPartitionEntry 11 }

ciscoFlashPartitionFileNameLength OBJECT-TYPE
	SYNTAX	Integer32 (1..256)
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Maximum file name length supported by the file
		system.
		Max file name length will depend on the file
		system implemented. Today, all file systems
		support a max length of at least 48 bytes.
		A management entity must use this object when
		prompting a user for, or deriving the Flash file 
		name length.
		"
	::= { ciscoFlashPartitionEntry 12 }


--  Flash partition sub group : File level information

ciscoFlashFiles OBJECT IDENTIFIER ::= { ciscoFlashPartitions 2 }

ciscoFlashFileTable OBJECT-TYPE
	SYNTAX	SEQUENCE OF CiscoFlashFileEntry
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"Table of information for files in a Flash partition.
		"
	::= { ciscoFlashFiles 1 }
 
ciscoFlashFileEntry OBJECT-TYPE
	SYNTAX	CiscoFlashFileEntry
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"An entry in the table of Flash file properties 
		for each initialized Flash partition. Each entry
		represents a file and gives details about the file.
		An entry is indexed using the device number,
		partition number within the device, and file 
		number within the partition.
		"
	INDEX     
		{ 
		ciscoFlashDeviceIndex,
		ciscoFlashPartitionIndex,
		ciscoFlashFileIndex 
		}
	::= { ciscoFlashFileTable 1 }

CiscoFlashFileEntry ::=
	SEQUENCE {
		ciscoFlashFileIndex	 	Integer32,
		ciscoFlashFileSize 		Integer32,
		ciscoFlashFileChecksum 		ChecksumString,
		ciscoFlashFileStatus		INTEGER,
		ciscoFlashFileName 		DisplayString
	}

ciscoFlashFileIndex OBJECT-TYPE
	SYNTAX	Integer32 (1..32)
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"Flash file sequence number used to index within
		a Flash partition directory table.
		"
	::= { ciscoFlashFileEntry 1 }

ciscoFlashFileSize OBJECT-TYPE
	SYNTAX	Integer32 
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Size of the file in bytes. Note that this size does 
		not include the size of the filesystem file header.
		File size will always be non-zero.
		"
	::= { ciscoFlashFileEntry 2 }

ciscoFlashFileChecksum OBJECT-TYPE
	SYNTAX	ChecksumString 
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"File checksum stored in the file header. This 
		checksum is computed and stored when the file is 
		written into Flash. It serves to validate the data 
		written into Flash.
		Whereas the system will generate and store the checksum
		internally in hexadecimal form, this object will
		provide the checksum in a string form.
		The checksum will be available for all valid and
		invalid-checksum files. 
		"
	::= { ciscoFlashFileEntry 3 }

ciscoFlashFileStatus OBJECT-TYPE
	SYNTAX	INTEGER 
		{
		deleted(1),
		invalidChecksum(2),
		valid(3)
		}
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Status	of a file. 
		A file could be explicitly deleted if the file system 
		supports such a user command facility. Alternately, 
		an existing good file would be automatically deleted 
		if another good file with the same name were copied in.
		Note that deleted files continue to occupy prime 
		Flash real estate.

		A file is marked as having an invalid checksum if any 
		checksum mismatch was detected while writing or reading 
		the file. Incomplete files (files truncated either
		because of lack of free space, or a network download
		failure) are also written with a bad checksum and
		marked as invalid.
		"
	::= { ciscoFlashFileEntry 4 }

ciscoFlashFileName OBJECT-TYPE
	SYNTAX	DisplayString (SIZE (1..255)) 
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Flash file name as specified by the user copying in 
		the file. The name should not include the colon (:)
		character as it is a special separator character used
		to delineate the device name, partition name, and the
		file name.
		"
	::= { ciscoFlashFileEntry 5 }


--  End of Flash information
--  Start of Flash operations
--     Operations are for
--         copying to/from flash
--         partitioning
--         misc (erasing, file verification, ...)

ciscoFlashCopyTable  OBJECT-TYPE
	SYNTAX	SEQUENCE OF CiscoFlashCopyEntry
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION  
		"A table of Flash copy operation entries. Each
		entry represents a Flash copy operation (to or 
		from Flash) that has been initiated.
		"
	::= { ciscoFlashOps 1 }

ciscoFlashCopyEntry  OBJECT-TYPE
	SYNTAX	CiscoFlashCopyEntry
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"A Flash copy operation entry. Each entry consists 
		of a command, a source, and optional parameters such
		as protocol to be used, a destination, a server address,
		etc. 

		A management station wishing to create an entry should
		first generate a pseudo-random serial number to be used
		as the index to this sparse table.  The station should
		then create the associated instance of the row status
		object. It must also, either in the same or in successive 
		PDUs, create the associated instance of the command and
		parameter objects. It should also modify the default values 
		for any of the parameter objects if the defaults are not 
		appropriate.

		Once the appropriate instances of all the command
		objects have been created, either by an explicit SNMP
		set request or by default, the row status should be set
		to active to initiate the operation. Note that this entire
		procedure may be initiated via a single set request which
		specifies a row status	of createAndGo as well as specifies
		valid values for the non-defaulted parameter objects.

		Once an operation has been activated, it cannot be
		stopped. 

		Once the operation completes, the management station should
		retrieve the value of the status object (and time if
		desired), and delete the entry.  In order to prevent old
		entries from clogging the table, entries will be aged out,
		but an entry will never be deleted within 5 minutes of
		completing.
		"

	INDEX	{ ciscoFlashCopySerialNumber }
	::= { ciscoFlashCopyTable 1 }

CiscoFlashCopyEntry ::=
	SEQUENCE {
		ciscoFlashCopySerialNumber	Integer32 (0..2147483647),
		ciscoFlashCopyCommand 		INTEGER,
		ciscoFlashCopyProtocol 		INTEGER,
		ciscoFlashCopyServerAddress 	IpAddress,
		ciscoFlashCopySourceName 	DisplayString,
		ciscoFlashCopyDestinationName 	DisplayString,
		ciscoFlashCopyRemoteUserName	DisplayString,
		ciscoFlashCopyStatus		INTEGER,
		ciscoFlashCopyNotifyOnCompletion TruthValue,
		ciscoFlashCopyTime 		TimeTicks,
		ciscoFlashCopyEntryStatus	RowStatus
	}

ciscoFlashCopySerialNumber OBJECT-TYPE
	SYNTAX	Integer32 (0..2147483647)
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"Object which specifies a unique entry in the 
		table. A management station wishing to initiate a 
		copy operation should use a pseudo-random value for
		this object when creating or modifying an instance of
		a ciscoFlashCopyEntry.
		"
	::=   { ciscoFlashCopyEntry 1 }

ciscoFlashCopyCommand OBJECT-TYPE
	SYNTAX	INTEGER
		{
		copyToFlashWithErase(1),    -- copy {tftp|rcp} flash
		copyToFlashWithoutErase(2), -- copy {tftp|rcp} flash
		copyFromFlash(3),           -- copy flash {tftp|rcp|lex}
		copyFromFlhLog(4)           -- copy flhlog tftp
		}
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"The copy command to be executed. Mandatory.
		Note that it is possible for a system to support
		multiple file systems (different file systems on
		different Flash devices, or different file systems
		on different partitions within a device). Each such
		file system may support only a subset of these commands.
		If a command is unsupported, the invalidOperation(3)
		error will be reported in the operation status.

		Command			Remarks
		copyToFlashWithErase	Copy a file to flash; erase
					flash before copy.
					Use the TFTP or rcp protocol.
		copyToFlashWithoutErase Copy a file to flash; do not
					erase.
					Note that this command will fail
					if the PartitionNeedErasure
					object specifies that the
					partition being copied to needs
					erasure.
					Use the TFTP or rcp protocol.
		copyFromFlash		Copy a file from flash using
					the TFTP, rcp or lex protocol.
					Note that the lex protocol
					can only be used to copy to a
					lex device.
		copyFromFlhLog		Copy contents of FLH log to 
					server using TFTP protocol.


		Command table		Parameters
		copyToFlashWithErase	CopyProtocol
					CopyServerAddress
					CopySourceName
					CopyDestinationName (opt)
					CopyRemoteUserName (opt)
					CopyNotifyOnCompletion (opt)
		copyToFlashWithoutErase CopyProtocol
					CopyServerAddress
					CopySourceName
					CopyDestinationName (opt)
					CopyRemoteUserName (opt)
					CopyNotifyOnCompletion (opt)
		copyFromFlash		CopyProtocol
					CopyServerAddress
					CopySourceName
					CopyDestinationName (opt)
					CopyRemoteUserName (opt)
					CopyNotifyOnCompletion (opt)
		copyFromFlhLog		CopyProtocol
					CopyServerAddress
					CopyDestinationName 
					CopyNotifyOnCompletion (opt)
		"

	::= { ciscoFlashCopyEntry 2 }
	
ciscoFlashCopyProtocol OBJECT-TYPE
	SYNTAX	INTEGER
		{
		tftp(1),
		rcp(2),
		lex(3)
		}
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"The protocol to be used for any copy. Optional.
		Will default to tftp if not specified.

		Since feature support depends on a software release,
		version number within the release, platform, and 
		maybe the image type (subset type), a management
		station would be expected to somehow determine
		the protocol support for a command.
		"
	DEFVAL	{ tftp }
	::= { ciscoFlashCopyEntry 3 }

ciscoFlashCopyServerAddress OBJECT-TYPE
	SYNTAX	IpAddress
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"The server address to be used for any copy. Optional.
		Will default to 'FFFFFFFF'H  (or 255.255.255.255).
		"
	DEFVAL	{ 'FFFFFFFF'H }
	::= { ciscoFlashCopyEntry 4 }

ciscoFlashCopySourceName OBJECT-TYPE
	SYNTAX	DisplayString (SIZE (1..255))
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"Source file name, either in Flash or on a server,
		depending on the type of copy command. Mandatory.

		For a copy from Flash:
		File name must be of the form 
			[device>:][<partition>:]<file>
		where <device> is a value obtained from FlashDeviceName,
			<partition> is obtained from FlashPartitionName
		    and <file> is the name of a file in Flash.
		A management station could derive its own partition name
		as per the description for the ciscoFlashPartitionName
		object.
		If <device> is not specified, the default Flash device
		will be assumed.
		If <partition> is not specified, the default partition
		will be assumed. If a device is not partitioned into 2 
		or more partitions, this value may be left out.

		For a copy to Flash, the file name will be as per 
		the file naming conventions and path to the file on
		the server. 
		"
	::= { ciscoFlashCopyEntry 5 }

ciscoFlashCopyDestinationName OBJECT-TYPE
	SYNTAX	DisplayString (SIZE (0..255))
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"Destination file name. 

		For a copy to Flash:
		File name must be of the form 
			{device>:][<partition>:]<file>
		where <device> is a value obtained from FlashDeviceName,
		      <partition> is obtained from FlashPartitionName
		  and <file> is any character string that does not have
		embedded colon characters.
		A management station could derive its own partition name
		as per the description for the ciscoFlashPartitionName
		object.
		If <device> is not specified, the default Flash device
		will be assumed.
		If <partition> is not specified, the default partition
		will be assumed. If a device is not partitioned into 2 
		or more partitions, this value may be left out.
		If <file> is not specified, it will default to <file>
		specified in ciscoFlashCopySourceName.

		For a copy from Flash via tftp or rcp, the file name will be  
		as per the file naming conventions and destination sub-directory 
		on the server. If not specified, <file> from the source 
		file name will be used. 
		For a copy from Flash via lex, this string will consist
		of numeric characters specifying the interface on the 
		lex box that will receive the source flash image.
		"
	DEFVAL	{ ''B }
	::= { ciscoFlashCopyEntry 6 }

ciscoFlashCopyRemoteUserName OBJECT-TYPE
	SYNTAX	DisplayString (SIZE (1..255))
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"Remote user name for copy via rcp protocol. Optional.
		This object will be ignored for protocols other than
		rcp. 
		If specified, it will override the remote user-name
		configured through the 
			rcmd remote-username <username>
		configuration command. 
		The remote user-name is sent as the server user-name 
		in an rcp command request sent by the system to a
		remote rcp server.
		"
	::= { ciscoFlashCopyEntry 7 }

ciscoFlashCopyStatus OBJECT-TYPE
	SYNTAX	INTEGER
		{  
		copyInProgress(1),
		copyOperationSuccess (2),
		copyInvalidOperation (3),
		copyInvalidProtocol (4),
		copyInvalidSourceName (5),
		copyInvalidDestName (6),
		copyInvalidServerAddress (7),
		copyDeviceBusy (8),
		copyDeviceOpenError (9),
		copyDeviceError (10),
		copyDeviceNotProgrammable (11),
		copyDeviceFull (12),
		copyFileOpenError (13),
		copyFileTransferError(14),
		copyFileChecksumError(15),
		copyNoMemory (16),
		copyUnknownFailure(17)
		}
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"The status of the specified copy operation.

		copyInProgress : 
			specified operation is active

		copyOperationSuccess : 
			specified operation is supported and
			completed successfully

		copyInvalidOperation : 
			command invalid or command-protocol-device 
			combination unsupported

		copyInvalidProtocol :
			invalid protocol specified

		copyInvalidSourceName :
			invalid source file name specified
			For the  copy from flash to lex operation, this
			error code will be returned when the source file
			is not a valid lex image.

		copyInvalidDestName :
			invalid target name (file or partition or 
			device name) specified
			For the  copy from flash to lex operation, this
			error code will be returned when no lex devices 
			are connected to the router or when an invalid
			lex interface number has been specified in 
			the destination string.

		copyInvalidServerAddress :
			invalid server address specified

		copyDeviceBusy :
			specified device is in use and locked by 
			another process

		copyDeviceOpenError :
			invalid device name

		copyDeviceError :
			device read, write or erase error

		copyDeviceNotProgrammable :
			device is read-only but a write or erase 
			operation was specified

		copyDeviceFull :
			device is filled to capacity

		copyFileOpenError :
			invalid file name; file not found in partition

		copyFileTransferError :
			file transfer was unsuccessfull; network failure

		copyFileChecksumError :
			file checksum in Flash failed

		copyNoMemory :
			system running low on memory

		copyUnknownFailure :
			failure unknown
                "
	::= { ciscoFlashCopyEntry 8 }

ciscoFlashCopyNotifyOnCompletion OBJECT-TYPE
	SYNTAX	TruthValue
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"Specifies whether or not a notification should be 
		generated on the completion of the copy operation.
		If specified, ciscoFlashCopyCompletionTrap
		will be generated. It is the responsibility of the 
		management entity to ensure that the SNMP administrative 
		model is configured in such a way as to allow the 
		notification to be delivered.
                "
	DEFVAL	{ false }
	::= { ciscoFlashCopyEntry 9 }

ciscoFlashCopyTime OBJECT-TYPE
	SYNTAX	TimeTicks
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Time taken for the copy operation. This object will
		be like a stopwatch, starting when the operation
		starts, stopping when the operation completes.
		If a management entity keeps a database of completion
		times for various operations, it can then use the 
		stopwatch capability to display percentage completion
		time.
		"
	::= { ciscoFlashCopyEntry 10 }

ciscoFlashCopyEntryStatus OBJECT-TYPE
	SYNTAX	RowStatus
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"The status of this table entry.
		"
	::= { ciscoFlashCopyEntry 11 }

--
ciscoFlashPartitioningTable  OBJECT-TYPE
	SYNTAX	SEQUENCE OF CiscoFlashPartitioningEntry
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION  
		"A table of Flash partitioning operation entries. Each
		entry represents a Flash partitioning operation that
		has been initiated.
		"
	::= { ciscoFlashOps 2 }

ciscoFlashPartitioningEntry  OBJECT-TYPE
	SYNTAX	CiscoFlashPartitioningEntry
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"A Flash partitioning operation entry. Each entry 
		consists of the command, the target device, the
		partition count, and optionally the partition sizes.

		A management station wishing to create an entry should
		first generate a pseudo-random serial number to be used
		as the index to this sparse table.  The station should
		then create the associated instance of the row status
		object. It must also, either in the same or in successive 
		PDUs, create the associated instance of the command and
		parameter objects. It should also modify the default values 
		for any of the parameter objects if the defaults are not 
		appropriate.

		Once the appropriate instances of all the command
		objects have been created, either by an explicit SNMP
		set request or by default, the row status should be set
		to active to initiate the operation. Note that this entire
		procedure may be initiated via a single set request which
		specifies a row status of createAndGo as well as specifies
		valid values for the non-defaulted parameter objects.

		Once an operation has been activated, it cannot be
		stopped. 

		Once the operation completes, the management station should
		retrieve the value of the status object (and time if
		desired), and delete the entry.  In order to prevent old
		entries from clogging the table, entries will be aged out,
		but an entry will never be deleted within 5 minutes of
		completing.
		"

	INDEX	{ ciscoFlashPartitioningSerialNumber }
	::= { ciscoFlashPartitioningTable 1 }


CiscoFlashPartitioningEntry ::=
	SEQUENCE {
		ciscoFlashPartitioningSerialNumber	Integer32 (0..2147483647),
		ciscoFlashPartitioningCommand 		INTEGER,
		ciscoFlashPartitioningDestinationName    DisplayString,
		ciscoFlashPartitioningPartitionCount 	Integer32,
		ciscoFlashPartitioningPartitionSizes 	DisplayString,
		ciscoFlashPartitioningStatus 		INTEGER,
		ciscoFlashPartitioningNotifyOnCompletion TruthValue,
		ciscoFlashPartitioningTime 		TimeTicks,
		ciscoFlashPartitioningEntryStatus	RowStatus
	}

ciscoFlashPartitioningSerialNumber OBJECT-TYPE
	SYNTAX	Integer32 (0..2147483647)
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"Object which specifies a unique entry in the partitioning
		operations table. A management station wishing to initiate 
		a partitioning operation should use a pseudo-random value 
		for this object when creating or modifying an instance of
		a ciscoFlashPartitioningEntry.
		"
	::=   { ciscoFlashPartitioningEntry 1 }

ciscoFlashPartitioningCommand OBJECT-TYPE
	SYNTAX	INTEGER
		{
		partition(1)
		}
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"The partitioning command to be executed. Mandatory.
		If the command is unsupported, the 
		partitioningInvalidOperation
		error will be reported in the operation status.
               
		Command			Remarks
		partition		Partition a Flash device.
					All the prerequisites for
					partitioning must be met for 
					this command to succeed.

		Command table		Parameters
		1) partition		PartitioningDestinationName
					PartitioningPartitionCount
					PartitioningPartitionSizes (opt)
					PartitioningNotifyOnCompletion (opt)
		"
	DEFVAL	{ partition }
	::= { ciscoFlashPartitioningEntry 2 }
	
ciscoFlashPartitioningDestinationName OBJECT-TYPE
	SYNTAX	DisplayString (SIZE (0..255))
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"Destination device name. This name will be the value
		obtained from FlashDeviceName.
		If the name is not specified, the default Flash device
		will be assumed.
		"
	DEFVAL	{ ''B }
	::= { ciscoFlashPartitioningEntry 3 }

ciscoFlashPartitioningPartitionCount OBJECT-TYPE
	SYNTAX	Integer32 
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"This object is used to specify the number of
		partitions to be created. Its value cannot exceed
		the value of ciscoFlashDeviceMaxPartitions.

		To undo partitioning (revert to a single partition),
		this object must have the value 1.
		"
	DEFVAL	{ 2 }
	::= { ciscoFlashPartitioningEntry 4 }

ciscoFlashPartitioningPartitionSizes OBJECT-TYPE
	SYNTAX	DisplayString 
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"This object is used to explicitly specify the size 
		of each partition to be created.
		The size of each partition will be in units of 
		ciscoFlashDeviceMinPartitionSize.
		The value of this object will be in the form:
			<part1>:<part2>...:<partn>
             
		If partition sizes are not specified, the system
		will calculate default sizes based on the partition
		count, the minimum partition size, and the device
		size. Partition size need not be specified when
		undoing partitioning (partition count is 1).
		If partition sizes are specified, the number of
		sizes specified must exactly match the partition
		count. If not, the partitioning command will be
		rejected with the invalidPartitionSizes error .
		"
	DEFVAL	{ ''B }
	::= { ciscoFlashPartitioningEntry 5 }

ciscoFlashPartitioningStatus OBJECT-TYPE
	SYNTAX	INTEGER
		{  
		partitioningInProgress(1),
		partitioningOperationSuccess (2),
		partitioningInvalidOperation (3),
		partitioningInvalidDestName (4),
		partitioningInvalidPartitionCount (5),
		partitioningInvalidPartitionSizes (6),
		partitioningDeviceBusy (7),
		partitioningDeviceOpenError (8),
		partitioningDeviceError (9),
		partitioningNoMemory (10),
		partitioningUnknownFailure(11)
		}
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"The status of the specified partitioning operation.
		partitioningInProgress :
			specified operation is active

		partitioningOperationSuccess :
			specified operation is supported and completed 
			successfully

		partitioningInvalidOperation :
			command invalid or command-protocol-device 
			combination unsupported

		partitioningInvalidDestName :
			invalid target name (file or partition or 
			device name) specified

		partitioningInvalidPartitionCount :
			invalid partition count specified for the 
			partitioning command

		partitioningInvalidPartitionSizes :
			invalid partition size, or invalid count of 
			partition sizes

		partitioningDeviceBusy :
			specified device is in use and locked by 
			another process

		partitioningDeviceOpenError :
			invalid device name

		partitioningDeviceError :
			device read, write or erase error

		partitioningNoMemory :
			system running low on memory

		partitioningUnknownFailure :
			failure unknown
		"
	::= { ciscoFlashPartitioningEntry 6 }

ciscoFlashPartitioningNotifyOnCompletion OBJECT-TYPE
	SYNTAX	TruthValue
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"Specifies whether or not a notification should be 
		generated on the completion of the partitioning operation.
		If specified, ciscoFlashPartitioningCompletionTrap
		will be generated. It is the responsibility of the 
		management entity to ensure that the SNMP administrative 
		model is configured in such a way as to allow the
		notification to be delivered.
		"
	DEFVAL	{ false }
	::= { ciscoFlashPartitioningEntry 7 }

ciscoFlashPartitioningTime OBJECT-TYPE
	SYNTAX	TimeTicks
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Time taken for the operation. This object will
		be like a stopwatch, starting when the operation
		starts, stopping when the operation completes.
		If a management entity keeps a database of completion
		times for various operations, it can then use the 
		stopwatch capability to display percentage completion
		time.
		"
	::= { ciscoFlashPartitioningEntry 8 }

ciscoFlashPartitioningEntryStatus OBJECT-TYPE
	SYNTAX	RowStatus
	MAX-ACCESS	read-create
	STATUS    current
	DESCRIPTION
		"The status of this table entry.
		"
	::= { ciscoFlashPartitioningEntry 9 }

--

ciscoFlashMiscOpTable  OBJECT-TYPE
	SYNTAX	SEQUENCE OF CiscoFlashMiscOpEntry
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION  
		"A table of misc Flash operation entries. Each
		entry represents a Flash operation that
		has been initiated.
		"
	::= { ciscoFlashOps 3 }

ciscoFlashMiscOpEntry  OBJECT-TYPE
	SYNTAX	CiscoFlashMiscOpEntry
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"A Flash operation entry. Each entry consists of a 
		command, a target, and any optional parameters.

		A management station wishing to create an entry should
		first generate a pseudo-random serial number to be used
		as the index to this sparse table.  The station should
		then create the associated instance of the row status
		object. It must also, either in the same or in successive 
		PDUs, create the associated instance of the command and
		parameter objects. It should also modify the default values 
		for any of the parameter objects if the defaults are not 
		appropriate.

		Once the appropriate instances of all the command
		objects have been created, either by an explicit SNMP
		set request or by default, the row status should be set
		to active to initiate the operation. Note that this entire
		procedure may be initiated via a single set request which
		specifies a row status of createAndGo as well as specifies
		valid values for the non-defaulted parameter objects.

		Once an operation has been activated, it cannot be
		stopped. 

		Once the operation completes, the management station should
		retrieve the value of the status object (and time if
		desired), and delete the entry.  In order to prevent old
		entries from clogging the table, entries will be aged out,
		but an entry will never be deleted within 5 minutes of
		completing.
		"

	INDEX	{ ciscoFlashMiscOpSerialNumber }
	::= { ciscoFlashMiscOpTable 1 }


CiscoFlashMiscOpEntry ::=
	SEQUENCE {
		ciscoFlashMiscOpSerialNumber		Integer32 (0..2147483647),
		ciscoFlashMiscOpCommand 		INTEGER,
		ciscoFlashMiscOpDestinationName 	DisplayString,
		ciscoFlashMiscOpStatus 			INTEGER,
		ciscoFlashMiscOpNotifyOnCompletion 	TruthValue,
		ciscoFlashMiscOpTime 			TimeTicks,
		ciscoFlashMiscOpEntryStatus		RowStatus
	}

ciscoFlashMiscOpSerialNumber OBJECT-TYPE
	SYNTAX	Integer32 (0..2147483647)
	MAX-ACCESS	not-accessible
	STATUS	current
	DESCRIPTION
		"Object which specifies a unique entry in the
		table. A management station wishing to initiate a 
		flash operation should use a pseudo-random value for
		this object when creating or modifying an instance of
		a ciscoFlashMiscOpEntry.
		"
	::=   { ciscoFlashMiscOpEntry 1 }

ciscoFlashMiscOpCommand OBJECT-TYPE
	SYNTAX	INTEGER
		{
		erase(1),
		verify(2),
		delete(3),
		undelete(4),
		squeeze(5),
		format(6)
		}
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"The command to be executed. Mandatory.
		Note that it is possible for a system to support
		multiple file systems (different file systems on
		different Flash devices, or different file systems
		on different partitions within a device). Each such
		file system may support only a subset of these commands.
		If a command is unsupported, the miscOpInvalidOperation(3)
		error will be reported in the operation status.
               
		Command		Remarks
		erase		Erase flash.
		verify		Verify flash file checksum.
		delete		Delete a file.
		undelete	Revive a deleted file .
				Note that there are limits on
				the number of times a file can
				be deleted and undeleted. When
				this limit is exceeded, the 
				system will return the appropriate
				error.
		squeeze		Recover space occupied by 
				deleted files. This command   
				preserves the good files, erases
				out the file system, then restores
				the preserved good files.
		format		Format a flash device.

		Command table	Parameters
		erase		MiscOpDestinationName
				MiscOpNotifyOnCompletion (opt)
		verify		MiscOpDestinationName
				MiscOpNotifyOnCompletion (opt)
		delete		MiscOpDestinationName
				MiscOpNotifyOnCompletion (opt)
		undelete	MiscOpDestinationName
				MiscOpNotifyOnCompletion (opt)
		squeeze		MiscOpDestinationName
				MiscOpNotifyOnCompletion (opt)
		format		MiscOpDestinationName
				MiscOpNotifyOnCompletion (opt)
		"
	::= { ciscoFlashMiscOpEntry 2 }
	
ciscoFlashMiscOpDestinationName OBJECT-TYPE
	SYNTAX	DisplayString (SIZE (0..255))
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"Destination file, or partition name. 
		File name must be of the form 
			[device>:][<partition>:]<file>
		where <device> is a value obtained from FlashDeviceName,
		      <partition> is obtained from FlashPartitionName
		  and <file> is the name of a file in Flash.
		While leading and/or trailing whitespaces are acceptable,
		no whitespaces are allowed within the path itself.

		A management station could derive its own partition name
		as per the description for the ciscoFlashPartitionName
		object.
		If <device> is not specified, the default Flash device
		will be assumed.
		If <partition> is not specified, the default partition
		will be assumed. If a device is not partitioned into 2 
		or more partitions, this value may be left out.

		For an operation on a partition, eg., the erase
		command, this object would specify the partition name
		in the form:
			[device>:][<partition>:]
		"
	DEFVAL	{ ''B }
	::= { ciscoFlashMiscOpEntry 3 }

ciscoFlashMiscOpStatus OBJECT-TYPE
	SYNTAX	INTEGER
		{  
		miscOpInProgress(1),
		miscOpOperationSuccess (2),
		miscOpInvalidOperation (3),
		miscOpInvalidDestName (4),
		miscOpDeviceBusy (5),
		miscOpDeviceOpenError (6),
		miscOpDeviceError (7),
		miscOpDeviceNotProgrammable (8),
		miscOpFileOpenError (9),
		miscOpFileDeleteFailure(10),
		miscOpFileUndeleteFailure(11),
		miscOpFileChecksumError(12),
		miscOpNoMemory (13),
		miscOpUnknownFailure(14),
		miscOpSqueezeFailure(18),
		miscOpNoSuchFile(19),
		miscOpFormatFailure(20)
		}
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"The status of the specified operation.
		miscOpInProgress :
			specified operation is active

		miscOpOperationSuccess :
			specified operation is supported and completed 
			successfully

		miscOpInvalidOperation :
			command invalid or command-protocol-device 
			combination unsupported

		miscOpInvalidDestName :
			invalid target name (file or partition or 
			device name) specified

		miscOpDeviceBusy :
			specified device is in use and locked by another 
			process

		miscOpDeviceOpenError :
			invalid device name

		miscOpDeviceError :
			device read, write or erase error

		miscOpDeviceNotProgrammable :
			device is read-only but a write or erase 
			operation was specified

		miscOpFileOpenError :
			invalid file name; file not found in partition

		miscOpFileDeleteFailure :
			file could not be deleted; delete count exceeded

		miscOpFileUndeleteFailure :
			file could not be undeleted; undelete count 
			exceeded

		miscOpFileChecksumError :
			file has a bad checksum

		miscOpNoMemory :
			system running low on memory

		miscOpUnknownFailure :
			failure unknown

		miscOpSqueezeFailure :
			the squeeze operation failed

		miscOpNoSuchFile :
			a valid but nonexistent file name was specified

		miscOpFormatFailure :
			the format operation failed
		"
	::= { ciscoFlashMiscOpEntry 4 }

ciscoFlashMiscOpNotifyOnCompletion OBJECT-TYPE
	SYNTAX	TruthValue
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"Specifies whether or not a notification should be 
		generated on the completion of an operation.
		If specified, ciscoFlashMiscOpCompletionTrap
		will be generated. It is the responsibility of the 
		management entity to ensure that the SNMP administrative 
		model is configured in such a way as to allow the 
		notification to be delivered.
		"
	DEFVAL	{ false }
	::= { ciscoFlashMiscOpEntry 5 }

ciscoFlashMiscOpTime OBJECT-TYPE
	SYNTAX	TimeTicks
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Time taken for the operation. This object will
		be like a stopwatch, starting when the operation
		starts, stopping when the operation completes.
		If a management entity keeps a database of completion
		times for various operations, it can then use the 
		stopwatch capability to display percentage completion
		time.
		"
	::= { ciscoFlashMiscOpEntry 6 }

ciscoFlashMiscOpEntryStatus OBJECT-TYPE
	SYNTAX	RowStatus
	MAX-ACCESS	read-create
	STATUS	current
	DESCRIPTION
		"The status of this table entry.
		"
	::= { ciscoFlashMiscOpEntry 7 }

-- Traps (or notifications ??)

ciscoFlashMIBTraps OBJECT IDENTIFIER ::= { ciscoFlashMIBTrapPrefix 0 }

ciscoFlashCopyCompletionTrap NOTIFICATION-TYPE
	OBJECTS   
		{ 
		ciscoFlashCopyStatus  
		}
	STATUS	current
	DESCRIPTION
		"A ciscoFlashCopyCompletionTrap is sent at the 
		completion of a flash copy operation if such a trap 
		was requested when the operation was initiated.
		"
	::= { ciscoFlashMIBTraps 1 }

ciscoFlashPartitioningCompletionTrap NOTIFICATION-TYPE
	OBJECTS   
		{ 
		ciscoFlashPartitioningStatus  
		}
	STATUS	current
	DESCRIPTION
		"A ciscoFlashPartitioningCompletionTrap is sent at the 
		completion of a partitioning operation if such a trap 
		was requested when the operation was initiated.
		"
	::= { ciscoFlashMIBTraps 2 }

ciscoFlashMiscOpCompletionTrap NOTIFICATION-TYPE
	OBJECTS   
		{ 
		ciscoFlashMiscOpStatus  
		}
	STATUS	current
	DESCRIPTION
		"A ciscoFlashMiscOpCompletionTrap is sent at the 
		completion of a miscellaneous flash operation 
		(enumerated in ciscoFlashMiscOpCommand) if such a trap 
		was requested when the operation was initiated.
		"
	::= { ciscoFlashMIBTraps 3 }

ciscoFlashDeviceChangeTrap NOTIFICATION-TYPE
	OBJECTS   
		{ 
		ciscoFlashDeviceIndex
		}
	STATUS	current
	DESCRIPTION
		"A ciscoFlashDeviceChangeTrap is sent whenever a
		removable Flash device is inserted or removed.
		"
	::= { ciscoFlashMIBTraps 4 }


-- Conformance information

ciscoFlashMIBConformance  OBJECT IDENTIFIER ::= { ciscoFlashMIB 2 }
ciscoFlashMIBCompliances  OBJECT IDENTIFIER ::= { ciscoFlashMIBConformance 1 }
ciscoFlashMIBGroups       OBJECT IDENTIFIER ::= { ciscoFlashMIBConformance 2 }

-- Compliance statements

ciscoFlashMIBCompliance  MODULE-COMPLIANCE
	STATUS	current
	DESCRIPTION
		"The compliance statement for entities that support
		the Cisco Flash MIB.
		"
	MODULE  -- compliance to this module
		MANDATORY-GROUPS  {
			ciscoFlashDeviceInfoGroup,
			ciscoFlashPartitionInfoGroup,
			ciscoFlashFileInfoGroup,
			ciscoFlashChipInfoGroup,
			ciscoFlashCopyOpGroup
		}

		GROUP   ciscoFlashDeviceOptionalInfoGroup 
		DESCRIPTION
			"The Flash device optional group contains
			objects for features that may be optional
			or not available across all systems.
			An example is the partitioning feature.
			"

		GROUP	ciscoFlashPartitioningOpGroup
		DESCRIPTION
			"The Flash partitioning operations group is
			optional. It is intended whenever partitioning
			is supported.
			"

		GROUP	ciscoFlashMiscOpGroup
		DESCRIPTION
			"The Flash miscellaneous operations group is
			optional. It contains operations that are not
			essential or not universally supported across
			all platforms. 
			"
	::= { ciscoFlashMIBCompliances 1 }

-- Units of conformance

ciscoFlashDeviceInfoGroup  OBJECT-GROUP
	OBJECTS  {
		ciscoFlashDevicesSupported,
		ciscoFlashDeviceSize,
		ciscoFlashDeviceName,
		ciscoFlashDeviceDescr,
		ciscoFlashDeviceProgrammingJumper,
		ciscoFlashDeviceInitTime,
		ciscoFlashDeviceChipCount,
		ciscoFlashDeviceRemovable
	}
	STATUS  current
	DESCRIPTION
		"A collection of objects providing mandatory Flash
		device level information.
		"
	::= { ciscoFlashMIBGroups 1 }

ciscoFlashDeviceOptionalInfoGroup  OBJECT-GROUP
	OBJECTS  {
		ciscoFlashDeviceMinPartitionSize,
		ciscoFlashDeviceMaxPartitions,
		ciscoFlashDevicePartitions,
		ciscoFlashDeviceController,
		ciscoFlashDeviceCard
	}
	STATUS  current
	DESCRIPTION
		"A collection of optional objects providing 
		Flash device level information.
		"
	::= { ciscoFlashMIBGroups 2 }

ciscoFlashChipInfoGroup  OBJECT-GROUP
	OBJECTS  {
		ciscoFlashChipCode,
		ciscoFlashChipDescr,
		ciscoFlashChipWriteRetries,
		ciscoFlashChipEraseRetries,
		ciscoFlashChipMaxWriteRetries,
		ciscoFlashChipMaxEraseRetries
	}
	STATUS  current
	DESCRIPTION
		"A collection of objects providing Flash
		chip level information.
		"
	::= { ciscoFlashMIBGroups 3 }

ciscoFlashPartitionInfoGroup  OBJECT-GROUP
	OBJECTS  {
		ciscoFlashPartitionStartChip,
		ciscoFlashPartitionEndChip,
		ciscoFlashPartitionSize,
		ciscoFlashPartitionFreeSpace,
		ciscoFlashPartitionFileCount,
		ciscoFlashPartitionChecksumAlgorithm,
		ciscoFlashPartitionStatus,
		ciscoFlashPartitionUpgradeMethod,
		ciscoFlashPartitionName,
		ciscoFlashPartitionNeedErasure,
		ciscoFlashPartitionFileNameLength
	}
	STATUS  current
	DESCRIPTION
		"A collection of objects providing Flash
		partition level information. Where a Flash
		device has not been partitioned or does
		not support partitioning, a partition is
		synonymous with the entire device.
		"
	::= { ciscoFlashMIBGroups 4 }

ciscoFlashFileInfoGroup  OBJECT-GROUP
	OBJECTS  {
		ciscoFlashFileSize,
		ciscoFlashFileChecksum,
		ciscoFlashFileStatus,
		ciscoFlashFileName
	}
	STATUS  current
	DESCRIPTION
		"A collection of objects providing Flash
		file level information.
		"
	::= { ciscoFlashMIBGroups 5 }

ciscoFlashCopyOpGroup  OBJECT-GROUP
	OBJECTS  {
		ciscoFlashCopyCommand,
		ciscoFlashCopyProtocol,
		ciscoFlashCopyServerAddress,
		ciscoFlashCopySourceName,
		ciscoFlashCopyDestinationName,
		ciscoFlashCopyRemoteUserName,
		ciscoFlashCopyStatus,
		ciscoFlashCopyNotifyOnCompletion,
		ciscoFlashCopyTime,
		ciscoFlashCopyEntryStatus
	}
	STATUS  current
	DESCRIPTION
		"A collection of objects providing the ability
		to copy files to and from a Flash partition.
		"
	::= { ciscoFlashMIBGroups 6 }

ciscoFlashPartitioningOpGroup  OBJECT-GROUP
	OBJECTS  {
		ciscoFlashPartitioningCommand,
		ciscoFlashPartitioningDestinationName,
		ciscoFlashPartitioningPartitionCount,
		ciscoFlashPartitioningPartitionSizes,
		ciscoFlashPartitioningStatus,
		ciscoFlashPartitioningNotifyOnCompletion,
		ciscoFlashPartitioningTime,
		ciscoFlashPartitioningEntryStatus
	}
	STATUS  current
	DESCRIPTION
		"A collection of objects providing the ability
		to partition a Flash device.
		"
	::= { ciscoFlashMIBGroups 7 }

ciscoFlashMiscOpGroup  OBJECT-GROUP
	OBJECTS  {
		ciscoFlashMiscOpCommand,
		ciscoFlashMiscOpDestinationName,
		ciscoFlashMiscOpStatus,
		ciscoFlashMiscOpNotifyOnCompletion,
		ciscoFlashMiscOpTime,
		ciscoFlashMiscOpEntryStatus
	}
	STATUS  current
	DESCRIPTION
		"A collection of objects providing the ability
		to perform misc operations (erase, file verification,
		etc) in a Flash device.
		"
	::= { ciscoFlashMIBGroups 8 }


END



-- ######################################################

--
-- File: cisco/CISCO-ENVMON-MIB.mib
--

-- *****************************************************************
-- CISCO-ENVMON-MIB.my:  CISCO Environmental Monitor MIB file
--
-- November 1994 Sandra C. Durham/Jeffrey T. Johnson
--
-- Copyright (c) 1994-1997 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************
--
CISCO-ENVMON-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY,
	OBJECT-TYPE,
	NOTIFICATION-TYPE,
	Gauge32,
	Integer32
		FROM SNMPv2-SMI
	TEXTUAL-CONVENTION,
	DisplayString,
	TruthValue
		FROM SNMPv2-TC
	MODULE-COMPLIANCE,
	OBJECT-GROUP
		FROM SNMPv2-CONF
	ciscoMgmt
		FROM CISCO-SMI;


ciscoEnvMonMIB MODULE-IDENTITY
	LAST-UPDATED	"9508150000Z"
	ORGANIZATION	"Cisco Systems, Inc."
	CONTACT-INFO
		"       Cisco Systems
			Customer Service

		Postal: 170 W Tasman Drive
			San Jose, CA  95134
			USA

		   Tel: +1 800 553-NETS

		E-mail: cs-snmp@cisco.com"
	DESCRIPTION
		"The MIB module to describe the status of the Environmental
		Monitor on those devices which support one."
	REVISION        "9508150000Z"
	DESCRIPTION
		"Specify a correct (non-negative) range for several
		index objects."
 	REVISION	"9503130000Z"
 	DESCRIPTION
 		"Miscellaneous changes including monitoring support
		for c7000 series redundant power supplies."
 	REVISION	"9611120000Z"
 	DESCRIPTION
 		"Add monitoring support for c3600 series router"
	::= { ciscoMgmt 13 }


CiscoEnvMonState ::= TEXTUAL-CONVENTION
	STATUS	current
	DESCRIPTION
		"Represents the state of a device being monitored."
	SYNTAX	INTEGER {
			normal(1),
			warning(2),
			critical(3),
			shutdown(4),
			notPresent(5)
		}

-- END OF TC

CiscoSignedGauge  ::= TEXTUAL-CONVENTION
	STATUS	current
	DESCRIPTION
		"Represents the current value of an entity, as a signed 
                 integer."
	SYNTAX	Integer32 

-- END OF TC

ciscoEnvMonObjects OBJECT IDENTIFIER ::= { ciscoEnvMonMIB 1 }

ciscoEnvMonPresent OBJECT-TYPE
	SYNTAX     INTEGER {
			oldAgs (1),
			ags    (2),
			c7000  (3),
			ci     (4)
			,cAccessMon (6)
		   }
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The type of environmental monitor located in the chassis.
		An oldAgs environmental monitor card is identical to an ags
		environmental card except that it is not capable of supplying
		data, and hence no instance of the remaining objects in this
		MIB will be returned in response to an SNMP query.  Note that
		only a firmware upgrade is required to convert an oldAgs into
		an ags card."
	::= { ciscoEnvMonObjects 1 }


ciscoEnvMonVoltageStatusTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF CiscoEnvMonVoltageStatusEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"The table of voltage status maintained by the environmental
		monitor."
	::= { ciscoEnvMonObjects 2 }

ciscoEnvMonVoltageStatusEntry OBJECT-TYPE
	SYNTAX     CiscoEnvMonVoltageStatusEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"An entry in the voltage status table, representing the status
		of the associated testpoint maintained by the environmental
		monitor."
	INDEX      { ciscoEnvMonVoltageStatusIndex }
	::= { ciscoEnvMonVoltageStatusTable 1 }

CiscoEnvMonVoltageStatusEntry ::=
	SEQUENCE {
		ciscoEnvMonVoltageStatusIndex	Integer32 (0..2147483647),
		ciscoEnvMonVoltageStatusDescr	DisplayString,
		ciscoEnvMonVoltageStatusValue	CiscoSignedGauge,
		ciscoEnvMonVoltageThresholdLow	Integer32,
		ciscoEnvMonVoltageThresholdHigh	Integer32,
		ciscoEnvMonVoltageLastShutdown	Integer32,
		ciscoEnvMonVoltageState		CiscoEnvMonState
	}

ciscoEnvMonVoltageStatusIndex OBJECT-TYPE
	SYNTAX     Integer32 (0..2147483647)
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"Unique index for the testpoint being instrumented.
		This index is for SNMP purposes only, and has no
		intrinsic meaning."
	::= { ciscoEnvMonVoltageStatusEntry 1 }

ciscoEnvMonVoltageStatusDescr OBJECT-TYPE
	SYNTAX     DisplayString (SIZE (0..32))
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Textual description of the testpoint being instrumented.
		This description is a short textual label, suitable as a
		human-sensible identification for the rest of the
		information in the entry."
	::= { ciscoEnvMonVoltageStatusEntry 2 }

ciscoEnvMonVoltageStatusValue OBJECT-TYPE
	SYNTAX     CiscoSignedGauge
	UNITS      "millivolts"
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The current measurement of the testpoint being instrumented."
	::= { ciscoEnvMonVoltageStatusEntry 3 }

ciscoEnvMonVoltageThresholdLow OBJECT-TYPE
	SYNTAX     Integer32
	UNITS      "millivolts"
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The lowest value that the associated instance of the object
		ciscoEnvMonVoltageStatusValue may obtain before an emergency
		shutdown of the managed device is initiated."
	::= { ciscoEnvMonVoltageStatusEntry 4 }

ciscoEnvMonVoltageThresholdHigh OBJECT-TYPE
	SYNTAX     Integer32
	UNITS      "millivolts"
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The highest value that the associated instance of the object
		ciscoEnvMonVoltageStatusValue may obtain before an emergency
		shutdown of the managed device is initiated."
	::= { ciscoEnvMonVoltageStatusEntry 5 }

ciscoEnvMonVoltageLastShutdown OBJECT-TYPE
	SYNTAX     Integer32
	UNITS      "millivolts"
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The value of the associated instance of the object
		ciscoEnvMonVoltageStatusValue at the time an emergency
		shutdown of the managed device was last initiated.  This
		value is stored in non-volatile RAM and hence is able to
		survive the shutdown."
	::= { ciscoEnvMonVoltageStatusEntry 6 }

ciscoEnvMonVoltageState OBJECT-TYPE
	SYNTAX     CiscoEnvMonState
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The current state of the testpoint being instrumented."
	::= { ciscoEnvMonVoltageStatusEntry 7 }



ciscoEnvMonTemperatureStatusTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF CiscoEnvMonTemperatureStatusEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"The table of ambient temperature status maintained by the
		environmental monitor."
	::= { ciscoEnvMonObjects 3 }

ciscoEnvMonTemperatureStatusEntry OBJECT-TYPE
	SYNTAX     CiscoEnvMonTemperatureStatusEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"An entry in the ambient temperature status table, representing
		the status of the associated testpoint maintained by the
		environmental monitor."
	INDEX      { ciscoEnvMonTemperatureStatusIndex }
	::= { ciscoEnvMonTemperatureStatusTable 1 }

CiscoEnvMonTemperatureStatusEntry ::=
	SEQUENCE {
		ciscoEnvMonTemperatureStatusIndex	Integer32 (0..2147483647),
		ciscoEnvMonTemperatureStatusDescr	DisplayString,
		ciscoEnvMonTemperatureStatusValue	Gauge32,
		ciscoEnvMonTemperatureThreshold		Integer32,
		ciscoEnvMonTemperatureLastShutdown	Integer32,
		ciscoEnvMonTemperatureState		CiscoEnvMonState
	}


ciscoEnvMonTemperatureStatusIndex OBJECT-TYPE
	SYNTAX     Integer32 (0..2147483647)
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"Unique index for the testpoint being instrumented.
		This index is for SNMP purposes only, and has no
		intrinsic meaning."
	::= { ciscoEnvMonTemperatureStatusEntry 1 }

ciscoEnvMonTemperatureStatusDescr OBJECT-TYPE
	SYNTAX     DisplayString (SIZE (0..32))
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Textual description of the testpoint being instrumented.
		This description is a short textual label, suitable as a
		human-sensible identification for the rest of the
		information in the entry."
	::= { ciscoEnvMonTemperatureStatusEntry 2 }

ciscoEnvMonTemperatureStatusValue OBJECT-TYPE
	SYNTAX     Gauge32
	UNITS      "degrees Celsius"
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The current measurement of the testpoint being instrumented."
	::= { ciscoEnvMonTemperatureStatusEntry 3 }

ciscoEnvMonTemperatureThreshold OBJECT-TYPE
	SYNTAX     Integer32
	UNITS      "degrees Celsius"
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The highest value that the associated instance of the
		object ciscoEnvMonTemperatureStatusValue may obtain
		before an emergency shutdown of the managed device is
		initiated."
	::= { ciscoEnvMonTemperatureStatusEntry 4 }

ciscoEnvMonTemperatureLastShutdown OBJECT-TYPE
	SYNTAX     Integer32
	UNITS      "degrees Celsius"
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The value of the associated instance of the object
		ciscoEnvMonTemperatureStatusValue at the time an emergency
		shutdown of the managed device was last initiated.  This
		value is stored in non-volatile RAM and hence is able to
		survive the shutdown."
	::= { ciscoEnvMonTemperatureStatusEntry 5 }

ciscoEnvMonTemperatureState OBJECT-TYPE
	SYNTAX     CiscoEnvMonState
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The current state of the testpoint being instrumented."
	::= { ciscoEnvMonTemperatureStatusEntry 6 }



ciscoEnvMonFanStatusTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF CiscoEnvMonFanStatusEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"The table of fan status maintained by the environmental
		monitor."
	::= { ciscoEnvMonObjects 4 }

ciscoEnvMonFanStatusEntry OBJECT-TYPE
	SYNTAX     CiscoEnvMonFanStatusEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"An entry in the fan status table, representing the status of
		the associated fan maintained by the environmental monitor."
	INDEX   { ciscoEnvMonFanStatusIndex }
	::= { ciscoEnvMonFanStatusTable 1 }

CiscoEnvMonFanStatusEntry ::=
	SEQUENCE {
		ciscoEnvMonFanStatusIndex	Integer32 (0..2147483647),
		ciscoEnvMonFanStatusDescr	DisplayString,
		ciscoEnvMonFanState		CiscoEnvMonState
	}

ciscoEnvMonFanStatusIndex OBJECT-TYPE
	SYNTAX     Integer32 (0..2147483647)
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"Unique index for the fan being instrumented.
		This index is for SNMP purposes only, and has no
		intrinsic meaning."
	::= { ciscoEnvMonFanStatusEntry 1 }

ciscoEnvMonFanStatusDescr OBJECT-TYPE
	SYNTAX     DisplayString (SIZE (0..32))
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Textual description of the fan being instrumented.
		This description is a short textual label, suitable as a
		human-sensible identification for the rest of the
		information in the entry."
	::= { ciscoEnvMonFanStatusEntry 2 }

ciscoEnvMonFanState OBJECT-TYPE
	SYNTAX     CiscoEnvMonState
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The current state of the fan being instrumented."
	::= { ciscoEnvMonFanStatusEntry 3 }



ciscoEnvMonSupplyStatusTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF CiscoEnvMonSupplyStatusEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"The table of power supply status maintained by the
		environmental monitor card."
	::= { ciscoEnvMonObjects 5 }

ciscoEnvMonSupplyStatusEntry OBJECT-TYPE
	SYNTAX     CiscoEnvMonSupplyStatusEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"An entry in the power supply status table, representing the
		status of the associated power supply maintained by the
		environmental monitor card."
	INDEX   { ciscoEnvMonSupplyStatusIndex }
	::= { ciscoEnvMonSupplyStatusTable 1  }

CiscoEnvMonSupplyStatusEntry ::=
	SEQUENCE {
		ciscoEnvMonSupplyStatusIndex	Integer32 (0..2147483647),
		ciscoEnvMonSupplyStatusDescr	DisplayString,
		ciscoEnvMonSupplyState		CiscoEnvMonState,
		ciscoEnvMonSupplySource 	INTEGER
 	}

ciscoEnvMonSupplyStatusIndex OBJECT-TYPE
	SYNTAX     Integer32 (0..2147483647)
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"Unique index for the power supply being instrumented.
		This index is for SNMP purposes only, and has no
		intrinsic meaning."
	::= { ciscoEnvMonSupplyStatusEntry 1 }

ciscoEnvMonSupplyStatusDescr OBJECT-TYPE
	SYNTAX     DisplayString (SIZE (0..32))
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Textual description of the power supply being instrumented.
		This description is a short textual label, suitable as a
		human-sensible identification for the rest of the
		information in the entry."
	::= { ciscoEnvMonSupplyStatusEntry 2 }

ciscoEnvMonSupplyState OBJECT-TYPE
	SYNTAX     CiscoEnvMonState
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The current state of the power supply being instrumented."
	::= { ciscoEnvMonSupplyStatusEntry 3 }

ciscoEnvMonSupplySource OBJECT-TYPE
	SYNTAX INTEGER {
			unknown(1),
			ac(2),
			dc(3),
			externalPowerSupply(4)
		}
	MAX-ACCESS read-only
	STATUS	   current
	DESCRIPTION
		"The power supply source."
	::= { ciscoEnvMonSupplyStatusEntry 4 }

ciscoEnvMonMIBNotificationEnables OBJECT IDENTIFIER ::= { ciscoEnvMonMIB 2 }

ciscoEnvMonEnableShutdownNotification OBJECT-TYPE
        SYNTAX 	    TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
               "This variable  indicates  whether  the  system
                produces the ciscoEnvMonShutdownNotification.  A false 
		value will prevent shutdown notifications 
		from being generated by this system."
        DEFVAL { false }
        ::= { ciscoEnvMonMIBNotificationEnables 1 }

ciscoEnvMonEnableVoltageNotification OBJECT-TYPE
        SYNTAX 	    TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
               "This variable  indicates  whether  the  system
                produces the ciscoEnvMonVoltageNotification. A false 
		value will prevent voltage notifications from being 
		generated by this system."
        DEFVAL { false }
        ::= { ciscoEnvMonMIBNotificationEnables 2 }

ciscoEnvMonEnableTemperatureNotification OBJECT-TYPE
        SYNTAX 	    TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
               "This variable  indicates  whether  the  system
                produces the ciscoEnvMonTemperatureNotification.
		A false value prevents temperature notifications 
		from being sent by  this entity."
        DEFVAL { false }
        ::= { ciscoEnvMonMIBNotificationEnables 3 }

ciscoEnvMonEnableFanNotification OBJECT-TYPE
        SYNTAX 	    TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
               "This variable  indicates  whether  the  system
                produces the ciscoEnvMonFanNotification.
		A false value prevents fan notifications 
		from being sent by  this entity."
        DEFVAL { false }
        ::= { ciscoEnvMonMIBNotificationEnables 4 }

ciscoEnvMonEnableRedundantSupplyNotification OBJECT-TYPE
        SYNTAX 	    TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
               "This variable  indicates  whether  the  system
                produces the ciscoEnvMonRedundantSupplyNotification. 
		A false value prevents redundant supply notifications
		from being generated by this system."
        DEFVAL { false }
        ::= { ciscoEnvMonMIBNotificationEnables 5 }

-- the following two OBJECT IDENTIFIERS are used to define SNMPv2 Notifications
-- that are backward compatible with SNMPv1 Traps.
ciscoEnvMonMIBNotificationPrefix OBJECT IDENTIFIER ::= { ciscoEnvMonMIB 3 }
ciscoEnvMonMIBNotifications OBJECT IDENTIFIER ::= { ciscoEnvMonMIBNotificationPrefix 0 }

ciscoEnvMonShutdownNotification NOTIFICATION-TYPE
	-- no OBJECTS
	STATUS	current
	DESCRIPTION
		"A ciscoEnvMonShutdownNotification is sent if the environmental
		monitor detects a testpoint reaching a critical state
		and is about to initiate a shutdown.  This notification 
		contains no objects so that it may be encoded and sent in the
		shortest amount of time possible.  Even so, management
		applications should not rely on receiving such a notification
		as it may not be sent before the shutdown completes."
	::= { ciscoEnvMonMIBNotifications 1 }


ciscoEnvMonVoltageNotification NOTIFICATION-TYPE
	OBJECTS	{
		ciscoEnvMonVoltageStatusDescr,
		ciscoEnvMonVoltageStatusValue,
		ciscoEnvMonVoltageState
		}
	STATUS	current
	DESCRIPTION
		"A ciscoEnvMonVoltageNotification is sent if the voltage 
		measured at a given testpoint is outside the normal range 
		for the	testpoint (i.e. is at the warning, critical, or
		shutdown stage).  Since such a notification is usually 
		generated before the shutdown state is reached, it can 
		convey more data and has a better chance of being sent 
		than does the ciscoEnvMonShutdownNotification."
	::= { ciscoEnvMonMIBNotifications 2 }


ciscoEnvMonTemperatureNotification NOTIFICATION-TYPE
	OBJECTS	{
		ciscoEnvMonTemperatureStatusDescr,
		ciscoEnvMonTemperatureStatusValue,
		ciscoEnvMonTemperatureState
		}
	STATUS	current
	DESCRIPTION
		"A ciscoEnvMonTemperatureNotification is sent if the 
		temperature measured at a given testpoint is outside 
		the normal range for the testpoint (i.e. is at the warning, 
		critical, or shutdown stage).  Since such a Notification 
		is usually generated before the shutdown state is reached,
		it can convey more data and has a better chance of being
		sent than does the ciscoEnvMonShutdownNotification."
	::= { ciscoEnvMonMIBNotifications 3 }



ciscoEnvMonFanNotification NOTIFICATION-TYPE
	OBJECTS	{
		ciscoEnvMonFanStatusDescr,
		ciscoEnvMonFanState
		}
	STATUS	current
	DESCRIPTION
		"A ciscoEnvMonFanNotification is sent if any one of
		the fans in the fan array (where extant) fails. 
		Since such a notification is usually generated before 
		the shutdown state is reached, it can convey more 
		data and has a better chance of being sent
		than does the ciscoEnvMonShutdownNotification."
	::= { ciscoEnvMonMIBNotifications 4 }

ciscoEnvMonRedundantSupplyNotification NOTIFICATION-TYPE
	OBJECTS	{
		ciscoEnvMonSupplyStatusDescr,
		ciscoEnvMonSupplyState
		}
	STATUS	current
	DESCRIPTION
		"A ciscoEnvMonRedundantSupplyNotification is sent if
		the redundant power supply (where extant) fails. 
		Since such a notification is usually generated before 
		the shutdown state is reached, it can convey more 
		data and has a better chance of being sent
		than does the ciscoEnvMonShutdownNotification."
	::= { ciscoEnvMonMIBNotifications 5 }



-- conformance information

ciscoEnvMonMIBConformance OBJECT IDENTIFIER ::= { ciscoEnvMonMIB 4 }
ciscoEnvMonMIBCompliances OBJECT IDENTIFIER ::= { ciscoEnvMonMIBConformance 1 }
ciscoEnvMonMIBGroups      OBJECT IDENTIFIER ::= { ciscoEnvMonMIBConformance 2 }


-- compliance statements

ciscoEnvMonMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Cisco Environmental Monitor MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { ciscoEnvMonMIBGroup }
        ::= { ciscoEnvMonMIBCompliances 1 }

-- units of conformance

ciscoEnvMonMIBGroup OBJECT-GROUP
        OBJECTS {
		ciscoEnvMonPresent,

		ciscoEnvMonVoltageStatusDescr,
		ciscoEnvMonVoltageStatusValue,
		ciscoEnvMonVoltageThresholdLow,
		ciscoEnvMonVoltageThresholdHigh,
		ciscoEnvMonVoltageLastShutdown,
		ciscoEnvMonVoltageState,

		ciscoEnvMonTemperatureStatusDescr,
		ciscoEnvMonTemperatureStatusValue,
		ciscoEnvMonTemperatureThreshold,
		ciscoEnvMonTemperatureLastShutdown,
		ciscoEnvMonTemperatureState,

		ciscoEnvMonFanStatusDescr,
		ciscoEnvMonFanState,

		ciscoEnvMonSupplyStatusDescr,
		ciscoEnvMonSupplyState,
		ciscoEnvMonSupplySource,

		ciscoEnvMonEnableShutdownNotification,
		ciscoEnvMonEnableVoltageNotification,
		ciscoEnvMonEnableTemperatureNotification,
		ciscoEnvMonEnableFanNotification,
		ciscoEnvMonEnableRedundantSupplyNotification

	}
	STATUS  current
	DESCRIPTION
		"A collection of objects providing environmental monitoring
		capability to a cisco chassis."
        ::= { ciscoEnvMonMIBGroups 1 }

END

-- ######################################################

--
-- File: cisco/CISCO-SNAPSHOT-MIB.mib
--

-- *****************************************************************
-- CISCO-SNAPSHOT-MIB.my:  Cisco Snapshot MIB file
--
-- August 1994, Jeffrey Johnson Sandra Durham Joel Bion
--
-- Copyright (c) 1994-1996 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************
--


CISCO-SNAPSHOT-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY,
	OBJECT-TYPE,
	Integer32
		FROM SNMPv2-SMI
	RowStatus,
	TruthValue
		FROM SNMPv2-TC
	InterfaceIndex
		FROM IF-MIB
	ciscoMgmt
		FROM CISCO-SMI
	MODULE-COMPLIANCE,
	OBJECT-GROUP
		FROM SNMPv2-CONF
	CiscoNetworkProtocol,
	CiscoNetworkAddress
		FROM CISCO-TC;

ciscoSnapshotMIB MODULE-IDENTITY
	LAST-UPDATED	"9508150000Z"
	ORGANIZATION	"Cisco Systems, Inc."
	CONTACT-INFO
		"       Cisco Systems
			Customer Service

		Postal: 170 W Tasman Drive
			San Jose, CA  95134
			USA

		   Tel: +1 800 553-NETS

		E-mail: cs-snmp@cisco.com"
	DESCRIPTION
		"Snapshot routing MIB"
	REVISION        "9508150000Z"
	DESCRIPTION
		"Specify a correct (non-negative) range for an index
		object.  Also, correct typo which caused syntax conflict."
	REVISION	"9503210000Z"
	DESCRIPTION
		"Miscellaneous updates to the MIB and capabilities."
	REVISION	"9501110000Z"
	DESCRIPTION
		"Initial version of this MIB module."
	::= { ciscoMgmt 19 }

-- Snapshot routing provides easy solutions to two common problems:
-- 
--   1) The need to configure static routes for Dial on Demand Routing (DDR)
--      interfaces.
-- 
--   2) The overhead of periodic updates for routing protocols to remote 
--	branch offices over dedicated serial lines.
-- 
-- When snapshot routing is configured on an interface, it first allows
-- normal routing updates to be sent across the interface for a short
-- period of time. After this user configured period of activity, the
-- routing updates are suspended, and the routes learned on the snapshot
-- interface are 'frozen' in place, putting the interface into a 'frozen
-- period', again user configurable. During this 'frozen' time, changes
-- in network topology are typically not transmitted across the snapshot
-- interface, although some network protocols provide the capability to
-- transmit changes.
-- 
-- The factors to consider in choosing to enable snapshot routing to an
-- interface are:
-- 
--   1) The importance of obtaining quick notification of changes in the
--      network topology at a remote site.
--   2) Whether or not you are using Dial on Demand routing from a remote
--      site to reach a central site or using a dedicated serial link.
-- 
-- If you are using a dedicated serial link, and wish to have
-- up-to-the-minute topology information at a remote site, then snapshot
-- routing is probably not appropriate for you. If, however, the network
-- topology changes less frequently, or if full connectivity to all
-- locations is not important to you, then snapshot routing (with
-- possibly, a few static routes to 'key' remote locations that should
-- always be available) will probably meet your needs well.
-- 
-- If you are using dial on demand routing (DDR), then Snapshot routing
-- is almost certainly an advantage. Before Snapshot routing, all
-- 'desired' destinations needed to be configured with static routes.
-- With Snapshot routing, it is possible to learn the set of remote
-- routes dynamically, and then keep them available while the link is
-- down, avoiding the configuration of any static routes. Again, if there
-- are 'crucial' locations that must always be in the table, it may be
-- best to configure them statically, to ensure constant availability, in
-- case the desired location was temporarily down when the Snapshot route
-- sharing activity was taking place.
-- 
-- Snapshot routing is configured on a 'client/server' basis. One router
-- on the interface is chosen as the 'client' router, and it determines
-- active route-exchange and 'sleeping' times.

ciscoSnapshotMIBObjects OBJECT IDENTIFIER ::= { ciscoSnapshotMIB 1 }

ciscoSnapshotForceActive OBJECT-TYPE
	SYNTAX	    Integer32 
	MAX-ACCESS  read-write
	STATUS	    current
	DESCRIPTION
		"Forces the snapshot state to active for all entries
		of the ciscoSnapshotActivityTable whose 
		ciscoSnapshotIfIndex value is specified as parameter.
		The interface associated with ciscoSnapshotIfIndex 
		must be a client interface.

		Retrieval of this object will return the value of the 
		ciscoSnapshotIfIndex that was last forced into the 
		active state, or 0 if no interfaces have been forced into 
		the active state since the router was reset"
	::= { ciscoSnapshotMIBObjects 1 }

ciscoSnapshotInterfaceTable OBJECT-TYPE
	SYNTAX	    SEQUENCE OF CiscoSnapshotInterfaceEntry
        MAX-ACCESS  not-accessible
	STATUS	    current
	DESCRIPTION
		"A list of Snapshot Routing configuration entries."
	::= { ciscoSnapshotMIBObjects 2 }

ciscoSnapshotInterfaceEntry OBJECT-TYPE
	SYNTAX	    CiscoSnapshotInterfaceEntry
        MAX-ACCESS  not-accessible
	STATUS	    current
	DESCRIPTION
		"A Snapshot Routing configuration entry.

		A management station wishing to create an entry should
		create the associated instance of the row status object.
		It should also modify, either in the same or in successive
		PDUs, the values for the other objects if the defaults are
		not appropriate.

		Once the appropriate instance of all the configuration
		objects have been created, either by an explicit SNMP
		set request or by default, the row status should be set
		to active to initiate the request.  Note that this entire
		procedure may be initiated via a single set request which
		specifies a row status of createAndGo.

		In order to prevent inactive (notReady, or notInService)
		entries from clogging the table, entries will be aged out,
		but an entry will never be deleted within 5 minutes of
		creation."
	INDEX { ciscoSnapshotIfIndex }
	::= { ciscoSnapshotInterfaceTable 1 }

CiscoSnapshotInterfaceEntry ::=
	SEQUENCE {
		ciscoSnapshotIfIndex		InterfaceIndex,
		ciscoSnapshotClient		TruthValue,
		ciscoSnapshotDialer		TruthValue,
		ciscoSnapshotActiveInterval	Integer32,
		ciscoSnapshotQuietInterval	Integer32,
		ciscoSnapshotRetryInterval	Integer32,
		ciscoSnapshotIfUpAction		INTEGER,
		ciscoSnapshotRowStatus  	RowStatus
	}


ciscoSnapshotIfIndex OBJECT-TYPE
	SYNTAX	    InterfaceIndex
	MAX-ACCESS  not-accessible
	STATUS	    current
	DESCRIPTION
		"The interface to which this entry pertains." 
	::= { ciscoSnapshotInterfaceEntry 1 }

ciscoSnapshotClient OBJECT-TYPE
	SYNTAX	    TruthValue
	MAX-ACCESS  read-create
	STATUS	    current
	DESCRIPTION
		"When true, this router is the client snapshot router on
		the interface.  When false, this router is the server
		snapshot router on the interface."
	DEFVAL	    { true }
	::= { ciscoSnapshotInterfaceEntry 2 }

ciscoSnapshotDialer OBJECT-TYPE
	SYNTAX	    TruthValue
	MAX-ACCESS  read-create
	STATUS	    current
	DESCRIPTION
		"Indicates whether or not snapshot routing on this
		interface uses Dial-on-Demand routing."
	DEFVAL	    { false }
	::= { ciscoSnapshotInterfaceEntry 3 }

ciscoSnapshotActiveInterval OBJECT-TYPE
	SYNTAX	    Integer32 (5..1000)
	UNITS	    "minutes"
	MAX-ACCESS  read-create
	STATUS	    current
	DESCRIPTION
		"The amount of time during which routes may be exchanged
		between the client and server routers."
	DEFVAL	    { 5 }
	::= { ciscoSnapshotInterfaceEntry 4 }

ciscoSnapshotQuietInterval OBJECT-TYPE
	SYNTAX	    Integer32 (8..100000)
	UNITS	    "minutes"
	MAX-ACCESS  read-create
	STATUS	    current
	DESCRIPTION
		"The amount of time during which routes are retained and
		frozen between active periods.

		An instance of this object may only be present if the value
		of the associated ciscoSnapshotClient object is true."
	DEFVAL	   {  8 }
	::= { ciscoSnapshotInterfaceEntry 5 }

ciscoSnapshotRetryInterval OBJECT-TYPE
	SYNTAX	    Integer32
	UNITS	    "minutes"
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"The amount of time to wait and retry a route exchange if an
		active period elapses with no routes being exchanged.  For
		example, if an interface is down (or a DDR phone number is
		busy, or a DDR interface is unavailable) during the active
		interval, instead of waiting for the amount of time specified
		by ciscoSnapshotQuietTime to elapse before an attempt is made
		to exchange routing updates again, the attempt is made after
		the amount of time specified by this object has elapsed.
		This value is calculated automatically based on the 
		ciscoSnapshotActiveInterval.

		An instance of this object may only be present if the value
		of the associated ciscoSnapshotClient object is true."

	::= { ciscoSnapshotInterfaceEntry 6 }

ciscoSnapshotIfUpAction OBJECT-TYPE
	SYNTAX	    INTEGER {
			goActive (1),
			noAction (2)
		    }
	MAX-ACCESS  read-create
	STATUS	    current
	DESCRIPTION
		"This object controls the action that takes place when the
		interface associated with this entry transitions to the `up'
		state while snapshot routing on the interface is in quiet
		mode.

		A value of goActive will cause the immediate transition to
		the active state.

		A value of noAction will cause no such transition.  Instead,
		the transition to the active state will occur normally when
		the current quiet period has expired.

		Going active immediately incurs extra routing protocol
		overhead, but allows a fresh set of routing updates be
		exchanged each time the line is brought up.  This is useful
		in a Dial-on-Demand routing environment.

		An instance of this object may only be present if the value
		of the associated ciscoSnapshotClient object is true."
	DEFVAL { goActive }
	::= { ciscoSnapshotInterfaceEntry 7 }

ciscoSnapshotRowStatus OBJECT-TYPE
	SYNTAX	    RowStatus
	MAX-ACCESS  read-create
	STATUS	    current
	DESCRIPTION
		"The status of this table entry.  Once the entry status is
		set to active, the snapshot routing process will be 
		enabled for this interface."
	::= { ciscoSnapshotInterfaceEntry 8 }


ciscoSnapshotActivityTable OBJECT-TYPE
	SYNTAX	    SEQUENCE OF CiscoSnapshotActivityEntry
	MAX-ACCESS  not-accessible
	STATUS	    current
	DESCRIPTION
		"A list of snapshot routing activity entries."
	::= { ciscoSnapshotMIBObjects 3 }

ciscoSnapshotActivityEntry OBJECT-TYPE
	SYNTAX	    CiscoSnapshotActivityEntry
	MAX-ACCESS  not-accessible
	STATUS	    current
	DESCRIPTION
		"A snapshot routing activity entry.

		Entries in this table are added for active row entries
		in the ciscoSnapshotInterfaceTable.  If a row entry in
		the ciscoSnapshotInterfaceTable is set to notInService,
		or deleted, associated entries in this table will be 
		deleted.
	
		Note that if the associated row in the 
		ciscoSnapshotInterfaceTable is for a server router, entries
		in this table will only be present when the server is
		actively involved in snapshot routing updates."
	INDEX { ciscoSnapshotIfIndex, ciscoSnapshotActivityIndex }
	::= { ciscoSnapshotActivityTable 1 }

CiscoSnapshotActivityEntry ::=
	SEQUENCE {
		ciscoSnapshotActivityIndex	Integer32 (0..2147483647),
		ciscoSnapshotActivityState	INTEGER,
		ciscoSnapshotActivityTimer	Integer32,
		ciscoSnapshotExchangeTimer	Integer32,
		ciscoSnapshotDialerMap		Integer32,
		ciscoSnapshotSourceProtocol	CiscoNetworkProtocol,
		ciscoSnapshotSourceAddress	CiscoNetworkAddress,
		ciscoSnapshotProtocolsExchanged	OCTET STRING
	}

ciscoSnapshotActivityIndex OBJECT-TYPE
	SYNTAX	    Integer32 (0..2147483647)
	MAX-ACCESS  not-accessible
	STATUS	    current
	DESCRIPTION
		"An index value that uniquely identifies a Snapshot
		Activity Entry on a given interface."
	::= { ciscoSnapshotActivityEntry 1 }

ciscoSnapshotActivityState OBJECT-TYPE
	SYNTAX	    INTEGER {
			active (1),
			quiet (2),
			serverPostActive (3),
			transitionToQuiet (4),
			transitionToActive (5),
			limbo (6)
		    }  
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"The current state of snapshot routing for this entry.
		active means that routing information may be exchanged.
		quiet, only present on a client snapshot interface,
		means that routes are frozen, and that no routing
		information may be exchanged until the active state is
		reentered.  serverPostActive, only present on a server
		snapshot interface, means that the active period has
		expired, but routing information will still be accepted
		from (but not sent to) the associated client router.
		transitionToQuiet, and transitionToActive, only present
		on a client, are temporary states entered after the active
		state, wherein any down to up transition of the interface
		will cause a move to the quiet or active state, respectively.
		limbo is a temporary state for activity blocks that
		are in the process of being created or destroyed."
	::= { ciscoSnapshotActivityEntry 2 }

ciscoSnapshotActivityTimer OBJECT-TYPE
	SYNTAX	    Integer32
	UNITS	    "minutes"
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"The amount of time remaining in the current state."
	::= { ciscoSnapshotActivityEntry 3 }

ciscoSnapshotExchangeTimer OBJECT-TYPE
	SYNTAX	    Integer32
	UNITS	    "minutes"
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"The amount of time during the last active state, in
		which protocol exchanges occurred. The minimum time required
		to allow updates to be exchanged for a 'successfull update
		cycle' is the greater of 3 minutes, or 1/2 the active time.
		If the ciscoSnapshotExchangeTimer is less than this, the
		quiet state will use the retry interval to determine when next
		to go active.

		An instance of this object will only be present when
		the associated value of ciscoSnapshotClient is true for this
		interface."

	::= { ciscoSnapshotActivityEntry 4 }

ciscoSnapshotDialerMap OBJECT-TYPE
	SYNTAX	    Integer32
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"Index of the dialer map entry associated with this
		snapshot activity record.  A value of 0 indicates
		that no dialer map is associated with this entry.

		An instance of this object will only be present when
		the associated value of ciscoSnapshotDialer is true."
	::= { ciscoSnapshotActivityEntry 5 }

ciscoSnapshotSourceProtocol OBJECT-TYPE
	SYNTAX	    CiscoNetworkProtocol
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"The protocol of the host that initiated the snapshot
		routing activity associated with this record.

		An instance of this object will only be present when
		the associated value of ciscoSnapshotClient is false."
	::= { ciscoSnapshotActivityEntry 6 }

ciscoSnapshotSourceAddress OBJECT-TYPE
	SYNTAX	    CiscoNetworkAddress
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"The address of the host that initiated the snapshot
		routing activity associated with this record.

		An instance of this object will only be present when
		the associated value of ciscoSnapshotClient is false."
	::= { ciscoSnapshotActivityEntry 7 }

ciscoSnapshotProtocolsExchanged OBJECT-TYPE
	SYNTAX	    OCTET STRING (SIZE (0.. 4))
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"An array of bits that indicates whether or not routing
		information has been exchanged for all protocols.  The
		most significant bit of the first octet represents the
		protocol associated with CiscoNetworkProtocol value of 0;
		the least significant bit of the first octet represents
		the protocol associated with CiscoNetworkProtocol value
		of 7; the most significant bit of the second octet
		represents the protocol associated with the
		CiscoNetworkProtocol value of 8; and so forth.
		Routing information for a given protocol has been exchanged
		if the associated bit is set.

		An instance of this object will only be present when
		the associated value of ciscoSnapshotClient is true."
	::= { ciscoSnapshotActivityEntry 8 }


-- conformance information

ciscoSnapshotMIBConformance	OBJECT IDENTIFIER ::= { ciscoSnapshotMIB 2 }
ciscoSnapshotMIBCompliances	OBJECT IDENTIFIER ::= { ciscoSnapshotMIBConformance 1 }
ciscoSnapshotMIBGroups	OBJECT IDENTIFIER ::= { ciscoSnapshotMIBConformance 2 }


-- compliance statements

ciscoSnapshotMIBCompliance MODULE-COMPLIANCE
	STATUS	current
	DESCRIPTION
		"The compliance statement for entities which implement
		the Cisco Snapshot MIB"
	MODULE	-- this module
		MANDATORY-GROUPS { ciscoSnapshotMIBGroup }
	::= { ciscoSnapshotMIBCompliances 1 }

-- units of conformance

ciscoSnapshotMIBGroup OBJECT-GROUP
	OBJECTS {
		ciscoSnapshotForceActive,

		ciscoSnapshotClient,
		ciscoSnapshotDialer,
		ciscoSnapshotActiveInterval,
		ciscoSnapshotQuietInterval,
		ciscoSnapshotRetryInterval,
		ciscoSnapshotIfUpAction,
		ciscoSnapshotRowStatus,

		ciscoSnapshotActivityState,
		ciscoSnapshotActivityTimer,
		ciscoSnapshotExchangeTimer,
		ciscoSnapshotDialerMap,
		ciscoSnapshotSourceProtocol,
		ciscoSnapshotSourceAddress,
		ciscoSnapshotProtocolsExchanged
	}
	STATUS	current
	DESCRIPTION
		"A collection of objects providing snapshot routing 
		 ability to a Cisco agent."
	::= { ciscoSnapshotMIBGroups 1 }

END



-- ######################################################

--
-- File: cisco/CISCO-CDP-MIB.mib
--

-- *****************************************************************
-- CISCO-CDP-MIB.my:  CDP MIB file
--
-- Oct 1994, Arun Sastry
--
-- Copyright (c) 1994-1996 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
--
CISCO-CDP-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE,
	Integer32
		FROM SNMPv2-SMI
	TruthValue, DisplayString
		FROM SNMPv2-TC
	ciscoMgmt
		FROM CISCO-SMI
	CiscoNetworkProtocol, CiscoNetworkAddress
		FROM CISCO-TC
	MODULE-COMPLIANCE, OBJECT-GROUP
		FROM SNMPv2-CONF;

ciscoCdpMIB   MODULE-IDENTITY
	LAST-UPDATED	"9607080000Z"
	ORGANIZATION	"Cisco System Inc."
	CONTACT-INFO
		"	Cisco Systems
			Customer Service

		Postal: 170 West Tasman Drive,
			San Jose CA 95134-1706.
			USA

		   Tel: +1 800 553-NETS

		E-mail: cs-snmp@cisco.com"
	DESCRIPTION
		"The MIB module for management of the Cisco Discovery
		Protocol in Cisco devices."
	REVISION        "9607080000Z"
	DESCRIPTION
		"Obsolete cdpInterfaceMessageInterval and newly
		define cdpGlobal object."
	REVISION        "9508150000Z"
	DESCRIPTION
		"Specify a correct (non-negative) range for several
		index objects."
	REVISION        "9507270000Z"
	DESCRIPTION
		"Correct range of cdpInterfaceMessageInterval."
	REVISION        "9501250000Z"
	DESCRIPTION
		"Move from ciscoExperiment to ciscoMgmt oid subtree."
	::= { ciscoMgmt 23 }

ciscoCdpMIBObjects OBJECT IDENTIFIER ::= { ciscoCdpMIB 1 }

cdpInterface   OBJECT IDENTIFIER ::= { ciscoCdpMIBObjects 1 }
cdpCache       OBJECT IDENTIFIER ::= { ciscoCdpMIBObjects 2 }
cdpGlobal      OBJECT IDENTIFIER ::= { ciscoCdpMIBObjects 3 }













--
-- The CDP Interface Group
--
cdpInterfaceTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CdpInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table containing the status of CDP on
            the device's interfaces."
    ::= { cdpInterface 1 }

cdpInterfaceEntry OBJECT-TYPE
    SYNTAX     CdpInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the cdpInterfaceTable,
            containing the status of CDP on an interface."
    INDEX      { cdpInterfaceIfIndex }
    ::= { cdpInterfaceTable 1 }

CdpInterfaceEntry ::= SEQUENCE {
    cdpInterfaceIfIndex           Integer32 (0..2147483647),
    cdpInterfaceEnable            TruthValue,
    cdpInterfaceMessageInterval   INTEGER,
    cdpInterfaceGroup             Integer32,
    cdpInterfacePort              Integer32
}

cdpInterfaceIfIndex OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The ifIndex value of the local interface.

            For 802.3 Repeaters on which the repeater ports do not
            have ifIndex values assigned, this value is a unique
            value for the port, and greater than any ifIndex value
            supported by the repeater; in this case, the specific
            port is indicated by corresponding values of
            cdpInterfaceGroup and cdpInterfacePort, where these
            values correspond to the group number and port number
            values of RFC 1516."











    ::= { cdpInterfaceEntry 1 }

cdpInterfaceEnable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "An indication of whether the Cisco Discovery Protocol
            is currently running on this interface."
    ::= { cdpInterfaceEntry 2 }

cdpInterfaceMessageInterval OBJECT-TYPE
    SYNTAX     INTEGER (5..900)
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     obsolete   -- replaced by cdpGlobalMessageInterval
                          --  this object should be applied to the
                          --  whole system instead of per interface
    DESCRIPTION
            "The interval at which CDP messages are to be generated
            on this interface.  The default value is 60 seconds."
    ::= { cdpInterfaceEntry 3 }

cdpInterfaceGroup OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This object is only relevant to interfaces which are
            repeater ports on 802.3 repeaters.  In this situation,
            it indicates the RFC1516 group number of the repeater
            port which corresponds to this interface."
    ::= { cdpInterfaceEntry 4 }

cdpInterfacePort OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This object is only relevant to interfaces which are
            repeater ports on 802.3 repeaters.  In this situation,
            it indicates the RFC1516 port number of the repeater
            port which corresponds to this interface."
    ::= { cdpInterfaceEntry 5 }














--
-- The CDP Address Cache Group
--
cdpCacheTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CdpCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table containing the cached
            information obtained via receiving CDP messages."
    ::= { cdpCache 1 }

cdpCacheEntry OBJECT-TYPE
    SYNTAX     CdpCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the cdpCacheTable,
            containing the information received via CDP on one
            interface from one device."
    INDEX      { cdpCacheIfIndex, cdpCacheDeviceIndex }
    ::= { cdpCacheTable 1 }

CdpCacheEntry ::= SEQUENCE {
    cdpCacheIfIndex         Integer32 (0..2147483647),
    cdpCacheDeviceIndex     Integer32 (0..2147483647),
    cdpCacheAddressType     CiscoNetworkProtocol,
    cdpCacheAddress         CiscoNetworkAddress,
    cdpCacheVersion         DisplayString,
    cdpCacheDeviceId        DisplayString,
    cdpCacheDevicePort      DisplayString,
    cdpCachePlatform        DisplayString,
    cdpCacheCapabilities    OCTET STRING
}

cdpCacheIfIndex OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "Normally, the ifIndex value of the local interface.
            For 802.3 Repeaters for which the repeater ports do not
            have ifIndex values assigned, this value is a unique
            value for the port, and greater than any ifIndex value
            supported by the repeater; the specific port number in











            this case, is given by the corresponding value of
            cdpInterfacePort."
    ::= { cdpCacheEntry 1 }

cdpCacheDeviceIndex OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A unique value for each device from which CDP messages
            are being received."
    ::= { cdpCacheEntry 2 }

cdpCacheAddressType OBJECT-TYPE
    SYNTAX     CiscoNetworkProtocol
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An indication of the type of address contained in the
            corresponding instance of cdpCacheAddress."
    ::= { cdpCacheEntry 3 }

cdpCacheAddress OBJECT-TYPE
    SYNTAX     CiscoNetworkAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The (first) network-layer address of the device's
            SNMP-agent as reported in the most recent CDP message.
            For example, if the the corresponding instance of
            cacheAddressType had the value 'ip(1)', then this object
            would be an IP-address."
    ::= { cdpCacheEntry 4 }

cdpCacheVersion OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The Version string as reported in the most recent CDP
            message.  The zero-length string indicates no Version
            field (TLV) was reported in the most recent CDP
            message."
    ::= { cdpCacheEntry 5 }












cdpCacheDeviceId OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The Device-ID string as reported in the most recent CDP
            message.  The zero-length string indicates no Device-ID
            field (TLV) was reported in the most recent CDP
            message."
    ::= { cdpCacheEntry 6 }

cdpCacheDevicePort OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The Port-ID string as reported in the most recent CDP
            message.  This will typically be the value of the ifName
            object (e.g., 'Ethernet0').  The zero-length string
            indicates no Port-ID field (TLV) was reported in the
            most recent CDP message."
    ::= { cdpCacheEntry 7 }

cdpCachePlatform OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The Device's Hardware Platform as reported in the most
            recent CDP message.  The zero-length string indicates
            that no Platform field (TLV) was reported in the most
            recent CDP message."
    ::= { cdpCacheEntry 8 }

cdpCacheCapabilities OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (0..4))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The Device's Functional Capabilities as reported in the
            most recent CDP message.  For latest set of specific
            values, see the latest version of the CDP specification.
            The zero-length string indicates no Capabilities field
            (TLV) was reported in the most recent CDP message."
    REFERENCE "Cisco Discovery Protocol Specification, 10/19/94."











    ::= { cdpCacheEntry 9 }






--
-- The CDP Global Group
--

cdpGlobalRun OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "An indication of whether the Cisco Discovery Protocol
            is currently running."
    DEFVAL     { true }
    ::= { cdpGlobal 1 }

cdpGlobalMessageInterval OBJECT-TYPE
    SYNTAX     INTEGER (5..900)
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The interval at which CDP messages are to be generated.
            The default value is 60 seconds."
    DEFVAL     { 60 }
    ::= { cdpGlobal 2 }

cdpGlobalHoldTime OBJECT-TYPE
    SYNTAX     INTEGER (10..255)
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The time for the receiving device holds CDP message.
            The default value is 180 seconds."
    DEFVAL     { 180 }
    ::= { cdpGlobal 3 }


-- conformance information

ciscoCdpMIBConformance
              OBJECT IDENTIFIER ::= { ciscoCdpMIB 2 }
ciscoCdpMIBCompliances
              OBJECT IDENTIFIER ::= { ciscoCdpMIBConformance 1 }
ciscoCdpMIBGroups
              OBJECT IDENTIFIER ::= { ciscoCdpMIBConformance 2 }


-- compliance statements

ciscoCdpMIBCompliance MODULE-COMPLIANCE
    STATUS  obsolete  -- superseded by ciscoCdpMIBComplianceV11R01
    DESCRIPTION
            "The compliance statement for the CDP MIB."
    MODULE  -- this module
        MANDATORY-GROUPS { ciscoCdpMIBGroup }

    ::= { ciscoCdpMIBCompliances 1 }

ciscoCdpMIBComplianceV11R01 MODULE-COMPLIANCE
    STATUS  obsolete -- superseded by ciscoCdpMIBComplianceV11R02
    DESCRIPTION
            "The compliance statement for the CDP MIB."
    MODULE  -- this module
        MANDATORY-GROUPS { ciscoCdpMIBGroupV11R01 }

    ::= { ciscoCdpMIBCompliances 2 }

ciscoCdpMIBComplianceV11R02 MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for the CDP MIB."
    MODULE  -- this module
        MANDATORY-GROUPS { ciscoCdpMIBGroupV11R02 }

    ::= { ciscoCdpMIBCompliances 3 }


-- units of conformance

ciscoCdpMIBGroup  OBJECT-GROUP
    OBJECTS { cdpInterfaceEnable, cdpInterfaceMessageInterval,
              cdpCacheAddressType, cdpCacheAddress, cdpCacheVersion,
              cdpCacheDeviceId, cdpCacheDevicePort,
              cdpCacheCapabilities, cdpCachePlatform
            }
    STATUS  obsolete -- superseded by ciscoCdpMIBGroupV11R01
    DESCRIPTION
            "A collection of objects for use with the Cisco
            Discovery Protocol."
    ::= { ciscoCdpMIBGroups 1 }

ciscoCdpMIBGroupV11R01  OBJECT-GROUP
    OBJECTS { cdpInterfaceEnable, cdpInterfaceMessageInterval,
              cdpInterfaceGroup, cdpInterfacePort,
              cdpCacheAddressType, cdpCacheAddress, cdpCacheVersion,
              cdpCacheDeviceId, cdpCacheDevicePort,
              cdpCacheCapabilities, cdpCachePlatform
            }
    STATUS  obsolete -- superseded by ciscoCdpMIBGroupV11R02
    DESCRIPTION
            "A collection of objects for use with the Cisco
            Discovery Protocol."
    ::= { ciscoCdpMIBGroups 2 }

ciscoCdpMIBGroupV11R02  OBJECT-GROUP
    OBJECTS { cdpInterfaceEnable,
              cdpInterfaceGroup, cdpInterfacePort,
              cdpCacheAddressType, cdpCacheAddress, cdpCacheVersion,
              cdpCacheDeviceId, cdpCacheDevicePort,
              cdpCacheCapabilities, cdpCachePlatform,
              cdpGlobalRun, cdpGlobalMessageInterval, cdpGlobalHoldTime
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects for use with the Cisco
            Discovery Protocol."
    ::= { ciscoCdpMIBGroups 3 }

END

-- ######################################################

--
-- File: cisco/CISCO-IMAGE-MIB.mib
--

-- *****************************************************************
-- CISCO-IMAGE-MIB.my:  Router Image MIB file
--
-- Jan 1995, Yunsen Wang
--
-- Copyright (c) 1995 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************

CISCO-IMAGE-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY,
	OBJECT-TYPE,
	Integer32
		FROM SNMPv2-SMI
	DisplayString
		FROM SNMPv2-TC
	MODULE-COMPLIANCE,
	OBJECT-GROUP
		FROM SNMPv2-CONF
	ciscoMgmt
		FROM CISCO-SMI;

ciscoImageMIB MODULE-IDENTITY
	LAST-UPDATED	"9508150000Z"
	ORGANIZATION	"Cisco Systems, Inc."
	CONTACT-INFO
		"       Cisco Systems
			Customer Service

		Postal: 170 W Tasman Drive
			San Jose, CA  95134
			USA

		   Tel: +1 800 553-NETS

		E-mail: cs-snmp@cisco.com"
	DESCRIPTION
		"Router image MIB which identify the capabilities
		and characteristics of the image"
	REVISION        "9508150000Z"
	DESCRIPTION
		"Specify a correct (non-negative) range for an index
		object."
	REVISION	"9501160000Z"
	DESCRIPTION
		"Initial version of this MIB module."
	::= { ciscoMgmt 25 }


          -- This group is present in all IOS based products.


ciscoImageMIBObjects OBJECT IDENTIFIER ::= { ciscoImageMIB 1 }

ciscoImageTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF CiscoImageEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"A table provides content information describing the 
		executing IOS image."
	::= { ciscoImageMIBObjects 1 }

ciscoImageEntry OBJECT-TYPE
	SYNTAX     CiscoImageEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"A image characteristic string entry."
	INDEX { ciscoImageIndex }
	::= { ciscoImageTable 1 }


CiscoImageEntry ::=
	SEQUENCE {
		ciscoImageIndex		Integer32 (0..2147483647),
		ciscoImageString	DisplayString
	}


ciscoImageIndex OBJECT-TYPE
	SYNTAX     Integer32 (0..2147483647) 
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"A sequence number for each string stored
		in the IOS image."
	::= { ciscoImageEntry 1 }

ciscoImageString OBJECT-TYPE
	SYNTAX     DisplayString
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The string of this entry."
	::= { ciscoImageEntry 2 }

	
	-- conformance information

ciscoImageMIBConformance OBJECT IDENTIFIER ::= { ciscoImageMIB 2 }
ciscoImageMIBCompliances OBJECT IDENTIFIER ::= { ciscoImageMIBConformance 1 }
ciscoImageMIBGroups      OBJECT IDENTIFIER ::= { ciscoImageMIBConformance 2 }

	-- compliance statements

ciscoImageMIBCompliance MODULE-COMPLIANCE
	STATUS current
	DESCRIPTION
		"The compliance statement for entities which implement
		the Cisco Image MIB"
	MODULE	-- this module
		MANDATORY-GROUPS { ciscoImageMIBGroup }
	::= { ciscoImageMIBCompliances 1 }

	-- units of conformance

ciscoImageMIBGroup OBJECT-GROUP
	OBJECTS {
	ciscoImageString
	}
	STATUS current
	DESCRIPTION
		"A collection of objects providing IOS image characteristics"
	::= { ciscoImageMIBGroups 1 }


END

-- ######################################################

--
-- File: cisco/CISCO-STUN-MIB.mib
--

-- *****************************************************************
-- CISCO-STUN-MIB.my: Cisco STUN MIB
--
-- April 1995, Bob Clouston
--
-- Copyright (c) 1995 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
--

CISCO-STUN-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
	Counter32,  IpAddress
		FROM SNMPv2-SMI
	MODULE-COMPLIANCE, OBJECT-GROUP
		FROM SNMPv2-CONF
	ifIndex, InterfaceIndex
		FROM IF-MIB
	TruthValue
		FROM SNMPv2-TC 
	ciscoMgmt
		FROM CISCO-SMI;


ciscoStunMIB MODULE-IDENTITY
	LAST-UPDATED	"9508210000Z"
	ORGANIZATION	"Cisco Systems, Inc."
	CONTACT-INFO
		"	Cisco Systems
			Customer Service
                     
		Postal: 170 W. Tasman Drive
			San Jose, CA 95134
			USA

		   Tel: +1 800 553-NETS
		e-mail: cs-snmp@cisco.com"
	DESCRIPTION
		"The MIB module for serial Tunneling.

   Overview of STUN MIB
  
   MIB description
   
   The STUN MIB provides the configuration and operational information 
   on Cisco's serial tunnelling implementation.  The following entities
   are managed:
    1) Global STUN information
    2) STUN groups
    3) STUN ports
    4) STUN routes
  
   The following example configuration shows how the STUN MIB returns
   STUN information, from either CISCO A or CISCO B.
  
    HOST == SDLC == Cisco A == IP Network == Cisco B == SDLC  == SDLC
            line                                        line     device
  
   1) The STUN global entry identifies the IP address by which the
      router is known to other STUN peers.
   2) The STUN group table identifies the STUN group number and protocol
      type that Cisco A and Cisco B use to route SDLC traffic over the 
      IP network.  The table contains an entry for each STUN group
      defined on the router.
   3) The STUN port table identifies the serial interface to the SDLC 
      line for which the router is doing serial tunnelling.  The MIB also
      identifies the STUN group this interface is defined for, and
      identifies the default routing for unrecognized SDLC addresses.
      There is a port entry for each STUN-enabled interface on the router.
   4) The STUN route table has an entry for each address defined for
      routing within the STUN group, and an entry for the default routing
      if the 'stun route all' command is configured.  The route entry
      includes identification of the STUN peer, priority, state, whether
      local acknowledgment is enabled, and packet and byte counters.
   "
	REVISION	"9508210000Z"
	DESCRIPTION
		"Added revision clause, formatting cleanup."
	REVISION	"9503170000Z"
	DESCRIPTION
		"Initial version of this MIB module."
	::= { ciscoMgmt 30 }

stunObjects   OBJECT IDENTIFIER ::= { ciscoStunMIB 1}
stunGlobal    OBJECT IDENTIFIER ::= { stunObjects 1}
stunGroups    OBJECT IDENTIFIER ::= { stunObjects 2}
stunPorts     OBJECT IDENTIFIER ::= { stunObjects 3}
stunRoutes    OBJECT IDENTIFIER ::= { stunObjects 4}

-- ******************************************************************
-- * global values for router
-- ******************************************************************
  
stunIPAddr OBJECT-TYPE
    SYNTAX IpAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The configured IP address used for all serial tunnelling
         in this router."
    ::= { stunGlobal 1 }

-- ******************************************************************
-- * stun Group Table
-- ******************************************************************

stunGroupTable OBJECT-TYPE
    SYNTAX SEQUENCE OF StunGroupEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of entries representing STUN groups configured on the
         router.  Each STUN-enabled interface is assigned to a STUN
         group, and packets can only travel between STUN-enabled
         interfaces in the same group."
    ::= { stunGroups 1 }

stunGroupEntry OBJECT-TYPE
    SYNTAX StunGroupEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Status and parameter values for a group."
    INDEX { stunGroupIndex }
    ::= { stunGroupTable 1 }

StunGroupEntry ::=
    SEQUENCE {
        stunGroupIndex
            INTEGER,
        stunProtocolType
            INTEGER
    }


stunGroupIndex OBJECT-TYPE
    SYNTAX INTEGER (1..255)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The configured STUN group number."
    ::= { stunGroupEntry 1 }

stunProtocolType OBJECT-TYPE
    SYNTAX INTEGER
     {
      basic(1),   -- non-SDLC, such as HDLC 
      sdlc(2),    -- SDLC protocol
      sdlctg(3),  -- SNA transmission group
      custom(4)    -- customer-defined protocol
     }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The protocol type for this STUN group."
    ::= { stunGroupEntry 2 }

-- ******************************************************************
-- * stun Port Table
-- ******************************************************************

stunPortTable OBJECT-TYPE
    SYNTAX SEQUENCE OF StunPortEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A list of STUN-enabled interfaces (ports)."
    ::= { stunPorts 1 }

stunPortEntry OBJECT-TYPE
    SYNTAX StunPortEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Status and parameter values for a STUN port."
    INDEX { ifIndex }
    ::= { stunPortTable 1 }

StunPortEntry ::=
    SEQUENCE {
        stunPortGroupIndex
            INTEGER,
        stunPortDefaultPeerType
            INTEGER,
        stunPortDefaultPeerIP   
            IpAddress,
        stunPortDefaultPeerSerialInterface  
            InterfaceIndex
    }

stunPortGroupIndex OBJECT-TYPE
    SYNTAX INTEGER (1..255)
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The group number to which the stun port
         belongs.  Frames will only be routed to other 
         ports (on this or another router) in the same 
         stun group.  This group must match a stunGroupIndex
         in the stunGroupTable."
    ::= { stunPortEntry 1 }


stunPortDefaultPeerType OBJECT-TYPE
    SYNTAX INTEGER 
     { 
      other(1), 
      ip(2), 
      direct(3), 
      frameRelay(4) 
     }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The type of identification of the default partner 
         for unrecognized addresses. If there
         is no default route then the stunRouteType
         field of stunPortDefaultRemote is 'other'.
         If ip then the value is in stunRouteIP; if serial or
         serialDirect then the value is in stunRouteSerial."
    ::= { stunPortEntry 2 }

stunPortDefaultPeerIP OBJECT-TYPE
    SYNTAX IpAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The ip address of the remote default STUN partner,
         for unrecognized addresses.  
         0.0.0.0 is returned if the default route type is not ip."
    ::= { stunPortEntry 3 }

stunPortDefaultPeerSerialInterface OBJECT-TYPE
    SYNTAX InterfaceIndex
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "If stunRouteType is serial then this is the 
         serial interface index of the point-to-point
         link to the remote partner; 
         if stunRouteType is serialDirect then the 
         partner is in the local STUN.
         if stunRouteType is ip then this field is
         0."
    ::= { stunPortEntry 4 }

-- ******************************************************************
-- * Route Table
-- ******************************************************************

stunRouteTable OBJECT-TYPE
    SYNTAX   SEQUENCE OF StunRouteEntry
    MAX-ACCESS   not-accessible
    STATUS   current
    DESCRIPTION
       "A table containing information about specific SDLC
        addresses.  There is one table entry for each SDLC
        address configured by the STUN ROUTE command."
    ::= { stunRoutes 1 }

stunRouteEntry OBJECT-TYPE
    SYNTAX   StunRouteEntry
    MAX-ACCESS   not-accessible
    STATUS   current
    DESCRIPTION
       "The information regarding a single STUN address."
    INDEX { stunGroupIndex, stunRouteStationAddress }
    ::= { stunRouteTable 1 }


StunRouteEntry ::=
    SEQUENCE {
         stunRouteStationAddress
            INTEGER,
         stunRouteType
            INTEGER,
         stunRouteRemoteIP   
            IpAddress,
         stunRouteSerialInterface  
            InterfaceIndex,
         stunRoutePriority
            INTEGER,
         stunRoutePeerState
            INTEGER,
         stunRouteLocalAck
            TruthValue,
         stunRouteRxPackets
            Counter32,
         stunRouteTxPackets
            Counter32,
         stunRouteRxBytes
            Counter32,
         stunRouteTxBytes
            Counter32
    }

stunRouteStationAddress OBJECT-TYPE
    SYNTAX INTEGER(1..256)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The poll address of the station.  256 indicates the ALL parameter
         on the STUN ROUTE command, which is the route for all 
         unrecognized addresses." 
    ::= { stunRouteEntry 1 }

stunRouteType OBJECT-TYPE
    SYNTAX INTEGER 
     { 
      other(1), 
      ip(2), 
      direct(3), 
      frameRelay(4) 
     }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The type of identification of the remote partner."
    ::= { stunRouteEntry 2 }

stunRouteRemoteIP OBJECT-TYPE
    SYNTAX IpAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The ip address of the remote STUN partner. 
         0.0.0.0 if partner type is not ip."
    ::= { stunRouteEntry 3 }

stunRouteSerialInterface OBJECT-TYPE
    SYNTAX InterfaceIndex
    MAX-ACCESS read-only 
    STATUS current
    DESCRIPTION
        "The local interface index to the remote partner.
         0 is returned if the partner type is not direct or frameRelay."
   ::= { stunRouteEntry 4 }

stunRoutePriority OBJECT-TYPE
    SYNTAX INTEGER 
     {
      low(1), 
      normal(2), 
      medium(3), 
      high(4)
     }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The priority with which this station's traffic will
         be routed across the network."
    ::= { stunRouteEntry 5 }
            
stunRoutePeerState OBJECT-TYPE
    SYNTAX INTEGER 
     {
      dead(1), 
      closed(2), 
      opening(3), 
      openWait(4),
      connected(5), 
      direct(6)
     }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The state of the peer connection through the
         STUN tunnel."
    ::= { stunRouteEntry 6 }
            
stunRouteLocalAck OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
       "Indicates if the STUN connection is locally acknowledged.       
        TRUE-> STUN connection is locally acknowledged
        FALSE-> STUN connection is not locally acknowledged
       " 
    ::= { stunRouteEntry 7 }
    
stunRouteRxPackets OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Count of frames received from the serial
         interface with this station's address."
    ::= { stunRouteEntry 8 }

stunRouteTxPackets OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Count of frames transmitted at the serial
         interface with this station's address."
    ::= { stunRouteEntry 9 }

stunRouteRxBytes OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Count of bytes received from the serial
         interface with this station's address."
    ::= { stunRouteEntry 10 }

stunRouteTxBytes OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Count of bytes transmitted at the serial
         interface with this station's address."
    ::= { stunRouteEntry 11 }

-- *************************************************************************
-- * STUN notifications               
-- *************************************************************************

stunNotificationPrefix OBJECT IDENTIFIER ::= { ciscoStunMIB 2 }
stunNotifications OBJECT IDENTIFIER ::= { stunNotificationPrefix 0 }

stunPeerStateChangeNotification NOTIFICATION-TYPE
     OBJECTS { stunRoutePeerState }
     STATUS      current
     DESCRIPTION
        "This notification indicates that the state of a STUN route
         has transitioned to active (connected or direct) or inactive
         (dead or closed)."
     ::= { stunNotifications 1 }
     

-- *************************************************************************
-- * Conformance Information
-- *************************************************************************
--

stunMibConformance   OBJECT IDENTIFIER ::= { ciscoStunMIB 3 }
stunMibCompliances   OBJECT IDENTIFIER ::= { stunMibConformance 1 }
stunMibGroups        OBJECT IDENTIFIER ::= { stunMibConformance 2 }
--
-- *************************************************************************
-- * Compliance Statements
-- *************************************************************************
stunMibCompliance    MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
                "The compliance statement for STUN."
        MODULE  -- this module
                MANDATORY-GROUPS {
                        stunGlobalGroup,
			stunGroupGroup,
                        stunPortGroup,
                        stunRouteGroup
		}
         ::= { stunMibCompliances 1 }
         
stunGlobalGroup OBJECT-GROUP
        OBJECTS {
                stunIPAddr
        }
        STATUS current
        DESCRIPTION
                "A collection of objects providing global STUN information."
        ::= { stunMibGroups 1}
         
stunGroupGroup OBJECT-GROUP
        OBJECTS {
                stunProtocolType
        }
        STATUS current
        DESCRIPTION
                "A collection of objects providing information about 
                 STUN groups ."
        ::= { stunMibGroups 2 }

stunPortGroup OBJECT-GROUP
        OBJECTS {
                stunPortGroupIndex,
                stunPortDefaultPeerType,
                stunPortDefaultPeerIP,
                stunPortDefaultPeerSerialInterface
        }
        STATUS current
        DESCRIPTION
                "A collection of objects providing information about
                 STUN enabled interfaces."
        ::= { stunMibGroups 3}
stunRouteGroup OBJECT-GROUP
        OBJECTS {
                stunRouteType,
                stunRouteRemoteIP,
                stunRouteSerialInterface,
                stunRoutePriority,
                stunRoutePeerState,
                stunRouteLocalAck,
                stunRouteRxPackets,
                stunRouteTxPackets,
                stunRouteRxBytes,
                stunRouteTxBytes
        }
        STATUS current
        DESCRIPTION
                "A collection of objects providing information about
                 STUN defined routes."
        ::= { stunMibGroups 4}
END

-- ######################################################

--
-- File: cisco/CISCO-QUEUE-MIB.mib
--

-- *****************************************************************
-- MIB for FIFO, Priority, Custom, and Fair Queuing
--
-- May 1995, Fred Baker
--
-- Copyright (c) 1995-1996 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

CISCO-QUEUE-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE,
	Counter32, Integer32, Gauge32
		FROM SNMPv2-SMI
	MODULE-COMPLIANCE, OBJECT-GROUP
		FROM SNMPv2-CONF
	TEXTUAL-CONVENTION
		FROM SNMPv2-TC
	ifIndex
		FROM RFC1213-MIB
	ciscoMgmt
		FROM CISCO-SMI;

ciscoQueueMIB MODULE-IDENTITY
	LAST-UPDATED	"9505310000Z"
	ORGANIZATION	"Cisco Systems, Inc."
	CONTACT-INFO
		"	Cisco Systems
			Customer Service
	
		Postal: 170 West Tasman Drive
			San Jose, CA  95134
			USA
	
		Tel:	+1 800 553-NETS
	
		E-mail: cs-snmp@cisco.com"
	DESCRIPTION
		"This is the MIB module for objects used to manage
		interface queuing in Cisco devices."
	REVISION        "9508210000Z"
	DESCRIPTION
		"Minor cleanups to pacify mib compiler."
	::= { ciscoMgmt 37 }

ciscoQueueObjects OBJECT IDENTIFIER ::= { ciscoQueueMIB 1 }
ciscoQueueTraps OBJECT IDENTIFIER ::= { ciscoQueueMIB 2 }
ciscoQueueConformance OBJECT IDENTIFIER ::= { ciscoQueueMIB 3 }

CQAlgorithm ::= TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
        "The type of queuing algorithm used on the interface."
    SYNTAX      INTEGER {
	fifo(1),	-- First In First Out
	priority(2),	-- Priority Queuing
	custom(3),	-- Custom Queuing
	weightedFair(4)	-- Weighted Fair Queuing
    }

-- END OF TC

-- Queue Interface Table
--
-- This table describes Cisco specific queuing extensions

cQIfTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CQIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"This table contains objects that describe the queues on a
	Cisco Interface.

	An interface queue is modeled as a collection of one or more
	secondary queues that feed into a device's hardware queue. The
	hardware queue has a maximum depth set by the MCI tx-queue-limit
	command or equivalent. The secondary queues (also known as the
	'hold queue') have maximum depths set by the hold-queue command
	or equivalent.

	This table parallels the ifTable, and indicates the type of
	queuing in use on the interface, number of queues, and similar
	parameters."
    ::= { ciscoQueueObjects 1 }

cQIfEntry OBJECT-TYPE
    SYNTAX      CQIfEntry
    MAX-ACCESS not-accessible
    STATUS      current
    DESCRIPTION
	"A list of queue attributes for an interface."
    INDEX   { ifIndex }
    ::= { cQIfTable 1 }

CQIfEntry ::= SEQUENCE {
    cQIfQType	CQAlgorithm,
    cQIfTxLimit	Integer32,
    cQIfSubqueues	Integer32
}

cQIfQType OBJECT-TYPE
    SYNTAX      CQAlgorithm
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The type of queuing used in the Hold Queue.

	First In First Out Queuing implies that the interface always
	transmits messages in the order that they are received.

	Priority Queuing sorts messages out by the use of access lists.
	Messages in a higher priority queue are always sent in
	preference to messages in a lower priority queue.

	Custom Queuing sorts messages out by the use of access lists.
	Sub-queues are selected in round robin order as either the
	sub-queue is drained or a given number of octets is moved from
	the sub-queue to the transmission queue.

	Weighted Fair Queuing sorts messages by 'conversation', which
	is source-destination pair of addresses and sockets or ports,
	as defined by the network layer protocol. Messages are removed
	from queues in a sequence that gives each conversation a
	proportion of the available bandwidth."
    ::= { cQIfEntry 1 }

cQIfTxLimit OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The maximum number of messages placed into the hardware
	transmission queue. This is a first come first serve queue, fed
	by the hold queue.  If the hold queue contains information,
	this queue is presumably full."
    ::= { cQIfEntry 2 }

cQIfSubqueues OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The number of sub-queues of which the hold queue is built.
	This is a constant for each value of cQIfQType."
    ::= { cQIfEntry 3 }

-- Sub-Queue Statistics Table
--
-- This table describes Cisco specific queuing extensions

cQStatsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CQStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"This table contains statistical objects that for the
	sub-queues of a Cisco Interface."
    ::= { ciscoQueueObjects 2 }

cQStatsEntry OBJECT-TYPE
    SYNTAX      CQStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A list of sub-queue attributes for an interface."
    INDEX   { ifIndex, cQStatsQNumber }
    ::= { cQStatsTable 1 }

CQStatsEntry ::= SEQUENCE {
    cQStatsQNumber	Integer32 (0..2147483647),
    cQStatsDepth	Gauge32,
    cQStatsMaxDepth	Integer32,
    cQStatsDiscards	Counter32
}

cQStatsQNumber OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"The number of the queue within the queue set.

	In FIFO queuing, this value is always 2.

	In Priority Queuing, it corresponds to the various priorities:

    		high = 0
    		medium = 1
    		normal = 2
    		low = 3

	In Custom Queuing, it is the queue number referenced in the
	access list.

	In Weighted Fair Queuing, it is the queue number associated
	with the traffic stream (conversation) identified."
    ::= { cQStatsEntry 1 }

cQStatsDepth OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The number of messages in the sub-queue."
    ::= { cQStatsEntry 2 }

cQStatsMaxDepth OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The maximum number of messages permitted in the sub-queue."
    ::= { cQStatsEntry 3 }

cQStatsDiscards OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The number of messages discarded from this queue since restart
	by reason of enqueue at a time that cQStatsDepth >= cQStatsMaxDepth."
    ::= { cQStatsEntry 4 }

-- Custom Queue Rotation Table
--
-- This table describes Cisco specific queuing extensions

cQRotationTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CQRotationEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"This table describes the rotation of Custom Queuing on an
	Interface."
    ::= { ciscoQueueObjects 3 }

cQRotationEntry OBJECT-TYPE
    SYNTAX      CQRotationEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"Custom Queuing sub-queue attributes for an interface."
    INDEX   { ifIndex, cQStatsQNumber }
    ::= { cQRotationTable 1 }

CQRotationEntry ::= SEQUENCE {
    cQRotationOctets	Integer32
}

cQRotationOctets OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The number of octets which may be transmitted from a custom
	queuing sub-queue before it must yield to another queue."
    ::= { cQRotationEntry 1 }

--
-- Conformance Information
--

cQCompliances   OBJECT IDENTIFIER ::= { ciscoQueueConformance 1 }
cQGroups        OBJECT IDENTIFIER ::= { ciscoQueueConformance 2 }

--
-- Compliance Statements
--

cQCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "The core compliance statement for all queued interfaces."
    MODULE
        MANDATORY-GROUPS { cQIfGroup, cQStatsGroup, cQRotationGroup }
    ::= { cQCompliances 1 }

--
-- Core Conformance Groups for All Link Stations
--

cQIfGroup    OBJECT-GROUP
    OBJECTS { cQIfQType, cQIfTxLimit, cQIfSubqueues }
    STATUS current
    DESCRIPTION
	"The configuration of queuing on the interface.  Interface
	Queuing statistics (ifOutQDepth and ifOutDiscards) are kept in
	the interface table."
    ::= { cQGroups 1 }

cQStatsGroup OBJECT-GROUP
    OBJECTS { cQStatsDepth, cQStatsMaxDepth, cQStatsDiscards }
    STATUS current
    DESCRIPTION
	"The statistics for individual queues in the interface queuing
	system."
    ::= { cQGroups 2 }

cQRotationGroup OBJECT-GROUP
    OBJECTS { cQRotationOctets }
    STATUS current
    DESCRIPTION
	"The Custom Queuing queue rotation weights."
    ::= { cQGroups 3 }
END

-- ######################################################

--
-- File: cisco/CISCO-CONFIG-MAN-MIB.mib
--

-- *****************************************************************
-- CISCO-CONFIG-MAN-MIB.my:  Configuration Management MIB
--
-- April 1995, Bob Stewart
--
-- Copyright (c) 1995-1996 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************

CISCO-CONFIG-MAN-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY,
	OBJECT-TYPE,
	NOTIFICATION-TYPE,
	TimeTicks,
	Integer32,
	Counter32,
	IpAddress
		FROM SNMPv2-SMI
	MODULE-COMPLIANCE, OBJECT-GROUP
		FROM SNMPv2-CONF
	DisplayString,
	TEXTUAL-CONVENTION
		FROM SNMPv2-TC
	ciscoMgmt
		FROM CISCO-SMI;


ciscoConfigManMIB MODULE-IDENTITY
	LAST-UPDATED	"9511280000Z"
	ORGANIZATION	"Cisco Systems, Inc."
	CONTACT-INFO
		"       Cisco Systems
			Customer Service

		Postal: 170 W Tasman Drive
			San Jose, CA  95134
			USA

		   Tel: +1 800 553-NETS

		E-mail: cs-snmp@cisco.com"
	DESCRIPTION
		"Configuration management MIB.

		The MIB represents a model of configuration data that
		exists in various locations:

		running		in use by the running system
		terminal	operator's mind or attached hardware
		local		saved locally in NVRAM or flash
		remote		saved to some server on the network

		Although some of the system functions that relate here
		can be used for general file storage and transfer, this
		MIB intends to include only such operations as clearly
		relate to configuration.  Its primary emphasis is to
		track changes and saves of the running configuration.

		As saved data moves further from startup use, such as
		into different local flash files or onto the network,
		tracking becomes difficult to impossible, so the MIB's
		interest and functions are confined in that area."
	REVISION	"9511280000Z"
	DESCRIPTION
		"Initial version of this MIB module."
	::= { ciscoMgmt 43 }


ciscoConfigManMIBObjects OBJECT IDENTIFIER ::= { ciscoConfigManMIB 1 }

ccmHistory		OBJECT IDENTIFIER ::= { ciscoConfigManMIBObjects 1 }


-- Textual Conventions

HistoryEventMedium ::= TEXTUAL-CONVENTION
	STATUS     current
	DESCRIPTION
		"The source or destination of a configuration change,
		save, or copy.

		erase		erasing destination (source only)
		running		live operational data
		commandSource	the command source itself
		startup		what the system will use next reboot
		local		local NVRAM or flash
		networkTftp	network host via Trivial File Transfer
		networkRcp	network host via Remote Copy
		"
       	SYNTAX  INTEGER { erase(1), commandSource(2), running(3), 
			  startup(4), local(5), 
			  networkTftp(6), networkRcp(7) }

-- END OF TC

-- Configuration History

ccmHistoryRunningLastChanged OBJECT-TYPE
	SYNTAX     TimeTicks
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The value of sysUpTime when the running configuration
		was last changed.

		If the value of ccmHistoryRunningLastChanged is greater than
		ccmHistoryRunningLastSaved, the configuration has been
		changed but not saved."
	::= { ccmHistory 1 }

ccmHistoryRunningLastSaved OBJECT-TYPE
	SYNTAX     TimeTicks
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The value of sysUpTime when the running configuration
		was last saved (written).

		If the value of ccmHistoryRunningLastChanged is greater than
		ccmHistoryRunningLastSaved, the configuration has been
		changed but not saved.

		What constitutes a safe saving of the running
		configuration is a management policy issue beyond the
		scope of this MIB.  For some installations, writing the
		running configuration to a terminal may be a way of
		capturing and saving it.  Others may use local or
		remote storage.  Thus ANY write is considered saving
		for the purposes of the MIB."
	::= { ccmHistory 2 }

ccmHistoryStartupLastChanged OBJECT-TYPE
	SYNTAX     TimeTicks
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The value of sysUpTime when the startup configuration
		was last written to.  In general this is the
		default configuration used when cold starting the
		system.  It may have been changed by a save of the
		running configuration or by a copy from elsewhere."
	::= { ccmHistory 3 }

ccmHistoryMaxEventEntries OBJECT-TYPE
	SYNTAX     Integer32 (0..2147483647)
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The maximum number of entries that can be held in
		ccmHistoryEventTable.

		The recommended value for implementations is 10."
	::= { ccmHistory 4 }

ccmHistoryEventEntriesBumped OBJECT-TYPE
	SYNTAX     Counter32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The number of times the oldest entry in ccmHistoryEventTable
		was deleted to make room for a new entry."
	::= { ccmHistory 5 }


ccmHistoryEventTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF CcmHistoryEventEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"A table of configuration events on this router."
	::= { ccmHistory 6 }

ccmHistoryEventEntry OBJECT-TYPE
	SYNTAX     CcmHistoryEventEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"Information about a configuration event on this router."
	INDEX	{ ccmHistoryEventIndex }
	::= { ccmHistoryEventTable 1 }

CcmHistoryEventEntry ::=
    SEQUENCE {
	ccmHistoryEventIndex
		Integer32,
	ccmHistoryEventTime
		TimeTicks,
	ccmHistoryEventCommandSource
       		INTEGER,
	ccmHistoryEventConfigSource
       		HistoryEventMedium,
	ccmHistoryEventConfigDestination
       		HistoryEventMedium,
	ccmHistoryEventTerminalType
		INTEGER,
	ccmHistoryEventTerminalNumber
		Integer32,
	ccmHistoryEventTerminalUser
		DisplayString,
	ccmHistoryEventTerminalLocation
		DisplayString,
	ccmHistoryEventCommandSourceAddress
		IpAddress,
	ccmHistoryEventVirtualHostName
		DisplayString,
	ccmHistoryEventServerAddress
		IpAddress,
	ccmHistoryEventFile
		DisplayString,
	ccmHistoryEventRcpUser
		DisplayString
    }

ccmHistoryEventIndex OBJECT-TYPE
	SYNTAX     Integer32 (1..2147483647)
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"A monotonically increasing integer for the sole purpose of
		indexing events.  When it reaches the maximum value, an
		extremely unlikely event, the agent wraps the value back
		to 1 and may flush existing entries."
	::= { ccmHistoryEventEntry 1 }

ccmHistoryEventTime OBJECT-TYPE
	SYNTAX     TimeTicks
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The value of sysUpTime when the event occurred."
	::= { ccmHistoryEventEntry 2 }

ccmHistoryEventCommandSource OBJECT-TYPE
       	SYNTAX  INTEGER { commandLine(1), snmp(2) }
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The source of the command that instigated the event."
	::= { ccmHistoryEventEntry 3 }

ccmHistoryEventConfigSource OBJECT-TYPE
       	SYNTAX  HistoryEventMedium
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The configuration data source for the event."
	::= { ccmHistoryEventEntry 4 }

ccmHistoryEventConfigDestination OBJECT-TYPE
       	SYNTAX  HistoryEventMedium
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The configuration data destination for the event."
	::= { ccmHistoryEventEntry 5 }

ccmHistoryEventTerminalType OBJECT-TYPE
	SYNTAX	INTEGER {
		notApplicable(1),
		unknown(2),
		console(3),
		terminal(4),
		virtual(5),
		auxiliary(6)
		}						
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"If ccmHistoryEventCommandSource is 'commandLine',
		the terminal type, otherwise 'notApplicable'."
	::= { ccmHistoryEventEntry 6 }

ccmHistoryEventTerminalNumber OBJECT-TYPE
	SYNTAX     Integer32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"If ccmHistoryEventCommandSource is 'commandLine',
		the terminal number.  The value is -1 if not available
		or not applicable."
	::= { ccmHistoryEventEntry 7 }

ccmHistoryEventTerminalUser OBJECT-TYPE
-- ??? Check max size.
	SYNTAX     DisplayString (SIZE (0..64))
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"If ccmHistoryEventCommandSource is 'commandLine',
		the name of the logged in user.  The length is zero if
		not available or not applicable."
	::= { ccmHistoryEventEntry 8 }

ccmHistoryEventTerminalLocation OBJECT-TYPE
-- ??? Check max size.
	SYNTAX     DisplayString (SIZE (0..64))
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"If ccmHistoryEventCommandSource is 'commandLine',
		the hard-wired location of the terminal or the remote host
		for an incoming connection.  The length is zero if not
		available or not applicable."
	::= { ccmHistoryEventEntry 9 }

ccmHistoryEventCommandSourceAddress OBJECT-TYPE
	SYNTAX     IpAddress
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"If ccmHistoryEventTerminalType is 'virtual', the internet
		address of the connected system.

		If ccmHistoryEventCommandSource is 'snmp', the internet
		address of the requester.

		The value is 0.0.0.0 if not available or not applicable."
	::= { ccmHistoryEventEntry 10 }

ccmHistoryEventVirtualHostName OBJECT-TYPE
-- ??? Check max size.
	SYNTAX     DisplayString (SIZE (0..64))
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"If ccmHistoryEventTerminalType is 'virtual', the host
		name of the connected system.  The length is zero if
		not available or not applicable."
	::= { ccmHistoryEventEntry 11 }

ccmHistoryEventServerAddress OBJECT-TYPE
	SYNTAX     IpAddress
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"If ccmHistoryEventConfigSource or
		ccmHistoryEventConfigDestination is 'networkTftp' or
		'networkRcp', the internet address of the storage file
		server.  The value is 0.0.0.0 if not applicable or not
		available."
	::= { ccmHistoryEventEntry 12 }

ccmHistoryEventFile OBJECT-TYPE
-- ??? Check max size.
	SYNTAX     DisplayString (SIZE (0..64))
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"If ccmHistoryEventConfigSource or
		ccmHistoryEventConfigDestination is 'networkTftp' or
		'networkRcp', the configuration file name at the
		storage file server.  The length is zero if not
		available or not applicable."
	::= { ccmHistoryEventEntry 13 }

ccmHistoryEventRcpUser OBJECT-TYPE
-- ??? Check max size.
	SYNTAX     DisplayString (SIZE (0..64))
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"If ccmHistoryEventConfigSource or
		ccmHistoryEventConfigDestination is 'networkRcp', the
		remote user name.  The length is zero if not applicable
		or not available."
	::= { ccmHistoryEventEntry 14 }


-- Notifications

ciscoConfigManMIBNotificationPrefix OBJECT IDENTIFIER ::= { ciscoConfigManMIB 2 }
ciscoConfigManMIBNotifications OBJECT IDENTIFIER ::= { ciscoConfigManMIBNotificationPrefix 0 }

ciscoConfigManEvent NOTIFICATION-TYPE
       OBJECTS { ccmHistoryEventCommandSource, 
		 ccmHistoryEventConfigSource,
		 ccmHistoryEventConfigDestination }
       STATUS  current
       DESCRIPTION
		"Notification of a configuration management event as
		recorded in ccmHistoryEventTable."
	::= { ciscoConfigManMIBNotifications 1 }

	
-- Conformance

ciscoConfigManMIBConformance OBJECT IDENTIFIER ::= { ciscoConfigManMIB 3 }
ciscoConfigManMIBCompliances OBJECT IDENTIFIER ::= { ciscoConfigManMIBConformance 1 }
ciscoConfigManMIBGroups      OBJECT IDENTIFIER ::= { ciscoConfigManMIBConformance 2 }

-- Compliance

ciscoConfigManMIBCompliance MODULE-COMPLIANCE
	STATUS current
	DESCRIPTION
		"The compliance statement for entities which implement
		the Cisco Configuration Management MIB"
	MODULE	-- this module
		MANDATORY-GROUPS { ciscoConfigManHistoryGroup }
	::= { ciscoConfigManMIBCompliances 1 }

-- Units of Conformance

ciscoConfigManHistoryGroup OBJECT-GROUP
	OBJECTS {
		ccmHistoryRunningLastChanged,
		ccmHistoryRunningLastSaved,
		ccmHistoryStartupLastChanged,
		ccmHistoryMaxEventEntries,
		ccmHistoryEventEntriesBumped,
		ccmHistoryEventTime,
       		ccmHistoryEventCommandSource,
		ccmHistoryEventConfigSource,
		ccmHistoryEventConfigDestination,
		ccmHistoryEventTerminalType,
		ccmHistoryEventTerminalNumber,
		ccmHistoryEventTerminalUser,
		ccmHistoryEventTerminalLocation,
		ccmHistoryEventCommandSourceAddress,
		ccmHistoryEventVirtualHostName,
		ccmHistoryEventServerAddress,
		ccmHistoryEventFile,
		ccmHistoryEventRcpUser
	}
	STATUS current
	DESCRIPTION
		"Configuration history."
	::= { ciscoConfigManMIBGroups 1 }

END

-- ######################################################

--
-- File: cisco/CISCO-VTP-MIB.mib
--

-- *****************************************************************
-- Cisco VTP MIB
--
-- February, 1997 Chris Young
--
-- Copyright (c) 1996-1997 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
-- $Log: mib-v2.txt,v $
-- Revision 1.2  1998/05/08 18:07:36  ryan
-- Updated Win32 info, building instructions
--
-- *****************************************************************
-- $Endlog$
--

-- VTP MIB
-- CMS# ENG-6198

CISCO-VTP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    Counter32, IpAddress, Gauge32
        FROM SNMPv2-SMI
    TEXTUAL-CONVENTION,
    RowStatus, DisplayString, DateAndTime, TruthValue, TestAndIncr
        FROM SNMPv2-TC
    InterfaceIndex, ifIndex
        FROM IF-MIB
    ciscoMgmt
        FROM CISCO-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP
        FROM SNMPv2-CONF;


ciscoVtpMIB MODULE-IDENTITY
    LAST-UPDATED "9708081138Z"
    ORGANIZATION "Cisco Systems, Inc."
    CONTACT-INFO
            "Cisco Systems
             Customer Service

             Postal: 170 W Tasman Drive
             San Jose, CA  95134
             USA

             Tel: +1 800 553-NETS

             E-mail: cs-wbu@cisco.com"
    DESCRIPTION
            " Added Backup CRF object"
    REVISION 
                "9708081138Z"
    DESCRIPTION
            " Added ARE and STE hop counts."
    REVISION
                "9705091130Z"
    DESCRIPTION
            " Added support for turning on VTP for Trunk cards."
    REVISION
                "9702241115Z"
    DESCRIPTION
            "The MIB module for devices implementing VTP."
    REVISION    "9701271730Z"
    DESCRIPTION
            "Added support for version 2 features."
    REVISION    "9609161230Z"
    DESCRIPTION
            "Updated the Token-Ring support."
    REVISION    "9607171230Z"
    DESCRIPTION
            "Updated to include objects in support of VTP pruning."
    REVISION    "9601181820Z"
    DESCRIPTION
            "Initial version of this MIB module."
    ::= { ciscoMgmt 46 }


vtpMIBObjects OBJECT IDENTIFIER ::= { ciscoVtpMIB 1 }


-- Textual Conventions

VlanIndex ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "The VLAN-id of a VLAN on ISL trunks.

             VLANs above 1000 are reserved for default VLANs and
             future use. Modification of default parameters is
             allowed. Creation or deletion of VLANs above 1000 is not
             allowed." 
    SYNTAX     INTEGER (0..1023)


ManagementDomainIndex ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "An arbitrary integer-value to uniquely identify a
            management domain on the local system."
    SYNTAX     INTEGER (1..255)

OwnerString ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "This data type is used to model an administratively
            assigned name of the owner of a resource.  This information
            is taken from the NVT ASCII character set.  It is suggested
            that this name contain one or more of the following: IP
            address, management station name, network manager's name,
            location, or phone number.  In some cases the agent itself
            will be the owner of an entry.  In these cases, this string
            shall be set to a string starting with 'monitor'.

            This definition is identical to that contained in RFC 1271."
    SYNTAX     OCTET STRING


VlanType ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "The type of a VLAN.

            Note that the 'ethernet' type, is used for any ethernet or
            802.3 VLAN, including an ATM Ethernet ELAN; and the
            'tokenRing' ('trCrf') type is used for each VLAN
            representing a single logical 802.5 ring including an ATM
            Token-Ring ELAN. 

            The 'trCrf' type is used for token ring VLANs made up of
            (at most) one transparently bridged LAN segment.  

            The 'trBrf' type is used for VLANs which represent the
            scope of many 'trCrf' VLANs all connected together via
            source route bridging.  The token ring 'trBrf' can be said
            to represent the bridged broadcast domain."
    SYNTAX     INTEGER {
                   ethernet(1),
                   fddi(2),
                   tokenRing(3), -- also known as trCrf
                   fddiNet(4),
                   trNet(5), -- also known as trBrf
                   deprecated(6)
               }

--
-- VTP status
--

vtpStatus   OBJECT IDENTIFIER ::= { vtpMIBObjects 1 }


vtpVersion OBJECT-TYPE
    SYNTAX     INTEGER { one(1), two(2) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The version of VTP in use on the local system.  A device
            will report its version capability and not any particular
            version in use on the device."
    ::= { vtpStatus 1 }

vtpMaxVlanStorage OBJECT-TYPE
    SYNTAX     INTEGER (-1..1023)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the maximum number of VLANs about which the
            local system can recover complete VTP information after a
            reboot.  If the number of defined VLANs is greater than this
            value, then the system can not act as a VTP Server. For a
            device which has no means to calculate the estimated number,
            this value is -1."
    ::= { vtpStatus 2 }

vtpNotificationsEnabled OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "An indication of whether the notifications/traps defined by
            the vtpConfigNotificationsGroup are enabled."
    ::= { vtpStatus 3 }

--
-- VTP Management Domains
--

vlanManagementDomains   OBJECT IDENTIFIER ::= { vtpMIBObjects 2 }

managementDomainTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ManagementDomainEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The table containing information on the management domains
            in which the local system is participating.  Devices which
            support only one management domain will support just one row
            in this table, and will not let it be deleted nor let other
            rows be created.  Devices which support multiple management
            domains will allow rows to be created and deleted, but will
            not allow the last row to be deleted."
    ::= { vlanManagementDomains 1 }

managementDomainEntry OBJECT-TYPE
    SYNTAX     ManagementDomainEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "Information about the status of one management domain."
    INDEX      { managementDomainIndex }
    ::= { managementDomainTable 1 }

ManagementDomainEntry ::= SEQUENCE {
    managementDomainIndex            ManagementDomainIndex,
    managementDomainName             DisplayString,
    managementDomainLocalMode        INTEGER,
    managementDomainConfigRevNumber  Gauge32,
    managementDomainLastUpdater      IpAddress,
    managementDomainLastChange       DateAndTime,
    managementDomainRowStatus        RowStatus,
    managementDomainTftpServer       IpAddress,
    managementDomainTftpPathname     DisplayString,
    managementDomainPruningState     INTEGER,
    managementDomainVersionInUse     INTEGER
}

managementDomainIndex OBJECT-TYPE
    SYNTAX     ManagementDomainIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An arbitrary value to uniquely identify the management
            domain on the local system."
    ::= { managementDomainEntry 1 }

managementDomainName OBJECT-TYPE
    SYNTAX     DisplayString (SIZE (0..32))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The management name of a domain in which the local system
            is participating.  The zero-length name corresponds to the
            'no management-domain' state which is the initial value at
            installation-time if not configured otherwise.  Note that
            the zero-length name does not correspond to an operational
            management domain, and a device does not send VTP
            advertisements while in the 'no management-domain' state.  A
            device leaves the 'no management-domain' state when it
            obtains a management-domain name, either through
            configuration or through inheriting the management-domain
            name from a received VTP advertisement.

            When the value of an existing instance of this object is
            modified by network management, the local system should re-
            initialize its VLAN information (for the given management
            domain) as if it had just been configured with a management
            domain name at installation time."
    ::= { managementDomainEntry 2 }

managementDomainLocalMode OBJECT-TYPE
    SYNTAX     INTEGER { client(1), server(2), transparent(3) }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "An indication of whether the local system is acting as a
            VTP Client or as a VTP Server in this management domain.
            The value 'transparent' is a read-only indication that a
            device is not supporting VTP for this VTP management domain,
            e.g., because the amount of VLAN information is too large
            for it to hold in DRAM."
    ::= { managementDomainEntry 3 }

managementDomainConfigRevNumber OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The current Configuration Revision Number as known by the
            local device for this management domain.  This value is
            updated (if necessary) whenever a VTP advertisement is
            received or generated.  When in the 'no management-domain'
            state, this value is 0."
    ::= { managementDomainEntry 4 }

managementDomainLastUpdater OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IP-address (or one of them) of the VTP Server which
            last updated the Configuration Revision Number, as indicated
            in the most recently received VTP advertisement for this
            management domain.  Before an advertisement has been
            received, this value is 0.0.0.0."
    ::= { managementDomainEntry 5 }

managementDomainLastChange OBJECT-TYPE
    SYNTAX     DateAndTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time at which the Configuration Revision Number was
            (last) increased to its current value, as indicated in the
            most recently received VTP advertisement for this management
            domain.

            The value 0x0000010100000000 indicates that the device which
            last increased the Configuration Revision Number had no idea
            of the date/time, or that no advertisement has been
            received."
    ::= { managementDomainEntry 6 }

managementDomainRowStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The status of this conceptual row."
    ::= { managementDomainEntry 7 }

managementDomainTftpServer OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The IP address of a TFTP Server in/from which VTP VLAN
            information for this management domain is to be
            stored/retrieved.  If the information is being locally
            stored in NVRAM, this object should take the value 0.0.0.0."
    ::= { managementDomainEntry 8 }

managementDomainTftpPathname OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The complete pathname of the file at the TFTP Server
            identified by the value of managementDomainTftpServer
            in/from which VTP VLAN information for this management
            domain is to be stored/retrieved.  If the value of
            corresponding instance of managementDomainTftpServer is
            0.0.0.0, the value of this object is ignored."
    ::= { managementDomainEntry 9 }

managementDomainPruningState  OBJECT-TYPE
    SYNTAX     INTEGER { enabled(1), disabled(2) }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "An indication of whether VTP pruning is enabled or disabled
            in this managament domain.  This value can only be modified
            by local/network management when the value of the
            corresponding instance of managementDomainLocalMode is
            'server'."
    ::= { managementDomainEntry 10 }

managementDomainVersionInUse OBJECT-TYPE
    SYNTAX     INTEGER { version1 (1), version2 (2) }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The current version of the VTP that is in use by the
            designated management domain.  This value can only be
            modified by local/network managment when the value of the
            corresponding instance of managementDomainLocalMode is
            'server'."
    ::= { managementDomainEntry 11 }

--
-- VLAN information
--

vlanInfo   OBJECT IDENTIFIER ::= { vtpMIBObjects 3 }


-- Global information on current VLANs
--
-- This information is maintained by VTP Clients and VTP Servers

vtpVlanTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF VtpVlanEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "This table contains information on the VLANs which
            currently exist.  The creation, deletion or modification of
            entries occurs through: a) the receipt of VTP messages in
            VTP Clients and in VTP Servers, or, b) in VTP Servers (or in
            VTP transparent mode), through management operations acting
            upon entries in the vtpVlanEditTable and then issuing an
            'apply' command via the vtpVlanEditOperation object."
    ::= { vlanInfo 1 }

vtpVlanEntry OBJECT-TYPE
    SYNTAX     VtpVlanEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "Information about one current VLAN.  The
            managementDomainIndex value in the INDEX clause indicates
            which management domain the VLAN is in."
    INDEX      { managementDomainIndex, vtpVlanIndex }
    ::= { vtpVlanTable 1 }

VtpVlanEntry ::= SEQUENCE {
    vtpVlanIndex               VlanIndex,
    vtpVlanState               INTEGER,
    vtpVlanType                VlanType,
    vtpVlanName                DisplayString,
    vtpVlanMtu                 INTEGER,
    vtpVlanDot10Said           OCTET STRING,
    vtpVlanRingNumber          INTEGER,
    vtpVlanBridgeNumber        INTEGER,
    vtpVlanStpType             INTEGER,
    vtpVlanParentVlan          VlanIndex,
    vtpVlanTranslationalVlan1  VlanIndex,
    vtpVlanTranslationalVlan2  VlanIndex,
    vtpVlanBridgeType          INTEGER,
    vtpVlanAreHopCount         INTEGER,
    vtpVlanSteHopCount         INTEGER,
    vtpVlanIsCRFBackup         TruthValue
}

vtpVlanIndex OBJECT-TYPE
    SYNTAX     VlanIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The VLAN-id of this VLAN on ISL trunks."
    ::= { vtpVlanEntry 1 }

vtpVlanState  OBJECT-TYPE
    SYNTAX     INTEGER { operational(1),
                         suspended(2),
                         mtuTooBigForDevice(3),
                         mtuTooBigForTrunk(4) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The state of this VLAN.

            The state 'mtuTooBigForDevice' indicates that this device
            cannot participate in this VLAN because the VLAN's MTU is
            larger than the device can support.

            The state 'mtuTooBigForTrunk' indicates that while this
            VLAN's MTU is supported by this device, it is too large for
            one or more of the device's trunk ports."
    ::= { vtpVlanEntry 2 }

vtpVlanType OBJECT-TYPE
    SYNTAX     VlanType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The type of this VLAN."
    ::= { vtpVlanEntry 3 }

vtpVlanName OBJECT-TYPE
    SYNTAX     DisplayString (SIZE (1..32))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The name of this VLAN.  This name is used as the ELAN-name
            for an ATM LAN-Emulation segment of this VLAN."
    ::= { vtpVlanEntry 4 }

vtpVlanMtu OBJECT-TYPE
    SYNTAX     INTEGER (1500..18190)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The MTU size on this VLAN, defined as the size of largest
            MAC-layer (information field portion of the) data frame
            which can be transmitted on the VLAN."
    ::= { vtpVlanEntry 5 }

vtpVlanDot10Said OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (4))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of the 802.10 SAID field for this VLAN."
    ::= { vtpVlanEntry 6 }

vtpVlanRingNumber OBJECT-TYPE
    SYNTAX     INTEGER (0..4095)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The ring number of this VLAN.  This object is only
            instantiated when the value of the corresponding instance of
            vtpVlanType has a value of 'fddi' or 'tokenRing' and Source
            Routing (SRB) is configured for use on this VLAN."
    ::= { vtpVlanEntry 7 }

vtpVlanBridgeNumber OBJECT-TYPE
    SYNTAX     INTEGER (0..15)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The bridge number of the VTP-capable switches for this
            VLAN.  This object is only instantiated for VLANs that are
            involved with emulating token ring segments."
    ::= { vtpVlanEntry 8 }


 vtpVlanStpType OBJECT-TYPE
     SYNTAX     INTEGER { ieee(1), ibm(2), hybrid(3) }
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
             " The type of the Spanning Tree Protocol (STP) running on
             this VLAN.  This object is only instanciated when the
             value of the corresponding instance of vtpVlanType has a
             value of 'fddiNet' or 'trNet'.

             The value returned by this object depends upon the value
             of the corresponding instance of vtpVlanEditStpType.

             - 'ieee' indicates IEEE STP is running exclusively.

             - 'ibm' indicates IBM STP is running exclusively.

             - 'hybrid' indicates a STP that allows a combination of 
               IEEE and IBM is running.

             The 'hybrid' STP type results from tokenRing/fddi VLANs
             that are children of this trNet/fddiNet parent VLAN being
             configured in a combination of SRT and SRB
             vtpVlanBridgeTypes while the instance of
             vtpVlanEditStpType that corresponds to this object is set
             to 'auto'."
     ::= { vtpVlanEntry 9 }

vtpVlanParentVlan  OBJECT-TYPE
    SYNTAX     VlanIndex
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The parent VLAN for this VLAN.  This object is only
            instantiated when the value of the corresponding instance of
            vtpVlanType has a value of 'fddi' or 'tokenRing' and Source
            Routing (SRB) is configured for use on this VLAN.  The
            parent VLAN must have a vtpVlanType value of fddiNet(4) or
            trNet(5), respectively."
    ::= { vtpVlanEntry 10 }

vtpVlanTranslationalVlan1  OBJECT-TYPE
    SYNTAX     VlanIndex
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A VLAN to which this VLAN is being translational-bridged.
            If this value and the corresponding instance of
            vtpVlanTranslationalVlan2 are both zero, then this VLAN is
            not being translational-bridged."
    ::= { vtpVlanEntry 11 }

vtpVlanTranslationalVlan2  OBJECT-TYPE
    SYNTAX     VlanIndex
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Another VLAN, i.e., other than that indicated by
            vtpVlanTranslationalVlan1, to which this VLAN is being
            translational-bridged.  If this value and the corresponding
            instance of vtpVlanTranslationalVlan1 are both zero, then
            this VLAN is not being translational-bridged."
    ::= { vtpVlanEntry 12 }

vtpVlanBridgeType OBJECT-TYPE
    SYNTAX     INTEGER { srt(1), srb(2) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The type of the bridging mode in use on this VLAN.  This
            object is only instantiated when the value of the
            corresponding instance of vtpVlanType has a value of fddi(2)
            or tokenRing(3)."
    ::= { vtpVlanEntry 13 }

vtpVlanAreHopCount OBJECT-TYPE
    SYNTAX     INTEGER (1..13)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The maximum number of bridge hops allowed in
            All Routes Explorer frames on this VLAN.  This
            object is only instantiated when the value of the
            corresponding instance of vtpVlanType has a value of fddi(2)
            or tokenRing(3)."
    ::= { vtpVlanEntry 14 }

vtpVlanSteHopCount OBJECT-TYPE
    SYNTAX     INTEGER (1..13)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The maximum number of bridge hops allowed in
            Spanning Tree Explorer frames on this VLAN.  This
            object is only instantiated when the value of the
            corresponding instance of vtpVlanType has a value of fddi(2)
            or tokenRing(3)."
    ::= { vtpVlanEntry 15 }

vtpVlanIsCRFBackup OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            " True if this VLAN is of type trCrf and also is acting as
            a backup trCrf for the ISL distributed BRF" 
    ::= { vtpVlanEntry 16 }


-- Modification of Global VLAN Information
--
-- To change the global information on current VLANs, including
-- creating, modifying or deleting them,
--   . the current VLAN information is copied to the "Edit buffer",
--   . the information in the Edit buffer is modified as appropriate,
--   . an 'apply' is invoked to attempt to instanciate the modified
--     contents of the Edit Buffer as the new global VLAN information.
--
-- Only one manager can edit the Edit Buffer at a time.  So, a
-- request to copy the current VLAN information into the Edit Buffer
-- must fail if the Edit Buffer is already in use (i.e., is not empty).
-- Thus, concurrent attempts by multiple managers to gain use of the
-- Edit Buffer are resolved according to whichever of them succeeds
-- in performing a successful copy.  An OwnerString object provides
-- information on which manager currently has access.
--
-- Ownership of the Edit Buffer terminates when a NMS explicitly
-- releases it, or when a deadman-timer expires.  The deadman-timer
-- has a fixed expiry interval of 5 minutes.  The deadman-timer is
-- automatically started on a successful copy operation.  The
-- restartTimer operation allows an NMS to restart the deadman-timer
-- if it wishes to retain ownership of the Edit Buffer for longer
-- than 5 minutes.  The deadman-timer ceases when the apply operation
-- is invoked, and is restarted when the apply operation terminates.
-- Restarting the deadman-timer after termination of the apply
-- operation allows the results of the apply operation to be retained
-- until the requesting manager has retrieved them, but for only a
-- limited amount of time.

vlanEdit   OBJECT IDENTIFIER ::= { vtpMIBObjects 4 }

vtpEditControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF VtpEditControlEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "This table provides the means to control the editing of the
            VLANs for a particular management domain.  Each and every
            entry in this table augments its corresponding entry in the
            managementDomainTable; thus, an entry in this table is
            created/deleted only as a by-product of creating/deleting an
            entry in the managementDomainTable."
    ::= { vlanEdit 1 }

vtpEditControlEntry OBJECT-TYPE
    SYNTAX     VtpEditControlEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "Control information for editing the VLANs in one management
            domain."
    AUGMENTS  { managementDomainEntry }
    ::= { vtpEditControlTable 1 }

VtpEditControlEntry ::= SEQUENCE {
    vtpVlanEditOperation        INTEGER,
    vtpVlanApplyStatus          INTEGER,
    vtpVlanEditBufferOwner      OwnerString,
    vtpVlanEditConfigRevNumber  Gauge32
}

vtpVlanEditOperation OBJECT-TYPE
    SYNTAX     INTEGER { none(1),
                         copy(2),
                         apply(3),
                         release(4),
                         restartTimer(5)
                       }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "This object always has the value 'none' when read.  When
            written, each value causes the appropriate action:

             'copy' - causes the creation of rows in the
            vtpVlanEditTable exactly corresponding to the current global
            VLAN information for this management domain.  If the Edit
            Buffer (for this management domain) is not currently empty,
            a copy operation fails.  A successful copy operation starts
            the deadman-timer.

             'apply' - first performs a consistent check on the the
            modified information contained in the Edit Buffer, and if
            consistent, then tries to instanciate the modified
            information as the new global VLAN information.  Note that
            an empty Edit Buffer (for the management domain) would
            always result in an inconsistency since the default VLANs
            are required to be present.

             'release' - flushes the Edit Buffer (for this management
            domain), clears the Owner information, and aborts the
            deadman-timer.  A release is generated automatically if the
            deadman-timer ever expires.

             'restartTimer' - restarts the deadman-timer.

             'none' - no operation is performed."
    ::= { vtpEditControlEntry 1 }

vtpVlanApplyStatus OBJECT-TYPE
    SYNTAX     INTEGER { inProgress(1),
                         succeeded(2),
                         configNumberError(3),
                         inconsistentEdit(4),
                         tooBig(5),
                         localNVStoreFail(6),
                         remoteNVStoreFail(7),
                         editBufferEmpty(8),
                         someOtherError(9)
                       }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The current status of an 'apply' operation to instanciate
            the Edit Buffer as the new global VLAN information (for this
            management domain).  If no apply is currently active, the
            status represented is that of the most recently completed
            apply.  The possible values are:

               inProgress - 'apply' operation in progress;

               succeeded - the 'apply' was successful (this value is
                      also used when no apply has been invoked since the
                      last time the local system restarted);

               configNumberError - the apply failed because the value of
                      vtpVlanEditConfigRevNumber was less or equal to
                      the value of current value of vtpConfigRevNumber;

               inconsistentEdit - the apply failed because the modified
                      information was not self-consistent;

               tooBig - the apply failed because the modified
                      information was too large to fit in this VTP
                      Server's non-volatile storage location;

               localNVStoreFail - the apply failed in trying to store
                      the new information in a local non-volatile
                      storage location;

               remoteNVStoreFail - the apply failed in trying to store
                      the new information in a remote non-volatile
                      storage location;

               editBufferEmpty - the apply failed because the Edit
                      Buffer was empty (for this management domain).

               someOtherError - the apply failed for some other reason
                      (e.g., insufficient memory)."
    ::= { vtpEditControlEntry 2 }

vtpVlanEditBufferOwner OBJECT-TYPE
    SYNTAX     OwnerString
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The management station which is currently using the Edit
            Buffer for this management domain.  When the Edit Buffer for
            a management domain is not currently in use, the value of
            this object is the zero-length string.  Note that it is also
            the zero-length string if a manager fails to set this object
            when invoking a copy operation."
    ::= { vtpEditControlEntry 3 }

vtpVlanEditConfigRevNumber OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The Configuration Revision Number to be used for the next
            apply operation.  This value is initialized (by the agent)
            on a copy operation to be one greater than the value of
            vtpConfigRevNumber.  On an apply, if the number is less or
            equal to the value of vtpConfigRevNumber, then the apply
            fails.  The value can be modified (increased) by network
            management before an apply to ensure than an apply does not
            fail for this reason.

            This object is used to allow management control over whether
            a configuration revision received via a VTP advertisement
            after a copy operation but before the succeeding apply
            operation is lost by being overwritten by the (local) edit
            operation.  By default, the apply operation will fail in
            this situation.  By increasing this object's value after the
            copy but before the apply, management can control whether
            the apply is to succeed (with the update via VTP
            advertisement being lost)."
    ::= { vtpEditControlEntry 4 }


vtpVlanEditTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF VtpVlanEditEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The table which contains the information in the Edit
            Buffers, one Edit Buffer per management domain.  The
            information for a particular management domain is
            initialized, by a 'copy' operation, to be the current global
            VLAN information for that management domain.  After
            initialization, editing can be performed to add VLANs,
            delete VLANs, or modify their global parameters.  The
            information as modified through editing is local to this
            Edit Buffer.  An apply operation using the
            vtpVlanEditOperation object is necessary to instanciate the
            modified information as the new global VLAN information for
            that management domain.

            To use the Edit Buffer, a manager acts as follows:

            1. ensures the Edit Buffer for a management domain is empty,
            i.e., there are no rows in this table for this management
            domain.

            2. issues a SNMP set operation which sets
            vtpVlanEditOperation to 'copy', and vtpVlanEditBufferOwner
            to its own identifier (e.g., its own IP address).

            3. if this set operation is successful, proceeds to edit the
            information in the vtpVlanEditTable.

            4. if and when the edited information is to be instantiated,
            issues a SNMP set operation which sets vtpVlanEditOperation
            to 'apply'.

            5. issues retrieval requests to obtain the value of
            vtpVlanApplyStatus, until the result of the apply is
            determined.

            6. releases the Edit Buffer by issuing a SNMP set operation
            which sets vtpVlanEditOperation to 'release'.

            Note that the information contained in this table is not
            saved across agent reboots."
    ::= { vlanEdit 2 }

vtpVlanEditEntry OBJECT-TYPE
    SYNTAX     VtpVlanEditEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "Information about one VLAN in the Edit Buffer for a
            particular management domain."
    INDEX      { managementDomainIndex, vtpVlanEditIndex }
    ::= { vtpVlanEditTable 1 }

VtpVlanEditEntry ::= SEQUENCE {
    vtpVlanEditIndex               VlanIndex,
    vtpVlanEditState               INTEGER,
    vtpVlanEditType                VlanType,
    vtpVlanEditName                DisplayString,
    vtpVlanEditMtu                 INTEGER,
    vtpVlanEditDot10Said           OCTET STRING,
    vtpVlanEditRingNumber          INTEGER,
    vtpVlanEditBridgeNumber        INTEGER,
    vtpVlanEditStpType             INTEGER,
    vtpVlanEditParentVlan          VlanIndex,
    vtpVlanEditRowStatus           RowStatus,
    vtpVlanEditTranslationalVlan1  VlanIndex,
    vtpVlanEditTranslationalVlan2  VlanIndex,
    vtpVlanEditBridgeType          INTEGER,
    vtpVlanEditAreHopCount         INTEGER,
    vtpVlanEditSteHopCount         INTEGER,
    vtpVlanEditIsCRFBackup         TruthValue
}

vtpVlanEditIndex OBJECT-TYPE
    SYNTAX     VlanIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The VLAN-id which this VLAN would have on ISL trunks."
    ::= { vtpVlanEditEntry 1 }

vtpVlanEditState  OBJECT-TYPE
    SYNTAX     INTEGER {
                   operational(1),
                   suspended(2)
               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The state which this VLAN would have."
    DEFVAL     { operational }
    ::= { vtpVlanEditEntry 2 }

vtpVlanEditType OBJECT-TYPE
    SYNTAX     VlanType
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The type which this VLAN would have."
    DEFVAL     { ethernet }
    ::= { vtpVlanEditEntry 3 }

vtpVlanEditName OBJECT-TYPE
    SYNTAX     DisplayString (SIZE (1..32))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The name which this VLAN would have.  This name would be
            used as the ELAN-name for an ATM LAN-Emulation segment of
            this VLAN."
    ::= { vtpVlanEditEntry 4 }

vtpVlanEditMtu OBJECT-TYPE
    SYNTAX     INTEGER (1500..18190)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The MTU size which this VLAN would have, defined as the
            size of largest MAC-layer (information field portion of the)
            data frame which can be transmitted on the VLAN."
    DEFVAL     { 1500 }
    ::= { vtpVlanEditEntry 5 }

vtpVlanEditDot10Said OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (4))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The value of the 802.10 SAID field which would be used for
            this VLAN."
    ::= { vtpVlanEditEntry 6 }

vtpVlanEditRingNumber OBJECT-TYPE
    SYNTAX     INTEGER (0..4095)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The ring number which would be used for this VLAN.  This
            object is only instantiated when the value of the
            corresponding instance of vtpVlanEditType has a value of
            'fddi' or 'tokenRing' and Source Routing (SRB) is configured
            for use on this VLAN."
    ::= { vtpVlanEditEntry 7 }

vtpVlanEditBridgeNumber OBJECT-TYPE
    SYNTAX     INTEGER (0..15)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The bridge number of the VTP-capable switches which would
            be used for this VLAN.  This object is only instantiated
            when the value of the corresponding instance of
            vtpVlanEditType has a value of fddiNet(4) or trNet(5)."
    ::= { vtpVlanEditEntry 8 }

 vtpVlanEditStpType OBJECT-TYPE
     SYNTAX     INTEGER { ieee(1), ibm(2), auto(3) }
     MAX-ACCESS read-create
     STATUS     current
     DESCRIPTION
             "The type of the Spanning Tree Protocol which would be
             running on this VLAN.  This object is only instantiated when
             the value of the corresponding instance of vtpVlanEditType
             has a value of fddiNet(4) or trNet(5).

             If 'ieee' is selected, the STP that runs will be IEEE.

             If 'ibm' is selected, the STP that runs will be IBM.

             If 'auto' is selected, the STP that runs will be
             dependant on the values of vtpVlanEditBridgeType for all
             children tokenRing/fddi type VLANs.  This will result in
             a 'hybrid' STP (see vtpVlanStpType)."
     ::= { vtpVlanEditEntry 9 }

vtpVlanEditParentVlan  OBJECT-TYPE
    SYNTAX     VlanIndex
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The VLAN index of the VLAN which would be the parent for
            this VLAN.  This object is only instantiated when the value
            of the corresponding instance of vtpVlanEditType has a value
            of 'fddi' or 'tokenRing' and Source Routing (SRB) is
            configured for use on this VLAN.  The parent VLAN must have
            a vtpVlanEditType value of fddiNet(4) or trNet(5),
            respectively."
    ::= { vtpVlanEditEntry 10 }

vtpVlanEditRowStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The status of this row.  Any and all columnar objects in an
            existing row can be modified irrespective of the status of
            the row.

            A row is not qualified for activation until instances of at
            least its vtpVlanEditType, vtpVlanEditName and
            vtpVlanEditDot10Said columns have appropriate values. 

	    The management station should endeavor to make all rows
            consistent in the table before 'apply'ing the buffer.  An
            inconsistent entry in the table will cause the entire
            buffer to be rejected with the vtpVlanApplyStatus object
            set to the appropriate error value."
    ::= { vtpVlanEditEntry 11 }

vtpVlanEditTranslationalVlan1 OBJECT-TYPE
    SYNTAX     VlanIndex
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "A VLAN to which this VLAN would be translational-bridged.
            If this value and the corresponding instance of
            vtpVlanTranslationalVlan2 are both zero, then this VLAN
            would not be translational-bridged."
    DEFVAL     { 0 }
    ::= { vtpVlanEditEntry 12 }

vtpVlanEditTranslationalVlan2 OBJECT-TYPE
    SYNTAX     VlanIndex
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "Another VLAN, i.e., other than that indicated by
            vtpVlanEditTranslationalVlan1, to which this VLAN would be
            translational-bridged.  If this value and the corresponding
            instance of vtpVlanTranslationalVlan1 are both zero, then
            this VLAN would not be translational-bridged."
    DEFVAL     { 0 }
    ::= { vtpVlanEditEntry 13 }

vtpVlanEditBridgeType OBJECT-TYPE
    SYNTAX     INTEGER { srt(1), srb(2) }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The type of bridging mode which would be in use on this
            VLAN.  This object is only instantiated when the value of
            the corresponding instance of vtpVlanEditType has a value of
            fddi(2) or tokenRing(3)."
    ::= { vtpVlanEditEntry 14 }

vtpVlanEditAreHopCount OBJECT-TYPE
    SYNTAX     INTEGER (1..13)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The maximum number of bridge hops allowed in
            All Routes Explorer frames on this VLAN.  This
            object is only instantiated when the value of the
            corresponding instance of vtpVlanType has a value of fddi(2)
            or tokenRing(3)."
    ::= { vtpVlanEditEntry 15 }

vtpVlanEditSteHopCount OBJECT-TYPE
    SYNTAX     INTEGER (1..13)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The maximum number of bridge hops allowed in
            Spanning Tree Explorer frames on this VLAN.  This
            object is only instantiated when the value of the
            corresponding instance of vtpVlanType has a value of fddi(2)
            or tokenRing(3)."
    ::= { vtpVlanEditEntry 16}

vtpVlanEditIsCRFBackup OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            " True if this VLAN is of type trCrf and also is acting as
            a backup trCrf for the ISL distributed BRF" 
    ::= { vtpVlanEditEntry 17 }
--
-- VTP Statistics
--

vtpStats      OBJECT IDENTIFIER ::= { vtpMIBObjects 5 }


vtpStatsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF VtpStatsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A table of VTP statistics."
    ::= { vtpStats 1 }

vtpStatsEntry OBJECT-TYPE
    SYNTAX     VtpStatsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "VTP statistics for one management domain."
    AUGMENTS  { managementDomainEntry }
    ::= { vtpStatsTable 1 }

VtpStatsEntry ::= SEQUENCE {
    vtpInSummaryAdverts       Counter32,
    vtpInSubsetAdverts        Counter32,
    vtpInAdvertRequests       Counter32,
    vtpOutSummaryAdverts      Counter32,
    vtpOutSubsetAdverts       Counter32,
    vtpOutAdvertRequests      Counter32,
    vtpConfigRevNumberErrors  Counter32,
    vtpConfigDigestErrors     Counter32
}

vtpInSummaryAdverts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of VTP Summary Adverts received for this
            management domain."
    ::= { vtpStatsEntry 1 }

vtpInSubsetAdverts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of VTP Subset Adverts received for this
            management domain."
    ::= { vtpStatsEntry 2 }

vtpInAdvertRequests OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of VTP Advert Requests received for this
            management domain."
    ::= { vtpStatsEntry 3 }

vtpOutSummaryAdverts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of VTP Summary Adverts sent for this
            management domain."
    ::= { vtpStatsEntry 4 }

vtpOutSubsetAdverts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of VTP Subset Adverts sent for this
            management domain."
    ::= { vtpStatsEntry 5 }

vtpOutAdvertRequests OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of VTP Advert Requests sent for this
            management domain."
    ::= { vtpStatsEntry 6 }

vtpConfigRevNumberErrors  OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of occurrences of configuration revision number
            errors for this management domain.  A configuration revision
            number error occurs when a device receives a VTP
            advertisement for which:

            - the advertisement's Configuration Revision Number is the
              same as the current locally-held value, and

            - the advertisement's digest value is different from the
              current locally-held value."
    ::= { vtpStatsEntry 7 }

vtpConfigDigestErrors OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of occurrences of configuration digest errors
            for this management domain.  A configuration digest error
            occurs when a device receives a VTP advertisement for which:

            - the advertisement's Configuration Revision Number is
              greater than the current locally-held value, and

            - the advertisement's digest value does not match the VLAN
              information assumed by the receiver of the advertisement,
              where the infomation assumed is the combination of the
              information explicitly contained in the advertisement plus
              any omitted information as currently known by the
              receiving device."
    ::= { vtpStatsEntry 8 }



-- Trunk Ports

vlanTrunkPorts   OBJECT IDENTIFIER ::= { vtpMIBObjects 6 }

vlanTrunkPortTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF VlanTrunkPortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The table containing information on the local system's VLAN
            trunk ports."
    ::= { vlanTrunkPorts 1 }

vlanTrunkPortEntry OBJECT-TYPE
    SYNTAX     VlanTrunkPortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "Information about one trunk port."
    INDEX      { vlanTrunkPortIfIndex }
    ::= { vlanTrunkPortTable 1 }

VlanTrunkPortEntry ::= SEQUENCE {
    vlanTrunkPortIfIndex              InterfaceIndex,
    vlanTrunkPortManagementDomain     ManagementDomainIndex,
    vlanTrunkPortEncapsulationType    INTEGER,
    vlanTrunkPortVlansEnabled         OCTET STRING,
    vlanTrunkPortNativeVlan           VlanIndex,
    vlanTrunkPortRowStatus            RowStatus,
    vlanTrunkPortInJoins              Counter32,
    vlanTrunkPortOutJoins             Counter32,
    vlanTrunkPortOldAdverts           Counter32,
    vlanTrunkPortVlansPruningEligible OCTET STRING,
    vlanTrunkPortVlansXmitJoined      OCTET STRING,
    vlanTrunkPortVlansRcvJoined       OCTET STRING,
    vlanTrunkPortDynamicState         INTEGER,
    vlanTrunkPortDynamicStatus        INTEGER,
    vlanTrunkPortVtpEnabled           TruthValue
}

vlanTrunkPortIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The value of ifIndex for the interface corresponding to
            this trunk port."
    ::= { vlanTrunkPortEntry 1 }

vlanTrunkPortManagementDomain OBJECT-TYPE
    SYNTAX     ManagementDomainIndex
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The value of managementDomainIndex for the management
            domain on this trunk port.  Devices which support only one
            management domain will support this object read-only."
    ::= { vlanTrunkPortEntry 2 }

vlanTrunkPortEncapsulationType OBJECT-TYPE
    SYNTAX     INTEGER { isl(1), dot10(2), lane(3), dot1Q(4) }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The type of VLAN encapsulation used on this trunk port.
            Whether writing to this object in order to modify the
            encapsulation is supported is both device and interface
            specific."
    ::= { vlanTrunkPortEntry 3 }

vlanTrunkPortVlansEnabled OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (128))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN in the
            management domain on this trunk port.  The first octet
            corresponds to VLANs with VlanIndex values of 0 through 7;
            the second octet to VLANs 8 through 15; etc.  The most
            significant bit of each octet corresponds to the lowest
            value VlanIndex in that octet.  If the bit corresponding to
            a VLAN is set to '1', then the local system is enabled for
            sending and receiving frames on that VLAN; if the bit is set
            to '0', then the system is disabled from sending and
            receiving frames on that VLAN.

            To avoid conflicts between overlapping partial updates by
            multiple managers, i.e., updates which modify only a portion
            of an instance of this object (e.g., enable/disable a single
            VLAN on the trunk port), any SNMP Set operation accessing an
            instance of this object should also write the value of
            vlanTrunkPortSetSerialNo."
    ::= { vlanTrunkPortEntry 4 }

vlanTrunkPortNativeVlan OBJECT-TYPE
    SYNTAX     VlanIndex
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The VlanIndex of the VLAN which is represented by native
            frames on this trunk port.  For trunk ports not supporting
            the sending and receiving of native frames, this value
            should be set to zero."
    ::= { vlanTrunkPortEntry 5 }

vlanTrunkPortRowStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The status of this row.  In some circumstances, the
            creation of a row in this table is needed to enable the
            appropriate trunking/tagging protocol on the port, to enable
            the use of VTP on the port, and to assign the port to the
            appropriate management domain.  In other circumstances, rows
            in this table will be created as a by-product of other
            operations."
    ::= { vlanTrunkPortEntry 6 }

vlanTrunkPortInJoins OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of VTP Join messages received on this trunk
            port."
    ::= { vlanTrunkPortEntry 7 }

vlanTrunkPortOutJoins OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of VTP Join messages sent on this trunk port."
    ::= { vlanTrunkPortEntry 8 }

vlanTrunkPortOldAdverts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of VTP Advertisement messages which indicated
            the sender does not support VLAN-pruning received on this
            trunk port."
    ::= { vlanTrunkPortEntry 9 }

vlanTrunkPortVlansPruningEligible OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (128))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN in the
            management domain on this trunk port.  The first octet
            corresponds to VLANs with VlanIndex values of 0 through 7;
            the second octet to VLANs 8 through 15; etc.  The most
            significant bit of each octet corresponds to the lowest
            value VlanIndex in that octet.

            If the bit corresponding to a VLAN is set to '1', then the
            local system is permitted to prune that VLAN on this trunk
            port; if the bit is set to '0', then the system must not
            prune that VLAN on this trunk port.

            To avoid conflicts between overlapping partial updates by
            multiple managers, i.e., updates which modify only a portion
            of an instance of this object (e.g., enable/disable a single
            VLAN on the trunk port), any SNMP Set operation accessing an
            instance of this object should also write the value of
            vlanTrunkPortSetSerialNo."
    ::= { vlanTrunkPortEntry 10 }

vlanTrunkPortVlansXmitJoined OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (128))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN in the
            management domain on this trunk port.  The first octet
            corresponds to VLANs with VlanIndex values of 0 through 7;
            the second octet to VLANs 8 through 15; etc.  The most
            significant bit of each octet corresponds to the lowest
            value VlanIndex in that octet.

            If the bit corresponding to a VLAN is set to '1', then this
            VLAN is presently being forwarded on this trunk port, i.e.,
            it is not pruned; if the bit is set to '0', then this VLAN
            is presently not being forwarded on this trunk port, either
            because it is pruned or for some other reason."
    ::= { vlanTrunkPortEntry 11 }

vlanTrunkPortVlansRcvJoined OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (128))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN in the
            management domain on this trunk port.  The first octet
            corresponds to VLANs with VlanIndex values of 0 through 7;
            the second octet to VLANs 8 through 15; etc.  The most
            significant bit of each octet corresponds to the lowest
            value VlanIndex in that octet.

            If the bit corresponding to a VLAN is set to '1', then the
            local switch is currently sending joins for this VLAN on
            this trunk port, i.e., it is asking to receive frames for
            this VLAN; if the bit is set to '0', then the local switch
            is not currently sending joins for this VLAN on this trunk
            port."
    ::= { vlanTrunkPortEntry 12 }

vlanTrunkPortDynamicState OBJECT-TYPE
    SYNTAX     INTEGER { on(1), off(2), desirable(3), auto(4) }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "For devices that allows dynamic determination of whether
            a link between two (or more) switches should be a trunk or
            not, this object allows the operator to mandate the
            behavior of that dynamic mechanism.

            on(1) dictates that the interface will always be a
            trunk. This is the value for static entries (those that
            show no dynamic behavior).  

            off(2) allows an operator to specify that the specified
            interface is never to be trunk, regardless of any dynamic
            mechanisms to the contrary.  This value is useful for
            overriding the default behavior of some switches.

            desirable(3) is used to indicate that it is desirable for
            the interface to become a trunk.  The device will initiate
            any negotiation necessary to become a trunk but will not
            become a trunk unless it receives confirmation from other
            participants on the link.

            auto(4) is used to indicate that the interface is capable
            and willing to become a trunk but will not initiate
            trunking negotiations.  Other participants on the link are
            required to either start negotiations or start sending
            encapsulated packets, on which event the specified
            interface will become a trunk.

            Devices that do no support dynamic determination (for just
            a particular interface, encapsulation or for the whole
            device) need only support the 'on' and 'off' values."
    ::= { vlanTrunkPortEntry 13 }

vlanTrunkPortDynamicStatus OBJECT-TYPE
    SYNTAX     INTEGER { trunking(1), notTrunking(2) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            " Indicates whether the specified interface is either
            acting as a trunk or not. This is a result of the
            vlanTrunkPortDynamicState and the ifOperStatus of the
            trunk port itself."
    ::= { vlanTrunkPortEntry 14 }

vlanTrunkPortVtpEnabled OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            " Some trunk interface modules allow VTP to be
            enabled/disabled seperately from that of the central
            device.  In such a case this object provides management a
            way to remotely enable VTP on that module.  If a module
            does not support a seperate VTP enabled state then this
            object shall always return 'true' and will accept no other
            value during a SET operation."
    ::= { vlanTrunkPortEntry 15 }

vlanTrunkPortSetSerialNo OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "An advisory lock used to allow several cooperating SNMPv2
            managers to coordinate their use of the SNMPv2 set operation
            acting upon any instance of vlanTrunkPortVlansEnabled."
    ::= { vlanTrunkPorts 2 }


-- VTP notifications

vtpNotifications   OBJECT IDENTIFIER ::= { ciscoVtpMIB 2 }
vtpNotificationsPrefix
                   OBJECT IDENTIFIER ::= { vtpNotifications 0 }
vtpNotificationsObjects
                   OBJECT IDENTIFIER ::= { vtpNotifications 1 }

vtpConfigRevNumberError NOTIFICATION-TYPE
    OBJECTS     { managementDomainConfigRevNumber }
    STATUS      current
    DESCRIPTION
            "A configuration revision number error notification
            signifies that a device has incremented its
            vtpConfigRevNumberErrors counter.

            Generation of this notification is suppressed if the
            vtpNotificationsEnabled has the value 'false'.

            The device must throttle the generation of consecutive
            vtpConfigRevNumberError notifications so that there is at
            least a five-second gap between notification of this type.
            When notification are throttled, they are dropped, not
            queued for sending at a future time.  (Note that
            'generating' a notification means sending to all configured
            recipients.)"
    ::= { vtpNotificationsPrefix 1 }

vtpConfigDigestError NOTIFICATION-TYPE
    OBJECTS     { managementDomainConfigRevNumber }
    STATUS      current
    DESCRIPTION
            "A configuration digest error notification signifies that a
            device has incremented its vtpConfigDigestErrors counter.

            Generation of this notification is suppressed if the
            vtpNotificationsEnabled has the value 'false'.

            The device must throttle the generation of consecutive
            vtpConfigDigestError notifications so that there is at least
            a five-second gap between notification of this type.  When
            notification are throttled, they are dropped, not queued for
            sending at a future time.  (Note that 'generating' a
            notification means sending to all configured recipients.)"
    ::= { vtpNotificationsPrefix 2 }

vtpServerDisabled NOTIFICATION-TYPE
    OBJECTS     { managementDomainConfigRevNumber, vtpMaxVlanStorage }
    STATUS      current
    DESCRIPTION
            "A VTP Server disabled notification is generated when the
            local system is no longer able to function as a VTP Server
            because the number of defined VLANs is greater than
            vtpMaxVlanStorage.

            Generation of this notification is suppressed if the
            vtpNotificationsEnabled has the value 'false'."
    ::= { vtpNotificationsPrefix 3 }

vtpMtuTooBig NOTIFICATION-TYPE
    OBJECTS     { vlanTrunkPortManagementDomain, vtpVlanState }
    STATUS      current
    DESCRIPTION
            "A VTP MTU tooBig notification is generated when a VLAN's
            MTU size is larger than can be supported either:

            - by one or more of its trunk ports:
              the included vtpVlanState has the value
              'mtuTooBigForTrunk' and the included
              vlanTrunkPortManagementDomain is for the first (or only)
              trunk port,
              or

            - by the device itself:
              vtpVlanState has the value 'mtuTooBigForDevice' and any
              instance of vlanTrunkPortManagementDomain is included.

            Devices which have no trunk ports do not send vtpMtuTooBig
            notifications.

            Generation of this notification is suppressed if the
            vtpNotificationsEnabled has the value 'false'."
    ::= { vtpNotificationsPrefix 4 }

vtpVlanRingNumberConfigConflict NOTIFICATION-TYPE
    OBJECTS     { vtpVlanIndex, vtpVlanRingNumber,
                  ifIndex, vtpVlanPortLocalSegment }
    STATUS      current
    DESCRIPTION
            "A VTP ring number configuration conflict notification is
            generated if, and only at the time when, a device learns of
            a conflict between:

            a) the ring number (vtpVlanPortLocalSegment) being used on a
               token ring segment attached to the port identified by
               ifIndex, and

            b) the VTP-obtained ring number (vtpVlanRingNumber) for the
               VLAN identified by vtpVlanIndex.

            When such a conflict occurs, the bridge port is put into an
            administrative down position until the conflict is resolved
            through local/network management intervention.

            This notification is only applicable to VLANs of type
            'tokenRing'."
    ::= { vtpNotificationsPrefix 5 }

vtpVersionOneDeviceDetected NOTIFICATION-TYPE
    OBJECTS     { vlanTrunkPortManagementDomain }
    STATUS      current
    DESCRIPTION
            "A VTP version one device detected notification is
            generated by a device when:

            a) a management domain has been put into version 2 mode
               (as accessed by managementDomainVersionInUse).
            b) 15 minutes has passed since a).
            c) a version 1 PDU is detected on a trunk on the device
               that is in that management domain which has a lower
               revision number than the current configuration."
    ::= { vtpNotificationsPrefix 6 }

vtpVlanPortLocalSegment OBJECT-TYPE
    SYNTAX     INTEGER (0..65535)
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
            "The ring (segment) number in use on a 802.5 ring.  For
            bridges supporting RFC 1525, this value is the same as given
            by dot1dSrPortLocalSegment for the bridge port attached to
            that ring.  When tokenRing VLANs are in use, each 'trNet'
            VLAN can/does have a different instance of
            dot1dSrPortLocalSegment for each physical port.  Note that
            access to the particuler instance of dot1dSrPortLocalSegment
            requires knowledge of how the agent supports the multiple
            'contexts' required to implement RFC 1525 for multiple
            VLANs; also note that the assignment of ifIndex values may
            be different in different 'contexts'."
    ::= { vtpNotificationsObjects 1 }





-- Conformance Information

vtpMIBConformance
               OBJECT IDENTIFIER ::= { ciscoVtpMIB 3 }

vtpMIBCompliances
               OBJECT IDENTIFIER ::= { vtpMIBConformance 1 }
vtpMIBGroups   OBJECT IDENTIFIER ::= { vtpMIBConformance 2 }


-- compliance statements

vtpMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for VTP implementations."
    MODULE  -- this module
        MANDATORY-GROUPS { vtpBasicGroup,
                           vtpVlanInfoGroup,
--                         vtpConfigNotificationsGroup,
                           vtpStatsGroup,
                           vtpTrunkPortGroup
                         }

        OBJECT       managementDomainRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

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

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

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

        GROUP        vtpVlanInfoEditGroup
        DESCRIPTION
            "This group must be implemented by VTP Servers.
            VTP Clients need not implement these objects, and
            must not allow VLANs to be created, modified, or
            destroyed using these objects."

    ::= { vtpMIBCompliances 1 }


-- units of conformance

vtpBasicGroup OBJECT-GROUP
    OBJECTS { vtpVersion, vtpMaxVlanStorage,
              vtpNotificationsEnabled,
              managementDomainName, managementDomainLocalMode,
              managementDomainConfigRevNumber,
              managementDomainLastUpdater,
              managementDomainLastChange,
              managementDomainTftpServer,
              managementDomainTftpPathname,
              managementDomainRowStatus }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing basic status and control
            of a VTP implementation."
    ::= { vtpMIBGroups 1 }

vtpVlanInfoGroup OBJECT-GROUP
    OBJECTS { vtpVlanState, vtpVlanType, vtpVlanName,
              vtpVlanMtu, vtpVlanDot10Said,
              vtpVlanRingNumber, vtpVlanBridgeNumber,
              vtpVlanStpType, vtpVlanParentVlan,
              vtpVlanTranslationalVlan1,
              vtpVlanTranslationalVlan2,
              vtpVlanBridgeType, vtpVlanAreHopCount,
              vtpVlanSteHopCount, vtpVlanIsCRFBackup }
    STATUS  current
    DESCRIPTION
            "A collection of objects for monitoring VLAN information."
    ::= { vtpMIBGroups 13 }

vtpVlanInfoEditGroup OBJECT-GROUP
    OBJECTS { vtpVlanEditOperation, vtpVlanApplyStatus,
              vtpVlanEditBufferOwner, vtpVlanEditConfigRevNumber,
              vtpVlanEditState, vtpVlanEditType, vtpVlanEditName,
              vtpVlanEditMtu, vtpVlanEditDot10Said,
              vtpVlanEditRingNumber, vtpVlanEditBridgeNumber,
              vtpVlanEditStpType, vtpVlanEditParentVlan,
              vtpVlanEditRowStatus,
              vtpVlanEditTranslationalVlan1,
              vtpVlanEditTranslationalVlan2,
              vtpVlanEditBridgeType, vtpVlanEditAreHopCount, 
              vtpVlanEditSteHopCount, vtpVlanEditIsCRFBackup }
    STATUS  current
    DESCRIPTION
            "A collection of objects for editing VLAN information in VTP
            Servers."
    ::= { vtpMIBGroups 14 }

vtpStatsGroup OBJECT-GROUP
    OBJECTS { vtpInSummaryAdverts, vtpInSubsetAdverts,
              vtpInAdvertRequests, vtpOutSummaryAdverts,
              vtpOutSubsetAdverts, vtpOutAdvertRequests,
              vtpConfigRevNumberErrors, vtpConfigDigestErrors }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing VTP statistics."
    ::= { vtpMIBGroups 4 }

vtpTrunkPortGroup OBJECT-GROUP
    OBJECTS { vlanTrunkPortManagementDomain,
              vlanTrunkPortEncapsulationType,
              vlanTrunkPortVlansEnabled,
              vlanTrunkPortNativeVlan,
              vlanTrunkPortRowStatus,
              vlanTrunkPortSetSerialNo }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing information on trunk
            ports."
    ::= { vtpMIBGroups 5 }

vtpTrunkPortGroup2 OBJECT-GROUP
    OBJECTS { vlanTrunkPortDynamicState, vlanTrunkPortDynamicStatus,
              vlanTrunkPortVtpEnabled }
    STATUS  current
    DESCRIPTION
            " Additional functionality added to the
            vlanTrunkPortTable. "
    ::= { vtpMIBGroups 11 }

vtpTrunkPruningGroup OBJECT-GROUP
    OBJECTS { vlanTrunkPortInJoins, vlanTrunkPortOutJoins,
              vlanTrunkPortOldAdverts,
              vlanTrunkPortVlansPruningEligible,
              vlanTrunkPortVlansXmitJoined,
              vlanTrunkPortVlansRcvJoined }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing information on VLAN
            pruning."
    ::= { vtpMIBGroups 7 }

vtpTrunkPruningGroup2 OBJECT-GROUP
    OBJECTS { managementDomainPruningState }
    STATUS  current
    DESCRIPTION
            "A collection of object providing information on whether
            VLAN pruning is enabled."
    ::= { vtpMIBGroups 10 }

vtpVersion2BasicGroup OBJECT-GROUP
    OBJECTS { managementDomainVersionInUse }
    STATUS  current
    DESCRIPTION
            " The object required to indicate the version of VTP in
            use by a management domain."
    ::= { vtpMIBGroups 12 }

-- vtpConfigNotificationsGroup NOTIFICATION-GROUP
--     NOTIFICATIONS { vtpConfigDigestError,
--                     vtpConfigRevNumberError,
--                     vtpServerDisabled,
--                     vtpMtuTooBig }
--     STATUS        current
--     DESCRIPTION
--             "The notifications which a VTP implementation is
--             required to implement."
--     ::= { vtpMIBGroups 6 }

END



-- ######################################################

--
-- File: cisco/CISCO-MEMORY-POOL-MIB.mib
--

-- *****************************************************************
-- CISCO-MEMORY-POOL-MIB
--
-- February 1996, Jeffrey T. Johnson
--
-- Copyright (c) 1996 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

CISCO-MEMORY-POOL-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY,
	OBJECT-TYPE,
	Integer32,
	Gauge32
		FROM SNMPv2-SMI
	TEXTUAL-CONVENTION,
	DisplayString,
	TruthValue
		FROM SNMPv2-TC
	MODULE-COMPLIANCE,
	OBJECT-GROUP
		FROM SNMPv2-CONF
	ciscoMgmt
		FROM CISCO-SMI;

ciscoMemoryPoolMIB MODULE-IDENTITY
	LAST-UPDATED	"9602120000Z"
	ORGANIZATION	"Cisco Systems, Inc."
	CONTACT-INFO
		"       Cisco Systems
			Customer Service

		Postal: 170 W Tasman Drive
			San Jose, CA  95134
			USA

		   Tel: +1 800 553-NETS

		E-mail: cs-snmp@cisco.com"
	DESCRIPTION
		"MIB module for monitoring memory pools"
	::= { ciscoMgmt 48 }

CiscoMemoryPoolTypes ::= TEXTUAL-CONVENTION
	STATUS		current
	DESCRIPTION
		"Represents the different types of memory pools that
		may be present in a managed device.  Memory pools can
		be roughly categorized into two groups, predefined
		pools and dynamic pools.  The following pool types
		are currently predefined:
			1:  processor memory
			2:  i/o memory
			3:  pci memory
			4:  fast memory
			5:  multibus memory

		Dynamic pools will have a pool type value greater than
		any of the predefined types listed above.

		Note that only the processor pool is required to be
		supported by all devices.  Support for other pool types
		is dependent on the device being managed."
	SYNTAX		Integer32 (1..65535)

ciscoMemoryPoolObjects OBJECT IDENTIFIER ::= { ciscoMemoryPoolMIB 1 }

ciscoMemoryPoolTable OBJECT-TYPE
	SYNTAX	    SEQUENCE OF CiscoMemoryPoolEntry
	MAX-ACCESS  not-accessible
	STATUS	    current
	DESCRIPTION
		"A table of memory pool monitoring entries."
	::= { ciscoMemoryPoolObjects 1 }

ciscoMemoryPoolEntry OBJECT-TYPE
	SYNTAX	    CiscoMemoryPoolEntry
	MAX-ACCESS  not-accessible
	STATUS	    current
	DESCRIPTION
		"An entry in the memory pool monitoring table."
	INDEX	    { ciscoMemoryPoolType }
	::= { ciscoMemoryPoolTable 1 }

CiscoMemoryPoolEntry ::=
	SEQUENCE {
		ciscoMemoryPoolType		CiscoMemoryPoolTypes,
		ciscoMemoryPoolName		DisplayString,
		ciscoMemoryPoolAlternate	Integer32,
		ciscoMemoryPoolValid		TruthValue,
		ciscoMemoryPoolUsed		Gauge32,
		ciscoMemoryPoolFree		Gauge32,
		ciscoMemoryPoolLargestFree	Gauge32
	}

ciscoMemoryPoolType OBJECT-TYPE
	SYNTAX	    CiscoMemoryPoolTypes
	MAX-ACCESS  not-accessible
	STATUS	    current
	DESCRIPTION
		"The type of memory pool for which this entry
		contains information."
	::= { ciscoMemoryPoolEntry 1 }

ciscoMemoryPoolName OBJECT-TYPE
	SYNTAX	    DisplayString
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"A textual name assigned to the memory pool.  This
		object is suitable for output to a human operator,
		and may also be used to distinguish among the various
		pool types, especially among dynamic pools."
	::= { ciscoMemoryPoolEntry 2 }

ciscoMemoryPoolAlternate OBJECT-TYPE
	SYNTAX	    Integer32 (0..65535)
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"Indicates whether or not this memory pool has an
		alternate pool configured.  Alternate pools are
		used for fallback when the current pool runs out
		of memory.

		If an instance of this object has a value of zero,
		then this pool does not have an alternate.  Otherwise
		the value of this object is the same as the value of
		ciscoMemoryPoolType of the alternate pool."
	::= { ciscoMemoryPoolEntry 3 }

ciscoMemoryPoolValid OBJECT-TYPE
	SYNTAX	    TruthValue
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"Indicates whether or not the remaining objects in
		this entry contain accurate data.  If an instance
		of this object has the value false (which in and of
		itself indicates an internal error condition), the
		values of the remaining objects in the conceptual row
		may contain inaccurate information (specifically, the
		reported values may be less than the actual values)."
	::= { ciscoMemoryPoolEntry 4 }

ciscoMemoryPoolUsed OBJECT-TYPE
	SYNTAX	    Gauge32
	UNITS	    "bytes"
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"Indicates the number of bytes from the memory pool
		that are currently in use by applications on the
		managed device."
	::= { ciscoMemoryPoolEntry 5 }

ciscoMemoryPoolFree OBJECT-TYPE
	SYNTAX	    Gauge32
	UNITS	    "bytes"
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"Indicates the number of bytes from the memory pool
		that are currently unused on the managed device.

		Note that the sum of ciscoMemoryPoolUsed and
		ciscoMemoryPoolFree is the total amount of memory
		in the pool"
	::= { ciscoMemoryPoolEntry 6 }

ciscoMemoryPoolLargestFree OBJECT-TYPE
	SYNTAX	    Gauge32
	UNITS	    "bytes"
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"Indicates the largest number of contiguous bytes
		from the memory pool that are currently unused on
		the managed device."
	::= { ciscoMemoryPoolEntry 7 }

-- notifications

ciscoMemoryPoolNotifications OBJECT IDENTIFIER ::= { ciscoMemoryPoolMIB 2 }

-- (no notifications are currently defined)


-- conformance information

ciscoMemoryPoolConformance OBJECT IDENTIFIER ::= { ciscoMemoryPoolMIB 3 }
ciscoMemoryPoolCompliances OBJECT IDENTIFIER ::= { ciscoMemoryPoolConformance 1 }
ciscoMemoryPoolGroups OBJECT IDENTIFIER ::= { ciscoMemoryPoolConformance 2 }


-- compliance statements

ciscoMemoryPoolCompliance MODULE-COMPLIANCE
	STATUS	current
	DESCRIPTION
		"The compliance statement for entities which implement
		the Cisco Memory Pool MIB"
	MODULE	-- this module
		MANDATORY-GROUPS { ciscoMemoryPoolGroup }
	::= { ciscoMemoryPoolCompliances 1 }


-- units of conformance

ciscoMemoryPoolGroup OBJECT-GROUP
	OBJECTS {
		ciscoMemoryPoolName,
		ciscoMemoryPoolAlternate,
		ciscoMemoryPoolValid,
		ciscoMemoryPoolUsed,
		ciscoMemoryPoolFree,
		ciscoMemoryPoolLargestFree
	}
	STATUS	current
	DESCRIPTION
		"A collection of objects providing memory pool monitoring."
	::= { ciscoMemoryPoolGroups 1 }


END

-- ######################################################

--
-- File: cisco/CISCO-VMPS-MIB.mib
--

CISCO-VMPS-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE,
	Counter32, Integer32, IpAddress		FROM SNMPv2-SMI
	MODULE-COMPLIANCE, OBJECT-GROUP		FROM SNMPv2-CONF
	RowStatus, TimeStamp, MacAddress,
	TEXTUAL-CONVENTION, DisplayString	FROM SNMPv2-TC
	ciscoMgmt				FROM CISCO-SMI;

ciscoVmpsMIB MODULE-IDENTITY
	LAST-UPDATED "9605241304Z"
	ORGANIZATION "Cisco System Inc. "
	CONTACT-INFO
	    "Cisco Systems
	     Customer Service

	     Postal: 170 W Tasman Drive
	     San Jose, CA 95134
	     USA

	     Tel: +1 800 553-NETS

             E-mail: cs-vlans@cisco.com"
DESCRIPTION
	"The MIB module for the management of the
	 VLAN Membership Policy Server."
	::= { ciscoMgmt 53 }

ciscoVlanMemberPolicyServerMIBObjects
	OBJECT IDENTIFIER ::= { ciscoVmpsMIB 1 }

-- Information about a VMPS instance
vmpsInfo OBJECT IDENTIFIER ::= 
	{ ciscoVlanMemberPolicyServerMIBObjects 1 }

vmpsDatabase OBJECT IDENTIFIER ::= 
	{ ciscoVlanMemberPolicyServerMIBObjects 2 }

VlanName ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "The user friendly ASCII string associated with a VLAN."
    SYNTAX     DisplayString (SIZE (0..32))

-- VMPS process information/configuration

vmpsConfigTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF VmpsConfigEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" A table for creating and controling an instance of
		the VMPS." 
	::= { vmpsInfo 1 }

vmpsConfigEntry OBJECT-TYPE
	SYNTAX     VmpsConfigEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" An entry (conceptual row) in the vmpsConfigTable."
	INDEX { vmpsIndex }
	::= { vmpsConfigTable 1 }

VmpsConfigEntry ::= SEQUENCE {
	vmpsIndex                 Integer32,
	vmpsAdminStatus           INTEGER,
	vmpsDownloadServerAddress IpAddress,
	vmpsConfigFileName        DisplayString,
	vmpsTriggerDownload       INTEGER,
	vmpsFallbackVlan          VlanName,
	vmpsSecureMode            INTEGER,
	vmpsManagementDomain      DisplayString,
	vmpsRowStatus             RowStatus
}

vmpsIndex OBJECT-TYPE
	SYNTAX     Integer32
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" An arbitrary index identifying this particular
		instance of the VMPS.  This index need not be
		consistent across reboots.  For devices only
		supporting one instance of the VMPS this object need
		only accept the value of 1.  Different instances of
		the VMPS of one device will presumable be for
		different management domains."
	::= { vmpsConfigEntry 1 }

vmpsAdminStatus OBJECT-TYPE
	SYNTAX     INTEGER { active(1), inactive(2) }
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The desired  state of the VMPS  as prescribed by  the
		operator.  The actions of the agent will, if at all
		possible, eventually result in the desired state being
		reflected in the lecsOperStatus." 
	DEFVAL     { active }
	::= { vmpsConfigEntry 2 }

vmpsDownloadServerAddress OBJECT-TYPE
	SYNTAX IpAddress
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		" The IP address of the host supplying the TFTP configuration 
		data for the VMPS. If this value of this object is 0.0.0.0 
		then the VMPS will not attempt to download configuration 
		information."
	DEFVAL {'00000000'H}
	::= { vmpsConfigEntry 3 }

vmpsConfigFileName OBJECT-TYPE
	SYNTAX DisplayString
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		" The filename of the configuration file the VMPS will attempt 
		to download."
	DEFVAL {''H}
	::= { vmpsConfigEntry 4 }

vmpsTriggerDownload OBJECT-TYPE
	SYNTAX INTEGER {
		noOperation (1),
		loadDatabase(2) }
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" When set to `loadDatabase' this object will cause the VMPS 
		to initiate a TFTP download of the configuration tables 
		stored at the host identified by the vmpsBootServerAddress. A 
		download cannot be preformed unless the host address is 
		properly set. This object will always return noOperation(1)
		when read. Setting this object to loadDatabase(2) while the 
		vmpsOperStatus is loading(3) is effectively a no-op."
	::= { vmpsConfigEntry 5 }

vmpsFallbackVlan OBJECT-TYPE
	SYNTAX     VlanName
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" This is the VLAN returned in the configuration response 
		when a given configuration request contains data that matches 
		nothing in the VMPS database (given the specified classifiers).
		A value of the empty string signifies that there is no
		fall-back VLAN."
	DEFVAL {''H}
	::= { vmpsConfigEntry 6 }

vmpsSecureMode OBJECT-TYPE
	SYNTAX     INTEGER { secure(1), open(2) }
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" If in secure mode the VMPS will instruct the requesting 
		device to shutdown a port as a result of a match
		failure."
	DEFVAL { open }
	::= { vmpsConfigEntry 7 }

vmpsManagementDomain OBJECT-TYPE
	SYNTAX 	   DisplayString (SIZE (1..32))
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The management domain this VMPS is servicing."
	::= { vmpsConfigEntry 8 }

vmpsRowStatus OBJECT-TYPE
	SYNTAX     RowStatus
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The status of the conceptual row.  A valid value of
		vmpsManagementDomain must be set before the row can
		become active.  Devices that only support one instance
		of the VMPS may opt to always have a row in this table
                instantiated and not allow row manipulations."
	::= { vmpsConfigEntry 9 }

vmpsStatsTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF VmpsStatsEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" Statistics relating to this instance of the VMPS." 
	::= { vmpsInfo 2 }

vmpsStatsEntry OBJECT-TYPE
	SYNTAX     VmpsStatsEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" An entry (conceptual row) in the vmpsStatsTable." 
	AUGMENTS { vmpsConfigEntry }
	::= { vmpsStatsTable 1 }

VmpsStatsEntry ::= SEQUENCE {
	vmpsLastRestart    TimeStamp,
	vmpsInConfigReqs   Counter32,
	vmpsInConfigErrors Counter32,
	vmpsOutConfigFails Counter32,
	vmpsLastFailClient MacAddress,
	vmpsOperStatus     INTEGER
}

vmpsLastRestart OBJECT-TYPE
	SYNTAX     TimeStamp
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The value of sysUpTime when the VMPS was last 
		restarted."
	::= { vmpsStatsEntry 1 }

vmpsInConfigReqs OBJECT-TYPE
	SYNTAX     Counter32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The total number of configure requests, including
		vmpsInConfigErrors, that have been received by the VMPS." 
	::= { vmpsStatsEntry 2 }

vmpsInConfigErrors OBJECT-TYPE
	SYNTAX     Counter32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" Then number of packets received by the  VMPS but which
		were not correctly formatted configure requests."
	::= { vmpsStatsEntry 3 }

vmpsOutConfigFails OBJECT-TYPE
	SYNTAX     Counter32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The number  of  configure responses  sent  by this  
		particular VMPS whose status  was other than  success."
	::= { vmpsStatsEntry 4 }

vmpsLastFailClient OBJECT-TYPE
	SYNTAX     MacAddress
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"   The MAC address of the  VLAN client whose last
		configuration request  was rejected.  This  IP address
		will be for the VLAN client who was delivered the last
		configure response  that caused  the vmpsOutConfigFails
		object to  increment.  This  value is  taken  directly
		from the configure  request and is  not guaranteed to
		be correctly identify a client."  
	::= { vmpsStatsEntry 5 }

vmpsOperStatus OBJECT-TYPE
	SYNTAX     INTEGER { active(1), inactive(2), loading(3) }
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" This object reflects the actual state of the VMPS
		which may differ from that of the vmpsAdminStatus
		object. This can occur when the configuration database
		fails to load but the corresponding vmpsAdminStatus is 
		`active'. The state loading(3) indicates that the VMPS is 
		currently loading the configuration database from the TFTP
		server." 
	::= { vmpsStatsEntry 6 }

-- Database information

vmpsMacConfigTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF VmpsMacConfigEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" A (conceptual) table utilized by a VMPS  to map a MAC
		address of a end station to a VLAN." 
	::= { vmpsDatabase 1 }

vmpsMacConfigEntry OBJECT-TYPE 
	SYNTAX     VmpsMacConfigEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" An entry (conceptual row) of a mapping between a MAC
		address in utilization by an end station and a VLAN." 
	INDEX      { vmpsIndex, vmpsMacConfigAddress }
	::= { vmpsMacConfigTable 1 }

VmpsMacConfigEntry ::= SEQUENCE {
	vmpsMacConfigAddress		MacAddress,
	vmpsMacConfigVlan		VlanName,
	vmpsMacConfigLastAccessed	TimeStamp,
	vmpsMacConfigLastRequestor	IpAddress,
	vmpsMacConfigLastRequestPortId	DisplayString,
	vmpsMacConfigLastResponseStatus	INTEGER,
	vmpsMacConfigStatus		RowStatus
 }

vmpsMacConfigAddress OBJECT-TYPE
	SYNTAX     MacAddress
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" The MAC address of an end station to be associated
		with an VLAN." 
	::= { vmpsMacConfigEntry 1 }

vmpsMacConfigVlan OBJECT-TYPE
	SYNTAX     VlanName
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" A  VLAN that will be  returned to an end
		station that provides the corresponding MAC address in
		a configuration request.  A zero length string
		indicates that the corresponding MAC address is not
		permitted on any VLANs, including the fall-back."
	::= { vmpsMacConfigEntry 2 }

vmpsMacConfigLastAccessed OBJECT-TYPE
	SYNTAX     TimeStamp
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
	        " The value of sysUpTime when this entry was last used
		to map a  MAC address  to  a VLAN name.  Managers  may
		opt to use this object to garbage collect entries that
		have not been used for a prolonged period of time."
	::= { vmpsMacConfigEntry 3 }

vmpsMacConfigLastRequestor OBJECT-TYPE
	SYNTAX IpAddress
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		" The IP address of the device that requested the VLAN 
		associated with the MAC of this row. The manager may use this 
		object in an attempt to locate where a dynamic host currently 
		resides."
	::= { vmpsMacConfigEntry 4 }

vmpsMacConfigLastRequestPortId OBJECT-TYPE
	SYNTAX     DisplayString
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The ID of the port included in the configuration request 
		that corresponded to the designated entry in this table."
	::= { vmpsMacConfigEntry 5 }

vmpsMacConfigLastResponseStatus OBJECT-TYPE
	SYNTAX     INTEGER  { success(1),
			      versionNotSupported(2),
			      insufficientResources(3),
			      accessDenied(4),
			      portShutdown(5),
			      unknownManagementDomain(6) }
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION 
		" The value of the status field in the response for the last 
		configure request for this MAC-address."
	::= { vmpsMacConfigEntry 6 }

vmpsMacConfigStatus OBJECT-TYPE
	SYNTAX     RowStatus
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		"  The  row  cannot  be   set   to `active' until   an
		appropriate value exists for vmpsMacConfigVlan."
	::= { vmpsMacConfigEntry 7}

vmpsVlanConfigTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF VmpsVlanConfigEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" A list of VLANs with restricted access from dynamic
		ports. This list takes the form of a group of VLANs  
		and a group of ports permitted for those VLANs. If no
		entry exists for a particular VLAN then there are no
		restrictions as to what ports are allowed to access
		that VLAN. If entries exist for a VLAN, then all ports
		not explicitly permitted for that VLAN are denied
		access (in the form of a failed configuration
		response)." 
	::= { vmpsDatabase 2 }

vmpsVlanConfigEntry OBJECT-TYPE
	SYNTAX VmpsVlanConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		" An entry (conceptual row) in the vmpsVlanConfigTable."
	INDEX { vmpsIndex, vmpsVlanName, vmpsDeviceId, vmpsPortName}
	::= { vmpsVlanConfigTable 1 }

VmpsVlanConfigEntry ::= SEQUENCE {
	vmpsVlanName            VlanName,
	vmpsDeviceId            IpAddress,
	vmpsPortName            DisplayString,
	vmpsVlanConfigStatus	RowStatus
}

vmpsVlanName OBJECT-TYPE
	SYNTAX     VlanName
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" The VLAN name associated with a group of ports which
		are allowed access to that VLAN dynamically." 
	::= { vmpsVlanConfigEntry 1 }

vmpsDeviceId OBJECT-TYPE
	SYNTAX     IpAddress
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" The IP address of the device containing the
		permitted ports."
	::= { vmpsVlanConfigEntry 2 }

vmpsPortName OBJECT-TYPE
	SYNTAX     DisplayString
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" The ifName of the port on which dynamic access to
		the specified VLAN is allowed."
	::= { vmpsVlanConfigEntry 3 }

vmpsVlanConfigStatus OBJECT-TYPE
	SYNTAX     RowStatus
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The status object associated with the conceptual row. "
	::= { vmpsVlanConfigEntry 4}

-- Notifications
ciscoVlanMemberPolicyServerMIBNotifications
	OBJECT IDENTIFIER ::= { ciscoVmpsMIB 2 }
-- no notifications defined

-- Conformance

ciscoVlanMemberPolicyServerMIBConformance 
	OBJECT IDENTIFIER ::= { ciscoVmpsMIB 3 }

ciscoVlanMemberPolicyServerMIBCompliances 
	OBJECT IDENTIFIER ::= {	ciscoVlanMemberPolicyServerMIBConformance 1 } 

ciscoVlanMemberPolicyServerMIBGroups 
	OBJECT IDENTIFIER ::= { ciscoVlanMemberPolicyServerMIBConformance 2 } 

ciscoVlanMemberPolicyServerMIBCompliance MODULE-COMPLIANCE
	STATUS current
	DESCRIPTION
		" The   compliance   statement for   entities    which
		implement the VMPS MIB."
	MODULE
	MANDATORY-GROUPS { ciscoVlanMemberPolicyServerGroup }
	::= { ciscoVlanMemberPolicyServerMIBCompliances 1 }

-- Units of Conformance

ciscoVlanMemberPolicyServerGroup OBJECT-GROUP
	OBJECTS  { vmpsLastRestart, vmpsInConfigReqs, vmpsInConfigErrors,
		  vmpsOutConfigFails, vmpsLastFailClient, vmpsOperStatus, 
		  vmpsAdminStatus, vmpsDownloadServerAddress, 
		  vmpsConfigFileName, vmpsTriggerDownload, vmpsFallbackVlan, 
		  vmpsSecureMode, vmpsManagementDomain, vmpsRowStatus,
		  vmpsMacConfigVlan, vmpsMacConfigLastAccessed,
		  vmpsMacConfigLastRequestor,
		  vmpsMacConfigLastRequestPortId,
		  vmpsMacConfigLastResponseStatus, vmpsMacConfigStatus,
		  vmpsVlanConfigStatus   
		}
	STATUS current
	DESCRIPTION
		" A collection  of  objects for  the managing  of VMPS
		operation." 
	::= { ciscoVlanMemberPolicyServerMIBGroups 1 }

END



-- ######################################################

--
-- File: cisco/CISCO-VLAN-BRIDGE-MIB.mib
--

CISCO-VLAN-BRIDGING-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE                      FROM SNMPv2-SMI
    ciscoMgmt                        FROM CISCO-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF
    vtpVlanIndex                     FROM CISCO-VTP-MIB;


ciscoVlanBridgingMIB MODULE-IDENTITY
    LAST-UPDATED    "9609120000Z"
    ORGANIZATION    "Cisco Systems, Inc."
    CONTACT-INFO
            "       Cisco Systems
                    Customer Service

            Postal: 170 W Tasman Drive
                    San Jose, CA  95134
                    USA

               Tel: +1 800 553-NETS

            E-mail: cs-vlans@cisco.com"
    DESCRIPTION
            "A set of managed objects for optimizing access to
             bridging related data from RFC 1493.  This MIB is
             modeled after portions of RFC 1493, adding VLAN ID
             based indexing and bitmapped encoding of frequently
             accessed data."
    REVISION        "9609120000Z"
    DESCRIPTION
            "Initial version of this MIB module."
    ::= { ciscoMgmt 56 }


ciscoVlanBridgingMIBObjects OBJECT IDENTIFIER ::= { ciscoVlanBridgingMIB 1 }

cvbStp OBJECT IDENTIFIER ::= { ciscoVlanBridgingMIBObjects 1 }


--
-- Spanning Tree Status
--

cvbStpTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF CiscoVlanStpEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
           "This table contains device STP status information
            for each VLAN."
    ::= { cvbStp  1 }
 

cvbStpEntry OBJECT-TYPE
    SYNTAX  CiscoVlanStpEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
           "Device STP status for specified VLAN."
    INDEX         { vtpVlanIndex }
    ::= { cvbStpTable  1 }
 

CiscoVlanStpEntry ::=
    SEQUENCE {
        cvbStpForwardingMap     OCTET STRING
    }


cvbStpForwardingMap OBJECT-TYPE
    SYNTAX  OCTET STRING  (SIZE (0..128))
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
           "An indication of which ports are forwarding by spanning tree
            for the specified VLAN. The octet string contains one bit
            per port on the bridge for the specified VLAN. 

            Each bit within the octet string represents one port of the
            device.  The ordering of ports represented within the octet
            string is in the same order as in the RFC 1493 dot1dStpPortTable.

            The bit value interpretation is related to RFC 1493
            dot1dStpPortState values is as follows:
               1 = forwarding
               0 = disabled, blocking, listening, learning, broken, or
                   nonexistent"

    ::= { cvbStpEntry 2 }
 


-- Conformance

ciscoVlanBridgingMIBConformance
               OBJECT IDENTIFIER ::= { ciscoVlanBridgingMIB 3 }
ciscoVlanBridgingMIBCompliances 
               OBJECT IDENTIFIER ::= { ciscoVlanBridgingMIBConformance 1 }
ciscoVlanBridgingMIBGroups
               OBJECT IDENTIFIER ::= { ciscoVlanBridgingMIBConformance 2 }


-- compliance statements

ciscoVlanBridgingMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for entities which implement
            the Cisco VLAN Bridging MIB."
    MODULE  -- this module
            MANDATORY-GROUPS { ciscoVlanBridgingMIBGroup }
    ::= { ciscoVlanBridgingMIBCompliances 1 }

-- Units of Conformance

ciscoVlanBridgingMIBGroup OBJECT-GROUP
    OBJECTS { cvbStpForwardingMap }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing the VLAN bridging MIB
            capability."
    ::= { ciscoVlanBridgingMIBGroups 1 }

END


-- ######################################################

--
-- File: cisco-v1/OLD-CISCO-SYSTEM-MIB.mib
--

-- *****************************************************************
-- OLD-CISCO-SYSTEM-MIB.my:  Old Cisco System MIB file
--
-- Copyright (c) 1994-1995 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************
--

               OLD-CISCO-SYSTEM-MIB DEFINITIONS ::= BEGIN

               IMPORTS
			IpAddress
				FROM RFC1155-SMI
			OBJECT-TYPE
				FROM RFC-1212
			DisplayString
				FROM RFC1213-MIB
			local
				FROM CISCO-SMI;
          

               lsystem             OBJECT IDENTIFIER ::= { local 1 }


          -- Local System Group

          -- This group is present in all products.

               romId OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "This variable contains a printable octet
                           string which contains the System Bootstrap
                           description and version identification."
                   ::= { lsystem 1 }

               whyReload OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "This variable contains a printable octet
                           string which contains the reason why the
                           system was last restarted."
                   ::= { lsystem 2 }

               hostName OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "This variable represents the name of the
                           host in printable ascii characters."
                   ::= { lsystem 3 }

               domainName OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "This variable is the domain portion of the
                           domain name of the host."
                   ::= { lsystem 4 }

               authAddr OBJECT-TYPE
                   SYNTAX  IpAddress
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "This variable contains the last SNMP
                           authorization failure IP address."
                   ::= { lsystem 5 }

               bootHost OBJECT-TYPE
                   SYNTAX  IpAddress
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Contains the IP address of the host that
                           supplied the currently running software."
                   ::= { lsystem 6 }

               netConfigAddr OBJECT-TYPE
                   SYNTAX  IpAddress
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Holds the address of the host that supplied
                           the network-confg file."
                   ::= { lsystem 48 }

               netConfigName OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Holds the name of the network configuration
                           file."
                   ::= { lsystem 49 }

               netConfigSet OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  write-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Cause the loading of a new network-confg
                           file using TFTP."
                   ::= { lsystem 50 }

               hostConfigAddr OBJECT-TYPE
                   SYNTAX  IpAddress
                   ACCESS  read-only
                   STATUS  obsolete
                   DESCRIPTION
                           "Contains the address of the host that
                           provided the host-config file."
                   ::= { lsystem 51 }

               hostConfigName OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  obsolete
                   DESCRIPTION
                           "Contains the name of the last configured
                           host-confg file."
                   ::= { lsystem 52 }

               hostConfigSet OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  write-only
                   STATUS  obsolete
                   DESCRIPTION
                           "Cause the loading of a new host-confg file
                           using TFTP."
                   ::= { lsystem 53 }

               writeMem OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  write-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Write configuration into non-volatile memory
                           / erase config memory if 0."
                   ::= { lsystem 54 }

               writeNet OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  write-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Write configuration to host using TFTP."
                   ::= { lsystem 55 }

               ciscoContactInfo OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "cisco's name and address"
                   ::= { lsystem 61 }

               netConfigProto OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Holds the protocol that supplied the
                           network-confg file."
                   ::= { lsystem 70 }

               hostConfigProto OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Holds the protocol that supplied the host-
                           confg file."
                   ::= { lsystem 71 }

               sysConfigAddr OBJECT-TYPE
                   SYNTAX  IpAddress
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Holds the address of the host that supplied
                           the system boot image."
                   ::= { lsystem 72 }

               sysConfigName OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Holds the name of the system boot image."
                   ::= { lsystem 73 }

               sysConfigProto OBJECT-TYPE
                   SYNTAX  INTEGER {
                        -- other(0),
                        tftp(1),
                        rom(2),
                        flash(3)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Holds the protocol or media that supplied
                           the system boot image."
                   ::= { lsystem 74 }

               sysClearARP OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  write-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Perform a clearing of the entire ARP cache
                           and invalidation of route caches."
                   ::= { lsystem 75 }

               sysClearInt OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  write-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Clear interface given IfIndex as value."
                   ::= { lsystem 76 }


END


-- ######################################################

--
-- File: cisco-v1/OLD-CISCO-INTERFACES-MIB.mib
--

-- *****************************************************************
-- OLD-CISCO-INTERFACES-MIB.my:  Cisco Interfaces MIB file
--
-- May 1994, Jeffrey T. Johnson
--
-- Copyright (c) 1994,1997 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************
--

               OLD-CISCO-INTERFACES-MIB DEFINITIONS ::= BEGIN

               IMPORTS
                    Counter
			FROM RFC1155-SMI
		    OBJECT-TYPE
			FROM RFC-1212
                    DisplayString, ifIndex
			FROM RFC1213-MIB
		    local
			FROM CISCO-SMI;
          
               linterfaces         OBJECT IDENTIFIER ::= { local 2 }


               -- Local Interface Group

          -- This group is present in all products.


          -- Local Interface Table

          -- This group provides additional objects to the table
          -- defined by RFC1156.

               lifTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF LifEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A list of interface entries."
                   ::= { linterfaces 1 }

               lifEntry OBJECT-TYPE
                   SYNTAX LifEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A collection of additional objects in the
                            cisco interface."
                   INDEX { ifIndex }
               ::= { lifTable 1 }

               LifEntry ::=
                   SEQUENCE {
                       locIfHardType
                           DisplayString,
                       locIfLineProt
                           INTEGER,
                       locIfLastIn
                           INTEGER,
                       locIfLastOut
                           INTEGER,
                       locIfLastOutHang
                           INTEGER,
                       locIfInBitsSec
                           INTEGER,
                       locIfInPktsSec
                           INTEGER,
                       locIfOutBitsSec
                           INTEGER,
                       locIfOutPktsSec
                           INTEGER,
                       locIfInRunts
                           INTEGER,
                       locIfInGiants
                           INTEGER,
                       locIfInCRC
                           INTEGER,
                       locIfInFrame
                           INTEGER,
                       locIfInOverrun
                           INTEGER,
                       locIfInIgnored
                           INTEGER,
                       locIfInAbort
                           INTEGER,
                       locIfResets
                           INTEGER,
                       locIfRestarts
                           INTEGER,
                       locIfKeep
                           INTEGER,
                       locIfReason
                           DisplayString,
                       locIfCarTrans
                           INTEGER,
                       locIfReliab
                           INTEGER,
                       locIfDelay
                           INTEGER,
                       locIfLoad
                           INTEGER,
                       locIfCollisions
                           INTEGER,
                       locIfInputQueueDrops
                           INTEGER,
                       locIfOutputQueueDrops
                           INTEGER,
                       locIfDescr
                           DisplayString,
                       locIfSlowInPkts
                           Counter,
                       locIfSlowOutPkts
                           Counter,
                       locIfSlowInOctets
                           Counter,
                       locIfSlowOutOctets
                           Counter,
                       locIfFastInPkts
                           Counter,
                       locIfFastOutPkts
                           Counter,
                       locIfFastInOctets
                           Counter,
                       locIfFastOutOctets
                           Counter,
                       locIfotherInPkts
                           Counter,
                       locIfotherOutPkts
                           Counter,
                       locIfotherInOctets
                           Counter,
                       locIfotherOutOctets
                           Counter,
                       locIfipInPkts
                           Counter,
                       locIfipOutPkts
                           Counter,
                       locIfipInOctets
                           Counter,
                       locIfipOutOctets
                           Counter,
                       locIfdecnetInPkts
                           Counter,
                       locIfdecnetOutPkts
                           Counter,
                       locIfdecnetInOctets
                           Counter,
                       locIfdecnetOutOctets
                           Counter,
                       locIfxnsInPkts
                           Counter,
                       locIfxnsOutPkts
                           Counter,
                       locIfxnsInOctets
                           Counter,
                       locIfxnsOutOctets
                           Counter,
                       locIfclnsInPkts
                           Counter,
                       locIfclnsOutPkts
                           Counter,
                       locIfclnsInOctets
                           Counter,
                       locIfclnsOutOctets
                           Counter,
                       locIfappletalkInPkts
                           Counter,
                       locIfappletalkOutPkts
                           Counter,
                       locIfappletalkInOctets
                           Counter,
                       locIfappletalkOutOctets
                           Counter,
                       locIfnovellInPkts
                           Counter,
                       locIfnovellOutPkts
                           Counter,
                       locIfnovellInOctets
                           Counter,
                       locIfnovellOutOctets
                           Counter,
                       locIfapolloInPkts
                           Counter,
                       locIfapolloOutPkts
                           Counter,
                       locIfapolloInOctets
                           Counter,
                       locIfapolloOutOctets
                           Counter,
                       locIfvinesInPkts
                           Counter,
                       locIfvinesOutPkts
                           Counter,
                       locIfvinesInOctets
                           Counter,
                       locIfvinesOutOctets
                           Counter,
                       locIfbridgedInPkts
                           Counter,
                       locIfbridgedOutPkts
                           Counter,
                       locIfbridgedInOctets
                           Counter,
                       locIfbridgedOutOctets
                           Counter,
                       locIfsrbInPkts
                           Counter,
                       locIfsrbOutPkts
                           Counter,
                       locIfsrbInOctets
                           Counter,
                       locIfsrbOutOctets
                           Counter,
                       locIfchaosInPkts
                           Counter,
                       locIfchaosOutPkts
                           Counter,
                       locIfchaosInOctets
                           Counter,
                       locIfchaosOutOctets
                           Counter,
                       locIfpupInPkts
                           Counter,
                       locIfpupOutPkts
                           Counter,
                       locIfpupInOctets
                           Counter,
                       locIfpupOutOctets
                           Counter,
                       locIfmopInPkts
                           Counter,
                       locIfmopOutPkts
                           Counter,
                       locIfmopInOctets
                           Counter,
                       locIfmopOutOctets
                           Counter,
                       locIflanmanInPkts
                           Counter,
                       locIflanmanOutPkts
                           Counter,
                       locIflanmanInOctets
                           Counter,
                       locIflanmanOutOctets
                           Counter,
                       locIfstunInPkts
                           Counter,
                       locIfstunOutPkts
                           Counter,
                       locIfstunInOctets
                           Counter,
                       locIfstunOutOctets
                           Counter,
                       locIfspanInPkts
                           Counter,
                       locIfspanOutPkts
                           Counter,
                       locIfspanInOctets
                           Counter,
                       locIfspanOutOctets
                           Counter,
                       locIfarpInPkts
                           Counter,
                       locIfarpOutPkts
                           Counter,
                       locIfarpInOctets
                           Counter,
                       locIfarpOutOctets
                           Counter,
                       locIfprobeInPkts
                           Counter,
                       locIfprobeOutPkts
                           Counter,
                       locIfprobeInOctets
                           Counter,
                       locIfprobeOutOctets
                           Counter,
                       locIfDribbleInputs
                           Counter
                   }


          -- The following section describes the components of the
          -- table.

               locIfHardType OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Returns the type of interface."
                   ::= { lifEntry 1 }

               locIfLineProt OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Boolean whether interface line protocol is
                           up or not."
                   ::= { lifEntry 2 }

               locIfLastIn OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Elapsed time in milliseconds since last line
                           protocol input packet was received."
                   ::= { lifEntry 3 }

               locIfLastOut OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Elapsed time in milliseconds since last line
                           protocol output packet was transmitted."
                   ::= { lifEntry 4 }

               locIfLastOutHang OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Elapsed time in milliseconds since last line
                           protocol output packet could not be
                           successfully transmitted."
                   ::= { lifEntry 5 }

               locIfInBitsSec OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Five minute exponentially-decayed moving
                           average of input bits per second."
                   ::= { lifEntry 6 }

               locIfInPktsSec OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Five minute exponentially-decayed moving
                           average of input packets per second."
                   ::= { lifEntry 7 }

               locIfOutBitsSec OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Five minute exponentially-decayed moving
                           average of output bits per second."
                   ::= { lifEntry 8 }

               locIfOutPktsSec OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Five minute exponentially-decayed moving
                           average of output packets per second."
                   ::= { lifEntry 9 }

               locIfInRunts OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of packets input which were smaller
                           then the allowable physical media permitted."
                   ::= { lifEntry 10 }

               locIfInGiants OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of input packets which were larger
                           then the physical media permitted."
                   ::= { lifEntry 11 }

               locIfInCRC OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of input packets which had cyclic
                           redundancy checksum errors."
                   ::= { lifEntry 12 }

               locIfInFrame OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of input packet which were
                           misaligned."
                   ::= { lifEntry 13 }

               locIfInOverrun OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Count of input which arrived too quickly for
                           the to hardware receive."
                   ::= { lifEntry 14 }

               locIfInIgnored OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of input packets which were simply
                           ignored by this interface."
                   ::= { lifEntry 15 }

               locIfInAbort OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of input packets which were aborted."
                   ::= { lifEntry 16 }

               locIfResets OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of times the interface internally
                           reset."
                   ::= { lifEntry 17 }

               locIfRestarts OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of times interface needed to be
                           completely restarted."
                   ::= { lifEntry 18 }

               locIfKeep OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Boolean whether keepalives are enabled on
                           this interface."
                   ::= { lifEntry 19 }

               locIfReason OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Reason for interface last status change."
                   ::= { lifEntry 20 }

               locIfCarTrans OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of times interface saw the carrier
                           signal transition."
                   ::= { lifEntry 21 }

               locIfReliab OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "The reliability of the interface. Used by
                           IGRP."
                   ::= { lifEntry 22 }

               locIfDelay OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "The amount of delay in microseconds of the
                           interface. Used by IGRP."
                   ::= { lifEntry 23 }

               locIfLoad OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "The loading factor of the interface. Used by
                           IGRP."
                   ::= { lifEntry 24 }

               locIfCollisions OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "The number of output collisions detected on
                           this interface."
                   ::= { lifEntry 25 }

               locIfInputQueueDrops OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "The number of packets dropped because the
                           input queue was full."
                   ::= { lifEntry 26 }

               locIfOutputQueueDrops OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "The number of packets dropped because the
                           output queue was full."
                   ::= { lifEntry 27 }

               locIfDescr OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-write
                   STATUS  mandatory
                   DESCRIPTION
                           "User configurable interface description."
                   ::= { lifEntry 28 }

               locIfSlowInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Packet count for Inbound traffic routed with
                           slow switching"
                   ::= { lifEntry 30 }

               locIfSlowOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Packet count for Outbound traffic routed
                           with slow switching"
                   ::= { lifEntry 31 }

               locIfSlowInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Octet count for Inbound traffic routed with
                           slow switching"
                   ::= { lifEntry 32 }

               locIfSlowOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Octet count for Outbound traffic routed with
                           slow switching"
                   ::= { lifEntry 33 }

               locIfFastInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Packet count for Inbound traffic routed with
                           fast switching"
                   ::= { lifEntry 34 }

               locIfFastOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Packet count for Outbound traffic routed
                           with fast switching"
                   ::= { lifEntry 35 }

               locIfFastInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Octet count for Inbound traffic routed with
                           fast switching"
                   ::= { lifEntry 36 }

               locIfFastOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Octet count for Outbound traffic routed with
                           fast switching"
                   ::= { lifEntry 37 }

               locIfotherInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Other protocol input packet count"
                   ::= { lifEntry 38 }

               locIfotherOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Other protocol output packet count"
                   ::= { lifEntry 39 }

               locIfotherInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Other protocol input octet count"
                   ::= { lifEntry 40 }

               locIfotherOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Other protocol output octet count"
                   ::= { lifEntry 41 }

               locIfipInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "ip protocol input packet count"
                   ::= { lifEntry 42 }

               locIfipOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "ip protocol output packet count"
                   ::= { lifEntry 43 }

               locIfipInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "ip protocol input octet count"
                   ::= { lifEntry 44 }

               locIfipOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "ip protocol output octet count"
                   ::= { lifEntry 45 }

               locIfdecnetInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Decnet protocol input packet count"
                   ::= { lifEntry 46 }

               locIfdecnetOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Decnet protocol output packet count"
                   ::= { lifEntry 47 }

               locIfdecnetInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Decnet protocol input byte count"
                   ::= { lifEntry 48 }

               locIfdecnetOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Decnet protocol output byte count"
                   ::= { lifEntry 49 }

               locIfxnsInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "XNS protocol input packet count"
                   ::= { lifEntry 50 }

               locIfxnsOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "XNS protocol output packet count"
                   ::= { lifEntry 51 }

               locIfxnsInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "XNS protocol input byte count"
                   ::= { lifEntry 52 }

               locIfxnsOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "XNS protocol output byte count"
                   ::= { lifEntry 53 }

               locIfclnsInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "CLNS protocol input packet count"
                   ::= { lifEntry 54 }

               locIfclnsOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "CLNS protocol output packet count"
                   ::= { lifEntry 55 }

               locIfclnsInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "CLNS protocol input byte count"
                   ::= { lifEntry 56 }

               locIfclnsOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "CLNS protocol output byte count"
                   ::= { lifEntry 57 }

               locIfappletalkInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Appletalk protocol input packet count"
                   ::= { lifEntry 58 }

               locIfappletalkOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Appletalk protocol output packet count"
                   ::= { lifEntry 59 }

               locIfappletalkInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Appletalk protocol input octet count"
                   ::= { lifEntry 60 }

               locIfappletalkOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Appletalk protocol output octet count"
                   ::= { lifEntry 61 }

               locIfnovellInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Novell protocol input packet count"
                   ::= { lifEntry 62 }

               locIfnovellOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Novell protocol output packet count"
                   ::= { lifEntry 63 }

               locIfnovellInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Novell protocol input octet count"
                   ::= { lifEntry 64 }

               locIfnovellOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Novell protocol output octet count"
                   ::= { lifEntry 65 }

               locIfapolloInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Apollo protocol input packet count"
                   ::= { lifEntry 66 }

               locIfapolloOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Apollo protocol output packet count"
                   ::= { lifEntry 67 }

               locIfapolloInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Apollo protocol input octet count"
                   ::= { lifEntry 68 }

               locIfapolloOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Apollo protocol output octet count"
                   ::= { lifEntry 69 }

               locIfvinesInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Vines protocol input packet count"
                   ::= { lifEntry 70 }

               locIfvinesOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Vines protocol output packet count"
                   ::= { lifEntry 71 }

               locIfvinesInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Vines protocol input octet count"
                   ::= { lifEntry 72 }

               locIfvinesOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Vines protocol output octet count"
                   ::= { lifEntry 73 }

               locIfbridgedInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Bridged protocol input packet count"
                   ::= { lifEntry 74 }

               locIfbridgedOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Bridged protocol output packet count"
                   ::= { lifEntry 75 }

               locIfbridgedInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Bridged protocol input octet count"
                   ::= { lifEntry 76 }

               locIfbridgedOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Bridged protocol output octet count"
                   ::= { lifEntry 77 }

               locIfsrbInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "SRB protocol input packet count"
                   ::= { lifEntry 78 }

               locIfsrbOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "SRB protocol output packet count"
                   ::= { lifEntry 79 }

               locIfsrbInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "SRB protocol input octet count"
                   ::= { lifEntry 80 }

               locIfsrbOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "SRB protocol output octet count"
                   ::= { lifEntry 81 }

               locIfchaosInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Choas protocol input packet count"
                   ::= { lifEntry 82 }

               locIfchaosOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Choas protocol output packet count"
                   ::= { lifEntry 83 }

               locIfchaosInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Choas protocol input octet count"
                   ::= { lifEntry 84 }

               locIfchaosOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Choas protocol output octet count"
                   ::= { lifEntry 85 }

               locIfpupInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "PUP protocol input packet count"
                   ::= { lifEntry 86 }

               locIfpupOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "PUP protocol output packet count"
                   ::= { lifEntry 87 }

               locIfpupInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "PUP protocol input octet count"
                   ::= { lifEntry 88 }

               locIfpupOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "PUP protocol output octet count"
                   ::= { lifEntry 89 }

               locIfmopInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "MOP protocol input packet count"
                   ::= { lifEntry 90 }

               locIfmopOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "MOP protocol output packet count"
                   ::= { lifEntry 91 }

               locIfmopInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "MOP protocol input octet count"
                   ::= { lifEntry 92 }

               locIfmopOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "MOP protocol output octet count"
                   ::= { lifEntry 93 }

               locIflanmanInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "LanMan protocol input packet count"
                   ::= { lifEntry 94 }

               locIflanmanOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "LanMan protocol output packet count"
                   ::= { lifEntry 95 }

               locIflanmanInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "LanMan protocol input octet count"
                   ::= { lifEntry 96 }

               locIflanmanOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "LanMan protocol output octet count"
                   ::= { lifEntry 97 }

               locIfstunInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "STUN protocol input packet count"
                   ::= { lifEntry 98 }

               locIfstunOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "STUN protocol output packet count"
                   ::= { lifEntry 99 }

               locIfstunInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "STUN protocol input octet count"
                   ::= { lifEntry 100 }

               locIfstunOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "STUN protocol output octet count"
                   ::= { lifEntry 101 }

               locIfspanInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Spanning tree input protocol packet count"
                   ::= { lifEntry 102 }

               locIfspanOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Spanning tree output protocol packet count"
                   ::= { lifEntry 103 }

               locIfspanInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Spanning tree input octet packet count"
                   ::= { lifEntry 104 }

               locIfspanOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Spanning tree output octet packet count"
                   ::= { lifEntry 105 }

               locIfarpInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Arp protocol input packet count"
                   ::= { lifEntry 106 }

               locIfarpOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Arp protocol output packet count"
                   ::= { lifEntry 107 }

               locIfarpInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Arp protocol input octet count"
                   ::= { lifEntry 108 }

               locIfarpOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Arp protocol output octet count"
                   ::= { lifEntry 109 }

               locIfprobeInPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Probe protocol input packet count"
                   ::= { lifEntry 110 }

               locIfprobeOutPkts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Probe protocol output packet count"
                   ::= { lifEntry 111 }

               locIfprobeInOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Probe protocol input octet count"
                   ::= { lifEntry 112 }

               locIfprobeOutOctets OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Probe protocol output octet count"
                   ::= { lifEntry 113 }

               locIfDribbleInputs OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "The number of good packets received with the
                           dribble condition present"
                   ::= { lifEntry 114 }

               -- End of table



          -- Local FSIP card Table, also used for 4T, HSSI, Mx serial

          -- This group provides additional objects to the table
          -- defined by RFC1156.

               lFSIPTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF LFSIPEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A list of card entries for 4T, HSSI,
		             Mx serial or FSIP."
                   ::= { linterfaces 2 }

               lFSIPEntry OBJECT-TYPE
                   SYNTAX LFSIPEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A collection of objects specific to 4T,
			     HSSI, Mx serial or FSIP."
                   INDEX { locIfFSIPIndex }
               ::= { lFSIPTable 1 }

               LFSIPEntry ::=
                   SEQUENCE {
                       locIfFSIPIndex
                           INTEGER,
                       locIfFSIPtype
                           INTEGER,
                       locIfFSIPrts
                           INTEGER,
                       locIfFSIPcts
                           INTEGER,
                       locIfFSIPdtr
                           INTEGER,
                       locIfFSIPdcd
                           INTEGER,
                       locIfFSIPdsr
                           INTEGER,
                       locIfFSIPrxClockrate
                           INTEGER,
                       locIfFSIPrxClockrateHi
                           INTEGER,
                       locIfFSIPportType
                           INTEGER
                   }


          -- The following section describes the components of the
          -- table.

               locIfFSIPIndex OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Interface index of this card corresponding
                           to its ifIndex"
                   ::= { lFSIPEntry 1 }

               locIfFSIPtype OBJECT-TYPE
                   SYNTAX  INTEGER {
                        notAvailable(1),
                        dte(2),
                        dce(3)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Is this FSIP line DCE or DTE"
                   ::= { lFSIPEntry 2 }

               locIfFSIPrts OBJECT-TYPE
                   SYNTAX  INTEGER {
                        notAvailable(1),
                        up(2),
                        down(3)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Is the RTS signal up or down"
                   ::= { lFSIPEntry 3 }

               locIfFSIPcts OBJECT-TYPE
                   SYNTAX  INTEGER {
                        notAvailable(1),
                        up(2),
                        down(3)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Is the CTS signal up or down"
                   ::= { lFSIPEntry 4 }

               locIfFSIPdtr OBJECT-TYPE
                   SYNTAX  INTEGER {
                        notAvailable(1),
                        up(2),
                        down(3)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Is the DTR signal up or down"
                   ::= { lFSIPEntry 5 }

               locIfFSIPdcd OBJECT-TYPE
                   SYNTAX  INTEGER {
                        notAvailable(1),
                        up(2),
                        down(3)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Is the DCD signal up or down"
                   ::= { lFSIPEntry 6 }

               locIfFSIPdsr OBJECT-TYPE
                   SYNTAX  INTEGER {
                        notAvailable(1),
                        up(2),
                        down(3)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Is the DSR signal up or down"
                   ::= { lFSIPEntry 7 }

               locIfFSIPrxClockrate OBJECT-TYPE
                   SYNTAX INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                       "Received clock rate"
                   ::= { lFSIPEntry 8 }

               locIfFSIPrxClockrateHi OBJECT-TYPE
                   SYNTAX INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                       "Use when received clock rate 
			is greater than 2^32 (gigabits)."
                   ::= { lFSIPEntry 9 }

	       -- PortType is modeled after rs232PortType 
	       -- in RS-232-MIB.my

               locIfFSIPportType OBJECT-TYPE
                   SYNTAX  INTEGER {
			 noCable(1),
                         rs232(2),
			 rs422(3),
			 rs423(4),
			 v35(5),
			 x21(6),
			 rs449(7),
			 rs530(8),
		         hssi(9)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Cable Type of 4T, HSSI, Mx serial or FSIP"
                   ::= { lFSIPEntry 10 }

               -- End of table


END

-- ######################################################

--
-- File: cisco-v1/OLD-CISCO-IP-MIB.mib
--

-- *****************************************************************
-- OLD-CISCO-IP-MIB.my:  Old Local IP MIB file
--
-- May 1994, Nick Thille
--
-- Copyright (c) 1994 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************
--

            OLD-CISCO-IP-MIB DEFINITIONS ::= BEGIN

               IMPORTS
                    IpAddress, Counter, TimeTicks
			FROM RFC1155-SMI
                    OBJECT-TYPE
			FROM RFC-1212
                    ipAdEntAddr, ipRouteDest, DisplayString
			FROM RFC1213-MIB
                    local
			FROM CISCO-SMI;
          
               lip OBJECT IDENTIFIER ::= { local 4 }

               -- Local IP Group

          -- This group is present in all products which are using the
          -- IP protocol.


          -- Local IP Address Table

          -- This group provides additional objects to the table
          -- defined by RFC 1213.

               lipAddrTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF LipAddrEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A list of IP address entries."
                   ::= { lip 1 }

               lipAddrEntry OBJECT-TYPE
                   SYNTAX LipAddrEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A collection of additional objects in the
                            cisco IP implementation."
                   INDEX { ipAdEntAddr }
               ::= { lipAddrTable 1 }

               LipAddrEntry ::=
                   SEQUENCE {
                       locIPHow
                           DisplayString,
                       locIPWho
                           IpAddress,
                       locIPHelper
                           IpAddress,
                       locIPSecurity
                           INTEGER,
                       locIPRedirects
                           INTEGER,
                       locIPUnreach
                           INTEGER
                   }


          -- The following section describes the components of the
          -- table.

               locIPHow OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Method of how this interface obtained its IP
                           address."
                   ::= { lipAddrEntry 1 }

               locIPWho OBJECT-TYPE
                   SYNTAX  IpAddress
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "IP address of who supplied this interface
                           its IP address."
                   ::= { lipAddrEntry 2 }

               locIPHelper OBJECT-TYPE
                   SYNTAX  IpAddress
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "IP helper address for broadcast forwarding
                           support."
                   ::= { lipAddrEntry 3 }

               locIPSecurity OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "IP security level. See RFC 1038."
                   ::= { lipAddrEntry 4 }

               locIPRedirects OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Boolean whether ICMP redirects will be sent
                           or not."
                   ::= { lipAddrEntry 5 }

               locIPUnreach OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Boolean whether ICMP unreachables will be
                           sent or not."
                   ::= { lipAddrEntry 6 }

               -- End of table



               -- Local IP Routing Table

          -- This group provides additional objects to the table
          -- defined by RFC1156.

               lipRouteTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF LipRouteEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A list of IP routing entries."
                   ::= { lip 2 }

               lipRouteEntry OBJECT-TYPE
                   SYNTAX LipRouteEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A collection of additional objects in the
                            cisco IP routing implementation."
                   INDEX { ipRouteDest }
               ::= { lipRouteTable 1 }

               LipRouteEntry ::=
                   SEQUENCE {
                       locRtMask
                           IpAddress,
                       locRtCount
                           INTEGER,
                       locRtUses
                           INTEGER
                   }


          -- The following section describes the components of the
          -- table.

               locRtMask OBJECT-TYPE
                   SYNTAX  IpAddress
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Routing table network mask."
                   ::= { lipRouteEntry 1 }

               locRtCount OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of parallel routes within routing
                           table."
                   ::= { lipRouteEntry 2 }

               locRtUses OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of times this route was used in a
                           forward operation."
                   ::= { lipRouteEntry 3 }

               -- End of table


               actThresh OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Threshold of IP accounting records in use
                           before IP traffic will be unaccounted."
                   ::= { lip 4 }

               actLostPkts OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Lost IP packets due to memory limitations."
                   ::= { lip 5 }

               actLostByts OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total bytes of lost IP packets."
                   ::= { lip 6 }


               -- Local IP Accounting Table

          -- This group provides access to the cisco IP accounting
          -- support.

               lipAccountingTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF LipAccountEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A list of IP accounting entries."
                   ::= { lip 7 }

               lipAccountEntry OBJECT-TYPE
                   SYNTAX LipAccountEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A collection of objects necessary for IP
                            accounting."
                   INDEX { actSrc, actDst }
               ::= { lipAccountingTable 1 }

               LipAccountEntry ::=
                   SEQUENCE {
                       actSrc
                           IpAddress,
                       actDst
                           IpAddress,
                       actPkts
                           INTEGER,
                       actByts
                           INTEGER,
                       actViolation
                           INTEGER
                   }


          -- The following section describes the components of the
          -- table.

               actSrc OBJECT-TYPE
                   SYNTAX  IpAddress
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "IP Source address for host traffic matrix."
                   ::= { lipAccountEntry 1 }

               actDst OBJECT-TYPE
                   SYNTAX  IpAddress
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "IP Destination address for host traffic
                           matrix."
                   ::= { lipAccountEntry 2 }

               actPkts OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of IP packets sent from source to
                           destination."
                   ::= { lipAccountEntry 3 }

               actByts OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total number of bytes in IP packets from
                           source to destination."
                   ::= { lipAccountEntry 4 }

               actViolation OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Access list number violated by packets from
                           this source to this destination.  A zero value
                           indicates that no access list was violated."
                   ::= { lipAccountEntry 5 }

               -- End of table


               actAge OBJECT-TYPE
                   SYNTAX  TimeTicks
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "The age of the data in the current data
                           matrix."
                   ::= { lip 8 }


               -- Local IP Checkpoint Accounting Table

          -- This group provides access to the cisco
          -- IP checkpoint accounting support.

               lipCkAccountingTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF LipCkAccountEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A list of IP checkpoint accounting
                            entries."
                   ::= { lip 9 }

               lipCkAccountEntry OBJECT-TYPE
                   SYNTAX LipCkAccountEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A collection of objects necessary for IP
                            checkpoint accounting."
                   INDEX { ckactSrc, ckactDst }
               ::= { lipCkAccountingTable 1 }

               LipCkAccountEntry ::=
                   SEQUENCE {
                       ckactSrc
                           IpAddress,
                       ckactDst
                           IpAddress,
                       ckactPkts
                           INTEGER,
                       ckactByts
                           INTEGER,
                       ckactViolation
                           INTEGER
                   }


          -- The following section describes the components of the
          -- table.

               ckactSrc OBJECT-TYPE
                   SYNTAX  IpAddress
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "IP Source address for host in checkpoint
                           traffic matrix."
                   ::= { lipCkAccountEntry 1 }

               ckactDst OBJECT-TYPE
                   SYNTAX  IpAddress
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "IP Destination address for host in
                           checkpoint traffic matrix."
                   ::= { lipCkAccountEntry 2 }

               ckactPkts OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of IP packets sent from source to
                           destination in checkpoint matrix."
                   ::= { lipCkAccountEntry 3 }

               ckactByts OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total number of bytes in IP packets from
                           source to destination in checkpoint matrix.
                           A zero value indicates that no access list 
                           was violated."
                   ::= { lipCkAccountEntry 4 }

               ckactViolation OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Access list number violated by packets from
                           source to destination in checkpoint matrix."
                   ::= { lipCkAccountEntry 5 }

               -- End of table


               ckactAge OBJECT-TYPE
                   SYNTAX  TimeTicks
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Age of data in the checkpoint matrix."
                   ::= { lip 10 }

               actCheckPoint OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-write
                   STATUS  mandatory
                   DESCRIPTION
                           "Check points the accounting database. This
                           mib variable must be read and then set with
                           the same value for the check point to
                           succeed. The value read and then set will be
                           incremented after a successful set request"
                   ::= { lip 11 }

               ipNoaccess OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total number of packets dropped due to
                           access control failure."
                   ::= { lip 12 }
END


-- ######################################################

--
-- File: cisco-v1/OLD-CISCO-TS-MIB.mib
--

-- *****************************************************************
-- OLD-CISCO-TS-MIB.my:  Cisco Terminal Service MIB file
--
-- May 1994, Jeffrey T. Johnson
--
-- Copyright (c) 1994 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************
--

               OLD-CISCO-TS-MIB DEFINITIONS ::= BEGIN

               IMPORTS
			IpAddress
				FROM RFC1155-SMI
			OBJECT-TYPE
				FROM RFC-1212
			DisplayString
				FROM RFC1213-MIB
			local
				FROM CISCO-SMI;
          
               lts                 OBJECT IDENTIFIER ::= { local 9 }

               -- Local cisco Terminal Service Group

          -- This group is present in all products which contain
          -- asynchronous terminal lines.

               tsLines OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of terminal lines on this device.
                           Includes virtual lines."
                   ::= { lts 1 }


               -- Local Terminal Service Line Table

          -- This group contains terminal service specific
          -- information on a per line basis.

               ltsLineTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF LtsLineEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A list of terminal server line entries."
                   ::= { lts 2 }

               ltsLineEntry OBJECT-TYPE
                   SYNTAX LtsLineEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A collection of per TTY objects in the
                            cisco Terminal Server implementation."
                   INDEX { tsLineNumber }
               ::= { ltsLineTable 1 }

               LtsLineEntry ::=
                   SEQUENCE {
                       tsLineActive
                           INTEGER,
                       tsLineType
                           INTEGER,
                       tsLineAutobaud
                           INTEGER,
                       tsLineSpeedin
                           INTEGER,
                       tsLineSpeedout
                           INTEGER,
                       tsLineFlow
                           INTEGER,
                       tsLineModem
                           INTEGER,
                       tsLineLoc
                           DisplayString,
                       tsLineTerm
                           DisplayString,
                       tsLineScrlen
                           INTEGER,
                       tsLineScrwid
                           INTEGER,
                       tsLineEsc
                           DisplayString,
                       tsLineTmo
                           INTEGER,
                       tsLineSestmo
                           INTEGER,
                       tsLineRotary
                           INTEGER,
                       tsLineUses
                           INTEGER,
                       tsLineNses
                           INTEGER,
                       tsLineUser
                           DisplayString,
                       tsLineNoise
                           INTEGER,
                       tsLineNumber
                           INTEGER,
                       tsLineTimeActive
                           INTEGER
                   }


          -- The following section describes the components of the
          -- table.

               tsLineActive OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Boolean whether this line is active or not."
                   ::= { ltsLineEntry 1 }

               tsLineType OBJECT-TYPE
                   SYNTAX  INTEGER {
                        unknown(1),
                        console(2),
                        terminal(3),
                        line-printer(4),
                        virtual-terminal(5),
                        auxiliary(6)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Type of line."
                   ::= { ltsLineEntry 2 }

               tsLineAutobaud OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Boolean whether line will autobaud or not."
                   ::= { ltsLineEntry 3 }

               tsLineSpeedin OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "What input speed the line is running at."
                   ::= { ltsLineEntry 4 }

               tsLineSpeedout OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "What output speed the line is running at."
                   ::= { ltsLineEntry 5 }

               tsLineFlow OBJECT-TYPE
                   SYNTAX  INTEGER {
                        unknown(1),
                        none(2),
                        software-input(3),
                        software-output(4),
                        software-both(5),
                        hardware-input(6),
                        hardware-output(7),
                        hardware-both(8)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "What kind of flow control the line is
                           using."
                   ::= { ltsLineEntry 6 }

               tsLineModem OBJECT-TYPE
                   SYNTAX  INTEGER {
                        unknown(1),
                        none(2),
                        call-in(3),
                        call-out(4),
                        cts-required(5),
                        ri-is-cd(6),
                        inout(7)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "What kind of modem control the line is
                           using."
                   ::= { ltsLineEntry 7 }

               tsLineLoc OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Describes the line's physical location."
                   ::= { ltsLineEntry 8 }

               tsLineTerm OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Describes the line's terminal type."
                   ::= { ltsLineEntry 9 }

               tsLineScrlen OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Length in lines of the screen of terminal
                           attached to this line."
                   ::= { ltsLineEntry 10 }

               tsLineScrwid OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Width in characters of the screen of
                           terminal attached to this line."
                   ::= { ltsLineEntry 11 }

               tsLineEsc OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Escape character used to break out of active
                           sessions."
                   ::= { ltsLineEntry 12 }

               tsLineTmo OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Line idleness timeout in seconds."
                   ::= { ltsLineEntry 13 }

               tsLineSestmo OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Session idleness timeout in seconds."
                   ::= { ltsLineEntry 14 }

               tsLineRotary OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Rotary group number the line belongs in."
                   ::= { ltsLineEntry 15 }

               tsLineUses OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of times a connection has been made
                           to or from this line."
                   ::= { ltsLineEntry 16 }

               tsLineNses OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Current number of sessions in use on this
                           line."
                   ::= { ltsLineEntry 17 }

               tsLineUser OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "TACACS user name, if TACACS enabled, of user
                           on this line."
                   ::= { ltsLineEntry 18 }

               tsLineNoise OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Count of garbage characters received when
                           line inactive."
                   ::= { ltsLineEntry 19 }

               tsLineNumber OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "The line i've been talking about."
                   ::= { ltsLineEntry 20 }

               tsLineTimeActive OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "The time in seconds since line was activated."
                   ::= { ltsLineEntry 21 }
               -- End of table

               -- Local Terminal Service Line Session Table

          -- This group contains terminal server specific
          -- information on a per line and per session basis.

               ltsLineSessionTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF LtsLineSessionEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A list of terminal server line and session
                            entries."
                   ::= { lts 3 }

               ltsLineSessionEntry OBJECT-TYPE
                   SYNTAX LtsLineSessionEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A collection of per session and per TTY
                            objects in the cisco Terminal Server
                            implementation."
                   INDEX { tslineSesLine, tslineSesSession }
               ::= { ltsLineSessionTable 1 }

               LtsLineSessionEntry ::=
                   SEQUENCE {
                       tslineSesType
                           INTEGER,
                       tslineSesDir
                           INTEGER,
                       tslineSesAddr
                           IpAddress,
                       tslineSesName
                           DisplayString,
                       tslineSesCur
                           INTEGER,
                       tslineSesIdle
                           INTEGER,
                       tslineSesLine
                           INTEGER,
                       tslineSesSession 
                           INTEGER
                   }


          -- The following section describes the components of the
          -- table.

               tslineSesType OBJECT-TYPE
                   SYNTAX  INTEGER {
                        unknown(1),
                        pad(2),
                        stream(3),
                        rlogin(4),
                        telnet(5),
                        tcp(6),
                        lat(7),
                        mop(8),
                        slip(9),
                        xremote(10),
			rshell(11)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Type of session."
                   ::= { ltsLineSessionEntry 1 }

               tslineSesDir OBJECT-TYPE
                   SYNTAX  INTEGER {
                        unknown(1),
                        incoming(2),
                        outgoing(3)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Direction of session."
                   ::= { ltsLineSessionEntry 2 }

               tslineSesAddr OBJECT-TYPE
                   SYNTAX  IpAddress
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Remote host address of session. [What about
                           PAD connections?]"
                   ::= { ltsLineSessionEntry 3 }

               tslineSesName OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Remote host name of session."
                   ::= { ltsLineSessionEntry 4 }

               tslineSesCur OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Boolean whether session is the currently
                           active one."
                   ::= { ltsLineSessionEntry 5 }

               tslineSesIdle OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Time in seconds session has been idle."
                   ::= { ltsLineSessionEntry 6 }

               tslineSesLine OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Table index 1."
                   ::= { ltsLineSessionEntry 7 }

               tslineSesSession OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Table index 2."
                   ::= { ltsLineSessionEntry 8 }

               -- End of table


               tsMsgTtyLine OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-write
                   STATUS  mandatory
                   DESCRIPTION
                           "tty line to send the message to. -1 will
                           send it to all tty lines"
                   ::= { lts 4 }

               tsMsgIntervaltim OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-write
                   STATUS  mandatory
                   DESCRIPTION
                           "Interval between reissuing message in
                           milliseconds. Minimum non-zero setting is
                           10000. 0 will cause the routine to choose its
                           own intervals becoming more frequent as
                           MessageDuration gets close to expiring. 2hr,
                           1hr, 30min, 5min, 1min"
                   ::= { lts 5 }

               tsMsgDuration OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-write
                   STATUS  mandatory
                   DESCRIPTION
                           "Length of time to reissue message in
                           milliseconds. Minimum non-zero setting is
                           10000. A setting of 0 will not repeat the
                           message."
                   ::= { lts 6 }

               tsMsgText OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-write
                   STATUS  mandatory
                   DESCRIPTION
                           "Up to 256 characters that will make up the
                           message"
                   ::= { lts 7 }

               tsMsgTmpBanner OBJECT-TYPE
                   SYNTAX  INTEGER {
                        no(1),
                        additive(2)
                   }
                   ACCESS  read-write
                   STATUS  mandatory
                   DESCRIPTION
                           "Should the message be used as a temporary
                           banner. 1 - No. 2 - In addition to the normal
                           banner"
                   ::= { lts 8 }

               tsMsgSend OBJECT-TYPE
                   SYNTAX  INTEGER {
                        nothing(1),
                        reload(2),
                        messagedone(3),
                        abort(4)
                   }
                   ACCESS  read-write
                   STATUS  mandatory
                   DESCRIPTION
                           "Sends the message. The value determines what
                           to do after the message has completed."
                   ::= { lts 9 }

               tsClrTtyLine OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-write
                   STATUS  mandatory
                   DESCRIPTION
                           "tty line to clear.  Read returns the last line
                           cleared.  A value of -1 indicates no lines have 
                           been cleared."
                   ::= { lts 10 }

END


-- ######################################################

--
-- File: cisco-v1/OLD-CISCO-FLASH-MIB.mib
--

-- *****************************************************************
-- OLD-CISCO-FLASH-MIB.my:  Old Cisco Flash MIB file
--
-- Copyright (c) 1994,1997 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************
--

               OLD-CISCO-FLASH-MIB DEFINITIONS ::= BEGIN

               IMPORTS
                    TimeTicks
			FROM RFC1155-SMI
		    OBJECT-TYPE
			FROM RFC-1212
                    DisplayString
			FROM RFC1213-MIB
		    local
			FROM CISCO-SMI;
          
               lflash              OBJECT IDENTIFIER ::= { local 10 }

               -- Local cisco Flash Group

          -- This group is present in all products which contain flash"

               flashSize OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total Size in Octets of Flash memory"
                   ::= { lflash 1 }

               flashFree OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Unused Size in Octets of Flash memory"
                   ::= { lflash 2 }

               flashController OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Provides the type of Flash controller 
                           (either CCTL or CCTL2) installed in the 
                           router."
                   ::= { lflash 3 }

               flashCard OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Provides the type of Flash Card installed
                           in the router. For example, the type of 
                           Flash Card could be either CSC-MS or 
                           CSC-MC+."
                   ::= { lflash 4 }

               flashVPP OBJECT-TYPE
                   SYNTAX  INTEGER {
                        installed(1),
                        missing(2)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "State of the VPP DIP jumper on the Flash
                           memory card. Files can be written to the
                           Flash memory card only if the VPP DIP
                           jumper is turned on."
                   ::= { lflash 5 }

               flashErase OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  write-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Request to erase flash memory"
                   ::= { lflash 6 }

               flashEraseTime OBJECT-TYPE
                   SYNTAX  TimeTicks
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Indicates the value of sysUptime the last
                           time Flash memory was erased. If the flash
                           had not been erased after powerup it has a
                           value of 0 days 00:00:00."
                   ::= { lflash 7 }

               flashEraseStatus OBJECT-TYPE
                   SYNTAX  INTEGER {
                        flashOpInProgress(1),
                        flashOpSuccess(2),
                        flashOpFailure(3),
                        flashReadOnly(4),
                        flashOpenFailure(5),
                        bufferAllocationFailure(6),
                        noOpAfterPowerOn(7)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Status of current or last flash erasing"
                   ::= { lflash 8 }

               flashToNet OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  write-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Write flash entry to tftp server. Value
                           should be the name of the flash entry to
                           send. Instance is the IP address of the tftp
                           host."
                   ::= { lflash 9 }

               flashToNetTime OBJECT-TYPE
                   SYNTAX  TimeTicks
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Indicates the value of sysUpTime the last
                            time a file was transfered from Flash memory
                            on the router to a TFTP host. Returns
                            0 days 00:00:00 if there had been no transfer
                            since powerup."
                   ::= { lflash 10 }

               flashToNetStatus OBJECT-TYPE
                   SYNTAX  INTEGER {
                        flashOpInProgress(1),
                        flashOpSuccess(2),
                        flashOpFailure(3),
                        flashReadOnly(4),
                        flashOpenFailure(5),
                        bufferAllocationFailure(6),
                        noOpAfterPowerOn(7)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Status of current or last flash to net
                           transfer"
                   ::= { lflash 11 }

               netToFlash OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  write-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Write flash entry from tftp server. Value
                           should be the name of the flash entry to
                           write. Instance is the IP address of the tftp
                           host."
                   ::= { lflash 12 }

               netToFlashTime OBJECT-TYPE
                   SYNTAX  TimeTicks
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Indicates the value of sysUpTime the last
                           time file was copied from a Trivial File
                           Transfer Protocol(TFTP) server to the Flash
                           memory on the router. Returns 0 days 00:00:00
                           if there had been no transfers since powerup."
                   ::= { lflash 13 }

               netToFlashStatus OBJECT-TYPE
                   SYNTAX  INTEGER {
                        flashOpInProgress(1),
                        flashOpSuccess(2),
                        flashOpFailure(3),
                        flashReadOnly(4),
                        flashOpenFailure(5),
                        bufferAllocationFailure(6),
                        noOpAfterPowerOn(7)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Status of current or last net to flash
                           transfer"
                   ::= { lflash 14 }

               flashStatus OBJECT-TYPE
                   SYNTAX  INTEGER {
                        busy(1),
                        available(2)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Status of the availability of flash"
                   ::= { lflash 15 }

               flashEntries OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of entries in the flash directory"
                   ::= { lflash 16 }


               -- Local Flash file Table

          -- This group contains information on a per file basis

               lflashFileDirTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF LflashFileDirEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            " A list of flash file entries."
                   ::= { lflash 17 }

               lflashFileDirEntry OBJECT-TYPE
                   SYNTAX LflashFileDirEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A collection of flash eprom objects"
                   INDEX { flashEntries }
               ::= { lflashFileDirTable 1 }

               LflashFileDirEntry ::=
                   SEQUENCE {
                       flashDirName
                           DisplayString,
                       flashDirSize
                           INTEGER,
                       flashDirStatus
                           INTEGER
                   }

          -- The following section describes the components of the
          -- table.

               flashDirName OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Name associated with the flash entry"
                   ::= { lflashFileDirEntry 1 }

               flashDirSize OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Size in Octets of a flash entry"
                   ::= { lflashFileDirEntry 2 }

               flashDirStatus OBJECT-TYPE
                   SYNTAX  INTEGER {
                        valid(1),
                        deleted(2)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Indicates the status of the entry"
                   ::= { lflashFileDirEntry 3 }

               -- End of table


END

-- ######################################################

--
-- File: cisco-v1/OLD-CISCO-XNS-MIB.mib
--

-- *****************************************************************
-- OLD-CISCO-XNS-MIB.my:  Old Cisco XNS MIB file
--
-- May 1994, Jeffrey T. Johnson
--
-- Copyright (c) 1994 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************
--

               OLD-CISCO-XNS-MIB DEFINITIONS ::= BEGIN

               IMPORTS
			OBJECT-TYPE
				FROM RFC-1212
			temporary
				FROM CISCO-SMI;
          
               tmpxns OBJECT IDENTIFIER ::= { temporary 2 }

               -- Temporary XNS Section

          -- This group is present in all router based products.

               xnsInput OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total input count of number of XNS packets."
                   ::= { tmpxns 1 }

               xnsLocal OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of XNS input packets for this
                           host."
                   ::= { tmpxns 2 }

               xnsBcastin OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS input broadcast
                           packets."
                   ::= { tmpxns 3 }

               xnsForward OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS packets
                           forwarded."
                   ::= { tmpxns 4 }

               xnsBcastout OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS output
                           broadcast packets."
                   ::= { tmpxns 5 }

               xnsErrin OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS Error input
                           packets."
                   ::= { tmpxns 6 }

               xnsErrout OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS Error output
                           packets."
                   ::= { tmpxns 7 }

               xnsFormerr OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS input packets
                           with header errors."
                   ::= { tmpxns 8 }

               xnsChksum OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS input packets
                           with checksum errors."
                   ::= { tmpxns 9 }

               xnsNotgate OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS input packets
                           received while not routing."
                   ::= { tmpxns 10 }

               xnsHopcnt OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS input packets
                           that have exceeded the maximum hop count."
                   ::= { tmpxns 11 }

               xnsNoroute OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS packets dropped
                           due to no route."
                   ::= { tmpxns 12 }

               xnsNoencap OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS packets dropped
                           due to output encapsulation failure."
                   ::= { tmpxns 13 }

               xnsOutput OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS output
                           packets."
                   ::= { tmpxns 14 }

               xnsInmult OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS input multicast
                           packets."
                   ::= { tmpxns 15 }

               xnsUnknown OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of unknown XNS input
                           packets."
                   ::= { tmpxns 16 }

               xnsFwdbrd OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS broadcast
                           packets forwarded."
                   ::= { tmpxns 17 }

               xnsEchoreqin OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS Echo request
                           packets received."
                   ::= { tmpxns 18 }

               xnsEchoreqout OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS Echo request
                           packets sent."
                   ::= { tmpxns 19 }

               xnsEchorepin OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS Echo reply
                           packets received."
                   ::= { tmpxns 20 }

               xnsEchorepout OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of XNS Echo reply
                           packets sent."
                   ::= { tmpxns 21 }

END

-- ######################################################

--
-- File: cisco-v1/OLD-CISCO-NOVELL-MIB.mib
--

-- *****************************************************************
-- OLD-CISCO-NOVELL-MIB.my:  Cisco Novell MIB file
--
-- May 1994, Jeffrey T. Johnson
--
-- Copyright (c) 1994-1996 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************
--

               OLD-CISCO-NOVELL-MIB DEFINITIONS ::= BEGIN

               IMPORTS
			Counter,
			TimeTicks
				FROM RFC1155-SMI
			OBJECT-TYPE
				FROM RFC-1212
			temporary
				FROM CISCO-SMI;
          
               -- textual convention
               IPXaddress ::= OCTET STRING (SIZE(10))

               tmpnovell              OBJECT IDENTIFIER ::= { temporary 4 }

               -- Temporary Novell Section
          -- This group is present in all router based products.

               novellInput OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total input count of number of NOVELL
                           packets."
                   ::= { tmpnovell 1 }

               novellBcastin OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of NOVELL input
                           broadcast packets."
                   ::= { tmpnovell 2 }

               novellForward OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of NOVELL packets
                           forwarded."
                   ::= { tmpnovell 3 }

               novellBcastout OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of NOVELL output
                           broadcast packets."
                   ::= { tmpnovell 4 }

               novellFormerr OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of NOVELL input
                           packets with header errors."
                   ::= { tmpnovell 5 }

               novellChksum OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of NOVELL input
                           packets with checksum errors."
                   ::= { tmpnovell 6 }

               novellHopcnt OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of NOVELL input
                           packets that have exceeded the maximum hop
                           count."
                   ::= { tmpnovell 7 }

               novellNoroute OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of NOVELL packets
                           dropped due to no route."
                   ::= { tmpnovell 8 }

               novellNoencap OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of NOVELL packets
                           dropped due to output encapsulation failure."
                   ::= { tmpnovell 9 }

               novellOutput OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of NOVELL output
                           packets."
                   ::= { tmpnovell 10 }

               novellInmult OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of NOVELL input
                           multicast packets."
                   ::= { tmpnovell 11 }

               novellLocal OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of NOVELL input packets for this
                           host."
                   ::= { tmpnovell 12 }

               novellUnknown OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of unknown NOVELL
                           input packets."
                   ::= { tmpnovell 13 }

               novellSapreqin OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of NOVELL SAP request
                           packets received."
                   ::= { tmpnovell 14 }

               novellSapresin OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of NOVELL SAP response
                           packets received."
                   ::= { tmpnovell 15 }

               novellSapout OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of NOVELL SAP request
                           packets sent."
                   ::= { tmpnovell 16 }

               novellSapreply OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total count of number of NOVELL SAP reply
                           packets sent."
                   ::= { tmpnovell 17 }

               ipxActThresh OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Threshold of IPX accounting records in use
                           before IPX traffic will be unaccounted."
                   ::= { tmpnovell 18 }

               ipxActLostPkts OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Lost IPX packets due to memory limitations."
                   ::= { tmpnovell 19 }

               ipxActLostByts OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total bytes of lost IPX packets."
                   ::= { tmpnovell 20 }


               -- Local IPX Accounting Table

          -- This group provides access to the cisco IPX accounting
          -- support.

               lipxAccountingTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF LipxAccountingEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A list of IPX accounting entries."
                   ::= { tmpnovell 21 }

               lipxAccountingEntry OBJECT-TYPE
                   SYNTAX LipxAccountingEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION "something"
                   INDEX { ipxActSrc, ipxActDst }
               ::= { lipxAccountingTable 1 }

               LipxAccountingEntry ::=
                   SEQUENCE {
                       ipxActSrc
                           IPXaddress,
                       ipxActDst
                           IPXaddress,
                       ipxActPkts
                           INTEGER,
                       ipxActByts
                           INTEGER
                   }


          -- The following section describes the components of the
          -- table.

               ipxActSrc OBJECT-TYPE
                   SYNTAX  IPXaddress
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "IPX Source address for host traffic matrix."
                   ::= { lipxAccountingEntry 1 }

               ipxActDst OBJECT-TYPE
                   SYNTAX  IPXaddress
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "IPX Destination address for host traffic
                           matrix."
                   ::= { lipxAccountingEntry 2 }

               ipxActPkts OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of IPX packets sent from source to
                           destination."
                   ::= { lipxAccountingEntry 3 }

               ipxActByts OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total number of bytes in IPX packets from
                           source to destination."
                   ::= { lipxAccountingEntry 4 }

               -- End of table


               ipxActAge OBJECT-TYPE
                   SYNTAX  TimeTicks
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "The age of the data in the current IPX data
                           matrix."
                   ::= { tmpnovell 22 }


               -- Local IPX Checkpoint Accounting Table

          -- Local IPX Checkpoint Accounting Table

               lipxCkAccountingTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF LipxCkAccountingEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A list of IPX checkpoint accounting
                            entries."
                   ::= { tmpnovell 23 }

               lipxCkAccountingEntry OBJECT-TYPE
                   SYNTAX LipxCkAccountingEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION "something"
                   INDEX { ipxCkactSrc, ipxCkactDst }
               ::= { lipxCkAccountingTable 1 }

               LipxCkAccountingEntry ::=
                   SEQUENCE {
                       ipxCkactSrc
                           IPXaddress,
                       ipxCkactDst
                           IPXaddress,
                       ipxCkactPkts
                           INTEGER,
                       ipxCkactByts
                           Counter
                   }


          -- The following section describes the components of the
          -- table.

               ipxCkactSrc OBJECT-TYPE
                   SYNTAX  IPXaddress
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "IPX Source address for host in checkpoint
                           traffic matrix."
                   ::= { lipxCkAccountingEntry 1 }

               ipxCkactDst OBJECT-TYPE
                   SYNTAX  IPXaddress
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "IPX Destination address for host in
                           checkpoint traffic matrix."
                   ::= { lipxCkAccountingEntry 2 }

               ipxCkactPkts OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of IPX packets sent from source to
                           destination in checkpoint matrix."
                   ::= { lipxCkAccountingEntry 3 }

               ipxCkactByts OBJECT-TYPE
                   SYNTAX  Counter
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Total number of bytes in IPX packets from
                           source to destination in checkpoint matrix."
                   ::= { lipxCkAccountingEntry 4 }

               -- End of table


               ipxCkactAge OBJECT-TYPE
                   SYNTAX  TimeTicks
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Age of data in the IPX checkpoint matrix."
                   ::= { tmpnovell 24 }

               ipxActCheckPoint OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-write
                   STATUS  mandatory
                   DESCRIPTION
                           "Check points the IPX accounting database.
                           This mib variable must be read and then set
                           with the same value for the check point to
                           succeed. The value read and then set will be
                           incremented after a successful set request"
                   ::= { tmpnovell 25 }



END


-- ######################################################

--
-- File: cisco-v1/OLD-CISCO-CHASSIS-MIB.mib
--

-- *****************************************************************
-- OLD-CISCO-CHASSIS-MIB.my:  Cisco Chassis MIB file
--
--
-- May 1994, Jeffrey T. Johnson
--
-- Copyright (c) 1994-1997, 1998 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************
--
--
               OLD-CISCO-CHASSIS-MIB DEFINITIONS ::= BEGIN

               IMPORTS
                    TimeTicks
                        FROM RFC1155-SMI
                    OBJECT-TYPE
			FROM RFC-1212
                    DisplayString
			FROM RFC1213-MIB
		    temporary
			FROM CISCO-SMI;
          
               chassis             OBJECT IDENTIFIER ::= { temporary 6 }

               -- Temporary Chassis Section


               -- (not the same as the IETF Chassis MIB)

          -- This group is present in all products.

               chassisType OBJECT-TYPE
                   SYNTAX  INTEGER {
                        unknown(1),
                        multibus(2),
                        agsplus(3),
                        igs(4),
                        c2000(5),
                        c3000(6),
                        c4000(7),
                        c7000(8),
                        cs500(9),
                        c7010(10),
                        c2500(11),
                        c4500(12),
			c2102(13),
			c2202(14),
			c2501(15),
			c2502(16),
			c2503(17),
			c2504(18),
			c2505(19),
			c2506(20),
			c2507(21),
			c2508(22),
			c2509(23),
			c2510(24),
			c2511(25),
			c2512(26),
			c2513(27),
			c2514(28),
			c2515(29),
			c3101(30),
			c3102(31),
			c3103(32),
			c3104(33),
			c3202(34),
			c3204(35),
			accessProRC(36),
			accessProEC(37),
                        c1000(38),
                        c1003(39),
			c1004(40),
			c2516(41),
			c7507(42),
			c7513(43),
			c7506(44),
			c7505(45),
			c1005(46),
			c4700(47),
			c2517(48),
			c2518(49),
			c2519(50),
			c2520(51),
			c2521(52),
			c2522(53),
			c2523(54),
			c2524(55),
			c2525(56),
			c4700S(57),
			c7206(58),
			c3640(59),
			as5200(60),
			c1601(61),
			c1602(62),
			c1603(63),
			c1604(64),
			c7204(65),
			c3620(66),
			wsx3011(68),
			c1503(72),
			as5300(73),
			as2509RJ(74),
			as2511RJ(75),
			c2501FRADFX(77),
			c2501LANFRADFX(78),
			c2502LANFRADFX(79),
			wsx5302(80),		
			c12012(82),
			c12004(84)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Chassis type."
                   ::= { chassis 1 }

               chassisVersion OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Chassis hardware revision level, or an empty
                           string if unavailable."
                   ::= { chassis 2 }

               chassisId OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-write
                   STATUS  mandatory
                   DESCRIPTION
                           "Unique ID string. Defaults to chassis serial
                           number if available, otherwise empty. Can
                           also be set with 'snmp-server chassis-id'."
                   ::= { chassis 3 }

               romVersion OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "ROM monitor version."
                   ::= { chassis 4 }

               romSysVersion OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "ROM system software version, or an empty
                           string if unavailable."
                   ::= { chassis 5 }

               processorRam OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Bytes of RAM available to CPU."
                   ::= { chassis 6 }

               nvRAMSize OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Bytes of non-volatile configuration memory."
                   ::= { chassis 7 }

               nvRAMUsed OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Bytes of non-volatile configuration memory
                           in use."
                   ::= { chassis 8 }

               configRegister OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Value of configuration register."
                   ::= { chassis 9 }

               configRegNext OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Value of configuration register at next
                           reload."
                   ::= { chassis 10 }

               cardTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF CardTableEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "Chassis card table."
                   ::= { chassis 11 }

               cardTableEntry OBJECT-TYPE
                   SYNTAX CardTableEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "Chassis card table."
                   INDEX { cardIndex }
               ::= { cardTable 1 }

               CardTableEntry ::=
                   SEQUENCE {
                       cardIndex
                           INTEGER,
                       cardType
                           INTEGER,
                       cardDescr
                           DisplayString,
                       cardSerial
                           INTEGER,
                       cardHwVersion
                           DisplayString,
                       cardSwVersion
                           DisplayString,
                       cardSlotNumber
                           INTEGER,
                       cardContainedByIndex
                           INTEGER,
                       cardOperStatus
                           INTEGER,
                       cardSlots
                           INTEGER
                   }


          -- The following section describes the components of the
          -- table.

               cardIndex OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Index into cardTable (not physical chassis
                           slot number)."
                   ::= { cardTableEntry 1 }


-- The expansions for some acronyms used for cardType enumerations are:
--	CSU : Channel Service Unit
--	DSU : Dial Service Unit
--	FT1 : Fractional T1
--	WIC : Wan Interface Card
--	DTR : Dedicated Token Ring
--	PM  : Port Module
--	PA  : Port Adapter

               cardType OBJECT-TYPE
                   SYNTAX  INTEGER {
                        unknown(1),
                        csc1(2),
                        csc2(3),
                        csc3(4),
                        csc4(5),
                        rp(6),
                        cpu-igs(7),
                        cpu-2500(8),
                        cpu-3000(9),
                        cpu-3100(10),
                        cpu-accessPro(11),
                        cpu-4000(12),
                        cpu-4000m(13),
                        cpu-4500(14),
                        rsp1(15),
                        rsp2(16),
			cpu-4500m(17),
			cpu-1003(18),
			cpu-4700(19),
                        csc-m(20),
                        csc-mt(21),
                        csc-mc(22),
                        csc-mcplus(23),
                        csc-envm(24),
			chassisInterface(25),
			cpu-4700S(26),
			cpu-7200-npe100(27),
			rsp7000(28),
			chassisInterface7000(29),
			rsp4(30),
			cpu-3600(31),
			cpu-as5200(32),
			c7200-io1fe(33),
			cpu-4700m(34),
			cpu-1600(35),
			c7200-io(36),
			cpu-1503(37),
			cpu-1502(38),
			cpu-as5300(39),
                        csc-16(40),
                        csc-p(41),
                        csc-a(50),
                        csc-e1(51),
                        csc-e2(52),
                        csc-y(53),
                        csc-s(54),
                        csc-t(55),
                        csc-r(80),
                        csc-r16(81),
                        csc-r16m(82),
                        csc-1r(83),
                        csc-2r(84),
                        sci4s(56),
                        sci2s2t(57),
                        sci4t(58),
                        mci1t(59),
                        mci2t(60),
                        mci1s(61),
                        mci1s1t(62),
                        mci2s(63),
                        mci1e(64),
                        mci1e1t(65),
                        mci1e2t(66),
                        mci1e1s(67),
                        mci1e1s1t(68),
                        mci1e2s(69),
                        mci2e(70),
                        mci2e1t(71),
                        mci2e2t(72),
                        mci2e1s(73),
                        mci2e1s1t(74),
                        mci2e2s(75),
                        csc-cctl1(100),
                        csc-cctl2(101),
                        csc-mec2(110),
                        csc-mec4(111),
                        csc-mec6(112),
                        csc-fci(113),
                        csc-fcit(114),
                        csc-hsci(115),
                        csc-ctr(116),
			cpu-7200-npe150(121),
			cpu-7200-npe200(122),
			cpu-wsx5302(123),
			gsr-rp(124),
			cpu-3810(126),
                        sp(150),
                        eip(151),
                        fip(152),
                        hip(153),
                        sip(154),
                        trip(155),
                        fsip(156),
                        aip(157),
                        mip(158),
                        ssp(159),
			cip(160),
			srs-fip(161),
			srs-trip(162),
			feip(163),
			vip(164),
			vip2(165),
			ssip(166),
			smip(167),
			posip(168),
			feip-tx(169),
			feip-fx(170),
			cbrt1(178),
			cbr120e1(179),
			cbr75e(180),
			vip2-50(181),
			feip2(182),
			acip(183),
                        npm-4000-fddi-sas(200),
                        npm-4000-fddi-das(201),
                        npm-4000-1e(202),
                        npm-4000-1r(203),
                        npm-4000-2s(204),
                        npm-4000-2e1(205),
                        npm-4000-2e(206),
                        npm-4000-2r1(207),
                        npm-4000-2r(208),
                        npm-4000-4t(209),
                        npm-4000-4b(210),
                        npm-4000-8b(211),
                        npm-4000-ct1(212),
                        npm-4000-ce1(213),
                        npm-4000-1a(214),
     	                npm-4000-6e(215),
			npm-4000-1fe(217),
			npm-4000-1hssi(218),
			pa-1fe(230),
                        pa-8e(231),
                        pa-4e(232),
			pa-5e(233),
                        pa-4t(234),
			pa-4r(235),
			pa-fddi(236),
			sa-encryption(237),
			pa-ah1t(238),
			pa-ah2t(239),
			pa-a8t-v35(241),
			pa-1fe-tx-isl(242),
			pa-1fe-fx-isl(243),
			pa-1fe-tx-nisl(244),
			sa-compression(245),
			pa-atm-lite-1(246),
			pa-ct3(247),
			pa-oc3sm-mux-cbrt1(248),
			pa-oc3sm-mux-cbr120e1(249),
			pa-ds3-mux-cbrt1(254),
			pa-e3-mux-cbr120e1(255),
			pa-8b-st(257),
			pa-4b-u(258),
			pa-fddi-fd(259),
			pm-cpm-1e2w(260),
			pm-cpm-2e2w(261),
			pm-cpm-1e1r2w(262),
			pm-ct1-csu(263),
			pm-2ct1-csu(264),
			pm-ct1-dsx1(265),
			pm-2ct1-dsx1(266),
			pm-ce1-balanced(267),
			pm-2ce1-balanced(268),
			pm-ce1-unbalanced(269),
			pm-2ce1-unbalanced(270),
			pm-4b-u(271),
			pm-4b-st(272),
			pm-8b-u(273),
			pm-8b-st(274),
			pm-4as(275),
			pm-8as(276),
			pm-4e(277),
			pm-1e(278),
			pm-m4t(280),
			pm-16a(281),
			pm-32a(282),
			pm-c3600-1fe-tx(283),
			pm-c3600-compression(284),
			pm-dmodem(285),
			pm-c3600-1fe-fx(288),

			as5200-carrier(290),
			as5200-2ct1(291),
			as5200-2ce1(292),
			pm-as5xxx-12m(310),
-- The expansions for some acronyms used in this section are given below:
--	CSU - Channel Service Unit
--	DSU - Dial Service Unit
--	FT1 - Fractional T1
--	WIC - Wan Interface Card
			wm-c2500-5in1(330),
			wm-c2500-t1-csudsu(331),
			wm-c2500-sw56-2wire-csudsu(332),
			wm-c2500-sw56-4wire-csudsu(333),
			wm-c2500-bri(334),
			wm-c2500-bri-nt1(335),
			wic-serial-1t(360),
			wic-s-t-3420(364),
			wic-s-t-2186(365),
			wic-u-3420(366),
			wic-u-2091(367),
			wic-u-2091-2081(368),
			pa-jt2(400),
			pa-posdw(401),
			pa-4me1-bal(402),
			pa-a8t-x21(414),
			pa-a8t-rs232(415),
			pa-4me1-unbal(416),
			pa-4r-fdx(417)
			,pa-1fe-fx-nisl(424)
			,mc3810-dcm(435)
			,mc3810-mfm-e1balanced-bri(436)
			,mc3810-mfm-e1unbalanced-bri(437)
			,mc3810-mfm-e1-unbalanced(438)
			,mc3810-mfm-dsx1-bri(439)
			,mc3810-mfm-dsx1-csu(440)
			,mc3810-vcm(441)	
			,mc3810-avm(442)
			,mc3810-avm-fxs(443)
			,mc3810-avm-fxo(444)
			,mc3810-avm-em(445)
-- 460 available
			,as5300-4ct1(480)
			,as5300-4ce1(481)
			,as5300-carrier(482)
			,vic-em(500),
			vic-fxo(501),
			vic-fxs(502),
			vpm-2v(503),
			vpm-4v(504)
			,pos-qoc3-mm(530)
			,pos-qoc3-sm(531)
			,pos-oc12-mm(532)
			,pos-oc12-sm(533)
			,atm-oc12-mm(534)
			,atm-oc12-sm(535)
			,pos-oc48-mm-l(536)
			,pos-oc48-sm-l(537)
			,gsr-sfc(538)
			,gsr-csc(539)
			,gsr-csc4(540)
			,gsr-csc8(541)
			,gsr-sfc8(542)
			,gsr-oc12chds3-mm(545)		-- OC12 channelised to DS3 multimode
			,gsr-oc12chds3-sm(546)		-- OC12 channelised to DS3 singlemode


			,pm-atm25(605)			--25 Mbits/sec ATM Port Module
--	650-699:	c6xxx cards
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Functional type of this card."
                   ::= { cardTableEntry 2 }

               cardDescr OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Text description of this card."
                   ::= { cardTableEntry 3 }

               cardSerial OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "The serial number of this card, or zero if
                           unavailable."
                   ::= { cardTableEntry 4 }

               cardHwVersion OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Hardware revision level of this card, or an
                           empty string if unavailable."
                   ::= { cardTableEntry 5 }

               cardSwVersion OBJECT-TYPE
                   SYNTAX  DisplayString
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Version of the firmware or microcode
                           installed on this card, or an empty string if
                           unavailable."
                   ::= { cardTableEntry 6 }

               cardSlotNumber OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Slot number relative to the containing card or 
                           chassis, or -1 if neither applicable nor 
                           determinable."
                   ::= { cardTableEntry 7 }

               cardContainedByIndex OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "cardIndex of the parent card which
                           directly contains this card, or 0 if
                           contained by the chassis, or -1 if not
                           applicable nor determinable."
                   ::= { cardTableEntry 8 }

               cardOperStatus OBJECT-TYPE
                   SYNTAX  INTEGER {
                          not-specified(1), 
                          up(2),
                          down(3),
                          standby(4)
                      }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "The operational status of the card.
                           cardOperStatus is up when a card is
                           recognized by the device and is enabled for
                           operation. cardOperStatus is down if the
                           card is not recognized by the device, or if
                           it is not enabled for operation.
                           cardOperStatus is standby if the card is
                           enabled and acting as a standby slave"
                   ::= { cardTableEntry 9 }

               cardSlots OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of slots on this card, or 0 if no
                           slots or not applicable, or -1 if not 
			   determinable."
                   ::= { cardTableEntry 10 }

               -- End of table


               chassisSlots OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Number of slots in this chassis, or -1 of
                           neither applicable nor determinable."
                   ::= { chassis 12 }

               cardIfIndexTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF CardIfIndexEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "Chassis card table."
                   ::= { chassis 13 }

               cardIfIndexEntry OBJECT-TYPE
                   SYNTAX CardIfIndexEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "Chassis card table."
                   INDEX { cardIfIndex }
               ::= { cardIfIndexTable 1 }

               CardIfIndexEntry ::=
                   SEQUENCE {
                       cardIfIndex
                           INTEGER,
                       cardIfSlotNumber
                           INTEGER,
                       cardIfPortNumber
                           INTEGER,
                       cardIfCardIndex
                           INTEGER,
                       cardIfConnectorTypeEnabled
                           INTEGER
                   }

               cardIfIndex OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "matches RFC1213 ifTable IfIndex"
                   ::= { cardIfIndexEntry 1 }

               cardIfSlotNumber OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Chassis slot number, or -1 if neither
                           applicable nor determinable."
                   ::= { cardIfIndexEntry 2 }

               cardIfPortNumber OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Chassis port number, unique per port on a 
                            given card if available. If cardIfPortNumber is not
                            applicable to the card, then the object instance
                            won't be populated"
                   ::= { cardIfIndexEntry 3 }

               cardIfCardIndex OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "cardIndex of the card in the Chassis 
                            cardTable which contains this interface, or -1 if
                            not applicable."
                   ::= { cardIfIndexEntry 4 }

               cardIfConnectorTypeEnabled OBJECT-TYPE
                   SYNTAX  INTEGER {
                           not-specified(1), 
                           none (2),
                           rj-45 (3),
                           db-40 (4),
                           db-15 (5)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Interface connector type currently
                           enabled. Value will be 1 if not known or not
                           used, or 2 if none of this ports' interface
                           connectors are enabled."
                   ::= { cardIfIndexEntry 5 }

	       -- End of table

               chassisPartner OBJECT-TYPE
                   SYNTAX  INTEGER {
                        cisco(1),
                        synoptics(2),
                        chipcom(3),
                        cabletron(4),
                        dec(5),
                        ncr(6),
                        usrobotics(7),
                        alcatel(8),
                        nec(9),
                        dsc(10),
                        microcom(11),
                        hp(14),
			samsung(15)
                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Used to determine if this is a partner 
                            variant of a product."
                   ::= { chassis 14 }

               sysUpTimeAtLastChassisChange OBJECT-TYPE
                   SYNTAX  TimeTicks
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Time in seconds/100 from the last cold
                           start to the last change in the chassis'
                           configuration. This value will be updated
                           whenever the chassis experiences a change
                           in the count, type, or slot position of
                           a card in cardTable."
                   ::= { chassis 15 }






               END
      
