ISIS-MIB DEFINITIONS ::= BEGIN

     IMPORTS
        TEXTUAL-CONVENTION, DisplayString, RowStatus, TruthValue,
            TestAndIncr
                FROM SNMPv2-TC
        MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY, NOTIFICATION-TYPE,
            Integer32, Unsigned32, Counter32, experimental, TimeTicks
                FROM SNMPv2-SMI
        MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
                FROM SNMPv2-CONF
        ifEntry, ifIndex
                FROM RFC1213-MIB
        ifName
                FROM IF-MIB
        InetAddressType, InetAddress, InetAddressPrefixLength
                FROM INET-ADDRESS-MIB;

    isisMIB MODULE-IDENTITY
        LAST-UPDATED "200401191200Z"
        ORGANIZATION "IETF IS-IS for IP Internets Working Group"
        CONTACT-INFO
            "Jeff Parker
             Axiowave Networks
             200 Nickerson Rd.
             Marlborough, MA 01752

             jparker@axiowave.com"

        DESCRIPTION
            "This document describes a management information base for
             the IS-IS Routing protocol, as described in ISO 10589,
             when it is used to construct routing tables for IP networks,
             as described in RFC 1195.

             This document defines an experimental portion of the
             Management Information Base (MIB) for use with network
             management protocols in the Internet community.

             This document is based on a 1994 IETF draft by Chris Gunner.
             This version has been modified to include MIB-II syntax, to
             exclude portions of the protocol that are not relevant to IP,
             and to add management support for current practice."

    ::= { experimental 37 }

-- Top-level structure of the MIB

isisObjects             OBJECT IDENTIFIER ::= { isisMIB 1 }
isisNotifications       OBJECT IDENTIFIER ::= { isisMIB 2 }
isisConformance         OBJECT IDENTIFIER ::= { isisMIB 3 }

-- OBJECT IDENTIFIER definitions

    isisSystem OBJECT-IDENTITY
        STATUS current
        DESCRIPTION
            "The object describes system wide attributes."
    ::= { isisObjects 1 }

    isisSysLevel OBJECT-IDENTITY
        STATUS current
        DESCRIPTION
            "This object describes attributes associated with
             the domain or with the area."
    ::= { isisObjects 2 }

    isisCirc OBJECT-IDENTITY
        STATUS current
        DESCRIPTION
            "This object describes attributes associated with
             one Circuit"
    ::= { isisObjects 3 }

    isisCircLevelValues OBJECT-IDENTITY
        STATUS current
        DESCRIPTION
            "This object describes attributes associated with
             area or domain relevant within a Circuit."
    ::= { isisObjects 4 }

    isisCounters OBJECT-IDENTITY
        STATUS current
        DESCRIPTION
            "This object collects system and circuit counters"
    ::= { isisObjects 5 }

    isisISAdj OBJECT-IDENTITY
        STATUS current
        DESCRIPTION
            "This object describes attributes associated with an
             adjacent Protocol Peer."
    ::= { isisObjects 6 }

    isisReachAddr OBJECT-IDENTITY
        STATUS current
        DESCRIPTION
            "This object describes attributes associated with
             a configured address"
    ::= { isisObjects 7 }

    isisIPReachAddr OBJECT-IDENTITY
        STATUS current
        DESCRIPTION
            "This object describes attributes associated with
             IP routes learned by configuration or through another
             protocol."
    ::= { isisObjects 8 }

    isisLSPDataBase OBJECT-IDENTITY
        STATUS current
        DESCRIPTION
            "This object describes the collection of Link State PDUs
             known to the system."
    ::= { isisObjects 9 }

    isisNotification OBJECT-IDENTITY
        STATUS current
        DESCRIPTION
            "Objects included in Notifications."
    ::= { isisObjects 10 }

-- Type definitions

    OSINSAddress ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "OSI Network Service Address, e.g. NSAP, SNPA, or Network
             Entity Title"
        SYNTAX OCTET STRING (SIZE(0..20))

    SystemID ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "A system ID."
        SYNTAX OCTET STRING (SIZE(6))

    LinkStatePDUID ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "A Link State PDU Identifier."
        SYNTAX OCTET STRING (SIZE(0|8))

    AdminState ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "Type used in enabling and disabling a row.
             Values match those in RFC 2863."
        SYNTAX INTEGER
            {
                on(1),
                off(2)
            }

    LSPBuffSize ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "Integer sub range for LSP size."
        SYNTAX Integer32 (512..16000)

    LevelState ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "States of the IS-IS protocol."
        SYNTAX INTEGER
            {
                off (1),
                on (2),
                waiting (3),
                overloaded(4)
            }

    SupportedProtocol ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "Types of network protocol supported by Integrated IS-IS.
             The values for ISO8473 and IP are those registered for
             these protocols in ISO TR9577."
        SYNTAX INTEGER
            {
                iso8473(129),
                ipV6(142),
                ip(204),
                virtual-access(255)
            }

    DefaultMetric ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "Integer sub-range for default metric for single hop.
             ISO 10589 provides for 4 types of metric.  Only the
             'default' metric is used in practice."
        SYNTAX Integer32 (0..63)

    WideMetric ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "Wide Metric for IS Neighbors.  ISO 10589 provides a 6 bit metric.
             Traffic Engineering extensions provide 24 bit metrics."
        SYNTAX Unsigned32 (0..16777215)

    FullMetric ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "Full Metric for IP Routes.  Traffic Engineering extensions
             provide 32 bit metrics."
        SYNTAX Unsigned32 (0..4261412864)

    MetricType ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "Is this an Internal or External Metric?"
        SYNTAX INTEGER
            {
                internal(1),
                external(2)
            }

    MetricStyle ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "Do we use 1195 style Metrics or wide metrics."
        SYNTAX INTEGER
            {
                narrow(1),
                wide(2),
                both(3)
            }

    ISLevel ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "Identifies a level."
        SYNTAX INTEGER
            {
                none(0),
                area(1),        -- L1
                domain(2)       -- L2
            }

    IsisPDUHeader ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "A block to contain the header from a PDU."
        SYNTAX OCTET STRING (SIZE(0..64))

    CircuitID ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "ID for a circuit."
        SYNTAX OCTET STRING (SIZE(7))

    ISPriority ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "Integer sub-range for IS-IS priority."
        SYNTAX Integer32 (0..127)

    Unsigned16TC ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
            "An Unsigned32 further restricted to 16 Bits. Note that
             the ASN.1 BER encoding may still require 24 Bits for
             some values."
        SYNTAX       Unsigned32 (0..65535)

    Unsigned8TC ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
            "An Unsigned32 further restricted to 8 Bits. Note that
             the ASN.1 BER encoding may still require 16 Bits for
             some values."
        SYNTAX       Unsigned32 (0..255)

-- Behavior Definitions

-- ResettingTimer behavior definition
-- "This object specifies the interval between certain events in
-- the operation of the protocol state machine. If the value of
-- this object is set to a new value while the protocol state
-- machine is in operation, the implementation shall take the
-- necessary steps to ensure that for any time interval which
-- was in progress when the value of the corresponding object
-- was changed, the next expiration of that interval takes place
-- the specified time after the original start of that interval,
-- or immediately, whichever is later. The precision with which
-- this time shall be implemented shall be the same as that
-- associated with the basic operation of the timer object."

-- ReplaceOnlyWhileDisabled behavior definition
-- "This object may not be modified while the corresponding
-- table row's variable of type AdminState is in state on."

