DC-ISIS-MIB DEFINITIONS ::= BEGIN

-- PRODUCT-SHORT-NAME isis

     IMPORTS
        TEXTUAL-CONVENTION, DisplayString, RowStatus, TruthValue
                FROM SNMPv2-TC
        MODULE-IDENTITY, OBJECT-TYPE, enterprises, Integer32, Unsigned32,
            Counter32, TimeTicks, NOTIFICATION-TYPE, Gauge32
                FROM SNMPv2-SMI
        MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
                FROM SNMPv2-CONF
        SnmpAdminString
                FROM SNMP-FRAMEWORK-MIB
        InterfaceIndex
                FROM IF-MIB
        InetAddressType, InetAddress, InetAddressPrefixLength,
            InetAddressIPv4, InetAddressIPv6
                FROM INET-ADDRESS-MIB
        AuthUserDataString, EntityIndexOrZero, IgpShortcutMetricType,
        IfOperStatus, NumericIndex
                FROM DC-MASTER-TC;

  dcIsisMib MODULE-IDENTITY
      LAST-UPDATED "201412210000Z"  -- December 21, 2014
      ORGANIZATION "MRV Communications."
      CONTACT-INFO
                   "For technical support, please contact your service channel"
      DESCRIPTION  "The MIB module for management of the DC-ISIS product.
                    This is closely based on the draft standard MIB
                    draft-ietf-isis-wg-mib-16."
    -- Revision history
      REVISION     "201412210000Z"  -- December 21, 2014
      DESCRIPTION
        "Initial edition."
  ::= { opx 10 }

nbase                      OBJECT IDENTIFIER ::= { enterprises 629 }
opx                      OBJECT IDENTIFIER ::= { nbase 10 }

-- Top-level structure of the MIB

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

-- OBJECT IDENTIFIER definitions

-- System wide attributes.
isisSystem OBJECT IDENTIFIER ::= { isisObjects 1 }

-- Attributes associated with the domain or with the area.
isisSysLevel OBJECT IDENTIFIER ::= { isisObjects 2 }

-- Attributes associated with one Circuit
isisCirc OBJECT IDENTIFIER ::= { isisObjects 3 }

-- Attributes associated with area or domain relevant within a Circuit.
isisCircLevelValues OBJECT IDENTIFIER ::= { isisObjects 4 }

-- System and circuit counters.
isisCounters OBJECT IDENTIFIER ::= { isisObjects 5 }

-- Attributes associated with an adjacent Protocol Peer.
isisISAdj OBJECT IDENTIFIER ::= { isisObjects 6 }


-- Attributes associated with a configured address.
isisReachAddr OBJECT IDENTIFIER ::= { isisObjects 7 }

-- Attributes associated with IP routes learned by
-- configuration or through another protocol.
isisIPReachAddr OBJECT IDENTIFIER ::= { isisObjects 8 }

-- The collection of Link State PDUs known to the Intermediate System
isisLSPDataBase OBJECT IDENTIFIER ::= { isisObjects 9 }

-- Objects included in Notifications.
isisNotification OBJECT IDENTIFIER ::= { isisObjects 10 }

-- DC addition

-- Objects specific to the PM component of DC-ISIS.
isisPmObjects OBJECT IDENTIFIER ::= { isisObjects 11 }

-- Objects specific to the SDC component of DC-ISIS.
isisSdObjects OBJECT IDENTIFIER ::= { isisObjects 12 }

-- End of DC addition

-- 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(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)
            }

    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 (1..16777215)

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

    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
            }

    IsisAdjLevel ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "Identifies one or more levels."
        SYNTAX INTEGER
            {
-- DC addition
                reserved (0),
-- End of DC addition
                level1(1),
                level2(2),
                level1and2(3)
            }

    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(0|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)

-- DC addition

    IsisAdminStatus ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
           "The desired administrative state of a DC-ISIS entity."
        SYNTAX INTEGER {
                adminStatusUp(1),
                adminStatusDown(2)
            }

    IsisOperStatus ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
           "The current operational state of a DC-ISIS entity."
        SYNTAX INTEGER {
                operStatusUp(1),       -- active
                operStatusDown(2),     -- inactive
                operStatusGoingUp(3),  -- activating
                operStatusGoingDown(4),-- deactivating
                operStatusActFailed(5) -- activation failed
            }

    IsisMjStatus ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION "The status of a Master Join."
        SYNTAX INTEGER {
                mjNotJoined(1),        -- initial state of join
                mjSentAddJoin(2),      -- sent ATG_FT_ADD_JOIN to slave
                mjSentRegister(3),     -- sent registration signal to
                                       -- slave
                mjJoinActive(4),       -- join is active
                mjSentDelJoin(5),      -- sent ATG_FT_DELETE_JOIN to
                                       -- slave
                mjSentUnregister(6),   -- sent unregistration signal to
                                       -- slave
                mjJoinGone(7),         -- join has been deleted
                mjFailedToRegister(8), -- slave rejected registration
                                       -- message
                mjFailingOver(9),      -- slave is failing over
                mjFailed(10)           -- join has permanently failed
            }

    IsisSjStatus ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION "The status of a Slave Join."
        SYNTAX INTEGER {
                sjNotJoined(1),    -- initial state of join
                sjJoined(2),       -- master has sent an ATG_FT_ADD_JOIN
                sjJoinActive(3),   -- master has registered the join
                sjJoinUnreg(4),    -- master has unregistered the join
                sjJoinGone(5),     -- master has deleted the join
                sjFailingOver(6),  -- master is failing over
                sjFailed(7)        -- join has permanently failed
            }

    IsisPmInterfaceId ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION "The type of interface to which a PM join applies."
        SYNTAX INTEGER {
                ifInterfaceInfo(1),  -- Interface Information Interface
                ifRtProtoInput(2),   -- Routing Protocol Input Interface
                ifCSPF(3),           -- CSPF Interface
                ifSDC(4)             -- Subnetwork Dependent Interface
            }

    IsisSdInterfaceId ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION "The type of interface to which an SD join applies."
        SYNTAX INTEGER {
                ifDataLink(1),                -- Data Link Interface
                ifSubnetDependent(2),         -- Subnetwork Dependent Interface
                ifBidirectionalForwarding(3)  -- Bidirectional Forwarding
                                              -- Detection Interface (BFDI)
            }

    IsisSdEntityType ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION "The type of entity to which an SDC Subnetwork
                     Dependent join applies."
        SYNTAX INTEGER {
                ifProtocolManager(1),  -- IS-IS Protocol Manager
                ifPDUInjectionTool(2)  -- Sample PDU Injection Tool
                                       -- (SPIT)
            }

    IsisAddrType ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION "The type of address used on an RPI join."
        SYNTAX INTEGER {
                none(0),               -- No address type specified
                ipv4(1),               -- IPv4 address
                ipv6(2),               -- IPv6 address
                nsap(3),               -- NSAP address
                ipx(4)                 -- IPX address
            }

    IsisAddrTypeBits ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION "The type of address supported."
        SYNTAX BITS {
                ipv4(1),               -- IPv4 address
                ipv6(2)                -- IPv6 address
               }

    IsisSysRestartType ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION "The type of restart procedures to follow
                     when DC-ISIS activates."
        SYNTAX INTEGER {
                none(0),        -- Standard activation
                start(1),       -- Follow the starting node procedures
                                -- from the IS-IS restart signalling
                                -- specification
                restart(2)      -- Follow the restarting node procedures
                                -- from the IS-IS restart signalling
                                -- specification
            }

-- End of DC addition

-- 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."


-- OBJECT-TYPE definitions

  isisSysTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME isis_sys
      SYNTAX SEQUENCE OF IsisSysEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
          "The set of instances 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
              Integer32,
          isisSysVersion
              INTEGER,
          isisSysType
              INTEGER,
          isisSysID
              SystemID,
          isisSysMaxPathSplits
              Integer32,
          isisSysMaxLSPGenInt
              Integer32,
          isisSysPollESHelloRate
              Unsigned16TC,
          isisSysWaitTime
              Unsigned16TC,
          isisSysAdminState
              AdminState,
          isisSysL2toL1Leaking
              TruthValue,
          isisSysMaxAge
              Unsigned16TC,
          isisSysReceiveLSPBufferSize
              Unsigned16TC,
-- DC addition
          isisSysExistState
              RowStatus,
          isisSysOperStatus
              IsisOperStatus,
          isisSysAllowAutoI3Config
              TruthValue,
          isisSysCalcMaxDelay
              Unsigned32,
          isisSysCalcThrshUpdStart
              Unsigned32,
          isisSysCalcThrshUpdRestart
              Unsigned32,
          isisSysCalcThrshRestartLimit
              Unsigned32,
          isisSysCalcPauseFreq
              Unsigned32,
          isisSysCheckChecksums
              Unsigned32,
          isisSysZeroAgeLifetime
              Integer32,
          isisSysNumUpdPending
              Gauge32,
          isisSysNumUpdMerged
              Counter32,
          isisSysNumCksumsPending
              Gauge32,
          isisSysTEMetricPcntge
              Integer32,
          isisSysMaxBwidthPcntge
              Integer32,
          isisSysMaxResBwidthPcntge
              Integer32,
          isisSysUnresBwidthPcntge
              Integer32,
          isisSysMaxLSPBwidthPcntge
              Integer32,
          isisSysMinLSPBwidthPcntge
              Integer32,
          isisSysMTUSizePcntge
              Integer32,
          isisSysTERouterID
              InetAddressIPv4,
          isisSysIPv6TERouterID
              InetAddressIPv6,
          isisSysMaxExternalRoutes
              Unsigned32,
          isisSysMaxExternalRoutesAction
              INTEGER,
          isisSysLspFullSuppress
              INTEGER,
          isisSysLspFullSetDBOL
              TruthValue,
          isisSysRestartHelpPeer
              TruthValue,
          isisSysRestartActivationType
              IsisSysRestartType,
          isisSysRestartAutoResetType
              IsisSysRestartType,
          isisSysRestartAdjacencyWait
              Integer32,
          isisSysMaxRecoveryTime
              Integer32,
          isisSysClearStats
              TruthValue,
          isisSysSetAttached
              INTEGER,
          isisSysProtSupported
              IsisAddrTypeBits,
          isisSysRestrictLanAdjsToSubnet
              TruthValue,
          isisSysHostName
              SnmpAdminString,
          isisSysCalcSoonAfterCircChange
              TruthValue,
          isisSysSendNotifications
              BITS,
          isisSysEnableIgpShortcut
              TruthValue,
          isisSysI3EntityIndex
              NumericIndex,
          isisSysRtmPurgeTime
              Integer32
-- End of DC addition
      }

    isisSysInstance OBJECT-TYPE
        SYNTAX Integer32 (1..2147483647)
        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 INTEGER
            {
                unknown(0),
                one(1)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The version number of the IS-IS protocol that
             is implemented."
        REFERENCE "{ISIS.aoi version (1)}"
        DEFVAL { one }
    ::= { isisSysEntry 2 }

    isisSysType OBJECT-TYPE
        SYNTAX INTEGER
            {
-- DC addition
                reserved (0),
-- End of DC addition
                level1IS (1),
                level2IS (2),
                level1L2IS (3)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "At which levels is the Intermediate System
             running? 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.

             For the DC-ISIS implementation, this field is set through
             the MIB.  This object follows the replaceOnlyWhileDisabled
             behavior."
        REFERENCE "{ISIS.aoi systemId (119)}"
    ::= { isisSysEntry 4 }

    isisSysMaxPathSplits OBJECT-TYPE
        SYNTAX Integer32 (1..32)
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Maximum number of paths with equal routing metric value
             which it is permitted to split between.

             Note that, when IGP shortcut interfaces are in use, this
             maximum applies individually to IGP shortcut paths and
             non-IGP shortcut paths.  That is, there may be a total of
             2 * isisSysMaxPathSplits paths for a single route.

             This object follows the replaceOnlyWhileDisabled behavior."
        REFERENCE "{ISIS.aoi maximumPathSplits (3)}"
        DEFVAL { 2 }
    ::= { isisSysEntry 5 }

    isisSysMaxLSPGenInt OBJECT-TYPE
        SYNTAX Integer32 (1..65235)
        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.  The value must be
             greater than any value configured for
             isisSysLevelMinLSPGenInt, and should be at least 300
             seconds less than isisSysMaxAge.

             Note that this value is specified in seconds whereas
             isisSysLevelMinLSPGenInt is specified in milliseconds."
        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 }

    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 10 }

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

    isisSysReceiveLSPBufferSize OBJECT-TYPE
        SYNTAX Unsigned16TC (1492..16000)
        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 12 }

  -- DC addition

    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 13 }

    isisSysOperStatus OBJECT-TYPE
        SYNTAX IsisOperStatus
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The current operational status of this instance of the
             Protocol Manager component of DC-ISIS.

             Note that DC-ISIS can only activate if there is at least
             one active entry in the isisManAreaAddrTable."
    ::= { isisSysEntry 14 }

    isisSysAllowAutoI3Config OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "If 'true' then add IP addresses received from the I3 stub
             to the isisCircIPAddrTable with admin state 'on'.  If
             'false' then add them with admin state 'off'.  This field
             follows the replaceOnlyWhileDisabled behavior."
        DEFVAL { true }
    ::= { isisSysEntry 15 }

    isisSysCalcMaxDelay OBJECT-TYPE
        SYNTAX Unsigned32
        UNITS "milliseconds"
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The maximum delay before the Routing Table is
             recalculated following a change to the Link State
             Database.  (Recalculation is delayed to reduce the
             frequency of recalculations of the Routing Table).

             This parameter has units of milliseconds.  A value of
             0 indicates that a routing calculation will
             immediately follow an update to the database."
         DEFVAL { 5000 }
    ::= { isisSysEntry 16 }

    isisSysCalcThrshUpdStart OBJECT-TYPE
        SYNTAX Unsigned32 (0..'FFFFFFFF'H)
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "This parameter can be used to override the routing
             calculation delay indicated by the isisSysCalcMaxDelay
             parameter when the number of updates to the Link State
             Database reaches a threshold value.

             This parameter specifies the threshold number of updates
             that can be made to the Link State Database such that any
             subsequent update to the database causes a full routing
             calculation to start immediately.

             - 0 indicates that a routing calculation will immediately
               follow an update to the database.

             - 0xFFFFFFFF indicates that this threshold is infinite, and
               hence the timing of a routing calculation is determined
               solely by the configured calculation delay."
         DEFVAL { 4294967295 }
    ::= { isisSysEntry 17 }

    isisSysCalcThrshUpdRestart OBJECT-TYPE
        SYNTAX Unsigned32 (0..'FFFFFFFF'H)
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "This parameter can be used to interrupt a full routing
             calculation when the number of pending updates to the Link
             State Database has reached a threshold value.

             This parameter specifies the threshold number of updates
             that can be made to the Link State Database such that any
             subsequent update to the database causes the current
             routing  calculation to be interrupted, and a new
             calculation to start using an up to date Link State
             Database.

             - 0 indicates that an update to the Link State Database
               will cause any current routing calculation to be
               interrupted and a new one to start.

             - 0xFFFFFFFF indicates that this threshold is infinite, and
               hence no number of pending updates to the database will
               cause a routing calculation to be interrupted."
         DEFVAL { 4294967295 }
    ::= { isisSysEntry 18 }

    isisSysCalcThrshRestartLimit OBJECT-TYPE
        SYNTAX Unsigned32 (1..'FFFFFFFF'H)
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "This parameter limits the number of consecutive times a
             routing calculation can be interrupted by new updates.
             This guarantees that the routing calculation will actually
             complete.

             - 1 indicates that once a calculation has been interrupted
               once, it will not be interrupted again.

             - 0xFFFFFFFF indicates that the calculation can always be
               interrupted."
         DEFVAL { 10 }
    ::= { isisSysEntry 19 }

    isisSysCalcPauseFreq OBJECT-TYPE
        SYNTAX Unsigned32 (0..'FFFFFFFF'H)
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "This value determines how regularly a Routing Calculation
             is paused.  It is measured in points.  The points scale
             roughly maps to a time scale, so that the larger this value
             is, the longer the Routing Calculation runs before pausing.
             See the DC-ISIS Configuration and Management Interface
             Specification for more information on how to set this
             parameter.

             - 0 indicates that the routing calculation is paused after
               every calculation step.

             - 0xFFFFFFFF indicates that the Routing Calculation is
               never paused."
         DEFVAL { 10000 }
    ::= { isisSysEntry 20 }

    isisSysCheckChecksums OBJECT-TYPE
        SYNTAX Unsigned32
        UNITS "seconds"
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "This value determines how often the checksums of LSPs in
             the Link State Database are checked.  If 0, no checksums
             in the database are checked."
         DEFVAL { 900 }
    ::= { isisSysEntry 21 }

    isisSysZeroAgeLifetime OBJECT-TYPE
        SYNTAX Integer32
        UNITS "seconds"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "This is the minimum amount of time in seconds for which the
             header of an expired LSP shall be retained after it has
             been flooded with zero Remaining Lifetime.  All that is
             required is that the header be retained until the zero
             Remaining Lifetime LSP has been safely propagated to all
             the neighbors."
        DEFVAL { 60 }
    ::= { isisSysEntry 22 }

    isisSysNumUpdPending OBJECT-TYPE
        SYNTAX Gauge32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
            "The number of updates that are pending addition to the Link
             State Database."
    ::= { isisSysEntry 23 }

    isisSysNumUpdMerged OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
            "The number of updates that have been merged into the Link
             State Database since the last routing calculation."
    ::= { isisSysEntry 24 }

    isisSysNumCksumsPending OBJECT-TYPE
        SYNTAX Gauge32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
            "The number of LSPs in the Link State Database which are now
             due to have their checksum checked."
    ::= { isisSysEntry 25 }

    isisSysTEMetricPcntge OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The Traffic Engineering metric is updated in real-time by
             the I3 Stub.  In order to increase performance and reduce
             network traffic, this parameter determines the minimal
             percentage change of the TE metric that causes a new LSP
             to be originated."
         DEFVAL { 0 }
    ::= { isisSysEntry 26 }

    isisSysMaxBwidthPcntge OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The maximum bandwidth on an interface is updated in
             real-time by the I3 Stub.  In order to increase performance
             and reduce network traffic, this parameter determines the
             minimal percentage change of maximum bandwidth that causes
             a new LSP to be originated."
         DEFVAL { 0 }
    ::= { isisSysEntry 27 }

    isisSysMaxResBwidthPcntge OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The maximum reservable bandwidth on an interface is updated
             in real-time by the I3 Stub.  In order to increase
             performance and reduce network traffic, this parameter
             determines the minimal percentage change of maximum
             reservable bandwidth that causes a new LSP to be
             originated."
         DEFVAL { 0 }
    ::= { isisSysEntry 28 }

    isisSysUnresBwidthPcntge OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The unreserved bandwidth on an interface is updated in
             real-time by the I3 Stub.  In order to increase performance
             and reduce network traffic, this parameter determines the
             minimal percentage change of unreserved bandwidth that
             causes a new LSP to be originated."
         DEFVAL { 0 }
    ::= { isisSysEntry 29 }

    isisSysMaxLSPBwidthPcntge OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The maximum LSP bandwidth for the various switching
             descriptors on an interface is updated in real-time by the
             I3 Stub.  In order to increase performance and reduce
             network traffic, this parameter determines the minimal
             percentage change of maximum LSP bandwidth that causes a
             new LSP to be originated."
        DEFVAL { 0 }
    ::= { isisSysEntry 30 }

    isisSysMinLSPBwidthPcntge OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The minimum LSP bandwidth for the various switching
             descriptors on an interface is updated in real-time by the
             I3 Stub.  In order to increase performance and reduce
             network traffic, this parameter determines the minimal
             percentage change of minmimum LSP bandwidth that causes a
             new LSP to be originated."
        DEFVAL { 0 }
    ::= { isisSysEntry 31 }

    isisSysMTUSizePcntge OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The Maximum Transmission Unit size for the various
             switching descriptors on an interface is updated in
             real-time by the I3 Stub.  In order to increase performance
             and reduce network traffic, this parameter determines the
             minimal percentage change of the Maximum Transmission Unit
             that causes a new LSP to be originated."
        DEFVAL { 0 }
    ::= { isisSysEntry 32 }

    isisSysTERouterID OBJECT-TYPE
        SYNTAX InetAddressIPv4 (SIZE(0|4))
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The Local IPv4 TE Router ID.  This is a single stable IPv4
             address that can always be referenced in a path that will
             be reachable from multiple hops away, regardless of the
             state of the node's interfaces.

             This object must be set if isisSysLevelTEEnabled is 'true'
             at either level, but is otherwise ignored."
    ::= { isisSysEntry 33 }

    isisSysIPv6TERouterID OBJECT-TYPE
        SYNTAX InetAddressIPv6 (SIZE(0|16))
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The Local IPv6 TE Router ID.  This is a single stable IPv6
             global address that can always be referenced in a path that
             will be reachable from multiple hops away, regardless of
             the state of the node's interfaces.

             This object must be set if isisSysLevelIPv6TEEnabled is 'true'
             at level 1, but is otherwise ignored."
    ::= { isisSysEntry 34 }

    isisSysMaxExternalRoutes OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The maximum number of static routes and routes
             redistributed from other protocols that DC-ISIS will
             accept.

             The action that DC-ISIS will take when the maximum is
             exceeded is controlled by isisSysMaxExternalRoutesAction.

             0xFFFFFFFF is a special value indicating that the threshold
             is infinite."
        DEFVAL { 4294967295 }
    ::= { isisSysEntry 35 }

    isisSysMaxExternalRoutesAction OBJECT-TYPE
        SYNTAX INTEGER
            {
                log(1),
                suppressExternal(2)
            }
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The action that DC-ISIS will take when the number of
            external routes exceeds isisSysMaxExternalRoutes.

            If set to 'log', DC-ISIS will alert the administrator by
            logging that the limit has been exceeded.

            If set to 'suppressExternal', DC-ISIS will remove all
            external routes from the local LSP (at all active levels)
            in addition to logging the problem.

            In both cases, the administrator is responsible for
            correcting the configuration in each Address Family Manager
            (for example, DC-RTM), to reduce the number of redistributed
            external routes.

            In the 'suppressExternal' case, the Address Family Manager
            is responsible for resynchronizing the set of routes with
            DC-ISIS."
        DEFVAL { suppressExternal }
    ::= { isisSysEntry 36 }

    isisSysLspFullSuppress OBJECT-TYPE
        SYNTAX INTEGER
            {
                external(1),
                none(2)
            }
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The set of routes (if any) that will be removed from the
             local LSP by DC-ISIS when the local LSP becomes full at
             either level.

             When set to 'external', all static routes and routes
             redistributed from other protocols will be removed from the
             local LSP (at all active levels) when the local LSP is
             full.

             If set to 'none', DC-ISIS will be unable to accept any
             additional configuration that may increase the size of the
             local LSP.

             The system administrator should modify the system
             configuration to reduce the local LSP size - for example,
             by reducing the number of addresses redistributed from
             other routing protocols, or by deleting circuit
             configuration.

             Once this has been done, if isisSysLspFullSuppress is set
             to 'external', the Address Family Manager is responsible
             for resynchronizing the set of routes with  DC-ISIS."
        DEFVAL { external }
    ::= { isisSysEntry 37 }

    isisSysLspFullSetDBOL OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "If set to 'true', DC-ISIS will set the database overload
             flag in the local LSP (at all active levels) when the local
             LSP becomes full (at either level).

             The administrator can clear the database overload flag for
             a level by setting isisSysLevelSetOverload to 'false' for
             that level."
        DEFVAL { true }
    ::= { isisSysEntry 38 }

    isisSysRestartHelpPeer OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "Indicates whether DC-ISIS implements the procedures defined
             in the IS-IS restart RFC (3847) for helping a peer to restart.

             Note that this object has no effect on the local restart
             behavior, and so may be set independently of
             isisSysRestartActivationType and
             isisSysRestartAutoResetType."
        DEFVAL { true }
    ::= { isisSysEntry 39 }

    isisSysRestartActivationType OBJECT-TYPE
        SYNTAX IsisSysRestartType
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "This object is only used when DC-ISIS is manually activated
             or deactivated (in other words, enters or leaves the state
             with row status 'active' and admin status 'on'), and
             indicates which restart procedures (if any) are followed.

             During the activation period, DC-ISIS will use the value
             that was configured at the start of activation.  The value
             may be changed at any time, but the new value will only
             take effect the next time that manual activation takes
             place.

             During deactivation, DC-ISIS will purge the local LSP from
             remote nodes if this object is set to 'none' or 'start'.
             Setting the object to 'restart' before deactivation will
             prevent the local LSP from being purged.

             A planned restart may be initiated by setting
             isisSysAdminState to 'off' and later to 'on'.  Graceful
             restart procedures will only function correctly if the
             local LSP has not been purged, and so to initiate a planned
             restart, isisSysRestartActivationType should be set to
             'restart' before deactivation."
        DEFVAL { start }
    ::= { isisSysEntry 40 }

    isisSysRestartAutoResetType OBJECT-TYPE
        SYNTAX IsisSysRestartType
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "There are cases where the IS-IS protocol requires the local
             node to automatically deactivate and later reactivate.
             This object indicates which restart procedures (if any) are
             followed during such an automatic reset.

             During the activation period, DC-ISIS will use the value
             that was configured at the start of activation.  The value
             may be changed at any time, but the new value will only
             take effect the next time that automatic re-activation
             takes place."
        DEFVAL { start }
    ::= { isisSysEntry 41 }

    isisSysRestartAdjacencyWait OBJECT-TYPE
        SYNTAX Integer32 (1..3600)
        UNITS "seconds"
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "This object is only used when DC-ISIS activates with
             the activation type (isisSysRestartActivationType or
             isisSysRestartAutoResetType) set to 'start' or 'restart'.

             It defines how long DC-ISIS will wait to establish
             adjacencies before completing the start/restart.

             This object follows the resettingTimer behavior."
        DEFVAL { 10 }
    ::= { isisSysEntry 42 }

    isisSysMaxRecoveryTime OBJECT-TYPE
        SYNTAX Integer32 (1..65535)
        UNITS "seconds"
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "This object is only used when DC-ISIS activates with
             the activation type (isisSysRestartActivationType or
             isisSysRestartAutoResetType) set to 'restart'.

             It defines the maximum time that DC-ISIS will take before
             completing restart procedures.

             The value specified puts an upper bound on the duration of
             the T3 timer described in the IS-IS restart RFC (3847).
             The actual duration of the timer is the minimum of the value
             specified and the minimum remaining holding time received
             on an adjacency.

             This object follows the resettingTimer behavior."
        DEFVAL { 65535 }
    ::= { isisSysEntry 43 }

    isisSysClearStats OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Set to 'true' to clear all system statistics, including the
             isisSystemCounter and isisPacketCounter tables.

             Note that isisSysStatsLSPCount is not reset by this object.

             Reading the value of this field has no meaning."
        DEFVAL { false }
    ::= { isisSysEntry 44 }

    isisSysSetAttached OBJECT-TYPE
        SYNTAX INTEGER
            {
                attachNoOverlapOrRedist(1),
                attachNoOverlapOnly(2),
                attachSet(3),
                attachClear(4)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "If DC-ISIS is operating at both level 1 and level 2, this
            field indicates how DC-ISIS should decide whether to set the
            attached bit in its level 1 LSP.

             - 'attachNoOverlapOrRedist' indicates that the attached bit
               should be set if either of the following are true.
               -  The IS can reach at least one other area (the IS is
                  adjacent with a L2 router whose area addresses do not
                  overlap with the area addresses we know about at L1).
               -  The IS is redistributing one or more external routes
                  into the AS.

             - 'attachNoOverlapOnly' indicates that the attached bit
               should be set only if the IS can reach at least one other
               area.
             - 'attachSet' indicates that the attached bit should always
               be set.

             - 'attachClear' indicates that the attached bit should
               never be set."
        DEFVAL { attachNoOverlapOrRedist }
    ::= { isisSysEntry 45 }

    isisSysProtSupported OBJECT-TYPE
        SYNTAX IsisAddrTypeBits
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "This attribute contains the set of protocols supported by
             this Intermediate System."
        DEFVAL { { ipv4 } }
    ::= { isisSysEntry 46 }

    isisSysRestrictLanAdjsToSubnet OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "This object only affects IPv4 broadcast circuits.  If this
             is set to 'true', DC-ISIS will only form adjacencies with
             intermediate systems that are on the same subnet as the
             local circuit.  This object only has effect when the I3
             Stub is used to determine subnet addresses and is ignored
             otherwise."
        DEFVAL { false }
    ::= { isisSysEntry 47 }

    isisSysHostName OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The string that this instance of IS-IS will use as the
             local hostname.

             This is advertised to other Intermediate Systems in the
             Dynamic Hostname TLV."
    ::= { isisSysEntry 48 }

    isisSysCalcSoonAfterCircChange OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Set this object to 'true' to minimize the delay before
             triggering a routing calculation that includes any
             relevant circuit change.  This means a change to the local
             neighbors (including pseudonodes), or to the reachable
             addresses received from the I3 stub.

             There are two aspects to minimizing the delay.

             -  DC-ISIS overrides the setting of the
                isisSysLevelMinLSPGenInt object when such a change
                occurs, and usually regenerates the local LSP(s)
                immediately.  The only exception is when DC-ISIS is
                performing restart procedures as defined in RFC3847.
                This RFC specifies when DC-ISIS can update the local
                LSP during a restart.

             -  DC-ISIS overrides all of the objects that affect the
                scheduling of routing calculations, with the exception
                of the isisSysCalcThrshRestartLimit object.  It ensures
                that a routing calculation including the updated LSPs
                takes place as soon as possible.  It abandons an
                existing route calculation if necessary, unless more
                than isisSysCalcThrshRestartLimit successive
                calculations would have been interrupted."
        DEFVAL { false }
    ::= { isisSysEntry 49 }

    isisSysSendNotifications OBJECT-TYPE
        SYNTAX BITS {
            circuitIndication(0),
            databaseOverload(1),
            manualAreaAddressDrops(2),
            idLengthMismatch(3),
            maxAreaAddressMismatch(4),
            ownLspPurge(5),
            areaMismatch(6),
            rejectedAdjacency(7),
            adjacencyChange(8),
            lspErrorDetected(9),
            attemptToExceedMaxSequence(10),
            sequenceNumberSkip(11),
            extPassCircuitInd(12),
            operStateChange(13),
            disChange(14),
            lspAuthFailure(15),
            helloAuthFailure(16),
            attachStateChange(17)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "This attribute contains the set of notifications generated
             by this Intermediate System.

             The notifications that may be enabled are the
             isisCircIndTable, isisDatabaseOverload,
             isisManualAddressDrops, isisIDLenMismatch,
             isisMaxAreaAddressesMismatch, isisOwnLSPPurge,
             isisAreaMismatch, isisRejectedAdjacency,
             isisAdjacencyChange, isisLSPErrorDetected,
             isisAttemptToExceedMaxSequence, isisSequenceNumberSkip,
             isisDisChange, isisOperStateChange, isisLspAuthFailure,
             isisHelloAuthFailure, isisExtPassCircuitInd and
             isisAttachStateChange notifications."
        DEFVAL { { circuitIndication } }
    ::= { isisSysEntry 50 }

  isisSysEnableIgpShortcut  OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Set isisSysEnableIgpShortcut to 'true' to enable IS-IS
           routing over IGP shortcut interfaces.

           Set isisSysEnableIgpShortcut to 'false' to disable IS-IS
           routing over IGP shortcut interfaces.  IS-IS will ignore
           any interface that is identified as an IGP shortcut."
       DEFVAL { true }
       ::= { isisSysEntry 51 }

  isisSysI3EntityIndex OBJECT-TYPE
       SYNTAX      NumericIndex
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "Identifies the I3 stub instance to which this
           IS-IS instance should join.

           The status of the join is given by the row in the
           isisPmMjTable with isisPmMjInterface equal to
           ifInterfaceInfo.

           Note that IS-IS will not become active unless the join to
           the specified I3 stub is activated successfully.

           This field follows the replaceOnlyWhileDisabled behavior."
       DEFVAL { 1 }
       ::= { isisSysEntry 52 }

    isisSysRtmPurgeTime OBJECT-TYPE
        SYNTAX Integer32 (0..65535)
        UNITS "seconds"
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "This object defines the maximum time that DC-ISIS will
             wait when a Routing Table Manager (such as DC-RTM) fails
             before purging routes.

             In some systems, the Routing Table Manager may restart
             independently of DC-ISIS.  For example, it may be
             administratively deactivated and reactivated, or may be
             distributed to a separate process that can restart independently
             of the DC-ISIS process.  If such a restart does not affect the
             forwarding table, then DC-ISIS should continue to advertise
             routes that it has learnt from the Routing Table Manager.  This
             is achieved by setting isisSysRtmPurgeTime to a value that gives
             the Routing Table Manager sufficient time to restart.

             A value of zero indicates that routes will be purged as soon
             as the join to RTM fails.

             Any change to the configured timer value will take effect
             when the timer is next started.  RTM purge timers that are
             already running will not be affected by the change."
        DEFVAL { 60 }
    ::= { isisSysEntry 53 }

  -- End of DC addition

-- DC addition

-- The MT System table

    isisMtSysTable OBJECT-TYPE
     -- FAMILY-SHORT-NAME isis_mt_sys
        SYNTAX SEQUENCE OF IsisMtSysEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A row in this table represents the level of support for a
             topology on this instance of the Integrated IS-IS protocol.

             This table is only used when multi-topology IS-IS is
             supported."
    ::= { isisSystem 8 }

    isisMtSysEntry OBJECT-TYPE
        SYNTAX IsisMtSysEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each row defines information specific to a single topology on a
             single instance of the IS-IS protocol existing on the system."
        INDEX { isisSysInstance,
                isisMtSysMtId }
    ::= { isisMtSysTable 1 }

    IsisMtSysEntry ::=
        SEQUENCE {
            isisMtSysMtId
                Integer32,
            isisMtSysExistState
                RowStatus,
            isisMtSysAdminState
                AdminState,
            isisMtSysOperState
                IsisOperStatus,
            isisMtSysProtSupported
                IsisAddrTypeBits,
            isisMtSysDefaultActive
                TruthValue
        }

    isisMtSysMtId OBJECT-TYPE
        SYNTAX Integer32 (0..4095)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The topology that this row represents."

    ::= { isisMtSysEntry 2 }

    isisMtSysExistState OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The state of the MIB row.  Turning this to state 'destroy'
             forces the router to forget all the current topology
             configuration.  Setting the state to 'notInService' stops
             protocol processing for this topology, but retains the
             configuration.

             For multi-topology ID zero (the base topology), this field
             is read only.  The row for the base topology is
             automatically created and destroyed along with the
             corresponding isisSysTable row."

    ::= { isisMtSysEntry 3 }

    isisMtSysAdminState OBJECT-TYPE
        SYNTAX AdminState
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The desired operational state of this topology on 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 topology for this instance of
             the Integrated IS-IS protocol."
        DEFVAL { off }

    ::= { isisMtSysEntry 4 }

    isisMtSysOperState OBJECT-TYPE
        SYNTAX IsisOperStatus
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The current operational status of this topology on this
             instance of the Integrated IS-IS protocol.

             If this is 'down' then the topology is not supported."

    ::= { isisMtSysEntry 5 }

    isisMtSysProtSupported OBJECT-TYPE
        SYNTAX IsisAddrTypeBits
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "This attribute contains the set of protocols supported by
             this topology on this Intermediate System.

             Note that RFC 5120 assigns certain topologies to serve
             pre-determined purposes (MT IDs 0 - 5).  This limits the
             set of allowed values this field should take."
        DEFVAL { { ipv4 } }

    ::= { isisMtSysEntry 6 }

    isisMtSysDefaultActive OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "When set to 'true', corresponding rows in the
             isisMtCircStatusTable have oper status 'up', unless a
             corresponding row exists in the isisMtCircManConfigTable.

             When set to 'false', corresponding rows in the
             isisMtCircStatusTable have oper status 'down', unless a
             corresponding row exists in the isisMtCircManConfigTable."
        DEFVAL { true }

    ::= { isisMtSysEntry 7 }

-- End of DC addition.

-- 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
     -- FAMILY-SHORT-NAME isis_man_area
        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.

             For the DC-ISIS implementation, the area address must have
             a non-zero length."

    ::= { 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
     -- FAMILY-SHORT-NAME isis_area
        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.

             The DC-ISIS implementation ignores received area addresses
             with a length of zero."
        INDEX { isisSysInstance,
                isisAreaAddr }
    ::= { isisAreaAddrTable 1 }

    IsisAreaAddrEntry ::=
        SEQUENCE {
            isisAreaAddr
                OSINSAddress,
-- DC addition
            isisAreaAddrInLSP
                TruthValue
-- End of DC addition
            }

    isisAreaAddr OBJECT-TYPE
        SYNTAX OSINSAddress
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An area address reported in a Level 1 LSP received by
             this instance of the IS-IS protocol.

             The DC-ISIS implementation ignores received area addresses
             with a length of zero."
    ::= { isisAreaAddrEntry 1 }

-- DC addition

    isisAreaAddrInLSP OBJECT-TYPE
        SYNTAX  TruthValue
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Following ISO10589 section 7.1.5, we advertise the three
             numerically lowest level 1 area addresses in the level 2
             LSP fragment zero.

             If 'true', then this area address is one of the three
             numerically lowest area addresses, and if this router is
             active at level 2, it is therefore one of those area
             addresses advertised in the level 2 LSP fragment 0."
    ::= { isisAreaAddrEntry 2 }

-- End of DC addition


-- 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
     -- FAMILY-SHORT-NAME isis_summ
        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,
                isisSummAddrMtId,
                isisSummAddressType,
                isisSummAddress,
                isisSummAddrPrefixLen }
    ::= { isisSummAddrTable 1 }

    IsisSummAddrEntry ::=
        SEQUENCE {
-- DC addition
            isisSummAddrMtId
                Integer32,
-- End of DC addition
            isisSummAddressType
                InetAddressType,
            isisSummAddress
                InetAddress,
            isisSummAddrPrefixLen
                InetAddressPrefixLength,
            isisSummAddrExistState
                RowStatus,
            isisSummAddrMetric
                Integer32,
            isisSummAddrFullMetric
                FullMetric
        }

-- DC addition
    isisSummAddrMtId OBJECT-TYPE
        SYNTAX Integer32 (0..4095)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The topology that this summary address applies to.  This
             should be set to zero if multi-topology IS-IS is not
             enabled.  This object follows the index behavior."
    ::= { isisSummAddrEntry 8 }
-- End of DC addition

    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.

             The address must not contain any set host bits (bits set
             after the address prefix determined by
             isisSummAddrPrefixLen)."
    ::= { 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 Integer32 (1..63)
        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
     -- FAMILY-SHORT-NAME isis_rdst
        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,
                isisRedistributeAddrMtId,
                isisRedistributeAddrType,
                isisRedistributeAddrAddress,
                isisRedistributeAddrPrefixLen }

    ::= { isisRedistributeAddrTable 1 }

    IsisRedistributeAddrEntry ::=
        SEQUENCE {
-- DC addition
            isisRedistributeAddrMtId
                Integer32,
-- End of DC addition
            isisRedistributeAddrType
                InetAddressType,
            isisRedistributeAddrAddress
                InetAddress,
            isisRedistributeAddrPrefixLen
                InetAddressPrefixLength,
            isisRedistributeAddrExistState
                RowStatus
        }

-- DC addition
    isisRedistributeAddrMtId OBJECT-TYPE
        SYNTAX Integer32 (0..4095)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The topology that this redistribution address applies to.
             This should be set to zero if multi-topology IS-IS is not
             enabled.  This object follows the index behavior."
    ::= { isisRedistributeAddrEntry 6 }
-- End of DC addition

    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.

             The address must not contain any set host bits (bits set
             after the address prefix determined by
             isisRedistributeAddrPrefixLen)."
    ::= { 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
                SnmpAdminString,
            isisRouterID
                Unsigned32,
-- DC addition
            isisRouterIPv6ID
                InetAddressIPv6
-- End of DC addition
        }

    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 SnmpAdminString
        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 }

-- DC addition
    isisRouterIPv6ID OBJECT-TYPE
        SYNTAX InetAddressIPv6
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The IPv6 TE Router ID found in the LSP, if any."
    ::= { isisRouterEntry 5 }
-- End of DC addition

-- 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 an instance of IS-IS."
    ::= { 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,
            isisSysLevelMinLSPGenInt
-- DC Change.  Change units from seconds to milliseconds
                Unsigned32,
-- End of DC change
            isisSysLevelOverloadState
                LevelState,
            isisSysLevelSetOverload
                TruthValue,
            isisSysLevelSetOverloadUntil
                TimeTicks,
            isisSysLevelMetricStyle
                MetricStyle,
            isisSysLevelSPFConsiders
                MetricStyle,
            isisSysLevelTEEnabled
                TruthValue,
-- DC addition
            isisSysLevelIPv6TEEnabled
                TruthValue,
            isisSysLevelRestartT2Duration
                Integer32,
            isisSysLevelAuthUser
                AuthUserDataString
-- End of DC addition
        }

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

    isisSysLevelOrigLSPBuffSize OBJECT-TYPE
        SYNTAX LSPBuffSize
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The maximum size of LSPs and SNPs originated by
             this Intermediate System at this level.
             This object follows the replaceOnlyWhileDisabled
             behavior."
        REFERENCE "{ISIS.aoi originatingL1LSPBufferSize (9)}"
        DEFVAL { 1492 }
    ::= { isisSysLevelEntry 2 }

    isisSysLevelMinLSPGenInt OBJECT-TYPE
-- DC Change.  Change units from seconds to milliseconds
        SYNTAX Unsigned32 (1..65535000)
        UNITS "milliseconds"
-- End of DC change
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Minimum interval, in milliseconds, 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 { 30000 }
    ::= { 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?"
        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 for IPv4 at this level?

             If Traffic Engineering is enabled, isisSysLevelMetricStyle
             must be set to 'wide' or 'both' for this level, and a value
             must be configured for isisSysTERouterID.

             When Traffic Engineering is enabled for IPv4, this IS will
             advertise the IPv4 TE router ID in the local LSP, and will
             advertise traffic engineering parameters (where available)
             for links configured to support IPv4.

             This object is ignored if the 'ipv4' bit is not set in the
             value of isisSysProtSupported."
        DEFVAL { false }
    ::= { isisSysLevelEntry 9 }

-- DC addition
    isisSysLevelIPv6TEEnabled OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Do we do Traffic Engineering for IPv6 at this level?

             DC-ISIS only supports Traffic Engineering for IPv6 at
             level 1.

             If Traffic Engineering is enabled, a value must be
             configured for isisSysIPv6TERouterID.

             When Traffic Engineering is enabled for IPv6, this IS will
             advertise the IPv6 TE router ID in the local LSP, and will
             advertise traffic engineering parameters (where available)
             for links configured to support IPv6.

             This object is ignored if the 'ipv6' bit is not set in the
             value of isisSysProtSupported."
        DEFVAL { false }
    ::= { isisSysLevelEntry 10 }

    isisSysLevelRestartT2Duration OBJECT-TYPE
        SYNTAX Integer32 (1..3600)
        UNITS "seconds"
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "This object is only used when DC-ISIS activates with
             the activation type (isisSysRestartActivationType or
             isisSysRestartAutoResetType) set to 'start' or 'restart'.

             It defines how long DC-ISIS will wait to complete database
             synchronization at this level before completing the
             start/restart.

             This object follows the resettingTimer behavior."
        DEFVAL { 60 }
    ::= { isisSysLevelEntry 11 }

    isisSysLevelAuthUser OBJECT-TYPE
        SYNTAX      AuthUserDataString
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Authentication user data for area/domain level
             authentication.

             This data is passed opaquely to the Metaswitch authentication
             interface where it can be used to assist with
             authentication decisions."
    ::= { isisSysLevelEntry 12 }

-- End of DC addition


-- 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
     -- FAMILY-SHORT-NAME isis_circ
        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 2 }

    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
                InterfaceIndex,
            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,
  -- DC addition
            isisCircOperState
                IsisOperStatus,
            isisCircSdEntityIndex
                Integer32,
            isisCircDlBuffPoolSize
                Unsigned32,
            isisCircSdPDUBuffPoolSize
                Unsigned32,
            isisCircSdIndBuffPoolSize
                Unsigned32,
            isisCircDataLinkBlockSize
                Unsigned32,
            isisCircPhysicalAddress
                OCTET STRING,
            isisCircManualOrAutomatic
                INTEGER,
            isisCircT1TimerRunning
                TruthValue,
            isisCircProtSupported
                IsisAddrTypeBits,
            isisCircPtToPtOverLAN
                TruthValue,
            isisCircProtBfdDesired
                IsisAddrTypeBits,
            isisCircIfName
                DisplayString
  -- End of DC addition
        }

    isisCircIndex OBJECT-TYPE
        SYNTAX Integer32 (1..2147483647)
        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.

             In DC-ISIS this is always equal to the circuit ifIndex."
    ::= { isisCircEntry 1 }

    isisCircIfIndex OBJECT-TYPE
        SYNTAX InterfaceIndex
        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.

             In DC-ISIS this is also used as the 3-way circuit ID
             on point-to-point circuits, and must equal isisCircIndex.
             The default value is the same as isisCircIndex.  A create
            request using any other value will fail."
    ::= { 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.

             In DC-ISIS this field is ignored."
    ::= { 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.

             In DC-ISIS the default admin state for a new automatic
             circuit is 'on' if the isisSysAllowAutoI3Config field is
             'true', otherwise the default admin state is 'off'."
        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.

             In DC-ISIS, automatic circuits from the I3 stub appear as
             passive circuits with existence state 'active'.  These
             circuits can be configured via the MIB like manual
             circuits, except that they will survive a Destroy request,
             with all fields reset to their automatic values.

             MIB configuration overrides automatic configuration."
    ::= { isisCircEntry 5 }

    isisCircType OBJECT-TYPE
        SYNTAX INTEGER
            {
                unknown(0),
                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.

             In DC-ISIS only 'broadcast' and 'ptToPt' circuits are
             supported. An automatic circuit can have type 'unknown'
             until the correct MIB type is defined."
        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
            {
-- DC addition
                reserved (0),
-- End of DC addition
                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?

             In DC-ISIS, circuits with isisCircExtDomain 'true'
             will only be included in LSPs if this field is
             also 'true', and the circuit is active."
        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.

             DC-ISIS does support unpadded hellos."
         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-only
        STATUS current
        DESCRIPTION
            "Is this circuit enabled to run 3Way handshake?

             DC-ISIS will always run the 3-way handshake on point to
             point circuits, and so this object is read-only."
    ::= { isisCircEntry 14 }

    isisCircExtendedCircID OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The value to be used as the extended circuit ID in
             3Way handshake.  This value is only used if
             isisCirc3WayEnabled is true, and must be unique across
             all circuits on this IS.

             DC-ISIS uses the value for isisCircIndex as the extended
             circuit ID, and so this object is read-only."
    ::= { isisCircEntry 15 }

-- DC addition

    isisCircOperState OBJECT-TYPE
        SYNTAX IsisOperStatus
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The operational state of this circuit."
             DEFVAL { operStatusDown }
    ::= { isisCircEntry 16 }

    isisCircSdEntityIndex OBJECT-TYPE
        SYNTAX Integer32 (0..2147483647)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "Identifies the SDC entity which will handle this circuit.
            This object must be specified before the circuit can run the
            IS-IS protocol.  It cannot be changed after it has been
           specified."
    ::= { isisCircEntry 17 }

    isisCircDlBuffPoolSize OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Capacity of the buffer pool used by the DL stub to send
             data signals to the SDC.  This object follows the
             replaceOnlyWhileDisabled behavior."
        DEFVAL { 10 }
    ::= { isisCircEntry 18 }

    isisCircSdPDUBuffPoolSize OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Capacity of the buffer pool into which SDC transfers data
             signals from the DL Stub.  This object follows the
             replaceOnlyWhileDisabled behavior."
        DEFVAL { 100 }
    ::= { isisCircEntry 19 }

    isisCircSdIndBuffPoolSize OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Capacity of the buffer pool used by SDC to send
             indications to PM.  This object follows the
             replaceOnlyWhileDisabled behavior."
        DEFVAL { 20 }
    ::= { isisCircEntry 20 }

    isisCircDataLinkBlockSize OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Maximum size of PDU that can be sent or received over this
             circuit (MTU).  This object follows the
             replaceOnlyWhileDisabled behavior."
        DEFVAL { 1492 }
    ::= { isisCircEntry 21 }

    isisCircPhysicalAddress OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..16))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The physical address of the network interface (for example
             a MAC address on an Ethernet card).  This value is only
             relevant to a broadcast circuit and is ignored on a
             point-to-point circuit.  It needs to be specified in the
             MIB if the information is not obtained from the I3 stub.

             This object follows the replaceOnlyWhileDisabled behavior."
    ::= { isisCircEntry 22 }

    isisCircManualOrAutomatic OBJECT-TYPE
        SYNTAX INTEGER
          {
            manual(1),
            automatic(2),
            both(3)
          }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Has this circuit been configured by MIB (manual), I3
             information (automatic) or both?  MIB configuration
             overrides I3 configuration.

             Automatic circuits cannot be destroyed.  Destroying a
             manual circuit removes all configuration from that circuit
             from DC-ISIS.  Destroying a circuit in state 'both'
             destroys any MIB configuration and returns the circuit to
             automatic state."
        DEFVAL { manual }
    ::= { isisCircEntry 23 }

    isisCircT1TimerRunning OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Is the T1 timer running on this circuit?

             This object is only valid on a circuit that is currently
             running the IS-IS protocol (isisCircExtDomain is 'false'
             and isisCircOperState is 'operStatusUp').

             When set to 'true', this indicates that the local node is
             running starting or restarting node procedures."
    ::= { isisCircEntry 24 }

    isisCircProtSupported OBJECT-TYPE
        SYNTAX IsisAddrTypeBits
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Which protocols are supported on this circuit?

             Note that the configured value is used in conjunction with
             the value of isisSysProtSupported.  In particular:

              - IPv4 is supported on the circuit if both
                isisSysProtSupported and this object have the 'ipv4' bit
                set

              - IPv6 is supported on the circuit if both
                isisSysProtSupported and this object have the 'ipv6' bit
                set."
        DEFVAL { { ipv4 } }
    ::= { isisCircEntry 25 }

    isisCircPtToPtOverLAN OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Allows a broadcast circuit to be configured to operate
             point-to-point over LAN procedures.

             This is used in conjunction with the isisCircType object
             as follows.

              - If isisCircType = 'ptToPt', the circuit is a standard
                point-point circuit, and isisCircPtToPtOverLAN is
                ignored.

              - If isisCircType = 'broadcast' and isisCircPtToPtOverLAN
                is 'false', the circuit is used as a normal LAN.

              - If isisCircType = 'broadcast' and isisCircPtToPtOverLAN
                is 'true', point-point over LAN procedures are
                followed.

             Point-to-point over LAN procedures should only be
             configured when there are just two Intermediate Systems
             operating on the LAN.

             This object follows the replaceOnlyWhileDisabled behavior."
        DEFVAL { false }
    ::= { isisCircEntry 26 }

    isisCircProtBfdDesired OBJECT-TYPE
        SYNTAX IsisAddrTypeBits
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Indicates the protocols running on this circuit for which
             Bidirectional Forwarding Detection (BFD) is desired.

             If isisCircProtBfdDesired is clear for an address type,
             then BFD sessions are not established to peers for that
             address type.

             If isisCircProtBfdDesired is set for an address type,
             then a BFD session is established to each peer that
             supports BFD for that address type.  The object
             isisISAdjProtSuppBfdStatus provides BFD status for each
             address type.

             This object can be modified at any time."
        DEFVAL { { } }
    ::= { isisCircEntry 28 }

    isisCircIfName OBJECT-TYPE
         SYNTAX DisplayString
         MAX-ACCESS read-write
         STATUS current
         DESCRIPTION
            "The textual name of the interface.  The value of this
             object should be the name of the interface as assigned by
             the local device and should be suitable for use in
             commands entered at the device's 'console'.  This might be
             a text name, such as 'le0' or a simple port number, such
             as '1', depending on the interface naming syntax of the
             device.  It should be unique per logical interface.  Set
             to null if not known.

             This field cannot be changed if the row is admin status up
             and row status active."
    ::= { isisCircEntry 29 }

-- DC addition

-- The Multi-topology circuit manual configuration table.
-- Used to configure circuit-specific multi-topology support.

    isisMtCircManConfigTable OBJECT-TYPE
     -- FAMILY-SHORT-NAME isis_mt_circ_man_config
        SYNTAX SEQUENCE OF IsisMtCircManConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A row in this table represents the manual configuration of
             support for a topology on this circuit.

             Rows in this table are created and destroyed by an
             administrator to provide per-circuit multi-topology
             configuration.

             Note that the presence of a row in this table overrides the
             default multi-topology settings for the given circuit and
             topology."

    ::= { isisCirc 4 }

    isisMtCircManConfigEntry OBJECT-TYPE
        SYNTAX IsisMtCircManConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An isisMtCircManConfigEntry is created to provide
             multi-topology specifc circuit configuration."
        INDEX { isisSysInstance,
                isisCircIndex,
                isisMtCircManMtId }

    ::= { isisMtCircManConfigTable 1 }

    IsisMtCircManConfigEntry ::=
        SEQUENCE {
            isisMtCircManMtId
                Integer32,
            isisMtCircManExistState
                RowStatus,
            isisMtCircManAdminState
                AdminState,
            isisMtCircManOperState
                IsisOperStatus,
            isisMtCircManL1WideMetric
                WideMetric,
            isisMtCircManL2WideMetric
                WideMetric
        }

    isisMtCircManMtId OBJECT-TYPE
        SYNTAX Integer32 (0..4095)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The topology that this row represents."

    ::= { isisMtCircManConfigEntry 3 }

    isisMtCircManExistState OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The state of the MIB row.  Turning this to state 'destroy'
             forces the router to forget the manually configured
             multi-topology configuration for this circuit.  Setting
             the state to 'notInService' stops the manual
             multi-topology configuration being used, but retains the
             configuration."

    ::= { isisMtCircManConfigEntry 4 }

    isisMtCircManAdminState OBJECT-TYPE
        SYNTAX AdminState
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The desired operational state for the manual configuration
             of this topology on this circuit.  Setting this object to
             the value 'on' when its current value is 'off' enables use
             of the manual configuration for this topology on this
             circuit."
        DEFVAL { off }

    ::= { isisMtCircManConfigEntry 5 }

    isisMtCircManOperState OBJECT-TYPE
        SYNTAX IsisOperStatus
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The current operational status of the manual configuration
             for this topology on this circuit."

    ::= { isisMtCircManConfigEntry 6 }

    isisMtCircManL1WideMetric OBJECT-TYPE
        SYNTAX WideMetric
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The level 1 wide metric value of this circuit for this
             topology.  Note that topologies other than MT ID 0 always
             use wide metrics.

             For multi-topology ID zero (the base topology), this field
             is read only.  The level 1 metric for the base topology is
             configured using the isisCircLevelWideMetric field in the
             isisCircLevelTable."
        DEFVAL { 10 }

    ::= { isisMtCircManConfigEntry 7 }

    isisMtCircManL2WideMetric OBJECT-TYPE
        SYNTAX WideMetric
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The level 2 wide metric value of this circuit for this
             topology.  Note that topologies other than MT ID 0 always
             use wide metrics.

             For multi-topology ID zero (the base topology), this field
             is read only.  The level 2 metric for the base topology is
             configured using the isisCircLevelWideMetric field in the
             isisCircLevelTable."
        DEFVAL { 10 }

    ::= { isisMtCircManConfigEntry 8 }

-- End of DC addition.

-- DC addition

-- The Multi-topology circuit status table.
-- Reports the status of a topology on a circuit.

    isisMtCircStatusTable OBJECT-TYPE
     -- FAMILY-SHORT-NAME isis_mt_circ_status
        SYNTAX SEQUENCE OF IsisMtCircStatusEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A row in this table represents the current support for a
             topology on this circuit.

             A row exists in this table for every row in the
             isisCircTable and every row in the isisMtSysTable."

    ::= { isisCirc 5 }

    isisMtCircStatusEntry OBJECT-TYPE
        SYNTAX IsisMtCircStatusEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An isisMtCircStatusEntry details the status of a topology
             on a circuit."
        INDEX { isisSysInstance,
                isisCircIndex,
                isisMtCircStatusMtId }

    ::= { isisMtCircStatusTable 1 }

    IsisMtCircStatusEntry ::=
        SEQUENCE {
            isisMtCircStatusMtId
                Integer32,
            isisMtCircStatusOperState
                IsisOperStatus,
            isisMtCircStatusL1WideMetric
                WideMetric,
            isisMtCircStatusL2WideMetric
                WideMetric
        }

    isisMtCircStatusMtId OBJECT-TYPE
        SYNTAX Integer32 (0..4095)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The topology that this row represents."

    ::= { isisMtCircStatusEntry 3 }

    isisMtCircStatusOperState OBJECT-TYPE
        SYNTAX IsisOperStatus
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The current operational state of this topology on this
             circuit.

             If no corresponding row exists in the
             isisMtCircManConfigTable then this is derived from the
             isisMtSysDefaultActive field in the isisMtSysTable row.

             Otherwise, this is derived from a combination of the
             isisMtSysOperState field in the isisMtSysTable and the
             isisMtCircManOperState field in the
             isisMtCircManConfigTable row."

    ::= { isisMtCircStatusEntry 4 }

    isisMtCircStatusL1WideMetric OBJECT-TYPE
        SYNTAX WideMetric
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The level 1 wide metric value of this circuit for this
             topology.  Note that topologies other than MT ID 0 always
             use wide metrics.

             If no corresponding row exists in the
             isisMtCircManConfigTable then this is derived from the
             isisCircLevelWideMetric field in the level 1
             isisCircLevelTable.

             Otherwise, this is derived from the
             isisMtCircManL1WideMetric field in the
             isisMtCircManConfigTable row."

    ::= { isisMtCircStatusEntry 5 }

    isisMtCircStatusL2WideMetric OBJECT-TYPE
        SYNTAX WideMetric
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The level 2 wide metric value of this circuit for this
             topology.  Note that topologies other than MT ID 0 always
             use wide metrics.

             If no corresponding row exists in the
             isisMtCircManConfigTable then this is derived from the
             isisCircLevelWideMetric field in the level 2
             isisCircLevelTable.

             Otherwise, this is derived from the
             isisMtCircManL2WideMetric field in the
             isisMtCircManConfigTable row."

    ::= { isisMtCircStatusEntry 6 }

-- End of DC addition.

------------------------------------------------------------------------
--
-- The IS Circuit IP Address Table
--
-- The IS Circuit IP Address Table contains the set of IP Addresses
-- configured on this circuit, either automatically (via the I3 stub) or
-- manually (via a MIB SET request).
--
-- These IP addresses are advertised in TLV 132 on IIH PDUs sent on this
-- circuit if they are in admin state 'on'.  They are advertised in
-- TLV 132 in LSPs sent from this IS if isisCircIPAddrInLSP is 'true'.
--
-- Rows in this table follow the manualOrAutomatic behavior described
-- above.

    isisCircIPAddrTable OBJECT-TYPE
     -- FAMILY-SHORT-NAME isis_circ_ip
        SYNTAX SEQUENCE OF IsisCircIPAddrEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table contains the set of IP Addresses configured on
            all circuits."
    ::= { isisCirc 3 }

    isisCircIPAddrEntry OBJECT-TYPE
        SYNTAX IsisCircIPAddrEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry contains one IP Address configured on a
             circuit."
        INDEX { isisSysInstance,
                isisCircIndex,
                isisCircIPAddrManOrAuto,
                isisCircIPAddrIndex }
    ::= { isisCircIPAddrTable 1 }

    IsisCircIPAddrEntry ::= SEQUENCE {
            isisCircIPAddrManOrAuto
                INTEGER,
            isisCircIPAddrIndex
                Integer32,
            isisCircIPAddrRowStatus
                RowStatus,
            isisCircIPAddrAdminState
                AdminState,
            isisCircIPAddrAddressType
                InetAddressType,
            isisCircIPAddrAddress
                InetAddress,
            isisCircIPAddrInLSP
                TruthValue
        }

    isisCircIPAddrManOrAuto OBJECT-TYPE
        SYNTAX INTEGER
            {
                manual(1),
                automatic(2),
-- DC addition
                both(3)
-- End of DC addition
            }
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The type of IP address. Those of type manual are created
             by the network manager.  Those of type automatic are
             created through propagation of interface information from
             the I3 stub.  This object cannot be modified after
             creation, and follows the manualOrAutomatic behavior."
    ::= { isisCircIPAddrEntry 1 }

    isisCircIPAddrIndex 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.  This object follows the
             manualOrAutomatic behavior."
    ::= { isisCircIPAddrEntry 2 }

    isisCircIPAddrRowStatus OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The existence state of this IP address.  This object
             follows the RowStatus and manualOrAutomatic behaviors."
    ::= { isisCircIPAddrEntry 3 }

    isisCircIPAddrAdminState OBJECT-TYPE
        SYNTAX AdminState
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Administrative state of this IP address.  This object
             follows the AdminState and manualOrAutomatic behaviors.

             The system level isisSysAllowAutoI3Config field defines the
             initial administrative state for IP addresses that are
             configured automatically from the I3 stub.  If
             isisSysAllowAutoI3Config is 'true' then automatic addresses
             initially have administrative state 'on'; otherwise they
             initially have administrative state 'off'."
         DEFVAL { on }
    ::= { isisCircIPAddrEntry 4 }

    isisCircIPAddrAddressType OBJECT-TYPE
        SYNTAX InetAddressType
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The Inet type of this IP Address.  This object follows the
             manualOrAutomatic behavior."
         DEFVAL { ipv4 }
    ::= { isisCircIPAddrEntry 5 }

    isisCircIPAddrAddress OBJECT-TYPE
        SYNTAX  InetAddress (SIZE(4|16))
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "One IP Address configured on this circuit.  This field must
             be present on row creation and cannot be modified after
             creation.

             This address must be unique among all manual IP addresses
             configured on this circuit.  If a manual address matches
             an automatic IP address on this circuit then the manual
             address takes precedence, and the automatic address is not
             used by DC-ISIS.

             This address is guaranteed to be unique among all automatic
             addresses on this circuit."
    ::= { isisCircIPAddrEntry 6 }

    isisCircIPAddrInLSP OBJECT-TYPE
        SYNTAX  TruthValue
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Is this IP address advertised in TLV 132 in LSPs sent out
             by this intermediate system?  This object follows the
             manualOrAutomatic behavior."
         DEFVAL { false }
    ::= { isisCircIPAddrEntry 7 }

-- End of DC addition


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

    isisCircLevelTable OBJECT-TYPE
    -- FAMILY-SHORT-NAME isis_circ_lv
        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
                Integer32,
            isisCircLevelWideMetric
                WideMetric,
            isisCircLevelISPriority
                ISPriority,
            isisCircLevelIDOctet
                Integer32,
            isisCircLevelID
                CircuitID,
            isisCircLevelDesIS
                CircuitID,
            isisCircLevelHelloMultiplier
                Integer32,
            isisCircLevelHelloTimer
                Integer32,
            isisCircLevelDRHelloTimer
                Integer32,
            isisCircLevelLSPThrottle
                Unsigned16TC,
            isisCircLevelMinLSPRetransInt
-- DC Change.  Change units from seconds to milliseconds
                Integer32,
-- End of DC change
            isisCircLevelCSNPInterval
                Integer32,
            isisCircLevelPartSNPInterval
                Integer32,
-- DC addition
            isisCircLevelStickyDIS
                Integer32,
            isisCircLevelAuthUser
                AuthUserDataString,
            isisCircLevelIDHostname
                SnmpAdminString,
            isisCircLevelDesISHostname
                SnmpAdminString,
            isisCircLevelMinLSPArrivalInt
                Integer32
-- End of DC addition
        }

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

    isisCircLevelMetric OBJECT-TYPE
        SYNTAX Integer32 (1..63)
        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-only
        STATUS current
        DESCRIPTION
            "A one byte identifier for the circuit selected by the
             Intermediate System.

             On point-to-point circuits, the value is used as the Local
             Circuit ID in point-to-point IIH PDUs transmitted on this
             circuit.  In this case, values of isisCircLevelIDOctet do
             not need to be unique.

             For broadcast circuits, the value is used to generate the
             LAN ID that will be used if this Intermediate System is
             elected as the Designated IS on this circuit.  The value
             is 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
            "On a point to point circuit with a fully initialized
             adjacency to a peer IS, the value of this object is
             the circuit ID negotiated during adjacency initialization.
             On a point to point circuit without such an adjacency,
             the value is the concatenation of the local system ID
             and the one byte isisCircLevelIDOctet for this circuit
             i.e. the value that would be proposed for the circuit ID.

             On other circuit types, the value returned is the zero
             length OCTET STRING."
        REFERENCE "{ISIS.aoi ptPtCircuitID (51)}"
    ::= { isisCircLevelEntry 6 }

    isisCircLevelDesIS OBJECT-TYPE
        SYNTAX CircuitID
        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)
        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 L1 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