-- ManualOrAutomatic behavior definition
-- "The access of this object is read-write if the row to which
-- it belongs is manual (i.e. is being or was created manually)
-- otherwise (i.e. was created automatically) it is read-only."


    isisSysTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisSysEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The set of instance of the Integrated IS-IS
             protocol existing on the system."
    ::= { isisSystem 1 }

    isisSysEntry OBJECT-TYPE
        SYNTAX IsisSysEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each row defines information specific to a single
             instance of the IS-IS protocol existing on the system."
        REFERENCE "{ISIS.poi cLNSISISBasic-P (1)}"
        INDEX { isisSysInstance }
    ::= { isisSysTable 1 }

    IsisSysEntry ::=
        SEQUENCE {
            isisSysInstance
                Unsigned32,
            isisSysVersion
                DisplayString,
            isisSysType
                INTEGER,
            isisSysID
                SystemID,
            isisSysMaxPathSplits
                Integer32,
            isisSysMaxLSPGenInt
                Integer32,
            isisSysPollESHelloRate
                Unsigned16TC,
            isisSysWaitTime
                Unsigned16TC,
            isisSysAdminState
                AdminState,
            isisSysLogAdjacencyChanges
                TruthValue,
            isisSysNextCircIndex
                TestAndIncr,
            isisSysL2toL1Leaking
                TruthValue,
            isisSysMaxAge
                Unsigned16TC,
            isisSysReceiveLSPBufferSize
                Unsigned16TC,
            isisSysExistState
                RowStatus
        }

    isisSysInstance OBJECT-TYPE
        -- SYNTAX Integer32 (1..10000)
        -- VRPV8R1 Capability 20091217 modify value scope
        SYNTAX Unsigned32 (1..4294967295)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The unique identifier of the Integrated IS-IS
             instance to which this row corresponds.
             This object follows the index behavior."
    ::= { isisSysEntry 1 }

    isisSysVersion OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The version number of the IS-IS protocol which this
             instance implements."
        REFERENCE "{ISIS.aoi version (1)}"
        DEFVAL { "1" }
    ::= { isisSysEntry 2 }

    isisSysType OBJECT-TYPE
        SYNTAX INTEGER
            {
                level1IS (1),
                level2IS (2),
                level1L2IS (3)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The type of this instance of the Integrated
             IS-IS protocol. This object follows the
             replaceOnlyWhileDisabled behavior."
        REFERENCE "{ISIS.aoi iSType (2)}"
        DEFVAL { level1L2IS }
    ::= { isisSysEntry 3 }

    isisSysID OBJECT-TYPE
        SYNTAX SystemID
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The ID for this instance of the Integrated IS-IS
             protocol. This value is appended to each of the
             area addresses to form the Network Entity Titles.
             The derivation of a value for this object is
             implementation-specific.  Some implementations may
             automatically assign values and not permit an
             SNMP write, while others may require the value
             to be set manually."
        REFERENCE "{ISIS.aoi systemId (119)}"
    ::= { isisSysEntry 4 }

    isisSysMaxPathSplits OBJECT-TYPE
        -- SYNTAX Integer32 (1..128)
        -- VRPV8R1 Capability 20091217 modify value scope
        SYNTAX Integer32 (1..128)
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Maximum number of paths with equal routing metric value
             which it is permitted to split between. This object
             follows the replaceOnlyWhileDisabled behavior."
        REFERENCE "{ISIS.aoi maximumPathSplits (3)}"
        DEFVAL { 2 }
    ::= { isisSysEntry 5 }

    isisSysMaxLSPGenInt OBJECT-TYPE
        -- SYNTAX Integer32 (1..65235)
        -- VRPV8R1 Capability 20091217 modify value scope
        SYNTAX Integer32 (1..65534)
        UNITS "seconds"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Maximum interval, in seconds, between generated LSPs
             by this instance of the protocol. This object follows
             the resettingTimer behavior.
             Should be at least 300 seconds less than isisSysMaxAge."
        REFERENCE "{ISIS.aoi maximumLSPGenerationInterval (6)}"
        DEFVAL { 900 }
    ::= { isisSysEntry 6 }

    isisSysPollESHelloRate OBJECT-TYPE
        SYNTAX Unsigned16TC (1..65535)
        UNITS "seconds"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The value, in seconds, to be used for the suggested ES
             configuration timer in ISH PDUs when soliciting the ES
             configuration."
        REFERENCE "{ISIS.aoi pollESHelloRate (13)}"
        DEFVAL { 50 }
    ::= { isisSysEntry 7 }

    isisSysWaitTime OBJECT-TYPE
        SYNTAX Unsigned16TC (1..65535)
        UNITS "seconds"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Number of seconds to delay in waiting state before
             entering on state. This object follows the resettingTimer
             behavior."
        REFERENCE "{ISIS.aoi waitingTime (15)}"
        DEFVAL { 60 }
    ::= { isisSysEntry 8 }

    isisSysAdminState OBJECT-TYPE
        SYNTAX AdminState
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The administrative state of this instance of the
             Integrated IS-IS protocol. Setting this object to the
             value 'on' when its current value is 'off' enables operation
             of this instance of the Integrated IS-IS protocol."
        DEFVAL { off }
    ::= { isisSysEntry 9 }

    isisSysLogAdjacencyChanges OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "If true, causes IS-IS to generate a log message when an
             IS-IS adjacency changes state (up or down)."
        DEFVAL { false }
    ::= { isisSysEntry 10 }

    isisSysNextCircIndex OBJECT-TYPE
        SYNTAX TestAndIncr
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This object is used to assign values to
             isisCircIndex as described in 'Textual
             Conventions for SNMPv2'.  The network manager
             reads this object, and then writes the value
             back as the isisCircIndex in a SET that creates
             a new instance of isisCircEntry.  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
             isisCircuit is created according to the manager's
             directions."
    ::= { isisSysEntry 11 }

    isisSysL2toL1Leaking OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "If true, allow the router to leak L2 routes into L1."
        DEFVAL { false }
    ::= { isisSysEntry 12 }

    isisSysMaxAge OBJECT-TYPE
        -- SYNTAX Unsigned16TC (350..65535)
        -- VRPV8R1 Capability 20091217 modify value scope
        SYNTAX Unsigned16TC (2..65535)
        UNITS "seconds"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Value to place in RemainingLifeTime field of
             the LSPs we generate.
             This is should be at least 300 seconds greater than
             isisSysMaxLSPGenInt."
        DEFVAL { 1200 }
    ::= { isisSysEntry 13 }

    isisSysReceiveLSPBufferSize OBJECT-TYPE
        -- SYNTAX Unsigned16TC (1492..16000)
        -- VRPV8R1 Capability 20091217 modify value scope
        SYNTAX Unsigned16TC (512..16384)
        UNITS "bytes"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Size of the largest Buffer we are designed or
             configured to store.  This should be at least
             as big as the maximum isisSysOrigLSPBuffSize
             supported by the system.

             If resources allow, we will store and flood LSPs
             larger than isisSysReceiveLSPBufferSize, as this
             can help avoid problems in networks with different
             values for isisSysOrigLSPBuffSize."
        DEFVAL { 1492 }
    ::= { isisSysEntry 14 }

    isisSysExistState OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The state of the IS-IS router.  Turning this to
             state 'destroy' forces the router to forget all
             the current configuration.  Setting the state to
             'notInService' stops protocol processing, but
             retains the configuration."
    ::= { isisSysEntry 15 }

-- The Level 1 Manual Area Address Table
-- contains the set of area addresses manually configured
-- for each instance of the Integrated IS-IS protocol.
-- At least one row in which the value of isisManAreaAddrExistState
-- is active must be present for each active instance of
-- the protocol The maximum number of rows in this table for
-- each instance of the protocol for which the object
-- isisManAreaAddrExistState has the value active is 3
--     An attempt to create more 3 rows of isisManAreaAddrEntry
-- with state 'active' in one instance of the IS-IS protocol
-- should return inconsistentValue.

    isisManAreaAddrTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisManAreaAddrEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The set of manual area addresses configured on this
             Intermediate System."
        REFERENCE "{ISIS.aoi manualAreaAddresses (10)}"
    ::= { isisSystem 2 }

    isisManAreaAddrEntry OBJECT-TYPE
        SYNTAX IsisManAreaAddrEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry contains one area address manually configured
             on this system"
        INDEX { isisSysInstance,
                isisManAreaAddr }
    ::= { isisManAreaAddrTable 1 }

    IsisManAreaAddrEntry ::=
        SEQUENCE {
            isisManAreaAddr
                OSINSAddress,
            isisManAreaAddrExistState
                RowStatus
            }

    isisManAreaAddr OBJECT-TYPE
        SYNTAX OSINSAddress
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A manually configured area address for this system. This
             object follows the index behavior.

             Note: an index for the entry {1, {49.0001} active} in
             this table would be the ordered pair
             (1, (0x03 0x49 0x00 0x01)), as the length of an Octet
             string is part of the OID."

    ::= { isisManAreaAddrEntry 1 }

    isisManAreaAddrExistState OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The state of the isisManAreaAddrEntry. This object
             follows the Row Status behavior. If the isisSysAdminState
             for this instance of the IS-IS protocol is 'on', and an
             attempt is made to set this object to the value 'destroy'
             or 'notInService' when this is the only isisManAreaAddrEntry
             in state 'active' for this instance of the IS-IS protocol
             should return  inconsistentValue."
    ::= { isisManAreaAddrEntry 2 }

-- The Level 1 Area Address Table

-- The Level 1 Area Address Table contains the
-- union of the sets of relevant area addresses reported
-- in all Level 1 LSPs received by this Intermediate System.

    isisAreaAddrTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisAreaAddrEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The union of the sets of area addresses reported in all
             Level 1 LSPs with segment number zero received by this
             instance of the protocol from Intermediate Systems which
             are reachable via Level 1 routing."
        REFERENCE "{ISIS.aoi areaAddresses (18)}"
    ::= { isisSystem 3 }

    isisAreaAddrEntry OBJECT-TYPE
        SYNTAX IsisAreaAddrEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry contains one area address reported in a
             Level 1 LSP received by this instance of the IS-IS
             protocol."
        INDEX { isisSysInstance,
                isisAreaAddr }
    ::= { isisAreaAddrTable 1 }

    IsisAreaAddrEntry ::=
        SEQUENCE {
            isisAreaAddr
                OSINSAddress
            }

    isisAreaAddr OBJECT-TYPE
        SYNTAX OSINSAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "An area address reported in a Level 1 LSP received by
             this instance of the IS-IS protocol."
    ::= { isisAreaAddrEntry 1 }


-- The System Protocol Supported Table

-- The System Protocol Supported Table contains the manually
-- configured set of protocols supported by each
-- instance of the Integrated IS-IS protocol.

    isisSysProtSuppTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisSysProtSuppEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table contains the manually configured set of
             protocols supported by each instance of the Integrated
             IS-IS protocol."
    ::= { isisSystem 4 }

    isisSysProtSuppEntry OBJECT-TYPE
        SYNTAX IsisSysProtSuppEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry contains one protocol supported by an
             instance of the Integrated IS-IS protocol."

        INDEX {  isisSysInstance,
                 isisSysProtSuppProtocol }

    ::= { isisSysProtSuppTable 1 }

    IsisSysProtSuppEntry ::=
        SEQUENCE {
            isisSysProtSuppProtocol
                SupportedProtocol,
            isisSysProtSuppExistState
                RowStatus
            }

    isisSysProtSuppProtocol OBJECT-TYPE
        SYNTAX SupportedProtocol
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "One supported protocol. This object follows the index
             behavior."
    ::= { isisSysProtSuppEntry 1 }

    isisSysProtSuppExistState OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The state of the isisSysProtSuppEntry. This object
             follows the RowStatus behavior."
    ::= { isisSysProtSuppEntry 2 }


-- The Summary Address Table

-- The Summary Address Table contains the set of summary
-- addresses manually configured for each instance of
-- IP Integrated IS-IS on the system.
--
-- This is used to control leaking L1 routes into L2.

    isisSummAddrTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisSummAddrEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The set of IP summary addresses to use in forming
             summary TLVs originated by this Intermediate System.

             An administrator may use a summary address to combine
             and modify IP Reachability announcements.  If the
             Intermediate system can reach any subset of the summary
             address, the summary address will be announced instead,
             at the configured metric."
    ::= { isisSystem 5 }

    isisSummAddrEntry OBJECT-TYPE
        SYNTAX IsisSummAddrEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry contains one IP summary address."
        INDEX { isisSysInstance,
                isisSummAddressType,
                isisSummAddress,
                isisSummAddrPrefixLen }
    ::= { isisSummAddrTable 1 }

    IsisSummAddrEntry ::=
        SEQUENCE {
            isisSummAddressType
                InetAddressType,
            isisSummAddress
                InetAddress,
            isisSummAddrPrefixLen
                InetAddressPrefixLength,
            isisSummAddrExistState
                RowStatus,
            isisSummAddrMetric
                DefaultMetric,
            isisSummAddrFullMetric
                FullMetric
        }

    isisSummAddressType OBJECT-TYPE
        SYNTAX InetAddressType
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The Type of IP address for this summary address.
             This object follows the index behavior."
    ::= { isisSummAddrEntry 1 }

    isisSummAddress OBJECT-TYPE
        SYNTAX InetAddress (SIZE(4|16))
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The IP Address value for this summary address.
             This object follows the index behavior."
    ::= { isisSummAddrEntry 2 }

    isisSummAddrPrefixLen OBJECT-TYPE
        SYNTAX InetAddressPrefixLength (0..128)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The Length of the IP NetMask for this summary address."
    ::= { isisSummAddrEntry 3 }


    isisSummAddrExistState OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The existence state of this summary address. This object
             follows the row status behavior."
    ::= { isisSummAddrEntry 4 }

    isisSummAddrMetric OBJECT-TYPE
        SYNTAX DefaultMetric
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The metric value to announce this summary
             address with in LSPs generated by this system."
        DEFVAL { 20 }
    ::= { isisSummAddrEntry 5 }

    isisSummAddrFullMetric OBJECT-TYPE
        SYNTAX FullMetric
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The wide metric value to announce this summary
             address with in LSPs generated by this system."
        DEFVAL { 20 }
    ::= { isisSummAddrEntry 6 }

-- The Redistribution table defines addresses that should be leaked from
-- L2 to L1 if isisSysL2toL1Leaking is enabled.

    isisRedistributeAddrTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisRedistributeAddrEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table provides criteria to decide if a route should
             be leaked from L2 to L1 when Domain Wide Prefix leaking is
             enabled.

             Addresses that match the summary mask in the table will
             be announced at L1 by routers when isisSysL2toL1Leaking
             is enabled.  Routes that fall into the ranges specified
             are announced as is, without being summarized.  Routes
             that do not match a summary mask are not announced."
    ::= { isisSystem 6 }


    isisRedistributeAddrEntry OBJECT-TYPE
        SYNTAX IsisRedistributeAddrEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry contains one IP summary address to
             manage leaking L2 addresses into L1."
        INDEX { isisSysInstance,
                isisRedistributeAddrType,
                isisRedistributeAddrAddress,
                isisRedistributeAddrPrefixLen }
    ::= { isisRedistributeAddrTable 1 }

    IsisRedistributeAddrEntry ::=
        SEQUENCE {
            isisRedistributeAddrType
                InetAddressType,
            isisRedistributeAddrAddress
                InetAddress,
            isisRedistributeAddrPrefixLen
                InetAddressPrefixLength,
            isisRedistributeAddrExistState
                RowStatus
        }

    isisRedistributeAddrType OBJECT-TYPE
        SYNTAX InetAddressType
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The Type of IP address for this summary address.
             This object follows the index behavior."
    ::= { isisRedistributeAddrEntry 1 }

    isisRedistributeAddrAddress OBJECT-TYPE
        SYNTAX InetAddress (SIZE(4|16))
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The IP Address value for this summary address.
             This object follows the index behavior."
    ::= { isisRedistributeAddrEntry 2 }

    isisRedistributeAddrPrefixLen OBJECT-TYPE
        SYNTAX InetAddressPrefixLength (0..128)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The Length of the IP NetMask for this summary address."
    ::= { isisRedistributeAddrEntry 3 }

    isisRedistributeAddrExistState OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The existence state of this summary address. This object
             follows the row status behavior."
    ::= { isisRedistributeAddrEntry 4 }

-- The Router Table keeps track of hostnames and router IDs
-- associated with peers in the area and domain.

    isisRouterTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisRouterEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The set of hostnames and router ID."
    ::= { isisSystem 7 }

    isisRouterEntry OBJECT-TYPE
        SYNTAX IsisRouterEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry tracks information about one peer at one level."
        INDEX { isisSysInstance,
                isisRouterSysID,
                isisRouterLevel }
    ::= { isisRouterTable 1 }

    IsisRouterEntry ::=
        SEQUENCE {
            isisRouterSysID
                SystemID,
            isisRouterLevel
                ISLevel,
            isisRouterHostName
                DisplayString,
            isisRouterID
                Unsigned32
        }

    isisRouterSysID OBJECT-TYPE
        SYNTAX SystemID
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The System ID of the Router Peer."
    ::= { isisRouterEntry 1 }

    isisRouterLevel OBJECT-TYPE
        SYNTAX ISLevel
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The level of this Intermediate System."
    ::= { isisRouterEntry 2 }

    isisRouterHostName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The hostname listed in LSP, or NULL if none."
    ::= { isisRouterEntry 3 }

    isisRouterID OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The Router ID of the Peer found in LSP, or NULL if none."
    ::= { isisRouterEntry 4 }

-- The System Level Table
-- This table captures level-specific information about the System

    isisSysLevelTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisSysLevelEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Level specific information about the System."
    ::= { isisSysLevel 1 }

    isisSysLevelEntry OBJECT-TYPE
        SYNTAX IsisSysLevelEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Describe variables defined for Area or Domain."
        INDEX { isisSysInstance,
                isisSysLevelIndex }
    ::= { isisSysLevelTable 1 }

    IsisSysLevelEntry ::=
        SEQUENCE {
            isisSysLevelIndex
                INTEGER,
            isisSysLevelOrigLSPBuffSize
                -- LSPBuffSize,
                -- VRPV8R1 Capability 20091217 modify field type
                Integer32,
            isisSysLevelMinLSPGenInt
                Unsigned16TC,
            isisSysLevelOverloadState
                LevelState,
            isisSysLevelSetOverload
                TruthValue,
            isisSysLevelSetOverloadUntil
                TimeTicks,
            isisSysLevelMetricStyle
                MetricStyle,
            isisSysLevelSPFConsiders
                MetricStyle,
            isisSysLevelTEEnabled
                TruthValue
        }

    isisSysLevelIndex OBJECT-TYPE
        SYNTAX INTEGER
            {
                level1IS (1),
                level2IS (2)
            }
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The level that this entry describes."
    ::= { isisSysLevelEntry 1 }

    isisSysLevelOrigLSPBuffSize OBJECT-TYPE
        -- SYNTAX LSPBuffSize
        -- VRPV8R1 Capability 20091217 modify value scope
        SYNTAX Integer32 (512..16384)
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The maximum size of LSPs and SNPs originated by
             this instance of the protocol at this level.
             This object follows the replaceOnlyWhileDisabled
             behavior."
        REFERENCE "{ISIS.aoi originatingL1LSPBufferSize (9)}"
        DEFVAL { 1492 }
    ::= { isisSysLevelEntry 2 }

    isisSysLevelMinLSPGenInt OBJECT-TYPE
        SYNTAX Unsigned16TC (1..65535)
        UNITS "seconds"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Minimum interval, in seconds, between successive generation
             of LSPs with the same LSPID at this level by this instance
             of the protocol.  This object follows the resettingTimer
             behavior."
        REFERENCE "{ISIS.aoi minimumLSPGenerationInterval (11)}"
        DEFVAL { 30 }
    ::= { isisSysLevelEntry 3 }

    isisSysLevelOverloadState OBJECT-TYPE
        SYNTAX LevelState
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The Overload state of the database at this level.
             The value 'overloaded' indicates a database that is
             low on an essential resource, such as memory.
             The administrator may indirectly force the state to
             'waiting' when the router is initializing by setting
             the object isisSysLevelSetOverload.
             If the state is waiting or overloaded, we
             originate LSPs with the Overload bit set."
        REFERENCE "{ISIS.aoi l1State (17)}"
    ::= { isisSysLevelEntry 4 }

    isisSysLevelSetOverload OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Administratively set the overload bit for the level.
             The overload bit will continue to be set if the
             implementation runs out of memory, independent of
             this variable"
        DEFVAL { false }
    ::= { isisSysLevelEntry 5 }

    isisSysLevelSetOverloadUntil OBJECT-TYPE
        SYNTAX TimeTicks
        UNITS "seconds"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "If set, the overload bit should be set, and cleared
             after sysUpTime exceeds this value."
        DEFVAL { 0 }
    ::= { isisSysLevelEntry 6 }

    isisSysLevelMetricStyle OBJECT-TYPE
        SYNTAX MetricStyle
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Which style of Metric do we generate in our LSPs
             at this level? This object follows the
             replaceOnlyWhileDisabled behavior."
        DEFVAL { narrow }
    ::= { isisSysLevelEntry 7 }

    isisSysLevelSPFConsiders OBJECT-TYPE
        SYNTAX MetricStyle
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Which style of Metric do we consider in our
             SPF computation at this level?"
        DEFVAL { narrow }
    ::= { isisSysLevelEntry 8 }

    isisSysLevelTEEnabled OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Do we do Traffic Engineering at this level?"
        DEFVAL { false }
    ::= { isisSysLevelEntry 9 }

-- The Circuit Table
-- Each broadcast or point-to-point interface on the system
-- corresponds to one entry in the Circuit table.  However, there
-- may be multiple X.25 DA circuit entries in the Circuit table
-- for a given X.25 interface.

    isisCircTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisCircEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The table of circuits used by each instance of
             Integrated IS-IS on this system."
    ::= { isisCirc 1 }

    isisCircEntry OBJECT-TYPE
        SYNTAX IsisCircEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An isisCircEntry exists for each circuit used by
             Integrated IS-IS on this system."
        INDEX { isisSysInstance,
                isisCircIndex }
    ::= { isisCircTable 1 }

    IsisCircEntry ::=
        SEQUENCE {
            isisCircIndex
                Integer32,
            isisCircIfIndex
                Integer32,
            isisCircIfSubIndex
                Integer32,
            isisCircAdminState
                AdminState,
            isisCircExistState
                RowStatus,
            isisCircType
                INTEGER,
            isisCircExtDomain
                TruthValue,
            isisCircLevel
                INTEGER,
            isisCircPassiveCircuit
                TruthValue,
            isisCircMeshGroupEnabled
                INTEGER,
            isisCircMeshGroup
                Unsigned32,
            isisCircSmallHellos
                TruthValue,
            isisCircLastUpTime
                TimeTicks,
            isisCirc3WayEnabled
                TruthValue,
            isisCircExtendedCircID
                Unsigned32
        }

    isisCircIndex OBJECT-TYPE
        SYNTAX Integer32 (1..2000000000)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The identifier of this circuit, unique within the
             instance of the IS-IS protocol. This object follows
             the index behavior.  This is for SNMP Indexing
             purposes only and need not have any relation to
             any protocol value."
    ::= { isisCircEntry 1 }

    isisCircIfIndex OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The value of ifIndex for the interface to which this
             circuit corresponds.   This object cannot be modified
             after creation"
    ::= { isisCircEntry 2 }

    isisCircIfSubIndex OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "A specifier for the part of the interface ifIndex to which
             this circuit corresponds, such as a DLCI or VPI/VCI.
             This object cannot be modified after creation"
    ::= { isisCircEntry 3 }

    isisCircAdminState OBJECT-TYPE
        SYNTAX AdminState
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The administrative state of the circuit. This
             object follows the AdminState behavior."
        DEFVAL { off }
    ::= { isisCircEntry 4 }

    isisCircExistState OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The existence state of this circuit. This object follows
             the Row Status behavior.  Setting the state to 'notInService'
             halts the generation and processing of IS-IS protocol PDUs
             on this circuit.  Setting the state to destroy will also
             erase any configuration associated with the circuit."
    ::= { isisCircEntry 5 }

    isisCircType OBJECT-TYPE
        SYNTAX INTEGER
            {
                broadcast(1),
                ptToPt(2),
                staticIn(3),
                staticOut(4),
                dA(5)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The type of the circuit. This object follows the
             replaceOnlyWhileDisabled behavior. The type specified
             must be compatible with the type of the interface defined
             by the value of isisCircIfIndex."
        REFERENCE "{ISIS.aoi type (33)}"
    ::= { isisCircEntry 6 }

    isisCircExtDomain OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "If true, suppress normal transmission of and
             interpretation of Intra-domain IS-IS PDUs on this
             circuit."
        REFERENCE "{ISIS.aoi externalDomain (46)}"
        DEFVAL { false }
    ::= { isisCircEntry 7 }

    isisCircLevel OBJECT-TYPE
        SYNTAX INTEGER
            {
                level1(1),
                level2(2),
                level1L2(3)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Indicates which type of packets will be sent and
             accepted on this circuit. The values used will be
             modified by the settings of isisSysType. This
             object follows the replaceOnlyWhileDisabled behavior."
        DEFVAL { level1L2 }
    ::= { isisCircEntry 8 }

    isisCircPassiveCircuit OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Should we include this interface in LSPs, even if
             it is not running the IS-IS Protocol?"
        REFERENCE "{}"
        DEFVAL { false }
    ::= { isisCircEntry 9 }

    isisCircMeshGroupEnabled OBJECT-TYPE
        SYNTAX INTEGER
            {
                inactive(1),
                blocked(2),
                set(3)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Is this port a member of a mesh group, or blocked?
             Circuits in the same mesh group act as a virtual
             multiaccess network.  LSPs seen on one circuit in
             a mesh group will not be flooded to another circuit
             in the same mesh group."
        REFERENCE "{ RFC 2973 }"
        DEFVAL { inactive }
    ::= { isisCircEntry 10 }

    isisCircMeshGroup OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Circuits in the same mesh group act as a virtual
             multiaccess network.  LSPs seen on one circuit in
             a mesh group will not be flooded to another circuit
             in the same mesh group.  If isisCircMeshGroupEnabled
             is inactive or blocked, this value is ignored."
        REFERENCE "{ RFC 2973 }"
    ::= { isisCircEntry 11 }

    isisCircSmallHellos OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Can we send unpadded hellos on LAN circuits?  False
             means LAN Hellos must be padded.
             Implementations should allow the administrator to read
             this value.  An implementation need not be able to
             support unpadded hellos to be conformant."
         DEFVAL { false }
    ::= { isisCircEntry 12 }

    isisCircLastUpTime OBJECT-TYPE
        SYNTAX TimeTicks
        UNITS "seconds"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "If the circuit is enabled, the value of sysUpTime
             when isisCircAdminState most recently entered
             the state on.  If the circuit is not on,
             the value of sysUpTime when the circuit last
             entered state on, 0 if the circuit has never
             been on."
    ::= { isisCircEntry 13 }

    isisCirc3WayEnabled OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Is this circuit enabled to run 3Way handshake?"
    ::= { isisCircEntry 14 }

    isisCircExtendedCircID OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "A unique value to be used as the extended circuit ID
             in 3Way handshake."
    ::= { isisCircEntry 15 }

-- The Circuit Level Table
-- This table captures level-specific information about a circuit

    isisCircLevelTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisCircLevelEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Level specific information about circuits used by IS-IS"
    ::= { isisCircLevelValues 1 }

    isisCircLevelEntry OBJECT-TYPE
        SYNTAX IsisCircLevelEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An isisCircLevelEntry exists for each level on
             each circuit used by Integrated IS-IS on this system."
        INDEX { isisSysInstance,
                isisCircIndex,
                isisCircLevelIndex }
    ::= { isisCircLevelTable 1 }

    IsisCircLevelEntry ::=
        SEQUENCE {
            isisCircLevelIndex
                INTEGER,
            isisCircLevelMetric
                DefaultMetric,
            isisCircLevelWideMetric
                WideMetric,
            isisCircLevelISPriority
                ISPriority,
            isisCircLevelIDOctet
                Integer32,
            isisCircLevelID
                CircuitID,
            isisCircLevelDesIS
                OCTET STRING,
            isisCircLevelHelloMultiplier
                Integer32,
            isisCircLevelHelloTimer
                Integer32,
            isisCircLevelDRHelloTimer
                Integer32,
            isisCircLevelLSPThrottle
                Unsigned16TC,
            isisCircLevelMinLSPRetransInt
                Integer32,
            isisCircLevelCSNPInterval
                Integer32,
            isisCircLevelPartSNPInterval
                Integer32
        }

    isisCircLevelIndex OBJECT-TYPE
        SYNTAX INTEGER
            {
                level1IS (1),
                level2IS (2)
            }
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The level that this entry describes."
    ::= { isisCircLevelEntry 1 }

    isisCircLevelMetric OBJECT-TYPE
        SYNTAX DefaultMetric
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The metric value of this circuit for this level."
        REFERENCE "{ISIS.aoi l1DefaultMetric (35)}"
        DEFVAL { 10 }
    ::= { isisCircLevelEntry 2 }

    isisCircLevelWideMetric OBJECT-TYPE
        SYNTAX WideMetric
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The wide metric value of this circuit for this level."
        DEFVAL { 10 }
    ::= { isisCircLevelEntry 3 }

    isisCircLevelISPriority OBJECT-TYPE
        SYNTAX ISPriority
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The priority for becoming LAN Designated
             Intermediate System at this level."
        REFERENCE "{ISIS.aoi l2IntermediateSystemPriority (73)}"
        DEFVAL { 64 }
    ::= { isisCircLevelEntry 4 }

    isisCircLevelIDOctet OBJECT-TYPE
        SYNTAX Integer32(0..255)
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "A one byte identifier that can be used in protocol packets
             to identify a circuit.  Values of isisCircLevelIDOctet
             do not need to be unique.  They are only required to differ
             on LANs where the Intermediate System is the Designated
             Intermediate System."
    ::= { isisCircLevelEntry 5 }

    isisCircLevelID OBJECT-TYPE
        SYNTAX CircuitID
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The ID of the circuit allocated during initialization.
             If no value has been negotiated (either because the
             adjacency is to an End System, or because initialization
             has not yet successfully completed), this object has the
             value which would be proposed for this circuit (i.e. the
             concatenation of the local system ID and the one byte
             isisCircLevelIDOctet for this circuit."
        REFERENCE "{ISIS.aoi ptPtCircuitID (51)}"
    ::= { isisCircLevelEntry 6 }

    isisCircLevelDesIS OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE(0|7))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The ID of the LAN Designated Intermediate System
             on this circuit at this level. If, for any reason,
             this system is not partaking in the relevant
             Designated Intermediate System election process,
             then the value returned is the zero length OCTET STRING."
        REFERENCE "{ISIS.aoi l2DesignatedIntermediateSystem (75)}"
    ::= { isisCircLevelEntry 7 }

    isisCircLevelHelloMultiplier OBJECT-TYPE
        -- SYNTAX Integer32 (2..100)
        -- VRPV8R1 Capability 20091217 modify value scope
        SYNTAX Integer32 (2..1000)
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "This value is multiplied by the corresponding HelloTimer
             and the result in seconds (rounded up) is used as the
             holding time in transmitted hellos, to be used by receivers
             of hello packets from this IS"
        REFERENCE "{ISIS.aoi iSISHelloTimer (45)}"
        DEFVAL { 10 }
    ::= { isisCircLevelEntry 8 }

    isisCircLevelHelloTimer OBJECT-TYPE
        SYNTAX Integer32 (10..600000)
        UNITS "milliseconds"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Maximum period, in milliseconds, between IIH PDUs
             on multiaccess networks at this level for LANs.
             The value at level 1 is used as the period between
             Hellos on L1L2 point to point circuits.  Setting
             this value at level 2 on an L1L2 point to point
             circuit will result in an error of InconsistentValue.

             This object follows the resettingTimer behavior."
        REFERENCE "{ISIS.aoi iSISHelloTimer (45)}"
        DEFVAL { 3000 }
    ::= { isisCircLevelEntry 9 }

    isisCircLevelDRHelloTimer OBJECT-TYPE
        SYNTAX Integer32 (10..120000)
        UNITS "milliseconds"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Period, in milliseconds, between Hello PDUs on
             multiaccess networks when this IS is the Designated
             Intermediate System.  This object follows the
             resettingTimer behavior."
        REFERENCE "{ISIS.aoi iSISHelloTimer (45)}"
        DEFVAL { 1000 }
    ::= { isisCircLevelEntry 10 }

    isisCircLevelLSPThrottle OBJECT-TYPE
        SYNTAX Unsigned16TC (1..65535)
        UNITS "milliseconds"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Minimal interval of time, in milliseconds, between
             transmissions of LSPs on an interface at this level."
        REFERENCE "{ISIS.aoi minimumBroadcastLSPTransmissionInterval (5)}"
        DEFVAL { 30 }
    ::= { isisCircLevelEntry 11 }

    isisCircLevelMinLSPRetransInt OBJECT-TYPE
        SYNTAX Integer32 (1..300)
        UNITS "seconds"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Minimum interval, in seconds, between re-transmission of
             an LSP at this level. This object follows the resettingTimer
             behavior.

             Note that isisCircLevelLSPThrottle controls
             how fast we send back to back LSPs.  This variable
             controls how fast we re-send the same LSP."
        REFERENCE "{ISIS.aoi minimumLSPTransmissionInterval (5)}"
        DEFVAL { 5 }
    ::= { isisCircLevelEntry 12 }

    isisCircLevelCSNPInterval OBJECT-TYPE
        -- SYNTAX Integer32 (1..600)
        -- VRPV8R1 Capability 20091217 modify value scope
        SYNTAX Integer32 (1..65535)
        UNITS "seconds"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Interval of time, in seconds, between periodic
             transmission of a complete set of CSNPs on
             multiaccess networks if this router is the
             designated router at this level."
        REFERENCE "{}"
        DEFVAL { 10 }
    ::= { isisCircLevelEntry 13 }

    isisCircLevelPartSNPInterval OBJECT-TYPE
        SYNTAX Integer32 (1..120)
        UNITS "seconds"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Minimum interval in seconds between sending Partial Sequence
             Number PDUs at this level. This object follows the
             resettingTimer behavior."
        REFERENCE "{ISIS.aoi partialSNPInterval (14)}"
        DEFVAL { 2 }
    ::= { isisCircLevelEntry 14 }

-- isisSystemCounterTable keeps track of system-wide events.

    isisSystemCounterTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisSystemCounterEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "System wide counters for one instance of the IS-IS
             protocol on the system."
    ::= { isisCounters 1 }

    isisSystemCounterEntry OBJECT-TYPE
        SYNTAX IsisSystemCounterEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "System-wide IS-IS counters."
        INDEX { isisSysInstance,
                isisSysStatLevel }
    ::= { isisSystemCounterTable 1 }

    IsisSystemCounterEntry ::=
        SEQUENCE {
            isisSysStatLevel
                INTEGER,
            isisSysStatCorrLSPs
                Counter32,
            isisSysStatAuthTypeFails
                Counter32,
            isisSysStatAuthFails
                Counter32,
            isisSysStatLSPDbaseOloads
                Counter32,
            isisSysStatManAddrDropFromAreas
                Counter32,
            isisSysStatAttmptToExMaxSeqNums
                Counter32,
            isisSysStatSeqNumSkips
                Counter32,
            isisSysStatOwnLSPPurges
                Counter32,
            isisSysStatIDFieldLenMismatches
                Counter32,
            isisSysStatMaxAreaAddrMismatches
                Counter32,
            isisSysStatPartChanges
                Counter32,
            isisSysStatSPFRuns
                Counter32
        }

    isisSysStatLevel OBJECT-TYPE
        SYNTAX INTEGER
            {
                level1IS (1),
                level2IS (2)
            }
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The level that this entry describes."
    ::= { isisSystemCounterEntry 1 }

    isisSysStatCorrLSPs OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of corrupted in-memory LSPs detected.

             LSPs received from the wire with a bad checksum
             are silently dropped and not counted."
        REFERENCE "{ISIS.aoi corruptedLSPsDetected (19)}"
    ::= { isisSystemCounterEntry 2 }

    isisSysStatAuthTypeFails OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of authentication type mismatches recognized
             by this instance of the protocol."
    ::= { isisSystemCounterEntry 3 }

    isisSysStatAuthFails OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of authentication failures recognized by this
             instance of the protocol."
    ::= { isisSystemCounterEntry 4 }

    isisSysStatLSPDbaseOloads OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of times the LSP database has become
             overloaded."
        REFERENCE "{ISIS.aoi lSPL1DatabaseOverloads (20)}"
    ::= { isisSystemCounterEntry 5 }

    isisSysStatManAddrDropFromAreas OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of times a manual address has been dropped from
             the area."
        REFERENCE "{ISIS.aoi manualAddressesDroppedFromArea (21)}"
    ::= { isisSystemCounterEntry 6 }

    isisSysStatAttmptToExMaxSeqNums OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of times the IS has attempted to exceed the
             maximum sequence number."
        REFERENCE "{ISIS.aoi attemptsToExceedmaximumSequenceNumber (22)}"
    ::= { isisSystemCounterEntry 7 }

    isisSysStatSeqNumSkips OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of times a sequence number skip has occurred."
        REFERENCE "{ISIS.aoi sequenceNumberSkips (23)}"
    ::= { isisSystemCounterEntry 8 }

    isisSysStatOwnLSPPurges OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of times a zero-aged copy of the system's own LSP
             is received from some other node."
        REFERENCE "{ISIS.aoi ownLSPPurges (24)}"
    ::= { isisSystemCounterEntry 9 }

    isisSysStatIDFieldLenMismatches OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of times a PDU is received with a different value
             for ID field length to that of the receiving system."
        REFERENCE "{ISIS.aoi iDFieldLengthMismatches (25)}"
    ::= { isisSystemCounterEntry 10 }

    isisSysStatMaxAreaAddrMismatches OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of times a PDU is received with a different value
             for MaximumAreaAddresses from that of the receiving
             system."
        REFERENCE "{ISIS.aoi MaximumAreaAddressesMismatches (118)}"
    ::= { isisSystemCounterEntry 11 }

    isisSysStatPartChanges OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Partition changes"
    ::= { isisSystemCounterEntry 12 }

    isisSysStatSPFRuns OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of times we ran SPF at this level."
    ::= { isisSystemCounterEntry 13 }

-- isisCircuitCounterTable keeps track of events
-- specific to a circuit and a level

    isisCircuitCounterTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisCircuitCounterEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Circuit specific counters for one instance of the IS-IS
             protocol on the system."
    ::= { isisCounters 2 }

    isisCircuitCounterEntry OBJECT-TYPE
        SYNTAX IsisCircuitCounterEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An isisCircCountEntry exists for each circuit
             used by Integrated IS-IS on this system."
        INDEX { isisSysInstance,
                isisCircIndex,
                isisCircuitType }
    ::= { isisCircuitCounterTable 1 }

    IsisCircuitCounterEntry ::= SEQUENCE {
          isisCircuitType
              INTEGER,
          isisCircAdjChanges
              Counter32,
          isisCircNumAdj
              Unsigned32,
          isisCircInitFails
              Counter32,
          isisCircRejAdjs
              Counter32,
          isisCircIDFieldLenMismatches
              Counter32,
          isisCircMaxAreaAddrMismatches
              Counter32,
          isisCircAuthTypeFails
              Counter32,
          isisCircAuthFails
              Counter32,
          isisCircLANDesISChanges
              Counter32
       }

    isisCircuitType OBJECT-TYPE
        SYNTAX INTEGER
            {
                lanlevel1(1),
                lanlevel2(2),
                p2pcircuit(3)
            }
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "What type of circuit saw these counts?

             The point to point Hello PDU includes
             both L1 and L2, and ISs form a single
             adjacency on point to point links.
             Thus we combine counts on
             point to point links into one group."
    ::= { isisCircuitCounterEntry 1 }

    isisCircAdjChanges OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of times an adjacency state change has
             occurred on this circuit."
        REFERENCE "{ISIS.aoi changesInAdjacencyState (40)}"
    ::= { isisCircuitCounterEntry 2 }

    isisCircNumAdj OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of adjacencies on this circuit."
        REFERENCE "{ISIS.aoi changesInAdjacencyState (40)}"
    ::= { isisCircuitCounterEntry 3 }

    isisCircInitFails OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of times initialization of this circuit has
             failed."
        REFERENCE "{ISIS.aoi initialisationFailures (41)}"
    ::= { isisCircuitCounterEntry 4 }

    isisCircRejAdjs OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of times an adjacency has been rejected on
             this circuit."
        REFERENCE "{ISIS.aoi rejectedAdjacencies (42)}"
    ::= { isisCircuitCounterEntry 5 }

    isisCircIDFieldLenMismatches OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of times an IS-IS control PDU with an ID
             field length different to that for this system has been
             received."
        REFERENCE "{ISIS.aoi iDFieldLengthMismatches (25)}"
    ::= { isisCircuitCounterEntry 6 }

    isisCircMaxAreaAddrMismatches OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of times an IS-IS control PDU with a
             max area address field different to that for this
             system has been received."
        REFERENCE "{ISIS.aoi iDFieldLengthMismatches (25)}"
    ::= { isisCircuitCounterEntry 7 }

    isisCircAuthTypeFails OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of times an IS-IS control PDU with
             an auth type field different to that for this
             system has been received."
    ::= { isisCircuitCounterEntry 8 }

    isisCircAuthFails OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of times an IS-IS control PDU with
             the correct auth type has failed to pass authentication
             validation."
    ::= { isisCircuitCounterEntry 9 }

    isisCircLANDesISChanges OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of times the Designated IS has changed
             on this circuit at this level.  If the circuit is
             point to point, this count is zero."
    ::= { isisCircuitCounterEntry 10 }

-- isisPacketCounterTable keeps track of the number of IS-IS
-- control packets sent and received at each level

    isisPacketCounterTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisPacketCounterEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Information about IS-IS protocol traffic at one level
             on one circuit in one direction"
    ::= { isisCounters 3 }

    isisPacketCounterEntry OBJECT-TYPE
        SYNTAX IsisPacketCounterEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Information about IS-IS protocol traffic at one level
             on one circuit in one direction"
        INDEX { isisSysInstance,
                isisCircIndex,
                isisPacketCountLevel,
                isisPacketCountDirection }
    ::= { isisPacketCounterTable 1 }

    IsisPacketCounterEntry ::=
        SEQUENCE {
            isisPacketCountLevel
                INTEGER,
            isisPacketCountDirection
                INTEGER,
            isisPacketCountIIHello
                Counter32,
            isisPacketCountISHello
                Counter32,
            isisPacketCountESHello
                Counter32,
            isisPacketCountLSP
                Counter32,
            isisPacketCountCSNP
                Counter32,
            isisPacketCountPSNP
                Counter32,
            isisPacketCountUnknown
                Counter32
    }

    isisPacketCountLevel OBJECT-TYPE
        SYNTAX INTEGER
            {
                level1(1),
                level2(2)
            }
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The level at which these PDU counts have been collected."
    ::= { isisPacketCounterEntry 1 }

    isisPacketCountDirection OBJECT-TYPE
        SYNTAX INTEGER
            {
                sending(1),
                receiving(2)
            }
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Were we sending or receiving these PDUs?"
    ::= { isisPacketCounterEntry 2 }

    isisPacketCountIIHello OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of IS-IS Hello PDUs seen in this
             direction at this level.

             Point-to-Point IIH PDUs are counted at
             Level 1 if the value of their Circuit Type
             field is 1, and are counted at Level 2 otherwise."
        REFERENCE "{ISIS.aoi iSISControlPDUsSent (43)}"
    ::= { isisPacketCounterEntry 3 }

    isisPacketCountISHello OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of ES-IS Hello PDUs seen in this
             direction.  ISH PDUs are counted at the
             lowest enabled level: at L1 on L1 or L1L2
             circuits, and at L2 otherwise."
    ::= { isisPacketCounterEntry 4 }

    isisPacketCountESHello OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of ES Hello PDUs seen in this
             direction.  ESH PDUs are counted at the
             lowest enabled level: at L1 on L1 or L1L2
             circuits, and at L2 otherwise."
    ::= { isisPacketCounterEntry 5 }

    isisPacketCountLSP OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of IS-IS LSPs seen in this
             direction at this level."
        REFERENCE "{ISIS.aoi iSISControlPDUsSent (43)}"
    ::= { isisPacketCounterEntry 6 }

    isisPacketCountCSNP OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of IS-IS CSNPs seen in this
             direction at this level."
        REFERENCE "{ISIS.aoi iSISControlPDUsSent (43)}"
    ::= { isisPacketCounterEntry 7 }

    isisPacketCountPSNP OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of IS-IS PSNPs seen in this
             direction at this level."
        REFERENCE "{ISIS.aoi iSISControlPDUsSent (43)}"
    ::= { isisPacketCounterEntry 8 }

    isisPacketCountUnknown OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of unknown IS-IS PDUs seen
             at this level."
        REFERENCE "{ISIS.aoi iSISControlPDUsSent (43)}"
    ::= { isisPacketCounterEntry 9 }

-- The IS Adjacency Table
--
-- Each adjacency to an IS corresponds to one entry in this
-- table.

    isisISAdjTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisISAdjEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The table of adjacencies to Intermediate Systems."
    ::= { isisISAdj 1 }

    isisISAdjEntry OBJECT-TYPE
        SYNTAX IsisISAdjEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry corresponds to one adjacency to an
             Intermediate System on this system."
        INDEX { isisSysInstance,
                isisCircIndex,
                isisISAdjIndex }
    ::= { isisISAdjTable 1 }

    IsisISAdjEntry ::=
        SEQUENCE {
            isisISAdjIndex
                Integer32,
            isisISAdjState
                INTEGER,
            isisISAdj3WayState
                INTEGER,
            isisISAdjNeighSNPAAddress
                OSINSAddress,
            isisISAdjNeighSysType
                INTEGER,
            isisISAdjNeighSysID
                SystemID,
            isisISAdjNbrExtendedCircID
                Unsigned32,
            isisISAdjUsage
                INTEGER,
            isisISAdjHoldTimer
                Unsigned16TC,
            isisISAdjNeighPriority
                ISPriority,
            isisISAdjLastUpTime
                TimeTicks
      }

    isisISAdjIndex OBJECT-TYPE
        SYNTAX Integer32 (1..2000000000)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A unique value identifying the IS adjacency from all
             other such adjacencies on this circuit. This value is
             assigned by the system when the adjacency is created
             automatically."
    ::= { isisISAdjEntry 1 }

    isisISAdjState OBJECT-TYPE
        SYNTAX INTEGER
            {
                 down (1),
                 initializing (2),
                 up (3),
                 failed(4)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The state of the adjacency"
        REFERENCE "{ISIS.aoi adjacencyState (78)}"
    ::= { isisISAdjEntry 2 }

    isisISAdj3WayState OBJECT-TYPE
        SYNTAX INTEGER
            {
                 up (0),
                 initializing (1),
                 down (2),
                 failed (3)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The 3Way state of the adjacency.  These are picked
             to match the historical on-the-wire representation
             of the 3Way state, and are not intended to match
             isisISAdjState."
        REFERENCE "{ RFC 3373 }"
    ::= { isisISAdjEntry 3 }

    isisISAdjNeighSNPAAddress OBJECT-TYPE
        SYNTAX OSINSAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The SNPA address of the neighboring system."
        REFERENCE "{ISIS.aoi neighbourSNPAAddress (79)}"
    ::= { isisISAdjEntry 4 }

    isisISAdjNeighSysType OBJECT-TYPE
        SYNTAX INTEGER
            {
                l1IntermediateSystem(1),
                l2IntermediateSystem(2),
                l1L2IntermediateSystem(3),
                unknown(4)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The type of the neighboring system."
        REFERENCE "{ISIS.aoi neighbourSystemType (80)}"
    ::= { isisISAdjEntry 5 }

    isisISAdjNeighSysID OBJECT-TYPE
        SYNTAX SystemID
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The system ID of the neighboring Intermediate
             System."
        REFERENCE "{ISIS.aoi neighbourSystemIds (83)}"
    ::= { isisISAdjEntry 6 }

    isisISAdjNbrExtendedCircID OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The 4 byte Extended Circuit ID learned from the
             Neighbor during 3-way handshake, or 0."
    ::= { isisISAdjEntry 7 }


    isisISAdjUsage OBJECT-TYPE
        SYNTAX INTEGER
            {
                level1(1),
                level2(2),
                level1and2(3)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "How is the adjacency used?  On a point-to-point link,
             this might be level1and2, but on a LAN, the usage will
             be level1 on the adjacency between peers at level 1,
             and level2 for the adjacency between peers at level 2."
        REFERENCE "{ISIS.aoi adjacencyUsage (82)}"
    ::= { isisISAdjEntry 8 }

    isisISAdjHoldTimer OBJECT-TYPE
        SYNTAX Unsigned16TC (1..65535)
        UNITS "seconds"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The holding time in seconds for this adjacency.
             This value is based on received IIH PDUs and
             the elapsed time since receipt."
        REFERENCE "{ISIS.aoi holdingTimer (85)}"
    ::= { isisISAdjEntry 9 }

    isisISAdjNeighPriority OBJECT-TYPE
        SYNTAX ISPriority
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Priority of the neighboring Intermediate System for
             becoming the Designated Intermediate System."
        REFERENCE "{ISIS.aoi lANPriority (86)}"
    ::= { isisISAdjEntry 10 }

    isisISAdjLastUpTime OBJECT-TYPE
        SYNTAX TimeTicks
        UNITS "seconds"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "If the isisISAdjState is in state 'up', the value
             of sysUpTime when the adjacency most recently
             entered the state 'up',  or 0 if it has never
             been in state 'up'."
    ::= { isisISAdjEntry 11 }

-- The IS Adjacency Area Address Table

-- The IS Adjacency Area Address Table contains the set of
-- Area Addresses of neighboring
-- Intermediate Systems as reported in IIH PDUs.

    isisISAdjAreaAddrTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisISAdjAreaAddrEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table contains the set of Area Addresses of
             neighboring Intermediate Systems as reported in received
             IIH PDUs."
        REFERENCE "{ISIS.aoi areaAddressesOfNeighbour (84)}"
    ::= { isisISAdj 2 }

    isisISAdjAreaAddrEntry OBJECT-TYPE
        SYNTAX IsisISAdjAreaAddrEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry contains one Area Address reported by a
             neighboring Intermediate System in its IIH PDUs."
        INDEX { isisSysInstance,
                isisCircIndex,
                isisISAdjIndex,
                isisISAdjAreaAddrIndex }
    ::= { isisISAdjAreaAddrTable 1 }

    IsisISAdjAreaAddrEntry ::=
        SEQUENCE {
            isisISAdjAreaAddrIndex
                Integer32,
            isisISAdjAreaAddress
                OSINSAddress
            }

    isisISAdjAreaAddrIndex OBJECT-TYPE
        SYNTAX Integer32 (1..2000000000)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An index for the areas associated with one neighbor.
             This provides a simpler way to walk the table."
    ::= { isisISAdjAreaAddrEntry 1 }

    isisISAdjAreaAddress OBJECT-TYPE
        SYNTAX OSINSAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "One Area Address as reported in IIH PDUs received from
             the neighbor."
    ::= { isisISAdjAreaAddrEntry 2 }

-- The IS Adjacency IP Address Table

-- The IS Adjacency IP Address Table contains the
-- set of IP Addresses of neighboring Intermediate Systems
-- as reported in received IIH PDUs.

    isisISAdjIPAddrTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisISAdjIPAddrEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table contains the set of IP Addresses of
             neighboring Intermediate Systems as reported in received
             IIH PDUs."
    ::= { isisISAdj 3 }

    isisISAdjIPAddrEntry OBJECT-TYPE
        SYNTAX IsisISAdjIPAddrEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry contains one IP Address reported by a
             neighboring Intermediate System in its IIH PDUs."
        INDEX { isisSysInstance,
                isisCircIndex,
                isisISAdjIndex,
                isisISAdjIPAddrIndex
                }
    ::= { isisISAdjIPAddrTable 1 }

    IsisISAdjIPAddrEntry ::=
        SEQUENCE {
            isisISAdjIPAddrIndex
                Integer32,
            isisISAdjIPAddressType
                 InetAddressType,
            isisISAdjIPAddress
                InetAddress
        }

    isisISAdjIPAddrIndex OBJECT-TYPE
        SYNTAX Integer32 (1..2000000000)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An index to this table which identifies the IP addresss
             to which this entry belongs."
    ::= { isisISAdjIPAddrEntry 1 }

    isisISAdjIPAddressType OBJECT-TYPE
        SYNTAX InetAddressType
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The type of one IP Address as reported in IIH PDUs
             received from the neighbor."
    ::= { isisISAdjIPAddrEntry 2 }

    isisISAdjIPAddress OBJECT-TYPE
        SYNTAX InetAddress (SIZE(4|16))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "One IP Address as reported in IIH PDUs received from the
             neighbor."
    ::= { isisISAdjIPAddrEntry 3 }

-- The IS Adjacency Protocol Supported Table
--
-- The IS Adjacency Protocol Supported Table contains the set of
-- protocols supported by neighboring
-- Intermediate Systems as reported in received IIH PDUs.

    isisISAdjProtSuppTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisISAdjProtSuppEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table contains the set of protocols supported by
             neighboring Intermediate Systems as reported in received
             IIH PDUs."
    ::= { isisISAdj 4 }

    isisISAdjProtSuppEntry OBJECT-TYPE
        SYNTAX IsisISAdjProtSuppEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry contains one protocol supported by a
             neighboring Intermediate System as reported in its IIH
             PDUs."
        INDEX {  isisSysInstance,
            isisCircIndex,
            isisISAdjIndex,
            isisISAdjProtSuppProtocol }
    ::= { isisISAdjProtSuppTable 1 }

    IsisISAdjProtSuppEntry ::=
        SEQUENCE {
            isisISAdjProtSuppProtocol
                SupportedProtocol
        }

    isisISAdjProtSuppProtocol OBJECT-TYPE
        SYNTAX SupportedProtocol
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "One supported protocol as reported in IIH PDUs received
             from the neighbor."
    ::= { isisISAdjProtSuppEntry 1 }

-- The Reachable Address Group
--
-- The Reachable Address Group is optional.
-- The Reachable Address Table
-- Each entry records information about a reachable address
-- (NSAP or address prefix) manually configured on the system
-- or learned through another protocol.

    isisRATable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisRAEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The table of Reachable Addresses to NSAPs or Address
             Prefixes."
    ::= { isisReachAddr 1 }

    isisRAEntry OBJECT-TYPE
        SYNTAX IsisRAEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry defines a Reachable Address to a NSAP or
             Address Prefix."
        INDEX { isisSysInstance,
                isisCircIndex,
                isisRAIndex }
    ::= { isisRATable 1 }

    IsisRAEntry ::=
        SEQUENCE {
            isisRAIndex
                Integer32,
            isisRAExistState
                RowStatus,
            isisRAAdminState
                AdminState,
            isisRAAddrPrefix
                OSINSAddress,
            isisRAMapType
                INTEGER,
            isisRAMetric
                DefaultMetric,
            isisRAMetricType
                MetricType,
            isisRASNPAAddress
                OSINSAddress,
            isisRASNPAMask
                OSINSAddress,
            isisRASNPAPrefix
                OSINSAddress,
            isisRAType
                INTEGER
        }

    isisRAIndex OBJECT-TYPE
        SYNTAX Integer32 (1..2000000000)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The identifier for this isisRAEntry. This value must be
             unique amongst all Reachable Addresses on the same parent
             Circuit. This object follows the index and ManualOrAutomatic
             behaviors."
    ::= { isisRAEntry 1 }


    isisRAExistState OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The existence state of this Reachable Address. This
             object follows the ManualOrAutomatic behaviors."
    ::= { isisRAEntry 2 }

    isisRAAdminState OBJECT-TYPE
        SYNTAX AdminState
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The administrative state of the Reachable Address. This
             object follows the AdminState and ManualOrAutomatic
             behaviors."
        DEFVAL { off }
    ::= { isisRAEntry 3 }

    isisRAAddrPrefix OBJECT-TYPE
        SYNTAX OSINSAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The destination of this Reachable Address. This is an
             Address Prefix. This object follows the
             replaceOnlyWhileDisabled and ManualOrAutomatic
             behaviors."
        REFERENCE "{ISIS.aoi addressPrefix (98)}"
    ::= { isisRAEntry 4 }

    isisRAMapType OBJECT-TYPE
        SYNTAX INTEGER
            {
                none (1),
                explicit (2),
                extractIDI (3),
                extractDSP (4)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The type of mapping to be employed to ascertain the SNPA
             Address which should be used in forwarding PDUs for this
             Reachable Address prefix. This object follows the
             ManualOrAutomatic behavior. The following values of
             mapping type are defined:

                 none: The mapping is null because the neighbor SNPA is
                       implicit by nature of the subnetwork (e.g. a
                       point-to-point linkage).

                 explicit: The subnetwork addresses in the object
                       isisRASNPAAddress is to be used.

                 extractIDI: The SNPA is embedded in the IDI of
                       the destination NSAP Address. The mapping
                       algorithm extracts the SNPA to be used
                       according to the format and encoding rules of
                       ISO8473/Add2. This SNPA extraction algorithm can
                       be used in conjunction with Reachable Address
                       prefixes from the X.121, F.69, E.163 and E.164
                       addressing subdomains.

                 extractDSP: All, or a suffix, of the SNPA is embedded
                       in the DSP of the destination address. This SNPA
                       extraction algorithm extracts the embedded
                       subnetwork addressing information by performing a
                       logical AND of the isisRASNPAMask object value with
                       the destination address. The part of the SNPA
                       extracted from the destination NSAP is appended to
                       the isisRASNPAPrefix object value to form the next
                       hop subnetwork addressing information."

        REFERENCE "{ISO10589-ISIS.aoi mappingType (107)}"
    ::= { isisRAEntry 5 }

    isisRAMetric OBJECT-TYPE
        SYNTAX DefaultMetric
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The metric value for reaching the specified
             prefix over this circuit. This object follows the
             ManualOrAutomatic behavior."
        REFERENCE "{ISIS.aoi DefaultMetric (99)}"
        DEFVAL { 20 }
    ::= { isisRAEntry 6 }

    isisRAMetricType OBJECT-TYPE
        SYNTAX MetricType
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Indicates whether the metric is internal or
             external. This object follows the ManualOrAutomatic
             behavior."
        REFERENCE "{ISIS.aoi DefaultMetricType (103)}"
        DEFVAL { internal }
    ::= { isisRAEntry 7 }

    isisRASNPAAddress OBJECT-TYPE
        SYNTAX OSINSAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The SNPA Address to which a PDU may be forwarded in
             order to reach a destination which matches the address
             prefix of the Reachable Address. This object follows the
             ManualOrAutomatic behavior."
        REFERENCE "{ISIS.aoi sNPAAddresses (109)}"
-- note only one address may be specified per Reachable Address
-- in the MIB
        DEFVAL { ''H }
    ::= { isisRAEntry 8 }

    isisRASNPAMask OBJECT-TYPE
        SYNTAX OSINSAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "A bit mask with 1 bits indicating the positions in the
             effective destination address from which embedded SNPA
             information is to be extracted. For the extraction the
             first octet of the isisRASNPAMask object value is aligned
             with the first octet (AFI) of the NSAP Address. If the
             isisRASNPAMask object value and NSAP Address are of
             different lengths, the shorter of the two is logically
             padded with zeros before performing the extraction. This
             object follows the ManualOrAutomatic behavior."
        REFERENCE "{ISIS.aoi sNPAMask (122)}"
        DEFVAL { '00'H }
    ::= { isisRAEntry 9 }

    isisRASNPAPrefix OBJECT-TYPE
        SYNTAX OSINSAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "A fixed SNPA prefix for use when the isisRAMapType is
             extractDSP. The SNPA Address to use is formed by
             concatenating the fixed SNPA prefix with a variable SNPA
             part that is extracted from the effective destination
             address. For Reachable Address prefixes in which the
             entire SNPA is embedded in the DSP the SNPA Prefix shall
             be null. This object follows the ManualOrAutomatic
             behavior."
        REFERENCE "{ISIS.aoi sNPAPrefix (123)}"
        DEFVAL { '00'H }
    ::= { isisRAEntry 10 }

    isisRAType OBJECT-TYPE
        SYNTAX INTEGER
            {
                manual (1),
                automatic (2)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The type of Reachable address. Those of type
             manual are created by the network manager. Those
             of type automatic are created through propagation
             of routing information from another routing
             protocol (eg. IDRP). "
        DEFVAL {manual}
    ::= {isisRAEntry 11 }


-- The IP Reachable Address Table

-- Each entry records information about one IP reachable
-- address manually configured on this system or learned from
-- another protocol.

    isisIPRATable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisIPRAEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The table of IP Reachable Addresses to networks,
             subnetworks or hosts either manually configured or
             learned from another protocol."
    ::= { isisIPReachAddr 1 }

    isisIPRAEntry OBJECT-TYPE
        SYNTAX IsisIPRAEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry defines an IP Reachable Address to a network,
             subnetwork or host."

        INDEX {  isisSysInstance,
                 isisIPRADestType,
                 isisIPRADest,
                 isisIPRADestPrefixLen }
    ::= { isisIPRATable 1 }

    IsisIPRAEntry ::=
        SEQUENCE {
            isisIPRADestType
                InetAddressType,
            isisIPRADest
                InetAddress,
            isisIPRADestPrefixLen
                InetAddressPrefixLength,
            isisIPRANextHopType
                InetAddressType,
            isisIPRANextHop
                InetAddress,
            isisIPRAType
                INTEGER,
            isisIPRAExistState
                RowStatus,
            isisIPRAAdminState
                AdminState,
            isisIPRAMetric
                DefaultMetric,
            isisIPRAMetricType
                MetricType,
            isisIPRAFullMetric
                FullMetric,
            isisIPRASNPAAddress
                OSINSAddress,
            isisIPRASourceType
                INTEGER
        }

    isisIPRADestType OBJECT-TYPE
        SYNTAX InetAddressType
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The type of this IP Reachable Address.  This object
             follows the ManualOrAutomatic behavior."
    ::= { isisIPRAEntry 1 }


    isisIPRADest OBJECT-TYPE
        SYNTAX InetAddress (SIZE(4|16))
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The destination of this IP Reachable Address. This is
             either a network address, subnetwork address or host
             address. This object follows the ManualOrAutomatic
             behavior."
    ::= { isisIPRAEntry 2 }

    isisIPRADestPrefixLen OBJECT-TYPE
        SYNTAX InetAddressPrefixLength (0..128)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The length of the IP Netmask for Reachability Address.
             This object follows the ManualOrAutomatic behavior."
    ::= { isisIPRAEntry 3 }

    isisIPRANextHopType OBJECT-TYPE
        SYNTAX InetAddressType
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The type of the IP next hop address."
    ::= { isisIPRAEntry 4 }

    isisIPRANextHop OBJECT-TYPE
        SYNTAX InetAddress (SIZE(4|16))
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The IP next hop to this destination."
    ::= { isisIPRAEntry 5 }

    isisIPRAType OBJECT-TYPE
        SYNTAX INTEGER
            {
                manual (1),
                automatic (2)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The type of this IP Reachable Address. Those of type
             manual are created by the network manager. Those of type
             automatic are created through propagation of routing
             information from another routing protocol.  This object
             follows the ManualOrAutomatic behavior."
    ::= { isisIPRAEntry 6 }

    isisIPRAExistState OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The state of this IP Reachable Address. This object
             follows the ExistenceState and ManualOrAutomatic
             behaviors."
    ::= { isisIPRAEntry 7 }

    isisIPRAAdminState OBJECT-TYPE
        SYNTAX AdminState
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The administrative state of the IP Reachable Address. This
             object follows the AdminState and ManualOrAutomatic
             behaviors."
        DEFVAL { off }
    ::= { isisIPRAEntry 8 }

    isisIPRAMetric OBJECT-TYPE
        SYNTAX DefaultMetric
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The metric value for reaching the specified
             destination over this circuit. This object follows the
             ManualOrAutomatic behavior."
        DEFVAL { 10 }
    ::= { isisIPRAEntry 9 }

    isisIPRAMetricType OBJECT-TYPE
        SYNTAX MetricType
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Indicates whether the metric is internal or
             external. This object follows the ManualOrAutomatic
             behavior."
        DEFVAL { internal }
    ::= { isisIPRAEntry 10 }

    isisIPRAFullMetric OBJECT-TYPE
        SYNTAX FullMetric
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The wide metric value for reaching the specified
             destination over this circuit. This object follows the
             ManualOrAutomatic behavior."
        DEFVAL { 10 }
    ::= { isisIPRAEntry 11 }

    isisIPRASNPAAddress OBJECT-TYPE
        SYNTAX OSINSAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The SNPA Address to which a PDU may be forwarded in
             order to reach a destination which matches this IP
             Reachable Address. This object follows the
             ManualOrAutomatic behavior."
        DEFVAL { ''H }
    ::= { isisIPRAEntry 12 }

    isisIPRASourceType OBJECT-TYPE
        SYNTAX INTEGER
            {
                static (1),
                direct (2),
                ospfv2 (3),
                ospfv3 (4),
                isis   (5),
                rip    (6),
                igrp   (7),
                eigrp  (8),
                bgp    (9),
                other (10)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The origin of this route."
    ::= { isisIPRAEntry 13 }

-- The LSP Database Table
--
-- The first table provides Summary Information about LSPs
-- The next table provides a complete record

    isisLSPSummaryTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisLSPSummaryEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The table of LSP Headers."
    ::= { isisLSPDataBase 1 }

    isisLSPSummaryEntry OBJECT-TYPE
        SYNTAX IsisLSPSummaryEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry describes an LSP current stored in the system."
        INDEX {  isisSysInstance,
                 isisLSPLevel,
                 isisLSPID }
    ::= { isisLSPSummaryTable 1 }

    IsisLSPSummaryEntry ::=
        SEQUENCE {
            isisLSPLevel
                ISLevel,
            isisLSPID
                LinkStatePDUID,
            isisLSPSeq
                Unsigned32,
            isisLSPZeroLife
                TruthValue,
            isisLSPChecksum
                Unsigned16TC,
            isisLSPLifetimeRemain
                Unsigned16TC,
            isisLSPPDULength
                Unsigned16TC,
            isisLSPAttributes
                Unsigned8TC
        }

    isisLSPLevel OBJECT-TYPE
        SYNTAX ISLevel
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "At which level does this LSP appear?"
    ::= { isisLSPSummaryEntry 1 }

    isisLSPID OBJECT-TYPE
        SYNTAX LinkStatePDUID
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The 8 byte LSP ID, consisting of the SystemID,
             Circuit ID, and Fragment Number."
    ::= { isisLSPSummaryEntry 2 }

    isisLSPSeq OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The sequence number for this LSP."
    ::= { isisLSPSummaryEntry 3 }

    isisLSPZeroLife OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Is this LSP being purged by this System?"
    ::= { isisLSPSummaryEntry 4 }

    isisLSPChecksum OBJECT-TYPE
        SYNTAX Unsigned16TC
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The 16 bit Fletcher Checksum."
    ::= { isisLSPSummaryEntry 5 }

    isisLSPLifetimeRemain OBJECT-TYPE
        SYNTAX Unsigned16TC
        UNITS "seconds"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The remaining lifetime in seconds for this LSP."
    ::= { isisLSPSummaryEntry 6 }

    isisLSPPDULength OBJECT-TYPE
        SYNTAX Unsigned16TC
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The length of this LSP."
    ::= { isisLSPSummaryEntry 7 }

    isisLSPAttributes OBJECT-TYPE
        SYNTAX Unsigned8TC
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Flags carried by the LSP."
    ::= { isisLSPSummaryEntry 8 }

-- LSP Table
--
-- The full LSP as a sequence of {Type, Len, Value} tupples
-- Since the underlying LSP may have changed while downloading
-- TLVs, we provide the Sequence number and Checksum for each
-- LSP TLV, so the network manager may verify that they are
-- still working on the same version of the LSP.

    isisLSPTLVTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisLSPTLVEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The contents of each LSP."
    ::= { isisLSPDataBase 2 }

    isisLSPTLVEntry OBJECT-TYPE
        SYNTAX IsisLSPTLVEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry describes an LSP current stored in the system."
        INDEX {  isisSysInstance,
                 isisLSPLevel,
                 isisLSPID,
                 isisLSPTLVIndex }
    ::= { isisLSPTLVTable 1 }

    IsisLSPTLVEntry ::=
        SEQUENCE {
            isisLSPTLVIndex
                Unsigned32,
            isisLSPTLVSeq
                Unsigned32,
            isisLSPTLVChecksum
                Unsigned16TC,
            isisLSPTLVType
                Unsigned8TC,
            isisLSPTLVLen
                Unsigned8TC,
            isisLSPTLVValue
                OCTET STRING
        }

    isisLSPTLVIndex OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The index of this TLV in the LSP.  The first TLV has index 1
             and the Nth TLV has an index of N."
    ::= { isisLSPTLVEntry 1 }

    isisLSPTLVSeq OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The sequence number for this LSP."
    ::= { isisLSPTLVEntry 2 }

    isisLSPTLVChecksum OBJECT-TYPE
        SYNTAX Unsigned16TC
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The 16 bit Fletcher Checksum."
    ::= { isisLSPTLVEntry 3 }

    isisLSPTLVType OBJECT-TYPE
        SYNTAX Unsigned8TC
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The Type of this TLV."
    ::= { isisLSPTLVEntry 4 }

    isisLSPTLVLen OBJECT-TYPE
        SYNTAX Unsigned8TC
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The length of this TLV."
    ::= { isisLSPTLVEntry 5 }

    isisLSPTLVValue OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE(0..255))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The value of this TLV."
    ::= { isisLSPTLVEntry 6 }


-- The IS-IS Notification Table

-- The IS-IS Notification Table records fields that are
-- required for notifications

    isisNotificationTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisNotificationEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Objects seen in the most recent notification
             this instance of the IS-IS protocol."
    ::= { isisNotification 1 }

    isisNotificationEntry OBJECT-TYPE
        SYNTAX IsisNotificationEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry defines variables relevant to notifications
             for one instance of the IS-IS protocol."
        INDEX {  isisSysInstance }
    ::= { isisNotificationTable 1 }

    IsisNotificationEntry ::=
       SEQUENCE {
            isisPduLspId
               LinkStatePDUID,
            isisPduFragment
               IsisPDUHeader,
            isisPduFieldLen
               Unsigned8TC,
            isisPduMaxAreaAddress
               Unsigned8TC,
            isisPduProtocolVersion
               Unsigned8TC,
            isisPduLspSize
               Integer32,
            isisPduOriginatingBufferSize
               Unsigned16TC,
            isisPduProtocolsSupported
               OCTET STRING,
            isisAdjState
               INTEGER,
            isisPduRemoteRouterID
               Unsigned32
       }

    isisPduLspId OBJECT-TYPE
        SYNTAX LinkStatePDUID
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "An Octet String that uniquely identifies
             a Link State PDU."
    ::= { isisNotificationEntry 1 }

    isisPduFragment OBJECT-TYPE
        SYNTAX IsisPDUHeader
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "Holds up to the first 64 bytes of a PDU that
             triggered the notification."
    ::= { isisNotificationEntry 2 }

    isisPduFieldLen OBJECT-TYPE
        SYNTAX Unsigned8TC
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "Holds the System ID length reported in PDU we received."
    ::= { isisNotificationEntry 3 }

    isisPduMaxAreaAddress OBJECT-TYPE
        SYNTAX Unsigned8TC
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "Holds the Max Area Addresses reported in a PDU we received."
    ::= { isisNotificationEntry 4 }

    isisPduProtocolVersion OBJECT-TYPE
        SYNTAX Unsigned8TC
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "Holds the Protocol version reported in PDU we received."
    ::= { isisNotificationEntry 5 }


    isisPduLspSize OBJECT-TYPE
        SYNTAX Integer32 (0..2147483647)
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "Holds the size of LSP we received that is too
             big to forward."
    ::= { isisNotificationEntry 6 }

    isisPduOriginatingBufferSize OBJECT-TYPE
        SYNTAX Unsigned16TC (0..16000)
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "Holds the size of isisSysOrigLSPBuffSize
             advertised by peer in TLV."
    ::= { isisNotificationEntry 7 }

    isisPduProtocolsSupported OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE(0..255))
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The list of protocols supported by an
             adjacent system.  This may be empty."
    ::= { isisNotificationEntry 8 }

    isisAdjState OBJECT-TYPE
        SYNTAX INTEGER
            {
                 down (1),
                 initializing (2),
                 up (3),
                 failed(4)
            }
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The current state of an adjacency."
    ::= { isisNotificationEntry 9 }

    isisPduRemoteRouterID OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The Router ID of a remote system.
             If not known, we set this to 0."
    ::= { isisNotificationEntry 10 }

-- Type definitions

isisTrapPrefix        OBJECT IDENTIFIER ::= { isisNotifications 0 }

    isisDatabaseOverload NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisSysLevelOverloadState
        }
        STATUS current
        DESCRIPTION
            "This notification is generated when the system
             enters or leaves the Overload state.  The number
             of times this has be generated and cleared is kept
             track of by isisSysStatLSPDbaseOloads."
    ::= { isisTrapPrefix 1 }

    isisManualAddressDrops NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisManAreaAddrExistState
        }
        STATUS current
        DESCRIPTION
            "This notification is generated when one of the
             manual areaAddresses assigned to this system is
             ignored when computing routes.  The object
             isisManAreaAddrExistState describes the area that
             has been dropped.

             The number of times this event has been generated
             is counted by isisSysManAddrDropFromAreas.

             This notification is edge triggered, and should not
             be regenerated until an address that was used in
             the previous computation has been dropped."

    ::= { isisTrapPrefix 2 }

    isisCorruptedLSPDetected NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisPduLspId
        }
        STATUS current
        DESCRIPTION
            "This notification is generated when we find that
             an LSP that was stored in memory has become
             corrupted.  The number of times this has been
             generated is counted by isisSysCorrLSPs.

             We forward an LSP ID.  We may have independent
             knowledge of the ID, but in some implementations
             there is a chance that the ID itself will be
             corrupted."

    ::= { isisTrapPrefix 3 }

    isisAttemptToExceedMaxSequence NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisPduLspId
        }
        STATUS current
        DESCRIPTION
            "When the sequence number on an LSP we generate
             wraps the 32 bit sequence counter, we purge and
             wait to re-announce this information.  This
             notification describes that event.  Since these
             should not be generated rapidly, we generate
             an event each time this happens.

             While the first 6 bytes of the LSPID are ours,
             the other two contain useful information."

    ::= { isisTrapPrefix 4 }

    isisIDLenMismatch  NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisPduFieldLen,
            isisCircIfIndex,
            isisPduFragment,
            ifName
        }
        STATUS current
        DESCRIPTION
            "A notification sent when we receive a PDU
             with a different value of the System ID Length.
             This notification includes the an index to identify
             the circuit where we saw the PDU and the header of
             the PDU which may help a network manager identify
             the source of the confusion.

             This should be an edge-triggered notification.
             We should not send a second notification about
             PDUs received from what seem to be the same source.
             This decision is up to the agent to make, and may
             be based on the circuit or on some MAC level
             information."

    ::= { isisTrapPrefix 5 }

    isisMaxAreaAddressesMismatch NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisPduMaxAreaAddress,
            isisCircIfIndex,
            isisPduFragment,
            ifName
        }
        STATUS current
        DESCRIPTION
            "A notification sent when we receive a PDU
             with a different value of the Maximum Area
             Addresses.  This notification includes the
             header of the packet, which may help a
             network manager identify the source of the
             confusion.

             This should be an edge-triggered notification.
             We should not send a second notification about
             PDUs received from what seem to be the same source."

    ::= { isisTrapPrefix 6 }

    isisOwnLSPPurge NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisCircIfIndex,
            isisPduLspId,
            isisPduRemoteRouterID,
            ifName
        }
        STATUS current
        DESCRIPTION
            "A notification sent when we receive a PDU
             with our systemID and zero age.  This
             notification includes the circuit Index
             and router ID from the LSP, if available,
             which may help a network manager
             identify the source of the confusion."

    ::= { isisTrapPrefix 7 }

    isisSequenceNumberSkip NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisCircIfIndex,
            isisPduLspId,
            ifName
        }
        STATUS current
        DESCRIPTION
            "When we receive an LSP with out System ID
             and different contents, we may need to reissue
             the LSP with a higher sequence number.

             We send this notification if we need to increase
             the sequence number by more than one.  If two
             Intermediate Systems are configured with the same
             System ID, this notification will fire."

    ::= { isisTrapPrefix 8 }

    isisAuthenticationTypeFailure NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisCircIfIndex,
            isisPduFragment,
            ifName
        }
        STATUS current
        DESCRIPTION
            "A notification sent when we receive a PDU
             with the wrong authentication type field.
             This notification includes the header of the
             packet, which may help a network manager
             identify the source of the confusion.

             This should be an edge-triggered notification.
             We should not send a second notification about
             PDUs received from what seem to be the same source."

    ::= { isisTrapPrefix 9 }

    isisAuthenticationFailure NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisCircIfIndex,
            isisPduFragment,
            ifName
        }
        STATUS current
        DESCRIPTION
            "A notification sent when we receive a PDU
             with incorrect authentication information
             field.  This notification includes the header
             of the packet, which may help a network manager
             identify the source of the confusion.

             This should be an edge-triggered notification.
             We should not send a second notification about
             PDUs received from what seem to be the same source."

    ::= { isisTrapPrefix 10 }

    isisVersionSkew NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisCircIfIndex,
            isisPduProtocolVersion,
            isisPduFragment,
            ifName
        }
        STATUS current
        DESCRIPTION
            "A notification sent when we receive a Hello
             PDU from an IS running a different version
             of the protocol. This notification includes
             the header of the packet, which may help a
             network manager identify the source of the
             confusion.

             This should be an edge-triggered notification.
             We should not send a second notification about
             PDUs received from what seem to be the same source.
             This decision is up to the agent to make, and may
             be based on the circuit or on some MAC level
             information."

    ::= { isisTrapPrefix 11 }

    isisAreaMismatch NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisCircIfIndex,
            isisPduFragment,
            ifName
        }
        STATUS current
        DESCRIPTION
            "A notification sent when we receive a Hello
             PDU from an IS which does not share any
             area address. This notification includes
             the header of the packet, which may help a
             network manager identify the source of the
             confusion.

             This should be an edge-triggered notification.
             We should not send a second notification about
             PDUs received from what seem to be the same source.
             This decision is up to the agent to make, and may
             be based on the circuit or on some MAC level
             information."

    ::= { isisTrapPrefix 12 }

    isisRejectedAdjacency NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisCircIfIndex,
            isisPduFragment,
            ifName
        }
        STATUS current
        DESCRIPTION
            "A notification sent when we receive a Hello
             PDU from an IS, but do not establish an
             adjacency for some reason.

             This should be an edge-triggered notification.
             We should not send a second notification about
             PDUs received from the same source."

    ::= { isisTrapPrefix 13 }

    isisLSPTooLargeToPropagate NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisCircIfIndex,
            isisPduLspSize,
            isisPduLspId
        }
        STATUS current
        DESCRIPTION
            "A notification sent when we attempt to propagate
             an LSP which is larger than the dataLinkBlockSize
             for the circuit.
             This should be an edge-triggered notification.
             We should not send a second notification about
             PDUs received from the same source."

    ::= { isisTrapPrefix 14 }

    isisOrigLSPBuffSizeMismatch NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisCircIfIndex,
            isisPduLspId,
            isisPduOriginatingBufferSize,
            ifName
        }
        STATUS current
        DESCRIPTION
            "A notification sent when a Level 1 LSP or Level
             2 LSP is received which is larger than the local
             value for isisOriginatingBufferSize, or when an
             LSP is received containing the isisOriginatingBufferSize
             option and the value in the PDU option field does
             not match the local value for isisOriginatingBufferSize.
             We pass up the size from the option field or the
             size of the LSP that exceeds our configuration.

             This should be an edge-triggered notification.
             We should not send a second notification about
             PDUs received from the same source."

    ::= { isisTrapPrefix 15 }

    isisProtocolsSupportedMismatch NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisCircIfIndex,
            isisPduProtocolsSupported,
            isisPduLspId,
            isisPduFragment,
            ifName
        }
        STATUS current
        DESCRIPTION
            "A notification sent when a non-pseudonode
             segment 0 LSP is received that has no matching
             protocols supported.
             This may be because the system does not generate
             the field, or because there are no common elements.
             The list of protocols supported should be included
             in the notification: it may be empty if the TLV
             is not supported, or if the TLV is empty.

             This should be an edge-triggered notification.
             We should not send a second notification about
             PDUs received from the same source."

    ::= { isisTrapPrefix 16 }

    isisAdjacencyChange NOTIFICATION-TYPE
        OBJECTS {
            isisSysInstance,
            isisSysLevelIndex,
            isisCircIfIndex,
            isisPduLspId,
            isisAdjState
        }
        STATUS current
        DESCRIPTION
            "A notification sent when an adjacency changes
             state, entering or leaving state up.
             The first 6 bytes of the isisPduLspId are the
             SystemID of the adjacent IS.
             The isisAdjState is the new state of the adjacency."

    ::= { isisTrapPrefix 17 }