-- DC Change.  Change units from seconds to milliseconds
        SYNTAX Integer32 (1..300000)
        UNITS "milliseconds"
-- End of DC change
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Minimum interval, in milliseconds, 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 { 5000 }
    ::= { isisCircLevelEntry 12 }

    isisCircLevelCSNPInterval OBJECT-TYPE
        SYNTAX Integer32 (1..600)
        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.
             This object follows the resettingTimer behavior."
        REFERENCE "{ISIS.aoi completeSNPInterval (8)}"
        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 }

-- DC addition

    isisCircLevelStickyDIS OBJECT-TYPE
        SYNTAX Integer32 (0..127)
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
             "Boost to add to the priority of this router (up to the maximum
              permitted value) when it becomes DIS at this level to make it
              more likely to remain DIS."
        DEFVAL { 0 }
    ::= { isisCircLevelEntry 15 }

    isisCircLevelAuthUser OBJECT-TYPE
        SYNTAX AuthUserDataString
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
             "Authentication user data for this level's authentication.
              This data is passed opaquely to the Metaswitch authentication
              interface where it can be used to assist with
              authentication decisions."
    ::= { isisCircLevelEntry 16 }

    isisCircLevelIDHostname OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
             "The hostname corresponding to the system ID part of the
              isisCircLevelID object.

              This is the null string if the isisCircLevelID object
              is null, or if no hostname is known."
    ::= { isisCircLevelEntry 17 }

    isisCircLevelDesISHostname OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
             "The hostname corresponding to the system ID part of the
              isisCircLevelDesIS object.

              This is the null string if the isisCircLevelDesIS object
              is null, or if no hostname is known."
    ::= { isisCircLevelEntry 18 }

    isisCircLevelMinLSPArrivalInt OBJECT-TYPE
        SYNTAX Integer32 (0..60000)
        UNITS "milliseconds"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The minimum interval between reception of new instances of
             a particular LSP.  LSP instances received at higher
             frequencies are discarded.  If set to zero then no check
             is made on the frequency of LSP reception.

             This object follows the resettingTimer behavior."
        DEFVAL { 0 }
    ::= { isisCircLevelEntry 19 }
-- End of DC addition

-- isisSystemCounterTable keeps track of system-wide events.

    isisSystemCounterTable OBJECT-TYPE
     -- FAMILY-SHORT-NAME isis_stat
        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,
            isisSysStatPartChanges
                Counter32,
            isisSysStatSPFRuns
                Counter32,
-- DC addition
            isisSysStatLSPError
                Counter32,
            isisSysStatCSNPError
                Counter32,
            isisSysStatPSNPError
                Counter32,
            isisSysStatLSPQueueLen
                Counter32,
            isisSysStatFragsRebuilt
                Counter32,
            isisSysStatLSPRexmits
                Counter32,
            isisSysStatLSPRegens
                Counter32,
            isisSysStatPurgesInitiated
                Counter32,
            isisSysStatLSPCount
                Counter32,
            isisSysStatPurgesIniLocal
                Counter32,
            isisSysStatPurgesIniRemote
                Counter32,
            isisSysStatPurgesIniRemSNP
                Counter32,
            isisSysStatPurgesIniRemExp
                Counter32,
            isisSysStatPurgesIniRemPrs
                Counter32
-- End of DC addition
        }

    isisSysStatLevel OBJECT-TYPE
        SYNTAX INTEGER
            {
-- DC addition
                none (0),
-- End of DC addition
                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.

             LSPs received from the wire with parse errors
             are counted by isisSysStatLSPError."
        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 }

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

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