-- Agent Conformance Definitions
-- We define the objects a conformant agent must define

isisGroups      OBJECT IDENTIFIER ::= { isisConformance 1 }
isisCompliances OBJECT IDENTIFIER ::= { isisConformance 2 }

-- compliance statements

    isisCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
            "The compliance statement for agents that support
             the IS-IS MIB"
        MODULE -- this module
            MANDATORY-GROUPS {
                    isisSystemGroup,
                    isisCircuitGroup,
                    isisISAdjGroup,
                    isisNotificationObjectGroup,
                    isisNotificationGroup
        }
    ::= { isisCompliances 1 }

    -- List of all groups, manditory and optional
    isisAdvancedCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
            "The compliance statement for agents that support
             the IS-IS MIB"
        MODULE -- this module
            MANDATORY-GROUPS {
                    isisSystemGroup,
                    isisCircuitGroup,
                    isisISAdjGroup,
                    isisNotificationObjectGroup,
                    isisNotificationGroup,
                    isisISPDUCounterGroup,
                    isisRATableGroup,
                    isisISIPRADestGroup,
                    isisLSPGroup
        }
    ::= { isisCompliances 2 }

-- MIB Grouping

    isisSystemGroup OBJECT-GROUP
        OBJECTS {
            isisSysVersion,
            isisSysType,
            isisSysID,
            isisSysMaxPathSplits,
            isisSysMaxLSPGenInt,
            isisSysPollESHelloRate,
            isisSysWaitTime,
            isisSysAdminState,
            isisSysLogAdjacencyChanges,
            isisSysNextCircIndex,
            isisSysExistState,
            isisSysL2toL1Leaking,
            isisSysMaxAge,
            isisSysLevelOrigLSPBuffSize,
            isisSysLevelMinLSPGenInt,
            isisSysLevelOverloadState,
            isisSysLevelSetOverload,
            isisSysLevelSetOverloadUntil,
            isisSysLevelMetricStyle,
            isisSysLevelSPFConsiders,
            isisSysLevelTEEnabled,
            isisSysReceiveLSPBufferSize,
            isisManAreaAddrExistState,
            isisAreaAddr,
            isisSysProtSuppExistState,
            isisSummAddrExistState,
            isisSummAddrMetric,
            isisSummAddrFullMetric,
            isisRedistributeAddrExistState,
            isisRouterHostName,
            isisRouterID,
            isisSysStatCorrLSPs,
            isisSysStatLSPDbaseOloads,
            isisSysStatManAddrDropFromAreas,
            isisSysStatAttmptToExMaxSeqNums,
            isisSysStatSeqNumSkips,
            isisSysStatOwnLSPPurges,
            isisSysStatIDFieldLenMismatches,
            isisSysStatMaxAreaAddrMismatches,
            isisSysStatPartChanges,
            isisSysStatSPFRuns,
            isisSysStatAuthTypeFails,
            isisSysStatAuthFails
        }
        STATUS current
        DESCRIPTION
            "The collections of objects used to manage an IS-IS router."
    ::= { isisGroups 1 }

    isisCircuitGroup OBJECT-GROUP
        OBJECTS {
            isisCircIfSubIndex,
            isisCircAdminState,
            isisCircExistState,
            isisCircType,
            isisCircExtDomain,
            isisCircAdjChanges,
            isisCircNumAdj,
            isisCircInitFails,
            isisCircRejAdjs,
            isisCircIDFieldLenMismatches,
            isisCircMaxAreaAddrMismatches,
            isisCircAuthTypeFails,
            isisCircAuthFails,
            isisCircLANDesISChanges,
            isisCircLevel,
            isisCircPassiveCircuit,
            isisCircMeshGroupEnabled,
            isisCircMeshGroup,
            isisCircSmallHellos,
            isisCircLastUpTime,
            isisCirc3WayEnabled,
            isisCircExtendedCircID,
            isisCircIfIndex,
            isisCircLevelMetric,
            isisCircLevelWideMetric,
            isisCircLevelISPriority,
            isisCircLevelIDOctet,
            isisCircLevelID,
            isisCircLevelDesIS,
            isisCircLevelHelloMultiplier,
            isisCircLevelHelloTimer,
            isisCircLevelDRHelloTimer,
            isisCircLevelLSPThrottle,
            isisCircLevelMinLSPRetransInt,
            isisCircLevelCSNPInterval,
            isisCircLevelPartSNPInterval
        }
        STATUS current
        DESCRIPTION
            "The collection of objects used to describe in IS-IS Circuit."
    ::= { isisGroups 2 }


    isisISAdjGroup OBJECT-GROUP
        OBJECTS {
            isisISAdjState,
            isisISAdj3WayState,
            isisISAdjNeighSNPAAddress,
            isisISAdjNeighSysType,
            isisISAdjNeighSysID,
            isisISAdjNbrExtendedCircID,
            isisISAdjUsage,
            isisISAdjHoldTimer,
            isisISAdjNeighPriority,
            isisISAdjLastUpTime,
            isisISAdjAreaAddress,
            isisISAdjIPAddressType,
            isisISAdjIPAddress,
            isisISAdjProtSuppProtocol
        }
        STATUS current
        DESCRIPTION
            "The collections of objects used to manage an IS-IS Adjacency."
    ::= { isisGroups 3 }


    isisNotificationObjectGroup OBJECT-GROUP
        OBJECTS {
            isisPduLspId,
            isisPduFragment,
            isisPduFieldLen,
            isisPduMaxAreaAddress,
            isisPduProtocolVersion,
            isisPduLspSize,
            isisPduOriginatingBufferSize,
            isisPduProtocolsSupported,
            isisAdjState,
            isisPduRemoteRouterID
        }
        STATUS current
        DESCRIPTION
            "The objects used to record notification parameters."
    ::= { isisGroups 4 }


    isisNotificationGroup        NOTIFICATION-GROUP
        NOTIFICATIONS {
            isisDatabaseOverload,
            isisManualAddressDrops,
            isisCorruptedLSPDetected,
            isisAttemptToExceedMaxSequence,
            isisIDLenMismatch,
            isisMaxAreaAddressesMismatch,
            isisOwnLSPPurge,
            isisSequenceNumberSkip,
            isisAuthenticationTypeFailure,
            isisAuthenticationFailure,
            isisVersionSkew,
            isisAreaMismatch,
            isisRejectedAdjacency,
            isisLSPTooLargeToPropagate,
            isisOrigLSPBuffSizeMismatch,
            isisProtocolsSupportedMismatch,
            isisAdjacencyChange
        }
        STATUS current
        DESCRIPTION
            "The collections of notifications sent by an IS."
    ::= { isisGroups 5 }


    isisISPDUCounterGroup OBJECT-GROUP
        OBJECTS {
            isisPacketCountIIHello,
            isisPacketCountISHello,
            isisPacketCountESHello,
            isisPacketCountLSP,
            isisPacketCountCSNP,
            isisPacketCountPSNP,
            isisPacketCountUnknown
        }
        STATUS current
        DESCRIPTION
            "The collections of objects used to count protocol PDUs."
    ::= { isisGroups 6 }


    isisRATableGroup OBJECT-GROUP
        OBJECTS {
            isisRAExistState,
            isisRAAdminState,
            isisRAAddrPrefix,
            isisRAMapType,
            isisRAMetric,
            isisRAMetricType,
            isisRASNPAAddress,
            isisRASNPAMask,
            isisRASNPAPrefix,
            isisRAType
        }
        STATUS current
        DESCRIPTION
            "The collections of objects used to manage the
             reachable NSAP prefixes."
    ::= { isisGroups 7 }


    isisISIPRADestGroup OBJECT-GROUP
        OBJECTS {
            isisIPRANextHopType,
            isisIPRANextHop,
            isisIPRAType,
            isisIPRAExistState,
            isisIPRAAdminState,
            isisIPRAMetric,
            isisIPRAFullMetric,
            isisIPRAMetricType,
            isisIPRASNPAAddress,
            isisIPRASourceType
        }
        STATUS current
        DESCRIPTION
            "The collections of objects used to manage configured
             IP addresses."
    ::= { isisGroups 8 }

    isisLSPGroup OBJECT-GROUP
        OBJECTS {
            isisLSPSeq,
            isisLSPZeroLife,
            isisLSPChecksum,
            isisLSPLifetimeRemain,
            isisLSPPDULength,
            isisLSPAttributes,
            isisLSPTLVSeq,
            isisLSPTLVChecksum,
            isisLSPTLVType,
            isisLSPTLVLen,
            isisLSPTLVValue
        }
        STATUS current
        DESCRIPTION
            "The collections of objects used to observe the LSP
             Data Base."
    ::= { isisGroups 9 }

END