-- DC addition
    isisSysStatLSPError OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The count of badly formed LSPs discarded by
             the PM component of DC-ISIS."
    ::= { isisSystemCounterEntry 13 }

    isisSysStatCSNPError OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The count of badly formed CSNPs discarded by
             the PM component of DC-ISIS."
    ::= { isisSystemCounterEntry 14 }

    isisSysStatPSNPError OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The count of badly formed PSNPs discarded by
             the PM component of DC-ISIS."
    ::= { isisSystemCounterEntry 15 }

    isisSysStatLSPQueueLen OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The count of received LSPs that are queued internally
             in the PM component of DC-ISIS, awaiting processing."
    ::= { isisSystemCounterEntry 16 }

    isisSysStatFragsRebuilt OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of LSP fragments that the local system has generated."
    ::= { isisSystemCounterEntry 17 }

   isisSysStatLSPRexmits OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of LSPs that have been retransmitted."
    ::= { isisSystemCounterEntry 18 }

   isisSysStatLSPRegens OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of LSPs that have been regenerated.
             An LSP is regenerated when it is nearing the
             end of its lifetime and it has not changed."
    ::= { isisSystemCounterEntry 19 }

   isisSysStatPurgesInitiated OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of LSP purges that have been initiated
             by this instance of IS-IS."
    ::= { isisSystemCounterEntry 20 }

    isisSysStatLSPCount OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
            "The number of LSPs in the database at this level."
    ::= { isisSystemCounterEntry 21 }

    isisSysStatPurgesIniLocal OBJECT-TYPE
         SYNTAX Counter32
         MAX-ACCESS read-only
         STATUS current
         DESCRIPTION
             "Number of LSP purges initiated by this instance of IS-IS, of LSPs
             that were originated locally.

             This field behaves like an SNMP counter.  It only increases,
             never decreases, and is subject to wrap.

             The absolute value of an SNMP counter has no meaning.
             Applications use the difference between counter values at
             different times to display count changes.  The absolute value of
             this counter does have meaning, until it first wraps."

     ::= { isisSystemCounterEntry 23 }

    isisSysStatPurgesIniRemote OBJECT-TYPE
         SYNTAX Counter32
         MAX-ACCESS read-only
         STATUS current
         DESCRIPTION
             "Number of LSP purges initiated by this instance of IS-IS, of LSPs
             that were originated remotely.

             This field behaves like an SNMP counter.  It only increases,
             never decreases, and is subject to wrap.

             The absolute value of an SNMP counter has no meaning.
             Applications use the difference between counter values at
             different times to display count changes.  The absolute value of
             this counter does have meaning, until it first wraps."

     ::= { isisSystemCounterEntry 24 }

    isisSysStatPurgesIniRemSNP OBJECT-TYPE
         SYNTAX Counter32
         MAX-ACCESS read-only
         STATUS current
         DESCRIPTION
             "Number of LSP purges initiated by this instance of IS-IS, of LSPs
             that were originated remotely, due to receiving a SNP.

             This field behaves like an SNMP counter.  It only increases,
             never decreases, and is subject to wrap.

             The absolute value of an SNMP counter has no meaning.
             Applications use the difference between counter values at
             different times to display count changes.  The absolute value of
             this counter does have meaning, until it first wraps."

     ::= { isisSystemCounterEntry 25 }

    isisSysStatPurgesIniRemExp OBJECT-TYPE
         SYNTAX Counter32
         MAX-ACCESS read-only
         STATUS current
         DESCRIPTION
             "Number of LSP purges initiated by this instance of IS-IS, of LSPs
             that were originated remotely, because they have
             expired.

             This field behaves like an SNMP counter.  It only increases,
             never decreases, and is subject to wrap.

             The absolute value of an SNMP counter has no meaning.
             Applications use the difference between counter values at
             different times to display count changes.  The absolute value of
             this counter does have meaning, until it first wraps."

     ::= { isisSystemCounterEntry 26 }

    isisSysStatPurgesIniRemPrs OBJECT-TYPE
         SYNTAX Counter32
         MAX-ACCESS read-only
         STATUS current
         DESCRIPTION
             "Number of LSP purges initiated by this instance of IS-IS, of LSPs
             that were originated remotely, due to peer restart.

             This field behaves like an SNMP counter.  It only increases,
             never decreases, and is subject to wrap.

             The absolute value of an SNMP counter has no meaning.
             Applications use the difference between counter values at
             different times to display count changes.  The absolute value of
             this counter does have meaning, until it first wraps."

     ::= { isisSystemCounterEntry 27 }


-- End of DC addition

-- 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 this
             Intermediate System."
    ::= { isisCounters 2 }

    isisCircuitCounterEntry OBJECT-TYPE
        SYNTAX IsisCircuitCounterEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An isisCircuitCounterEntry 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.  This counts events such as PPP NCP failures.
             Failures to form an adjacency are counted by
             isisCircRejAdjs."
    ::= { 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,
-- DC addition
            isisPacketCountDiscardedIIH
                Counter32,
            isisPacketCountDiscardedLSP
                Counter32,
            isisPacketCountDiscardedCSNP
                Counter32,
            isisPacketCountDiscardedPSNP
                Counter32
-- End of DC addition
    }

    isisPacketCountLevel OBJECT-TYPE
        SYNTAX INTEGER
            {
-- DC addition
                none (0),
-- End of DC addition
                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
             the lowest enabled level: at L1 on L1 or L1L2 circuits,
             and at L2 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 }

-- DC addition

    isisPacketCountDiscardedIIH OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of IIH PDUs that have been discarded.
             This field is always zero for outgoing PDUs."
    ::= { isisPacketCounterEntry 10 }

    isisPacketCountDiscardedLSP OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of LSP PDUs that have been discarded
             by the SDC component of DC-ISIS.
             This field is always zero for outgoing PDUs."
    ::= { isisPacketCounterEntry 11 }

    isisPacketCountDiscardedCSNP OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of CSNP PDUs that have been discarded
             by the SDC component of DC-ISIS.
             This field is always zero for outgoing PDUs."
    ::= { isisPacketCounterEntry 12 }

    isisPacketCountDiscardedPSNP OBJECT-TYPE
        SYNTAX Counter32
        UNITS "frames"
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of PSNP PDUs that have been discarded
             by the SDC component of DC-ISIS.
             This field is always zero for outgoing PDUs."
    ::= { isisPacketCounterEntry 13 }

-- End of DC addition

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

    isisISAdjTable OBJECT-TYPE
     -- FAMILY-SHORT-NAME isis_adj
        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,
-- DC addition
            isisISAdjRestartCapable
                TruthValue,
            isisISAdjPeerRestartState
                INTEGER,
            isisISAdjSuppressed
                TruthValue,
            isisISAdjNeighLanID
                OCTET STRING,
            isisISAdjNeighHostname
                SnmpAdminString,
            isisISAdjNeighLanIDHostname
                SnmpAdminString
-- End of DC addition
      }

    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
             automatically assigned by the system when the adjacency
             is created."
    ::= { 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
            {
-- DC addition
                reserved (0),
-- End of DC addition
                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 L1,
             and level2 for the adjacency between peers at L2."
        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 }

  -- DC addition
    isisISAdjRestartCapable OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Does the neighbor support restart signalling?

             This object is set to 'true' if the peer includes the
             restart TLV in IIH PDUs."
    ::= { isisISAdjEntry 12 }

    isisISAdjPeerRestartState OBJECT-TYPE
        SYNTAX INTEGER
            {
                notRestarting(1),
                restartingNoHelp(2),
                helpingRestart(3)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Is the peer currently restarting?

             Set to 'notRestarting' if the neighbor is not restarting
             (is not including a restart TLV in the IIH, or is not setting the
             RR bit).

             Set to 'restartingNoHelp' if the neighbor is restarting
             (is including a restart TLV with the RR bit in IIH PDUs), but
             the local node is not helping the restart.

             Set to 'helpingRestart' if the neighbor is restarting and the
             local node is helping the restart."
    ::= { isisISAdjEntry 13 }

    isisISAdjSuppressed OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Has the peer requested that the adjacency be suppressed?
             If set to 'true', the adjacency will not be added to the
             local LSP.

             This object is set to 'true' if the peer sets the SA bit in
             the restart TLV in IIH PDUs."
    ::= { isisISAdjEntry 14 }

    isisISAdjNeighLanID OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE(0..7))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "On a broadcast circuit, the LAN ID reported by the
             neighbor for the Designated Intermediate System on this
             circuit at this level.  For a non-broadcast circuit, or if,
             for any reason, the neighbor is not partaking in the
             relevant Designated Intermediate System election process,
             then the value returned is the zero length OCTET STRING."
    ::= { isisISAdjEntry 15 }

    isisISAdjNeighHostname OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
             "The hostname corresponding to isisISAdjNeighSysID.
              This is the null string if isisSdEntMapHostnames is
              'false' or if no hostname is known."
    ::= { isisISAdjEntry 16 }

    isisISAdjNeighLanIDHostname OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
             "The hostname corresponding to the system ID part of the
              isisISAdjNeighLanID object.

              This is the null string if the isisISAdjNeighLanID object
              is null, if isisSdEntMapHostnames is 'false', or if no
              hostname is known."
    ::= { isisISAdjEntry 17 }

-- End of DC addition

-- DC addition

-- The ISIS Adjacency MT Supported Table.

    isisISAdjMtSupportedTable OBJECT-TYPE
     -- FAMILY-SHORT-NAME is_adj_mt
        SYNTAX SEQUENCE OF IsisISAdjMtSupportedEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table contains the set of topologies supported by
             neighboring Intermediate Systems as reported in received IIH
             PDUs."
    ::= { isisISAdj 5 }

    isisISAdjMtSupportedEntry OBJECT-TYPE
        SYNTAX IsisISAdjMtSupportedEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry contains one topology reported by a
             neighboring Intermediate System in its IIH PDUs."
        INDEX { isisSysInstance,
                isisCircIndex,
                isisISAdjIndex,
                isisISAdjMtSuppMtId }

    ::= { isisISAdjMtSupportedTable 1 }

    IsisISAdjMtSupportedEntry ::=
        SEQUENCE {
            isisISAdjMtSuppMtId
                Integer32,
            isisISAdjMtSuppLocalSupport
                TruthValue
        }

    isisISAdjMtSuppMtId OBJECT-TYPE
        SYNTAX Integer32 (0..4095)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A topology that is supported on this adjacency."

    ::= { isisISAdjMtSupportedEntry 4 }

    isisISAdjMtSuppLocalSupport OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Whether this topology is also supported locally on this
             circuit.

             The value is 'true' if there is a corresponding row in the
             isisMtCircStatusTable with isisMtCircStatusOperState set
             to 'operStatusUp'.  In this case, IS-IS will advertise
             reachability to this neighbor in this topology."

    ::= { isisISAdjMtSupportedEntry 5 }

-- End of DC addition.

-- 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
     -- FAMILY-SHORT-NAME isis_adj_area
        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 simple 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
     -- FAMILY-SHORT-NAME isis_adj_ip
        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.

             If the isisSysRestrictLanAdjsToSubnet object in isisSysTable
             is set to 'true' then for an IPv4 broadcast circuit, only
             IP addresses on the same subnet as the local circuit are
             included in this table."
    ::= { 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,
            isisISAdjIPAddrType
                 InetAddressType,
            isisISAdjIPAddrAddress
                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 }

    isisISAdjIPAddrType 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 }

    isisISAdjIPAddrAddress 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
     -- FAMILY-SHORT-NAME isis_adj_prot
        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,
-- DC addition
            isisISAdjProtSuppLocalSupport
                TruthValue,
            isisISAdjProtSuppBfdStatus
                INTEGER
-- End of DC addition
        }

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

-- DC addition
    isisISAdjProtSuppLocalSupport OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Whether local configuration allows use of this protocol to
             this neighbor.

             The value 'false' indicates that the protocol is unusable."
    ::= { isisISAdjProtSuppEntry 5 }

    isisISAdjProtSuppBfdStatus OBJECT-TYPE
        SYNTAX INTEGER
            {
                notRequired(0),
                active(1),
                inactive(2),
                adminDown(3),
                noContact(4)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "BFD session state for this protocol.  The state
             inactive(2) indicates that the protocol is unusable for
             forwarding because a BFD session cannot be established or
             has failed."
    ::= { isisISAdjProtSuppEntry 6 }
-- End of DC addition

-- The Reachable Address Table is not supported by DC-ISIS, which does
-- not currently support CLNP.

-- 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
     -- FAMILY-SHORT-NAME isis_ip_ra
        SYNTAX SEQUENCE OF IsisIPRAEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The table of IP Reachable Addresses to networks,
             subnetworks or hosts, learned automatically.

             DC-ISIS does not support the manual addition of entries
             using this table.  This table is read-only.

             In order to specify reachable addresses manually,
             configure a static route in the Address Family Manager,
             and configure the AFM to pass the static route into
             DC-ISIS.

             In DC-RTM, this can be done using the static routes
             table (rtmStaticRtTable), and the redistribution table
             (rtmRedistTable)."
    ::= { 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.

             Each IP Reachable Address may have multiple entries in the
             table, one for each equal cost path to the reachable address."
        INDEX {  isisSysInstance,
                 isisIPRADestType,
                 isisIPRADest,
                 isisIPRADestPrefixLen,
                 isisIPRANextHopIndex }
    ::= { isisIPRATable 1 }

    IsisIPRAEntry ::=
        SEQUENCE {
            isisIPRADestType
                InetAddressType,
            isisIPRADest
                InetAddress,
            isisIPRADestPrefixLen
                InetAddressPrefixLength,
            isisIPRANextHopIndex
                Integer32,
            isisIPRANextHopType
                InetAddressType,
            isisIPRANextHop
                InetAddress,
            isisIPRAType
                INTEGER,
            isisIPRAExistState
                RowStatus,
            isisIPRAAdminState
                AdminState,
            isisIPRAMetric
                DefaultMetric,
            isisIPRAMetricType
                MetricType,
            isisIPRAFullMetric
                FullMetric,
            isisIPRASNPAAddress
                OSINSAddress,
            isisIPRASourceType
                INTEGER,
-- DC addition
            isisIPRAMtId
                Integer32
-- End of DC addition
        }

    isisIPRADestType OBJECT-TYPE
        SYNTAX InetAddressType
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The type of this IP Reachable Address."
    ::= { 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."
    ::= { 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."
    ::= { isisIPRAEntry 3 }

    isisIPRANextHopIndex OBJECT-TYPE
        SYNTAX Integer32 (1..65535)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Index of next hop.  Used when there are multiple Equal
             Cost Multipath alternatives for the same destination."
    ::= { isisIPRAEntry 4 }

    isisIPRANextHopType OBJECT-TYPE
        SYNTAX InetAddressType
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The type of the IP next hop address.

             For the DC-ISIS implementation, this field is not stored
             and is therefore not returned in GETs for this MIB."
    ::= { isisIPRAEntry 5 }

    isisIPRANextHop OBJECT-TYPE
        SYNTAX InetAddress (SIZE(4|16))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The IP next hop to this destination.

             For the DC-ISIS implementation, this field is not stored
             and is therefore not returned in GETs for this MIB."
    ::= { isisIPRAEntry 6 }

    isisIPRAType OBJECT-TYPE
        SYNTAX INTEGER
            {
                manual(1),
                automatic(2),
-- DC addition
                both(3)
-- End of DC addition
            }
        MAX-ACCESS read-only
        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.

             DC-ISIS only supports automatic entries in this table.
             These are learnt from an Address Family Manager
             (for example, DC-RTM), or from the I3 stub."

    ::= { isisIPRAEntry 7 }

    isisIPRAExistState OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The state of this IP Reachable Address. This object
             follows the ExistenceState behavior."
    ::= { isisIPRAEntry 8 }

    isisIPRAAdminState OBJECT-TYPE
        SYNTAX AdminState
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The administrative state of the IP Reachable Address. This
             object follows the AdminState behavior."
    ::= { isisIPRAEntry 9 }

    isisIPRAMetric OBJECT-TYPE
        SYNTAX DefaultMetric
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The metric value for reaching the specified
             destination over this circuit."
    ::= { isisIPRAEntry 10 }

    isisIPRAMetricType OBJECT-TYPE
        SYNTAX MetricType
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Indicates whether the metric is internal or
             external."
    ::= { isisIPRAEntry 11 }

    isisIPRAFullMetric OBJECT-TYPE
        SYNTAX FullMetric
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The wide metric value for reaching the specified
             destination over this circuit."
    ::= { isisIPRAEntry 12 }

    isisIPRASNPAAddress OBJECT-TYPE
        SYNTAX OSINSAddress
        MAX-ACCESS read-only
        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. DC-ISIS does not support this field."
    ::= { isisIPRAEntry 13 }

    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 14 }

-- DC addition
    isisIPRAMtId OBJECT-TYPE
        SYNTAX Integer32 (0..4095)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The topology that this reachable address is in."
        DEFVAL { 0 }

    ::= { isisIPRAEntry 16 }
-- End of DC addition

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

    isisLSPSummaryTable OBJECT-TYPE
    -- FAMILY-SHORT-NAME isis_lsp_summ
        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 provides a summary describing an
             LSP currently 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,
-- DC addition
            isisLSPIDHostname
                SnmpAdminString
-- End of DC addition
        }

    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.

             For a current LSP (isisLSPZeroLife is 'false'), this
             indicates the time remaining before the LSP will expire.
             For an LSP being purged from the system (isisLSPZeroLife
             is 'true'), the LSP remains in the database for
             ZeroAgeLifetime, and this will indicate the time remaining
             before final deletion of the 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 }

-- DC addition
    isisLSPIDHostname OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
             "The hostname corresponding to the system ID part of the
              isisLSPID object.

              This is the null string if no hostname is known."
    ::= { isisLSPSummaryEntry 9 }
-- End of DC addition

-- LSP Table
--
-- The full LSP as a sequence of {Type, Len, Value} tuples
-- 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
     -- FAMILY-SHORT-NAME isis_lsp_tlv
        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,
-- DC addition
            isisLSPTLVHostname
                SnmpAdminString
-- End of DC addition
        }

    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 }

-- DC addition
    isisLSPTLVHostname OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
             "The hostname corresponding to the system ID part of the
              isisLSPID object.

              This is the null string if no hostname is known."
    ::= { isisLSPTLVEntry 7 }
-- End of DC addition

-- The IS-IS Notification Table is not supported by DC-ISIS.

-- DC addition ----------------------------------------------------------------

--
-- PM Slave Join Table.
--
-- This is a read-only table.  It contains information on joins for which
-- the Protocol Manager is acting as slave.  Each row in this table
-- represents one slave join in the Protocol Manager.
--

  isisPmSjTable OBJECT-TYPE
-- FAMILY-SHORT-NAME qipm_sj
    SYNTAX      SEQUENCE OF IsisPmSjEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table contains information on joins on which the Protocol
                 Manager acts as a slave.  Each row in this table represents
                 one slave join in the Protocol Manager."
    ::= { isisPmObjects 1 }

  isisPmSjEntry OBJECT-TYPE
    SYNTAX      IsisPmSjEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Represents a join for which the Protocol Manager is slave."
    INDEX { isisSysInstance,
            isisPmSjInterface,
            isisPmSjMasterEntity
    }

    ::= { isisPmSjTable 1 }

  IsisPmSjEntry ::= SEQUENCE {
      isisPmSjInterface                IsisPmInterfaceId,
      isisPmSjMasterEntity             Unsigned32,
      isisPmSjJoinStatus               IsisSjStatus
    }

  isisPmSjInterface OBJECT-TYPE
    SYNTAX      IsisPmInterfaceId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Identifies the interface provided on this slave join."
    ::= { isisPmSjEntry 1 }

  isisPmSjMasterEntity OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Index which uniquely identifies the master entity among other
                 entities of the same component within this instance of
                 DC-ISIS."
    ::= { isisPmSjEntry 2 }

  isisPmSjJoinStatus OBJECT-TYPE
    SYNTAX      IsisSjStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The status of the slave join."
    ::= { isisPmSjEntry 3 }

-------------------------------------------------------------------------------

-- PM Master Join Table.
--
-- This table contains information on joins for which the Protocol Manager is
-- acting as master.  Each row in this table represents one master join in the
-- Protocol Manager.
-- Only routing protocol joins may be configured in this MIB.  Rows in this
-- table for other join types are read only.
--

  isisPmMjTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qipm_mj
    SYNTAX      SEQUENCE OF IsisPmMjEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "This table controls which entities the Protocol Manager should join
       to as master.  Each join is represented by a row in this table.  The
       status of each join is represented by a read-only object within each
       row.
       Only routing protocol joins may be configured in this MIB.  Rows in this
       table for other join types are read only."
    ::= { isisPmObjects 2 }

  isisPmMjEntry OBJECT-TYPE
    SYNTAX      IsisPmMjEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Represents a join for which the Protocol Manager is master."
    INDEX {
       isisSysInstance,
       isisPmMjInterface,
       isisPmMjSlaveEntity,
       isisPmMjAddrType,
       isisPmMjMtId
       }
    ::= { isisPmMjTable 1 }

  IsisPmMjEntry ::= SEQUENCE {
      isisPmMjInterface                IsisPmInterfaceId,
      isisPmMjSlaveEntity              Unsigned32,
      isisPmMjAddrType                 IsisAddrType,
      isisPmMjMtId                     Integer32,
      isisPmMjRowStatus                RowStatus,
      isisPmMjAdminStatus              IsisAdminStatus,
      isisPmMjOperStatus               IsisOperStatus,
      isisPmMjJoinStatus               IsisMjStatus,
      isisPmMjSubAddrFamily            Integer32
    }

  isisPmMjInterface OBJECT-TYPE
    SYNTAX      IsisPmInterfaceId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Identifies the interface required of this master join.

       This object follows the index behavior."
    ::= { isisPmMjEntry 1 }

  isisPmMjSlaveEntity OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Identifies the slave entity to join with.  This index is used in the
       join user data, to enable FTI-specific code within System Manager to
       select a suitable slave entity.

       This object follows the index behavior."
    ::= { isisPmMjEntry 2 }

  isisPmMjAddrType OBJECT-TYPE
    SYNTAX      IsisAddrType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Identifies the slave entity to join with.  This is used along with the
       isisPmMjSlaveEntity (with address subtype 'none') in the join user data
       on an RPI join, to enable FTI-specific code within System Manager to
       select a suitable slave entity.

       The value is 'none' if isisPmMjInterface is not ifRtProtoInput.

       This object follows the index behavior."
    ::= { isisPmMjEntry 3 }

  isisPmMjMtId OBJECT-TYPE
    SYNTAX      Integer32 (0..4095)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The topology that this join is for.  Note that this only
        applies to RPI joins.

        If multi-topology IS-IS is not supported then this field
        should be set to zero.

        This object follows the index behavior."
    ::= { isisPmMjEntry 9 }

  isisPmMjRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The row status for this master join, used to create and destroy table
       entries."
    ::= { isisPmMjEntry 4 }

  isisPmMjAdminStatus OBJECT-TYPE
    SYNTAX      IsisAdminStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The administrative status of this master join, used to start and stop
       the join."
    DEFVAL { adminStatusUp }
    ::= { isisPmMjEntry 5 }

  isisPmMjOperStatus OBJECT-TYPE
    SYNTAX      IsisOperStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The current operational status of this master join."
    ::= { isisPmMjEntry 6 }

  isisPmMjJoinStatus OBJECT-TYPE
    SYNTAX      IsisMjStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The status of the master join."
    ::= { isisPmMjEntry 7 }

  isisPmMjSubAddrFamily OBJECT-TYPE
    SYNTAX      Integer32 (0..4095)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Identifies the sub address family this join is for.  Note
        that this only applies to RPI joins.

        The value is ignored if isisPmMjInterface is not
        ifRtProtoInput."
    DEFVAL { 0 }
    ::= { isisPmMjEntry 10 }

-------------------------------------------------------------------------------

-- DC addition
-- The DC-ISIS IGP Shortcut Table
--
-- Each IGP shortcut interface known to DC-ISIS corresponds to one entry in
-- this table.

    isisIgpShortcutTable OBJECT-TYPE
     -- FAMILY-SHORT-NAME isis_igp_shortcut
        SYNTAX SEQUENCE OF IsisIgpShortcutEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The table of IGP shortcut tunnel interfaces known to DC-ISIS."
    ::= { isisPmObjects 3 }

    isisIgpShortcutEntry OBJECT-TYPE
        SYNTAX IsisIgpShortcutEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry corresponds to one IGP shortcut tunnel interface
             known to DC-ISIS on this system."
        INDEX { isisSysInstance,
                isisShortcutIfIndex }
    ::= { isisIgpShortcutTable 1 }

    IsisIgpShortcutEntry ::=
        SEQUENCE {
            isisShortcutIfIndex
                InterfaceIndex,
            isisShortcutRemoteAddressType
                InetAddressType,
            isisShortcutRemoteAddress
                InetAddress,
            isisShortcutMetricType
                IgpShortcutMetricType,
            isisShortcutMetricValue
                Integer32,
            isisShortcutOperStatus
                IfOperStatus,
            isisShortcutPendingDeletion
                TruthValue

      }

    isisShortcutIfIndex OBJECT-TYPE
      SYNTAX      InterfaceIndex
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The value of ifIndex for the IGP shortcut tunnel interface."

      ::= { isisIgpShortcutEntry 1 }

    isisShortcutRemoteAddressType OBJECT-TYPE
      SYNTAX InetAddressType
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The Type of IP address for this remote address."

      ::= { isisIgpShortcutEntry 2 }

    isisShortcutRemoteAddress OBJECT-TYPE
      SYNTAX InetAddress (SIZE(4|16))
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The IP Address value for this remote address."

      ::= { isisIgpShortcutEntry 3 }

    isisShortcutMetricType OBJECT-TYPE
      SYNTAX IgpShortcutMetricType
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The type of metric value assigned to this IGP shortcut.

          The type of metric value can be one of the following.
          -  'metricTypeAbsolute'; the metric defined by
             isisShortcutMetricValue is used as the cost of the IGP shortcut.
          -  'metricTypeRelative'; the metric value defined by
             isisShortcutMetricValue is added to the IGP-calculated cost
             of reaching the egress of the shortcut to determine the
             cost of the IGP shortcut.  Note that, in this case, the metric
             value may be zero, positive or negative.  Note also that a
             minimum value of 1 is defined for the result of the sum of the
             IGP-calculated cost and a relative metric value."

      ::= { isisIgpShortcutEntry 4 }

    isisShortcutMetricValue OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The metric assigned to this IGP shortcut.

          If isisShortcutMetricType is set to 'metricTypeAbsolute'
          then this field takes a value in the range of 1 -
          16777215.

          If isisShortcutMetricType is set to 'metricTypeRelative'
          then this field takes a value in the range of -16777214 to
          16777215."

      ::= { isisIgpShortcutEntry 5 }

    isisShortcutOperStatus OBJECT-TYPE
      SYNTAX IfOperStatus
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The operational status of the IGP shortcut interface.

          The IGP shortcut interface is only usable by DC-ISIS if
          isisShortcutOperStatus is set to 'up'."

      ::= { isisIgpShortcutEntry 6 }

    isisShortcutPendingDeletion OBJECT-TYPE
      SYNTAX TruthValue
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "If 'true' then the IGP shortcut interface has been deleted
          but has not yet been removed from DC-ISIS because it might
          still be in use as a TE-tunnel next hop."

      ::= { isisIgpShortcutEntry 7 }

-- End of DC addition

------------------------------------------------------------------------
--
-- DC-ISIS SDC Entity Table
--
-- This is the top-level MIB for the DC-ISIS SDC component.  It controls
-- creation and global configuration of the SDC Component.
--

   isisSdEntTable OBJECT-TYPE
   -- FAMILY-SHORT-NAME qisd_ent
    SYNTAX       SEQUENCE OF IsisSdEntEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "Each entry in this table represents an SDC entity."
  ::= {  isisSdObjects 1 }

   isisSdEntEntry OBJECT-TYPE
    SYNTAX       IsisSdEntEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "Each entry represents an SDC entity."
    INDEX {  isisSdEntIndex }
  ::= {  isisSdEntTable 1 }

   IsisSdEntEntry ::= SEQUENCE {
       isisSdEntIndex                   Integer32,
       isisSdEntRowStatus               RowStatus,
       isisSdEntAdminStatus             IsisAdminStatus,
       isisSdEntOperStatus              IsisOperStatus,
       isisSdEntMapHostnames            TruthValue,
       isisSdEntAuthSNPs                TruthValue,
       isisSdEntBfdProviderIndex        EntityIndexOrZero,
       isisSdEntStopAdjDuplIDs          TruthValue
    }

   isisSdEntIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Non-zero index which identifies an SDC entity."
    ::= {  isisSdEntEntry 1 }

   isisSdEntRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The row status for this SDC Entity Table entry, used to create and
       destroy table entries."
    ::= {  isisSdEntEntry 2 }

   isisSdEntAdminStatus OBJECT-TYPE
    SYNTAX      IsisAdminStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The administrative status of this SDC entity, used to activate and
       deactivate SDC."
    DEFVAL      { adminStatusUp }
    ::= {  isisSdEntEntry 3 }

   isisSdEntOperStatus OBJECT-TYPE
    SYNTAX      IsisOperStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The current operational status of this SDC entity."
    ::= {  isisSdEntEntry 4 }

   isisSdEntMapHostnames OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Should SDC map system IDs to hostnames?

        If 'true', SDC will fill in the isisISAdjNeighHostname and
        isisISAdjNeighLanIDHostname objects (if a hostname is
        known), and will map system IDs to hostnames in PD logs.

        Setting this object to 'true' will cause a small occupancy
        increase, because SDC will set up a database of mappings between
        the system IDs and the corresponding hostnames."
    DEFVAL      { false }
    ::= {  isisSdEntEntry 5 }

   isisSdEntAuthSNPs OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Should SDC authenticate SNP packets?

        If 'false', SDC will not check the authentication on SNP
        packets.  If 'true' then it will.

        Setting this field is sometimes required for
        interoperability with other routers."
    DEFVAL      { false }
    ::= {  isisSdEntEntry 6 }

   isisSdEntBfdProviderIndex OBJECT-TYPE
    SYNTAX      EntityIndexOrZero
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The entity index for the Bidirectional Forwarding Detection
        (BFD) provider to which this SDC entity should join.  Zero
        indicates that no BFD provider is available, or that SDC should
        not join to any BFD provider.

        This field follows the replaceOnlyWhileDisabled behavior."
    DEFVAL      { 0 }
    ::= {  isisSdEntEntry 7 }

   isisSdEntStopAdjDuplIDs OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Flag indicating whether this SDC should prevent an
        adjacency forming to a neighbor with the same System ID
        but a different SNPA address as an existing neighbor over
        the same circuit and level.

        This field can be changed while SDC is active.  Doing so
        will not affect existing adjacencies, but will affect
        whether further adjacencies form."
    DEFVAL      { true }
    ::= {  isisSdEntEntry 8 }

------------------------------------------------------------------------

-- SDC Master Join Table.
--
-- This table contains information on joins for which the Subnetwork Dependent
-- Component is acting as master.  Each row in this table represents one master
-- join in an SDC entity.
--

  isisSdMjTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qisd_mj
    SYNTAX      SEQUENCE OF IsisSdMjEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "This table controls which entities an SDC entity should join to as
       master.  Each join is represented by a row in this table.  The status
       of each join is represented by a read-only object within each row."
    ::= { isisSdObjects 2 }

  isisSdMjEntry OBJECT-TYPE
    SYNTAX      IsisSdMjEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Represents a join for which this SDC entity is master."
    INDEX { isisSdEntIndex,
            isisSdMjInterface }
    ::= { isisSdMjTable 1 }

  IsisSdMjEntry ::= SEQUENCE {
      isisSdMjInterface                IsisSdInterfaceId,
      isisSdMjRowStatus                RowStatus,
      isisSdMjAdminStatus              IsisAdminStatus,
      isisSdMjOperStatus               IsisOperStatus,
      isisSdMjEntityIndex              Unsigned32,
      isisSdMjEntityType               IsisSdEntityType,
      isisSdMjJoinStatus               IsisMjStatus
    }

  isisSdMjInterface OBJECT-TYPE
    SYNTAX      IsisSdInterfaceId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Identifies the interface required of this master join.  Since an SDC
       only has a single join on any of its interfaces, this serves with the
       SDC entity index in uniquely identifying the join.

       This field follows the replaceOnlyWhileDisabled behavior."
    ::= { isisSdMjEntry 1 }

  isisSdMjRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The row status for this master join, used to create and destroy table
       entries."
    ::= { isisSdMjEntry 2 }

  isisSdMjAdminStatus OBJECT-TYPE
    SYNTAX      IsisAdminStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The administrative status of this master join, used to start and stop
       the join."
    DEFVAL { adminStatusUp }
    ::= { isisSdMjEntry 3 }

  isisSdMjOperStatus OBJECT-TYPE
    SYNTAX      IsisOperStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The current operational status of this master join."
    ::= { isisSdMjEntry 4 }

  isisSdMjEntityIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Identifies the slave entity to join with.  This index (possibly along
       with isisSdMjEntityType - see below) is used in the join user data, to
       enable FTI-specific code within System Manager to select a suitable
       slave entity.

       This field follows the replaceOnlyWhileDisabled behavior."
    ::= { isisSdMjEntry 5 }

  isisSdMjEntityType OBJECT-TYPE
    SYNTAX      IsisSdEntityType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "If isisSdMjInterface is ifSubnetDependent, this field indicates the
       type of entity to join with.  This index along with isisSdMjEntityType
       is used in the join user data to enable FTI-specific code within System
       Manager to select a suitable slave entity.

       This field follows the replaceOnlyWhileDisabled behavior."
    DEFVAL { ifProtocolManager }
    ::= { isisSdMjEntry 6 }

  isisSdMjJoinStatus OBJECT-TYPE
    SYNTAX      IsisMjStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The status of the master join."
    ::= { isisSdMjEntry 7 }

-- End of DC addition --------------------------------------------------

-- The IS-IS Notification Table

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

  isisNotificationEntry OBJECT IDENTIFIER
      ::= { isisNotification 1 }

  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 64 initial 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 }

  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 5 }

  isisErrorOffset OBJECT-TYPE
      SYNTAX Unsigned32
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
          "An offset to a problem in a PDU.  If the problem
           is a malformed TLV, this points to the begining
           of the TLV.  If the problem is in the header, this
           points to the byte that is suspicious."
  ::= { isisNotificationEntry 6 }

  isisErrorTLVType OBJECT-TYPE
      SYNTAX Unsigned32 (0..255)
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
           "The type for a malformed TLV."
  ::= { isisNotificationEntry 7 }

  isisNotificationSysInstance OBJECT-TYPE
      SYNTAX Integer32 (1..2147483647)
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
          "The unique identifier of the Integrated IS-IS
           instance for this notification."
  ::= { isisNotificationEntry 8 }

  isisNotificationSysLevelIndex OBJECT-TYPE
      SYNTAX IsisAdjLevel
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
          "The system level for this notification."
  ::= { isisNotificationEntry 9 }

  isisNotificationAreaAddress OBJECT-TYPE
      SYNTAX OSINSAddress
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
          "An Area Address."
  ::= { isisNotificationEntry 10 }

  isisNotificationISAdjIndex OBJECT-TYPE
      SYNTAX Integer32 (1..2000000000)
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
          "A unique value identifying the IS adjacency from all
           other such adjacencies on this circuit."
  ::= { isisNotificationEntry 11 }

  isisNotificationDisState OBJECT-TYPE
      SYNTAX INTEGER
          {
               local (1),
               remote (2),
               none (3)
          }
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
          "The current state of the DIS."
  ::= { isisNotificationEntry 12 }

  isisNotificationAttachedState OBJECT-TYPE
      SYNTAX INTEGER
          {
               attached (1),
               notAttached (2)
          }
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
          "The current state of attachment."
  ::= { isisNotificationEntry 13 }

  isisNotificationNeighSysID OBJECT-TYPE
      SYNTAX SystemID
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
          "The system ID of the neighboring Intermediate
           System."
  ::= { isisNotificationEntry 14 }

  isisNotificationMtId OBJECT-TYPE
      SYNTAX Integer32 (0..4095)
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
          "The topology for which the IS-IS instance is entering or
           leaving attached state."
  ::= { isisNotificationEntry 15 }

-- Type definitions

isisTrapPrefix        OBJECT IDENTIFIER ::= { isisNotifications 0 }

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

  isisManualAddressDrops NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisNotificationAreaAddress
      }
      STATUS current
      DESCRIPTION
          "This notification is generated when one of the
           manual areaAddresses assigned to this system is
           ignored when computing routes.  The object
           isisNotificationAreaAddress 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 }

  isisIDLenMismatch NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisNotificationSysLevelIndex,
          isisPduFieldLen,
          isisCircIfIndex,
          isisPduFragment
      }
      STATUS current
      DESCRIPTION
          "A notification sent when we receive a PDU
           with a different value of the System ID Length.
           This notification includes 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 on the same circuit."
  ::= { isisTrapPrefix 3 }

  isisMaxAreaAddressesMismatch NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisNotificationSysLevelIndex,
          isisPduMaxAreaAddress,
          isisCircIfIndex,
          isisPduFragment
      }
      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 the same circuit."
  ::= { isisTrapPrefix 4 }

  isisOwnLSPPurge NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisNotificationSysLevelIndex,
          isisCircIfIndex,
          isisPduLspId
      }
      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 5 }

  isisAreaMismatch NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisCircIfIndex,
          isisPduFragment
      }
      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 the same circuit."
  ::= { isisTrapPrefix 6 }

  isisRejectedAdjacency NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisNotificationSysLevelIndex,
          isisCircIfIndex,
          isisPduFragment
      }
      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 circuit."
  ::= { isisTrapPrefix 7 }

  isisAdjacencyChange NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisNotificationSysLevelIndex,
          isisCircIfIndex,
          isisPduLspId,
          isisAdjState,
-- DC addition
          isisNotificationISAdjIndex,
          isisISAdjNeighSNPAAddress
-- End of DC addition
      }
      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 8 }

  isisLSPErrorDetected NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisNotificationSysLevelIndex,
          isisPduLspId,
          isisCircIfIndex,
          isisPduFragment,
          isisErrorOffset,
          isisErrorTLVType
      }
      STATUS current
      DESCRIPTION
          "This notification is generated when we receive
           an LSP with a parse error.  The isisCircIfIndex
           holds in index of the circuit on which the PDU
           arrived.  The isisPduFragment holds start of the LSP,
           and the isisErrorOffset points to the problem.

           If the problem is a malformed TLV, isisErrorOffset
           points to start of the TLV and isisErrorTLVType
           holds the value of the type.

           If the problem is with the LSP header, isisErrorOffset
           points to the suspicious byte.

           The number of such LSPs is accumulated in
           isisSysStatLSPErrors."

  ::= { isisTrapPrefix 9 }

  isisAttemptToExceedMaxSequence NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisNotificationSysLevelIndex,
          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 10 }


  isisSequenceNumberSkip NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisNotificationSysLevelIndex,
          isisCircIfIndex,
          isisPduLspId
      }
      STATUS current
      DESCRIPTION
          "When we receive an LSP with our 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 11 }


-- DC addition ---------------------------------------------------------

  isisCircIndTable NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisCircIfIndex,
          isisCircExistState,
          isisCircAdminState,
          isisCircOperState,
          isisCircT1TimerRunning,
          isisCircLevel
      }
      STATUS  current
      DESCRIPTION
          "A notification sent when the value of isisCircOperState for
           a circuit changes to operStatusUp, operStatusDown or
           operStatusActFailed."

  ::= { isisTrapPrefix 12 }

  isisExtPassCircuitInd NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisCircIfIndex,
          isisCircExistState,
          isisCircAdminState,
          isisCircOperState,
          isisCircLevel
      }
      STATUS  current
      DESCRIPTION
          "A notification sent when the value of isisCircOperState for
           a circuit not configured to run the IS-IS protocol (such as
           an external, TE-only or passive circuit) changes to
           operStatusUp, operStatusDown or operStatusActFailed."
  ::= { isisTrapPrefix 13 }

  isisOperStateChange NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisSysOperStatus
      }
      STATUS  current
      DESCRIPTION
          "This notification is generated when the IS-IS system
           changes operational state to operStatusUp, operStatusDown or
           operStatusActFailed."
  ::= { isisTrapPrefix 14 }

  isisLspAuthFailure NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisNotificationSysLevelIndex,
          isisCircIfIndex,
          isisPduLspId
      }
      STATUS current
      DESCRIPTION
          "An IS-IS instance sends this notification if a received
           LSP has failed to authenticate."
  ::= { isisTrapPrefix 15 }

  isisHelloAuthFailure NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisNotificationSysLevelIndex,
          isisCircIfIndex,
          isisNotificationNeighSysID
      }
      STATUS current
      DESCRIPTION
          "An IS-IS instance sends this notification if a received
           Hello has failed to authenticate."
  ::= { isisTrapPrefix 16 }

  isisAttachedStateChange NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisNotificationMtId,
          isisNotificationAttachedState
      }
      STATUS  current
      DESCRIPTION
          "This notification is generated when the Attached state for a
           topology changes and the topology is operationally up."

  ::= { isisTrapPrefix 17 }

  isisDisChange NOTIFICATION-TYPE
      OBJECTS {
          isisNotificationSysInstance,
          isisNotificationSysLevelIndex,
          isisCircIfIndex,
          isisNotificationDisState,
          isisCircLevelDesIS
      }
      STATUS  current
      DESCRIPTION
          "An IS-IS instance sends this notification if the DIS changes
           at level 1 or level 2."

  ::= { isisTrapPrefix 18 }

-- End of DC Addition --------------------------------------------------

-- 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,
                    isisDCAdditionGroup
        }
    ::= { isisCompliances 1 }

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

-- MIB Grouping

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

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


    isisISAdjGroup OBJECT-GROUP
        OBJECTS {
            isisISAdjState,
            isisISAdj3WayState,
            isisISAdjNeighSNPAAddress,
            isisISAdjNeighSysType,
            isisISAdjNeighSysID,
            isisISAdjNbrExtendedCircID,
            isisISAdjUsage,
            isisISAdjHoldTimer,
            isisISAdjNeighPriority,
            isisISAdjLastUpTime,
            isisISAdjAreaAddress,
            isisISAdjIPAddrType,
            isisISAdjIPAddrAddress,
-- DC removal
-- The addition of non-index objects to this table means that this index field
-- has changed from read-only to not-accessible and so no longer appears in
-- this group.
--          isisISAdjProtSuppProtocol,
-- End of DC removal
-- DC addition
            isisISAdjProtSuppLocalSupport,
            isisISAdjProtSuppBfdStatus
-- End of DC addition

        }
        STATUS current
        DESCRIPTION
            "The collections of objects used to manage an
             IS-IS Adjacency."
    ::= { isisGroups 3 }

    isisNotificationObjectGroup OBJECT-GROUP
        OBJECTS {
            isisPduLspId,
            isisPduFragment,
            isisPduFieldLen,
            isisPduMaxAreaAddress,
            isisAdjState,
            isisErrorOffset,
            isisErrorTLVType,
            isisNotificationSysInstance,
            isisNotificationSysLevelIndex,
            isisNotificationAreaAddress,
            isisNotificationISAdjIndex,
            isisNotificationDisState,
            isisNotificationAttachedState,
            isisNotificationNeighSysID,
            isisNotificationMtId
      }
        STATUS current
        DESCRIPTION
            "The objects used to record notification parameters."
    ::= { isisGroups 4 }

    isisNotificationGroup        NOTIFICATION-GROUP
        NOTIFICATIONS {
            isisDatabaseOverload,
            isisManualAddressDrops,
            isisIDLenMismatch,
            isisMaxAreaAddressesMismatch,
            isisOwnLSPPurge,
            isisAreaMismatch,
            isisRejectedAdjacency,
            isisAdjacencyChange,
            isisLSPErrorDetected,
            isisAttemptToExceedMaxSequence,
            isisSequenceNumberSkip,
            isisCircIndTable,
            isisExtPassCircuitInd,
            isisDisChange,
            isisOperStateChange,
            isisHelloAuthFailure,
            isisLspAuthFailure,
            isisAttachedStateChange
        }
        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 }


    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 }

    isisDCAdditionGroup OBJECT-GROUP
        OBJECTS {
            isisSysExistState,
            isisSysOperStatus,
            isisSysAllowAutoI3Config,
            isisSysCalcMaxDelay,
            isisSysCalcThrshUpdStart,
            isisSysCalcThrshUpdRestart,
            isisSysCalcThrshRestartLimit,
            isisSysCalcPauseFreq,
            isisSysCheckChecksums,
            isisSysZeroAgeLifetime,
            isisSysNumUpdPending,
            isisSysNumUpdMerged,
            isisSysNumCksumsPending,
            isisSysTEMetricPcntge,
            isisSysMaxBwidthPcntge,
            isisSysMaxResBwidthPcntge,
            isisSysUnresBwidthPcntge,
            isisSysMaxLSPBwidthPcntge,
            isisSysMinLSPBwidthPcntge,
            isisSysMTUSizePcntge,
            isisSysTERouterID,
            isisSysIPv6TERouterID,
            isisSysMaxExternalRoutes,
            isisSysMaxExternalRoutesAction,
            isisSysLspFullSuppress,
            isisSysLspFullSetDBOL,
            isisSysRestartHelpPeer,
            isisSysRestartActivationType,
            isisSysRestartAutoResetType,
            isisSysRestartAdjacencyWait,
            isisSysMaxRecoveryTime,
            isisSysClearStats,
            isisSysSetAttached,
            isisSysProtSupported,
            isisSysRestrictLanAdjsToSubnet,
            isisSysHostName,
            isisSysCalcSoonAfterCircChange,
            isisSysSendNotifications,
            isisSysEnableIgpShortcut,
            isisSysI3EntityIndex,
            isisSysRtmPurgeTime,
            isisRouterIPv6ID,
            isisSysLevelIPv6TEEnabled,
            isisSysLevelRestartT2Duration,
            isisSysLevelAuthUser,
            isisCircOperState,
            isisCircSdEntityIndex,
            isisCircDlBuffPoolSize,
            isisCircSdPDUBuffPoolSize,
            isisCircSdIndBuffPoolSize,
            isisCircDataLinkBlockSize,
            isisCircPhysicalAddress,
            isisCircManualOrAutomatic,
            isisCircT1TimerRunning,
            isisCircProtSupported,
            isisCircPtToPtOverLAN,
            isisCircProtBfdDesired,
            isisCircIfName,
            isisCircLevelStickyDIS,
            isisCircLevelAuthUser,
            isisCircLevelIDHostname,
            isisCircLevelDesISHostname,
            isisCircLevelMinLSPArrivalInt,
            isisSysStatPSNPError,
            isisSysStatCSNPError,
            isisSysStatLSPQueueLen,
            isisSysStatFragsRebuilt,
            isisSysStatLSPRexmits,
            isisSysStatLSPRegens,
            isisSysStatPurgesInitiated,
            isisSysStatLSPCount,
            isisSysStatPurgesIniLocal,
            isisSysStatPurgesIniRemote,
            isisSysStatPurgesIniRemSNP,
            isisSysStatPurgesIniRemExp,
            isisSysStatPurgesIniRemPrs,
            isisPacketCountDiscardedIIH,
            isisPacketCountDiscardedLSP,
            isisPacketCountDiscardedCSNP,
            isisPacketCountDiscardedPSNP,
            isisISAdjRestartCapable,
            isisISAdjPeerRestartState,
            isisISAdjSuppressed,
            isisISAdjNeighLanID,
            isisISAdjNeighHostname,
            isisISAdjNeighLanIDHostname,
            isisLSPIDHostname,
            isisLSPTLVHostname,
            isisPmSjJoinStatus,
            isisPmMjRowStatus,
            isisPmMjAdminStatus,
            isisPmMjOperStatus,
            isisPmMjJoinStatus,
            isisSdEntRowStatus,
            isisSdEntAdminStatus,
            isisSdEntOperStatus,
            isisSdEntMapHostnames,
            isisSdEntAuthSNPs,
            isisSdEntBfdProviderIndex,
            isisSdEntStopAdjDuplIDs,
            isisSdMjRowStatus,
            isisSdMjAdminStatus,
            isisSdMjOperStatus,
            isisSdMjEntityIndex,
            isisSdMjEntityType,
            isisSdMjJoinStatus,
            isisMtSysExistState,
            isisMtSysAdminState,
            isisMtSysOperState,
            isisMtSysProtSupported,
            isisMtSysDefaultActive,
            isisMtCircManExistState,
            isisMtCircManAdminState,
            isisMtCircManOperState,
            isisMtCircManL1WideMetric,
            isisMtCircManL2WideMetric,
            isisMtCircStatusOperState,
            isisMtCircStatusL1WideMetric,
            isisMtCircStatusL2WideMetric,
            isisISAdjMtSuppLocalSupport,
            isisIPRAMtId,
            isisPmMjSubAddrFamily,
            isisShortcutRemoteAddressType,
            isisShortcutRemoteAddress,
            isisShortcutMetricType,
            isisShortcutMetricValue,
            isisShortcutOperStatus,
            isisShortcutPendingDeletion
        }
        STATUS current
        DESCRIPTION
            "The collection of Data Connection additions to the MIB."
    ::= { isisGroups 10 }

END
