  DC-OSPF-MIB DEFINITIONS ::= BEGIN

  -- PRODUCT-SHORT-NAME ospf

  IMPORTS
      MODULE-IDENTITY,
      OBJECT-TYPE,
      NOTIFICATION-TYPE,
      Counter32,
      Gauge32,
      enterprises, Integer32,
      Unsigned32,
      IpAddress
                                        FROM SNMPv2-SMI

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

      TEXTUAL-CONVENTION,
      DisplayString,
      RowStatus,
      TruthValue
                                        FROM SNMPv2-TC

      InterfaceIndex,
      InterfaceIndexOrZero
                                        FROM IF-MIB

      AuthUserDataString, NpgOperStatus, NumericIndex, IgpShortcutMetricType,
      IfOperStatus
                                        FROM DC-MASTER-TC;

  ospfMib 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-OSPF product,
                    including the E-NNI Routing function."
    -- Revision history
      REVISION     "201412210000Z"  -- December 21, 2014
      DESCRIPTION
        "Initial edition."
  ::= { opx 3 }

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

  ospfObjects OBJECT IDENTIFIER ::= { ospfMib 1 } -- tables

-- Textual conventions

  OspfPmAdminStatus ::= TEXTUAL-CONVENTION
      STATUS      current
      DESCRIPTION
         "The desired administrative state of an OSPF Protocol Manager entity."
      SYNTAX      INTEGER {
                    adminStatusUp(1),
                    adminStatusDown(2)
                  }

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

  OspfPmIndex ::= TEXTUAL-CONVENTION
      STATUS      current
      DESCRIPTION "The index value identifying an OSPF entity."
      SYNTAX      Unsigned32

  OspfPmMjStatus ::= 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
                }

  OspfPmSjStatus ::= 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
                }

  OspfPmInterfaceId ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "The type of interface to which a join applies."
    SYNTAX      INTEGER {
                  ifIpSockets(1),          -- IP Sockets; deprecated
                  ifIfInfo(2),             -- Interface Information
                  ifRteProtInput(3)        -- Routing Protocol Input
                }

  OspfPmSlaveInterfaceId ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "The type of interface to which a slave join applies."
    SYNTAX      INTEGER {
                  ifCspfInterface(1),      -- CSPF Database Update Interface
                  ifNmInterface(2),        -- Neighbor Manager Interface
                  ifPdiInterface(3)        -- PCE Discovery Interface
                }

--  Note the Area ID, in OSPF, has the same format as an IP Address,
--  but has the function of defining a summarization point for
--  Link State Advertisements

  AreaID ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
           "An OSPF Area Identifier."
        SYNTAX       IpAddress

--  Note: The Router ID, in OSPF, has the same format as an IP
--  Address, but identifies the router independent of its IP Address.

  RouterID ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
           "An OSPF Router Identifier."
        SYNTAX       IpAddress

  OspfVersionNumber ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "OSPF version number."
    SYNTAX      INTEGER {
                  version2(2)
                }

  OspfAuthTypes ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "OSPF authentication type."
    SYNTAX      INTEGER {
                  authNone(0),
                  authSimplePassword(1),
                  authMd5(2),
                  authHmacSha1(3),
                  authHmacSha256(4),
                  authHmacSha384(5),
                  authHmacSha512(6)
                }

  OspfImportTypes ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "OSPF import type.  This determines whether an area should import
       externals."
    SYNTAX      INTEGER {
                  importExternal(1),
                  importNoExternal(2),
                  importNssa(3)
                }

  OspfSummaryTypes ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "Determines whether an area border router should advertise inter-area
       routes into this area."
    SYNTAX      INTEGER {
                  summNoAreaSummary(1),
                  summSendAreaSummary(2)
                }

  OspfTransRoles ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "Determines whether this router should always perform NSSA translation
       or only when elected."
    SYNTAX      INTEGER {
                  roleAlways(1),
                  roleCandidate(2)
                }

  OspfTransStates ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "Determines whether this router is performing NSSA translation."
    SYNTAX      INTEGER {
                  stateEnabled(1),
                  stateElected(2),
                  stateDisabled(3)
                }

  OspfMetricTypes ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "OSPF Metric type."
    SYNTAX      INTEGER {
                  metricStandard(1),       -- OSPF Metric
                  metricComparableCost(2), -- external type 1
                  metricNonComparable(3)   -- external type 2
                }

  OspfExtLsTypes ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "OSPF external-scope LSA types."
    SYNTAX      INTEGER {
                  lsExternalLink(5),
                  lsExternalOpaqueLink(11)
                }

  OspfAreaLsTypes ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "OSPF area-scope LSA types."
    SYNTAX      INTEGER {
                  lsRouterLink(1),
                  lsNetworkLink(2),
                  lsSummaryLink(3),
                  lsAsSummaryLink(4),
                  lsMulticastLink(6),
                  lsNssaExternalLink(7),
                  lsAreaOpaqueLink(10)
                }

  OspfLinkLsTypes ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "OSPF link-local-scope LSA types."
    SYNTAX      INTEGER {
                  lsLinkOpaqueLink(9)
                }

  OspfAggLsTypes ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "OSPF LSA types aggregated across area boundaries."
    SYNTAX      INTEGER {
                  lsSummaryLink(3),
                  lsNssaExternalLink(7)
                }

  OspfNetworkTypes ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "OSPF Network type."
    SYNTAX      INTEGER {
                  networkUndefined(0),
                  networkBroadcast(1),
                  networkNbma(2),
                  networkPointToPoint(3),
                  networkPointToMultipoint(5),
                  networkLoopback(10)
                }


  OspfInterfaceStates ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "OSPF Interface State."
    SYNTAX      INTEGER {
                  ifDown(1),
                  ifLoopback(2),
                  ifWaiting(3),
                  ifPointToPoint(4),
                  ifDesignatedRouter(5),
                  ifBackupDesignatedRouter(6),
                  ifOtherDesignatedRouter(7),
                  ifStandby(8)
                }

  OspfMulticastFwardTypes ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "OSPF Multicast forwarding types."
    SYNTAX      INTEGER {
                  multicastBlocked(1),   -- no multicast forwarding
                  multicast(2),          -- using multicast address
                  multicastUnicast(3)    -- to each OSPF neighbor
                }

  OspfNeighborStates ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "OSPF Neighbor State."
    SYNTAX      INTEGER {
                  nbrDown(1),
                  nbrAttempt(2),
                  nbrInit(3),
                  nbrTwoWay(4),
                  nbrExchangeStart(5),
                  nbrExchange(6),
                  nbrLoading(7),
                  nbrFull(8)
                }

  OspfNbrPermanence ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "OSPF Neighbor Permanence."
    SYNTAX      INTEGER {
                  permDynamic(1),    -- learned through protocol
                  permPermanent(2)   -- configured address
                }

  OspfAggregateEffects ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Determines whether an area aggregate should be advertised."
    SYNTAX      INTEGER {
                  effectAdvertiseMatching(1),
                  effectDoNotAdvertiseMatching(2)
                }

  OspfHitlessRestartReasons ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "OSPF reasons for Hitless Restart."
    SYNTAX      INTEGER {
                  reasonUnknown(0),
                  reasonSoftwareRestart(1),
                  reasonSoftwareReload(2),
                  reasonSwitchToBackup(3)
                }

--  Note the OSPF Metric is defined as an unsigned value in the range

  Metric ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
           "The OSPF Internal Metric."
        SYNTAX       Integer32 (0..'FFFF'h)

  BigMetric ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
           "The OSPF External Metric."
        SYNTAX       Integer32 (0..'FFFFFF'h)

--  Note that the following Time Durations are measured in seconds

  PositiveInteger ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
           "A positive integer.  Values in excess are precluded as
           unnecessary and prone to interoperability issues."
        SYNTAX       Integer32 (0..'7FFFFFFF'h)

  HelloRange ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
           "The range of intervals on which hello messages are
           exchanged."
        SYNTAX       Integer32 (1..'FFFF'h)

  FastHelloMultiplierRange ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
           "The range of hello multipliers that determine how often
           Fast Hellos are exchanged."
        SYNTAX       Integer32 (3..20)

  UpToMaxAge ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
           "The values that one might find or configure for
           variables bounded by the maximum age of an LSA."
        SYNTAX       Integer32 (0..3600)

  UpToRefreshInterval ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
           "The values configurable for variables bounded
            by the Refresh Interval."
        SYNTAX       Integer32 (1..1800)

--  Potential Priorities for the Designated Router Election

  DesignatedRouterPriority ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
           "The values defined for the priority of a system for
           becoming the designated router."
        SYNTAX       Integer32 (0..'FF'h)

  TOSType ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION
           "Type of Service is defined as a mapping to the IP Type of
           Service Flags as defined in the IP Forwarding Table MIB

               +-----+-----+-----+-----+-----+-----+-----+-----+
               |                 |                       |     |
               |   PRECEDENCE    |    TYPE OF SERVICE    |  0  |
               |                 |                       |     |
               +-----+-----+-----+-----+-----+-----+-----+-----+

                        IP TOS                IP TOS
                   Field     Policy      Field     Policy

                   Contents    Code      Contents    Code
                   0 0 0 0  ==>   0      0 0 0 1  ==>   2
                   0 0 1 0  ==>   4      0 0 1 1  ==>   6
                   0 1 0 0  ==>   8      0 1 0 1  ==>  10
                   0 1 1 0  ==>  12      0 1 1 1  ==>  14
                   1 0 0 0  ==>  16      1 0 0 1  ==>  18
                   1 0 1 0  ==>  20      1 0 1 1  ==>  22
                   1 1 0 0  ==>  24      1 1 0 1  ==>  26
                   1 1 1 0  ==>  28      1 1 1 1  ==>  30

            The remaining values are left for future definition."
            SYNTAX       Integer32 (0..30)

  OspfPmIfLinkProtValue ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION "Value denoting the protection capabilities of the
                    interface.

                    Named bits must be numbered contiguously starting at zero.
                    The allowable values for the protection values start at bit
                    24.  We therefore define bits linkUnused0 - linkUnused23 to
                    ensure that the MIB compiles."
        SYNTAX      BITS {
                      linkUnused0(0),
                      linkUnused1(1),
                      linkUnused2(2),
                      linkUnused3(3),
                      linkUnused4(4),
                      linkUnused5(5),
                      linkUnused6(6),
                      linkUnused7(7),
                      linkUnused8(8),
                      linkUnused9(9),
                      linkUnused10(10),
                      linkUnused11(11),
                      linkUnused12(12),
                      linkUnused13(13),
                      linkUnused14(14),
                      linkUnused15(15),
                      linkUnused16(16),
                      linkUnused17(17),
                      linkUnused18(18),
                      linkUnused19(19),
                      linkUnused20(20),
                      linkUnused21(21),
                      linkUnused22(22),
                      linkUnused23(23),
                      linkExtraTraffic(24),
                      linkUnprotected(25),
                      linkShared(26),
                      linkDedicated1To1(27),
                      linkDedicated1Plus1(28),
                      linkEnhanced(29)
                    }

  OspfPmIfSwitchCapValue ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION "Value indicating the switching capabilities of the
        interface."
        SYNTAX      INTEGER {
                      ifPacketSwitchCapable1(1),
                      ifPacketSwitchCapable2(2),
                      ifPacketSwitchCapable3(3),
                      ifPacketSwitchCapable4(4),
                      ifLayer2SwitchCapable(51),
                      ifTDMCapable(100),
                      ifLambdaSwitchCapable(150),
                      ifFiberSwitchCapable(200)
                    }

  OspfPmIfSwitchEncodingValue ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION "The type of encoding used on this interface."
        SYNTAX      INTEGER {
                      ifPacketCapable(1),
                      ifEthernetCapable(2),
                      ifAnsiEtsiPdhCapable(3),
                      ifSdhSonetCapable(5),
                      ifDigWrapperCapable(7),
                      ifLambdaCapable(8),
                      ifFiberCapable(9),
                      ifFiberChannelCapable(11)
                    }

  OspfPmIfSwitchSonetSdhValue ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION "The SONET or SDH support on this interface."
        SYNTAX      INTEGER {
                      ifSonetSdhStandard(0),
                      ifSonetSdhArbitrary(1)
                    }

  OspfPmEntPrivateDataType ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
       "Represents private data field."
    SYNTAX       OCTET STRING (SIZE (0..128))

  OspfHelperModePolicy ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION "Bit flags used in the bit field that determines
                     whether OSPF helps a router attempting hitless
                     restart for a certain restart reason."
        SYNTAX      BITS {
                      helpPolicyUnknown(0),
                      helpPolicySoftware(1),
                      helpPolicyReload(2),
                      helpPolicySwitch(3)
                    }

  OspfRestartHelperStatus ::= TEXTUAL-CONVENTION
         STATUS      current
         DESCRIPTION "Indicates whether the router is acting as a
                      hitless restart helper for a neighbor."
         SYNTAX     INTEGER {
                      notHelping(1),
                      helping(2)
                    }

  OspfRestartExitReason ::= TEXTUAL-CONVENTION
         STATUS      current
         DESCRIPTION
            "The reason for exiting an attempted graceful restart."
         SYNTAX     INTEGER {
                      none (1),           -- none attempted
                      inProgress (2),     -- restart in progress
                      completed (3),      -- successfully completed
                      timedOut (4),       -- timed out
                      topologyChanged (5) -- aborted due to topology change.
                    }

  OspfShamConflictFlags ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION "Bit flags indicating conflicts between local sham link
                     endpoint addresses and addresses advertized into OSPF."
        SYNTAX      BITS {
                      shamConflictIf(0),
                      shamConflictHost(1),
                      shamConflictRtm(2),
                      shamConflictStable(3)
                    }

  OspfPathType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "OSPF path types."
    SYNTAX      INTEGER {
                  pathTypeNone(0),
                  pathTypeIntraArea(1),
                  pathTypeInterArea(2),
                  pathTypeType1Ext(3),
                  pathTypeType2Ext(4)
                }

  OspfDesignatedRtrState ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Designated router states."
    SYNTAX      INTEGER {
                  designatedOther(0),
                  designatedRouter(1),
                  backupDesignatedRouter(2)
                }

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

-- OSPF Protocol Manager Entity Table
-- This table is used to create and manage OSPF Protocol Manager entities.

  ospfPmEntTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_ent
       SYNTAX      SEQUENCE OF OspfPmEntEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The table of OSPF entities."
       ::= { ospfObjects 1 }

  ospfPmEntEntry OBJECT-TYPE
       SYNTAX      OspfPmEntEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "Each entry represents an instance of the OSPF Protocol Manager
          entity."
       INDEX { ospfPmEntIndex }
       ::= { ospfPmEntTable 1 }

  OspfPmEntEntry ::= SEQUENCE {
         ospfPmEntRouterId                  RouterID,
         ospfPmEntAdminStat                 OspfPmAdminStatus,
         ospfPmEntVersionNumber             OspfVersionNumber,
         ospfPmEntAreaBdrRtrStatus          TruthValue,
         ospfPmEntASBdrRtrStatus            TruthValue,
         ospfPmEntExternLsaCount            Gauge32,
         ospfPmEntExternLsaCksumSum         Integer32,
         ospfPmEntTOSSupport                TruthValue,
         ospfPmEntOriginateNewLsas          Counter32,
         ospfPmEntRxNewLsas                 Counter32,
         ospfPmEntExtLsdbLimit              Integer32,
         ospfPmEntMulticastExtns            Integer32,
         ospfPmEntExitOverflowIntvl         PositiveInteger,
         ospfPmEntDemandExtensions          TruthValue,
         ospfPmEntRFC1583Comp               TruthValue,
         ospfPmEntOpaqueLsaSupport          TruthValue,
         ospfPmEntTrafficEngSupport         TruthValue,
         ospfPmEntIndex                     OspfPmIndex,
         ospfPmEntOperStatus                OspfPmOperStatus,
         ospfPmEntRowStatus                 RowStatus,
         ospfPmEntCalcMaxDelay              Unsigned32,
         ospfPmEntCalcThrshUpdStart         Unsigned32,
         ospfPmEntCalcThrshUpdRestart       Unsigned32,
         ospfPmEntCalcThrshIncUpdates       Unsigned32,
         ospfPmEntCalcThrshIncSpfUpd        Unsigned32,
         ospfPmEntCalcPauseFreq             Unsigned32,
         ospfPmEntRteMaxEqCostPaths         Unsigned32,
         ospfPmEntCheckAge                  Unsigned32,
         ospfPmEntExtLsaRfshIntvl           Integer32,
         ospfPmEntExtOpLsaCount             Gauge32,
         ospfPmEntExtOpLsaCksumSum          Integer32,
         ospfPmEntNumUpdPending             Unsigned32,
         ospfPmEntNumUpdMerged              Unsigned32,
         ospfPmEntNumCksumsPending          Unsigned32,
         ospfPmEntDoGraceHitless            TruthValue,
         ospfPmEntDoGraceUnplannedHitless   TruthValue,
         ospfPmEntHitlessGracePeriod        UpToRefreshInterval,
         ospfPmEntHitlessRestartReason      OspfHitlessRestartReasons,
         ospfPmEntTERouterId                RouterID,
         ospfPmEntPrivateData               OspfPmEntPrivateDataType,
         ospfPmEntSupportEnniRouting        TruthValue,
         ospfPmEntRestartStatus             INTEGER,
         ospfPmEntRestartAge                UpToRefreshInterval,
         ospfPmEntRestartExitReason         OspfRestartExitReason,
         ospfPmEntCurrentRouterId           RouterID,
         ospfPmEntCurrentTERouterId         RouterID,
         ospfPmEntCalcSoonAfterIfChng       TruthValue,
         ospfPmEntI3EntIndex                NumericIndex,
         ospfPmEntEnableIgpShortcut         TruthValue,
         ospfPmEntVpnPeCeSupport            TruthValue,
         ospfPmEntVpnRouteTag               Unsigned32,
         ospfPmEntVpnRouterIdAttr           TruthValue,
         ospfPmEntDfltExtType1Metric        Integer32,
         ospfPmEntDfltExtType2Metric        Integer32,
         ospfPmEntRtmPurgeTime              Integer32,
         ospfPmEntMinLsInterval             Integer32,
         ospfPmEntMinLsArrival              Integer32,
         ospfPmEntVpnDfltShamLinkMetric     Integer32,
         ospfPmEntInstanceId                Integer32,
         ospfPmEntStatsReset                TruthValue,
         ospfPmEntEnableTrapSupport         TruthValue
       }

  ospfPmEntRouterId OBJECT-TYPE
       SYNTAX       RouterID
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The configured Router ID.

          This is a 32-bit integer uniquely identifying the router in the
          Autonomous System.  For example, it is usually set to the
          smallest IP address belonging to the router.

          If this field is set to the default value of zero (0.0.0.0) then
          DC-OSPF will choose a Router ID.  Otherwise, DC-OSPF will use
          this MIB configured value.

          ospfPmEntCurrentRouterId displays the Router ID currently in use
          by DC-OSPF.

          When the Router ID is chosen by DC-OSPF, it is equal to the
          highest loopback address on the router, or the highest active
          interface if there are no loopback addresses.

          This field cannot be changed if the row is admin status up and
          row status active."
       REFERENCE
          "OSPF Version 2, C.1 Global parameters"
       DEFVAL { '00000000'H } -- 0.0.0.0
       ::= { ospfPmEntEntry 1 }

  ospfPmEntAdminStat OBJECT-TYPE
       SYNTAX       OspfPmAdminStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The desired administrative state of the OSPF Protocol Manager
          entity."
       DEFVAL { adminStatusUp }
       ::= { ospfPmEntEntry 2 }

  ospfPmEntVersionNumber OBJECT-TYPE
       SYNTAX       OspfVersionNumber
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The current version number of the OSPF protocol is 2."
       REFERENCE
          "OSPF Version 2, Title"
       ::= { ospfPmEntEntry 3 }

  ospfPmEntAreaBdrRtrStatus OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "A flag to note whether this router is an area
          border router."
       REFERENCE
          "OSPF Version 2, Section 3 Splitting the AS into
          Areas"
       ::= { ospfPmEntEntry 4 }

  ospfPmEntASBdrRtrStatus OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "A flag to note whether this router is configured
          as an Autonomous System border router."
       REFERENCE
          "OSPF Version 2, Section 3.3 Classification of
          routers"
       DEFVAL { true }
       ::= { ospfPmEntEntry 5 }

  ospfPmEntExternLsaCount OBJECT-TYPE
       SYNTAX       Gauge32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of external (LS type 5) link-state
          advertisements in the link-state database."
       REFERENCE
          "OSPF Version 2, Appendix A.4.5 AS external link
          advertisements"
       ::= { ospfPmEntEntry 6 }

  ospfPmEntExternLsaCksumSum OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The 32-bit unsigned sum of the LS checksums of
          the external link-state advertisements contained
          in the link-state database.  This sum
          can be used to determine if there has been a
          change in a router's link state database, and
          to compare the link-state database of two
          routers."
       ::= { ospfPmEntEntry 7 }

  ospfPmEntTOSSupport OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The router's support for type-of-service routing."
       REFERENCE
          "OSPF Version 2, Appendix F.1.2 Optional TOS
          support"
       DEFVAL { false }
       ::= { ospfPmEntEntry 8 }

  ospfPmEntOriginateNewLsas OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of new link-state advertisements
          that have been originated.  This number is incremented
          each time the router originates a new LSA. It includes
          all originated LSAs, including those which have merely
          been refreshed."
       ::= { ospfPmEntEntry 9 }

  ospfPmEntRxNewLsas OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of link-state advertisements received
          determined to be new instances.  This number does
          not include newer instances of self-originated
          link-state advertisements.  Nor does it include
          received LSAs with an age of MaxAge."
       ::= { ospfPmEntEntry 10 }

  ospfPmEntExtLsdbLimit OBJECT-TYPE
       SYNTAX       Integer32 (-1..'7FFFFFFF'h)
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "We do not currently support the Database Overflow
          extension, so the setting of this parameter is
          ignored.

          It specifies the maximum number of non-default
          AS-external-LSAs entries that can be stored in the
          link-state database.  If the value is -1, then
          there is no limit.

          When the number of non-default AS-external-LSAs
          in a router's link-state database reaches
          ospfPmEntExtLsdbLimit, the router enters
          Overflow-State.  The router never holds more than
          ospfPmEntExtLsdbLimit non-default AS-external-LSAs
          in its database.  ospfPmEntExtLsdbLimit MUST be set
          identically in all routers attached to the OSPF
          backbone and/or any regular OSPF area.  (i.e.,
          OSPF stub areas and NSSAs are excluded)."
       DEFVAL { -1 }
       ::= { ospfPmEntEntry 11 }

  ospfPmEntMulticastExtns OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "We do not currently support Multicast Extensions,
          so the setting of this parameter is ignored.

          A Bit Mask indicating whether the router is
          forwarding IP multicast (Class D) datagrams
          based on the algorithms defined in the Multicast
          Extensions to OSPF.

          Bit 0, if set, indicates that the router can
          forward IP multicast datagrams in the router's
          directly attached areas (called intra-area multicast
          routing).

          Bit 1, if set, indicates that the router can
          forward IP multicast datagrams between OSPF
          areas (called inter-area multicast routing).

          Bit 2, if set, indicates that the router can
          forward IP multicast datagrams between Autonomous
          Systems (called inter-AS multicast routing).

          Only certain combinations of bit settings are
          allowed, namely: 0 (no multicast forwarding is
          enabled), 1 (intra-area multicasting only), 3
          (intra-area and inter-area multicasting), 5
          (intra-area and inter-AS multicasting) and 7
          (multicasting everywhere).  By default, no multicast
          forwarding is enabled."
       DEFVAL { 0 }
       ::= { ospfPmEntEntry 12 }

  ospfPmEntExitOverflowIntvl OBJECT-TYPE
       SYNTAX       PositiveInteger
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "We do not currently support the Database Overflow
          extension, so the setting of this parameter is
          ignored.

          It specifies the number of seconds that, after
          entering OverflowState, a router will attempt to
          leave OverflowState.  This allows the router to
          again originate non-default AS-external-LSAs.
          When set to 0, the router will not leave
          Overflow-State until restarted."
       DEFVAL { 0 }
       ::= { ospfPmEntEntry 13 }

  ospfPmEntDemandExtensions OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "We do not currently support demand routing, so the
          setting of this parameter is ignored."
       REFERENCE
          "Extending OSPF to Support Demand Circuits"
       DEFVAL { false }
       ::= { ospfPmEntEntry 14 }

  ospfPmEntRFC1583Comp OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Indicates metrics used to choose among multiple
          AS-external-LSAs.  When RFC1583Compatibility is set to
          true, only cost will be used when choosing among
          multiple AS-external-LSAs advertising the same
          destination.  When RFC1583Compatibility is set to
          false, preference will be driven first by type of
          path using cost only to break ties.

          In order to minimize the chance of routing loops, all OSPF
          routers in an OSPF routing domain should have
          RFC1583Compatibility set identically.  When there are routers
          present that have not been updated with the functionality
          specified in RFC2328 Section 16.4.1, all routers should
          have RFC1583Compatibility set to true.  Otherwise, all
          routers should have RFC1583Compatibility set to false,
          preventing all routing loops."
       REFERENCE
          "OSPF Version 2, Section 16.4.1 External path preferences"
       DEFVAL { false }
       ::= { ospfPmEntEntry 15 }

  ospfPmEntOpaqueLsaSupport OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The router's support for Opaque LSA types.  This value cannot be
           changed when the Entity MIB is active and in oper state up."
       REFERENCE
          "The OSPF Opaque LSA Option"
       DEFVAL { true }
       ::= { ospfPmEntEntry 16 }

  ospfPmEntTrafficEngSupport OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The router's support for OSPF traffic engineering.  This value
           cannot be changed when the Entity MIB is active and in oper
           state up."
       DEFVAL { true }
       ::= { ospfPmEntEntry 17 }

-- start of DC-OSPF implementation specific MIB variables

  ospfPmEntIndex OBJECT-TYPE
       SYNTAX       OspfPmIndex
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The index of this ospfPmEntEntry.  This is the HAF entity index
          passed on the entity create parameters."
       ::= { ospfPmEntEntry 18 }

  ospfPmEntOperStatus OBJECT-TYPE
       SYNTAX       OspfPmOperStatus
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The current operational state of the OSPF Protocol Manager entity."
       ::= { ospfPmEntEntry 19 }

  ospfPmEntRowStatus OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Used to create and delete an OSPF Protocol Manager Entity Table
          entry.  Note that when this object is set to 'active', the
          ospfPmEntRouterId object in the row may not be modified."
       ::= { ospfPmEntEntry 20 }

  ospfPmEntCalcMaxDelay OBJECT-TYPE
       SYNTAX       Unsigned32
       UNITS        "milliseconds"
       MAX-ACCESS   read-write
       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 }
       ::= { ospfPmEntEntry 21 }

  ospfPmEntCalcThrshUpdStart OBJECT-TYPE
       SYNTAX       Unsigned32 (0..'FFFFFFFF'h)
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "This parameter can be used to override the above routing
          calculation delay 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
            above configured calculation delay."
       DEFVAL { 'FFFFFFFF'h }
       ::= { ospfPmEntEntry 22 }

  ospfPmEntCalcThrshUpdRestart OBJECT-TYPE
       SYNTAX       Unsigned32 (0..'FFFFFFFF'h)
       MAX-ACCESS   read-write
       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 { 'FFFFFFFF'h }
       ::= { ospfPmEntEntry 23 }

  ospfPmEntCalcThrshIncUpdates OBJECT-TYPE
       SYNTAX       Unsigned32 (0..'FFFFFFFF'h)
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "This parameter can be used to optimize the performance of the
          Routing Calculator in the situation where updates that are pending
          to the Link State Database solely concern inter-area or AS-external
          routes.  In this case, the Routing Table can be updated either by
          one full recalculation, or by multiple incremental recalculations.

          This parameter is used to configure the threshold value for which
          recalculation by multiple incremental updates is no longer quicker
          than a single full recalculation.

          - 0 indicates that incremental updates will never be used.

          - 1 indicates that a full recalculation will be performed whenever
            there are more than one updates to make to inter-area or
            AS-external routes.

          - 0xFFFFFFFF indicates that this threshold is infinite, and
            incremental recalculations are always done in preference to
            a full recalculation."
       DEFVAL { 50 }
       ::= { ospfPmEntEntry 24 }

  ospfPmEntCalcThrshIncSpfUpd OBJECT-TYPE
       SYNTAX       Unsigned32 (0..'FFFFFFFF'h)
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "This parameter can be used to optimize the performance of the
          Routing Calculator in the situation where updates that are pending
          to the Link State Database concern intra-area routes.  In this case,
          the Routing Table can be updated either by one full recalculation,
          or by multiple incremental SPF recalculations.

          This parameter is used to configure the threshold value for which
          recalculation by multiple incremental SPF updates is no longer
          quicker than a single full recalculation.

          - 0 indicates that incremental SPF updates will never be used.

          - 1 indicates that a full recalculation will be performed whenever
            there are more than one updates to make to intra-area routes.

          - 0xFFFFFFFF indicates that this threshold is infinite, and
            incremental SPF recalculations are always done in preference to
            a full recalculation."
       DEFVAL { 0 }
       ::= { ospfPmEntEntry 25 }

  ospfPmEntCalcPauseFreq OBJECT-TYPE
       SYNTAX       Unsigned32 (0..'FFFFFFFF'h)
       MAX-ACCESS   read-write
       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-OSPF 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 }
       ::= { ospfPmEntEntry 26 }

  ospfPmEntRteMaxEqCostPaths OBJECT-TYPE
       SYNTAX       Unsigned32 (1..'FFFF'h)
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The maximum number of equal cost paths that are stored for each
          destination in the Routing Table.

          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 * ospfPmEntRteMaxEqCostPaths paths stored for a single
          destination."
       DEFVAL { 5 }
       ::= { ospfPmEntEntry 27 }

  ospfPmEntCheckAge OBJECT-TYPE
       SYNTAX       Unsigned32 (0..'FFFFFFFF'h)
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "This value determines how often the checksums of LSAs in the Link
          State Database are checked.  If 0, no checksums in the database are
          checked."
       DEFVAL { 300 }
       ::= { ospfPmEntEntry 28 }

  ospfPmEntExtLsaRfshIntvl OBJECT-TYPE
       SYNTAX       Integer32 (1..3599)
       UNITS        "seconds"
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Self-originated LSAs are periodically reflooded into the routing
          domain, to add to the robustness of the OSPF protocol.  This value
          determines the interval between refreshes of AS-scope LSAs, for
          example, AS-external LSAs, and is defaulted to the OSPF standard
          default of 1800 seconds (30 minutes)."
       DEFVAL { 1800 }
       ::= { ospfPmEntEntry 29 }

  ospfPmEntExtOpLsaCount OBJECT-TYPE
       SYNTAX       Gauge32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of type-11 LSAs in the external database."
       ::= { ospfPmEntEntry 30 }

  ospfPmEntExtOpLsaCksumSum OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The 32 bit sum of LS checksums of all type-11 LSAs in the
          external Link State Database."
       ::= { ospfPmEntEntry 31 }

  ospfPmEntNumUpdPending OBJECT-TYPE
       SYNTAX       Unsigned32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of updates that are pending addition to the Link State
          Database."
       ::= { ospfPmEntEntry 32 }

  ospfPmEntNumUpdMerged OBJECT-TYPE
       SYNTAX       Unsigned32
       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."
       ::= { ospfPmEntEntry 33 }

  ospfPmEntNumCksumsPending OBJECT-TYPE
       SYNTAX       Unsigned32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of LSAs in the Link State Database which are now due to
          have their checksum checked."
       ::= { ospfPmEntEntry 34 }

  ospfPmEntDoGraceHitless OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Indicates whether DC-OSPF should perform hitless restart using
          grace LSAs.  If DC-OSPF is being deactivated, grace LSAs are sent out
          to inform neighboring routers that we wish to undergo a hitless
          restart.  If DC-OSPF is being activated, we will attempt to restart
          hitlessly."
       DEFVAL { false }
       ::= { ospfPmEntEntry 35 }

  ospfPmEntDoGraceUnplannedHitless OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Indicates whether DC-OSPF should perform an unplanned hitless
          restart using grace LSAs.  Note that DoGraceHitless has a higher
          priority to DoGraceUnplannedHitless.  Therefore if both
          DoGraceHitless and DoGraceUnplannedHitless are both set to true on
          activation, DC-OSPF will assume it is undergoing a planned hitless
          restart.  If only DoGraceUnplannedHitless is true, then DC-OSPF will
          attempt an unplanned hitless restart, and send out grace LSAs on
          activation."
       DEFVAL { false }
       ::= { ospfPmEntEntry 36 }

  ospfPmEntHitlessGracePeriod OBJECT-TYPE
       SYNTAX       UpToRefreshInterval
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "If DC-OSPF is attempting to undergo a hitless restart, this field
          specifies the length of grace period that should be requested from
          adjacent routers in grace LSAs.  Note that if an RTM is configured to
          delete routes from a dead RPM (rtmEntityDelDeadRte == AMB_TRUE), then
          the grace period should not be configured longer than
          rtmEntityDeadRpmTmr. After this timer period has passed, an RTM will
          delete routes from this RPM from its routing table, and so hitless
          restart will have failed.  Hitless grace period must be greater than
          zero."
       DEFVAL { 120 }
       ::= { ospfPmEntEntry 37 }

  ospfPmEntHitlessRestartReason OBJECT-TYPE
       SYNTAX       OspfHitlessRestartReasons
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "If DC-OSPF is attempting to undergo a planned hitless restart, this
          field specifies the reason for the restart.  This reason is passed to
          adjacent neighbors in grace LSAs.  Note that if the router is
          undergoing an unplanned hitless restart, this field is ignored and
          the reason for restart will always be reasonUnknown(0)."
       DEFVAL { reasonUnknown }
       ::= { ospfPmEntEntry 38 }

  ospfPmEntTERouterId OBJECT-TYPE
       SYNTAX       RouterID
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The configured Traffic Engineering router ID.

          The TE Router ID is a router ID which is also a routable IP
          address.

          If this field is set to the default value of zero (0.0.0.0) then
          DC-OSPF will choose a TE Router ID. Otherwise, DC-OSPF will use
          this MIB configured value.

          ospfPmEntCurrentTERouterID displays the TE Router ID currently
          in use by DC-OSPF.

          When the TE Router ID is chosen by DC-OSPF, it is equal to the
          highest loopback address on the router, or the highest active
          interface if there are no loopback addresses."
       DEFVAL { '00000000'H } -- 0.0.0.0
       ::= { ospfPmEntEntry 39 }

  ospfPmEntPrivateData OBJECT-TYPE
     SYNTAX        OspfPmEntPrivateDataType
     MAX-ACCESS    read-create
     STATUS        current
     DESCRIPTION
         "This object contains the customer defined private data associated
         with the router.  Any private data supplied is stored and may be used
         to build user defined opaque LSAs.

         The length of this data is user customizable, but MUST be a multiple
         of four and in the range zero to 128."
     ::= { ospfPmEntEntry 40 }

  ospfPmEntSupportEnniRouting OBJECT-TYPE
     SYNTAX        TruthValue
     MAX-ACCESS    read-create
     STATUS        current
     DESCRIPTION
         "The router's support for the OIF E-NNI Routing 2.0 protocol.

         When set to true, the router supports ONLY the OIF variant of
         the OSPF protocol.  This value cannot be changed when the Entity
         MIB row is active."
     DEFVAL { false }
     ::= { ospfPmEntEntry 41 }

  ospfPmEntRestartStatus OBJECT-TYPE
       SYNTAX       INTEGER { notRestarting (1),
                              plannedRestart (2),
                              unplannedRestart (3)
                            }
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "Current status of OSPF hitless restart."
       ::= { ospfPmEntEntry 42 }

  ospfPmEntRestartAge OBJECT-TYPE
       SYNTAX       UpToRefreshInterval
       UNITS        "seconds"
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "Remaining time in current OSPF hitless restart interval."
       ::= { ospfPmEntEntry 43 }

  ospfPmEntRestartExitReason OBJECT-TYPE
       SYNTAX       OspfRestartExitReason
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "Describes the outcome of the last attempt at a hitless
          restart.  If the value is 'none', no restart has yet been
          attempted.  If the value is 'inProgress', a restart
          attempt is currently underway."
       ::= { ospfPmEntEntry 44 }

  ospfPmEntCurrentRouterId OBJECT-TYPE
       SYNTAX       RouterID
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The currently in-use Router ID.

          This field displays the Router ID in use by DC-OSPF.  The field
          ospfPmEntRouterId is used to configure this value."
       ::= { ospfPmEntEntry 45 }

  ospfPmEntCurrentTERouterId OBJECT-TYPE
       SYNTAX       RouterID
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The currently in-use Traffic Engineering Router ID.

          This field displays the TE Router ID in use by DC-OSPF.  The
          field ospfPmEntTERouterId is used to configure this value."
       ::= { ospfPmEntEntry 46 }

  ospfPmEntCalcSoonAfterIfChng OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Set this object to 'true' to ensure that a routing
           calculation is started immediately after the configuration
           of a local interface changes such that a new router LSA
           needs to be originated, for example, when an interface's
           operational status changes."
       DEFVAL { false }
       ::= { ospfPmEntEntry 47 }

  ospfPmEntI3EntIndex OBJECT-TYPE
       SYNTAX      NumericIndex
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "Identifies the I3 Interface routing stub entity.  The OSPF
           PM cannot be 'up' without a successful join to an I3 stub.
           The status of the join is given by the row in the
           ospfPmMjTable with ospfPmMjInterfaceId equal to
           ospfIfIfInfo.

           This field follows the replaceOnlyWhileDisabled behavior."
       DEFVAL { 1 }
       ::= { ospfPmEntEntry 48 }

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

           ospfPmEntEnableIgpShortcut to 'false' to disable OSPF
           routing over IGP shortcut interfaces.  OSPF will ignore
           any interface that is identified as an IGP shortcut."
       DEFVAL { true }
       ::= { ospfPmEntEntry 49 }

  ospfPmEntVpnPeCeSupport OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The router's support for protocol extensions that
           facilitate use of OSPF between provider edge (PE) routers
           and customer edge (CE) routers in a BGP/MPLS IP VPN.

           Set this field to 'true' to enable OSPF PE-CE protocol
           function described in RFC 4577.

           This function should only be enabled in OSPF instances for
           customer VPNs on PE routers.  It should be disabled on
           CE routers, and on PE routers it should be disabled on
           any OSPF instances for the provider backbone network."
       DEFVAL { false }
       ::= { ospfPmEntEntry 50 }

  ospfPmEntVpnRouteTag OBJECT-TYPE
       SYNTAX       Unsigned32
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The VPN route tag used for loop detection as part of OSPF
           PE-CE protocol function.

           This field is only used if ospfPmEntVpnPeCeSupport is
           true.

           If this field is set to zero then VPN route tag function
           is disabled.

           VPN route tag function is specified in RFC 4577, and
           VPN route tag configuration is described in sections
           4.2.5.1 and 4.2.5.2.

           In particular RFC 4577 sectios 4.2.5.1 and 4.2.5.2 state
           the following.

           - If OSPF PE-CE protocol function is enabled then by
             default a VPN route tag MUST be configured.

           - If the Autonomous System number of the VPN backbone is
             two bytes long, the VPN route tag SHOULD be set to
             0xD000nnnn where nnnn is the AS number of the VPN
             backbone.

           - When it is no longer necessary to use the VPN Route Tag
             in a particular deployment, its use (both sending and
             receiving) may be disabled by configuration.

           If ospfPmEntVpnRouteTag is non-zero then it overrides any
           OSPF tag supplied with a redistributed route.
           In particular, it overrides any OSPF tag specified by
           rtmRedistNwOspfTag in the rtmRedistTable MIB for this OSPF
           instance."
       DEFVAL { 0 }
       ::= { ospfPmEntEntry 51 }

  ospfPmEntVpnRouterIdAttr OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Indicates whether to add an OSPF Router ID attribute when
           exporting an OSPF route as a BGP/MPLS VPN route.

           OSPF Router ID attributes are specified in RFC 4577.
           They are optional but potentially useful for diagnostic
           purposes.

           This field is only used if ospfPmEntVpnPeCeSupport is
           true."
       DEFVAL { false }
       ::= { ospfPmEntEntry 52 }

  ospfPmEntDfltExtType1Metric OBJECT-TYPE
       SYNTAX       Integer32 (0..'FFFFFF'h)
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The default type 1 metric to use for external routes
           received from RTM with unspecified path cost."
       DEFVAL { 0 }
       ::= { ospfPmEntEntry 53 }

  ospfPmEntDfltExtType2Metric OBJECT-TYPE
       SYNTAX       Integer32 (0..'FFFFFF'h)
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The default type 2 metric to use for external routes
           received from RTM with unspecified path cost."
       DEFVAL { 0 }
       ::= { ospfPmEntEntry 54 }

    ospfPmEntRtmPurgeTime OBJECT-TYPE
        SYNTAX Integer32 (0..'FFFF'h)
        UNITS "seconds"
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "This object defines the maximum time that DC-OSPF 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-OSPF.  For example, it may be
             administratively deactivated and reactivated, or may be
             distributed to a separate process that can restart independently
             of the DC-OSPF process.  If such a restart does not affect the
             forwarding table, then DC-OSPF should continue to advertise
             routes that it has learnt from the Routing Table Manager.  This
             is achieved by setting ospfPmEntRtmPurgeTime 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 }
    ::= { ospfPmEntEntry 55 }

  ospfPmEntMinLsInterval  OBJECT-TYPE
       SYNTAX       Integer32 (0..600000)
       UNITS        "milliseconds"
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The minimum time, in milliseconds, between distinct
           originations of any particular LSA.  A value of zero means
           that there is no minimum time between distinct
           reoriginations.

           Note that if this value is changed while PM is active then
           it may take up to the previous value of
           ospfPmEntMinLsInterval for the change to take effect."
       DEFVAL { 5000 }
       ::= { ospfPmEntEntry 56 }

  ospfPmEntMinLsArrival  OBJECT-TYPE
       SYNTAX       Integer32 (0..600000)
       UNITS        "milliseconds"
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "For any particular LSA, the minimum time in milliseconds
           that must elapse between reception of new LSA instances
           during flooding.  LSA instances received at higher
           frequencies are discarded.

           The value of this field should be less than or equal to
           the value of the ospfPmEntMinLsInterval configured on
           neighboring routers."
       DEFVAL { 1000 }
       ::= { ospfPmEntEntry 57 }

  ospfPmEntVpnDfltShamLinkMetric OBJECT-TYPE
       SYNTAX       Integer32 (1..'FFFF'h)
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The default metric for sham links."
       DEFVAL { 1 }
       ::= { ospfPmEntEntry 58 }

  ospfPmEntInstanceId OBJECT-TYPE
       SYNTAX       Integer32 (0..255)
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The OSPF instance id.

           This field allows multiple OSPFv2 protocol instances to be
           supported on the same subnet.

           -  All OSPFv2 protocol packets sent by this OSPFv2
              instance through any of its interfaces include the
              configured instance id.

           -  All protocol packets received by this OSPFv2 instance
              through any of its interfaces with a non-matching
              instance id are dropped.

           See draft-ietf-ospf-multi-instance for full details of the
           protocol.

           The value of this field may be changed at any time.
           However, if the admin status of the PM entity is set to
           'up' when this field is changed, DC-OSPF deactivates, and,
           when deactivation completes, reactivates."
       DEFVAL { 0 }
       ::= { ospfPmEntEntry 59 }

  ospfPmEntStatsReset OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Set this object to 'true' to reset all stats counters in the
          ospfPmEntStatsTable that augments this table.

          Reading the value of this object has no meaning."
       DEFVAL { false }
       ::= { ospfPmEntEntry 60 }

  ospfPmEntEnableTrapSupport OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Set this object to 'true' to enable trap support in
          DC-OSPF-PM.

          When this field is set to 'true', DC-OSPF-PM will generate
          traps for the events listed under AMB_OSPF_TRAP_TYPES that
          are relevant to PM."
       DEFVAL { false }
       ::= { ospfPmEntEntry 61 }

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

--  OSPF Area Table
--     The OSPF Area Table contains information
--     regarding the various areas.  The interfaces and
--     virtual links are configured as part of these areas.
--     Area 0.0.0.0, by definition, is the Backbone Area

   ospfPmAreaTable OBJECT-TYPE
   -- FAMILY-SHORT-NAME qopm_area
        SYNTAX       SEQUENCE OF OspfPmAreaEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Information describing the configured parameters
           and cumulative statistics of the router's attached areas."
        REFERENCE
           "OSPF Version 2, Section 6 The Area Data Structure"
        ::= { ospfObjects 2 }

   ospfPmAreaEntry OBJECT-TYPE
        SYNTAX       OspfPmAreaEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Information describing the configured parameters
           and cumulative statistics of one of the router's attached areas."
        INDEX {
           ospfPmAreaApplIndex,
           ospfPmAreaId
           }
        ::= { ospfPmAreaTable 1 }

   OspfPmAreaEntry ::= SEQUENCE {
          ospfPmAreaId                        AreaID,
          ospfPmAuthType                      OspfAuthTypes,
          ospfPmImportAsExtern                OspfImportTypes,
          ospfPmSpfRuns                       Counter32,
          ospfPmAreaBdrRtrCount               Gauge32,
          ospfPmASBdrRtrCount                 Gauge32,
          ospfPmAreaLsaCount                  Gauge32,
          ospfPmAreaLsaCksumSum               Integer32,
          ospfPmAreaSummary                   OspfSummaryTypes,
          ospfPmAreaStatus                    RowStatus,
          ospfPmAreaNssaTranslatorRole        OspfTransRoles,
          ospfPmAreaNssaTranslatorState       OspfTransStates,
          ospfPmAreaNssaTranStabIntvl         PositiveInteger,
          ospfPmAreaNssaTranslatorEvents      Counter32,
-- The following are DC-OSPF implementation specific parameters.
          ospfPmAreaApplIndex                 OspfPmIndex,
          ospfPmAreaAdminStatus               OspfPmAdminStatus,
          ospfPmAreaOperStatus                OspfPmOperStatus,
          ospfPmAreaTransitCapability         TruthValue,
          ospfPmAreaLsaRfshIntvl              Integer32,
          ospfPmAreaRtrLsaCount               Gauge32,
          ospfPmAreaRtrLsaCksumSum            Integer32,
          ospfPmAreaNetLsaCount               Gauge32,
          ospfPmAreaNetLsaCksumSum            Integer32,
          ospfPmAreaSummLsaCount              Gauge32,
          ospfPmAreaSummLsaCksumSum           Integer32,
          ospfPmAreaSummAsLsaCount            Gauge32,
          ospfPmAreaSummAsLsaCksumSum         Integer32,
          ospfPmAreaNssaLsaCount              Gauge32,
          ospfPmAreaNssaLsaCksumSum           Integer32,
          ospfPmAreaOpLsaCount                Gauge32,
          ospfPmAreaOpLsaCksumSum             Integer32,
          ospfPmAreaNssaNoExtRedist           TruthValue
        }

   ospfPmAreaId OBJECT-TYPE
        SYNTAX       AreaID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "A 32-bit integer uniquely identifying an area.
           Area ID 0.0.0.0 is used for the OSPF backbone."
        REFERENCE
           "OSPF Version 2, Appendix C.2 Area parameters"
        ::= { ospfPmAreaEntry 1 }

   ospfPmAuthType OBJECT-TYPE
        SYNTAX       OspfAuthTypes
        MAX-ACCESS   read-create
        STATUS       obsolete
        DESCRIPTION
           "The authentication type specified for an area.
           Additional authentication types may be assigned
           locally on a per Area basis."
        REFERENCE
           "OSPF Version 2, Appendix D Authentication"
        DEFVAL { authNone } -- no authentication, by default
        ::= { ospfPmAreaEntry 2 }

   ospfPmImportAsExtern OBJECT-TYPE
        SYNTAX       OspfImportTypes
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "Indicates whether an area is a Stub area, NSSA, or standard
           area.  Type-5 AS-External LSAs and Type-11 Opaque LSAs are
           not imported into Stub Areas or NSSAs.  NSSAs import
           AS-External data as Type-7 LSAs.  This value cannot be changed
           when the area MIB is active and has oper_state up."
        REFERENCE
           "OSPF Version 2, Appendix C.2 Area parameters"
        DEFVAL { importExternal }
        ::= { ospfPmAreaEntry 3 }

   ospfPmSpfRuns OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The number of times that the intra-area route
           table has been calculated using this area's
           link-state database.  This is typically done
           using Dijkstra's algorithm."
        ::= { ospfPmAreaEntry 4 }

   ospfPmAreaBdrRtrCount OBJECT-TYPE
        SYNTAX       Gauge32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The total number of area border routers reachable
           within this area.  This is initially zero,
           and is calculated in each SPF Pass."
        ::= { ospfPmAreaEntry 5 }

   ospfPmASBdrRtrCount OBJECT-TYPE
        SYNTAX       Gauge32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The total number of Autonomous System border
           routers reachable within this area.  This is
           initially zero, and is calculated in each SPF
           Pass."
        ::= { ospfPmAreaEntry 6 }

   ospfPmAreaLsaCount OBJECT-TYPE
        SYNTAX       Gauge32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The total number of link-state advertisements
           in this area's link-state database, excluding
           AS External LSA's."
        ::= { ospfPmAreaEntry 7 }

   ospfPmAreaLsaCksumSum OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The 32-bit unsigned sum of the link-state
           advertisements' LS checksums contained in this
           area's link-state database.  This sum excludes
           external (LS type 5) link-state advertisements.
           The sum can be used to determine if there has
           been a change in a router's link state database,
           and to compare the link-state database of
           two routers."
        DEFVAL { 0 }
        ::= { ospfPmAreaEntry 8 }

   ospfPmAreaSummary OBJECT-TYPE
        SYNTAX       OspfSummaryTypes
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "The variable ospfPmAreaSummary controls the import
           of summary LSAs into stub and NSSA areas.
           It has no effect on other areas.

           If it is noAreaSummary, the router will neither
           originate nor propagate summary LSAs into the
           stub or NSSA area.  It will rely entirely on its
           default route.

           If it is sendAreaSummary, the router will both
           summarize and propagate summary LSAs."
        DEFVAL { summSendAreaSummary }
        ::= { ospfPmAreaEntry 9 }

   ospfPmAreaStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "This object permits management of the table by
           facilitating actions such as row creation,
           construction and destruction."
        ::= { ospfPmAreaEntry 10 }

   ospfPmAreaNssaTranslatorRole OBJECT-TYPE
        SYNTAX       OspfTransRoles
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "Indicates an NSSA Border router's ability to
           perform NSSA translation of type-7 LSAs into
           type-5 LSAs."
        DEFVAL { roleCandidate }
        ::= { ospfPmAreaEntry 11 }

   ospfPmAreaNssaTranslatorState OBJECT-TYPE
        SYNTAX       OspfTransStates
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "Indicates if and how an NSSA Border router is
           performing NSSA translation of type-7 LSAs into type-5
           LSAs.  When this object set to enabled, the NSSA Border
           router's OspfPmAreaNssaTranslatorRole has been set to
           always.  When this object is set to elected, a candidate
           NSSA Border router is Translating type-7 LSAs into type-5.
           When this object is set to disabled, a candidate NSSA
           Border router is NOT translating type-7 LSAs into type-5."
        ::= { ospfPmAreaEntry 12 }

   ospfPmAreaNssaTranStabIntvl OBJECT-TYPE
        SYNTAX       PositiveInteger
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "The number of seconds after an elected translator
           determines its services are no longer required, that
           it should continue to perform its translation duties."
        DEFVAL { 40 }
        ::= { ospfPmAreaEntry 13 }

   ospfPmAreaNssaTranslatorEvents OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "Indicates the number of Translator State changes
           that have occurred since the last boot-up."
        ::= { ospfPmAreaEntry 14 }

-- The following are DC-OSPF implementation specific fields.

  ospfPmAreaApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Identifies this OSPF entity."
        ::= { ospfPmAreaEntry 15 }

  ospfPmAreaAdminStatus OBJECT-TYPE
       SYNTAX       OspfPmAdminStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The desired administrative state of this OSPF area."
       DEFVAL { adminStatusUp }
       ::= { ospfPmAreaEntry 16 }

  ospfPmAreaOperStatus OBJECT-TYPE
       SYNTAX       OspfPmOperStatus
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The current operational state of this OSPF area."
       ::= { ospfPmAreaEntry 17 }

   ospfPmAreaTransitCapability OBJECT-TYPE
        SYNTAX       TruthValue
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "This parameter indicates whether the area can carry data
           traffic that neither originates nor terminates in the area
           itself.  This parameter is calculated when the area's shortest-path
           tree is built."
        DEFVAL { false }
        ::= { ospfPmAreaEntry 18 }

  ospfPmAreaLsaRfshIntvl OBJECT-TYPE
       SYNTAX       Integer32 (1..3599)
       UNITS        "seconds"
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Self-originated LSAs are periodically reflooded into the routing
          domain, to add to the robustness of the OSPF protocol.  This value
          determines the interval between refreshes of LSAs whose scope is
          limited to this area, for example Router-LSAs, and is defaulted to
          the OSPF standard default of 1800 seconds (30 minutes)."
       DEFVAL { 1800 }
       ::= { ospfPmAreaEntry 19 }

  ospfPmAreaRtrLsaCount OBJECT-TYPE
       SYNTAX       Gauge32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of LSAs with LS type-1 in this area's Link State
          Database."
       ::= { ospfPmAreaEntry 20 }

  ospfPmAreaRtrLsaCksumSum OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The 32 bit sum of LS checksums of all LSAs with LS type-1 in this
          area's Link State Database."
       ::= { ospfPmAreaEntry 21 }

  ospfPmAreaNetLsaCount OBJECT-TYPE
       SYNTAX       Gauge32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of LSAs with LS type-2 in this area's Link State
          Database."
       ::= { ospfPmAreaEntry 22 }

  ospfPmAreaNetLsaCksumSum OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The 32 bit sum of LS checksums of all LSAs with LS type-2 in this
          area's Link State Database."
       ::= { ospfPmAreaEntry 23 }

  ospfPmAreaSummLsaCount OBJECT-TYPE
       SYNTAX       Gauge32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of LSAs with LS type-3 in this area's Link State
          Database."
       ::= { ospfPmAreaEntry 24 }

  ospfPmAreaSummLsaCksumSum OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The 32 bit sum of LS checksums of all LSAs with LS type-3 in this
          area's Link State Database."
       ::= { ospfPmAreaEntry 25 }

  ospfPmAreaSummAsLsaCount OBJECT-TYPE
       SYNTAX       Gauge32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of LSAs with LS type-4 in this area's Link State
          Database."
       ::= { ospfPmAreaEntry 26 }

  ospfPmAreaSummAsLsaCksumSum OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The 32 bit sum of LS checksums of all LSAs with LS type-4 in this
          area's Link State Database."
       ::= { ospfPmAreaEntry 27 }

  ospfPmAreaNssaLsaCount OBJECT-TYPE
       SYNTAX       Gauge32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of LSAs with LS type-7 in this area's Link State
          Database."
       ::= { ospfPmAreaEntry 28 }

  ospfPmAreaNssaLsaCksumSum OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The 32 bit sum of LS checksums of all LSAs with LS type-7 in this
          area's Link State Database."
       ::= { ospfPmAreaEntry 29 }

  ospfPmAreaOpLsaCount OBJECT-TYPE
       SYNTAX       Gauge32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of LSAs with LS type-10 in this area's Link State
          Database."
       ::= { ospfPmAreaEntry 30 }

  ospfPmAreaOpLsaCksumSum OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The 32 bit sum of LS checksums of all LSAs with LS type-10 in this
          area's Link State Database."
       ::= { ospfPmAreaEntry 31 }

  ospfPmAreaNssaNoExtRedist OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "This parameter indicates whether this router should originate NSSA
          LSAs into this area for external routes: if set to AMB_TRUE, this
          router will suppress NSSA LSAs.  This value is only used if the
          field ospfPmImportAsExtern is AMB_OSPF_IMPORT_NSSA."
       DEFVAL { false }
       ::= { ospfPmAreaEntry 32 }

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

--  OSPF Area Default Metric Table
--
--     The OSPF Area Default Metric Table describes the metrics
--     that a default Area Border Router will advertise into a
--     Stub area.

   ospfPmStubAreaTable OBJECT-TYPE
   -- FAMILY-SHORT-NAME qopm_stub
        SYNTAX       SEQUENCE OF OspfPmStubAreaEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The set of metrics that will be advertised by
           a default Area Border Router into a stub area."
        REFERENCE
           "OSPF Version 2, Appendix C.2, Area Parameters"
        ::= { ospfObjects 3 }

   ospfPmStubAreaEntry OBJECT-TYPE
        SYNTAX       OspfPmStubAreaEntry
        MAX-ACCESS   not-accessible
        STATUS      current
        DESCRIPTION
           "The metric for a given Type of Service that
           will be advertised by a default Area Border
           Router into a stub area."
        REFERENCE
           "OSPF Version 2, Appendix C.2, Area Parameters"
        INDEX {
           ospfPmStubApplIndex,
           ospfPmStubAreaId,
           ospfPmStubTOS
           }
        ::= { ospfPmStubAreaTable 1 }

   OspfPmStubAreaEntry ::= SEQUENCE {
          ospfPmStubAreaId                    AreaID,
          ospfPmStubTOS                       TOSType,
          ospfPmStubMetric                    BigMetric,
          ospfPmStubStatus                    RowStatus,
          ospfPmStubMetricType                OspfMetricTypes,
-- The following are DC-OSPF implementation specific parameters.
          ospfPmStubApplIndex                 OspfPmIndex
        }

   ospfPmStubAreaId OBJECT-TYPE
        SYNTAX       AreaID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The 32 bit identifier for the Stub Area.  On
           creation, this can be derived from the instance."
        ::= { ospfPmStubAreaEntry 1 }

   ospfPmStubTOS OBJECT-TYPE
        SYNTAX       TOSType
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The Type of Service associated with the
           metric.  Since DC-OSPF does not support type of service,
           TOS must be set to zero."
        ::= { ospfPmStubAreaEntry 2 }

   ospfPmStubMetric OBJECT-TYPE
        SYNTAX       BigMetric
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "The metric value applied at the indicated type
           of service.

           The default value for this MIB field is 1.  However, if there is
           no ospfPmStubAreaTable row for a given stub area, then the Area
           Border Router advertises a default summary LSA with metric
           0xffffff (infinity)."
        DEFVAL { 1 }
        ::= { ospfPmStubAreaEntry 3 }

   ospfPmStubStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "This object permits management of the table by
           facilitating actions such as row creation,
           construction and destruction."
        ::= { ospfPmStubAreaEntry 4 }

   ospfPmStubMetricType OBJECT-TYPE
        SYNTAX       OspfMetricTypes
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "This variable displays the type of metric
           advertised as a default route."
        DEFVAL { metricStandard }
        ::= { ospfPmStubAreaEntry 5 }

-- The following are DC-OSPF implementation specific parameters.

   ospfPmStubApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Identifies this OSPF entity."
        ::= { ospfPmStubAreaEntry 6 }

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

--  OSPF Link State Database
--
--     The Link State Database contains the Link State
--     Advertisements from throughout the areas that the
--     device is attached to.

   ospfPmLsdbTable OBJECT-TYPE
   -- FAMILY-SHORT-NAME qopm_lsdb
        SYNTAX       SEQUENCE OF OspfPmLsdbEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The OSPF Process's Link State Database."
        REFERENCE
           "OSPF Version 2, Section 12 Link State Adver-
           tisements"
        ::= { ospfObjects 4 }

   ospfPmLsdbEntry OBJECT-TYPE
        SYNTAX   OspfPmLsdbEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "A single Link State Advertisement."
        INDEX {
           ospfPmLsdbApplIndex,
           ospfPmLsdbAreaId,
           ospfPmLsdbType,
           ospfPmLsdbLsid,
           ospfPmLsdbRouterId
           }
        ::= { ospfPmLsdbTable 1 }

   OspfPmLsdbEntry ::= SEQUENCE {
          ospfPmLsdbAreaId                    AreaID,
          ospfPmLsdbType                      OspfAreaLsTypes,
          ospfPmLsdbLsid                      IpAddress,
          ospfPmLsdbRouterId                  RouterID,
          ospfPmLsdbSequence                  Integer32,
          ospfPmLsdbAge                       Integer32,
          ospfPmLsdbChecksum                  Integer32,
          ospfPmLsdbAdvertisement             OCTET STRING,
-- The following are DC-OSPF implementation specific parameters.
          ospfPmLsdbApplIndex                 OspfPmIndex
        }

   ospfPmLsdbAreaId OBJECT-TYPE
        SYNTAX       AreaID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The 32 bit identifier of the Area from which
           the LSA was received."
        REFERENCE
           "OSPF Version 2, Appendix C.2 Area parameters"
        ::= { ospfPmLsdbEntry 1 }

--  Note: External Link State Advertisements are permitted
--  for backward compatibility, but should be displayed in
--  the ospfPmExtLsdbTable rather than here.

   ospfPmLsdbType OBJECT-TYPE
        SYNTAX       OspfAreaLsTypes
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The type of the link state advertisement.
           Each link state type has a separate advertisement
           format."
        REFERENCE
           "OSPF Version 2, Appendix A.4.1 The Link State
           Advertisement header"
        ::= { ospfPmLsdbEntry 2 }

   ospfPmLsdbLsid OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The Link State ID is an LS Type Specific field
           containing either a Router ID or an IP Address;
           it identifies the piece of the routing domain
           that is being described by the advertisement."
        REFERENCE
           "OSPF Version 2, Section 12.1.4 Link State ID"
        ::= { ospfPmLsdbEntry 3 }

   ospfPmLsdbRouterId OBJECT-TYPE
        SYNTAX       RouterID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The 32 bit number that uniquely identifies the
           originating router in the Autonomous System."
        REFERENCE
           "OSPF Version 2, Appendix C.1 Global parameters"
        ::= { ospfPmLsdbEntry 4 }

--  Note that the OSPF Sequence Number is a 32 bit signed
--  integer.  It starts with the value '80000001'h,
--  or -'7FFFFFFF'h, and increments until '7FFFFFFF'h
--  Thus, a typical sequence number will be very negative.

   ospfPmLsdbSequence OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The sequence number field is a signed 32-bit
           integer.  It is used to detect old and duplicate
           link state advertisements.  The space of
           sequence numbers is linearly ordered.  The
           larger the sequence number the more recent the
           advertisement."
        REFERENCE
           "OSPF Version 2, Section 12.1.6 LS sequence
           number"
        ::= { ospfPmLsdbEntry 5 }

   ospfPmLsdbAge OBJECT-TYPE
        SYNTAX       Integer32 -- Should be 0..MaxAge, except when
                               -- doNotAge bit is set
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "This field is the age of the link state advertisement in seconds."
        REFERENCE
           "OSPF Version 2, Section 12.1.1 LS age"
        ::= { ospfPmLsdbEntry 6 }

   ospfPmLsdbChecksum OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "This field is the checksum of the complete
           contents of the advertisement, excepting the
           age field.  The age field is excepted so that
           an   advertisement's age can be incremented
           without updating the checksum.  The checksum
           used is the same that is used for ISO connectionless
           datagrams; it is commonly referred to
           as the Fletcher checksum."
         REFERENCE
            "OSPF Version 2, Section 12.1.7 LS checksum"
         ::= { ospfPmLsdbEntry 7 }

   ospfPmLsdbAdvertisement OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE (1..65535))
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The entire Link State Advertisement, including
           its header."
        REFERENCE
           "OSPF Version 2, Section 12 Link State Advertisements"
        ::= { ospfPmLsdbEntry 8 }

-- The following are DC-OSPF implementation specific parameters.

   ospfPmLsdbApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Identifies this OSPF entity."
        ::= { ospfPmLsdbEntry 9 }

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

--  OSPF Host Table
--
--     The Host/Metric Table indicates what hosts are directly
--     attached to the Router, what metrics and types of
--     service should be advertised for them and what Areas they
--     are found within.

   ospfPmHostTable OBJECT-TYPE
   -- FAMILY-SHORT-NAME qopm_host
        SYNTAX       SEQUENCE OF OspfPmHostEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The list of Hosts, and their metrics, that the
           router will advertise as host routes."
        REFERENCE
           "OSPF Version 2, Appendix C.7 Host route param-
           eters"
        ::= { ospfObjects 6 }

   ospfPmHostEntry OBJECT-TYPE
        SYNTAX       OspfPmHostEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "A metric to be advertised, for a given type of
           service, when a given host is reachable."
        INDEX {
           ospfPmHostApplIndex,
           ospfPmHostIpAddress,
           ospfPmHostTOS
           }
        ::= { ospfPmHostTable 1 }

   OspfPmHostEntry ::= SEQUENCE {
          ospfPmHostIpAddress                 IpAddress,
          ospfPmHostTOS                       TOSType,
          ospfPmHostMetric                    Metric,
          ospfPmHostStatus                    RowStatus,
          ospfPmHostAreaID                    AreaID,
-- The following are DC-OSPF implementation specific parameters.
          ospfPmHostApplIndex                 OspfPmIndex,
          ospfPmHostAdminStatus               OspfPmAdminStatus,
          ospfPmHostOperStatus                OspfPmOperStatus
        }

   ospfPmHostIpAddress OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The IP Address of the Host."
        REFERENCE
           "OSPF Version 2, Appendix C.7 Host route parameters"
        ::= { ospfPmHostEntry 1 }

   ospfPmHostTOS OBJECT-TYPE
        SYNTAX       TOSType
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The Type of Service of the route being configured."
        REFERENCE
           "OSPF Version 2, Appendix C.7 Host route parameters"
        ::= { ospfPmHostEntry 2 }

   ospfPmHostMetric OBJECT-TYPE
        SYNTAX       Metric
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "The Metric to be advertised."
        REFERENCE
           "OSPF Version 2, Appendix C.7 Host route parameters"
        DEFVAL { 1 }
        ::= { ospfPmHostEntry 3 }

   ospfPmHostStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "This object permits management of the table by
           facilitating actions such as row creation,
           construction and destruction."
        ::= { ospfPmHostEntry 4 }

   ospfPmHostAreaID OBJECT-TYPE
        SYNTAX       AreaID
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "The Area the Host Entry is to be found within."
        REFERENCE
           "OSPF Version 2, Appendix C.7 Host parameters"
        DEFVAL { '00000000'H }  -- 0.0.0.0
        ::= { ospfPmHostEntry 5 }

-- The following are DC-OSPF implementation specific parameters.

  ospfPmHostApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Identifies this OSPF entity."
        ::= { ospfPmHostEntry 6 }

  ospfPmHostAdminStatus OBJECT-TYPE
        SYNTAX       OspfPmAdminStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The desired administrative state of this host."
        DEFVAL { adminStatusUp }
        ::= { ospfPmHostEntry 7 }

  ospfPmHostOperStatus OBJECT-TYPE
        SYNTAX       OspfPmOperStatus
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The current operational state of this host."
        ::= { ospfPmHostEntry 8 }

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

--  OSPF Interface Table
--
--     The OSPF Interface Table augments the ipAddrTable
--     with OSPF specific information.

  ospfPmIfTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_if
       SYNTAX       SEQUENCE OF OspfPmIfEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The OSPF Interface Table describes the interfaces from the
          viewpoint of OSPF.  This table has been updated to include
          DC-OSPF implementation specific fields.  This table contains
          one row per address on an interface, so there may exist more
          than one row for each logical interface."
       REFERENCE
          "OSPF Version 2, Appendix C.3 Router interface
          parameters"
       ::= { ospfObjects 7 }

  ospfPmIfEntry OBJECT-TYPE
       SYNTAX       OspfPmIfEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The OSPF Interface Entry describes one interface from the
          viewpoint of OSPF.  This entry has been updated to include
          DC-OSPF implementation specific fields."
       INDEX {
          ospfPmIfApplIndex,
          ospfPmIfIpAddress,
          ospfPmAddressLessIf
          }
       ::= { ospfPmIfTable 1 }

  OspfPmIfEntry ::= SEQUENCE {
         ospfPmIfIpAddress                IpAddress,
         ospfPmAddressLessIf              InterfaceIndexOrZero,
         ospfPmIfAreaId                   AreaID,
         ospfPmIfType                     OspfNetworkTypes,
         ospfPmIfAdminStat                OspfPmAdminStatus,
         ospfPmIfRtrPriority              DesignatedRouterPriority,
         ospfPmIfTransitDelay             UpToMaxAge,
         ospfPmIfRetransInterval          UpToMaxAge,
         ospfPmIfHelloInterval            HelloRange,
         ospfPmIfRtrDeadInterval          Integer32,
         ospfPmIfPollInterval             PositiveInteger,
         ospfPmIfState                    OspfInterfaceStates,
         ospfPmIfDesignatedRouter         IpAddress,
         ospfPmIfBackupDesignatedRouter   IpAddress,
         ospfPmIfEvents                   Counter32,
         ospfPmIfAuthKey                  OCTET STRING,
         ospfPmIfStatus                   RowStatus,
         ospfPmIfMulticastForwarding      OspfMulticastFwardTypes,
         ospfPmIfDemand                   TruthValue,
         ospfPmIfAuthType                 OspfAuthTypes,
         ospfPmIfLsaCount                 Gauge32,
         ospfPmIfLsaCksumSum              Integer32,
-- The following are DC-OSPF implementation specific parameters
         ospfPmIfApplIndex                OspfPmIndex,
         ospfPmIfOperStatus               OspfPmOperStatus,
         ospfPmIfNetMask                  IpAddress,
         ospfPmIfResourceClass            Unsigned32,
         ospfPmIfTransmitTimerDelay       Integer32,
         ospfPmIfIPMaxPacketSize          Integer32,
         ospfPmIfPassive                  TruthValue,
         ospfPmIfInterfaceName            DisplayString,
         ospfPmIfLsaRefreshIntvl          Integer32,
         ospfPmIfQOSSupport               TruthValue,
         ospfPmIfTEMetricPcntge           Integer32,
         ospfPmIfTEMetric                 Integer32,
         ospfPmIfLastTEMetric             Integer32,
         ospfPmIfMaxBwidthPcntge          Integer32,
         ospfPmIfMaxBandwidth             Integer32,
         ospfPmIfLastMaxBwidth            Integer32,
         ospfPmIfMaxResBwidthPcntge       Integer32,
         ospfPmIfMaxResBwidth             Integer32,
         ospfPmIfLastMaxResBwidth         Integer32,
         ospfPmIfUnresBwidthPcntge        Integer32,
         ospfPmIfUnresBwidth0             Integer32,
         ospfPmIfLastUnresBwidth0         Integer32,
         ospfPmIfUnresBwidth1             Integer32,
         ospfPmIfLastUnresBwidth1         Integer32,
         ospfPmIfUnresBwidth2             Integer32,
         ospfPmIfLastUnresBwidth2         Integer32,
         ospfPmIfUnresBwidth3             Integer32,
         ospfPmIfLastUnresBwidth3         Integer32,
         ospfPmIfUnresBwidth4             Integer32,
         ospfPmIfLastUnresBwidth4         Integer32,
         ospfPmIfUnresBwidth5             Integer32,
         ospfPmIfLastUnresBwidth5         Integer32,
         ospfPmIfUnresBwidth6             Integer32,
         ospfPmIfLastUnresBwidth6         Integer32,
         ospfPmIfUnresBwidth7             Integer32,
         ospfPmIfLastUnresBwidth7         Integer32,
         ospfPmIfIfIndex                  Integer32,
         ospfPmIfRemoteIfIndex            Integer32,
         ospfPmIfLinkProtectionType       OspfPmIfLinkProtValue,
         ospfPmIfSRLG                     OCTET STRING,
         ospfPmIfMaxLSPBwidthPcntge       Integer32,
         ospfPmIfMinLSPBwidthPcntge       Integer32,
         ospfPmIfMTUSizePcntge            Integer32,
         ospfPmIfHelperModePolicy         OspfHelperModePolicy,
         ospfPmIfMaxHitlessGracePeriod    UpToRefreshInterval,
         ospfPmIfEnableTeFlooding         TruthValue,
         ospfPmIfAuthUserData             AuthUserDataString,
         ospfPmIfFastHelloMultiplier      FastHelloMultiplierRange,
         ospfPmIfAutoDeleteNbr            TruthValue,
         ospfPmIfNumBwidthCnstrnts        Integer32,
         ospfPmIfBwidthCnstrntModel       Integer32,
         ospfPmIfBwidthCnstrnt0           Integer32,
         ospfPmIfBwidthCnstrnt1           Integer32,
         ospfPmIfBwidthCnstrnt2           Integer32,
         ospfPmIfBwidthCnstrnt3           Integer32,
         ospfPmIfBwidthCnstrnt4           Integer32,
         ospfPmIfBwidthCnstrnt5           Integer32,
         ospfPmIfBwidthCnstrnt6           Integer32,
         ospfPmIfBwidthCnstrnt7           Integer32,
         ospfPmIfMtuIgnore                TruthValue,
         ospfPmIfNmEntity                 Integer32,
         ospfPmIfBfdDesired               TruthValue,
         ospfPmIfRstHlprStrictLsaChk      TruthValue,
         ospfPmIfStatsReset               TruthValue,
         ospfPmIfGraceLsaResendTimer      Integer32,
         ospfPmIfGRDelayTimer             Integer32
       }

  ospfPmIfIpAddress OBJECT-TYPE
       SYNTAX       IpAddress
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The IP address of this OSPF interface."
       ::= { ospfPmIfEntry 1 }

  ospfPmAddressLessIf OBJECT-TYPE
       SYNTAX       InterfaceIndexOrZero
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "For the purpose of easing the instancing of
          addressed and address less interfaces; This
          variable takes the value 0 on interfaces with
          IP Addresses, and a non-zero interface index
          value, unique within the scope of this router,
          for interfaces having no IP Address."
       ::= { ospfPmIfEntry 2 }

  ospfPmIfAreaId OBJECT-TYPE
       SYNTAX       AreaID
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "A 32-bit integer uniquely identifying the area
          to which the interface connects.  Area ID
          0.0.0.0 is used for the OSPF backbone.

          This field cannot be changed if the row is admin status up
          and row status active."
       DEFVAL { '00000000'H }  -- 0.0.0.0
       ::= { ospfPmIfEntry 3 }

  ospfPmIfType OBJECT-TYPE
       SYNTAX       OspfNetworkTypes
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The OSPF interface type.
          By way of a default, this field may be intuited
          from the corresponding value of ifType.  Broadcast
          LANs, such as Ethernet and IEEE 802.5,
          take the value 'broadcast', X.25 and similar
          technologies take the value 'nbma', and links
          that are definitively point to point take the
          value 'pointToPoint'.

          Once set through the OSPF MIB, the OSPF interface type can
          only be changed through the OSPF MIB.  That is, any subsequent
          changes to the I3 _if_flags_ field are ignored."
        ::= { ospfPmIfEntry 4 }

  ospfPmIfAdminStat OBJECT-TYPE
       SYNTAX       OspfPmAdminStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The OSPF interface's administrative status.  The
          value of this field indicates whether the OSPF
          protocol will be run over this interface and whether
          this interface will be advertised as a route through
          OSPF.  If this field is set to adminStatusUp then this
          interface will be used for the OSPF protocol.  Note
          that even if this field is set to adminStatusDown this
          interface could still be advertised as a Traffic
          Engineering Interface even though the OSPF protocol
          would not be run over it."
       DEFVAL { adminStatusDown }
       ::= { ospfPmIfEntry 5 }

  ospfPmIfRtrPriority OBJECT-TYPE
       SYNTAX       DesignatedRouterPriority
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The priority of this interface.  Used in
          multi-access networks, this field is used in
          the designated router election algorithm.  The
          value 0 signifies that the router is not eligible
          to become the designated router on this
          particular network.  In the event of a tie in
          this value, routers will use their Router ID as
          a tie breaker."
        DEFVAL { 1 }
        ::= { ospfPmIfEntry 6 }

  ospfPmIfTransitDelay OBJECT-TYPE
        SYNTAX       UpToMaxAge
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "The estimated number of seconds it takes to
           transmit a link state update packet over this
           interface."
        DEFVAL { 1 }
        ::= { ospfPmIfEntry 7 }

  ospfPmIfRetransInterval OBJECT-TYPE
       SYNTAX       UpToMaxAge
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The number of seconds between link-state
          advertisement retransmissions, for adjacencies
          belonging to this interface.  This value is
          also used when retransmitting database description
          and link-state request packets."
       DEFVAL { 5 }
       ::= { ospfPmIfEntry 8 }

  ospfPmIfHelloInterval OBJECT-TYPE
       SYNTAX       HelloRange
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The length of time, in seconds, between the
          Hello packets that the router sends on the
          interface.  This value must be the same for all
          routers attached to a common network.

          Note that this field is ignored when Fast Hellos
          are used on this interface.  Fast Hellos are
          configured using ospfPmIfRtrDeadInterval.

          Note also that the default values are as follows.
          -  10 for DC-OSPF.
          -  40 if support for OIF E-NNI Routing 2.0 is turned on."
       DEFVAL { 10 }
       ::= { ospfPmIfEntry 9 }

  ospfPmIfRtrDeadInterval OBJECT-TYPE
       SYNTAX       Integer32 (0..'FFFF'h)
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The number of seconds that a router's Hello
          packets have not been seen before its neighbors
          declare the router down.  This should be
          some multiple of the Hello interval.  This
          value must be the same for all routers attached
          to a common network.

          A value of 1 second means that Fast Hello Timers are used
          on this interface.  The ospfPmIfFastHelloMultiplier
          field is used to determine the Hello interval instead of
          ospfPmIfHelloInterval.

          Note also that the default values are as follows.
          -  40 for DC-OSPF.
          -  120 if support for OIF E-NNI Routing 2.0 is turned on."
        DEFVAL { 40 }
        ::= { ospfPmIfEntry 10 }

  ospfPmIfPollInterval OBJECT-TYPE
       SYNTAX       PositiveInteger
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The larger time interval, in seconds, between
          the Hello packets sent to an inactive
          non-broadcast multi-access neighbor."
       DEFVAL { 120 }
       ::= { ospfPmIfEntry 11 }

  ospfPmIfState OBJECT-TYPE
       SYNTAX       OspfInterfaceStates
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The OSPF Interface State."
       DEFVAL { ifDown }
       ::= { ospfPmIfEntry 12 }

  ospfPmIfDesignatedRouter OBJECT-TYPE
       SYNTAX       IpAddress
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The IP Address of the Designated Router."
       DEFVAL { '00000000'H } -- 0.0.0.0
       ::= { ospfPmIfEntry 13 }

  ospfPmIfBackupDesignatedRouter OBJECT-TYPE
       SYNTAX       IpAddress
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The IP Address of the Backup Designated
          Router."
       DEFVAL { '00000000'H }  -- 0.0.0.0
       ::= { ospfPmIfEntry 14 }

  ospfPmIfEvents OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of times this OSPF interface has
          changed its state, or an error has occurred."
       ::= { ospfPmIfEntry 15 }

  ospfPmIfAuthKey OBJECT-TYPE
       SYNTAX       OCTET STRING (SIZE (0..256))
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The cleartext password used as an OSPF
          Authentication key when simplePassword security
          is enabled.  This object does not access any OSPF
          Cryptogaphic (e.g.  MD5) Authentication Key under
          any circumstance.

          If the key length is shorter than 8 octets, the
          agent will left adjust and zero fill to 8 octets.

          Unauthenticated interfaces need no authentication
          key, and simple password authentication cannot use
          a key of more than 8 octets.

          Note that the use of simplePassword authentication
          is NOT recommended when there is concern regarding
          attack upon the OSPF system.  SimplePassword
          authentication is only sufficient to protect against
          accidental misconfigurations because it re-uses
          cleartext passwords.  [RFC-1704]

          When read, ospfPmIfAuthKey always returns an Octet
          String of length zero."
       REFERENCE
          "OSPF Version 2, Section 9 The Interface Data
          Structure"
       DEFVAL { '0000000000000000'H } -- 0.0.0.0.0.0.0.0
       ::= { ospfPmIfEntry 16 }

  ospfPmIfStatus OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "This object permits management of the table by
          facilitating actions such as row creation,
          construction and destruction."
       ::= { ospfPmIfEntry 17 }

  ospfPmIfMulticastForwarding OBJECT-TYPE
       SYNTAX       OspfMulticastFwardTypes
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The way multicasts should forwarded on this
          interface; not forwarded, forwarded as data
          link multicasts, or forwarded as data link unicasts.
          Data link multicasting is not meaningful on
          point to point and NBMA interfaces, and
          setting ospfPmIfMulticastForwarding to 0 effectively
          disables all multicast forwarding."
       DEFVAL { multicastBlocked }
       ::= { ospfPmIfEntry 18 }

  ospfPmIfDemand OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "We do not currently support the OSPF demand extension,
          so the setting of this parameter is ignored.

          It indicates whether Demand OSPF procedures (HELLO
          suppression to FULL neighbors and setting the
          DoNotAge flag on propagated LSAs) should be performed
          on this interface."
       DEFVAL { false }
       ::= { ospfPmIfEntry 19 }

  ospfPmIfAuthType OBJECT-TYPE
       SYNTAX       OspfAuthTypes
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The authentication type specified for an
          interface.  Additional authentication types may
          be assigned locally.

          Note that this object can be used to engage
          in significant attacks against an OSPF router."
       REFERENCE
          "OSPF Version 2, Appendix D Authentication"
       DEFVAL { authNone } -- no authentication, by default
       ::= { ospfPmIfEntry 20 }

  ospfPmIfLsaCount OBJECT-TYPE
       SYNTAX       Gauge32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The total number of link-local link state advertisements
          in this interface's link-local link state database."
       ::= { ospfPmIfEntry 21 }

  ospfPmIfLsaCksumSum OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The 32-bit unsigned sum of the link-state
          advertisements' LS checksums contained in this
          interface's link-local link state database.
          The sum can be used to determine if there has
          been a change in the interface's link state database,
          and to compare the interface link-state database of
          routers attached to the same subnet."
       ::= { ospfPmIfEntry 22 }

-- The following are DC-OSPF implementation specific parameters

  ospfPmIfApplIndex OBJECT-TYPE
       SYNTAX       OspfPmIndex
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "Identifies the DC-OSPF entity."
       ::= { ospfPmIfEntry 23 }

  ospfPmIfOperStatus OBJECT-TYPE
       SYNTAX       OspfPmOperStatus
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The current operational state of this interface."
       ::= { ospfPmIfEntry 24 }

  ospfPmIfNetMask OBJECT-TYPE
       SYNTAX       IpAddress
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
         "The subnet mask associated with the IP address of this entry.  The
         value of the mask is an IP address with all the network bits set to 1
         and all the hosts bits set to 0."
       ::= { ospfPmIfEntry 25 }

  ospfPmIfResourceClass OBJECT-TYPE
       SYNTAX       Unsigned32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "This field specifies administrative group membership for this
          interface, in terms of a bit mask.  An interface that is a member
          of multiple groups will have multiple bits set.  There can be at
          most 32 independent administrative groups.  These groups are used
          by DC-OSPF in CSPF calculations, which may restrict routes to
          a subset of these groups.  Note that each OSPF interface
          (address/if_index pair) may be assigned to different Resource
          Classes."
       ::= { ospfPmIfEntry 26 }

  ospfPmIfTransmitTimerDelay OBJECT-TYPE
       SYNTAX       Integer32 (0..'7FFFFFFF'h)
       UNITS        "milliseconds"
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The time this interface will delay a LSU packet, in order to
          add more LSAs to the packet before sending.  Setting this
          correctly can reduce the network traffic.  This is configurable
          on a per-interface basis."
       DEFVAL { 100 }
       ::= { ospfPmIfEntry 27 }

  ospfPmIfIPMaxPacketSize OBJECT-TYPE
       SYNTAX       Integer32 (0..'FFFF'h)
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "Maximum transfer unit (MTU) for the network interface.

           This is the maximum packet size in bytes for packets sent over the
           network interface.  This size excludes link layer headers but
           includes IP headers and higher-level headers.

           Normally, DC-OSPF will limit sent PDUs (protocol data units) to
           less than or equal to this size.  However, if DC-OSPF
           cannot construct a valid OSPF PDU smaller than or equal to
           this size then it will send the smallest valid PDU and
           assume that the IP stack will fragment the packet.  Set to zero
           if unknown."
       ::= { ospfPmIfEntry 28 }

  ospfPmIfPassive OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Indicates whether this interface is a passive interface.  If set
          to true, we suppress HELLO packets sent on and received from this
          interface.  We will therefore advertise this interface in our LSAs
          but not run OSPF protocol over it."
       DEFVAL { false }
       ::= { ospfPmIfEntry 29 }

  ospfPmIfInterfaceName OBJECT-TYPE
       SYNTAX       DisplayString
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The textual name of the interface.  The value of this
           object is the name of the interface as assigned by the
           local device and is 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 is unique per logical interface.  Set to null if not
           known."
       ::= { ospfPmIfEntry 30 }

  ospfPmIfLsaRefreshIntvl OBJECT-TYPE
       SYNTAX       Integer32 (1..3599)
       UNITS        "seconds"
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Self-originated LSAs are periodically reflooded into the routing
          domain, to add to the robustness of the OSPF protocol.  This value
          determines the interval between refreshes of LSAs that are only
          flooded over this interface, for example type-9 opaque LSAs, and
          is defaulted to the OSPF standard default of 1800 seconds
          (30 minutes)."
       DEFVAL { 1800 }
       ::= { ospfPmIfEntry 31 }

  ospfPmIfQOSSupport OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Defines whether Traffic Engineering LSAs can be originated for this
          interface.  Traffic Engineering information to advertise must be
          supplied by the I3 Stub."
       DEFVAL { true }
       ::= { ospfPmIfEntry 32 }

  ospfPmIfTEMetricPcntge OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The Traffic Engineering metric (ospfPmIfTEMetric) is updated in
          real-time by the External IF Config 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
          Opaque LSA to be originated."
       DEFVAL { 0 }
       ::= { ospfPmIfEntry 33 }

  ospfPmIfTEMetric OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The Traffic Engineering metric for this interface, used by CSPF
          to calculate constrained routes.  This is advertised through the
          routing domain in Opaque LSAs.  However, a change to this parameter
          only causes an origination of a new Opaque LSA when the percentage
          difference between this parameter and ospfPmIfLastTEMetric is
          bigger than ospfPmIfTEMetricPcntge."
       ::= { ospfPmIfEntry 34 }

  ospfPmIfLastTEMetric OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised Traffic Engineering metric for this
          interface."
       ::= { ospfPmIfEntry 35 }

  ospfPmIfMaxBwidthPcntge OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The maximum bandwidth on this interface (ospfPmIfMaxBandwidth) is
          updated in real-time by the External IF Config Stub.  In order to
          increase performance and reduce network traffic, this parameter
          determines the minimal percentage change of maximum bandwidth that
          causes a new Opaque LSA to be originated."
       DEFVAL { 0 }
       ::= { ospfPmIfEntry 36 }

  ospfPmIfMaxBandwidth OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The maximum bandwidth on this interface, in IEEE floating point
          format, used by CSPF to calculate constrained routes.  This is the
          true link capacity.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfLastMaxBwidth is bigger than ospfPmIfMaxBwidthPcntge."
       ::= { ospfPmIfEntry 37 }

  ospfPmIfLastMaxBwidth OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised Maximum Bandwidth for this interface."
       ::= { ospfPmIfEntry 38 }

  ospfPmIfMaxResBwidthPcntge OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The maximum reservable bandwidth on this interface
          (ospfPmIfMaxResBwidth) is updated in real-time by the External IF
          Config 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 Opaque LSA to be
          originated."
       DEFVAL { 0 }
       ::= { ospfPmIfEntry 39 }

  ospfPmIfMaxResBwidth OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The maximum reservable bandwidth on this interface, in IEEE
          floating point format, used by CSPF to calculate constrained routes.
          This is the true link capacity, and may be greater than
          ospfPmIfMaxBandwidth (in which case the link may be oversubscribed).
          The units are bytes per second.  This is advertised through the
          routing domain in Opaque LSAs.  However, a change to this parameter
          only causes an origination of a new Opaque LSA when the percentage
          difference between this parameter and ospfPmIfLastMaxResBwidth is
          bigger than ospfPmIfMaxResBwidthPcntge."
       ::= { ospfPmIfEntry 40 }

  ospfPmIfLastMaxResBwidth OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised Maximum Reserved Bandwidth for this
          interface."
       ::= { ospfPmIfEntry 41 }

  ospfPmIfUnresBwidthPcntge OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The unreserved bandwidth on this interface (ospfPmIfUnresBwidth0,
          .. 7) is updated in real-time by the External IF Config Stub.  In
          order to increase performance and reduce network traffic, this
          parameter determines the minimal percentage change of unreserved
          bandwidth that causes a new Opaque LSA to be originated."
       DEFVAL { 0 }
       ::= { ospfPmIfEntry 42 }

  ospfPmIfUnresBwidth0 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The unreserved bandwidth on this interface, at the first priority
          level or TE-class, in IEEE floating point format, used by CSPF to
          calculate constrained routes.  Each value will be less than or equal
          to ospfPmIfMaxResBwidth.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfLastUnresBwidth0 is bigger than ospfPmIfUnresBwidthPcntge.

          Note that in a DiffServ-TE environment the unreserved bandwidths
          are indexed on priority level, whereas in a DiffServ-TE environment
          they are indexed on TE-class."
       ::= { ospfPmIfEntry 43 }

  ospfPmIfLastUnresBwidth0 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised Unreserved Bandwidth at the first priority
          level or TE-class for this interface."
       ::= { ospfPmIfEntry 44 }

  ospfPmIfUnresBwidth1 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The unreserved bandwidth on this interface, at the second priority
          level or TE-class, in IEEE floating point format, used by CSPF to
          calculate constrained routes.  Each value will be less than or equal
          to ospfPmIfMaxResBwidth.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfLastUnresBwidth1 is bigger than ospfPmIfUnresBwidthPcntge.

          Note that in a DiffServ-TE environment the unreserved bandwidths
          are indexed on priority level, whereas in a DiffServ-TE environment
          they are indexed on TE-class."
       ::= { ospfPmIfEntry 45 }

  ospfPmIfLastUnresBwidth1 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised Unreserved Bandwidth at the second priority
          level or TE-class for this interface."
       ::= { ospfPmIfEntry 46 }

  ospfPmIfUnresBwidth2 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The unreserved bandwidth on this interface, at the third priority
          level or TE-class, in IEEE floating point format, used by CSPF to
          calculate constrained routes.  Each value will be less than or equal
          to ospfPmIfMaxResBwidth.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfLastUnresBwidth2 is bigger than ospfPmIfUnresBwidthPcntge.

          Note that in a DiffServ-TE environment the unreserved bandwidths
          are indexed on priority level, whereas in a DiffServ-TE environment
          they are indexed on TE-class."
       ::= { ospfPmIfEntry 47 }

  ospfPmIfLastUnresBwidth2 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised Unreserved Bandwidth at the third priority
          level or TE-class for this interface."
       ::= { ospfPmIfEntry 48 }

  ospfPmIfUnresBwidth3 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The unreserved bandwidth on this interface, at the fourth priority
          level or TE-class, in IEEE floating point format, used by CSPF to
          calculate constrained routes.  Each value will be less than or equal
          to ospfPmIfMaxResBwidth.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfLastUnresBwidth3 is bigger than ospfPmIfUnresBwidthPcntge.

          Note that in a DiffServ-TE environment the unreserved bandwidths
          are indexed on priority level, whereas in a DiffServ-TE environment
          they are indexed on TE-class."
       ::= { ospfPmIfEntry 49 }

  ospfPmIfLastUnresBwidth3 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised Unreserved Bandwidth at the fourth priority
          level or TE-class for this interface."
       ::= { ospfPmIfEntry 50 }

  ospfPmIfUnresBwidth4 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The unreserved bandwidth on this interface, at the fifth priority
          level or TE-class, in IEEE floating point format, used by CSPF to
          calculate constrained routes.  Each value will be less than or equal
          to ospfPmIfMaxResBwidth.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfLastUnresBwidth4 is bigger than ospfPmIfUnresBwidthPcntge.

          Note that in a DiffServ-TE environment the unreserved bandwidths
          are indexed on priority level, whereas in a DiffServ-TE environment
          they are indexed on TE-class."
       ::= { ospfPmIfEntry 51 }

  ospfPmIfLastUnresBwidth4 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised Unreserved Bandwidth at the fifth priority
          level or TE-class for this interface."
       ::= { ospfPmIfEntry 52 }

  ospfPmIfUnresBwidth5 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The unreserved bandwidth on this interface, at the sixth priority
          level or TE-class, in IEEE floating point format, used by CSPF to
          calculate constrained routes.  Each value will be less than or equal
          to ospfPmIfMaxResBwidth.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfLastUnresBwidth5 is bigger than ospfPmIfUnresBwidthPcntge.

          Note that in a DiffServ-TE environment the unreserved bandwidths
          are indexed on priority level, whereas in a DiffServ-TE environment
          they are indexed on TE-class."
       ::= { ospfPmIfEntry 53 }

  ospfPmIfLastUnresBwidth5 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised Unreserved Bandwidth at the sixth priority
          level or TE-class for this interface."
       ::= { ospfPmIfEntry 54 }

  ospfPmIfUnresBwidth6 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The unreserved bandwidth on this interface, at the seventh priority
          level or TE-class, in IEEE floating point format, used by CSPF to
          calculate constrained routes.  Each value will be less than or equal
          to ospfPmIfMaxResBwidth.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfLastUnresBwidth6 is bigger than ospfPmIfUnresBwidthPcntge.

          Note that in a DiffServ-TE environment the unreserved bandwidths
          are indexed on priority level, whereas in a DiffServ-TE environment
          they are indexed on TE-class."
       ::= { ospfPmIfEntry 55 }

  ospfPmIfLastUnresBwidth6 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised Unreserved Bandwidth at the seventh priority
          level or TE-class for this interface."
       ::= { ospfPmIfEntry 56 }

  ospfPmIfUnresBwidth7 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The unreserved bandwidth on this interface, at the eighth priority
          level or TE-class, in IEEE floating point format, used by CSPF to
          calculate constrained routes.  Each value will be less than or equal
          to ospfPmIfMaxResBwidth.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfLastUnresBwidth7 is bigger than ospfPmIfUnresBwidthPcntge.

          Note that in a DiffServ-TE environment the unreserved bandwidths
          are indexed on priority level, whereas in a DiffServ-TE environment
          they are indexed on TE-class."
       ::= { ospfPmIfEntry 57 }

  ospfPmIfLastUnresBwidth7 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised Unreserved Bandwidth at the eighth priority
          level or TE-class for this interface."
       ::= { ospfPmIfEntry 58 }

  ospfPmIfIfIndex OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "A 32-bit index identifying this interface, or zero if no index
           value is known.  For interfaces having no IP Address this field
           is automatically set to the value of the address-less interface
           index field."
       ::= { ospfPmIfEntry 59 }

  ospfPmIfRemoteIfIndex OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "For a point to point interface, this specifies the interface index
           assigned to this link by the remote peer.  If the remote interface
           ID is not known, this field is set to zero.  It is not valid
           for non point to point interfaces and is set to zero."
       ::= { ospfPmIfEntry 60 }

  ospfPmIfLinkProtectionType OBJECT-TYPE
       SYNTAX       OspfPmIfLinkProtValue
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The protection capability that exists for this interface."
       DEFVAL {{ linkUnprotected }}
       ::= { ospfPmIfEntry 61 }

  ospfPmIfSRLG OBJECT-TYPE
       SYNTAX       OCTET STRING (SIZE (0..256))
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "An Octet String indicating the Shared Risk Link Groups (SRLGs)
          that links on this interface belong to.  Links belong to the same
          SRLG if they share the same risk characteristics.  The SRLGs are
          32-bit Integer values, concatenated to form the Octet String.  The
          length of the octet string limits the MIB to returning a maximum of
          64 32-bit SRLGs.  Changing the size of this object requires an
          equivalent change to the constant QOPM_MAX_MIB_TE_SRLGS."
       ::= { ospfPmIfEntry 62 }

  ospfPmIfMaxLSPBwidthPcntge OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The MAX LSP bandwidth for the various switching descriptors on this
          interface (ospfPmIfSwitchMaxLSPBwidth0, ..  7) is updated in
          real-time by the External IF Config Stub.  In order to increase
          performance and reduce network traffic, this parameter determines the
          minimal percentage change of MAX LSP bandwidth that causes a new
          Opaque LSA to be originated."
       DEFVAL { 0 }
       ::= { ospfPmIfEntry 63 }

   ospfPmIfMinLSPBwidthPcntge OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The Min LSP bandwidth for the various switching descriptors on this
          interface is updated in real-time by the External IF Config Stub.  In
          order to increase performance and reduce network traffic, this
          parameter determines the minimal percentage change of Min LSP
          bandwidth that causes a new Opaque LSA to be originated."
       DEFVAL { 0 }
       ::= { ospfPmIfEntry 64 }

   ospfPmIfMTUSizePcntge OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The Maximum Transmission Unit size for the various switching
          descriptors on this interface is updated in real-time by the External
          IF Config 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 Opaque LSA
          to be originated."
       DEFVAL { 0 }
       ::= { ospfPmIfEntry 65 }

  ospfPmIfHelperModePolicy OBJECT-TYPE
       SYNTAX       OspfHelperModePolicy
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Indicates whether DC-OSPF will help a neighbor undergoing hitless
          restart on this interface for the specified reason.  This field
          contains a bit flag for each of OspfHitlessRestartReasons.  If a bit
          flag for a specific restart reason is set, then DC-OSPF will help
          a router restarting for this reason. Otherwise grace LSAs received
          containing this restart reason will be ignored.

          By default DC-OSPF does not help restarting routers for any reason."
       DEFVAL { { } }
       ::= { ospfPmIfEntry 66 }

  ospfPmIfMaxHitlessGracePeriod OBJECT-TYPE
       SYNTAX       UpToRefreshInterval
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "If configured to help neighbors undergoing hitless restart on this
          interface, this field indicates the maximum grace period that will
          be allowed for a neighboring router undergoing hitless restart.  If a
          type-9 grace LSA is received with a greater requested grace period,
          then the grace LSA will be ignored."
       DEFVAL { 140 }
       ::= { ospfPmIfEntry 67 }

  ospfPmIfEnableTeFlooding OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Used to enable TE LSA flooding across this interface.  This allows
          the TE data network to be partitioned separately from the underlying
          OSPF control plane network.  This flag has no effect on the receipt
          of TE LSAs across this interface, so to be truly effective it must be
          set consistently on each neighboring router.

          This field cannot be changed if the row is admin status up
          and row status active."
       DEFVAL { true }
       ::= { ospfPmIfEntry 68 }

   ospfPmIfAuthUserData OBJECT-TYPE
       SYNTAX      AuthUserDataString
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "Authentication user data for interface level authentication.

            This data is passed opaquely to the Metaswitch authentication
            interface where it can be used to assist with
            authentication decisions."
       DEFVAL { ''h }
       ::= { ospfPmIfEntry 69 }

  ospfPmIfFastHelloMultiplier OBJECT-TYPE
       SYNTAX       FastHelloMultiplierRange
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The number of Hellos that should be sent within 1 second when
          using Fast Hellos on this interface.  This value does not have
          to be same for all routers attached to a common network, but it
          is advisable.  Fast Hellos are configured using
          ospfPmIfRtrDeadInterval."
       DEFVAL { 5 }
       ::= { ospfPmIfEntry 70 }

  ospfPmIfAutoDeleteNbr OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Whether dynamically created entries in the ospfPmNbrTable
          should be kept when the adjacency goes down.

          The default value is 'true', which indicates that
          dynamically created entries in the ospfPmNbrTable will be
          deleted automatically when the adjacency goes down.

          If this object is set to 'false', then dynamically created
          entries in the ospfPmNbrTable will remain with state
          'nbrDown' when the adjacency is lost.  Such entries can be
          deleted manually by setting ospfPmNbrStatus to 'destroy'."
       DEFVAL { true }
       ::= { ospfPmIfEntry 71 }

  ospfPmIfNumBwidthCnstrnts OBJECT-TYPE
       SYNTAX       Integer32 (0..8)
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of valid bandwidth constraints, starting from
           ospfPmIfBwidthCnstrnt0.

           In a non Diffserv-TE environment, this object will be set to 0."
       ::= { ospfPmIfEntry 72 }

  ospfPmIfBwidthCnstrntModel OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The Bandwidth Constraints Model Identifier, from the name
           space managed by IANA - see RFC 4124.  If DC-OSPF is flooding
           a Bandwidth Constraints sub-TLV for this interface, this is the
           identifier it is using.

           This object should be ignored if ospfPmIfNumBwidthCnstrnts is
           set to zero.

           If ospfPmIfNumBwidthCnstrnts is non-zero, the number of
           constraints will be consistent with the bandwidth constraint
           model (the I3 stub is responsible for ensuring this).  Also
           the relationships between the values of the bandwidth
           constraints and the maximum reservable bandwidth will be
           consistent with the bandwidth constraint model.

           Examples for the Bandwidth Constraints Model Identifier are as
           follows.

           0 - Russian Dolls model (RFC 4127).
           1 - Maximum Allocation model (RFC 4125).
           2 - Max Allocation with Reservation model (RFC 4126)."
       ::= { ospfPmIfEntry 73 }

  ospfPmIfBwidthCnstrnt0 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The first bandwidth constraint on this interface,
          in IEEE floating point format, used by CSPF to calculate
          constrained routes.  Each value will be less than or equal to
          ospfPmIfMaxResBwidth.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.

          This object is set to 0 if ospfPmIfNumBwdthCnstrnts
          is set to 0."
       ::= { ospfPmIfEntry 74 }

  ospfPmIfBwidthCnstrnt1 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The second bandwidth constraint on this interface,
          in IEEE floating point format, used by CSPF to calculate
          constrained routes.  Each value will be less than or equal to
          ospfPmIfMaxResBwidth.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.

          This object is set to 0 if ospfPmIfNumBwdthCnstrnts
          is set to 0 or 1."
       ::= { ospfPmIfEntry 75 }

  ospfPmIfBwidthCnstrnt2 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The third bandwidth constraint on this interface,
          in IEEE floating point format, used by CSPF to calculate
          constrained routes.  Each value will be less than or equal to
          ospfPmIfMaxResBwidth.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.

          This object is set to 0 if ospfPmIfNumBwdthCnstrnts
          is set to 2 or less."
       ::= { ospfPmIfEntry 76 }

  ospfPmIfBwidthCnstrnt3 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The fourth bandwidth constraint on this interface,
          in IEEE floating point format, used by CSPF to calculate
          constrained routes.  Each value will be less than or equal to
          ospfPmIfMaxResBwidth.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.

          This object is set to 0 if ospfPmIfNumBwdthCnstrnts
          is set to 3 or less."
       ::= { ospfPmIfEntry 77 }

  ospfPmIfBwidthCnstrnt4 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The fifth bandwidth constraint on this interface,
          in IEEE floating point format, used by CSPF to calculate
          constrained routes.  Each value will be less than or equal to
          ospfPmIfMaxResBwidth.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.

          This object is set to 0 if ospfPmIfNumBwdthCnstrnts
          is set to 4 or less."
       ::= { ospfPmIfEntry 78 }

  ospfPmIfBwidthCnstrnt5 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The sixth bandwidth constraint on this interface,
          in IEEE floating point format, used by CSPF to calculate
          constrained routes.  Each value will be less than or equal to
          ospfPmIfMaxResBwidth.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.

          This object is set to 0 if ospfPmIfNumBwdthCnstrnts
          is set to 5 or less."
       ::= { ospfPmIfEntry 79 }

  ospfPmIfBwidthCnstrnt6 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The seventh bandwidth constraint on this interface,
          in IEEE floating point format, used by CSPF to calculate
          constrained routes.  Each value will be less than or equal to
          ospfPmIfMaxResBwidth.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.

          This object is set to 0 if ospfPmIfNumBwdthCnstrnts
          is set to 6 or less."
       ::= { ospfPmIfEntry 80 }

  ospfPmIfBwidthCnstrnt7 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The eighth bandwidth constraint on this interface,
          in IEEE floating point format, used by CSPF to calculate
          constrained routes.  Each value will be less than or equal to
          ospfPmIfMaxResBwidth.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.

          This object is set to 0 if ospfPmIfNumBwdthCnstrnts
          is set to 7 or less."
       ::= { ospfPmIfEntry 81 }

  ospfPmIfMtuIgnore OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "This object controls whether DC-OSPF checks the MTU size on
          incoming Database Description packets.  By default, if the
          received MTU size in a DB Description packet is higher than
          the MTU size configured on the incoming interface, the OSPF
          adjacency will not be established.  If the interface is
          tunneled over, say, an MPLS network, then the administrator
          may not know the maximum MTU size and so can tell DC-OSPF to
          ignore the MTU size on incoming DB description packets."
       DEFVAL { false }
       ::= { ospfPmIfEntry 82 }

  ospfPmIfNmEntity OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Identifies the NM entity that will handle this interface.

          This field cannot be changed if the row is admin status up
          and row status active."
       DEFVAL { 1 }
       ::= { ospfPmIfEntry 83 }

  ospfPmIfBfdDesired OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Indicates whether Bidirectional Forwarding Detection (BFD) is
          desired on this interface.

          If the NM entity managing this interface (configured using
          ospfPmIfNmEntity) does not have an active join to a BFD provider
          (configured using ospfNmEntBfdEntityIndex), then BFD will not be
          desired on this interface regardless of the value of this
          field."
       DEFVAL { true }
       ::= { ospfPmIfEntry 84 }

  ospfPmIfRstHlprStrictLsaChk OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Whether to perform strict LSA checking when acting as a
          restart helper for a restarting peer on this interface.

          When ospfPmIfRstHlprStrictLsaChk is 'true', OSPF will
          perform strict LSA checking as described in RFC 3623 and
          RFC 5187.  In particular, OSPF will stop acting as restart
          helper if it transmits an LSA to the restarting node
          indicating a topology change.

          Set ospfPmIfRstHlprStrictLsaChk to 'false' to disable
          strict LSA checking."
       DEFVAL { true }
       ::= { ospfPmIfEntry 85 }

  ospfPmIfStatsReset OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Set this object to 'true' to reset all stats counters in the
          ospfPmIfStatsTable that augments this table.

          Reading the value of this object has no meaning."
       DEFVAL { false }
       ::= { ospfPmIfEntry 86 }

  ospfPmIfGraceLsaResendTimer OBJECT-TYPE
       SYNTAX       Integer32
       UNITS        "seconds"
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The value of the timer used to resend Grace LSA packets in
          seconds.  Following an unplanned restart Grace LSAs are
          resent every unplnd_grace_lsa_resend_timer seconds.

          Resends are stopped once the first HELLO is transmitted,
          which occurs after the period specified in the
          unplanned_gr_delay_timer field."
       DEFVAL { 0 }
       ::= { ospfPmIfEntry 87 }

  ospfPmIfGRDelayTimer OBJECT-TYPE
       SYNTAX       Integer32
       UNITS        "seconds"
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The value of the timer used to wait, after an unplanned
          graceful restart, before sending the first HELLO.
          If grace LSAs are being retransmitted, the retransmissions
          are stopped when this timer fires."
       DEFVAL { 10 }
       ::= { ospfPmIfEntry 88 }

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

--  OSPF Interface Metric Table

--     The Metric Table describes the metrics to be advertised
--     for a specified interface at the various types of service.
--     As such, this table is an adjunct of the OSPF Interface
--     Table.

--     Types of service, as defined by RFC 791, have the ability
--     to request low delay, high bandwidth, or reliable linkage.

--     For the purposes of this specification, the measure of
--     bandwidth:

--        Metric = 10^8 / ifSpeed

--    is the default value.  For multiple link interfaces, note
--    that ifSpeed is the sum of the individual link speeds.
--    This yields a number having the following typical values:

--       Network Type/bit rate   Metric

--       >= 100 MBPS                 1
--       Ethernet/802.3             10
--       E1                         48
--       T1 (ESF)                   65
--       64 KBPS                    1562
--       56 KBPS                    1785
--       19.2 KBPS                  5208
--       9.6 KBPS                   10416

--  Routes that are not specified use the default (TOS 0) metric

   ospfPmIfMetricTable OBJECT-TYPE
   -- FAMILY-SHORT-NAME qopm_ifmet
        SYNTAX       SEQUENCE OF OspfPmIfMetricEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The TOS metrics for a network interface identified by the
           the interface index.  This does not apply to virtual
           interfaces or sham links."
        REFERENCE
           "OSPF Version 2, Appendix C.3 Router interface
           parameters"
        ::= { ospfObjects 8 }

   ospfPmIfMetricEntry OBJECT-TYPE
        SYNTAX       OspfPmIfMetricEntry
        MAX-ACCESS   not-accessible
        STATUS      current
        DESCRIPTION
           "A particular TOS metric for a network interface
           identified by the interface index."
        REFERENCE
           "OSPF Version 2, Appendix C.3 Router interface
           parameters"
        INDEX {
           ospfPmIfMetricApplIndex,
           ospfPmIfMetricIpAddress,
           ospfPmIfMetricAddressLessIf,
           ospfPmIfMetricTOS
           }
        ::= { ospfPmIfMetricTable 1 }

   OspfPmIfMetricEntry ::= SEQUENCE {
          ospfPmIfMetricIpAddress             IpAddress,
          ospfPmIfMetricAddressLessIf         InterfaceIndexOrZero,
          ospfPmIfMetricTOS                   TOSType,
          ospfPmIfMetricValue                 Metric,
          ospfPmIfMetricStatus                RowStatus,
-- The following are DC-OSPF implementation specific parameters
          ospfPmIfMetricApplIndex             OspfPmIndex
        }

   ospfPmIfMetricIpAddress OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The IP address of this OSPF interface.  On row
           creation, this can be derived from the instance."
        ::= { ospfPmIfMetricEntry 1 }

   ospfPmIfMetricAddressLessIf OBJECT-TYPE
        SYNTAX       InterfaceIndexOrZero
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "For the purpose of easing the instancing of
           addressed and addressless interfaces; This
           variable takes the value 0 on interfaces with
           IP Addresses, and the value of ifIndex for
           interfaces having no IP Address.  On row creation,
           this can be derived from the instance."
         ::= { ospfPmIfMetricEntry 2 }

   ospfPmIfMetricTOS OBJECT-TYPE
        SYNTAX       TOSType
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The type of service metric being referenced.
           Since DC-OSPF does not support type of service,
           TOS must be set to zero."
        ::= { ospfPmIfMetricEntry 3 }

   ospfPmIfMetricValue OBJECT-TYPE
        SYNTAX       Metric
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "The metric of using this type of service on
           this interface.  The default value of the TOS 0
           Metric is 10^8 / ifSpeed."
        ::= { ospfPmIfMetricEntry 4 }

   ospfPmIfMetricStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "This object permits management of the table by
           facilitating actions such as row creation,
           construction and destruction."
        ::= { ospfPmIfMetricEntry 5 }

-- The following are DC-OSPF implementation specific parameters.

   ospfPmIfMetricApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Identifies this OSPF entity."
        ::= { ospfPmIfMetricEntry 6 }

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

--  OSPF Virtual Interface Table

--      The Virtual Interface Table describes the virtual
--      links that the OSPF Process is configured to
--      carry on.

  ospfPmVirtIfTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_vif
       SYNTAX       SEQUENCE OF OspfPmVirtIfEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "Information about this router's virtual interfaces.
          This table has been updated to include
          DC-OSPF implementation specific fields."
       REFERENCE
          "OSPF Version 2, Appendix C.4 Virtual link
          parameters"
       ::= { ospfObjects 9 }

  ospfPmVirtIfEntry OBJECT-TYPE
       SYNTAX       OspfPmVirtIfEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "Information about a single Virtual Interface.
          This entry has been updated to include DC-OSPF
          implementation specific fields."
       INDEX {
          ospfPmVirtIfApplIndex,
          ospfPmVirtIfAreaId,
          ospfPmVirtIfNeighbor
          }
       ::= { ospfPmVirtIfTable 1 }

  OspfPmVirtIfEntry ::= SEQUENCE {
         ospfPmVirtIfAreaId               AreaID,
         ospfPmVirtIfNeighbor             RouterID,
         ospfPmVirtIfTransitDelay         UpToMaxAge,
         ospfPmVirtIfRetransInterval      UpToMaxAge,
         ospfPmVirtIfHelloInterval        HelloRange,
         ospfPmVirtIfRtrDeadInterval      Integer32,
         ospfPmVirtIfState                OspfInterfaceStates,
         ospfPmVirtIfEvents               Counter32,
         ospfPmVirtIfAuthType             OspfAuthTypes,
         ospfPmVirtIfAuthKey              OCTET STRING,
         ospfPmVirtIfStatus               RowStatus,
         ospfPmVirtIfLsaCount             Gauge32,
         ospfPmVirtIfLsaCksumSum          Integer32,
-- The following are DC-OSPF implementation specific parameters
         ospfPmVirtIfApplIndex            OspfPmIndex,
         ospfPmVirtIfAdminStatus          OspfPmAdminStatus,
         ospfPmVirtIfOperStatus           OspfPmOperStatus,
         ospfPmVirtIfResourceClass        Integer32,
         ospfPmVirtIfTransmitTimerDelay   Integer32,
         ospfPmVirtIfIPMaxPacketSize      Integer32,
         ospfPmVirtIfPassive              TruthValue,
         ospfPmVirtIfInterfaceName        DisplayString,
         ospfPmVirtIfLsaRefreshIntvl      Integer32,
         ospfPmVirtIfHelperModePolicy     OspfHelperModePolicy,
         ospfPmVirtIfMaxHtlssGracePeriod  UpToRefreshInterval,
         ospfPmVirtIfEnableTeFlooding     TruthValue,
         ospfPmVirtIfAuthUserData         AuthUserDataString,
         ospfPmVirtIfFastHelloMultiplier  FastHelloMultiplierRange,
         ospfPmVirtIfMtuIgnore            TruthValue,
         ospfPmVirtIfNmEntity             Integer32,
         ospfPmVirtIfBfdDesired           TruthValue,
         ospfPmVirtIfRstHlprStrictLsaChk  TruthValue,
         ospfPmVirtIfStatsReset           TruthValue,
         ospfPmVirtIfGRDelayTimer         Integer32
       }

  ospfPmVirtIfAreaId OBJECT-TYPE
       SYNTAX       AreaID
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The Transit Area that the Virtual Link
          traverses.  By definition, this is not 0.0.0.0"
       ::= { ospfPmVirtIfEntry 1 }

  ospfPmVirtIfNeighbor OBJECT-TYPE
       SYNTAX       RouterID
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The Router ID of the Virtual Neighbor."
       ::= { ospfPmVirtIfEntry 2 }

  ospfPmVirtIfTransitDelay OBJECT-TYPE
       SYNTAX       UpToMaxAge
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The estimated number of seconds it takes to
          transmit a link-state update packet over this
          interface."
       DEFVAL { 1 }
       ::= { ospfPmVirtIfEntry 3 }

  ospfPmVirtIfRetransInterval OBJECT-TYPE
       SYNTAX       UpToMaxAge
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The number of seconds between link-state
          advertisement retransmissions, for adjacencies
          belonging to this interface.  This value is
          also used when retransmitting database description
          and link-state request packets.  This
          value should be well over the expected roundtrip time."
       DEFVAL { 5 }
       ::= { ospfPmVirtIfEntry 4 }

  ospfPmVirtIfHelloInterval OBJECT-TYPE
       SYNTAX       HelloRange
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The length of time, in seconds, between the
          Hello packets that the router sends on the
          interface.  This value must be the same for the
          virtual neighbor.

          Note that this field is ignored when Fast Hellos
          are used on this interface.  Fast Hellos are
          configured using ospfPmVirtIfRtrDeadInterval."
       DEFVAL { 10 }
       ::= { ospfPmVirtIfEntry 5 }

  ospfPmVirtIfRtrDeadInterval OBJECT-TYPE
       SYNTAX       Integer32 (0..'FFFF'h)
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The number of seconds that a router's Hello
          packets have not been seen before its neighbors
          declare the router down.  This should be
          some multiple of the Hello interval.  This
          value must be the same for the virtual neighbor.

          A value of 1 second means that Fast Hello Timers are used
          on this interface.  The ospfPmVirtIfFastHelloMultiplier
          field is used to determine the Hello interval instead of
          ospfPmVirtIfHelloInterval."
       DEFVAL { 60 }
       ::= { ospfPmVirtIfEntry 6 }

  ospfPmVirtIfState OBJECT-TYPE
       SYNTAX       OspfInterfaceStates
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "OSPF virtual interface state."
       DEFVAL { ifDown }
       ::= { ospfPmVirtIfEntry 7 }

  ospfPmVirtIfEvents OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of state changes or error events on
          this Virtual Link."
       ::= { ospfPmVirtIfEntry 8 }

  ospfPmVirtIfAuthKey OBJECT-TYPE
       SYNTAX       OCTET STRING (SIZE(0..256))
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The cleartext password used as an OSPF
          Authentication key when simplePassword security
          is enabled.  This object does not access any OSPF
          Cryptogaphic (e.g.  MD5) Authentication Key under
          any circumstance.

          If the key length is shorter than 8 octets, the
          agent will left adjust and zero fill to 8 octets.

          Unauthenticated interfaces need no authentication
          key, and simple password authentication cannot use
          a key of more than 8 octets.

          Note that the use of simplePassword authentication
          is NOT recommended when there is concern regarding
          attack upon the OSPF system.  SimplePassword
          authentication is only sufficient to protect against
          accidental misconfigurations because it re-uses
          cleartext passwords.  [RFC-1704]

          When read, ospfPmVirtIfAuthKey always returns an Octet
          String of length zero."
       REFERENCE
          "OSPF Version 2, Section 9 The Interface Data
          Structure"
       DEFVAL { '0000000000000000'H } -- 0.0.0.0.0.0.0.0
       ::= { ospfPmVirtIfEntry 9 }

  ospfPmVirtIfStatus OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "This object permits management of the table by
          facilitating actions such as row creation,
          construction and destruction."
        ::= { ospfPmVirtIfEntry 10 }

  ospfPmVirtIfAuthType OBJECT-TYPE
       SYNTAX       OspfAuthTypes
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The authentication type specified for a virtual
          interface.  Additional authentication types
          may be assigned locally.

          Note that this object can be used to engage
          in significant attacks against an OSPF router."
       REFERENCE
          "OSPF Version 2, Appendix E Authentication"
       DEFVAL { authNone } -- no authentication, by default
       ::= { ospfPmVirtIfEntry 11 }

  ospfPmVirtIfLsaCount OBJECT-TYPE
       SYNTAX       Gauge32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The total number of link-local link state advertisements
          in this virtual interface's link-local link state database."
       ::= { ospfPmVirtIfEntry 12 }

  ospfPmVirtIfLsaCksumSum OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The 32-bit unsigned sum of the link-state
          advertisements' LS checksums contained in this
          virtual interface's link-local link state database.
          The sum can be used to determine if there has
          been a change in the virtual interface's link state
          database, and to compare the virtual interface link-state
          database of the virtual neighbors."
       ::= { ospfPmVirtIfEntry 13 }

-- The following are DC-OSPF implementation specific parameters

  ospfPmVirtIfApplIndex OBJECT-TYPE
       SYNTAX       OspfPmIndex
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "Identifies the DC-OSPF entity."
       ::= { ospfPmVirtIfEntry 14 }

  ospfPmVirtIfAdminStatus OBJECT-TYPE
       SYNTAX       OspfPmAdminStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The desired administrative state of this virtual interface."
       DEFVAL { adminStatusUp }
       ::= { ospfPmVirtIfEntry 15 }

  ospfPmVirtIfOperStatus OBJECT-TYPE
       SYNTAX       OspfPmOperStatus
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The current operational state of this virtual interface."
       ::= { ospfPmVirtIfEntry 16 }

  ospfPmVirtIfResourceClass OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "This field specifies administrative group membership for this
          interface, in terms of a bit mask.  An interface that is a member
          of multiple groups will have multiple bits set.  There can be at
          most 32 independent administrative groups.  These groups are used
          by DC-OSPF in CSPF calculations, which may restrict routes to
          a subset of these groups.  Note that each OSPF interface
          (address/if_index pair) may be assigned to different Resource
          Classes."
       ::= { ospfPmVirtIfEntry 17 }

  ospfPmVirtIfTransmitTimerDelay OBJECT-TYPE
       SYNTAX       Integer32 (0..'7FFFFFFF'h)
       UNITS        "milliseconds"
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The time this interface will delay a LSU packet, in order to
          add more LSAs to the packet before sending.  Setting this
          correctly can reduce the network traffic.  This is configurable
          on a per-interface basis."
       DEFVAL { 100 }
       ::= { ospfPmVirtIfEntry 18 }

  ospfPmVirtIfIPMaxPacketSize OBJECT-TYPE
       SYNTAX       Integer32 (0..'FFFF'h)
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Maximum transfer unit (MTU) for the network interface.

           This is the maximum packet size in bytes for packets sent over the
           network interface.  This size excludes link layer headers but
           includes IP headers and higher-level headers.

           Normally, DC-OSPF will limit sent PDUs (protocol data units) to
           less than or equal to this size.  However, if DC-OSPF
           cannot construct a valid OSPF PDU smaller than or equal to
           this size then it will send the smallest valid PDU and
           assume that the IP stack will fragment the packet."
       DEFVAL { 576 }
       ::= { ospfPmVirtIfEntry 19 }

  ospfPmVirtIfPassive OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Indicates whether this interface is a passive interface.  If set
          to true, we suppress HELLO packets sent on and received from this
          interface.  We will therefore advertise this interface in our LSAs
          but not run OSPF protocol over it."
       DEFVAL { false }
       ::= { ospfPmVirtIfEntry 20 }

  ospfPmVirtIfInterfaceName 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."
       ::= { ospfPmVirtIfEntry 21 }

  ospfPmVirtIfLsaRefreshIntvl OBJECT-TYPE
       SYNTAX       Integer32 (1..3599)
       UNITS        "seconds"
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Self-originated LSAs are periodically reflooded into the routing
          domain, to add to the robustness of the OSPF protocol.  This value
          determines the interval between refreshes of LSAs that are only
          flooded over this interface and is defaulted to the OSPF standard
          default of 1800 seconds (30 minutes)."
       DEFVAL { 1800 }
       ::= { ospfPmVirtIfEntry 22 }

  ospfPmVirtIfHelperModePolicy OBJECT-TYPE
       SYNTAX       OspfHelperModePolicy
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Indicates whether DC-OSPF will help a neighbor undergoing hitless
          restart on this interface for the specified reason.  This field
          contains a bit flag for each of OspfHitlessRestartReasons.  If a bit
          flag for a specific restart reason is set, then DC-OSPF will help
          a router restarting for this reason. Otherwise grace LSAs received
          containing this restart reason will be ignored.

          By default DC-OSPF does not help restarting routers for any reason."
       DEFVAL { { } }
       ::= { ospfPmVirtIfEntry 23 }

  ospfPmVirtIfMaxHtlssGracePeriod OBJECT-TYPE
       SYNTAX       UpToRefreshInterval
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "If configured to help neighbors undergoing hitless restart on this
          interface, this field indicates the maximum grace period that will
          be allowed for a neighboring router undergoing hitless restart.  If a
          type-9 grace LSA is received with a greater requested grace period,
          then the grace LSA will be ignored."
       DEFVAL { 140 }
       ::= { ospfPmVirtIfEntry 24 }

  ospfPmVirtIfEnableTeFlooding OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Used to enable TE LSA flooding across this virtual interface.  This
          allows the TE data network to be partitioned separately from the
          underlying OSPF control plane network.  This flag has no effect on
          the receipt of TE LSAs across this interface, so to be truly
          effective it must be set consistently on the virtual neighbor.

          This field cannot be changed if the row is admin status up
          and row status active."
       DEFVAL { true }
       ::= { ospfPmVirtIfEntry 25 }

   ospfPmVirtIfAuthUserData OBJECT-TYPE
       SYNTAX      AuthUserDataString
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "Authentication user data for interface level authentication.

            This data is passed opaquely to the Metaswitch authentication
            interface where it can be used to assist with
            authentication decisions."
       DEFVAL { ''h }
       ::= { ospfPmVirtIfEntry 26 }

  ospfPmVirtIfFastHelloMultiplier OBJECT-TYPE
       SYNTAX       FastHelloMultiplierRange
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The number of Hellos that should be sent within 1 second when
          using Fast Hellos on this interface.  This value does not have
          to be same for all routers attached to a common network, but it
          is advisable.  Fast Hellos are configured using
          ospfPmVirtIfRtrDeadInterval."
       DEFVAL { 5 }
       ::= { ospfPmVirtIfEntry 27 }

  ospfPmVirtIfMtuIgnore OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "This object controls whether DC-OSPF checks the MTU size on
          incoming Database Description packets.  By default, if the
          received MTU size in a DB Description packet is higher than
          the MTU size configured on the incoming interface, the OSPF
          adjacency will not be established.  If the interface is
          tunneled over, say, an MPLS network, then the administrator
          may not know the maximum MTU size and so can tell DC-OSPF to
          ignore the MTU size on incoming DB description packets."
       DEFVAL { false }
       ::= { ospfPmVirtIfEntry 28 }

  ospfPmVirtIfNmEntity OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "Identifies the NM entity that is handling this virtual interface."
       ::= { ospfPmVirtIfEntry 29 }

  ospfPmVirtIfBfdDesired OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Indicates whether Bidirectional Forwarding Detection (BFD) is
          desired on this interface.

          If the NM entity managing this virtual interface (configured
          using ospfPmVirtIfNmEntity) does not have an active join to a
          BFD provider (configured using ospfNmEntBfdEntityIndex), then
          BFD will not be desired on this virtual interface regardless of
          the value of this field."
       DEFVAL { true }
       ::= { ospfPmVirtIfEntry 30 }

  ospfPmVirtIfRstHlprStrictLsaChk OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Whether to perform strict LSA checking when acting as a
          restart helper for a restarting peer on this virtual interface.

          When ospfPmVirtIfRstHlprStrictLsaChk is 'true', OSPF will
          perform strict LSA checking as described in RFC 3623 and
          RFC 5187.  In particular, OSPF will stop acting as restart
          helper if it transmits an LSA to the restarting node
          indicating a topology change.

          Set ospfPmVirtIfRstHlprStrictLsaChk to 'false' to disable
          strict LSA checking."
       DEFVAL { true }
       ::= { ospfPmVirtIfEntry 31 }

  ospfPmVirtIfStatsReset OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Set this object to 'true' to reset all stats counters in the
          ospfPmVirtIfStatsTable that augments this table.

          Reading the value of this object has no meaning."
       DEFVAL { false }
       ::= { ospfPmVirtIfEntry 32 }

  ospfPmVirtIfGRDelayTimer OBJECT-TYPE
       SYNTAX       Integer32
       UNITS        "seconds"
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The value of the timer used to wait, after an unplanned
          graceful restart, before sending the first HELLO.
          If grace LSAs are being retransmitted, the retransmissions
          are stopped when this timer fires."
       DEFVAL { 10 }
       ::= { ospfPmVirtIfEntry 33 }

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

--  OSPF Neighbor Table

--      The OSPF Neighbor Table describes all neighbors in
--      the locality of the subject router.

   ospfPmNbrTable OBJECT-TYPE
   -- FAMILY-SHORT-NAME qopm_nbr
        SYNTAX       SEQUENCE OF OspfPmNbrEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "A table of neighbor information for neighbors on network
           interfaces.  This does not apply to neighbors on virtual
           interfaces, sham links or multi-area interfaces.

           This table has been updated to include DC-OSPF
           implementation specific fields."
        REFERENCE
           "OSPF Version 2, Section 10 The Neighbor Data
           Structure"
        ::= { ospfObjects 10 }

   ospfPmNbrEntry OBJECT-TYPE
        SYNTAX       OspfPmNbrEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The information regarding a single neighbor.  This table
           has been updated to include DC-OSPF implementation
           specific fields."
        REFERENCE
           "OSPF Version 2, Section 10 The Neighbor Data
           Structure"
        INDEX {
           ospfPmNbrApplIndex,
           ospfPmNbrIpAddr,
           ospfPmNbrAddressLessIndex
           }
        ::= { ospfPmNbrTable 1 }

   OspfPmNbrEntry ::= SEQUENCE {
          ospfPmNbrIpAddr                     IpAddress,
          ospfPmNbrAddressLessIndex           InterfaceIndexOrZero,
          ospfPmNbrRtrId                      RouterID,
          ospfPmNbrOptions                    Integer32,
          ospfPmNbrPriority                   DesignatedRouterPriority,
          ospfPmNbrState                      OspfNeighborStates,
          ospfPmNbrEvents                     Counter32,
          ospfPmNbrLsRetransQLen              Gauge32,
          ospfPmNbrStatus                     RowStatus,
          ospfPmNbrPermanence                 OspfNbrPermanence,
          ospfPmNbrHelloSuppressed            TruthValue,
-- The following are DC-OSPF implementation specific parameters
          ospfPmNbrApplIndex                  OspfPmIndex,
          ospfPmNbrAdminStatus                OspfPmAdminStatus,
          ospfPmNbrOperStatus                 OspfPmOperStatus,
          ospfPmNbrNumRequests                Unsigned32,
          ospfPmNbrIfIpAddr                   IpAddress,
          ospfPmNbrDeadTime                   PositiveInteger,
          ospfPmNbrAreaId                     AreaID,
          ospfPmNbrRestartHelperStatus        OspfRestartHelperStatus,
          ospfPmNbrRestartHelperAge           UpToRefreshInterval,
          ospfPmNbrRestartHelperExitReason    OspfRestartExitReason,
          ospfPmNbrConfiguredPriority         DesignatedRouterPriority,
          ospfPmNbrDesignatedRtrState         OspfDesignatedRtrState
        }

   ospfPmNbrIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The IP address this neighbor is using in its
           IP Source Address.  Note that, on addressless
           links, this will not be 0.0.0.0, but the address
           of another of the neighbor's interfaces."
        ::= { ospfPmNbrEntry 1 }

   ospfPmNbrAddressLessIndex OBJECT-TYPE
        SYNTAX       InterfaceIndexOrZero
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "On an interface having an IP Address, zero.
           On addressless interfaces, the corresponding
           value of ifIndex in the Internet Standard MIB.
           On row creation, this can be derived from the
           instance."
         ::= { ospfPmNbrEntry 2 }

   ospfPmNbrRtrId OBJECT-TYPE
        SYNTAX       RouterID
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "A 32-bit integer (represented as a type
           IpAddress) uniquely identifying the neighboring
           router in the Autonomous System."
        DEFVAL { '00000000'H } -- 0.0.0.0
        ::= { ospfPmNbrEntry 3 }

   ospfPmNbrOptions OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "A Bit Mask corresponding to the neighbor's options
           field.

           Bit 0, if set, indicates that the system will
           operate on Type of Service metrics other than
           TOS 0.  If zero, the neighbor will ignore all
           metrics except the TOS 0 metric.

           Bit 1, if set, indicates that the associated
           area accepts and operates on external information;
           if zero, it is a stub area.

           Bit 2, if set, indicates that the system is capable
           of routing IP Multicast datagrams; i.e.,
           that it implements the Multicast Extensions to
           OSPF.

           Bit 3, if set, indicates that the associated
           area is an NSSA.  These areas are capable of
           carrying type 7 external advertisements, which
           are translated into type 5 external
           advertisements at NSSA borders.

           Bit 4, if set, indicates the router's willingness to
           receive and forward External-Attributes-LSAs.

           Bit 5, describes the router's handling of demand circuits,
           as specified in RFC 1793.

           Bit 6, if set, indicates the router's willingness to
           receive and forward Opaque-LSAs as specified in RFC 2370."
        REFERENCE
            "OSPF Version 2, Section 12.1.2 Options"
        DEFVAL { 0 }
        ::= { ospfPmNbrEntry 4 }

    ospfPmNbrPriority OBJECT-TYPE
        SYNTAX       DesignatedRouterPriority
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The priority of this neighbor as signalled in the last
           received OSPF Hello packet.  A value of 0 signifies that
           the neighbor is not eligible to become the designated
           router on this particular network.  To configure the
           neighbor's priority, see ospfPmNbrConfiguredPriority.
           "
        ::= { ospfPmNbrEntry 5 }

    ospfPmNbrState OBJECT-TYPE
        SYNTAX       OspfNeighborStates
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The State of the relationship with this Neighbor."
        REFERENCE
           "OSPF Version 2, Section 10.1 Neighbor States"
        ::= { ospfPmNbrEntry 6 }

   ospfPmNbrEvents OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The number of times this neighbor relationship
           has changed state, or an error has occurred."
        ::= { ospfPmNbrEntry 7 }

   ospfPmNbrLsRetransQLen OBJECT-TYPE
        SYNTAX       Gauge32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The current length of the retransmission
           queue."
        ::= { ospfPmNbrEntry 8 }

   ospfPmNbrStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "This object permits management of the table by
           facilitating actions such as row creation,
           construction and destruction."
        ::= { ospfPmNbrEntry 9 }

   ospfPmNbrPermanence OBJECT-TYPE
        SYNTAX       OspfNbrPermanence
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "This variable displays the status of the entry.
           'dynamic' and 'permanent' refer to how the neighbor
           became known."
        DEFVAL { permPermanent }
        ::= { ospfPmNbrEntry 10 }

    ospfPmNbrHelloSuppressed OBJECT-TYPE
        SYNTAX       TruthValue
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "Indicates whether Hellos are being suppressed
           to the neighbor."
        ::= { ospfPmNbrEntry 11 }

-- The following are DC-OSPF implementation specific fields.

    ospfPmNbrApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Identifies this OSPF entity."
        ::= { ospfPmNbrEntry 12 }

    ospfPmNbrAdminStatus OBJECT-TYPE
        SYNTAX       OspfPmAdminStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "The desired administrative state of this neighbor. This object
           can only be changed for explicitly defined neighbors.  For
           discovered neighbors (ospfPmNbrPermanence is 'dynamic'), this field
           is read-only."
        DEFVAL { adminStatusUp }
        ::= { ospfPmNbrEntry 13 }

    ospfPmNbrOperStatus OBJECT-TYPE
        SYNTAX       OspfPmOperStatus
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The current operational state of this neighbor."
        ::= { ospfPmNbrEntry 14 }

    ospfPmNbrNumRequests OBJECT-TYPE
        SYNTAX       Unsigned32 (0..'FFFFFFFF'h)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The number of LSAs we have requested from this neighbor
           for which we are still awaiting a response.  This field is
           incremented when an LSA is requested by sending a LS request
           packet and is decremented when the LSA arrives in an LS
           update packet."
        ::= { ospfPmNbrEntry 15 }

   ospfPmNbrIfIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "The IP address of the interface used for this neighbor.
           Note this field is only used for NBMA and P2MP links.  If this value
           is set to zero DC-OSPF will choose a suitable interface to use.
           Note, this field cannot be changed while the row is active (Admin
           Status UP).  If this value is non-zero this neighbor will only be
           associated with an exactly matching interface."
        DEFVAL { '00000000'H } -- 0.0.0.0
        ::= { ospfPmNbrEntry 16 }

   ospfPmNbrDeadTime OBJECT-TYPE
        SYNTAX          PositiveInteger
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
           "The time remaining in seconds within which we need to receive a
           hello packet from the neighbor or we declare the adjacency down.
           If Fast Hellos are in use, this value is always set to 1.
           If the oper_status is down or ospfPmNbrState is DOWN, then the value
           is set to zero and the field is not valid."
        ::= { ospfPmNbrEntry 17 }

   ospfPmNbrAreaId OBJECT-TYPE
        SYNTAX          AreaID
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The area to which the neighbor belongs. If the oper_status is
            down, then this value is set to zero and the field is not valid."
        ::= { ospfPmNbrEntry 18 }

   ospfPmNbrRestartHelperStatus OBJECT-TYPE
        SYNTAX       OspfRestartHelperStatus
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Indicates whether the router is acting as a hitless
            restart helper for the neighbor."
        ::= { ospfPmNbrEntry 19 }

   ospfPmNbrRestartHelperAge OBJECT-TYPE
        SYNTAX       UpToRefreshInterval
        UNITS        "seconds"
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Remaining time in current OSPF hitless restart interval,
            if the router is acting as a restart helper for the
            neighbor."
        ::= { ospfPmNbrEntry 20 }

   ospfPmNbrRestartHelperExitReason OBJECT-TYPE
        SYNTAX       OspfRestartExitReason
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Describes the outcome of the last attempt at acting as a
            hitless restart helper for the neighbor."
        ::= { ospfPmNbrEntry 21 }

   ospfPmNbrConfiguredPriority OBJECT-TYPE
        SYNTAX       DesignatedRouterPriority
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION  "The configured priority of this neighbor.  This field is
                     set to a non-zero value in order to initiate an 'hello'
                     exchange with a neighbor over an NBMA interface.  For the
                     actual value which has been signalled by the neighbor, see
                     ospfPmNbrPriority."
        DEFVAL { 1 }
        ::= { ospfPmNbrEntry 22 }

   ospfPmNbrDesignatedRtrState OBJECT-TYPE
        SYNTAX       OspfDesignatedRtrState
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION  "The designated router state of this neighbor.  This field
                     indicates whether the router is the designated router or
                     backup designated router or neither."
        ::= { ospfPmNbrEntry 23 }

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

--  OSPF Virtual Neighbor Table

--     This table describes all virtual neighbors.
--     Since Virtual Links are configured in the
--     virtual interface table, this table is read-only.

   ospfPmVirtNbrTable OBJECT-TYPE
   -- FAMILY-SHORT-NAME qopm_vnbr
        SYNTAX       SEQUENCE OF OspfPmVirtNbrEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "A table of virtual neighbor information.  This table
           has been updated to include DC-OSPF implementation
           specific fields."
        REFERENCE
           "OSPF Version 2, Section 15 Virtual Links"
        ::= { ospfObjects 11 }

   ospfPmVirtNbrEntry OBJECT-TYPE
        SYNTAX       OspfPmVirtNbrEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Virtual neighbor information.  This table
           has been updated to include DC-OSPF implementation
           specific fields."
        INDEX {
           ospfPmVirtNbrApplIndex,
           ospfPmVirtNbrArea,
           ospfPmVirtNbrRtrId
           }
        ::= { ospfPmVirtNbrTable 1 }

   OspfPmVirtNbrEntry ::= SEQUENCE {
          ospfPmVirtNbrArea                   AreaID,
          ospfPmVirtNbrRtrId                  RouterID,
          ospfPmVirtNbrIpAddr                 IpAddress,
          ospfPmVirtNbrOptions                Integer32,
          ospfPmVirtNbrState                  OspfNeighborStates,
          ospfPmVirtNbrEvents                 Counter32,
          ospfPmVirtNbrLsRetransQLen          Gauge32,
          ospfPmVirtNbrHelloSuppressed        TruthValue,
-- The following are DC-OSPF implementation specific parameters
          ospfPmVirtNbrApplIndex              OspfPmIndex,
          ospfPmVirtNbrNumRequests            Unsigned32,
          ospfPmVirtNbrDeadTime               PositiveInteger,
          ospfPmVirtNbrRestartHelperStatus    OspfRestartHelperStatus,
          ospfPmVirtNbrRestartHelperAge       UpToRefreshInterval,
          ospfPmVirtNbrRestartHelperExit      OspfRestartExitReason
        }

   ospfPmVirtNbrArea OBJECT-TYPE
        SYNTAX       AreaID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The Transit Area Identifier."
        ::= { ospfPmVirtNbrEntry 1 }

   ospfPmVirtNbrRtrId OBJECT-TYPE
        SYNTAX       RouterID
        MAX-ACCESS   not-accessible
        STATUS      current
        DESCRIPTION
           "A 32-bit integer uniquely identifying the
           neighboring router in the Autonomous System."
        ::= { ospfPmVirtNbrEntry 2 }

   ospfPmVirtNbrIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The IP address this Virtual Neighbor is using."
        ::= { ospfPmVirtNbrEntry 3 }

   ospfPmVirtNbrOptions OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "A Bit Mask corresponding to the neighbor's options field.

            Bit 0, if set, indicates that the system will operate on
            Type of Service metrics other than TOS 0.  If zero, the
            neighbor will ignore all metrics except the TOS 0 metric.

            Bit 1, if set, indicates that the associated area accepts
            and operates on external information; if zero, it is a
            stub area.

            Bit 2, if set, indicates that the system is capable of
            routing IP Multicast datagrams; i.e., that it implements
            the Multicast Extensions to OSPF.

            Bit 3, if set, indicates that the associated area is an
            NSSA.  These areas are capable of carrying type 7 external
            advertisements, which are translated into type 5 external
            advertisements at NSSA borders.

            Bit 4, if set, indicates the router's willingness to
            receive and forward External-Attributes-LSAs.

            Bit 5, describes the router's handling of demand circuits,
            as specified in RFC 1793.

            Bit 6, if set, indicates the router's willingness to
            receive and forward Opaque-LSAs as specified in RFC 2370."
        ::= { ospfPmVirtNbrEntry 4 }

    ospfPmVirtNbrState OBJECT-TYPE
        SYNTAX       OspfNeighborStates
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The state of the Virtual Neighbor Relationship."
        ::= { ospfPmVirtNbrEntry 5 }

   ospfPmVirtNbrEvents OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The number of times this virtual link has
           changed its state, or an error has occurred."
        ::= { ospfPmVirtNbrEntry 6 }

   ospfPmVirtNbrLsRetransQLen OBJECT-TYPE
        SYNTAX       Gauge32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The current length of the retransmission
           queue."
        ::= { ospfPmVirtNbrEntry 7 }

   ospfPmVirtNbrHelloSuppressed OBJECT-TYPE
        SYNTAX       TruthValue
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "Indicates whether Hellos are being suppressed
           to the neighbor."
        ::= { ospfPmVirtNbrEntry 8 }

-- The following are DC-OSPF implementation specific fields.

   ospfPmVirtNbrApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Identifies this OSPF entity."
        ::= { ospfPmVirtNbrEntry 9 }

   ospfPmVirtNbrNumRequests OBJECT-TYPE
        SYNTAX       Unsigned32 (0..'FFFFFFFF'h)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The number of LSAs we have requested from this neighbor
           for which we are still awaiting a response.  This field is
           incremented when an LSA is requested by sending a LS request
           packet and is decremented when the LSA arrives in an LS
           update packet."
        ::= { ospfPmVirtNbrEntry 10 }

   ospfPmVirtNbrDeadTime OBJECT-TYPE
        SYNTAX          PositiveInteger
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
           "The time remaining in seconds within which we need to receive a
           hello packet from the virtual neighbor or we declare the adjacency
           down. If Fast Hellos are in use, this value is always set to 1."
        ::= { ospfPmVirtNbrEntry 11 }

   ospfPmVirtNbrRestartHelperStatus OBJECT-TYPE
        SYNTAX       OspfRestartHelperStatus
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "Indicates whether the router is acting as a hitless
           restart helper for the neighbor."
        ::= { ospfPmVirtNbrEntry 12 }

   ospfPmVirtNbrRestartHelperAge OBJECT-TYPE
        SYNTAX       UpToRefreshInterval
        UNITS        "seconds"
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "Remaining time in current OSPF hitless restart interval,
           if the router is acting as a restart helper for the
           neighbor."
        ::= { ospfPmVirtNbrEntry 13 }

   ospfPmVirtNbrRestartHelperExit OBJECT-TYPE
        SYNTAX       OspfRestartExitReason
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "Describes the outcome of the last attempt at acting as a
           hitless restart helper for the neighbor."
        ::= { ospfPmVirtNbrEntry 14 }

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

--  OSPF Link State Database, External

--     The Link State Database contains the Link State
--     Advertisements from throughout the areas that the
--     device is attached to.

--     This table is identical to the OSPF LSDB Table in
--     format, but contains only Link State Advertisements with
--     global flooding scope.  The purpose is to allow external
--     LSAs to be displayed once for the router rather
--     than once in each non-stub area.

   ospfPmExtLsdbTable OBJECT-TYPE
   -- FAMILY-SHORT-NAME qopm_elsdb
        SYNTAX       SEQUENCE OF OspfPmExtLsdbEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The OSPF Process's Links State Database."
        REFERENCE
           "OSPF Version 2, Section 12 Link State Adver-
           tisements"
        ::= { ospfObjects 12 }

   ospfPmExtLsdbEntry OBJECT-TYPE
        SYNTAX       OspfPmExtLsdbEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "A single Link State Advertisement."
        INDEX {
           ospfPmExtLsdbApplIndex,
           ospfPmExtLsdbType,
           ospfPmExtLsdbLsid,
           ospfPmExtLsdbRouterId
           }
        ::= { ospfPmExtLsdbTable 1 }

   OspfPmExtLsdbEntry ::= SEQUENCE {
          ospfPmExtLsdbType                   OspfExtLsTypes,
          ospfPmExtLsdbLsid                   IpAddress,
          ospfPmExtLsdbRouterId               RouterID,
          ospfPmExtLsdbSequence               Integer32,
          ospfPmExtLsdbAge                    Integer32,
          ospfPmExtLsdbChecksum               Integer32,
          ospfPmExtLsdbAdvertisement          OCTET STRING,
-- The following are DC-OSPF implementation specific parameters
          ospfPmExtLsdbApplIndex              OspfPmIndex
        }

   ospfPmExtLsdbType OBJECT-TYPE
        SYNTAX       OspfExtLsTypes
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The type of the link state advertisement.
           Each link state type has a separate advertisement
           format."
        REFERENCE
           "OSPF Version 2, Appendix A.4.1 The Link State
           Advertisement header"
        ::= { ospfPmExtLsdbEntry 1 }

   ospfPmExtLsdbLsid OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The Link State ID is an LS Type Specific field
           containing either a Router ID or an IP Address;
           it identifies the piece of the routing domain
           that is being described by the advertisement."
        REFERENCE
           "OSPF Version 2, Section 12.1.4 Link State ID"
        ::= { ospfPmExtLsdbEntry 2 }

   ospfPmExtLsdbRouterId OBJECT-TYPE
        SYNTAX       RouterID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The 32 bit number that uniquely identifies the
           originating router in the Autonomous System."
        REFERENCE
           "OSPF Version 2, Appendix C.1 Global parameters"
        ::= { ospfPmExtLsdbEntry 3 }

--  Note that the OSPF Sequence Number is a 32 bit signed
--  integer.  It starts with the value '80000001'h,
--  or -'7FFFFFFF'h, and increments until '7FFFFFFF'h
--  Thus, a typical sequence number will be very negative.

   ospfPmExtLsdbSequence OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The sequence number field is a signed 32-bit
           integer.  It is used to detect old and duplicate
           link state advertisements.  The space of
           sequence numbers is linearly ordered.  The
           larger the sequence number the more recent the
           advertisement."
        REFERENCE
           "OSPF Version 2, Section 12.1.6 LS sequence
           number"
        ::= { ospfPmExtLsdbEntry 4 }

   ospfPmExtLsdbAge OBJECT-TYPE
        SYNTAX       Integer32 -- Should be 0..MaxAge, except when
                               -- doNotAge bit is set
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "This field is the age of the link state advertisement
           in seconds."
        REFERENCE
           "OSPF Version 2, Section 12.1.1 LS age"
        ::= { ospfPmExtLsdbEntry 5 }

   ospfPmExtLsdbChecksum OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "This field is the checksum of the complete
           contents of the advertisement, excepting the
           age field.  The age field is excepted so that
           an advertisement's age can be incremented
           without updating the checksum.  The checksum
           used is the same that is used for ISO connectionless
           datagrams; it is commonly referred to
           as the Fletcher checksum."
        REFERENCE
           "OSPF Version 2, Section 12.1.7 LS checksum"
        ::= { ospfPmExtLsdbEntry 6 }

   ospfPmExtLsdbAdvertisement OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE(36))
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The entire Link State Advertisement, including
           its header."
        REFERENCE
           "OSPF Version 2, Section 12 Link State Advertisements"
        ::= { ospfPmExtLsdbEntry 7 }

-- The following are DC-OSPF implementation specific fields.

   ospfPmExtLsdbApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Identifies this OSPF entity."
        ::= { ospfPmExtLsdbEntry 8 }

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

--  OSPF Use of the CIDR Route Table

   ospfPmRouteGroup    OBJECT IDENTIFIER ::= { ospfObjects 13 }

--     The IP Forwarding Table defines a number of objects for use by
--     the routing protocol to externalize its information.  Most of
--     the variables (ipForwardDest, ipForwardMask, ipForwardPolicy,
--     ipForwardNextHop, ipForwardIfIndex, ipForwardType,
--     ipForwardProto, ipForwardAge, and ipForwardNextHopAS) are
--     defined there.

--     Those that leave some discretion are defined here.

--     ipCidrRouteProto is, of course, ospf (13).

--     ipCidrRouteAge is the time since the route was first calculated,
--     as opposed to the time since the last SPF run.

--     ipCidrRouteInfo is an OBJECT IDENTIFIER for use by the routing
--     protocol.  The following values shall be found there depending
--     on the way the route was calculated.

   ospfPmIntraArea      OBJECT IDENTIFIER ::= { ospfPmRouteGroup 1 }
   ospfPmInterArea      OBJECT IDENTIFIER ::= { ospfPmRouteGroup 2 }
   ospfPmExternalType1  OBJECT IDENTIFIER ::= { ospfPmRouteGroup 3 }
   ospfPmExternalType2  OBJECT IDENTIFIER ::= { ospfPmRouteGroup 4 }

--     ipCidrRouteMetric1 is, by definition, the primary routing
--     metric.  Therefore, it should be the metric that route
--     selection is based on.  For intra-area and inter-area routes,
--     it is an OSPF metric.  For External Type 1 (comparable value)
--     routes, it is an OSPF metric plus the External Metric.  For
--     external Type 2 (non-comparable value) routes, it is the
--     external metric.

--     ipCidrRouteMetric2 is, by definition, a secondary routing
--     metric.  Therefore, it should be the metric that breaks a tie
--     among routes having equal metric1 values and the same
--     calculation rule.  For intra-area, inter-area routes, and
--     External Type 1 (comparable value) routes, it is unused.  For
--     external Type 2 (non-comparable value) routes, it is the metric
--     to the AS border router.

--     ipCidrRouteMetric3, ipCidrRouteMetric4, and ipCidrRouteMetric5
--     are unused.

--  The OSPF Area Aggregate Table
--
--     This table replaces the OSPF Area Summary Table, being an
--     extension of that for CIDR routers.

   ospfPmAreaAggregateTable OBJECT-TYPE
   -- FAMILY-SHORT-NAME qopm_aggr
        SYNTAX       SEQUENCE OF OspfPmAreaAggregateEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "A range of IP addresses specified by an IP
           address/IP network mask pair.  For example,
           class B address range of X.X.X.X with a network
           mask of 255.255.0.0 includes all IP addresses
           from X.X.0.0 to X.X.255.255.  Note that if
           ranges are configured such that one range subsumes
           another range (e.g., 10.0.0.0 mask
           255.0.0.0 and 10.1.0.0 mask 255.255.0.0), the
           most specific match is the preferred one."
        REFERENCE
           "OSPF Version 2, Appendix C.2 Area parameters"
        ::= { ospfObjects 14 }

   ospfPmAreaAggregateEntry OBJECT-TYPE
        SYNTAX   OspfPmAreaAggregateEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "A range of IP addresses specified by an IP
           address/IP network mask pair.  For example,
           class B address range of X.X.X.X with a network
           mask of 255.255.0.0 includes all IP addresses
           from X.X.0.0 to X.X.255.255.  Note that if
           ranges are range configured such that one range
           subsumes another range (e.g., 10.0.0.0 mask
           255.0.0.0 and 10.1.0.0 mask 255.255.0.0), the
           most specific match is the preferred one."
        REFERENCE
           "OSPF Version 2, Appendix C.2 Area parameters"
        INDEX {
           ospfPmAreaAggregateApplIndex,
           ospfPmAreaAggregateAreaID,
           ospfPmAreaAggregateLsdbType,
           ospfPmAreaAggregateNet,
           ospfPmAreaAggregateMask
           }
        ::= { ospfPmAreaAggregateTable 1 }

   OspfPmAreaAggregateEntry ::= SEQUENCE {
          ospfPmAreaAggregateAreaID           AreaID,
          ospfPmAreaAggregateLsdbType         OspfAggLsTypes,
          ospfPmAreaAggregateNet              IpAddress,
          ospfPmAreaAggregateMask             IpAddress,
          ospfPmAreaAggregateStatus           RowStatus,
          ospfPmAreaAggregateEffect           OspfAggregateEffects,
-- The following are DC-OSPF implementation specific parameters
          ospfPmAreaAggregateApplIndex        OspfPmIndex
        }

   ospfPmAreaAggregateAreaID OBJECT-TYPE
        SYNTAX       AreaID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The Area the Address Aggregate is to be found
           within."
        REFERENCE
           "OSPF Version 2, Appendix C.2 Area parameters"
        ::= { ospfPmAreaAggregateEntry 1 }

   ospfPmAreaAggregateLsdbType OBJECT-TYPE
        SYNTAX       OspfAggLsTypes
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The type of the Address Aggregate.  This field
           specifies the Lsdb type that this Address Aggregate
           applies to."
        REFERENCE
           "OSPF Version 2, Appendix A.4.1 The Link State
           Advertisement header"
        ::= { ospfPmAreaAggregateEntry 2 }

   ospfPmAreaAggregateNet OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The IP Address of the Net or Subnet indicated
           by the range."
        REFERENCE
           "OSPF Version 2, Appendix C.2 Area parameters"
        ::= { ospfPmAreaAggregateEntry 3 }

   ospfPmAreaAggregateMask OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The Subnet Mask that pertains to the Net or Subnet.

           This mask should be contiguous, i.e. of the form
           0xFFFF0000 and not 0xFF00FF00."
        REFERENCE
           "OSPF Version 2, Appendix C.2 Area parameters"
        ::= { ospfPmAreaAggregateEntry 4 }

   ospfPmAreaAggregateStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "This object permits management of the table by
           facilitating actions such as row creation,
           construction and destruction."
        ::= { ospfPmAreaAggregateEntry 5 }

   ospfPmAreaAggregateEffect OBJECT-TYPE
        SYNTAX       OspfAggregateEffects
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "Subnets subsumed by ranges either trigger the
           advertisement of the indicated aggregate
           (effectAdvertiseMatching), or result in the
           subnet's not being advertised at all outside
           the area."
        DEFVAL { effectAdvertiseMatching }
        ::= { ospfPmAreaAggregateEntry 6 }

-- The following are DC-OSPF implementation specific fields.

   ospfPmAreaAggregateApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Identifies this OSPF entity."
        ::= { ospfPmAreaAggregateEntry 7 }

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

--  OSPF Link State Database, Link-Local for network links

--     This table is identical to the OSPF LSDB Table in
--     format, but contains only Link-Local Link State
--     Advertisements for network links.  The purpose is
--     to allow Link-Local LSAs to be displayed for each
--     network interface.  This table is implemented to
--     support type-9 LSAs which are defined in
--     "The OSPF Opaque LSA Option".

   ospfPmLocalLsdbTable OBJECT-TYPE
   -- FAMILY-SHORT-NAME qopm_llsdb
        SYNTAX       SEQUENCE OF OspfPmLocalLsdbEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The OSPF Process's Link-Local Link State Database for
           network interfaces.  This does not include link state for
           virtual interfaces, sham links or multi-area interfaces."
        REFERENCE
           "OSPF Version 2, Section 12 Link State Advertisements
           and The OSPF Opaque LSA Option"
        ::= { ospfObjects 17 }

   ospfPmLocalLsdbEntry OBJECT-TYPE
        SYNTAX       OspfPmLocalLsdbEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "A single Link State Advertisement."
        INDEX {
           ospfPmLocalLsdbApplIndex,
           ospfPmLocalLsdbIpAddress,
           ospfPmLocalLsdbAddressLessIf,
           ospfPmLocalLsdbType,
           ospfPmLocalLsdbLsid,
           ospfPmLocalLsdbRouterId
           }
        ::= { ospfPmLocalLsdbTable 1 }

   OspfPmLocalLsdbEntry ::= SEQUENCE {
          ospfPmLocalLsdbIpAddress            IpAddress,
          ospfPmLocalLsdbAddressLessIf        InterfaceIndexOrZero,
          ospfPmLocalLsdbType                 OspfLinkLsTypes,
          ospfPmLocalLsdbLsid                 IpAddress,
          ospfPmLocalLsdbRouterId             RouterID,
          ospfPmLocalLsdbSequence             Integer32,
          ospfPmLocalLsdbAge                  Integer32,
          ospfPmLocalLsdbChecksum             Integer32,
          ospfPmLocalLsdbAdvertisement        OCTET STRING,
-- The following are DC-OSPF implementation specific parameters
          ospfPmLocalLsdbApplIndex            OspfPmIndex,
          ospfPmLocalLsdbAreaId               AreaID
        }

   ospfPmLocalLsdbIpAddress OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The IP Address of the interface from
           which the LSA was received if the interface is
           numbered."
        REFERENCE
           "OSPF Version 2, Appendix C.3 Interface parameters"
        ::= { ospfPmLocalLsdbEntry 1 }

   ospfPmLocalLsdbAddressLessIf OBJECT-TYPE
        SYNTAX       InterfaceIndexOrZero
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The Interface Index of the interface from
           which the LSA was received if the interface is
           unnumbered."
        REFERENCE
           "OSPF Version 2, Appendix C.3 Interface parameters"
        ::= { ospfPmLocalLsdbEntry 2 }

   ospfPmLocalLsdbType OBJECT-TYPE
        SYNTAX       OspfLinkLsTypes
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The type of the link state advertisement.
           Each link state type has a separate advertisement
           format."
        REFERENCE
           "OSPF Version 2, Appendix A.4.1 The Link State
           Advertisement header and "
        ::= { ospfPmLocalLsdbEntry 3 }

   ospfPmLocalLsdbLsid OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The Link State ID is an LS Type Specific field
           containing a 32 bit identifier in IP address format;
           it identifies the piece of the routing domain
           that is being described by the advertisement."
        REFERENCE
          "OSPF Version 2, Section 12.1.4 Link State ID"
        ::= { ospfPmLocalLsdbEntry 4 }

   ospfPmLocalLsdbRouterId OBJECT-TYPE
        SYNTAX       RouterID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The 32 bit number that uniquely identifies the
           originating router in the Autonomous System."
        REFERENCE
           "OSPF Version 2, Appendix C.1 Global parameters"
        ::= { ospfPmLocalLsdbEntry 5 }

--  Note that the OSPF Sequence Number is a 32 bit signed
--  integer.  It starts with the value '80000001'h,
--  or -'7FFFFFFF'h, and increments until '7FFFFFFF'h
--  Thus, a typical sequence number will be very negative.

   ospfPmLocalLsdbSequence OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The sequence number field is a signed 32-bit
           integer.  It is used to detect old and duplicate
           link state advertisements.  The space of
           sequence numbers is linearly ordered.  The
           larger the sequence number the more recent the
           advertisement."
        REFERENCE
           "OSPF Version 2, Section 12.1.6 LS sequence
           number"
        ::= { ospfPmLocalLsdbEntry 6 }

   ospfPmLocalLsdbAge OBJECT-TYPE
        SYNTAX       Integer32 -- Should be 0..MaxAge, except when
                               -- doNotAge bit is set
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "This field is the age of the link state advertisement in seconds."
        REFERENCE
           "OSPF Version 2, Section 12.1.1 LS age"
        ::= { ospfPmLocalLsdbEntry 7 }

   ospfPmLocalLsdbChecksum OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "This field is the checksum of the complete
           contents of the advertisement, excepting the
           age field.  The age field is excepted so that
           an advertisement's age can be incremented
           without updating the checksum.  The checksum
           used is the same that is used for ISO connectionless
           datagrams; it is commonly referred to
           as the Fletcher checksum."
        REFERENCE
           "OSPF Version 2, Section 12.1.7 LS checksum"
        ::= { ospfPmLocalLsdbEntry 8 }

   ospfPmLocalLsdbAdvertisement OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE (1..65535))
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The entire Link State Advertisement, including
           its header."
        REFERENCE
           "OSPF Version 2, Section 12 Link State Advertisements"
        ::= { ospfPmLocalLsdbEntry 9 }

-- The following are DC-OSPF implementation specific fields.

   ospfPmLocalLsdbApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Identifies this OSPF entity."
        ::= { ospfPmLocalLsdbEntry 10 }

   ospfPmLocalLsdbAreaId OBJECT-TYPE
        SYNTAX          AreaID
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
           "The OSPF area in which the link belongs."
        ::= { ospfPmLocalLsdbEntry 11 }

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

--  OSPF Link State Database, Link-Local for virtual Links

--      This table is identical to the OSPF LSDB Table in
--      format, but contains only Link-Local Link State
--      Advertisements for virtual links.  The purpose is to
--      allow Link-Local LSAs to be displayed for each virtual
--      interface.  This table is implemented to support type-9 LSAs
--      which are defined in "The OSPF Opaque LSA Option".

   ospfPmVirtLocalLsdbTable OBJECT-TYPE
   -- FAMILY-SHORT-NAME qopm_vlsdb
        SYNTAX       SEQUENCE OF OspfPmVirtLocalLsdbEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The OSPF Process's Link-Local Link State Database
           for virtual links."
        REFERENCE
           "OSPF Version 2, Section 12 Link State Advertisements
           and The OSPF Opaque LSA Option"
        ::= { ospfObjects 18 }

   ospfPmVirtLocalLsdbEntry OBJECT-TYPE
        SYNTAX       OspfPmVirtLocalLsdbEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "A single Link State Advertisement."
        INDEX {
           ospfPmVirtLocalLsdbApplIndex,
           ospfPmVirtLocalLsdbTransitArea,
           ospfPmVirtLocalLsdbNeighbor,
           ospfPmVirtLocalLsdbType,
           ospfPmVirtLocalLsdbLsid,
           ospfPmVirtLocalLsdbRouterId
           }
        ::= { ospfPmVirtLocalLsdbTable 1 }

   OspfPmVirtLocalLsdbEntry ::= SEQUENCE {
          ospfPmVirtLocalLsdbTransitArea      AreaID,
          ospfPmVirtLocalLsdbNeighbor         RouterID,
          ospfPmVirtLocalLsdbType             OspfLinkLsTypes,
          ospfPmVirtLocalLsdbLsid             IpAddress,
          ospfPmVirtLocalLsdbRouterId         RouterID,
          ospfPmVirtLocalLsdbSequence         Integer32,
          ospfPmVirtLocalLsdbAge              Integer32,
          ospfPmVirtLocalLsdbChecksum         Integer32,
          ospfPmVirtLocalLsdbAdv              OCTET STRING,
-- The following are DC-OSPF implementation specific parameters
          ospfPmVirtLocalLsdbApplIndex        OspfPmIndex
        }

   ospfPmVirtLocalLsdbTransitArea OBJECT-TYPE
        SYNTAX       AreaID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The Transit Area that the Virtual Link
           traverses.  By definition, this is not 0.0.0.0"
        REFERENCE
           "OSPF Version 2, Appendix C.3 Interface parameters"
        ::= { ospfPmVirtLocalLsdbEntry 1 }

   ospfPmVirtLocalLsdbNeighbor OBJECT-TYPE
        SYNTAX       RouterID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The Router ID of the Virtual Neighbor."
        REFERENCE
           "OSPF Version 2, Appendix C.3 Interface parameters"
        ::= { ospfPmVirtLocalLsdbEntry 2 }

   ospfPmVirtLocalLsdbType OBJECT-TYPE
        SYNTAX       OspfLinkLsTypes
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The type of the link state advertisement.
           Each link state type has a separate advertisement format."
        REFERENCE
           "OSPF Version 2, Appendix A.4.1 The Link State
           Advertisement header and "
        ::= { ospfPmVirtLocalLsdbEntry 3 }

   ospfPmVirtLocalLsdbLsid OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The Link State ID is an LS Type Specific field
           containing a 32 bit identifier in IP address format;
           it identifies the piece of the routing domain
           that is being described by the advertisement."
        REFERENCE
           "OSPF Version 2, Section 12.1.4 Link State ID"
        ::= { ospfPmVirtLocalLsdbEntry 4 }

   ospfPmVirtLocalLsdbRouterId OBJECT-TYPE
        SYNTAX       RouterID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The 32 bit number that uniquely identifies the
           originating router in the Autonomous System."
        REFERENCE
           "OSPF Version 2, Appendix C.1 Global parameters"
        ::= { ospfPmVirtLocalLsdbEntry 5 }

--  Note that the OSPF Sequence Number is a 32 bit signed
--  integer.  It starts with the value '80000001'h,
--  or -'7FFFFFFF'h, and increments until '7FFFFFFF'h
--  Thus, a typical sequence number will be very negative.

   ospfPmVirtLocalLsdbSequence OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The sequence number field is a signed 32-bit
           integer.  It is used to detect old and duplicate
           link state advertisements.  The space of
           sequence numbers is linearly ordered.  The
           larger the sequence number the more recent the
           advertisement."
        REFERENCE
           "OSPF Version 2, Section 12.1.6 LS sequence
           number"
        ::= { ospfPmVirtLocalLsdbEntry 6 }

   ospfPmVirtLocalLsdbAge OBJECT-TYPE
        SYNTAX       Integer32 -- Should be 0..MaxAge, except when
                               -- doNotAge bit is set
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "This field is the age of the link state advertisement in seconds."
        REFERENCE
           "OSPF Version 2, Section 12.1.1 LS age"
        ::= { ospfPmVirtLocalLsdbEntry 7 }

   ospfPmVirtLocalLsdbChecksum OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "This field is the checksum of the complete
           contents of the advertisement, excepting the
           age field.  The age field is excepted so that
           an advertisement's age can be incremented
           without updating the checksum.  The checksum
           used is the same that is used for ISO connectionless
           datagrams; it is commonly referred to
           as the Fletcher checksum."
        REFERENCE
           "OSPF Version 2, Section 12.1.7 LS checksum"
        ::= { ospfPmVirtLocalLsdbEntry 8 }

   ospfPmVirtLocalLsdbAdv OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE (1..65535))
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The entire Link State Advertisement, including
           its header."
        REFERENCE
           "OSPF Version 2, Section 12 Link State Advertisements"
        ::= { ospfPmVirtLocalLsdbEntry 9 }

-- The following are DC-OSPF implementation specific fields.

  ospfPmVirtLocalLsdbApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Identifies this OSPF entity."
        ::= { ospfPmVirtLocalLsdbEntry 10 }

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

--
-- OSPF Protocol Manager Master Join Table.
--
-- This table controls which entities the OSPF 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.
--

  ospfPmMjTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_mj
    SYNTAX      SEQUENCE OF OspfPmMjEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "This table controls which entities the OSPF 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."
    ::= { ospfObjects 19 }

  ospfPmMjEntry OBJECT-TYPE
    SYNTAX      OspfPmMjEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Represents a join for which the OSPF Protocol Manager is master."
    INDEX {
       ospfPmMjApplIndex,
       ospfPmMjInterfaceId,
       ospfPmMjPartnerIndex
       }
    ::= { ospfPmMjTable 1 }

  OspfPmMjEntry ::= SEQUENCE {
      ospfPmMjApplIndex                Unsigned32,
      ospfPmMjInterfaceId              OspfPmInterfaceId,
      ospfPmMjPartnerIndex             Unsigned32,
      ospfPmMjRowStatus                RowStatus,
      ospfPmMjAdminStatus              OspfPmAdminStatus,
      ospfPmMjOperStatus               OspfPmOperStatus,
      ospfPmMjJoinStatus               OspfPmMjStatus
    }

  ospfPmMjApplIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Identifies an OSPF Protocol Manager entity."
    ::= { ospfPmMjEntry 1 }

  ospfPmMjInterfaceId OBJECT-TYPE
    SYNTAX      OspfPmInterfaceId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Identifies the interface required of this master join."
    ::= { ospfPmMjEntry 2 }

  ospfPmMjPartnerIndex 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."
    ::= { ospfPmMjEntry 3 }

  ospfPmMjRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The row status for this OSPF Protocol Manager Master Join Table
       entry, used to create and destroy table entries."
    ::= { ospfPmMjEntry 4 }

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

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

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

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

--
-- OSPF Protocol Manager Slave Join Table.
--
-- This is a read-only table.  It contains information on joins for which
-- OSPF Protocol Manager entities are acting as slaves.  Each row in this table
-- represents one slave join in a particular OSPF Protocol Manager entity.
--

  ospfPmSjTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_sj
    SYNTAX      SEQUENCE OF OspfPmSjEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "This table contains information on joins for which OSPF Protocol
       Manager entities are acting as slaves.  Each row in this table
       represents one slave join in a particular OSPF Protocol Manager
       entity."
    ::= { ospfObjects 20 }

  ospfPmSjEntry OBJECT-TYPE
    SYNTAX      OspfPmSjEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Represents a join for which the OSPF Protocol Manager is slave."
    INDEX {
       ospfPmSjApplIndex,
       ospfPmSjInterfaceId,
       ospfPmSjMasterIndex
       }
    ::= { ospfPmSjTable 1 }

  OspfPmSjEntry ::= SEQUENCE {
      ospfPmSjApplIndex                Unsigned32,
      ospfPmSjMasterIndex              Unsigned32,
      ospfPmSjJoinIndex                Unsigned32,
      ospfPmSjJoinStatus               OspfPmSjStatus,
      ospfPmSjInterfaceId              OspfPmSlaveInterfaceId
    }

  ospfPmSjApplIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Identifies an OSPF Protocol Manager entity."
    ::= { ospfPmSjEntry 1 }

  ospfPmSjMasterIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Identifies the master entity."
    ::= { ospfPmSjEntry 2 }

  ospfPmSjJoinIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Index assigned to the join by the master to uniquely identify the join
       within the scope of the master entity.  This is the index received in
       the join registration infor sent from the master to the slave on the
       join registration IPS."
    ::= { ospfPmSjEntry 3 }

  ospfPmSjJoinStatus OBJECT-TYPE
    SYNTAX      OspfPmSjStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The status of the slave join."
    ::= { ospfPmSjEntry 4 }

  ospfPmSjInterfaceId OBJECT-TYPE
    SYNTAX      OspfPmSlaveInterfaceId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Identifies the interface provided on this slave join."
    ::= { ospfPmSjEntry 5 }

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

--  OSPF Interface Switching Descriptor Table
--
--     The OSPF Interface Switching Descriptor Table is an adjunct of the OSPF
--     Interface Table with specific information about the switching
--     capabilities of the interface.  Note that an interface may have multiple
--     switching capabilities, hence the requirement for a separate table.

  ospfPmIfSwitchTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_ifsw
       SYNTAX       SEQUENCE OF OspfPmIfSwitchEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The OSPF Interface Switching Descriptor Table describes the
          switching capabilities of the interfaces on the router."
       REFERENCE
          "draft-ietf-ccamp-gmpls-routing-01.txt"
       ::= { ospfObjects 21 }

  ospfPmIfSwitchEntry OBJECT-TYPE
       SYNTAX       OspfPmIfSwitchEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The OSPF Interface Switching Descriptor Entry describes the
          switching capabilities of the interfaces on the router."
       INDEX {
          ospfPmIfSwitchApplIndex,
          ospfPmIfSwitchIpAddress,
          ospfPmIfSwitchAddressLessIf,
          ospfPmIfSwitchingCap,
          ospfPmIfSwitchEncoding,
          ospfPmIfSwitchISDIndex
          }
       ::= { ospfPmIfSwitchTable 1 }

  OspfPmIfSwitchEntry ::= SEQUENCE {
         ospfPmIfSwitchApplIndex                OspfPmIndex,
         ospfPmIfSwitchIpAddress                IpAddress,
         ospfPmIfSwitchAddressLessIf            InterfaceIndexOrZero,
         ospfPmIfSwitchingCap                   OspfPmIfSwitchCapValue,
         ospfPmIfSwitchEncoding                 OspfPmIfSwitchEncodingValue,
         ospfPmIfSwitchMaxLSPBwidth0            Integer32,
         ospfPmIfSwitchLastMaxLSPBwidth0        Integer32,
         ospfPmIfSwitchMaxLSPBwidth1            Integer32,
         ospfPmIfSwitchLastMaxLSPBwidth1        Integer32,
         ospfPmIfSwitchMaxLSPBwidth2            Integer32,
         ospfPmIfSwitchLastMaxLSPBwidth2        Integer32,
         ospfPmIfSwitchMaxLSPBwidth3            Integer32,
         ospfPmIfSwitchLastMaxLSPBwidth3        Integer32,
         ospfPmIfSwitchMaxLSPBwidth4            Integer32,
         ospfPmIfSwitchLastMaxLSPBwidth4        Integer32,
         ospfPmIfSwitchMaxLSPBwidth5            Integer32,
         ospfPmIfSwitchLastMaxLSPBwidth5        Integer32,
         ospfPmIfSwitchMaxLSPBwidth6            Integer32,
         ospfPmIfSwitchLastMaxLSPBwidth6        Integer32,
         ospfPmIfSwitchMaxLSPBwidth7            Integer32,
         ospfPmIfSwitchLastMaxLSPBwidth7        Integer32,
         ospfPmIfSwitchMinLSPBwidth             Integer32,
         ospfPmIfSwitchLastMinLSPBwidth         Integer32,
         ospfPmIfSwitchMTUSize                  Integer32,
         ospfPmIfSwitchLastMTUSize              Integer32,
         ospfPmIfSwitchSonetSdhSupport          OspfPmIfSwitchSonetSdhValue,
         ospfPmIfSwitchISDIndex                 NumericIndex
       }

  ospfPmIfSwitchApplIndex OBJECT-TYPE
       SYNTAX       OspfPmIndex
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "Identifies the DC-OSPF entity."
       ::= { ospfPmIfSwitchEntry 1 }

  ospfPmIfSwitchIpAddress OBJECT-TYPE
       SYNTAX       IpAddress
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The IP address of this OSPF interface."
       ::= { ospfPmIfSwitchEntry 2 }

  ospfPmIfSwitchAddressLessIf OBJECT-TYPE
       SYNTAX       InterfaceIndexOrZero
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "For the purpose of easing the instancing of
          addressed and address less interfaces; This
          variable takes the value 0 on interfaces with
          IP Addresses, and the corresponding value of
          ifIndex for interfaces having no IP Address."
       ::= { ospfPmIfSwitchEntry 3 }

  ospfPmIfSwitchingCap OBJECT-TYPE
       SYNTAX       OspfPmIfSwitchCapValue
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The switching capability of the interface.  Possible values are as
          follows:
          - 1        Packet-Switch Capable-1
          - 2        Packet-Switch Capable-2
          - 3        Packet-Switch Capable-3
          - 4        Packet-Switch Capable-4
          - 51       Layer-2 Switch Capable
          - 100      Time-Division-Multiplex Capable
          - 150      Lambda-Switch Capable
          - 200      Fiber-Switch Capable."
       ::= { ospfPmIfSwitchEntry 4 }

  ospfPmIfSwitchEncoding OBJECT-TYPE
       SYNTAX       OspfPmIfSwitchEncodingValue
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The type of encoding used on this interface.  Possible values are as
           follows:
           -  1       Packet
           -  2       Ethernet
           -  3       ANSI-ETSI-PDH
           -  5       SDH-SONET
           -  7       DIG-Wrapper
           -  8       Lambda
           -  9       Fiber
           -  11      Fiber-Channel."
       ::= { ospfPmIfSwitchEntry 5 }

   ospfPmIfSwitchMaxLSPBwidth0 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The MAX LSP bandwidth on this interface, at the first priority
          level, in IEEE floating point format, used by CSPF to calculate
          constrained routes.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfSwitchLastMaxLSPBwidth0 is bigger than
          ospfPmIfMaxLSPBwidthPcntge."
       ::= { ospfPmIfSwitchEntry 6 }

   ospfPmIfSwitchLastMaxLSPBwidth0 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised MAX LSP Bandwidth at the first priority
          level for this interface."
       ::= { ospfPmIfSwitchEntry 7 }

   ospfPmIfSwitchMaxLSPBwidth1 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The MAX LSP bandwidth on this interface, at the second priority
          level, in IEEE floating point format, used by CSPF to calculate
          constrained routes.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfSwitchLastMaxLSPBwidth1 is bigger than
          ospfPmIfMaxLSPBwidthPcntge."
       ::= { ospfPmIfSwitchEntry 8 }

   ospfPmIfSwitchLastMaxLSPBwidth1 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised MAX LSP Bandwidth at the second priority
          level for this interface."
       ::= { ospfPmIfSwitchEntry 9 }

   ospfPmIfSwitchMaxLSPBwidth2 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The MAX LSP bandwidth on this interface, at the third priority
          level, in IEEE floating point format, used by CSPF to calculate
          constrained routes.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfSwitchLastMaxLSPBwidth2 is bigger than
          ospfPmIfMaxLSPBwidthPcntge."
       ::= { ospfPmIfSwitchEntry 10 }

   ospfPmIfSwitchLastMaxLSPBwidth2 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised MAX LSP Bandwidth at the third priority
          level for this interface."
       ::= { ospfPmIfSwitchEntry 11 }

   ospfPmIfSwitchMaxLSPBwidth3 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The MAX LSP bandwidth on this interface, at the fourth priority
          level, in IEEE floating point format, used by CSPF to calculate
          constrained routes.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfSwitchLastMaxLSPBwidth3 is bigger than
          ospfPmIfMaxLSPBwidthPcntge."
       ::= { ospfPmIfSwitchEntry 12 }

   ospfPmIfSwitchLastMaxLSPBwidth3 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised MAX LSP Bandwidth at the fourth priority
          level for this interface."
       ::= { ospfPmIfSwitchEntry 13 }

   ospfPmIfSwitchMaxLSPBwidth4 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The MAX LSP bandwidth on this interface, at the fifth priority
          level, in IEEE floating point format, used by CSPF to calculate
          constrained routes.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfSwitchLastMaxLSPBwidth4 is bigger than
          ospfPmIfMaxLSPBwidthPcntge."
       ::= { ospfPmIfSwitchEntry 14 }

   ospfPmIfSwitchLastMaxLSPBwidth4 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised MAX LSP Bandwidth at the fifth priority
          level for this interface."
       ::= { ospfPmIfSwitchEntry 15 }

   ospfPmIfSwitchMaxLSPBwidth5 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The MAX LSP bandwidth on this interface, at the sixth priority
          level, in IEEE floating point format, used by CSPF to calculate
          constrained routes.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfSwitchLastMaxLSPBwidth5 is bigger than
          ospfPmIfMaxLSPBwidthPcntge."
       ::= { ospfPmIfSwitchEntry 16 }

   ospfPmIfSwitchLastMaxLSPBwidth5 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised MAX LSP Bandwidth at the sixth priority
          level for this interface."
       ::= { ospfPmIfSwitchEntry 17 }

   ospfPmIfSwitchMaxLSPBwidth6 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The MAX LSP bandwidth on this interface, at the seventh priority
          level, in IEEE floating point format, used by CSPF to calculate
          constrained routes.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfSwitchLastMaxLSPBwidth6 is bigger than
          ospfPmIfMaxLSPBwidthPcntge."
       ::= { ospfPmIfSwitchEntry 18 }

   ospfPmIfSwitchLastMaxLSPBwidth6 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised MAX LSP Bandwidth at the seventh priority
          level for this interface."
       ::= { ospfPmIfSwitchEntry 19 }

   ospfPmIfSwitchMaxLSPBwidth7 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The MAX LSP bandwidth on this interface, at the eighth priority
          level, in IEEE floating point format, used by CSPF to calculate
          constrained routes.  The units are bytes per second.  This is
          advertised through the routing domain in Opaque LSAs.  However, a
          change to this parameter only causes an origination of a new Opaque
          LSA when the percentage difference between this parameter and
          ospfPmIfSwitchLastMaxLSPBwidth7 is bigger than
          ospfPmIfMaxLSPBwidthPcntge."
       ::= { ospfPmIfSwitchEntry 20 }

   ospfPmIfSwitchLastMaxLSPBwidth7 OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised MAX LSP Bandwidth at the eighth priority
          level for this interface."
       ::= { ospfPmIfSwitchEntry 21 }

   ospfPmIfSwitchMinLSPBwidth OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "Specific information about the switching capability for this
          interface.  This represents the Minimium LSP bandwidth for this
          interface."
       ::= { ospfPmIfSwitchEntry 22 }

   ospfPmIfSwitchLastMinLSPBwidth OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised Min LSP Bandwidth on this interface."
       ::= { ospfPmIfSwitchEntry 23 }

   ospfPmIfSwitchMTUSize OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "Specific information about the switching capability for this
          interface.  This field reports the Maximum Transmission Unit size for
          this type of traffic.  Note that this can supersede the more generic
          MTU size specified on the interface MIB."
       ::= { ospfPmIfSwitchEntry 24 }

   ospfPmIfSwitchLastMTUSize OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The last advertised Min LSP Bandwidth on this interface."
       ::= { ospfPmIfSwitchEntry 25 }

   ospfPmIfSwitchSonetSdhSupport OBJECT-TYPE
       SYNTAX       OspfPmIfSwitchSonetSdhValue
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The SONET or SDH supported on this interface."
       DEFVAL { ifSonetSdhStandard }
       ::= { ospfPmIfSwitchEntry 26 }

   ospfPmIfSwitchISDIndex OBJECT-TYPE
       SYNTAX       NumericIndex
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "An arbitrary index used to distinguish between Interface Switching
           Descriptors that are different, but have the same capability and
           encoding."
       ::= { ospfPmIfSwitchEntry 27 }

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

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

   ospfPmIgpShortcutTable OBJECT-TYPE
    -- FAMILY-SHORT-NAME qopm_igp_shortcut
       SYNTAX SEQUENCE OF OspfPmIgpShortcutEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "The table of IGP shortcut tunnel interfaces known to OSPF."
   ::= { ospfObjects 23 }

   ospfPmIgpShortcutEntry OBJECT-TYPE
       SYNTAX OspfPmIgpShortcutEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "Each entry corresponds to one IGP shortcut tunnel interface
            known to OSPF on this system."
       INDEX { ospfPmShortcutApplIndex,
               ospfPmShortcutIfIndex }
   ::= { ospfPmIgpShortcutTable 1 }

   OspfPmIgpShortcutEntry ::=
       SEQUENCE {
          ospfPmShortcutApplIndex             OspfPmIndex,
          ospfPmShortcutIfIndex               InterfaceIndex,
          ospfPmShortcutRemoteAddress         IpAddress,
          ospfPmShortcutMetricType            IgpShortcutMetricType,
          ospfPmShortcutMetricValue           Integer32,
          ospfPmShortcutOperStatus            IfOperStatus
     }

   ospfPmShortcutApplIndex OBJECT-TYPE
      SYNTAX       OspfPmIndex
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "Identifies this OSPF entity."
      ::= { ospfPmIgpShortcutEntry 1 }

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

     ::= { ospfPmIgpShortcutEntry 2 }

   ospfPmShortcutRemoteAddress OBJECT-TYPE
     SYNTAX      IpAddress
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "The IP Address value for this remote address."

     ::= { ospfPmIgpShortcutEntry 3 }

    ospfPmShortcutMetricType 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
             ospfPmShortcutMetricValue is used as the cost of the IGP
             shortcut.
          -  'metricTypeRelative'; the metric value defined by
             ospfPmShortcutMetricValue 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."

      ::= { ospfPmIgpShortcutEntry 4 }

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

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

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

      ::= { ospfPmIgpShortcutEntry 5 }

    ospfPmShortcutOperStatus 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-OSPF if
          ospfPmShortcutOperStatus is set to 'up'."

      ::= { ospfPmIgpShortcutEntry 6 }

-- End of DC addition

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

-- OSPF Neighbor Manager Entity Table
-- This table is used to create and manage OSPF Neighbor Manager entities.

  ospfNmEntTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qonm_ent
       SYNTAX      SEQUENCE OF OspfNmEntEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The table of OSPF Neighbor Manager entities."
       ::= { ospfObjects 22 }

  ospfNmEntEntry OBJECT-TYPE
       SYNTAX      OspfNmEntEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "Each entry represents an instance of the OSPF Neighbor Manager
          entity."
       INDEX { ospfNmEntIndex }
       ::= { ospfNmEntTable 1 }

  OspfNmEntEntry ::= SEQUENCE {
         ospfNmEntIndex                   OspfPmIndex,
         ospfNmEntRowStatus               RowStatus,
         ospfNmEntAdminStatus             OspfPmAdminStatus,
         ospfNmEntOperStatus              NpgOperStatus,
         ospfNmMjEntityIndex              Unsigned32,
         ospfNmSckEntityIndex             Unsigned32,
         ospfNmEntNmiJoinOperStatus       NpgOperStatus,
         ospfNmEntSckJoinOperStatus       NpgOperStatus,
         ospfNmEntBfdEntityIndex          Unsigned32,
         ospfNmEntBfdJoinOperStatus       NpgOperStatus,
         ospfNmEntStatsReset              TruthValue,
         ospfNmEntEnableTrapSupport       TruthValue
       }

  ospfNmEntIndex    OBJECT-TYPE
       SYNTAX       OspfPmIndex
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The index of this ospfNmEntEntry.  This is the HAF entity
          index passed on the entity create parameters."
       ::= { ospfNmEntEntry 1 }

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

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

  ospfNmEntOperStatus OBJECT-TYPE
       SYNTAX       NpgOperStatus
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The current operational status of this NM entity."
       ::= { ospfNmEntEntry 4 }

  ospfNmMjEntityIndex OBJECT-TYPE
      SYNTAX        Unsigned32
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
      "Identifies the PM 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 PM entity.

      This field follows the replaceOnlyWhileDisabled behavior."
      DEFVAL { 1 }
       ::= { ospfNmEntEntry 5 }

  ospfNmSckEntityIndex OBJECT-TYPE
      SYNTAX        Unsigned32
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
      "Identifies the SCK stub 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 SCK entity.

      This field follows the replaceOnlyWhileDisabled behavior."
      DEFVAL { 1 }
       ::= { ospfNmEntEntry 6 }

  ospfNmEntNmiJoinOperStatus OBJECT-TYPE
      SYNTAX        NpgOperStatus
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
      "The current operational state of the NMI join.
      ospfNmEntOperStatus cannot transition to 'operStatusUp'
      unless this object has a value of 'operStatusUp', and cannot
      transition to 'operStatusDown' unless this object has a
      value of 'operStatusDown'."
       ::= { ospfNmEntEntry 7 }

  ospfNmEntSckJoinOperStatus OBJECT-TYPE
      SYNTAX        NpgOperStatus
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
      "The current operational state of the SCK join.
      ospfNmEntOperStatus cannot transition to 'operStatusUp'
      unless this object has a value of 'operStatusUp', and cannot
      transition to 'operStatusDown' unless this object has a
      value of 'operStatusDown'."
       ::= { ospfNmEntEntry 8 }

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

      This field follows the replaceOnlyWhileDisabled behavior."
      DEFVAL { 0 }
      ::= { ospfNmEntEntry 9 }

  ospfNmEntBfdJoinOperStatus OBJECT-TYPE
      SYNTAX        NpgOperStatus
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
      "The current operational state of the BFDI join.

      If ospfNmEntBfdEntityIndex has a zero value, this field will have a
      value of 'operStatusDown'.  This will not have any effect on
      ospfNmEntOperStatus.

      If ospfNmEntBfdEntityIndex has a non-zero value, then
      ospfNmEntOperStatus cannot transition to 'operStatusUp' unless this
      object has a value of 'operStatusUp', and cannot transition to
      'operStatusDown' unless this object has a value of
      'operStatusDown'."
      ::= { ospfNmEntEntry 10 }

  ospfNmEntStatsReset OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Set this object to 'true' to reset all stats counters in the
          ospfNmEntStatsTable that augments this table.

          Reading the value of this object has no meaning."
       DEFVAL { false }
       ::= { ospfNmEntEntry 11 }

  ospfNmEntEnableTrapSupport OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Set this object to 'true' to enable trap support in
          DC-OSPF-NM.

          When this field is set to 'true', DC-OSPF-NM will generate
          traps for the events listed under AMB_OSPF_TRAP_TYPES that
          are relevant to NM."
       DEFVAL { false }
       ::= { ospfNmEntEntry 12 }

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

-- The OSPF Domain ID Table

  ospfPmDomainIdTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_domain_id
       SYNTAX      SEQUENCE OF OspfPmDomainIdEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The OSPF Domain ID Table.

           The OSPF Domain ID Table controls the LSA types assigned to
           BGP/MPLS IP VPN routes as part of OSPF PE-CE protocol
           function.

           This table is only used if ospfPmEntVpnPeCeSupport is
           true.

           The OSPF Domain ID Table specifies one primary OSPF Domain
           ID and optionally one or more secondary OSPF Domain IDs.

           When an OSPF instance exports an OSPF route as a BGP/MPLS
           VPN route, it adds attributes including the OSPF Route Type
           and the OSPF Domain ID, and sets the route's OSPF Domain ID
           to the exporting OSPF Instance's primary OSPF Domain ID.

           When another OSPF instance imports the BGP/MPLS VPN route
           as an OSPF route, it determines the route's LSA type
           according to its OSPF Route Type and OSPF Domain ID.

           -  If the VPN route's OSPF Route Type is AS-external then
              the route is imported as an AS-external route.

           -  If the VPN route's OSPF Domain ID doesn't match any of
              the OSPF instance's primary or secondary OSPF Domain IDs
              then the route is imported as an AS-external route.

           -  Otherwise the VPN route is imported as an OSPF inter-area
              route.

           If the OSPF Domain ID Table is empty then the primary OSPF
           Domain ID is the NULL OSPF Domain ID.

           If ospfPmEntVpnPeCeSupport is false then RFC 4577 OSPF PE-CE
           function is disabled.  In this case VPN routes are exported
           without OSPF Route Type and OSPF Domain ID attributes, and
           are imported as AS-external routes."
       ::= { ospfObjects 24 }

  ospfPmDomainIdEntry OBJECT-TYPE
       SYNTAX      OspfPmDomainIdEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "Each entry represents an OSPF Domain ID."
       INDEX { ospfPmDomainIdApplIndex, ospfPmDomainIdValue }
       ::= { ospfPmDomainIdTable 1 }

  OspfPmDomainIdEntry ::= SEQUENCE {
         ospfPmDomainIdApplIndex            OspfPmIndex,
         ospfPmDomainIdValue                OCTET STRING,
         ospfPmDomainIdRowStatus            RowStatus,
         ospfPmDomainIdRole                 INTEGER,
         ospfPmDomainIdStatus               INTEGER
       }

  ospfPmDomainIdApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Identifies this OSPF entity."
        ::= { ospfPmDomainIdEntry 1 }

  ospfPmDomainIdValue OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE (8))
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The OSPF Domain ID value.

            The OSPF Domain ID value is a BGP extended community
            attribute value.  It consists of a 2 byte Type field
            followed by a 6 byte Value field.  The Type field value
            determines the Value field format.

            For an OSPF Domain ID the combined format of the Type and
            Value fields must be one of the following:
            -  00 05 {2 byte AS number}    {4 byte local value}
            -  01 05 {4 byte IPv4 address} {2 byte local value}
            -  02 05 {4 byte AS number}    {2 byte local value}

            In addition, Type 80 05 is equivalent to Type 00 05 and is
            allowed for back-compatibility.

            If the Value field is 00 00 00 00 00 00 then the value
            represents the NULL OSPF Domain ID.  Use of a NULL OSPF
            Domain ID is only allowed for the primary OSPF Domain ID
            and only if there are no secondary OSPF Domain IDs."
        ::= { ospfPmDomainIdEntry 2 }

  ospfPmDomainIdRowStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "The row status for this OSPF Domain ID Table entry, used
            to create and destroy table entries."
        ::= { ospfPmDomainIdEntry 3 }

  ospfPmDomainIdRole OBJECT-TYPE
        SYNTAX       INTEGER {
                       domRolePrimary (1),
                       domRoleSecondary (2)
                     }
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "The configured role of this OSPF Domain ID (primary or
            secondary)."
        DEFVAL { domRolePrimary }
        ::= { ospfPmDomainIdEntry 4 }

  ospfPmDomainIdStatus OBJECT-TYPE
        SYNTAX       INTEGER {
                       domStsPrimary (1),
                       domStsSecondary (2),
                       domStsInactive (3),
                       domStsInvalid (4),
                       domStsInconsistent (5)
                     }
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The actual status of this OSPF Domain ID.

            If the overall OSPF Domain ID configuration is valid then
            the actual OSPF Domain ID status matches its configured
            role.

            If the overall OSPF Domain ID configuration is invalid
            then the actual status of an OSPF Domain ID may differ
            from its configured role.  It may be downgraded from
            primary to secondary, or it may not be used at all.

            In particular.
            -  Each OSPF instance can only have one primary OSPF
               Domain ID.
            -  Each OSPF instance can only have secondary OSPF
               Domain IDs if it has a non-NULL primary OSPF Domain
               ID.
            -  NULL OSPF Domain ID values are valid for the primary
               OSPF Domain ID but not for secondary OSPF Domain IDs."
        ::= { ospfPmDomainIdEntry 5 }

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

-- The OSPF Sham Link Table

ospfPmShamLinkTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_sham_link
       SYNTAX      SEQUENCE OF OspfPmShamLinkEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The OSPF Sham Link Table.

           The OSPF Sham Link Table configures sham links over the
           provider BGP/MPLS IP VPN backbone as part of OSPF PE-CE
           protocol function.

           This table is only used if ospfPmEntVpnPeCeSupport is
           true.

           Each sham link runs the full OSPF protocol between two PE
           routers using MPLS tunnels to carry OSPF packets across the
           provider backbone.  The sham link is viewed as part of the
           VPN and is handled by the OSPF instance for the VPN running
           on each PE router.  It is independent of the provider
           backbone and independent any OSPF instance for the provider
           backbone.

           The sham link is identified by its endpoint addresses on the
           two PE routers.  These sham link endpoint addresses are
           addresses assigned to the PE routers but belonging to the
           VPN address space.  They are independent of the provider
           backbone address space."
       ::= { ospfObjects 25 }

  ospfPmShamLinkEntry OBJECT-TYPE
       SYNTAX      OspfPmShamLinkEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "Each entry represents an OSPF sham link."
       INDEX {
          ospfPmShamLinkApplIndex,
          ospfPmShamLinkAreaId,
          ospfPmShamLinkLocalIpAddr,
          ospfPmShamLinkRemoteIpAddr
          }
       ::= { ospfPmShamLinkTable 1 }

  OspfPmShamLinkEntry ::= SEQUENCE {
         ospfPmShamLinkApplIndex            OspfPmIndex,
         ospfPmShamLinkAreaId               AreaID,
         ospfPmShamLinkLocalIpAddr          IpAddress,
         ospfPmShamLinkRemoteIpAddr         IpAddress,
         ospfPmShamLinkRowStatus            RowStatus,
         ospfPmShamLinkIfIndex              InterfaceIndex,
         ospfPmShamLinkMetric               Integer32,
         ospfPmShamLinkTransitDelay         UpToMaxAge,
         ospfPmShamLinkRetransInterval      UpToMaxAge,
         ospfPmShamLinkHelloInterval        HelloRange,
         ospfPmShamLinkRtrDeadInterval      Integer32,
         ospfPmShamLinkState                OspfInterfaceStates,
         ospfPmShamLinkEvents               Counter32,
         ospfPmShamLinkAuthType             OspfAuthTypes,
         ospfPmShamLinkAuthKey              OCTET STRING,
         ospfPmShamLinkLsaCount             Gauge32,
         ospfPmShamLinkLsaCksumSum          Integer32,
         ospfPmShamLinkAdminStatus          OspfPmAdminStatus,
         ospfPmShamLinkOperStatus           OspfPmOperStatus,
         ospfPmShamLinkTransmitDelay        Integer32,
         ospfPmShamLinkIPMaxPacketSize      Integer32,
         ospfPmShamLinkInterfaceName        DisplayString,
         ospfPmShamLinkLsaRefreshIntvl      Integer32,
         ospfPmShamLinkHelperModePolicy     OspfHelperModePolicy,
         ospfPmShamLinkMaxGracePeriod       UpToRefreshInterval,
         ospfPmShamLinkEnableTeFlooding     TruthValue,
         ospfPmShamLinkAuthUserData         AuthUserDataString,
         ospfPmShamLinkFastHelloMult        FastHelloMultiplierRange,
         ospfPmShamLinkMtuIgnore            TruthValue,
         ospfPmShamLinkNmEntity             Integer32,
         ospfPmShamLinkRstStrictLsaChk      TruthValue,
         ospfPmShamLinkIpAddrConflict       OspfShamConflictFlags,
         ospfPmShamLinkStatsReset           TruthValue,
         ospfPmShamLinkGrcLsaRsndTmr        Integer32,
         ospfPmShamLinkGRDelayTimer         Integer32
       }

  ospfPmShamLinkApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "Identifies this OSPF entity."
        ::= { ospfPmShamLinkEntry 1 }

  ospfPmShamLinkAreaId OBJECT-TYPE
        SYNTAX       AreaID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The OSPF area in which the sham link belongs."
        ::= { ospfPmShamLinkEntry 2 }

  ospfPmShamLinkLocalIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The local sham link endpoint address."
        ::= { ospfPmShamLinkEntry 3 }

  ospfPmShamLinkRemoteIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The remote sham link endpoint address."
        ::= { ospfPmShamLinkEntry 4 }

  ospfPmShamLinkRowStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The row status for this OSPF Sham Link Table entry, used
           to create and destroy table entries."
        ::= { ospfPmShamLinkEntry 5 }

  ospfPmShamLinkIfIndex OBJECT-TYPE
       SYNTAX          InterfaceIndex
       MAX-ACCESS      read-create
       STATUS          current
       DESCRIPTION
           "The interface index assigned to this sham link.
            This is advertised in the router's router-LSAs.
            This field cannot be changed if the row is admin status up
            and row status active."
       ::= { ospfPmShamLinkEntry 6 }

  ospfPmShamLinkMetric OBJECT-TYPE
        SYNTAX       Integer32(0..65535)
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The configured metric for this sham link.

           If this metric is zero then the sham link uses the default
           metric specified by ospfPmEntVpnDfltShamLinkMetric."
        DEFVAL { 0 }
        ::= { ospfPmShamLinkEntry 7 }

  ospfPmShamLinkTransitDelay OBJECT-TYPE
        SYNTAX       UpToMaxAge
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The estimated number of seconds it takes to transmit a
           link-state update packet over this sham link."
        DEFVAL { 1 }
        ::= { ospfPmShamLinkEntry 8 }

  ospfPmShamLinkRetransInterval OBJECT-TYPE
        SYNTAX       UpToMaxAge
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The number of seconds between link-state advertisement
           retransmissions for this sham link.
           This value is also used when retransmitting database
           description and link-state request packets.  This value
           should be well over the expected roundtrip time."
        DEFVAL { 5 }
        ::= { ospfPmShamLinkEntry 9 }

  ospfPmShamLinkHelloInterval OBJECT-TYPE
        SYNTAX       HelloRange
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The length of time, in seconds, between the Hello packets
           that the router sends on this sham link.  This value must
           be the same for the remote endpoint.

           Note that this field is ignored when Fast Hellos are used.
           Fast Hellos are configured using
           ospfPmShamLinkRtrDeadInterval."
        DEFVAL { 10 }
        ::= { ospfPmShamLinkEntry 10 }

  ospfPmShamLinkRtrDeadInterval OBJECT-TYPE
        SYNTAX       Integer32 (0..'FFFF'h)
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The number of seconds that a router's Hello packets have
           not been seen before its neighbors declare the router
           down.  This should be some multiple of the Hello interval.
           This value must be the same for the remote endpoint.

           A value of 1 second means that Fast Hello Timers are used
           on this interface.  The ospfPmShamLinkFastHelloMult
           field is used to determine the Hello interval instead of
           ospfPmShamLinkHelloInterval."
        DEFVAL { 40 }
        ::= { ospfPmShamLinkEntry 11 }

  ospfPmShamLinkState OBJECT-TYPE
        SYNTAX       OspfInterfaceStates
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "OSPF interface state for this sham link."
        ::= { ospfPmShamLinkEntry 12 }

  ospfPmShamLinkEvents OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The number of state changes or error events on this
           sham link."
        ::= { ospfPmShamLinkEntry 13 }

  ospfPmShamLinkAuthType OBJECT-TYPE
        SYNTAX       OspfAuthTypes
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The authentication type for this sham link.
           Additional authentication types may be assigned locally.

           Note that this object can be used to engage in significant
           attacks against an OSPF router."
        DEFVAL { authNone } -- no authentication, by default
        ::= { ospfPmShamLinkEntry 14 }

  ospfPmShamLinkAuthKey OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE(0..256))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The cleartext password used as an OSPF Authentication key
           when simplePassword security is enabled.  This object does
           not access any OSPF Cryptogaphic (e.g.  MD5)
           Authentication Key under any circumstance.

           If the key length is shorter than 8 octets, the agent will
           left adjust and zero fill to 8 octets.

           Unauthenticated interfaces need no authentication key, and
           simple password authentication cannot use a key of more
           than 8 octets.

           Note that the use of simplePassword authentication is NOT
           recommended when there is concern regarding attack upon
           the OSPF system.  SimplePassword authentication is only
           sufficient to protect against accidental misconfigurations
           because it re-uses cleartext passwords.  [RFC-1704]

           When read, ospfPmShamLinkAuthKey always returns an Octet
           String of length zero."
        DEFVAL { '0000000000000000'H } -- 0.0.0.0.0.0.0.0
        ::= { ospfPmShamLinkEntry 15 }

  ospfPmShamLinkLsaCount OBJECT-TYPE
        SYNTAX       Gauge32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The total number of link-local link state advertisements
           in this sham link's link-local link state database."
        ::= { ospfPmShamLinkEntry 16 }

  ospfPmShamLinkLsaCksumSum OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The 32 bit unsigned sum of the link-state advertisements'
           LS checksums contained in this sham link's link-local link
           state database.  The sum can be used to determine if there
           has been a change in the sham link's link state database,
           and to compare the link-state database at the remote
           endpoint."
        ::= { ospfPmShamLinkEntry 17 }

  ospfPmShamLinkAdminStatus OBJECT-TYPE
        SYNTAX       OspfPmAdminStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The desired administrative state of this sham link."
        DEFVAL { adminStatusUp }
        ::= { ospfPmShamLinkEntry 18 }

  ospfPmShamLinkOperStatus OBJECT-TYPE
        SYNTAX       OspfPmOperStatus
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The current operational state of this sham link."
        ::= { ospfPmShamLinkEntry 19 }

  ospfPmShamLinkTransmitDelay OBJECT-TYPE
        SYNTAX       Integer32 (0..'7FFFFFFF'h)
        UNITS        "milliseconds"
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The time this interface will delay a LSU packet, in order
           to add more LSAs to the packet before sending.  Setting
           this correctly can reduce the network traffic.  This is
           configurable on a per-interface basis."
        DEFVAL { 100 }
        ::= { ospfPmShamLinkEntry 20 }

  ospfPmShamLinkIPMaxPacketSize OBJECT-TYPE
        SYNTAX       Integer32 (0..'FFFF'h)
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "Maximum transfer unit (MTU) for this sham link.

           This is the maximum packet size in bytes for packets sent
           over the sham link.  This size excludes link layer headers
           but includes IP headers and higher-level headers.

           Normally, DC-OSPF will limit sent PDUs (protocol data
           units) to less than or equal to this size.  However, if
           DC-OSPF cannot construct a valid OSPF PDU smaller than or
           equal to this size then it will send the smallest valid
           PDU and assume that the IP stack will fragment the packet."
        DEFVAL { 576 }
        ::= { ospfPmShamLinkEntry 21 }

  ospfPmShamLinkInterfaceName OBJECT-TYPE
        SYNTAX       DisplayString
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The textual name of the interface.
           Set to null if not known.

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

  ospfPmShamLinkLsaRefreshIntvl OBJECT-TYPE
        SYNTAX       Integer32 (1..3599)
        UNITS        "seconds"
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "Self-originated LSAs are periodically reflooded into the
           routing domain, to add to the robustness of the OSPF
           protocol.  This value determines the interval between
           refreshes of LSAs that are only flooded over this
           interface and is defaulted to the OSPF standard default
           of 1800 seconds (30 minutes)."
        DEFVAL { 1800 }
        ::= { ospfPmShamLinkEntry 23 }

  ospfPmShamLinkHelperModePolicy OBJECT-TYPE
        SYNTAX       OspfHelperModePolicy
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "Indicates whether DC-OSPF will help a neighbor undergoing
           hitless restart on this interface for the specified
           reason.  This field contains a bit flag for each of
           OspfHitlessRestartReasons.  If a bit flag for a specific
           restart reason is set, then DC-OSPF will help a router
           restarting for this reason.  Otherwise grace LSAs received
           containing this restart reason will be ignored.

           By default DC-OSPF does not help restarting routers for
           any reason."
        DEFVAL { {} }
        ::= { ospfPmShamLinkEntry 24 }

  ospfPmShamLinkMaxGracePeriod OBJECT-TYPE
        SYNTAX       UpToRefreshInterval
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "If configured to help neighbors undergoing hitless restart
           on this interface, this field indicates the maximum grace
           period that will be allowed for a neighboring router
           undergoing hitless restart.  If a type-9 grace LSA is
           received with a greater requested grace period, then the
           grace LSA will be ignored."
        DEFVAL { 140 }
        ::= { ospfPmShamLinkEntry 25 }

  ospfPmShamLinkEnableTeFlooding OBJECT-TYPE
        SYNTAX       TruthValue
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "Used to enable TE LSA flooding across this interface.
           This allows the TE data network to be partitioned
           separately from the underlying OSPF control plane network.
           This flag has no effect on the receipt of TE LSAs across
           this interface, so to be truly effective it must be set
           consistently on the remote endpoint.

           This field cannot be changed if the row is admin status up
           and row status active."
        DEFVAL { true }
        ::= { ospfPmShamLinkEntry 26 }

  ospfPmShamLinkAuthUserData OBJECT-TYPE
        SYNTAX       AuthUserDataString
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "Authentication user data for interface level
           authentication.

           This data is passed opaquely to the Metaswitch
           authentication interface where it can be used to assist
           with authentication decisions."
        DEFVAL { ''h }
        ::= { ospfPmShamLinkEntry 27 }

  ospfPmShamLinkFastHelloMult OBJECT-TYPE
        SYNTAX       FastHelloMultiplierRange
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The number of Hellos that should be sent within 1 second
           when using Fast Hellos on this interface.  This value does
           not have to be same for all routers attached to a common
           network, but it is advisable.  Fast Hellos are configured
           using ospfPmShamLinkRtrDeadInterval."
        DEFVAL { 5 }
        ::= { ospfPmShamLinkEntry 28 }

  ospfPmShamLinkMtuIgnore OBJECT-TYPE
        SYNTAX       TruthValue
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "This object controls whether DC-OSPF checks the MTU size
           on incoming Database Description packets.  By default, if
           the received MTU size in a DB Description packet is higher
           than the MTU size configured on the sham link, the OSPF
           adjacency will not be established.  If the sham link is
           tunneled over an MPLS network, then the administrator may
           not know the maximum MTU size and so can tell DC-OSPF to
           ignore the MTU size on incoming DB description packets."
        DEFVAL { false }
        ::= { ospfPmShamLinkEntry 29 }

  ospfPmShamLinkNmEntity OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The index of the OSPF NM entity that handles this sham
           link.

           This field cannot be changed if the row is admin status up
           and row status active."
        DEFVAL { 1 }
        ::= { ospfPmShamLinkEntry 30 }

  ospfPmShamLinkRstStrictLsaChk OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Whether to perform strict LSA checking when acting as a
           restart helper for a restarting peer on this sham link.

           When ospfPmShamLinkRstStrictLsaChk is 'true', OSPF
           will perform strict LSA checking as described in RFC 3623
           and RFC 5187.  In particular, OSPF will stop acting as
           restart helper if it transmits an LSA to the restarting
           node indicating a topology change.

           Set ospfPmShamLinkRstStrictLsaChk to 'false' to
           disable strict LSA checking."
       DEFVAL { true }
       ::= { ospfPmShamLinkEntry 31 }

  ospfPmShamLinkIpAddrConflict OBJECT-TYPE
       SYNTAX       OspfShamConflictFlags
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "Indicates whether the local sham link endpoint address
           conflicts with any addresses advertized into OSPF by
           this OSPF instance.

           To ensure proper operation of the sham link the local
           sham link endpoint address must be distributed as a host
           route through BGP but NOT through OSPF.  Any conflicts
           reported in this field indicate that this requirement is
           being broken.

           Reference: RFC 4577 section 4.2.7.1."
       ::= { ospfPmShamLinkEntry 32 }

  ospfPmShamLinkStatsReset OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Set this object to 'true' to reset all stats counters in the
          ospfPmShamLinkStatsTable that augments this table.

          Reading the value of this object has no meaning."
       DEFVAL { false }
       ::= { ospfPmShamLinkEntry 33 }

  ospfPmShamLinkGrcLsaRsndTmr OBJECT-TYPE
       SYNTAX       Integer32
       UNITS        "seconds"
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The value of the timer used to resend Grace LSA packets in
          seconds.  Following an unplanned restart Grace LSAs are
          resent every unplnd_grace_lsa_resend_timer seconds.

          Resends are stopped once the first HELLO is transmitted,
          which occurs after the period specified in the
          unplanned_gr_delay_timer field."
       DEFVAL { 0 }
       ::= { ospfPmShamLinkEntry 34 }

  ospfPmShamLinkGRDelayTimer OBJECT-TYPE
       SYNTAX       Integer32
       UNITS        "seconds"
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The value of the timer used to wait, after an unplanned
          graceful restart, before sending the first HELLO.
          If grace LSAs are being retransmitted, the retransmissions
          are stopped when this timer fires."
       DEFVAL { 10 }
       ::= { ospfPmShamLinkEntry 35 }

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

-- The OSPF Sham Link Neighbor Table

  ospfPmShamNbrTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_snbr
       SYNTAX      SEQUENCE OF OspfPmShamNbrEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "A table of sham link neighbor information."
       ::= { ospfObjects 26 }

  ospfPmShamNbrEntry OBJECT-TYPE
       SYNTAX      OspfPmShamNbrEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "Sham link neighbor information."
       INDEX {
          ospfPmShamNbrApplIndex,
          ospfPmShamNbrAreaId,
          ospfPmShamNbrLocalIpAddr,
          ospfPmShamNbrRemoteIpAddr
          }
       ::= { ospfPmShamNbrTable 1 }

  OspfPmShamNbrEntry ::= SEQUENCE {
         ospfPmShamNbrApplIndex             OspfPmIndex,
         ospfPmShamNbrAreaId                AreaID,
         ospfPmShamNbrLocalIpAddr           IpAddress,
         ospfPmShamNbrRemoteIpAddr          IpAddress,
         ospfPmShamNbrRouterId              RouterID,
         ospfPmShamNbrOptions               Integer32,
         ospfPmShamNbrState                 OspfNeighborStates,
         ospfPmShamNbrEvents                Counter32,
         ospfPmShamNbrLsRetransQLen         Gauge32,
         ospfPmShamNbrNumRequests           Unsigned32,
         ospfPmShamNbrDeadTime              PositiveInteger,
         ospfPmShamNbrRestartHelperStatus   OspfRestartHelperStatus,
         ospfPmShamNbrRestartHelperAge      UpToRefreshInterval,
         ospfPmShamNbrRestartHelperExit     OspfRestartExitReason
       }

  ospfPmShamNbrApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "Identifies this OSPF entity."
        ::= { ospfPmShamNbrEntry 1 }

  ospfPmShamNbrAreaId OBJECT-TYPE
        SYNTAX       AreaID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The OSPF area in which the sham link belongs."
        ::= { ospfPmShamNbrEntry 2 }

  ospfPmShamNbrLocalIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The local sham link endpoint address."
        ::= { ospfPmShamNbrEntry 3 }

  ospfPmShamNbrRemoteIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The remote sham link endpoint address."
        ::= { ospfPmShamNbrEntry 4 }

  ospfPmShamNbrRouterId OBJECT-TYPE
        SYNTAX       RouterID
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The 32 bit number that uniquely identifies the neighboring
           router in the Autonomous System."
        ::= { ospfPmShamNbrEntry 5 }

  ospfPmShamNbrOptions OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "A Bit Mask corresponding to the neighbor's options field.

           Bit 0, if set, indicates that the system will operate on
           Type of Service metrics other than TOS 0.  If zero, the
           neighbor will ignore all metrics except the TOS 0 metric.

           Bit 1, if set, indicates that the associated area accepts
           and operates on external information; if zero, it is a
           stub area.

           Bit 2, if set, indicates that the system is capable of
           routing IP Multicast datagrams; i.e., that it implements
           the Multicast Extensions to OSPF.

           Bit 3, if set, indicates that the associated area is an
           NSSA.  These areas are capable of carrying type 7 external
           advertisements, which are translated into type 5 external
           advertisements at NSSA borders.

           Bit 4, if set, indicates the router's willingness to
           receive and forward External-Attributes-LSAs.

           Bit 5, describes the router's handling of demand circuits,
           as specified in RFC 1793.

           Bit 6, if set, indicates the router's willingness to
           receive and forward Opaque-LSAs as specified in RFC 2370."
        ::= { ospfPmShamNbrEntry 6 }

  ospfPmShamNbrState OBJECT-TYPE
        SYNTAX       OspfNeighborStates
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The state of the sham link neighbor relationship."
        ::= { ospfPmShamNbrEntry 7 }

  ospfPmShamNbrEvents OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The number of times this sham link neighbor has changed
           its state, or an error has occurred."
        ::= { ospfPmShamNbrEntry 8 }

  ospfPmShamNbrLsRetransQLen OBJECT-TYPE
        SYNTAX       Gauge32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The current length of the retransmission queue."
        ::= { ospfPmShamNbrEntry 9 }

  ospfPmShamNbrNumRequests OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The number of LSAs we have requested from this neighbor
           for which we are still awaiting a response.  This field is
           incremented when an LSA is requested by sending a LS
           request packet and is decremented when the LSA arrives in
           an LS update packet."
        ::= { ospfPmShamNbrEntry 10 }

  ospfPmShamNbrDeadTime OBJECT-TYPE
        SYNTAX       PositiveInteger
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The time remaining in seconds within which we need to
           receive a hello packet from the sham link neighbor or we
           declare the adjacency down.
           If Fast Hellos are in use, this value is always set to 1."
        ::= { ospfPmShamNbrEntry 11 }

  ospfPmShamNbrRestartHelperStatus OBJECT-TYPE
        SYNTAX       OspfRestartHelperStatus
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "Indicates whether the router is acting as a hitless
           restart helper for the neighbor."
        ::= { ospfPmShamNbrEntry 12 }

  ospfPmShamNbrRestartHelperAge OBJECT-TYPE
        SYNTAX       UpToRefreshInterval
        UNITS        "seconds"
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "Remaining time in current OSPF hitless restart interval,
           if the router is acting as a restart helper for the
           neighbor."
        ::= { ospfPmShamNbrEntry 13 }

  ospfPmShamNbrRestartHelperExit OBJECT-TYPE
        SYNTAX       OspfRestartExitReason
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "Describes the outcome of the last attempt at acting as a
           hitless restart helper for the neighbor."
        ::= { ospfPmShamNbrEntry 14 }

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

-- OSPF Link State Database, Link-Local for Sham Links

  ospfPmShamLsdbTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_slsdb
       SYNTAX      SEQUENCE OF OspfPmShamLsdbEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The OSPF Process's Link-Local Link State Database for sham
           links."
       ::= { ospfObjects 27 }

  ospfPmShamLsdbEntry OBJECT-TYPE
       SYNTAX      OspfPmShamLsdbEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "A single Link State Advertisement."
       INDEX {
          ospfPmShamLsdbApplIndex,
          ospfPmShamLsdbAreaId,
          ospfPmShamLsdbLocalIpAddr,
          ospfPmShamLsdbRemoteIpAddr,
          ospfPmShamLsdbType,
          ospfPmShamLsdbLsid,
          ospfPmShamLsdbRouterId
          }
       ::= { ospfPmShamLsdbTable 1 }

  OspfPmShamLsdbEntry ::= SEQUENCE {
         ospfPmShamLsdbApplIndex       OspfPmIndex,
         ospfPmShamLsdbAreaId          AreaID,
         ospfPmShamLsdbLocalIpAddr     IpAddress,
         ospfPmShamLsdbRemoteIpAddr    IpAddress,
         ospfPmShamLsdbType            OspfLinkLsTypes,
         ospfPmShamLsdbLsid            IpAddress,
         ospfPmShamLsdbRouterId        RouterID,
         ospfPmShamLsdbSequence        Integer32,
         ospfPmShamLsdbAge             Integer32,
         ospfPmShamLsdbChecksum        Integer32,
         ospfPmShamLsdbAdvertisement   OCTET STRING
       }

  ospfPmShamLsdbApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "Identifies this OSPF entity."
        ::= { ospfPmShamLsdbEntry 1 }

  ospfPmShamLsdbAreaId OBJECT-TYPE
        SYNTAX       AreaID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The OSPF area in which the sham link belongs."
        ::= { ospfPmShamLsdbEntry 2 }

  ospfPmShamLsdbLocalIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The local sham link endpoint address."
        ::= { ospfPmShamLsdbEntry 3 }

  ospfPmShamLsdbRemoteIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The remote sham link endpoint address."
        ::= { ospfPmShamLsdbEntry 4 }

  ospfPmShamLsdbType OBJECT-TYPE
        SYNTAX       OspfLinkLsTypes
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The type of the link state advertisement.  Each link
           state type has a separate advertisement format."
        ::= { ospfPmShamLsdbEntry 5 }

  ospfPmShamLsdbLsid OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The Link State ID is an LS Type Specific field containing
           a 32 bit identifier in IP address format; it identifies
           the piece of the routing domain that is being described by
           the advertisement."
        ::= { ospfPmShamLsdbEntry 6 }

  ospfPmShamLsdbRouterId OBJECT-TYPE
        SYNTAX       RouterID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The 32 bit number that uniquely identifies the originating
           router in the Autonomous System."
        ::= { ospfPmShamLsdbEntry 7 }

  ospfPmShamLsdbSequence OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The sequence number field is a signed 32 bit integer.
           It is used to detect old and duplicate link state
           advertisements.  The space of sequence numbers is linearly
           ordered.  The larger the sequence number the more recent
           the advertisement."
        ::= { ospfPmShamLsdbEntry 8 }

  ospfPmShamLsdbAge OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "This field is the age of the link state advertisement in
           seconds."
        ::= { ospfPmShamLsdbEntry 9 }

  ospfPmShamLsdbChecksum OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "This field is the checksum of the complete contents of the
           advertisement, excepting the age field.  The age field is
           excepted so that an advertisement's age can be incremented
           without updating the checksum.  The checksum used is the
           same that is used for ISO connectionless datagrams; it is
           commonly referred to as the Fletcher checksum."
        ::= { ospfPmShamLsdbEntry 10 }

  ospfPmShamLsdbAdvertisement OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE (1..65535))
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The entire Link State Advertisement, including its header."
        ::= { ospfPmShamLsdbEntry 11 }

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

-- The OSPF Multi-Area Interface Table

ospfPmMultiAreaIfTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_ma_if
       SYNTAX      SEQUENCE OF OspfPmMultiAreaIfEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The OSPF Multi-Area Interface Table describes multi-area
           interfaces for multi-area adjacencies (as defined in RFC
           5185) from the viewpoint of OSPF.  This table is a DC-OSPF
           extension to the OSPF MIB.

           Primary interfaces for multi-area adjacencies are standard
           OSPF interfaces and are described by rows in the
           ospfPmIfTable.

           A multi-area interface can only go operationally up when the
           following conditions hold.

           -  The corresponding primary interface is operationally up.
           -  There is an operationally up area corresponding to the
              area ID of the multi-area interface.
           -  The value of ospfPmMultiAreaIfRemoteAddr is valid for the
              interface type of the corresponding primary interface.

           This table may contain more than one row corresponding to an
           individual primary interface; each row is for a different
           area or a different neighbor."
       ::= { ospfObjects 28 }

  ospfPmMultiAreaIfEntry OBJECT-TYPE
       SYNTAX      OspfPmMultiAreaIfEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "Each entry represents an OSPF multi-area interface."
       INDEX {
          ospfPmMultiAreaIfApplIndex,
          ospfPmMultiAreaIfIpAddress,
          ospfPmMultiAreaIfAddressLessIf,
          ospfPmMultiAreaIfAreaId,
          ospfPmMultiAreaIfRemoteAddr
          }
       ::= { ospfPmMultiAreaIfTable 1 }

  OspfPmMultiAreaIfEntry ::= SEQUENCE {
         ospfPmMultiAreaIfApplIndex         OspfPmIndex,
         ospfPmMultiAreaIfIpAddress         IpAddress,
         ospfPmMultiAreaIfAddressLessIf     InterfaceIndexOrZero,
         ospfPmMultiAreaIfAreaId            AreaID,
         ospfPmMultiAreaIfRemoteAddr        IpAddress,
         ospfPmMultiAreaIfStatus            RowStatus,
         ospfPmMultiAreaIfAdminStat         OspfPmAdminStatus,
         ospfPmMultiAreaIfOperStatus        OspfPmOperStatus,
         ospfPmMultiAreaIfState             OspfInterfaceStates,
         ospfPmMultiAreaIfEvents            Counter32,
         ospfPmMultiAreaIfMetricValue       Integer32,
         ospfPmMultiAreaIfTransitDelay      UpToMaxAge,
         ospfPmMultiAreaIfRetransInt        UpToMaxAge,
         ospfPmMultiAreaIfHelloInt          HelloRange,
         ospfPmMultiAreaIfRtrDeadInt        PositiveInteger,
         ospfPmMultiAreaIfFastHelloMult     FastHelloMultiplierRange,
         ospfPmMultiAreaIfAuthType          OspfAuthTypes,
         ospfPmMultiAreaIfAuthKey           OCTET STRING,
         ospfPmMultiAreaIfAuthUserData      AuthUserDataString,
         ospfPmIfMultiAreaIPMaxPktSize      Integer32,
         ospfPmMultiAreaIfMtuIgnore         TruthValue,
         ospfPmMultiAreaIfLsaCount          Gauge32,
         ospfPmMultiAreaIfLsaCksumSum       Integer32,
         ospfPmMultiAreaIfTrsmtTmrDelay     Integer32,
         ospfPmMultiAreaIfEnableTeFlood     TruthValue,
         ospfPmMultiAreaIfStatsReset        TruthValue,
         ospfPmMultiAreaGraceLsaRsndTmr     Integer32,
         ospfPmMultiAreaGRDelayTimer        Integer32
       }

  ospfPmMultiAreaIfApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "Identifies the DC-OSPF entity."
        ::= { ospfPmMultiAreaIfEntry 1 }

  ospfPmMultiAreaIfIpAddress OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The IP address of the primary OSPF interface that this
           multi-area interface relates to."
        ::= { ospfPmMultiAreaIfEntry 2 }

  ospfPmMultiAreaIfAddressLessIf OBJECT-TYPE
        SYNTAX       InterfaceIndexOrZero
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "For the purpose of easing the instancing of addressed and
           address less interfaces; This variable takes the value 0
           when the related primary interface has an IP Address,
           otherwise it takes the related primary interface's
           non-zero interface index value, unique within the scope of
           this router."
        ::= { ospfPmMultiAreaIfEntry 3 }

  ospfPmMultiAreaIfAreaId OBJECT-TYPE
        SYNTAX       AreaID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "A 32-bit integer uniquely identifying the area to which
           this multi-area interface connects.  Area ID 0.0.0.0 is
           used for the OSPF backbone."
        ::= { ospfPmMultiAreaIfEntry 4 }

  ospfPmMultiAreaIfRemoteAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The IP address to which packets for this multi-area
           interface should be sent.

           On point-to-point interfaces there is no need to configure
           the remote address to send packets to since packets are
           sent to the AllSPFRouters address.  In this case this
           field should be set to 0.0.0.0.  If this field is set to a
           non-zero value on a point-to-point interface then the
           multi-area interface will not go operationally up to
           prevent mis-configuration.

           For all other underlying interface types this should be
           set to the address the neighbor is using as its IP Source
           Address.  In this case if this field is is set to 0.0.0.0
           the multi-area interface will not go operationally up as
           DC-OSPF will not know where to send packets to."
        ::= { ospfPmMultiAreaIfEntry 5 }

  ospfPmMultiAreaIfStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The row status for this entry, used to create and destroy
           an entry in this table."
        ::= { ospfPmMultiAreaIfEntry 6 }

  ospfPmMultiAreaIfAdminStat OBJECT-TYPE
        SYNTAX       OspfPmAdminStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The interface's administrative status.  The value of this
           field indicates whether the OSPF protocol will be run over
           this interface and whether this interface will be
           advertised as a route through OSPF.  If this field is set
           to adminStatusUp then this interface will be used for the
           OSPF protocol."
        DEFVAL { adminStatusUp }
        ::= { ospfPmMultiAreaIfEntry 7 }

  ospfPmMultiAreaIfOperStatus OBJECT-TYPE
        SYNTAX       OspfPmOperStatus
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The current operational state of this interface.  Note
           that a multi-area interface cannot go operationally up
           until the corresponding primary interface is operationally
           up."
        ::= { ospfPmMultiAreaIfEntry 8 }

  ospfPmMultiAreaIfState OBJECT-TYPE
        SYNTAX       OspfInterfaceStates
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The OSPF Interface State for this multi-area interface."
        DEFVAL { ifDown }
        ::= { ospfPmMultiAreaIfEntry 9 }

  ospfPmMultiAreaIfEvents OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The number of times this OSPF multi-area interface has
           changed its state, or an error has occurred."
        ::= { ospfPmMultiAreaIfEntry 10 }

  ospfPmMultiAreaIfMetricValue OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The metric assigned to this interface."
        DEFVAL { 1 }
        ::= { ospfPmMultiAreaIfEntry 11 }

  ospfPmMultiAreaIfTransitDelay OBJECT-TYPE
        SYNTAX       UpToMaxAge
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The estimated number of seconds it takes to transmit a
           link state update packet over this interface."
        DEFVAL { 1 }
        ::= { ospfPmMultiAreaIfEntry 12 }

  ospfPmMultiAreaIfRetransInt OBJECT-TYPE
        SYNTAX       UpToMaxAge
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The number of seconds between link-state advertisement
           retransmissions, for adjacencies belonging to this
           interface.  This value is also used when retransmitting
           database description and link-state request packets."
        DEFVAL { 5 }
        ::= { ospfPmMultiAreaIfEntry 13 }

  ospfPmMultiAreaIfHelloInt OBJECT-TYPE
        SYNTAX       HelloRange
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The length of time, in seconds, between the Hello packets
           that the router sends on the interface.  This value must
           be the same for the neighbor at the other end of the
           multi-area adjacency.

           Note that this field is ignored when Fast Hellos are used
           on this interface.  Fast Hellos are configured using
           ospfPmMultiAreaIfRtrDeadInt.

           Note also that the default values are as follows.
           -  10 for DC-OSPF.
           -  40 if support for OIF E-NNI Routing 2.0 is turned on."
        DEFVAL { 10 }
        ::= { ospfPmMultiAreaIfEntry 14 }

  ospfPmMultiAreaIfRtrDeadInt OBJECT-TYPE
        SYNTAX       PositiveInteger
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The number of seconds that a router's Hello packets have
           not been seen before it's neighbors declare the router
           down.  This should be some multiple of the Hello interval.
           This value must be the same for the neighbor at the other
           end of the multi-area adjacency.

           A value of 1 second means that Fast Hello Timers are used
           on this interface.  The ospfPmMultiAreaIfFastHelloMult
           field is used to determine the Hello interval instead of
           ospfPmMultiAreaIfHelloInt.

           Note also that the default values are as follows.
           -  40 for DC-OSPF.
           -  120 if support for OIF E-NNI Routing 2.0 is turned on."
        DEFVAL { 40 }
        ::= { ospfPmMultiAreaIfEntry 15 }

  ospfPmMultiAreaIfFastHelloMult OBJECT-TYPE
        SYNTAX       FastHelloMultiplierRange
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The number of Hellos that should be sent within 1 second
           when using Fast Hellos on this interface.  This value does
           not have to be same for all routers attached to a common
           network, but it is advisable.  Fast Hellos are configured
           using ospfPmMultiAreaIfRtrDeadInt."
        DEFVAL { 5 }
        ::= { ospfPmMultiAreaIfEntry 16 }

  ospfPmMultiAreaIfAuthType OBJECT-TYPE
        SYNTAX       OspfAuthTypes
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The authentication type specified for this interface.
           Additional authentication types may be assigned locally.

           Note that this object can be used to engage in significant
           attacks against an OSPF router."
        DEFVAL { authNone } -- no authentication, by default
        ::= { ospfPmMultiAreaIfEntry 17 }

  ospfPmMultiAreaIfAuthKey OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE (0..256))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "The cleartext password used as an OSPF Authentication key
           when simplePassword security is enabled.  This object does
           not access any OSPF Cryptogaphic (e.g.  MD5)
           Authentication Key under any circumstance.

           If the key length is shorter than 8 octets, the agent will
           left adjust and zero fill to 8 octets.

           Unauthenticated interfaces need no authentication key, and
           simple password authentication cannot use a key of more
           than 8 octets.

           Note that the use of simplePassword authentication is NOT
           recommended when there is concern regarding attack upon
           the OSPF system.  SimplePassword authentication is only
           sufficient to protect against accidental misconfigurations
           because it re-uses cleartext passwords.  [RFC-1704]

           When read, ospfPmMultiAreaIfAuthKey always returns an
           Octet String of length zero."
        DEFVAL { '0000000000000000'H } -- 0.0.0.0.0.0.0.0
        ::= { ospfPmMultiAreaIfEntry 18 }

  ospfPmMultiAreaIfAuthUserData OBJECT-TYPE
        SYNTAX       AuthUserDataString
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
          "Authentication user data for interface level
           authentication.

           This data is passed opaquely to the Metaswitch
           authentication interface where it can be used to assist
           with authentication decisions."
        DEFVAL { ''h }
        ::= { ospfPmMultiAreaIfEntry 19 }

  ospfPmIfMultiAreaIPMaxPktSize OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "Maximum transfer unit (MTU) for the interface.

           This is the maximum packet size in bytes for packets sent
           over the network interface.  This size excludes link layer
           headers but includes IP headers and higher-level headers.

           Normally, DC-OSPF will limit sent PDUs (protocol data
           units) to less than or equal to this size.  However, if
           DC-OSPF cannot construct a valid OSPF PDU smaller than or
           equal to this size then it will send the smallest valid
           PDU and assume that the IP stack will fragment the packet.

           Set to zero if unknown."
        ::= { ospfPmMultiAreaIfEntry 20 }

  ospfPmMultiAreaIfMtuIgnore OBJECT-TYPE
        SYNTAX       TruthValue
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
          "This object controls whether DC-OSPF checks the MTU size
           on incoming Database Description packets.  By default, if
           the received MTU size in a DB Description packet is higher
           than the MTU size configured on the incoming multi-area
           interface, the OSPF adjacency will not be established.  If
           the interface is tunneled over, say, an MPLS network, then
           the administrator may not know the maximum MTU size and so
           can tell DC-OSPF to ignore the MTU size on incoming DB
           description packets."
        DEFVAL { false }
        ::= { ospfPmMultiAreaIfEntry 21 }

  ospfPmMultiAreaIfLsaCount OBJECT-TYPE
        SYNTAX       Gauge32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The total number of link-local link state advertisements
           in this interface's link-local link state database."
        ::= { ospfPmMultiAreaIfEntry 22 }

  ospfPmMultiAreaIfLsaCksumSum OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The 32-bit unsigned sum of the link-state advertisements'
           LS checksums contained in this multi-area interface's
           link-local link state database.  The sum can be used to
           determine if there has been a change in the interface's
           link state database, and to compare the interface
           link-state database of routers attached to the same
           subnet."
        ::= { ospfPmMultiAreaIfEntry 23 }

  ospfPmMultiAreaIfTrsmtTmrDelay OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
          "The time this interface will delay a LSU packet, in order
           to add more LSAs to the packet before sending.  Setting
           this correctly can reduce the network traffic.  This is
           configurable on a per-interface basis."
        DEFVAL { 100 }
        ::= { ospfPmMultiAreaIfEntry 24 }

  ospfPmMultiAreaIfEnableTeFlood OBJECT-TYPE
        SYNTAX       TruthValue
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
          "Used to enable TE LSA flooding across this interface.
           This allows the TE data network to be partitioned
           separately from the underlying OSPF control plane network.
           This flag has no effect on the receipt of TE LSAs across
           this interface, so to be truly effective it must be set
           consistently on each neighboring router.

           Note that this cannot be changed while the row is admin
           up."
        DEFVAL { true }
        ::= { ospfPmMultiAreaIfEntry 25 }

  ospfPmMultiAreaIfStatsReset OBJECT-TYPE
       SYNTAX       TruthValue
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Set this object to 'true' to reset all stats counters in the
          ospfPmMaIfStatsTable that augments this table.

          Reading the value of this object has no meaning."
       DEFVAL { false }
        ::= { ospfPmMultiAreaIfEntry 26 }

  ospfPmMultiAreaGraceLsaRsndTmr OBJECT-TYPE
       SYNTAX       Integer32
       UNITS        "seconds"
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The value of the timer used to resend Grace LSA packets in
          seconds.  Following an unplanned restart Grace LSAs are
          resent every unplnd_grace_lsa_resend_timer seconds.

          Resends are stopped once the first HELLO is transmitted,
          which occurs after the period specified in the
          unplanned_gr_delay_timer field."
       DEFVAL { 0 }
       ::= { ospfPmMultiAreaIfEntry 27 }

  ospfPmMultiAreaGRDelayTimer OBJECT-TYPE
       SYNTAX       Integer32
       UNITS        "seconds"
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The value of the timer used to wait, after an unplanned
          graceful restart, before sending the first HELLO.
          If grace LSAs are being retransmitted, the retransmissions
          are stopped when this timer fires."
       DEFVAL { 10 }
       ::= { ospfPmMultiAreaIfEntry 28 }
------------------------------------------------------------------------------

-- The OSPF Multi-Area Neighbor Table

  ospfPmMultiAreaNbrTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_ma_nbr
       SYNTAX      SEQUENCE OF OspfPmMultiAreaNbrEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "A read-only table containing multi-area adjacency neighbor
           information.

           This table is used to provide support for RFC 5185 - OSPF
           Multi-Area Adjacency.  It is a DC-OSPF extension to the
           standard OSPF MIB.

           There can only exist one multi-area neighbor per multi-area
           interface, hence this table and the ospfPmMultiAreaIfTable
           use the same index fields.

           Rows in this table are automatically created and destroyed."
       ::= { ospfObjects 29 }

  ospfPmMultiAreaNbrEntry OBJECT-TYPE
       SYNTAX      OspfPmMultiAreaNbrEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "A table of multi-area interface neighbor information."
       INDEX {
          ospfPmMultiAreaNbrApplIndex,
          ospfPmMultiAreaNbrIfIpAddr,
          ospfPmMultiAreaNbrAddrLessIf,
          ospfPmMultiAreaNbrAreaId,
          ospfPmMultiAreaNbrRemoteAddr
          }
       ::= { ospfPmMultiAreaNbrTable 1 }

  OspfPmMultiAreaNbrEntry ::= SEQUENCE {
         ospfPmMultiAreaNbrApplIndex        OspfPmIndex,
         ospfPmMultiAreaNbrIfIpAddr         IpAddress,
         ospfPmMultiAreaNbrAddrLessIf       InterfaceIndexOrZero,
         ospfPmMultiAreaNbrAreaId           AreaID,
         ospfPmMultiAreaNbrRemoteAddr       IpAddress,
         ospfPmMultiAreaNbrSrcIpAddr        IpAddress,
         ospfPmMultiAreaNbrRtrId            RouterID,
         ospfPmMultiAreaNbrOptions          Integer32,
         ospfPmMultiAreaNbrState            OspfNeighborStates,
         ospfPmMultiAreaNbrEvents           Counter32,
         ospfPmMultiAreaNbrLsRetransQLen    Gauge32,
         ospfPmMultiAreaNbrNumRequests      Unsigned32,
         ospfPmMultiAreaNbrDeadTime         PositiveInteger,
         ospfPmMultiAreaNbrRstrtHelpSts     OspfRestartHelperStatus,
         ospfPmMultiAreaNbrRstrtHelpAge     UpToRefreshInterval,
         ospfPmMultiAreaNbrRstrtHelpExitR   OspfRestartExitReason
       }

    ospfPmMultiAreaNbrApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Identifies this OSPF entity."
        ::= { ospfPmMultiAreaNbrEntry 1 }

   ospfPmMultiAreaNbrIfIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The IP address of the primary OSPF interface over which
            the neighbor can be reached."
        ::= { ospfPmMultiAreaNbrEntry 2 }

   ospfPmMultiAreaNbrAddrLessIf OBJECT-TYPE
        SYNTAX       InterfaceIndexOrZero
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "This variable takes the value 0 when the interface over
            which the neighbor can be reached has an IP Address,
            otherwise it takes the non-zero interface index value of
            the OSPF interface over which the neighbor can be reached,
            unique within the scope of this router."
         ::= { ospfPmMultiAreaNbrEntry 3 }

   ospfPmMultiAreaNbrAreaId OBJECT-TYPE
        SYNTAX       AreaID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The area to which the adjacency to this neighbor belongs."
        ::= { ospfPmMultiAreaNbrEntry 4 }

   ospfPmMultiAreaNbrRemoteAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The IP address to which packets for this multi-area
            adjacency are sent.

            On point-to-point interfaces there is no need to configure
            the remote address to send packets to since packets are
            sent to the AllSPFRouters address.  In this case this
            field is set to 0.0.0.0.

            For all other underlying interface types this is set to
            the address the neighbor is using as its IP Source
            Address."
         ::= { ospfPmMultiAreaNbrEntry 5 }

   ospfPmMultiAreaNbrSrcIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The IP address this neighbor is using as its IP Source
            Address.  Note that, on addressless links, this will not
            be 0.0.0.0, but the address of another of the neighbor's
            interfaces.

            For multi-area neighbors not reached over a point-to-point
            interface this field takes the same value as
            ospfPmMultiAreaNbrRemoteAddr."
         ::= { ospfPmMultiAreaNbrEntry 6 }

   ospfPmMultiAreaNbrRtrId OBJECT-TYPE
        SYNTAX       RouterID
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "A 32-bit integer (represented as a type IpAddress)
            uniquely identifying the neighboring router in the
            Autonomous System."
        DEFVAL { '00000000'H } -- 0.0.0.0
        ::= { ospfPmMultiAreaNbrEntry 7 }

   ospfPmMultiAreaNbrOptions OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "A Bit Mask corresponding to the neighbor's options field.

            Bit 0, if set, indicates that the system will operate on
            Type of Service metrics other than TOS 0.  If zero, the
            neighbor will ignore all metrics except the TOS 0 metric.

            Bit 1, if set, indicates that the associated area accepts
            and operates on external information; if zero, it is a
            stub area.

            Bit 2, if set, indicates that the system is capable of
            routing IP Multicast datagrams; i.e., that it implements
            the Multicast Extensions to OSPF.

            Bit 3, if set, indicates that the associated area is an
            NSSA.  These areas are capable of carrying type 7 external
            advertisements, which are translated into type 5 external
            advertisements at NSSA borders.

            Bit 4, if set, indicates the router's willingness to
            receive and forward External-Attributes-LSAs.

            Bit 5, describes the router's handling of demand circuits,
            as specified in RFC 1793.

            Bit 6, if set, indicates the router's willingness to
            receive and forward Opaque-LSAs as specified in RFC 2370."
        REFERENCE
            "OSPF Version 2, Section 12.1.2 Options"
        DEFVAL { 0 }
        ::= { ospfPmMultiAreaNbrEntry 8 }

    ospfPmMultiAreaNbrState OBJECT-TYPE
        SYNTAX       OspfNeighborStates
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The State of the relationship with this Neighbor."
        REFERENCE
           "OSPF Version 2, Section 10.1 Neighbor States"
        ::= { ospfPmMultiAreaNbrEntry 9 }

   ospfPmMultiAreaNbrEvents OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The number of times this neighbor relationship
           has changed state, or an error has occurred."
        ::= { ospfPmMultiAreaNbrEntry 10 }

   ospfPmMultiAreaNbrLsRetransQLen OBJECT-TYPE
        SYNTAX       Gauge32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The current length of the retransmission
           queue."
        ::= { ospfPmMultiAreaNbrEntry 11 }

    ospfPmMultiAreaNbrNumRequests OBJECT-TYPE
        SYNTAX       Unsigned32 (0..'FFFFFFFF'h)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The number of LSAs we have requested from this neighbor
           for which we are still awaiting a response.  This field is
           incremented when an LSA is requested by sending a LS request
           packet and is decremented when the LSA arrives in an LS
           update packet."
        ::= { ospfPmMultiAreaNbrEntry 12 }

   ospfPmMultiAreaNbrDeadTime OBJECT-TYPE
        SYNTAX          PositiveInteger
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
           "The time remaining in seconds within which we need to
            receive a hello packet from the neighbor or we declare the
            multi-area adjacency down.  If Fast Hellos are in use,
            this value is always set to 1.  If the ospfPmNbrState is
            DOWN, then the value is set to zero and the field is not
            valid."
        ::= { ospfPmMultiAreaNbrEntry 13 }

   ospfPmMultiAreaNbrRstrtHelpSts OBJECT-TYPE
        SYNTAX       OspfRestartHelperStatus
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Indicates whether the router is acting as a hitless
            restart helper for the neighbor."
        ::= { ospfPmMultiAreaNbrEntry 14 }

   ospfPmMultiAreaNbrRstrtHelpAge OBJECT-TYPE
        SYNTAX       UpToRefreshInterval
        UNITS        "seconds"
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Remaining time in current OSPF hitless restart interval,
            if the router is acting as a restart helper for the
            neighbor."
        ::= { ospfPmMultiAreaNbrEntry 15 }

   ospfPmMultiAreaNbrRstrtHelpExitR OBJECT-TYPE
        SYNTAX       OspfRestartExitReason
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Describes the outcome of the last attempt at acting as a
            hitless restart helper for the neighbor."
        ::= { ospfPmMultiAreaNbrEntry 16 }

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

-- OSPF Link State Database, Link-Local for Multi-Area Interfaces

  ospfPmMultiAreaLclLsdbTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_ma_lsdb
       SYNTAX      SEQUENCE OF OspfPmMultiAreaLclLsdbEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The OSPF Process's Link-Local Link State Database for
           multi-area adjacency links.

           This table is used to provide support for RFC 5185 - OSPF
           Multi-Area Adjacency.  It is a DC-OSPF extension to the
           standard OSPF MIB."
       ::= { ospfObjects 30 }

  ospfPmMultiAreaLclLsdbEntry OBJECT-TYPE
       SYNTAX      OspfPmMultiAreaLclLsdbEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "A single Link State Advertisement."
       INDEX {
          ospfPmMultiAreaLclLsdbApplIndex,
          ospfPmMultiAreaLclLsdbIpAddr,
          ospfPmMultiAreaLclLsdbAddrLssIf,
          ospfPmMultiAreaLclLsdbAreaId,
          ospfPmMultiAreaLclLsdbRemAddr,
          ospfPmMultiAreaLclLsdbType,
          ospfPmMultiAreaLclLsdbLsid,
          ospfPmMultiAreaLclLsdbRtrId
          }
       ::= { ospfPmMultiAreaLclLsdbTable 1 }

  OspfPmMultiAreaLclLsdbEntry ::= SEQUENCE {
         ospfPmMultiAreaLclLsdbApplIndex    OspfPmIndex,
          ospfPmMultiAreaLclLsdbIpAddr      IpAddress,
          ospfPmMultiAreaLclLsdbAddrLssIf   InterfaceIndexOrZero,
          ospfPmMultiAreaLclLsdbAreaId      AreaID,
          ospfPmMultiAreaLclLsdbRemAddr     IpAddress,
          ospfPmMultiAreaLclLsdbType        OspfLinkLsTypes,
          ospfPmMultiAreaLclLsdbLsid        IpAddress,
          ospfPmMultiAreaLclLsdbRtrId       RouterID,
          ospfPmMultiAreaLclLsdbSequence    Integer32,
          ospfPmMultiAreaLclLsdbAge         Integer32,
          ospfPmMultiAreaLclLsdbChecksum    Integer32,
          ospfPmMultiAreaLclLsdbAdvert      OCTET STRING
       }

  ospfPmMultiAreaLclLsdbApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "Identifies this OSPF entity."
        ::= { ospfPmMultiAreaLclLsdbEntry 1 }

  ospfPmMultiAreaLclLsdbIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The IP Address of the interface from which the LSA was
           received if the interface is numbered."
        ::= { ospfPmMultiAreaLclLsdbEntry 2 }

  ospfPmMultiAreaLclLsdbAddrLssIf OBJECT-TYPE
        SYNTAX       InterfaceIndexOrZero
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The Interface Index of the interface from which the LSA
           was received if the interface is unnumbered."
        ::= { ospfPmMultiAreaLclLsdbEntry 3 }

  ospfPmMultiAreaLclLsdbAreaId OBJECT-TYPE
        SYNTAX       AreaID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "A 32-bit integer uniquely identifying the area to which
           the multi-area interface from which the LSA was received
           connects.  Area ID 0.0.0.0 is used for the OSPF backbone."
        ::= { ospfPmMultiAreaLclLsdbEntry 4 }

  ospfPmMultiAreaLclLsdbRemAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The IP address to which packets for this multi-area
           adjacency are sent.

           On point-to-point interfaces there is no need to configure
           the remote address to send packets to since packets are
           sent to the AllSPFRouters address.  In this case this
           field is be set to 0.0.0.0.

           For all other underlying interface types this is set to
           the address the neighbor is using as its IP Source
           Address."
        ::= { ospfPmMultiAreaLclLsdbEntry 5 }

  ospfPmMultiAreaLclLsdbType OBJECT-TYPE
        SYNTAX       OspfLinkLsTypes
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The type of the link state advertisement.  Each link state
           type has a separate advertisement format."
        ::= { ospfPmMultiAreaLclLsdbEntry 6 }

  ospfPmMultiAreaLclLsdbLsid OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The Link State ID is an LS Type Specific field containing
           a 32 bit identifier in IP address format; it identifies
           the piece of the routing domain that is being described by
           the advertisement."
        ::= { ospfPmMultiAreaLclLsdbEntry 7 }

  ospfPmMultiAreaLclLsdbRtrId OBJECT-TYPE
        SYNTAX       RouterID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The 32 bit number that uniquely identifies the originating
           router in the Autonomous System."
        ::= { ospfPmMultiAreaLclLsdbEntry 8 }

  ospfPmMultiAreaLclLsdbSequence OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The sequence number field is a signed 32-bit integer.  It
           is used to detect old and duplicate link state
           advertisements.  The space of sequence numbers is linearly
           ordered.  The larger the sequence number the more recent
           the advertisement."
        ::= { ospfPmMultiAreaLclLsdbEntry 9 }

  ospfPmMultiAreaLclLsdbAge OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "This field is the age of the link state advertisement in
           seconds."
        ::= { ospfPmMultiAreaLclLsdbEntry 10 }

  ospfPmMultiAreaLclLsdbChecksum OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "This field is the checksum of the complete contents of the
           advertisement, excepting the age field.  The age field is
           excepted so that an advertisement's age can be incremented
           without updating the checksum.  The checksum used is the
           same that is used for ISO connectionless datagrams; it is
           commonly referred to as the Fletcher checksum."
        ::= { ospfPmMultiAreaLclLsdbEntry 11 }

  ospfPmMultiAreaLclLsdbAdvert OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE (1..65535))
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
          "The entire Link State Advertisement, including its header."
        ::= { ospfPmMultiAreaLclLsdbEntry 12 }

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

--  OSPF PM Entity Statistics Table
--
--     The OSPF PM Entity Statistics Table augments the ospfPmEntTable
--     with OSPF specific PM entity statistics information.


  ospfPmEntStatsTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_ent_stats
       SYNTAX      SEQUENCE OF OspfPmEntStatsEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The OSPF Entity Statistics Table is a read-only table
          including per-OSPF PM entity counters.  This table is
          DC-OSPF implementation specific."
       ::= { ospfObjects 31 }

  ospfPmEntStatsEntry OBJECT-TYPE
       SYNTAX      OspfPmEntStatsEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The OSPF Entity Statistics Entry containing statistics for
          the PM entity.  This entry is DC-OSPF implementation specific."
       INDEX { ospfPmEntStatsIndex }
       ::= { ospfPmEntStatsTable 1 }

  OspfPmEntStatsEntry ::= SEQUENCE {
         ospfPmEntStatsIndex                OspfPmIndex,
         ospfPmEntStatsNoIf                 Counter32,
         ospfPmEntStatsNoVirtLink           Counter32,
         ospfPmEntStatsBadPacket            Counter32
       }

  ospfPmEntStatsIndex OBJECT-TYPE
       SYNTAX       OspfPmIndex
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "Identifies the DC-OSPF entity."
       ::= { ospfPmEntStatsEntry 1 }

  ospfPmEntStatsNoIf OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header errors detected of type
          'OSPF cannot determine the receiving interface'.

          This count is incremented when the receiving interface
          for a packet cannot be identified.

          The count is reinitialized to zero when entity statistics
          collection is reset."
       ::= { ospfPmEntStatsEntry 2 }

  ospfPmEntStatsNoVirtLink OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'no virtual link' errors.

          This count is incremented when a received packet appears to
          be for a virtual interface, but no receiving interface can
          be identified.

          The count is reinitialized to zero when entity statistics
          collection is reset."
       ::= { ospfPmEntStatsEntry 3 }

  ospfPmEntStatsBadPacket OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets received that have been
           dropped, for a reason which does not have a more specific
           type defined in the DC-OSPF user exit interface.

           This count is incremented when a received OSPF packet is
           dropped for a reason that is not defined in the DC-OSPF
           user exit interface.

           The count is reinitialized to zero when entity statistics
           collection is reset."
       ::= { ospfPmEntStatsEntry 4 }

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

--  OSPF Interface Statistics Table
--
--     The OSPF Interface Statistics Table augments the ospfPmIfTable
--     with OSPF specific statistics information.

  ospfPmIfStatsTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_if_stat
       SYNTAX       SEQUENCE OF OspfPmIfStatsEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The OSPF Interface Statistics Table is a read-only table
          including per-OSPF interface counters.  This table is
          DC-OSPF implementation specific.  As for the ospfPmIfTable,
          this table contains one row per address on an interface,
          so there may exist more than one row for each logical interface."
       ::= { ospfObjects 32 }

  ospfPmIfStatsEntry OBJECT-TYPE
       SYNTAX       OspfPmIfStatsEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The OSPF Interface Statistics Entry containing statistics for
          one interface from the viewpoint of OSPF.  This entry is
          DC-OSPF implementation specific."
       INDEX {
          ospfPmIfStatsApplIndex,
          ospfPmIfStatsIpAddress,
          ospfPmIfStatsAddressLessIf
          }
       ::= { ospfPmIfStatsTable 1 }

  OspfPmIfStatsEntry ::= SEQUENCE {
         ospfPmIfStatsApplIndex             OspfPmIndex,
         ospfPmIfStatsIpAddress             IpAddress,
         ospfPmIfStatsAddressLessIf         InterfaceIndexOrZero,
         ospfPmIfStatsRxInvalid             Counter32,
         ospfPmIfStatsRxInvalidByte         Counter32,
         ospfPmIfStatsRxHello               Counter32,
         ospfPmIfStatsRxHelloByte           Counter32,
         ospfPmIfStatsRxDbDes               Counter32,
         ospfPmIfStatsRxDbDesByte           Counter32,
         ospfPmIfStatsRxLsReq               Counter32,
         ospfPmIfStatsRxLsReqByte           Counter32,
         ospfPmIfStatsRxLsUpd               Counter32,
         ospfPmIfStatsRxLsUpdByte           Counter32,
         ospfPmIfStatsRxLsAck               Counter32,
         ospfPmIfStatsRxLsAckByte           Counter32,
         ospfPmIfStatsTxFailed              Counter32,
         ospfPmIfStatsTxFailedByte          Counter32,
         ospfPmIfStatsTxHello               Counter32,
         ospfPmIfStatsTxHelloByte           Counter32,
         ospfPmIfStatsTxDbDes               Counter32,
         ospfPmIfStatsTxDbDesByte           Counter32,
         ospfPmIfStatsTxLsReq               Counter32,
         ospfPmIfStatsTxLsReqByte           Counter32,
         ospfPmIfStatsTxLsUpd               Counter32,
         ospfPmIfStatsTxLsUpdByte           Counter32,
         ospfPmIfStatsTxLsAck               Counter32,
         ospfPmIfStatsTxLsAckByte           Counter32,
         ospfPmIfStatsLength                Counter32,
         ospfPmIfStatsCksum                 Counter32,
         ospfPmIfStatsVersion               Counter32,
         ospfPmIfStatsBadSrc                Counter32,
         ospfPmIfStatsAreaMismatch          Counter32,
         ospfPmIfStatsSelfOrig              Counter32,
         ospfPmIfStatsDupeId                Counter32,
         ospfPmIfStatsHello                 Counter32,
         ospfPmIfStatsMtuMismatch           Counter32,
         ospfPmIfStatsNbrIgnored            Counter32,
         ospfPmIfStatsAuth                  Counter32,
         ospfPmIfStatsWrongProto            Counter32,
         ospfPmIfStatsResourceErr           Counter32,
         ospfPmIfStatsVirtMaIfClash         Counter32,
         ospfPmIfStatsBadLsaLen             Counter32,
         ospfPmIfStatsLsaBadType            Counter32,
         ospfPmIfStatsLsaBadLen             Counter32,
         ospfPmIfStatsLsaBadData            Counter32,
         ospfPmIfStatsLsaBadCksum           Counter32,
         ospfPmIfStatsIfStandby             Counter32,
         ospfPmIfStatsUnkNbmaNbr            Counter32,
         ospfPmIfStatsUnkVirtNbr            Counter32,
         ospfPmIfStatsAuthMismatch          Counter32,
         ospfPmIfStatsAuthFailure           Counter32,
         ospfPmIfStatsNetmaskMismatch       Counter32,
         ospfPmIfStatsHelloMismatch         Counter32,
         ospfPmIfStatsDeadMismatch          Counter32,
         ospfPmIfStatsOptionsMismatch       Counter32,
         ospfPmIfStatsNbrAdminDown          Counter32,
         ospfPmIfStatsPktLocalAddr          Counter32,
         ospfPmIfStatsMaIfNotP2p            Counter32,
         ospfPmIfStatsBadPacket             Counter32
       }

  ospfPmIfStatsApplIndex OBJECT-TYPE
       SYNTAX       OspfPmIndex
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "Identifies the DC-OSPF entity."
       ::= { ospfPmIfStatsEntry 1 }

  ospfPmIfStatsIpAddress OBJECT-TYPE
       SYNTAX       IpAddress
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The IP address of the OSPF interface."
       ::= { ospfPmIfStatsEntry 2 }

  ospfPmIfStatsAddressLessIf OBJECT-TYPE
       SYNTAX       InterfaceIndexOrZero
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "For the purpose of easing the instancing of
          addressed and address less interfaces; This
          variable takes the value 0 on interfaces with
          IP Addresses, and a non-zero interface index
          value, unique within the scope of this router,
          for interfaces having no IP Address."
       ::= { ospfPmIfStatsEntry 3 }

  ospfPmIfStatsRxInvalid OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets with an invalid type field received
          on this interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 4 }

  ospfPmIfStatsRxInvalidByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF packets with an invalid
          type field received on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 5 }

  ospfPmIfStatsRxHello OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF Hello packets received on this interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 6 }

  ospfPmIfStatsRxHelloByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF Hello packets on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 7 }

  ospfPmIfStatsRxDbDes OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF Database Description packets received on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 8 }

  ospfPmIfStatsRxDbDesByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF Database Description
          packets on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 9 }

  ospfPmIfStatsRxLsReq OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Request packets received on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 10 }

  ospfPmIfStatsRxLsReqByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF LS Request packets
          on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 11 }

  ospfPmIfStatsRxLsUpd OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Update packets received on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 12 }

  ospfPmIfStatsRxLsUpdByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF LS Update packets on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 13 }

  ospfPmIfStatsRxLsAck OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Acknowledgement packets received on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 14 }

  ospfPmIfStatsRxLsAckByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF LS Acknowledgement packets
          on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 15 }

  ospfPmIfStatsTxFailed OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of packets that OSPF could not send on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 16 }

  ospfPmIfStatsTxFailedByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in packets that OSPF could not send on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 17 }

  ospfPmIfStatsTxHello OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF Hello packets sent on this interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 18 }

  ospfPmIfStatsTxHelloByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF Hello packets sent on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 19 }

  ospfPmIfStatsTxDbDes OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF Database Description packets sent on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 20 }

  ospfPmIfStatsTxDbDesByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF Database Description packets
          sent on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 21 }

  ospfPmIfStatsTxLsReq OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Request packets sent on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 22 }

  ospfPmIfStatsTxLsReqByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF LS Request packets sent on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 23 }

  ospfPmIfStatsTxLsUpd OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Update packets sent on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 24 }

  ospfPmIfStatsTxLsUpdByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF LS Update packets sent on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 25 }

  ospfPmIfStatsTxLsAck OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Acknowledgement packets sent on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 26 }

  ospfPmIfStatsTxLsAckByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF LS Acknowledgement packets sent
          on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 27 }

  ospfPmIfStatsLength OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header length errors detected
          on this interface.

          This count is incremented when either a received packet
          is too small to be identified or an OSPF packet header
          length field is invalid.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 28 }

  ospfPmIfStatsCksum OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header checksum errors detected
          on this interface.

          This count is incremented when authentication of a
          received OSPF packet header checksum fails.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 29 }

  ospfPmIfStatsVersion OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header version errors detected
          on this interface.

          This count is incremented when a received OSPF packet
          header Version field is invalid.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 30 }

  ospfPmIfStatsBadSrc OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'bad source' errors detected
          on this interface.

          This count is incremented when the source IP address of a
          received OSPF packet is either invalid or not recognized.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 31 }

  ospfPmIfStatsAreaMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'area mismatch' errors
          detected on this interface.

          This count is incremented when the area id in a received
          OSPF packet header does not match that of the receiving
          OSPF interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 32 }

  ospfPmIfStatsSelfOrig OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'self-originated' errors
          detected on this interface.

          This count is incremented when the source IP address of
          a received OSPF packet is a local IP address.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 33 }

  ospfPmIfStatsDupeId OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'duplicate id' errors
          detected on this interface.

          This count is incremented when the route id in a received OSPF
          packet header matches the local router id.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 34 }

  ospfPmIfStatsHello OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'Hello' errors detected
          on this interface.

          This count is incremented when a received OSPF HEllO
          packet fails verification.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 35 }

  ospfPmIfStatsMtuMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'MTU mismatch' errors
          detected on this interface.

          This count is incremented when a received OSPF Database
          Description packet has an MTU field that does not match
          local configuration.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 36 }

  ospfPmIfStatsNbrIgnored OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'neighbor ignored' errors
          detected on this interface.

          This count is incremented when a received OSPF Hello packet
          is ignored based on the identity of the sending neighbor.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 37 }

  ospfPmIfStatsAuth OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header authentication errors detected
          on this interface.

          This count is incremented when a received OSPF packet
          fails authentication checks.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 38 }

  ospfPmIfStatsWrongProto OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'wrong protocol' errors
          detected on this interface.

          This count is incremented when the IP protocol field in a
          received OSPF packet is not set to OSPF.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 39 }

  ospfPmIfStatsResourceErr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header resource errors detected
          on this interface.

          This count is incremented when a received OSPF packet is
          dropped because of resource failure.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 40 }

  ospfPmIfStatsVirtMaIfClash OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'virtual interface clash with
          multi-area interface' errors detected on this interface.

          This count is incremented when a received packet is dropped
          because local misconfiguration means that a virtual interface
          and a multi-area interface cannot be distinguished.

          The count is included here only for consistency with other
          interface types and is always returned as zero."
       ::= { ospfPmIfStatsEntry 41 }

  ospfPmIfStatsBadLsaLen OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Update packets received on this interface
          that were discarded because of a bad LSA length.

          This count is incremented when a received OSPF packet is
          dropped because it cannot be parsed because it contains an
          LSA with a bad length field.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 42 }

  ospfPmIfStatsLsaBadType OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LSAs received on this interface that were
          ignored because of a bad LSA type.

          This count is incremented when a received LSA is ignored
          because it has an invalid LSA type field.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 43 }

  ospfPmIfStatsLsaBadLen OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LSAs received on this interface that were
          ignored because of a bad LSA length.

          This count is incremented when a received LSA is ignored
          because it has an invalid LSA length field.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 44 }

  ospfPmIfStatsLsaBadData OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LSAs received on this interface that were
          ignored because of bad LSA data.

          This count is incremented when a received LSA is ignored
          because it contains invalid data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 45 }

  ospfPmIfStatsLsaBadCksum OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LSAs received on this interface that were
          ignored because of a bad LSA checksum value.

          This count is incremented when a received LSA is ignored
          because the LSA header checksum fails validation.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmIfStatsEntry 46 }

  ospfPmIfStatsIfStandby OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'interface in standby
           state' errors detected on this interface.

           This count is incremented when a received OSPF packet is
           dropped because the receiving interface is in standby
           state (Reference RFC2328 Appendix F, method 2).

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmIfStatsEntry 47 }

  ospfPmIfStatsUnkNbmaNbr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because they came from an unknown NBMA
           neighbor.

           This count is incremented when a received Hello packet is
           dropped because it comes from an unknown neighbor on an
           NBMA network.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmIfStatsEntry 48 }

  ospfPmIfStatsUnkVirtNbr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because they came from an unknown
           virtual neighbor.

           This count is incremented when a received Hello packet is
           dropped because it comes from an unknown virtual neighbor.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmIfStatsEntry 49 }

  ospfPmIfStatsAuthMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets received on this interface that
           were dropped because of a bad authentication type.

           This count is incremented when a received OSPF packet is
           dropped because its authentication type does not match
           that configured in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmIfStatsAuth is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmIfStatsEntry 50 }

  ospfPmIfStatsAuthFailure OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets received on this interface that
           were dropped because packet authentication failed.

           This count is incremented when a received OSPF packet is
           dropped because authentication failed.

           When a packet is dropped for this reason, the count of
           ospfPmIfStatsAuth is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmIfStatsEntry 51 }

  ospfPmIfStatsNetmaskMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because of a bad netmask.

           This count is incremented when a received Hello packet is
           dropped because its netmask does not match that configured
           in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmIfStatsHello is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmIfStatsEntry 52 }

  ospfPmIfStatsHelloMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because of a bad Hello Interval.

           This count is incremented when a received Hello packet is
           dropped because its Hello Interval does not match that
           configured in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmIfStatsHello is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmIfStatsEntry 53 }

  ospfPmIfStatsDeadMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because of a bad Router Dead Interval.

           This count is incremented when a received Hello packet is
           dropped because its Router Dead Interval does not match
           that configured in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmIfStatsHello is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmIfStatsEntry 54 }

  ospfPmIfStatsOptionsMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because of bad Optional Capabilities.

           This count is incremented when a received Hello packet is
           dropped because its Optional Capabilities does not match
           the capabilities configured in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmIfStatsHello is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmIfStatsEntry 55 }

  ospfPmIfStatsNbrAdminDown OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because the sending neighbor is Oper
           State Down.

           This count is incremented when a received Hello packet is
           dropped because the sending neighbor is Oper State Down.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmIfStatsEntry 56 }

  ospfPmIfStatsPktLocalAddr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because they appear to come from the
           local router.

           This count is incremented when a received Hello packet is
           dropped because it comes from the local router, or from
           someone pretending to be the local router.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmIfStatsEntry 57 }

  ospfPmIfStatsMaIfNotP2p OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because they were received on a
           multi-area interface that is not point-to-point.

           This count is incremented when a received Hello packet is
           dropped because this interface is a multi-area interface
           that is not point-to-point.

           The count is reinitialized to zero when interface statistics
           collection is reset.

           This field always returns zero, because this table is used
           to return statistics information for interfaces that are
           not multi-area interfaces.  It is included for consistency
           with other MIB tables."
       ::= { ospfPmIfStatsEntry 58 }

  ospfPmIfStatsBadPacket OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets received that have been
           dropped, for a reason which does not have a more specific
           type defined in the DC-OSPF user exit interface.

           This count is incremented when a received OSPF packet is
           dropped for a reason that is not defined in the DC-OSPF
           user exit interface.

           When this count is incremented, another count in this row
           will also be incremented depending on the reason why the
           packet was dropped.  The count in this field should not be
           included when determining the total number of OSPF packets
           that have been dropped.

           The count is reinitialized to zero when interface
           statistics collection is reset."

       ::= { ospfPmIfStatsEntry 59 }

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

--  OSPF Virtual Interface Statistics Table

--      The Virtual Interface Statistics Table augments the
--      ospfPmVirtIfTable with OSPF specific statistics information.

  ospfPmVirtIfStatsTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_vif_stat
       SYNTAX       SEQUENCE OF OspfPmVirtIfStatsEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The OSPF Virtual Interface Statistics Table is a read-only table
          including per-OSPF interface counters.  This table is
          DC-OSPF implementation specific."
       ::= { ospfObjects 33 }

  ospfPmVirtIfStatsEntry OBJECT-TYPE
       SYNTAX       OspfPmVirtIfStatsEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The OSPF Virtual Interface Statistics Entry containing
          statistics for one virtual interface from the viewpoint of OSPF.
          This entry is DC-OSPF implementation specific."
       INDEX {
          ospfPmVirtIfStatsApplIndex,
          ospfPmVirtIfStatsAreaId,
          ospfPmVirtIfStatsNeighbor
          }
       ::= { ospfPmVirtIfStatsTable 1 }

  OspfPmVirtIfStatsEntry ::= SEQUENCE {
         ospfPmVirtIfStatsApplIndex       OspfPmIndex,
         ospfPmVirtIfStatsAreaId          AreaID,
         ospfPmVirtIfStatsNeighbor        RouterID,
         ospfPmVirtIfStatsRxInvalid       Counter32,
         ospfPmVirtIfStatsRxInvalidByte   Counter32,
         ospfPmVirtIfStatsRxHello         Counter32,
         ospfPmVirtIfStatsRxHelloByte     Counter32,
         ospfPmVirtIfStatsRxDbDes         Counter32,
         ospfPmVirtIfStatsRxDbDesByte     Counter32,
         ospfPmVirtIfStatsRxLsReq         Counter32,
         ospfPmVirtIfStatsRxLsReqByte     Counter32,
         ospfPmVirtIfStatsRxLsUpd         Counter32,
         ospfPmVirtIfStatsRxLsUpdByte     Counter32,
         ospfPmVirtIfStatsRxLsAck         Counter32,
         ospfPmVirtIfStatsRxLsAckByte     Counter32,
         ospfPmVirtIfStatsTxFailed        Counter32,
         ospfPmVirtIfStatsTxFailedByte    Counter32,
         ospfPmVirtIfStatsTxHello         Counter32,
         ospfPmVirtIfStatsTxHelloByte     Counter32,
         ospfPmVirtIfStatsTxDbDes         Counter32,
         ospfPmVirtIfStatsTxDbDesByte     Counter32,
         ospfPmVirtIfStatsTxLsReq         Counter32,
         ospfPmVirtIfStatsTxLsReqByte     Counter32,
         ospfPmVirtIfStatsTxLsUpd         Counter32,
         ospfPmVirtIfStatsTxLsUpdByte     Counter32,
         ospfPmVirtIfStatsTxLsAck         Counter32,
         ospfPmVirtIfStatsTxLsAckByte     Counter32,
         ospfPmVirtIfStatsLength          Counter32,
         ospfPmVirtIfStatsCksum           Counter32,
         ospfPmVirtIfStatsVersion         Counter32,
         ospfPmVirtIfStatsBadSrc          Counter32,
         ospfPmVirtIfStatsAreaMismatch    Counter32,
         ospfPmVirtIfStatsSelfOrig        Counter32,
         ospfPmVirtIfStatsDupeId          Counter32,
         ospfPmVirtIfStatsHello           Counter32,
         ospfPmVirtIfStatsMtuMismatch     Counter32,
         ospfPmVirtIfStatsNbrIgnored      Counter32,
         ospfPmVirtIfStatsAuth            Counter32,
         ospfPmVirtIfStatsWrongProto      Counter32,
         ospfPmVirtIfStatsResourceErr     Counter32,
         ospfPmVirtIfStatsVirtMaIfClash   Counter32,
         ospfPmVirtIfStatsBadLsaLen       Counter32,
         ospfPmVirtIfStatsLsaBadType      Counter32,
         ospfPmVirtIfStatsLsaBadLen       Counter32,
         ospfPmVirtIfStatsLsaBadData      Counter32,
         ospfPmVirtIfStatsLsaBadCksum     Counter32,
         ospfPmVirtIfStatsUnkNbmaNbr      Counter32,
         ospfPmVirtIfStatsUnkVirtNbr      Counter32,
         ospfPmVirtIfStatsAuthMismatch    Counter32,
         ospfPmVirtIfStatsAuthFailure     Counter32,
         ospfPmVirtIfStatsNetmaskMismatch Counter32,
         ospfPmVirtIfStatsHelloMismatch   Counter32,
         ospfPmVirtIfStatsDeadMismatch    Counter32,
         ospfPmVirtIfStatsOptionsMismatch Counter32,
         ospfPmVirtIfStatsNbrAdminDown    Counter32,
         ospfPmVirtIfStatsPktLocalAddr    Counter32,
         ospfPmVirtIfStatsMaIfNotP2p      Counter32,
         ospfPmVirtIfStatsBadPacket       Counter32
       }

  ospfPmVirtIfStatsApplIndex OBJECT-TYPE
       SYNTAX       OspfPmIndex
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "Identifies the DC-OSPF entity."
       ::= { ospfPmVirtIfStatsEntry 1 }

  ospfPmVirtIfStatsAreaId OBJECT-TYPE
       SYNTAX       AreaID
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The Transit Area that the Virtual Link
          traverses.  By definition, this is not 0.0.0.0"
       ::= { ospfPmVirtIfStatsEntry 2 }

  ospfPmVirtIfStatsNeighbor OBJECT-TYPE
       SYNTAX       RouterID
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The Router ID of the Virtual Neighbor."
       ::= { ospfPmVirtIfStatsEntry 3 }

  ospfPmVirtIfStatsRxInvalid OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets with an invalid type field received
          on this interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 4 }

  ospfPmVirtIfStatsRxInvalidByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF packets with an invalid
          type field received on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 5 }

  ospfPmVirtIfStatsRxHello OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF Hello packets received on this interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 6 }

  ospfPmVirtIfStatsRxHelloByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF Hello packets on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 7 }

  ospfPmVirtIfStatsRxDbDes OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF Database Description packets received on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 8 }

  ospfPmVirtIfStatsRxDbDesByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF Database Description
          packets on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 9 }

  ospfPmVirtIfStatsRxLsReq OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Request packets received on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 10 }

  ospfPmVirtIfStatsRxLsReqByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF LS Request packets
          on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 11 }

  ospfPmVirtIfStatsRxLsUpd OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Update packets received on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 12 }

  ospfPmVirtIfStatsRxLsUpdByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF LS Update packets on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 13 }

  ospfPmVirtIfStatsRxLsAck OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Acknowledgement packets received on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 14 }

  ospfPmVirtIfStatsRxLsAckByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF LS Acknowledgement packets
          on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 15 }

  ospfPmVirtIfStatsTxFailed OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of packets that OSPF could not send on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 16 }

  ospfPmVirtIfStatsTxFailedByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in packets that OSPF could not send on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 17 }

  ospfPmVirtIfStatsTxHello OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF Hello packets sent on this interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 18 }

  ospfPmVirtIfStatsTxHelloByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF Hello packets sent on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 19 }

  ospfPmVirtIfStatsTxDbDes OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF Database Description packets sent on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 20 }

  ospfPmVirtIfStatsTxDbDesByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF Database Description packets
          sent on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 21 }

  ospfPmVirtIfStatsTxLsReq OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Request packets sent on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 22 }

  ospfPmVirtIfStatsTxLsReqByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF LS Request packets sent on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 23 }

  ospfPmVirtIfStatsTxLsUpd OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Update packets sent on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 24 }

  ospfPmVirtIfStatsTxLsUpdByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF LS Update packets sent on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 25 }

  ospfPmVirtIfStatsTxLsAck OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Acknowledgement packets sent on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 26 }

  ospfPmVirtIfStatsTxLsAckByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF LS Acknowledgement packets sent
          on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 27 }

  ospfPmVirtIfStatsLength OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header length errors detected
          on this interface.

          This count is incremented when either a received packet
          is too small to be identified or an OSPF packet header
          length field is invalid.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 28 }

  ospfPmVirtIfStatsCksum OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header checksum errors detected
          on this interface.

          This count is incremented when authentication of a
          received OSPF packet header checksum fails.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 29 }

  ospfPmVirtIfStatsVersion OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header version errors detected
          on this interface.

          This count is incremented when a received OSPF packet
          header Version field is invalid.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 30 }

  ospfPmVirtIfStatsBadSrc OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'bad source' errors detected
          on this interface.

          This count is incremented when the source IP address of a
          received OSPF packet is either invalid or not recognized.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 31 }

  ospfPmVirtIfStatsAreaMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'area mismatch' errors
          detected on this interface.

          This count is incremented when the area id in a received
          OSPF packet header does not match that of the receiving
          OSPF interface.

          The count is included here only for consistency with other
          interface types and is always returned as zero."
       ::= { ospfPmVirtIfStatsEntry 32 }

  ospfPmVirtIfStatsSelfOrig OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'self-originated' errors
          detected on this interface.

          This count is incremented when the source IP address of
          a received OSPF packet is a local IP address.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 33 }

  ospfPmVirtIfStatsDupeId OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'duplicate id' errors
          detected on this interface.

          This count is incremented when the route id in a received OSPF
          packet header matches the local router id.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 34 }

  ospfPmVirtIfStatsHello OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'Hello' errors detected
          on this interface.

          This count is incremented when a received OSPF HEllO
          packet fails verification.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 35 }

  ospfPmVirtIfStatsMtuMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'MTU mismatch' errors
          detected on this interface.

          This count is incremented when a received OSPF Database
          Description packet has an MTU field that does not match
          local configuration.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 36 }

  ospfPmVirtIfStatsNbrIgnored OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'neighbor ignored' errors
          detected on this interface.

          This count is incremented when a received OSPF Hello packet
          is ignored based on the identity of the sending neighbor.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 37 }

  ospfPmVirtIfStatsAuth OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header authentication errors
          detected on this interface.

          This count is incremented when a received OSPF packet
          fails authentication checks.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 38 }

  ospfPmVirtIfStatsWrongProto OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'wrong protocol' errors
          detected on this interface.

          This count is incremented when the IP protocol field in a
          received OSPF packet is not set to OSPF.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 39 }

  ospfPmVirtIfStatsResourceErr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header resource errors detected
          on this interface.

          This count is incremented when a received OSPF packet is
          dropped because of resource failure.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 40 }

  ospfPmVirtIfStatsVirtMaIfClash OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'virtual interface clash with
          multi-area interface' errors detected on this interface.

          This count is incremented when a received packet is dropped
          because local misconfiguration means that a virtual interface
          and a multi-area interface cannot be distinguished.

          The count is included here only for consistency with other
          interface types and is always returned as zero."
       ::= { ospfPmVirtIfStatsEntry 41 }

  ospfPmVirtIfStatsBadLsaLen OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Update packets received on this interface
          that were discarded because of a bad LSA length.

          This count is incremented when a received OSPF packet is
          dropped because it cannot be parsed because it contains an
          LSA with a bad length field.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 42 }

  ospfPmVirtIfStatsLsaBadType OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LSAs received on this interface that were
          ignored because of a bad LSA type.

          This count is incremented when a received LSA is ignored
          because it has an invalid LSA type field.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 43 }

  ospfPmVirtIfStatsLsaBadLen OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LSAs received on this interface that were
          ignored because of a bad LSA length.

          This count is incremented when a received LSA is ignored
          because it has an invalid LSA length field.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 44 }

  ospfPmVirtIfStatsLsaBadData OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LSAs received on this interface that were
          ignored because of bad LSA data.

          This count is incremented when a received LSA is ignored
          because it contains invalid data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 45 }

  ospfPmVirtIfStatsLsaBadCksum OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LSAs received on this interface that were
          ignored because of a bad LSA checksum value.

          This count is incremented when a received LSA is ignored
          because the LSA header checksum fails validation.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmVirtIfStatsEntry 46 }

  ospfPmVirtIfStatsUnkNbmaNbr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because they came from an unknown NBMA
           neighbor.

           This count is incremented when a received Hello packet is
           dropped because it comes from an unknown neighbor on an
           NBMA network.

           The count is reinitialized to zero when interface statistics
           collection is reset.

           This field always returns zero, because a virtual
           interface cannot receive a Hello packet from an unknown
           NBMA neighbor.  It is included for consistency with other
           MIB tables."
       ::= { ospfPmVirtIfStatsEntry 47 }

  ospfPmVirtIfStatsUnkVirtNbr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because they came from an unknown
           virtual neighbor.

           This count is incremented when a received Hello packet is
           dropped because it comes from an unknown virtual neighbor.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmVirtIfStatsEntry 48 }

  ospfPmVirtIfStatsAuthMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets received on this interface that
           were dropped because of a bad authentication type.

           This count is incremented when a received OSPF packet is
           dropped because its authentication type does not match
           that configured in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmVirtIfStatsAuth is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmVirtIfStatsEntry 49 }

  ospfPmVirtIfStatsAuthFailure OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets received on this interface that
           were dropped because packet authentication failed.

           This count is incremented when a received OSPF packet is
           dropped because authentication failed.

           When a packet is dropped for this reason, the count of
           ospfPmVirtIfStatsAuth is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmVirtIfStatsEntry 50 }

  ospfPmVirtIfStatsNetmaskMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because of a bad netmask.

           This count is incremented when a received Hello packet is
           dropped because its netmask does not match that configured
           in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmVirtIfStatsHello is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmVirtIfStatsEntry 51 }

  ospfPmVirtIfStatsHelloMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because of a bad Hello Interval.

           This count is incremented when a received Hello packet is
           dropped because its Hello Interval does not match that
           configured in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmVirtIfStatsHello is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmVirtIfStatsEntry 52 }

  ospfPmVirtIfStatsDeadMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because of a bad Router Dead Interval.

           This count is incremented when a received Hello packet is
           dropped because its Router Dead Interval does not match
           that configured in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmVirtIfStatsHello is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmVirtIfStatsEntry 53 }

  ospfPmVirtIfStatsOptionsMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because of bad Optional Capabilities.

           This count is incremented when a received Hello packet is
           dropped because its Optional Capabilities does not match
           the capabilities configured in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmVirtIfStatsHello is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmVirtIfStatsEntry 54 }

  ospfPmVirtIfStatsNbrAdminDown OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because the sending neighbor is Oper
           State Down.

           This count is incremented when a received Hello packet is
           dropped because the sending neighbor is Oper State Down.

           The count is reinitialized to zero when interface statistics
           collection is reset.

           This field always returns zero, because a virtual
           interface cannot receive a Hello packet from a neighbor
           that is Oper State Down.  It is included for consistency
           with other MIB tables."
       ::= { ospfPmVirtIfStatsEntry 55 }

  ospfPmVirtIfStatsPktLocalAddr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because they appear to come from the
           local router.

           This count is incremented when a received Hello packet is
           dropped because it comes from the local router, or from
           someone pretending to be the local router.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmVirtIfStatsEntry 56 }

  ospfPmVirtIfStatsMaIfNotP2p OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because they were received on a
           multi-area interface that is not point-to-point.

           This count is incremented when a received Hello packet is
           dropped because this interface is a multi-area interface
           that is not point-to-point.

           The count is reinitialized to zero when interface statistics
           collection is reset.

           This field always returns zero, because this table is used
           to return statistics information for interfaces that are
           not multi-area interfaces.  It is included for consistency
           with other MIB tables."
       ::= { ospfPmVirtIfStatsEntry 57 }

  ospfPmVirtIfStatsBadPacket OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets received that have been
           dropped, for a reason which does not have a more specific
           type defined in the DC-OSPF user exit interface.

           This count is incremented when a received OSPF packet is
           dropped for a reason that is not defined in the DC-OSPF
           user exit interface.

           When this count is incremented, another count in this row
           will also be incremented depending on the reason why the
           packet was dropped.  The count in this field should not be
           included when determining the total number of OSPF packets
           that have been dropped.

           The count is reinitialized to zero when interface
           statistics collection is reset."
       ::= { ospfPmVirtIfStatsEntry 58 }

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

-- The OSPF Sham Link Statistics Table

--      The OSPF Sham Link Statistics Table augments the
--      ospfPmShamLinkTable with OSPF specific statistics information.

ospfPmShamLinkStatsTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_sham_stats
       SYNTAX      SEQUENCE OF OspfPmShamLinkStatsEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The OSPF Sham Link Statistics Table is a read-only table
          including per-OSPF interface counters.  This table is
          DC-OSPF implementation specific."
       ::= { ospfObjects 34 }

  ospfPmShamLinkStatsEntry OBJECT-TYPE
       SYNTAX      OspfPmShamLinkStatsEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The OSPF Sham Link Statistics Entry containing statistics
          for one sham link from the viewpoint of OSPF.

          This entry is DC-OSPF implementation specific."
       INDEX {
          ospfPmShamLinkStatsApplIndex,
          ospfPmShamLinkStatsAreaId,
          ospfPmShamLinkStatsLocalIpAddr,
          ospfPmShamLinkStatsRemoteIpAddr
          }
       ::= { ospfPmShamLinkStatsTable 1 }

  OspfPmShamLinkStatsEntry ::= SEQUENCE {
         ospfPmShamLinkStatsApplIndex       OspfPmIndex,
         ospfPmShamLinkStatsAreaId          AreaID,
         ospfPmShamLinkStatsLocalIpAddr     IpAddress,
         ospfPmShamLinkStatsRemoteIpAddr    IpAddress,
         ospfPmShamLinkStatsRxInvalid       Counter32,
         ospfPmShamLinkStatsRxInvalidByte   Counter32,
         ospfPmShamLinkStatsRxHello         Counter32,
         ospfPmShamLinkStatsRxHelloByte     Counter32,
         ospfPmShamLinkStatsRxDbDes         Counter32,
         ospfPmShamLinkStatsRxDbDesByte     Counter32,
         ospfPmShamLinkStatsRxLsReq         Counter32,
         ospfPmShamLinkStatsRxLsReqByte     Counter32,
         ospfPmShamLinkStatsRxLsUpd         Counter32,
         ospfPmShamLinkStatsRxLsUpdByte     Counter32,
         ospfPmShamLinkStatsRxLsAck         Counter32,
         ospfPmShamLinkStatsRxLsAckByte     Counter32,
         ospfPmShamLinkStatsTxFailed        Counter32,
         ospfPmShamLinkStatsTxFailedByte    Counter32,
         ospfPmShamLinkStatsTxHello         Counter32,
         ospfPmShamLinkStatsTxHelloByte     Counter32,
         ospfPmShamLinkStatsTxDbDes         Counter32,
         ospfPmShamLinkStatsTxDbDesByte     Counter32,
         ospfPmShamLinkStatsTxLsReq         Counter32,
         ospfPmShamLinkStatsTxLsReqByte     Counter32,
         ospfPmShamLinkStatsTxLsUpd         Counter32,
         ospfPmShamLinkStatsTxLsUpdByte     Counter32,
         ospfPmShamLinkStatsTxLsAck         Counter32,
         ospfPmShamLinkStatsTxLsAckByte     Counter32,
         ospfPmShamLinkStatsLength          Counter32,
         ospfPmShamLinkStatsCksum           Counter32,
         ospfPmShamLinkStatsVersion         Counter32,
         ospfPmShamLinkStatsBadSrc          Counter32,
         ospfPmShamLinkStatsAreaMismatch    Counter32,
         ospfPmShamLinkStatsSelfOrig        Counter32,
         ospfPmShamLinkStatsDupeId          Counter32,
         ospfPmShamLinkStatsHello           Counter32,
         ospfPmShamLinkStatsMtuMismatch     Counter32,
         ospfPmShamLinkStatsNbrIgnored      Counter32,
         ospfPmShamLinkStatsAuth            Counter32,
         ospfPmShamLinkStatsWrongProto      Counter32,
         ospfPmShamLinkStatsResourceErr     Counter32,
         ospfPmShamLinkStatsVirtMaIfClash   Counter32,
         ospfPmShamLinkStatsBadLsaLen       Counter32,
         ospfPmShamLinkStatsLsaBadType      Counter32,
         ospfPmShamLinkStatsLsaBadLen       Counter32,
         ospfPmShamLinkStatsLsaBadData      Counter32,
         ospfPmShamLinkStatsLsaBadCksum     Counter32,
         ospfPmShamLinkStatsUnkNbmaNbr      Counter32,
         ospfPmShamLinkStatsUnkVirtNbr      Counter32,
         ospfPmShamLinkStatsAuthMismatch    Counter32,
         ospfPmShamLinkStatsAuthFailure     Counter32,
         ospfPmShamLinkStatsNetmaskMsmtch   Counter32,
         ospfPmShamLinkStatsHelloMismatch   Counter32,
         ospfPmShamLinkStatsDeadMismatch    Counter32,
         ospfPmShamLinkStatsOptionsMsmtch   Counter32,
         ospfPmShamLinkStatsNbrAdminDown    Counter32,
         ospfPmShamLinkStatsPktLocalAddr    Counter32,
         ospfPmShamLinkStatsMaIfNotP2p      Counter32,
         ospfPmShamLinkStatsBadPacket       Counter32
       }

  ospfPmShamLinkStatsApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "Identifies this OSPF entity."
        ::= { ospfPmShamLinkStatsEntry 1 }

  ospfPmShamLinkStatsAreaId OBJECT-TYPE
        SYNTAX       AreaID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The OSPF area in which the sham link belongs."
        ::= { ospfPmShamLinkStatsEntry 2 }

  ospfPmShamLinkStatsLocalIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The local sham link endpoint address."
        ::= { ospfPmShamLinkStatsEntry 3 }

  ospfPmShamLinkStatsRemoteIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The remote sham link endpoint address."
        ::= { ospfPmShamLinkStatsEntry 4 }

  ospfPmShamLinkStatsRxInvalid OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets with an invalid type field received
          on this interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 5 }

  ospfPmShamLinkStatsRxInvalidByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF packets with an invalid
          type field received on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 6 }

  ospfPmShamLinkStatsRxHello OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF Hello packets received on this interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 7 }

  ospfPmShamLinkStatsRxHelloByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF Hello packets on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 8 }

  ospfPmShamLinkStatsRxDbDes OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF Database Description packets received on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 9 }

  ospfPmShamLinkStatsRxDbDesByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF Database Description
          packets on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 10 }

  ospfPmShamLinkStatsRxLsReq OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Request packets received on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 11 }

  ospfPmShamLinkStatsRxLsReqByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF LS Request packets
          on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 12 }

  ospfPmShamLinkStatsRxLsUpd OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Update packets received on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 13 }

  ospfPmShamLinkStatsRxLsUpdByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF LS Update packets on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 14 }

  ospfPmShamLinkStatsRxLsAck OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Acknowledgement packets received on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 15 }

  ospfPmShamLinkStatsRxLsAckByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF LS Acknowledgement packets
          on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 16 }

  ospfPmShamLinkStatsTxFailed OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of packets that OSPF could not send on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 17 }

  ospfPmShamLinkStatsTxFailedByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in packets that OSPF could not send on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 18 }

  ospfPmShamLinkStatsTxHello OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF Hello packets sent on this interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 19 }

  ospfPmShamLinkStatsTxHelloByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF Hello packets sent on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 20 }

  ospfPmShamLinkStatsTxDbDes OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF Database Description packets sent on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 21 }

  ospfPmShamLinkStatsTxDbDesByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF Database Description packets
          sent on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 22 }

  ospfPmShamLinkStatsTxLsReq OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Request packets sent on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 23 }

  ospfPmShamLinkStatsTxLsReqByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF LS Request packets sent on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 24 }

  ospfPmShamLinkStatsTxLsUpd OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Update packets sent on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 25 }

  ospfPmShamLinkStatsTxLsUpdByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF LS Update packets sent on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 26 }

  ospfPmShamLinkStatsTxLsAck OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Acknowledgement packets sent on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 27 }

  ospfPmShamLinkStatsTxLsAckByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF LS Acknowledgement packets sent
          on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 28 }

  ospfPmShamLinkStatsLength OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header length errors detected
          on this interface.

          This count is incremented when either a received packet
          is too small to be identified or an OSPF packet header
          length field is invalid.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 29 }

  ospfPmShamLinkStatsCksum OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header checksum errors detected
          on this interface.

          This count is incremented when authentication of a
          received OSPF packet header checksum fails.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 30 }

  ospfPmShamLinkStatsVersion OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header version errors detected
          on this interface.

          This count is incremented when a received OSPF packet
          header Version field is invalid.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 31 }

  ospfPmShamLinkStatsBadSrc OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'bad source' errors detected
          on this interface.

          This count is incremented when the source IP address of a
          received OSPF packet is either invalid or not recognized.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 32 }

  ospfPmShamLinkStatsAreaMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'area mismatch' errors
          detected on this interface.

          This count is incremented when the area id in a received
          OSPF packet header does not match that of the receiving
          OSPF interface.

          The count is included here only for consistency with other
          interface types and is always returned as zero."
       ::= { ospfPmShamLinkStatsEntry 33 }

  ospfPmShamLinkStatsSelfOrig OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'self-originated' errors
          detected on this interface.

          This count is incremented when the source IP address of
          a received OSPF packet is a local IP address.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 34 }

  ospfPmShamLinkStatsDupeId OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'duplicate id' errors
          detected on this interface.

          This count is incremented when the route id in a received OSPF
          packet header matches the local router id.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 35 }

  ospfPmShamLinkStatsHello OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'Hello' errors detected
          on this interface.

          This count is incremented when a received OSPF HEllO
          packet fails verification.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 36 }

  ospfPmShamLinkStatsMtuMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'MTU mismatch' errors
          detected on this interface.

          This count is incremented when a received OSPF Database
          Description packet has an MTU field that does not match
          local configuration.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 37 }

  ospfPmShamLinkStatsNbrIgnored OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'neighbor ignored' errors
          detected on this interface.

          This count is incremented when a received OSPF Hello packet
          is ignored based on the identity of the sending neighbor.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 38 }

  ospfPmShamLinkStatsAuth OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header authentication errors detected
          on this interface.

          This count is incremented when a received OSPF packet
          fails authentication checks.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 39 }

  ospfPmShamLinkStatsWrongProto OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'wrong protocol' errors
          detected on this interface.

          This count is incremented when the IP protocol field in a
          received OSPF packet is not set to OSPF.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 40 }

  ospfPmShamLinkStatsResourceErr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header resource errors detected
          on this interface.

          This count is incremented when a received OSPF packet is
          dropped because of resource failure.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 41 }

  ospfPmShamLinkStatsVirtMaIfClash OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'virtual interface clash with
          multi-area interface' errors detected on this interface.

          This count is incremented when a received packet is dropped
          because local misconfiguration means that a virtual interface
          and a multi-area interface cannot be distinguished.

          The count is included here only for consistency with other
          interface types and is always returned as zero."
       ::= { ospfPmShamLinkStatsEntry 42 }

  ospfPmShamLinkStatsBadLsaLen OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Update packets received on this interface
          that were discarded because of a bad LSA length.

          This count is incremented when a received OSPF packet is
          dropped because it cannot be parsed because it contains an
          LSA with a bad length field.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 43 }

  ospfPmShamLinkStatsLsaBadType OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LSAs received on this interface that were
          ignored because of a bad LSA type.

          This count is incremented when a received LSA is ignored
          because it has an invalid LSA type field.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 44 }

  ospfPmShamLinkStatsLsaBadLen OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LSAs received on this interface that were
          ignored because of a bad LSA length.

          This count is incremented when a received LSA is ignored
          because it has an invalid LSA length field.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 45 }

  ospfPmShamLinkStatsLsaBadData OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LSAs received on this interface that were
          ignored because of bad LSA data.

          This count is incremented when a received LSA is ignored
          because it contains invalid data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 46 }

  ospfPmShamLinkStatsLsaBadCksum OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LSAs received on this interface that were
          ignored because of a bad LSA checksum value.

          This count is incremented when a received LSA is ignored
          because the LSA header checksum fails validation.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmShamLinkStatsEntry 47 }

  ospfPmShamLinkStatsUnkNbmaNbr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because they came from an unknown NBMA
           neighbor.

           This count is incremented when a received Hello packet is
           dropped because it comes from an unknown neighbor on an
           NBMA network.

           The count is reinitialized to zero when interface statistics
           collection is reset.

           This field always returns zero, because a sham link
           cannot receive a Hello packet from an unknown NBMA
           neighbor.  It is included for consistency with other
           MIB tables."
       ::= { ospfPmShamLinkStatsEntry 48 }

  ospfPmShamLinkStatsUnkVirtNbr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because they came from an unknown
           virtual neighbor.

           This count is incremented when a received Hello packet is
           dropped because it comes from an unknown virtual neighbor.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmShamLinkStatsEntry 49 }

  ospfPmShamLinkStatsAuthMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets received on this interface that
           were dropped because of a bad authentication type.

           This count is incremented when a received OSPF packet is
           dropped because its authentication type does not match
           that configured in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmShamLinkStatsAuth is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmShamLinkStatsEntry 50 }

  ospfPmShamLinkStatsAuthFailure OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets received on this interface that
           were dropped because packet authentication failed.

           This count is incremented when a received OSPF packet is
           dropped because authentication failed.

           When a packet is dropped for this reason, the count of
           ospfPmShamLinkStatsAuth is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmShamLinkStatsEntry 51 }

  ospfPmShamLinkStatsNetmaskMsmtch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because of a bad netmask.

           This count is incremented when a received Hello packet is
           dropped because its netmask does not match that configured
           in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmShamLinkStatsHello is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmShamLinkStatsEntry 52 }

  ospfPmShamLinkStatsHelloMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because of a bad Hello Interval.

           This count is incremented when a received Hello packet is
           dropped because its Hello Interval does not match that
           configured in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmShamLinkStatsHello is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmShamLinkStatsEntry 53 }

  ospfPmShamLinkStatsDeadMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because of a bad Router Dead Interval.

           This count is incremented when a received Hello packet is
           dropped because its Router Dead Interval does not match
           that configured in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmShamLinkStatsHello is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmShamLinkStatsEntry 54 }

  ospfPmShamLinkStatsOptionsMsmtch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because of bad Optional Capabilities.

           This count is incremented when a received Hello packet is
           dropped because its Optional Capabilities does not match
           the capabilities configured in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmShamLinkStatsHello is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmShamLinkStatsEntry 55 }

  ospfPmShamLinkStatsNbrAdminDown OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because the sending neighbor is Oper
           State Down.

           This count is incremented when a received Hello packet is
           dropped because the sending neighbor is Oper State Down.

           The count is reinitialized to zero when interface statistics
           collection is reset.

           This field always returns zero, because a sham link
           cannot receive a Hello packet from a neighbor that is
           Oper State Down.  It is included for consistency with
           other MIB tables."
       ::= { ospfPmShamLinkStatsEntry 56 }

  ospfPmShamLinkStatsPktLocalAddr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because they appear to come from the
           local router.

           This count is incremented when a received Hello packet is
           dropped because it comes from the local router, or from
           someone pretending to be the local router.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmShamLinkStatsEntry 57 }

  ospfPmShamLinkStatsMaIfNotP2p OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because they were received on a
           multi-area interface that is not point-to-point.

           This count is incremented when a received Hello packet is
           dropped because this interface is a multi-area interface
           that is not point-to-point.

           The count is reinitialized to zero when interface statistics
           collection is reset.

           This field always returns zero, because this table is used
           to return statistics information for interfaces that are
           not multi-area interfaces.  It is included for consistency
           with other MIB tables."
       ::= { ospfPmShamLinkStatsEntry 58 }

  ospfPmShamLinkStatsBadPacket OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets received that have been
           dropped, for a reason which does not have a more specific
           type defined in the DC-OSPF user exit interface.

           This count is incremented when a received OSPF packet is
           dropped for a reason that is not defined in the DC-OSPF
           user exit interface.

           When this count is incremented, another count in this row
           will also be incremented depending on the reason why the
           packet was dropped.  The count in this field should not be
           included when determining the total number of OSPF packets
           that have been dropped.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmShamLinkStatsEntry 59 }

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

-- The OSPF Multi-Area Interface Statistics Table

--      The OSPF Multi-Area Interface Statistics Table augments the
--      ospfPmMultiAreaIfTable with OSPF specific statistics information.

ospfPmMaIfStatsTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qopm_ma_if_stats
       SYNTAX      SEQUENCE OF OspfPmMaIfStatsEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The OSPF Multi-Area Interface Statistics Table is a read-only
          table including per-OSPF interface counters.  This table is
          DC-OSPF implementation specific."
       ::= { ospfObjects 35 }

  ospfPmMaIfStatsEntry OBJECT-TYPE
       SYNTAX      OspfPmMaIfStatsEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The OSPF Multi-Area Interface Statistics Entry containing
          statistics for one multi-area interface from the viewpoint of
          OSPF.

          This entry is DC-OSPF implementation specific."
       INDEX {
          ospfPmMaIfStatsApplIndex,
          ospfPmMaIfStatsIpAddress,
          ospfPmMaIfStatsAddressLessIf,
          ospfPmMaIfStatsAreaId,
          ospfPmMaIfStatsRemoteAddr
          }
       ::= { ospfPmMaIfStatsTable 1 }

  OspfPmMaIfStatsEntry ::= SEQUENCE {
         ospfPmMaIfStatsApplIndex          OspfPmIndex,
         ospfPmMaIfStatsIpAddress          IpAddress,
         ospfPmMaIfStatsAddressLessIf      InterfaceIndexOrZero,
         ospfPmMaIfStatsAreaId             AreaID,
         ospfPmMaIfStatsRemoteAddr         IpAddress,
         ospfPmMaIfStatsRxInvalid          Counter32,
         ospfPmMaIfStatsRxInvalidByte      Counter32,
         ospfPmMaIfStatsRxHello            Counter32,
         ospfPmMaIfStatsRxHelloByte        Counter32,
         ospfPmMaIfStatsRxDbDes            Counter32,
         ospfPmMaIfStatsRxDbDesByte        Counter32,
         ospfPmMaIfStatsRxLsReq            Counter32,
         ospfPmMaIfStatsRxLsReqByte        Counter32,
         ospfPmMaIfStatsRxLsUpd            Counter32,
         ospfPmMaIfStatsRxLsUpdByte        Counter32,
         ospfPmMaIfStatsRxLsAck            Counter32,
         ospfPmMaIfStatsRxLsAckByte        Counter32,
         ospfPmMaIfStatsTxFailed           Counter32,
         ospfPmMaIfStatsTxFailedByte       Counter32,
         ospfPmMaIfStatsTxHello            Counter32,
         ospfPmMaIfStatsTxHelloByte        Counter32,
         ospfPmMaIfStatsTxDbDes            Counter32,
         ospfPmMaIfStatsTxDbDesByte        Counter32,
         ospfPmMaIfStatsTxLsReq            Counter32,
         ospfPmMaIfStatsTxLsReqByte        Counter32,
         ospfPmMaIfStatsTxLsUpd            Counter32,
         ospfPmMaIfStatsTxLsUpdByte        Counter32,
         ospfPmMaIfStatsTxLsAck            Counter32,
         ospfPmMaIfStatsTxLsAckByte        Counter32,
         ospfPmMaIfStatsLength             Counter32,
         ospfPmMaIfStatsCksum              Counter32,
         ospfPmMaIfStatsVersion            Counter32,
         ospfPmMaIfStatsBadSrc             Counter32,
         ospfPmMaIfStatsAreaMismatch       Counter32,
         ospfPmMaIfStatsSelfOrig           Counter32,
         ospfPmMaIfStatsDupeId             Counter32,
         ospfPmMaIfStatsHello              Counter32,
         ospfPmMaIfStatsMtuMismatch        Counter32,
         ospfPmMaIfStatsNbrIgnored         Counter32,
         ospfPmMaIfStatsAuth               Counter32,
         ospfPmMaIfStatsWrongProto         Counter32,
         ospfPmMaIfStatsResourceErr        Counter32,
         ospfPmMaIfStatsVirtMaIfClash      Counter32,
         ospfPmMaIfStatsBadLsaLen          Counter32,
         ospfPmMaIfStatsLsaBadType         Counter32,
         ospfPmMaIfStatsLsaBadLen          Counter32,
         ospfPmMaIfStatsLsaBadData         Counter32,
         ospfPmMaIfStatsLsaBadCksum        Counter32,
         ospfPmMaIfStatsUnkNbmaNbr         Counter32,
         ospfPmMaIfStatsUnkVirtNbr         Counter32,
         ospfPmMaIfStatsAuthMismatch       Counter32,
         ospfPmMaIfStatsAuthFailure        Counter32,
         ospfPmMaIfStatsNetmaskMismatch    Counter32,
         ospfPmMaIfStatsHelloMismatch      Counter32,
         ospfPmMaIfStatsDeadMismatch       Counter32,
         ospfPmMaIfStatsOptionsMismatch    Counter32,
         ospfPmMaIfStatsNbrAdminDown       Counter32,
         ospfPmMaIfStatsPktLocalAddr       Counter32,
         ospfPmMaIfStatsMaIfNotP2p         Counter32,
         ospfPmMaIfStatsBadPacket          Counter32
       }

  ospfPmMaIfStatsApplIndex OBJECT-TYPE
        SYNTAX       OspfPmIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "Identifies the DC-OSPF entity."
        ::= { ospfPmMaIfStatsEntry 1 }

  ospfPmMaIfStatsIpAddress OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The IP address of the primary OSPF interface that this
           multi-area interface relates to."
        ::= { ospfPmMaIfStatsEntry 2 }

  ospfPmMaIfStatsAddressLessIf OBJECT-TYPE
        SYNTAX       InterfaceIndexOrZero
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "For the purpose of easing the instancing of addressed and
           address less interfaces; This variable takes the value 0
           when the related primary interface has an IP Address,
           otherwise it takes the related primary interface's
           non-zero interface index value, unique within the scope of
           this router."
        ::= { ospfPmMaIfStatsEntry 3 }

  ospfPmMaIfStatsAreaId OBJECT-TYPE
        SYNTAX       AreaID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "A 32-bit integer uniquely identifying the area to which
           this multi-area interface connects.  Area ID 0.0.0.0 is
           used for the OSPF backbone."
        ::= { ospfPmMaIfStatsEntry 4 }

  ospfPmMaIfStatsRemoteAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
          "The IP address to which packets for this multi-area
           interface should be sent."
        ::= { ospfPmMaIfStatsEntry 5 }

  ospfPmMaIfStatsRxInvalid OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets with an invalid type field received
          on this interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 6 }

  ospfPmMaIfStatsRxInvalidByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF packets with an invalid
          type field received on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 7 }

  ospfPmMaIfStatsRxHello OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF Hello packets received on this interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 8 }

  ospfPmMaIfStatsRxHelloByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF Hello packets on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 9 }

  ospfPmMaIfStatsRxDbDes OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF Database Description packets received on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 10 }

  ospfPmMaIfStatsRxDbDesByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF Database Description
          packets on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 11 }

  ospfPmMaIfStatsRxLsReq OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Request packets received on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 12 }

  ospfPmMaIfStatsRxLsReqByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF LS Request packets
          on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 13 }

  ospfPmMaIfStatsRxLsUpd OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Update packets received on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 14 }

  ospfPmMaIfStatsRxLsUpdByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF LS Update packets on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 15 }

  ospfPmMaIfStatsRxLsAck OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Acknowledgement packets received on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 16 }

  ospfPmMaIfStatsRxLsAckByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes received in OSPF LS Acknowledgement packets
          on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 17 }

  ospfPmMaIfStatsTxFailed OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of packets that OSPF could not send on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 18 }

  ospfPmMaIfStatsTxFailedByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in packets that OSPF could not send on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 19 }

  ospfPmMaIfStatsTxHello OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF Hello packets sent on this interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 20 }

  ospfPmMaIfStatsTxHelloByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF Hello packets sent on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 21 }

  ospfPmMaIfStatsTxDbDes OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF Database Description packets sent on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 22 }

  ospfPmMaIfStatsTxDbDesByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF Database Description packets
          sent on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 23 }

  ospfPmMaIfStatsTxLsReq OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Request packets sent on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 24 }

  ospfPmMaIfStatsTxLsReqByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF LS Request packets sent on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 25 }

  ospfPmMaIfStatsTxLsUpd OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Update packets sent on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 26 }

  ospfPmMaIfStatsTxLsUpdByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF LS Update packets sent on this
          interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 27 }

  ospfPmMaIfStatsTxLsAck OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Acknowledgement packets sent on this
          interface.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 28 }

  ospfPmMaIfStatsTxLsAckByte OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of bytes in OSPF LS Acknowledgement packets sent
          on this interface.

          This count includes the IP header and any authentication data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 29 }

  ospfPmMaIfStatsLength OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header length errors detected
          on this interface.

          This count is incremented when either a received packet
          is too small to be identified or an OSPF packet header
          length field is invalid.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 30 }

  ospfPmMaIfStatsCksum OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header checksum errors detected
          on this interface.

          This count is incremented when authentication of a
          received OSPF packet header checksum fails.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 31 }

  ospfPmMaIfStatsVersion OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header version errors detected
          on this interface.

          This count is incremented when a received OSPF packet
          header Version field is invalid.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 32 }

  ospfPmMaIfStatsBadSrc OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'bad source' errors detected
          on this interface.

          This count is incremented when the source IP address of a
          received OSPF packet is either invalid or not recognized.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 33 }

  ospfPmMaIfStatsAreaMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'area mismatch' errors
          detected on this interface.

          This count is incremented when the area id in a received
          OSPF packet header does not match that of the receiving
          OSPF interface.

          The count is included here only for consistency with other
          interface types and is always returned as zero."
       ::= { ospfPmMaIfStatsEntry 34 }

  ospfPmMaIfStatsSelfOrig OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'self-originated' errors
          detected on this interface.

          This count is incremented when the source IP address of
          a received OSPF packet is a local IP address.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 35 }

  ospfPmMaIfStatsDupeId OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'duplicate id' errors
          detected on this interface.

          This count is incremented when the route id in a received OSPF
          packet header matches the local router id.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 36 }

  ospfPmMaIfStatsHello OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'Hello' errors detected
          on this interface.

          This count is incremented when a received OSPF HEllO
          packet fails verification.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 37 }

  ospfPmMaIfStatsMtuMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'MTU mismatch' errors
          detected on this interface.

          This count is incremented when a received OSPF Database
          Description packet has an MTU field that does not match
          local configuration.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 38 }

  ospfPmMaIfStatsNbrIgnored OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'neighbor ignored' errors
          detected on this interface.

          This count is incremented when a received OSPF Hello packet
          is ignored based on the identity of the sending neighbor.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 39 }

  ospfPmMaIfStatsAuth OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header authentication errors detected
          on this interface.

          This count is incremented when a received OSPF packet
          fails authentication checks.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 40 }

  ospfPmMaIfStatsWrongProto OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'wrong protocol' errors
          detected on this interface.

          This count is incremented when the IP protocol field in a
          received OSPF packet is not set to OSPF.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 41 }

  ospfPmMaIfStatsResourceErr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header resource errors detected
          on this interface.

          This count is incremented when a received OSPF packet is
          dropped because of resource failure.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 42 }

  ospfPmMaIfStatsVirtMaIfClash OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'virtual interface clash with
          multi-area interface' errors detected on this interface.

          This count is incremented when a received packet is dropped
          because local misconfiguration means that a virtual interface
          and a multi-area interface cannot be distinguished.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 43 }

  ospfPmMaIfStatsBadLsaLen OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LS Update packets received on this interface
          that were discarded because of a bad LSA length.

          This count is incremented when a received OSPF packet is
          dropped because it cannot be parsed because it contains an
          LSA with a bad length field.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 44 }

  ospfPmMaIfStatsLsaBadType OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LSAs received on this interface that were
          ignored because of a bad LSA type.

          This count is incremented when a received LSA is ignored
          because it has an invalid LSA type field.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 45 }

  ospfPmMaIfStatsLsaBadLen OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LSAs received on this interface that were
          ignored because of a bad LSA length.

          This count is incremented when a received LSA is ignored
          because it has an invalid LSA length field.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 46 }

  ospfPmMaIfStatsLsaBadData OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LSAs received on this interface that were
          ignored because of bad LSA data.

          This count is incremented when a received LSA is ignored
          because it contains invalid data.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 47 }

  ospfPmMaIfStatsLsaBadCksum OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF LSAs received on this interface that were
          ignored because of a bad LSA checksum value.

          This count is incremented when a received LSA is ignored
          because the LSA header checksum fails validation.

          The count is reinitialized to zero when interface statistics
          collection is reset."
       ::= { ospfPmMaIfStatsEntry 48 }

  ospfPmMaIfStatsUnkNbmaNbr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because they came from an unknown NBMA
           neighbor.

           This count is incremented when a received Hello packet is
           dropped because it comes from an unknown neighbor on an
           NBMA network.

           The count is reinitialized to zero when interface statistics
           collection is reset.

           This field always returns zero, because a multi-access
           interface cannot discover a new neighbor over an
           underlying NBMA link.  It is included for consistency with
           other MIB tables."
       ::= { ospfPmMaIfStatsEntry 49 }

  ospfPmMaIfStatsUnkVirtNbr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because they came from an unknown
           virtual neighbor.

           This count is incremented when a received Hello packet is
           dropped because it comes from an unknown virtual neighbor.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmMaIfStatsEntry 50 }

  ospfPmMaIfStatsAuthMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets received on this interface that
           were dropped because of a bad authentication type.

           This count is incremented when a received OSPF packet is
           dropped because its authentication type does not match
           that configured in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmMaIfStatsAuth is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmMaIfStatsEntry 51 }

  ospfPmMaIfStatsAuthFailure OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets received on this interface that
           were dropped because packet authentication failed.

           This count is incremented when a received OSPF packet is
           dropped because authentication failed.

           When a packet is dropped for this reason, the count of
           ospfPmMaIfStatsAuth is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmMaIfStatsEntry 52 }

  ospfPmMaIfStatsNetmaskMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because of a bad netmask.

           This count is incremented when a received Hello packet is
           dropped because its netmask does not match that configured
           in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmMaIfStatsHello is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmMaIfStatsEntry 53 }

  ospfPmMaIfStatsHelloMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because of a bad Hello Interval.

           This count is incremented when a received Hello packet is
           dropped because its Hello Interval does not match that
           configured in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmMaIfStatsHello is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmMaIfStatsEntry 54 }

  ospfPmMaIfStatsDeadMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because of a bad Router Dead Interval.

           This count is incremented when a received Hello packet is
           dropped because its Router Dead Interval does not match
           that configured in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmMaIfStatsHello is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmMaIfStatsEntry 55 }

  ospfPmMaIfStatsOptionsMismatch OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because of bad Optional Capabilities.

           This count is incremented when a received Hello packet is
           dropped because its Optional Capabilities does not match
           the capabilities configured in the receiving interface.

           When a packet is dropped for this reason, the count of
           ospfPmMaIfStatsHello is also incremented.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmMaIfStatsEntry 56 }

  ospfPmMaIfStatsNbrAdminDown OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because the sending neighbor is Oper
           State Down.

           This count is incremented when a received Hello packet is
           dropped because the sending neighbor is Oper State Down.

           The count is reinitialized to zero when interface statistics
           collection is reset.

           This field always returns zero, because it is not possible
           to configure a neighbor separately from a multi-area
           interface, and so the sending neighbor is always Oper
           State Up.  It is included for consistency with other MIB
           tables."
       ::= { ospfPmMaIfStatsEntry 57 }

  ospfPmMaIfStatsPktLocalAddr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because they appear to come from the
           local router.

           This count is incremented when a received Hello packet is
           dropped because it comes from the local router, or from
           someone pretending to be the local router.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmMaIfStatsEntry 58 }

  ospfPmMaIfStatsMaIfNotP2p OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of Hello packets received on this interface
           that were dropped because they were received on a
           multi-area interface that is not point-to-point.

           This count is incremented when a received Hello packet is
           dropped because this interface is a multi-area interface
           that is not point-to-point.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmMaIfStatsEntry 59 }

  ospfPmMaIfStatsBadPacket OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets received that have been
           dropped, for a reason which does not have a more specific
           type defined in the DC-OSPF user exit interface.

           This count is incremented when a received OSPF packet is
           dropped for a reason that is not defined in the DC-OSPF
           user exit interface.

           When this count is incremented, another count in this row
           will also be incremented depending on the reason why the
           packet was dropped.  The count in this field should not be
           included when determining the total number of OSPF packets
           that have been dropped.

           The count is reinitialized to zero when interface statistics
           collection is reset."
       ::= { ospfPmMaIfStatsEntry 60 }

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

--
-- OSPF PM SPF Entry Table
--
--     The OSPF SPF entry table is a read-only table which shows
--     information about routers in the SPF tree for each area, as
--     calculated by DC-OSPF.
--

  ospfPmSpfEntryTable OBJECT-TYPE
    -- FAMILY-SHORT-NAME qopm_spf_entry
    SYNTAX      SEQUENCE OF OspfPmSpfEntryEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The OSPF SPF entry table is a read-only table which shows
                information about routers in the SPF tree for each area, as
                calculated by DC-OSPF.

                Each row in this table corresponds to a next hop to a router
                in the SPF tree for an area."
    ::= { ospfObjects 37 }

  ospfPmSpfEntryEntry OBJECT-TYPE
    SYNTAX      OspfPmSpfEntryEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An entry in the OSPF SPF entry table, showing
                information about a router in the SPF tree for an area, as
                calculated by DC-OSPF.

                Each entry corresponds to a next hop to a router
                in the SPF tree for an area."

    INDEX { ospfPmSpfEntryApplIndex,
            ospfPmSpfEntryAreaId,
            ospfPmSpfEntryRtrId,
            ospfPmSpfEntryNextHopIdx
       }
      ::= { ospfPmSpfEntryTable 1 }

  OspfPmSpfEntryEntry ::= SEQUENCE {
      ospfPmSpfEntryApplIndex          NumericIndex,
      ospfPmSpfEntryAreaId             AreaID,
      ospfPmSpfEntryRtrId              RouterID,
      ospfPmSpfEntryNextHopIdx         Unsigned32,
      ospfPmSpfEntryNextHopAddr        IpAddress,
      ospfPmSpfEntryIfIndex            InterfaceIndex,
      ospfPmSpfEntryCost               BigMetric,
      ospfPmSpfEntryIsASBR             TruthValue,
      ospfPmSpfEntryIsABR              TruthValue,
      ospfPmSpfEntryIsVirtEndpt        TruthValue,
      ospfPmSpfEntryCalcIndex          Unsigned32
    }

  ospfPmSpfEntryApplIndex OBJECT-TYPE
    SYNTAX      NumericIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Identifies the DC-OSPF PM entity."
    ::= { ospfPmSpfEntryEntry 1 }

  ospfPmSpfEntryAreaId OBJECT-TYPE
    SYNTAX      AreaID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The area in which the router is connected."
    ::= { ospfPmSpfEntryEntry 2 }

  ospfPmSpfEntryRtrId OBJECT-TYPE
    SYNTAX      RouterID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The router ID of the connected router."
    ::= { ospfPmSpfEntryEntry 3 }

  ospfPmSpfEntryNextHopIdx OBJECT-TYPE
    SYNTAX      Unsigned32 (1..'FFFFFFFF'h)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An arbitrary index used to distinguish between multiple
                equal-cost next hops to the same router."
    ::= { ospfPmSpfEntryEntry 4 }

  ospfPmSpfEntryNextHopAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The next hop address to reach the router.  If there are
                multiple equal cost next hops to the router then there
                will be multiple rows in this table."
    ::= { ospfPmSpfEntryEntry 5 }

  ospfPmSpfEntryIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The outgoing interface for the next hop.  If there are
                multiple equal cost next hops to the router then there
                will be multiple rows in this table."
    ::= { ospfPmSpfEntryEntry 6 }

  ospfPmSpfEntryCost OBJECT-TYPE
    SYNTAX      BigMetric
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The path cost to reach the router.  This always represents
                the intra-area path cost."
    ::= { ospfPmSpfEntryEntry 7 }

  ospfPmSpfEntryIsASBR OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the router is an Autonomous System Boundary Router
                (ASBR)."
    ::= { ospfPmSpfEntryEntry 8 }

  ospfPmSpfEntryIsABR OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the router is an Area Border Router (ABR)."
    ::= { ospfPmSpfEntryEntry 9 }

  ospfPmSpfEntryIsVirtEndpt OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the router is an endpoint of one or more fully
                adjacent virtual links."
    ::= { ospfPmSpfEntryEntry 10 }

  ospfPmSpfEntryCalcIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "An index which identifies the last route calculation
                started by DC-OSPF.

                If this index changes between GET responses it means that
                the two sets of information are not from the same route
                calculation.  The two sets of information may be
                inconsistent."
    ::= { ospfPmSpfEntryEntry 11 }

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

--
-- OSPF Route Table
--
--    The OSPF route table is a read-only table which shows
--    information about IPv4 routes as calculated by DC-OSPF.
--

  ospfPmRouteTable OBJECT-TYPE
    -- FAMILY-SHORT-NAME qopm_route
    SYNTAX      SEQUENCE OF OspfPmRouteEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The OSPF route table is a read-only table which shows
                information about IPv4 routes as calculated by DC-OSPF.

                Each row in this table corresponds to a next hop for a route
                to an IPv4 destination."
    ::= { ospfObjects 38 }

  ospfPmRouteEntry OBJECT-TYPE
    SYNTAX      OspfPmRouteEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An entry in the OSPF route table, showing
                information about IPv4 routes as calculated by DC-OSPF.

                Each entry corresponds to a next hop for a route
                to an IPv4 destination."
    INDEX { ospfPmRouteApplIndex,
            ospfPmRouteAddrPrefix,
            ospfPmRouteAddrPrefixLen,
            ospfPmRouteNextHopIdx
       }
      ::= { ospfPmRouteTable 1 }

  OspfPmRouteEntry ::= SEQUENCE {
      ospfPmRouteApplIndex             NumericIndex,
      ospfPmRouteAddrPrefix            IpAddress,
      ospfPmRouteAddrPrefixLen         Integer32,
      ospfPmRouteNextHopIdx            Unsigned32,
      ospfPmRouteNextHopAddr           IpAddress,
      ospfPmRouteIfIndex               InterfaceIndex,
      ospfPmRouteAreaId                AreaID,
      ospfPmRouteCost                  BigMetric,
      ospfPmRoutePathType              OspfPathType,
      ospfPmRouteCalcIndex             Unsigned32
    }

  ospfPmRouteApplIndex OBJECT-TYPE
    SYNTAX      NumericIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Identifies the DC-OSPF PM entity."
    ::= { ospfPmRouteEntry 1 }

  ospfPmRouteAddrPrefix OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The IP address of the destination."
    ::= { ospfPmRouteEntry 2 }

  ospfPmRouteAddrPrefixLen OBJECT-TYPE
    SYNTAX      Integer32 (0..32)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Prefix length (in bits) to apply to the destination
                address, to obtain the set of addresses to which this
                route applies."
    ::= { ospfPmRouteEntry 3 }

  ospfPmRouteNextHopIdx OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An arbitrary index used to distinguish between multiple
                equal-cost next hops to the same destination."
    ::= { ospfPmRouteEntry 4 }

  ospfPmRouteNextHopAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The next hop address to reach the destination.  If there
                are multiple equal cost next hops to the destination then
                there will be multiple rows in this table."
    ::= { ospfPmRouteEntry 5 }

  ospfPmRouteIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The outgoing interface for the next hop.  If there are
                multiple equal cost next hops to the destination then
                there will be multiple rows in this table."
    ::= { ospfPmRouteEntry 6 }

  ospfPmRouteAreaId OBJECT-TYPE
    SYNTAX      AreaID
    MAX-ACCESS  read-only
    STATUS      current

    DESCRIPTION "If the path_type is AMB_OSPF_PATH_INTRA_AREA then this
                 field indicates the area associated with the route.

                Otherwise this field is set to all zeros and has no
                meaning."
    ::= { ospfPmRouteEntry 7 }

  ospfPmRouteCost OBJECT-TYPE
    SYNTAX      BigMetric
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The cost of the path to the destination.  For type 2
                external routes this field indicates the cost of the
                path's external portion only."

    ::= { ospfPmRouteEntry 8 }

  ospfPmRoutePathType OBJECT-TYPE
    SYNTAX      OspfPathType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The type of path to reach the destination."
    ::= { ospfPmRouteEntry 9 }

  ospfPmRouteCalcIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "An index which identifies the last route calculation
                started by DC-OSPF.

                If this index changes between GET responses it means that
                the two sets of information are not from the same route
                calculation.  The two sets of information may be
                inconsistent."
    ::= { ospfPmRouteEntry 10 }

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

--
-- ospfPmRouterDestTable
--
--     The OSPF router destination table is a read-only table which
--     shows information about routes to ABRs and ASBRs.
--

  ospfPmRouterDestTable OBJECT-TYPE
    -- FAMILY-SHORT-NAME qopm_rtr_dest
    SYNTAX      SEQUENCE OF OspfPmRouterDestEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The OSPF router destination table is a read-only table which
                shows information about routes to other OSPF routers, as
                calculated by DC-OSPF.  Note that DC-OSPF only calculates
                routes to routers which are either ASBRs or ABRs.

                Each row in this table corresponds to a next hop for a route
                to a router which is an ASBR or an ABR."
    ::= { ospfObjects 39 }

  ospfPmRouterDestEntry OBJECT-TYPE
    SYNTAX      OspfPmRouterDestEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An entry in the OSPF router destination table, showing
                information about routes to other OSPF routers, as
                calculated by DC-OSPF.  Note that DC-OSPF only calculates
                routes to routers which are either ASBRs or ABRs.

                Each entry corresponds to a next hop for a route
                to a router which is an ASBR or an ABR."
    INDEX { ospfPmRouterDestApplIndex,
            ospfPmRouterDestRouterId,
            ospfPmRouterDestAreaId,
            ospfPmRouterDestNextHopIdx
       }
      ::= { ospfPmRouterDestTable 1 }

  OspfPmRouterDestEntry ::= SEQUENCE {
      ospfPmRouterDestApplIndex        NumericIndex,
      ospfPmRouterDestRouterId         RouterID,
      ospfPmRouterDestAreaId           AreaID,
      ospfPmRouterDestNextHopIdx       Unsigned32,
      ospfPmRouterDestNextHopAddr      IpAddress,
      ospfPmRouterDestIfIndex          InterfaceIndex,
      ospfPmRouterDestCost             BigMetric,
      ospfPmRouterDestIsASBR           TruthValue,
      ospfPmRouterDestIsABR            TruthValue,
      ospfPmRouterDestIsVirtEndpt      TruthValue,
      ospfPmRouterDestPathType         OspfPathType,
      ospfPmRouterDestCalcIndex        Unsigned32
    }

  ospfPmRouterDestApplIndex OBJECT-TYPE
    SYNTAX      NumericIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Identifies the DC-OSPF PM entity."
    ::= { ospfPmRouterDestEntry 1 }

  ospfPmRouterDestRouterId OBJECT-TYPE
    SYNTAX      RouterID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The OSPF router ID of the destination router."
    ::= { ospfPmRouterDestEntry 2 }

  ospfPmRouterDestAreaId OBJECT-TYPE
    SYNTAX      AreaID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The area associated with the route to the router."
    ::= { ospfPmRouterDestEntry 3 }

  ospfPmRouterDestNextHopIdx OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An arbitrary index used to distinguish between multiple
                equal-cost next hops to the same router."
    ::= { ospfPmRouterDestEntry 4 }

  ospfPmRouterDestNextHopAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The next hop address to reach the destination router.  If
                there are multiple equal cost next hops to the destination
                then there will be multiple rows in this table."
    ::= { ospfPmRouterDestEntry 5 }

  ospfPmRouterDestIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The outgoing interface for the next hop.  If there are
                multiple equal cost next hops to the destination router
                then there will be multiple rows in this table."
    ::= { ospfPmRouterDestEntry 6 }

  ospfPmRouterDestCost OBJECT-TYPE
    SYNTAX      BigMetric
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The cost of the path to the destination router.  For type
                2 external routes this field indicates the cost of the
                path's external portion only."
    ::= { ospfPmRouterDestEntry 7 }

  ospfPmRouterDestIsASBR OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the destination router is an Autonomous System
                Boundary Router (ASBR).

                Set to AMB_TRUE if the destination is advertising ASBR
                capabilities."
    ::= { ospfPmRouterDestEntry 8 }

  ospfPmRouterDestIsABR OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the destination is an Area Border Router (ABR).

                Set to AMB_TRUE if the destination router is advertising
                ABR capabilities."
    ::= { ospfPmRouterDestEntry 9 }

  ospfPmRouterDestIsVirtEndpt OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the destination is an endpoint of one or more
                fully adjacent virtual links.

                Set to AMB_TRUE if the destination router is a virtual
                endpoint."
    ::= { ospfPmRouterDestEntry 10 }

  ospfPmRouterDestPathType OBJECT-TYPE
    SYNTAX      OspfPathType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The type of path to reach the destination router."
    ::= { ospfPmRouterDestEntry 11 }

  ospfPmRouterDestCalcIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "An index which identifies the last route calculation
                started by DC-OSPF.

                If this index changes between GET responses it means that
                the two sets of information are not from the same route
                calculation.  The two sets of information may be
                inconsistent."
    ::= { ospfPmRouterDestEntry 12 }

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

--  OSPF NM Entity Statistics Table
--
--     The OSPF NM Entity Statistics Table augments the ospfNmEntTable
--     with OSPF specific statistics information.


  ospfNmEntStatsTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME qonm_ent_stats
       SYNTAX      SEQUENCE OF OspfNmEntStatsEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The OSPF Entity Statistics Table is a read-only table
          including per-OSPF interface counters.  This table is
          DC-OSPF implementation specific."
       ::= { ospfObjects 36 }

  ospfNmEntStatsEntry OBJECT-TYPE
       SYNTAX      OspfNmEntStatsEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The OSPF Entity Statistics Entry containing statistics for
          the NM entity.  This entry is DC-OSPF implementation specific."
       INDEX { ospfNmEntStatsIndex }
       ::= { ospfNmEntStatsTable 1 }

  OspfNmEntStatsEntry ::= SEQUENCE {
         ospfNmEntStatsIndex                OspfPmIndex,
         ospfNmEntStatsLength               Counter32,
         ospfNmEntStatsNoIf                 Counter32,
         ospfNmEntStatsNoVirtLink           Counter32,
         ospfNmEntStatsInstanceId           Counter32,
         ospfNmEntStatsBadIpHdrLen          Counter32,
         ospfNmEntStatsVersion              Counter32,
         ospfNmEntStatsBadSrc               Counter32,
         ospfNmEntStatsResourceErr          Counter32,
         ospfNmEntStatsBadPacket            Counter32
       }

  ospfNmEntStatsIndex OBJECT-TYPE
       SYNTAX       OspfPmIndex
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "Identifies the DC-OSPF NM entity."
       ::= { ospfNmEntStatsEntry 1 }

  ospfNmEntStatsLength OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header length errors detected in the
          case where OSPF cannot determine the receiving interface.

          This count is incremented when a received packet is too
          small to be identified.

          The count is reinitialized to zero when entity statistics
          collection is reset."
       ::= { ospfNmEntStatsEntry 2 }

  ospfNmEntStatsNoIf OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header errors detected of type
          'OSPF cannot determine the receiving interface'.

          This count is incremented when the receiving interface
          for a packet cannot be identified.

          The count is reinitialized to zero when entity statistics
          collection is reset."
       ::= { ospfNmEntStatsEntry 3 }

  ospfNmEntStatsNoVirtLink OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'no virtual link' errors.

          This count is incremented when a received packet appears to
          be for a virtual interface, but no receiving interface can
          be identified.

          The count is reinitialized to zero when entity statistics
          collection is reset."
       ::= { ospfNmEntStatsEntry 4 }

  ospfNmEntStatsInstanceId OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'instance id' errors
          detected in the case where OSPF cannot determine the
          receiving interface.

          The count is reinitialized to zero when entity statistics
          collection is reset."
       ::= { ospfNmEntStatsEntry 5 }

  ospfNmEntStatsBadIpHdrLen OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'bad IP header length'
          errors detected in the case where OSPF cannot determine
          the receiving interface.

          The count is reinitialized to zero when entity statistics
          collection is reset."
       ::= { ospfNmEntStatsEntry 6 }

  ospfNmEntStatsVersion OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header version errors detected
          in the case where OSPF cannot determine the receiving
          interface.

          This count is incremented when a received OSPF packet
          header Version field is invalid.

          The count is reinitialized to zero when entity statistics
          collection is reset."
       ::= { ospfNmEntStatsEntry 7 }

  ospfNmEntStatsBadSrc OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header 'bad source' errors detected
          in the case where OSPF cannot determine the receiving
          interface.

          This count is incremented when the source IP address of a
          received OSPF packet is either invalid or not recognized.

          The count is reinitialized to zero when entity statistics
          collection is reset."
       ::= { ospfNmEntStatsEntry 8 }

  ospfNmEntStatsResourceErr OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packet header resource errors detected
          in the case where OSPF cannot determine the receiving
          interface.

          This count is incremented when a received OSPF packet is
          dropped because of resource failure.

          The count is reinitialized to zero when entity statistics
          collection is reset."
       ::= { ospfNmEntStatsEntry 9 }

  ospfNmEntStatsBadPacket OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The number of OSPF packets received that have been
           dropped, for a reason which does not have a more specific
           type defined in the DC-OSPF user exit interface.

           This count is incremented when a received OSPF packet is
           dropped for a reason that is not defined in the DC-OSPF
           user exit interface.

           The count is reinitialized to zero when entity statistics
           collection is reset."
       ::= { ospfNmEntStatsEntry 10 }

-- conformance information

ospfConformance OBJECT IDENTIFIER ::= { ospfMib 2 }

ospfGroups      OBJECT IDENTIFIER ::= { ospfConformance 1 }
ospfCompliances OBJECT IDENTIFIER ::= { ospfConformance 2 }

-- compliance statements

    ospfCompliance MODULE-COMPLIANCE
       STATUS  current
       DESCRIPTION
           "The compliance statement "
       MODULE  -- this module
       MANDATORY-GROUPS {
                    ospfBasicGroup,
                    ospfAreaGroup,
                    ospfStubAreaGroup,
                    ospfIfGroup,
                    ospfIfMetricGroup,
                    ospfVirtIfGroup,
                    ospfNbrGroup,
                    ospfVirtNbrGroup,
                    ospfAreaAggregateGroup
           }

       GROUP ospfLsdbGroup
       DESCRIPTION
           "These objects are required for OSPF systems
           that display their link state database."

       GROUP ospfHostGroup
       DESCRIPTION
           "These objects are required for OSPF systems
           that support attached hosts."

       GROUP ospfExtLsdbGroup
       DESCRIPTION
           "These objects are required for OSPF systems
           that display their link state database."

       GROUP ospfPropLocalLsdbGroup
       DESCRIPTION
           "Proprietary objects for ospfPmLocalLsdbTable."

       GROUP ospfPropVirtLocalLsdbGroup
       DESCRIPTION
           "Proprietary objects for ospfPmLocalLsdbTable."

       GROUP ospfPropMjGroup
       DESCRIPTION
            "Proprietary objects for ospfPmMjTable."

       GROUP ospfPropSjGroup
       DESCRIPTION
            "Proprietary objects for ospfPmSjTable."

       GROUP ospfPropIfSwitchGroup
       DESCRIPTION
            "Proprietary objects for ospfPmSjTable."

       GROUP ospfPropVirtIfGroup
       DESCRIPTION
            "Proprietary objects for ospfPmVirtIfTable."

       GROUP ospfPropIfGroup
       DESCRIPTION
            "Proprietary objects for ospfPmIfTable."

       GROUP ospfPropAreaGroup
       DESCRIPTION
            "Proprietary objects for ospfPmAreaTable."

       GROUP ospfPropEntGroup
       DESCRIPTION
            "Proprietary objects for ospfPmEntTable."

       GROUP ospfPropNmEntGroup
       DESCRIPTION
            "Proprietary objects for ospfNmEntTable."

       GROUP ospfPropIgpShortcutGroup
       DESCRIPTION
            "Proprietary objects for ospfPmIgpShortcutTable."

       GROUP ospfPropDomainIdGroup
       DESCRIPTION
            "Proprietary objects for the proprietary ospfPmDomainIdTable."

       GROUP ospfPropShamLinkGroup
       DESCRIPTION
            "Proprietary objects for the proprietary ospfPmShamLinkTable."

       GROUP ospfPropShamNbrGroup
       DESCRIPTION
            "Proprietary objects for the proprietary ospfPmShamNbrTable."

       GROUP ospfPropShamLsdbGroup
       DESCRIPTION
            "Proprietary objects for the proprietary ospfPmShamLsdbTable."

       GROUP ospfPropMultiAreaIfGroup
       DESCRIPTION
            "Proprietary objects for the proprietary ospfPmMultiAreaIfTable."

       GROUP ospfPropMultiAreaNbrGroup
       DESCRIPTION
            "Proprietary objects for the proprietary ospfPmMultiAreaNbrTable."

       GROUP ospfPropMultiAreaLclLsdbGroup
       DESCRIPTION
            "Proprietary objects for the proprietary
             ospfPmMultiAreaLclLsdbTable."

       GROUP ospfPropPmEntStatsGroup
          DESCRIPTION
              "Proprietary objects for the proprietary ospfPmEntStatsTable."

       GROUP ospfPropIfStatsGroup
          DESCRIPTION
              "Proprietary objects for the proprietary ospfPmIfStatsTable."

       GROUP ospfPropVirtIfStatsGroup
          DESCRIPTION
              "Proprietary objects for the proprietary
              ospfPmVirtIfStatsTable."

       GROUP ospfPropShamLinkStatsGroup
          DESCRIPTION
              "Proprietary objects for the proprietary
              ospfPmShamLinkStatsTable."

       GROUP ospfPmMaIfStatsGroup
          DESCRIPTION
              "Proprietary objects for the proprietary
              ospfPmMaIfStatsTable."

       GROUP ospfPmSpfEntryGroup
          DESCRIPTION
              "Proprietary objects for the proprietary
              ospfPmSpfEntryTable."

       GROUP ospfPmRouteTableGroup
          DESCRIPTION
              "Proprietary objects for the proprietary
              ospfPmRouteTable."

       GROUP ospfPmRouterDestGroup
          DESCRIPTION
              "Proprietary objects for the proprietary
              ospfPmRouterDestTable."

       GROUP ospfPropNmEntStatsGroup
          DESCRIPTION
              "Proprietary objects for the proprietary ospfNmEntStatsTable."

       ::= { ospfCompliances 1 }

-- units of conformance

    ospfBasicGroup    OBJECT-GROUP
        OBJECTS {
                    ospfPmEntRouterId,
                    ospfPmEntAdminStat,
                    ospfPmEntVersionNumber,
                    ospfPmEntAreaBdrRtrStatus,
                    ospfPmEntASBdrRtrStatus,
                    ospfPmEntExternLsaCount,
                    ospfPmEntExternLsaCksumSum,
                    ospfPmEntTOSSupport,
                    ospfPmEntOriginateNewLsas,
                    ospfPmEntRxNewLsas,
                    ospfPmEntExtLsdbLimit,
                    ospfPmEntMulticastExtns,
                    ospfPmEntExitOverflowIntvl,
                    ospfPmEntDemandExtensions
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems."
       ::= { ospfGroups 1 }


    ospfAreaGroup    OBJECT-GROUP
        OBJECTS {
                    ospfPmImportAsExtern,
                    ospfPmSpfRuns,
                    ospfPmAreaBdrRtrCount,
                    ospfPmASBdrRtrCount,
                    ospfPmAreaLsaCount,
                    ospfPmAreaLsaCksumSum,
                    ospfPmAreaSummary,
                    ospfPmAreaOperStatus,
                    ospfPmAreaAdminStatus
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems
           supporting areas."
       ::= { ospfGroups 2 }


    ospfStubAreaGroup    OBJECT-GROUP
        OBJECTS {
                    ospfPmStubMetric,
                    ospfPmStubStatus,
                    ospfPmStubMetricType
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems
           supporting stub areas."
       ::= { ospfGroups 3 }

    ospfLsdbGroup    OBJECT-GROUP
        OBJECTS {
                    ospfPmLsdbSequence,
                    ospfPmLsdbAge,
                    ospfPmLsdbChecksum,
                    ospfPmLsdbAdvertisement
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems
           that display their link state database."
       ::= { ospfGroups 4 }

    ospfHostGroup    OBJECT-GROUP
        OBJECTS {
                    ospfPmHostMetric,
                    ospfPmHostStatus,
                    ospfPmHostAreaID,
                    ospfPmHostOperStatus,
                    ospfPmHostAdminStatus
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems
           that support attached hosts."
       ::= { ospfGroups 6 }

    ospfIfGroup    OBJECT-GROUP
        OBJECTS {
                    ospfPmIfAreaId,
                    ospfPmIfType,
                    ospfPmIfAdminStat,
                    ospfPmIfRtrPriority,
                    ospfPmIfTransitDelay,
                    ospfPmIfRetransInterval,
                    ospfPmIfHelloInterval,
                    ospfPmIfRtrDeadInterval,
                    ospfPmIfPollInterval,
                    ospfPmIfState,
                    ospfPmIfDesignatedRouter,
                    ospfPmIfBackupDesignatedRouter,
                    ospfPmIfEvents,
                    ospfPmIfAuthType,
                    ospfPmIfAuthKey,
                    ospfPmIfStatus,
                    ospfPmIfMulticastForwarding,
                    ospfPmIfDemand
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems."
       ::= { ospfGroups 7 }


    ospfIfMetricGroup    OBJECT-GROUP
        OBJECTS {
                    ospfPmIfMetricValue,
                    ospfPmIfMetricStatus
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems."
       ::= { ospfGroups 8 }


    ospfVirtIfGroup    OBJECT-GROUP
        OBJECTS {
                    ospfPmVirtIfTransitDelay,
                    ospfPmVirtIfRetransInterval,
                    ospfPmVirtIfHelloInterval,
                    ospfPmVirtIfRtrDeadInterval,
                    ospfPmVirtIfState,
                    ospfPmVirtIfEvents,
                    ospfPmVirtIfAuthType,
                    ospfPmVirtIfAuthKey,
                    ospfPmVirtIfStatus
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems."
       ::= { ospfGroups 9 }


    ospfNbrGroup    OBJECT-GROUP
        OBJECTS {
                    ospfPmNbrRtrId,
                    ospfPmNbrOptions,
                    ospfPmNbrPriority,
                    ospfPmNbrState,
                    ospfPmNbrEvents,
                    ospfPmNbrLsRetransQLen,
                    ospfPmNbrOperStatus,
                    ospfPmNbrAdminStatus,
                    ospfPmNbrPermanence,
                    ospfPmNbrHelloSuppressed,
                    ospfPmNbrNumRequests,
                    ospfPmNbrStatus,
                    ospfPmNbrIfIpAddr,
                    ospfPmNbrDeadTime,
                    ospfPmNbrAreaId,
                    ospfPmNbrRestartHelperStatus,
                    ospfPmNbrRestartHelperAge,
                    ospfPmNbrRestartHelperExitReason,
                    ospfPmNbrConfiguredPriority,
                    ospfPmNbrDesignatedRtrState
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems."
       ::= { ospfGroups 10 }


    ospfVirtNbrGroup    OBJECT-GROUP
        OBJECTS {
                    ospfPmVirtNbrIpAddr,
                    ospfPmVirtNbrOptions,
                    ospfPmVirtNbrState,
                    ospfPmVirtNbrEvents,
                    ospfPmVirtNbrLsRetransQLen,
                    ospfPmVirtNbrHelloSuppressed,
                    ospfPmVirtNbrNumRequests,
                    ospfPmVirtNbrDeadTime,
                    ospfPmVirtNbrRestartHelperStatus,
                    ospfPmVirtNbrRestartHelperAge,
                    ospfPmVirtNbrRestartHelperExit
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems."
       ::= { ospfGroups 11 }


    ospfExtLsdbGroup    OBJECT-GROUP
        OBJECTS {
                    ospfPmExtLsdbSequence,
                    ospfPmExtLsdbAge,
                    ospfPmExtLsdbChecksum,
                    ospfPmExtLsdbAdvertisement
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems
           that display their link state database."
       ::= { ospfGroups 12 }


    ospfAreaAggregateGroup    OBJECT-GROUP
        OBJECTS {
                    ospfPmAreaAggregateEffect,
                    ospfPmAreaAggregateStatus
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems."
       ::= { ospfGroups 13 }

    ospfPropLocalLsdbGroup OBJECT-GROUP
        OBJECTS {
             ospfPmLocalLsdbSequence,
             ospfPmLocalLsdbAge,
             ospfPmLocalLsdbChecksum,
             ospfPmLocalLsdbAdvertisement,
             ospfPmLocalLsdbAreaId
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for ospfPmLocalLsdbTable."
        ::= { ospfGroups 14 }

    ospfPropVirtLocalLsdbGroup OBJECT-GROUP
        OBJECTS {
             ospfPmVirtLocalLsdbSequence,
             ospfPmVirtLocalLsdbAge,
             ospfPmVirtLocalLsdbChecksum,
             ospfPmVirtLocalLsdbAdv
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for ospfPmVirtLocalLsdbTable."
        ::= { ospfGroups 15 }

    ospfPropMjGroup OBJECT-GROUP
        OBJECTS {
             ospfPmMjRowStatus,
             ospfPmMjAdminStatus,
             ospfPmMjOperStatus,
             ospfPmMjJoinStatus
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for ospfPmMjTable."
        ::= { ospfGroups 16 }

    ospfPropSjGroup OBJECT-GROUP
        OBJECTS {
             ospfPmSjJoinIndex,
             ospfPmSjJoinStatus
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for ospfPmSjTable."
        ::= { ospfGroups 17 }

    ospfPropIfSwitchGroup OBJECT-GROUP
        OBJECTS {
            ospfPmIfSwitchMaxLSPBwidth0,
            ospfPmIfSwitchLastMaxLSPBwidth0,
            ospfPmIfSwitchMaxLSPBwidth1,
            ospfPmIfSwitchLastMaxLSPBwidth1,
            ospfPmIfSwitchMaxLSPBwidth2,
            ospfPmIfSwitchLastMaxLSPBwidth2,
            ospfPmIfSwitchMaxLSPBwidth3,
            ospfPmIfSwitchLastMaxLSPBwidth3,
            ospfPmIfSwitchMaxLSPBwidth4,
            ospfPmIfSwitchLastMaxLSPBwidth4,
            ospfPmIfSwitchMaxLSPBwidth5,
            ospfPmIfSwitchLastMaxLSPBwidth5,
            ospfPmIfSwitchMaxLSPBwidth6,
            ospfPmIfSwitchLastMaxLSPBwidth6,
            ospfPmIfSwitchMaxLSPBwidth7,
            ospfPmIfSwitchLastMaxLSPBwidth7,
            ospfPmIfSwitchMinLSPBwidth,
            ospfPmIfSwitchLastMinLSPBwidth,
            ospfPmIfSwitchMTUSize,
            ospfPmIfSwitchLastMTUSize,
            ospfPmIfSwitchSonetSdhSupport
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for ospfPmSjTable."
        ::= { ospfGroups 18 }

    ospfPropAreaObsoleteGroup OBJECT-GROUP
        OBJECTS {
            ospfPmAuthType
        }
        STATUS obsolete
        DESCRIPTION
            "Obsolete objects for ospfPmAreaTable."
        ::= { ospfGroups 19 }

    ospfPropVirtIfGroup OBJECT-GROUP
        OBJECTS {
             ospfPmVirtIfLsaCount,
             ospfPmVirtIfLsaCksumSum,
             ospfPmVirtIfAdminStatus,
             ospfPmVirtIfOperStatus,
             ospfPmVirtIfResourceClass,
             ospfPmVirtIfTransmitTimerDelay,
             ospfPmVirtIfIPMaxPacketSize,
             ospfPmVirtIfPassive,
             ospfPmVirtIfLsaRefreshIntvl,
             ospfPmVirtIfHelperModePolicy,
             ospfPmVirtIfMaxHtlssGracePeriod,
             ospfPmVirtIfEnableTeFlooding,
             ospfPmVirtIfInterfaceName,
             ospfPmVirtIfAuthUserData,
             ospfPmVirtIfFastHelloMultiplier,
             ospfPmVirtIfMtuIgnore,
             ospfPmVirtIfNmEntity,
             ospfPmVirtIfBfdDesired,
             ospfPmVirtIfRstHlprStrictLsaChk,
             ospfPmVirtIfStatsReset,
             ospfPmVirtIfGRDelayTimer
        }
        STATUS current
        DESCRIPTION
             "Proprietary objects for ospfPmVirtIfTable."
        ::= { ospfGroups 20 }

    ospfPropIfGroup OBJECT-GROUP
        OBJECTS {
             ospfPmIfLsaCount,
             ospfPmIfLsaCksumSum,
             ospfPmIfOperStatus,
             ospfPmIfNetMask,
             ospfPmIfResourceClass,
             ospfPmIfTransmitTimerDelay,
             ospfPmIfIPMaxPacketSize,
             ospfPmIfPassive,
             ospfPmIfLsaRefreshIntvl,
             ospfPmIfQOSSupport,
             ospfPmIfTEMetricPcntge,
             ospfPmIfTEMetric,
             ospfPmIfLastTEMetric,
             ospfPmIfMaxBwidthPcntge,
             ospfPmIfMaxBandwidth,
             ospfPmIfLastMaxBwidth,
             ospfPmIfMaxResBwidthPcntge,
             ospfPmIfMaxResBwidth,
             ospfPmIfLastMaxResBwidth,
             ospfPmIfUnresBwidthPcntge,
             ospfPmIfUnresBwidth0,
             ospfPmIfLastUnresBwidth0,
             ospfPmIfUnresBwidth1,
             ospfPmIfLastUnresBwidth1,
             ospfPmIfUnresBwidth2,
             ospfPmIfLastUnresBwidth2,
             ospfPmIfUnresBwidth3,
             ospfPmIfLastUnresBwidth3,
             ospfPmIfUnresBwidth4,
             ospfPmIfLastUnresBwidth4,
             ospfPmIfUnresBwidth5,
             ospfPmIfLastUnresBwidth5,
             ospfPmIfUnresBwidth6,
             ospfPmIfLastUnresBwidth6,
             ospfPmIfUnresBwidth7,
             ospfPmIfLastUnresBwidth7,
             ospfPmIfRemoteIfIndex,
             ospfPmIfLinkProtectionType,
             ospfPmIfMaxLSPBwidthPcntge,
             ospfPmIfMinLSPBwidthPcntge,
             ospfPmIfMTUSizePcntge,
             ospfPmIfHelperModePolicy,
             ospfPmIfMaxHitlessGracePeriod,
             ospfPmIfEnableTeFlooding,
             ospfPmIfInterfaceName,
             ospfPmIfIfIndex,
             ospfPmIfSRLG,
             ospfPmIfAuthUserData,
             ospfPmIfFastHelloMultiplier,
             ospfPmIfAutoDeleteNbr,
             ospfPmIfNumBwidthCnstrnts,
             ospfPmIfBwidthCnstrntModel,
             ospfPmIfBwidthCnstrnt0,
             ospfPmIfBwidthCnstrnt1,
             ospfPmIfBwidthCnstrnt2,
             ospfPmIfBwidthCnstrnt3,
             ospfPmIfBwidthCnstrnt4,
             ospfPmIfBwidthCnstrnt5,
             ospfPmIfBwidthCnstrnt6,
             ospfPmIfBwidthCnstrnt7,
             ospfPmIfMtuIgnore,
             ospfPmIfNmEntity,
             ospfPmIfBfdDesired,
             ospfPmIfRstHlprStrictLsaChk,
             ospfPmIfStatsReset,
             ospfPmIfGraceLsaResendTimer,
             ospfPmIfGRDelayTimer
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for ospfPmIfTable."
        ::= { ospfGroups 21 }

    ospfPropAreaGroup OBJECT-GROUP
        OBJECTS {
            ospfPmAreaNssaTranslatorRole,
            ospfPmAreaNssaTranslatorState,
            ospfPmAreaNssaTranStabIntvl,
            ospfPmAreaNssaTranslatorEvents,
            ospfPmAreaTransitCapability,
            ospfPmAreaLsaRfshIntvl,
            ospfPmAreaRtrLsaCount,
            ospfPmAreaRtrLsaCksumSum,
            ospfPmAreaNetLsaCount,
            ospfPmAreaNetLsaCksumSum,
            ospfPmAreaSummLsaCount,
            ospfPmAreaSummLsaCksumSum,
            ospfPmAreaSummAsLsaCount,
            ospfPmAreaSummAsLsaCksumSum,
            ospfPmAreaNssaLsaCount,
            ospfPmAreaNssaLsaCksumSum,
            ospfPmAreaOpLsaCount,
            ospfPmAreaOpLsaCksumSum,
            ospfPmAreaStatus,
            ospfPmAreaNssaNoExtRedist
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for ospfPmAreaTable."
        ::= { ospfGroups 22 }

     ospfPropEntGroup OBJECT-GROUP
        OBJECTS {
            ospfPmEntRFC1583Comp,
            ospfPmEntOpaqueLsaSupport,
            ospfPmEntTrafficEngSupport,
            ospfPmEntOperStatus,
            ospfPmEntCalcMaxDelay,
            ospfPmEntCalcThrshUpdStart,
            ospfPmEntCalcThrshUpdRestart,
            ospfPmEntCalcThrshIncUpdates,
            ospfPmEntCalcThrshIncSpfUpd,
            ospfPmEntCalcPauseFreq,
            ospfPmEntRteMaxEqCostPaths,
            ospfPmEntCheckAge,
            ospfPmEntExtLsaRfshIntvl,
            ospfPmEntExtOpLsaCount,
            ospfPmEntExtOpLsaCksumSum,
            ospfPmEntNumUpdPending,
            ospfPmEntNumUpdMerged,
            ospfPmEntNumCksumsPending,
            ospfPmEntDoGraceHitless,
            ospfPmEntDoGraceUnplannedHitless,
            ospfPmEntHitlessGracePeriod,
            ospfPmEntHitlessRestartReason,
            ospfPmEntTERouterId,
            ospfPmEntPrivateData,
            ospfPmEntSupportEnniRouting,
            ospfPmEntRowStatus,
            ospfPmEntRestartStatus,
            ospfPmEntRestartAge,
            ospfPmEntRestartExitReason,
            ospfPmEntCurrentRouterId,
            ospfPmEntCurrentTERouterId,
            ospfPmEntCalcSoonAfterIfChng,
            ospfPmEntI3EntIndex,
            ospfPmEntEnableIgpShortcut,
            ospfPmEntVpnPeCeSupport,
            ospfPmEntVpnRouteTag,
            ospfPmEntVpnRouterIdAttr,
            ospfPmEntDfltExtType1Metric,
            ospfPmEntDfltExtType2Metric,
            ospfPmEntRtmPurgeTime,
            ospfPmEntMinLsInterval,
            ospfPmEntMinLsArrival,
            ospfPmEntVpnDfltShamLinkMetric,
            ospfPmEntInstanceId,
            ospfPmEntStatsReset,
            ospfPmEntEnableTrapSupport
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for ospfPmEntTable."
        ::= { ospfGroups 23 }

     ospfPropNmEntGroup OBJECT-GROUP
        OBJECTS {
            ospfNmEntRowStatus,
            ospfNmEntAdminStatus,
            ospfNmEntOperStatus,
            ospfNmMjEntityIndex,
            ospfNmSckEntityIndex,
            ospfNmEntNmiJoinOperStatus,
            ospfNmEntSckJoinOperStatus,
            ospfNmEntBfdEntityIndex,
            ospfNmEntBfdJoinOperStatus,
            ospfNmEntStatsReset,
            ospfNmEntEnableTrapSupport
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for ospfNmEntTable."
        ::= { ospfGroups 24 }

    ospfPropIgpShortcutGroup OBJECT-GROUP
        OBJECTS {
             ospfPmShortcutRemoteAddress,
             ospfPmShortcutMetricType,
             ospfPmShortcutMetricValue,
             ospfPmShortcutOperStatus
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for ospfPmIgpShortcutTable."
        ::= { ospfGroups 25 }

     ospfPropDomainIdGroup OBJECT-GROUP
        OBJECTS {
          ospfPmDomainIdRowStatus,
          ospfPmDomainIdRole,
          ospfPmDomainIdStatus
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for the proprietary ospfPmDomainIdTable."
        ::= { ospfGroups 26 }

     ospfPropShamLinkGroup OBJECT-GROUP
        OBJECTS {
          ospfPmShamLinkRowStatus,
          ospfPmShamLinkIfIndex,
          ospfPmShamLinkMetric,
          ospfPmShamLinkTransitDelay,
          ospfPmShamLinkRetransInterval,
          ospfPmShamLinkHelloInterval,
          ospfPmShamLinkRtrDeadInterval,
          ospfPmShamLinkState,
          ospfPmShamLinkEvents,
          ospfPmShamLinkAuthType,
          ospfPmShamLinkAuthKey,
          ospfPmShamLinkLsaCount,
          ospfPmShamLinkLsaCksumSum,
          ospfPmShamLinkAdminStatus,
          ospfPmShamLinkOperStatus,
          ospfPmShamLinkTransmitDelay,
          ospfPmShamLinkIPMaxPacketSize,
          ospfPmShamLinkInterfaceName,
          ospfPmShamLinkLsaRefreshIntvl,
          ospfPmShamLinkHelperModePolicy,
          ospfPmShamLinkMaxGracePeriod,
          ospfPmShamLinkEnableTeFlooding,
          ospfPmShamLinkAuthUserData,
          ospfPmShamLinkFastHelloMult,
          ospfPmShamLinkMtuIgnore,
          ospfPmShamLinkNmEntity,
          ospfPmShamLinkRstStrictLsaChk,
          ospfPmShamLinkIpAddrConflict,
          ospfPmShamLinkStatsReset,
          ospfPmShamLinkGrcLsaRsndTmr,
          ospfPmShamLinkGRDelayTimer
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for the proprietary ospfPmShamLinkTable."
        ::= { ospfGroups 27 }

     ospfPropShamNbrGroup OBJECT-GROUP
        OBJECTS {
          ospfPmShamNbrRouterId,
          ospfPmShamNbrOptions,
          ospfPmShamNbrState,
          ospfPmShamNbrEvents,
          ospfPmShamNbrLsRetransQLen,
          ospfPmShamNbrNumRequests,
          ospfPmShamNbrDeadTime,
          ospfPmShamNbrRestartHelperStatus,
          ospfPmShamNbrRestartHelperAge,
          ospfPmShamNbrRestartHelperExit
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for the proprietary ospfPmShamNbrTable."
        ::= { ospfGroups 28 }

     ospfPropShamLsdbGroup OBJECT-GROUP
        OBJECTS {
          ospfPmShamLsdbSequence,
          ospfPmShamLsdbAge,
          ospfPmShamLsdbChecksum,
          ospfPmShamLsdbAdvertisement
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for the proprietary ospfPmShamLsdbTable."
        ::= { ospfGroups 29 }

     ospfPropMultiAreaIfGroup OBJECT-GROUP
        OBJECTS {
          ospfPmMultiAreaIfStatus,
          ospfPmMultiAreaIfAdminStat,
          ospfPmMultiAreaIfOperStatus,
          ospfPmMultiAreaIfState,
          ospfPmMultiAreaIfEvents,
          ospfPmMultiAreaIfMetricValue,
          ospfPmMultiAreaIfTransitDelay,
          ospfPmMultiAreaIfRetransInt,
          ospfPmMultiAreaIfHelloInt,
          ospfPmMultiAreaIfRtrDeadInt,
          ospfPmMultiAreaIfFastHelloMult,
          ospfPmMultiAreaIfAuthType,
          ospfPmMultiAreaIfAuthKey,
          ospfPmMultiAreaIfAuthUserData,
          ospfPmIfMultiAreaIPMaxPktSize,
          ospfPmMultiAreaIfMtuIgnore,
          ospfPmMultiAreaIfLsaCount,
          ospfPmMultiAreaIfLsaCksumSum,
          ospfPmMultiAreaIfTrsmtTmrDelay,
          ospfPmMultiAreaIfEnableTeFlood,
          ospfPmMultiAreaIfStatsReset,
          ospfPmMultiAreaGraceLsaRsndTmr,
          ospfPmMultiAreaGRDelayTimer
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for the proprietary ospfPmMultiAreaIfTable."
        ::= { ospfGroups 30 }

     ospfPropMultiAreaNbrGroup OBJECT-GROUP
        OBJECTS {
          ospfPmMultiAreaNbrSrcIpAddr,
          ospfPmMultiAreaNbrRtrId,
          ospfPmMultiAreaNbrOptions,
          ospfPmMultiAreaNbrState,
          ospfPmMultiAreaNbrEvents,
          ospfPmMultiAreaNbrLsRetransQLen,
          ospfPmMultiAreaNbrNumRequests,
          ospfPmMultiAreaNbrDeadTime,
          ospfPmMultiAreaNbrRstrtHelpSts,
          ospfPmMultiAreaNbrRstrtHelpAge,
          ospfPmMultiAreaNbrRstrtHelpExitR
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for the proprietary ospfPmMultiAreaNbrTable."
        ::= { ospfGroups 31 }

     ospfPropMultiAreaLclLsdbGroup OBJECT-GROUP
        OBJECTS {
          ospfPmMultiAreaLclLsdbSequence,
          ospfPmMultiAreaLclLsdbAge,
          ospfPmMultiAreaLclLsdbChecksum,
          ospfPmMultiAreaLclLsdbAdvert
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for the proprietary
             ospfPmMultiAreaLclLsdbTable."
        ::= { ospfGroups 32 }

     ospfPropPmEntStatsGroup OBJECT-GROUP
        OBJECTS {
          ospfPmEntStatsNoIf,
          ospfPmEntStatsNoVirtLink,
          ospfPmEntStatsBadPacket
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for the proprietary ospfPmEntStatsTable."
        ::= { ospfGroups 33 }

     ospfPropIfStatsGroup OBJECT-GROUP
        OBJECTS {
          ospfPmIfStatsRxInvalid,
          ospfPmIfStatsRxInvalidByte,
          ospfPmIfStatsRxHello,
          ospfPmIfStatsRxHelloByte,
          ospfPmIfStatsRxDbDes,
          ospfPmIfStatsRxDbDesByte,
          ospfPmIfStatsRxLsReq,
          ospfPmIfStatsRxLsReqByte,
          ospfPmIfStatsRxLsUpd,
          ospfPmIfStatsRxLsUpdByte,
          ospfPmIfStatsRxLsAck,
          ospfPmIfStatsRxLsAckByte,
          ospfPmIfStatsTxFailed,
          ospfPmIfStatsTxFailedByte,
          ospfPmIfStatsTxHello,
          ospfPmIfStatsTxHelloByte,
          ospfPmIfStatsTxDbDes,
          ospfPmIfStatsTxDbDesByte,
          ospfPmIfStatsTxLsReq,
          ospfPmIfStatsTxLsReqByte,
          ospfPmIfStatsTxLsUpd,
          ospfPmIfStatsTxLsUpdByte,
          ospfPmIfStatsTxLsAck,
          ospfPmIfStatsTxLsAckByte,
          ospfPmIfStatsLength,
          ospfPmIfStatsCksum,
          ospfPmIfStatsVersion,
          ospfPmIfStatsBadSrc,
          ospfPmIfStatsAreaMismatch,
          ospfPmIfStatsSelfOrig,
          ospfPmIfStatsDupeId,
          ospfPmIfStatsHello,
          ospfPmIfStatsMtuMismatch,
          ospfPmIfStatsNbrIgnored,
          ospfPmIfStatsAuth,
          ospfPmIfStatsWrongProto,
          ospfPmIfStatsResourceErr,
          ospfPmIfStatsVirtMaIfClash,
          ospfPmIfStatsBadLsaLen,
          ospfPmIfStatsLsaBadType,
          ospfPmIfStatsLsaBadLen,
          ospfPmIfStatsLsaBadData,
          ospfPmIfStatsLsaBadCksum,
          ospfPmIfStatsIfStandby,
          ospfPmIfStatsUnkNbmaNbr,
          ospfPmIfStatsUnkVirtNbr,
          ospfPmIfStatsAuthMismatch,
          ospfPmIfStatsAuthFailure,
          ospfPmIfStatsHelloMismatch,
          ospfPmIfStatsDeadMismatch,
          ospfPmIfStatsNetmaskMismatch,
          ospfPmIfStatsOptionsMismatch,
          ospfPmIfStatsNbrAdminDown,
          ospfPmIfStatsPktLocalAddr,
          ospfPmIfStatsMaIfNotP2p,
          ospfPmIfStatsBadPacket
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for the proprietary ospfPmIfStatsTable."
        ::= { ospfGroups 34 }

     ospfPropVirtIfStatsGroup OBJECT-GROUP
        OBJECTS {
          ospfPmVirtIfStatsRxInvalid,
          ospfPmVirtIfStatsRxInvalidByte,
          ospfPmVirtIfStatsRxHello,
          ospfPmVirtIfStatsRxHelloByte,
          ospfPmVirtIfStatsRxDbDes,
          ospfPmVirtIfStatsRxDbDesByte,
          ospfPmVirtIfStatsRxLsReq,
          ospfPmVirtIfStatsRxLsReqByte,
          ospfPmVirtIfStatsRxLsUpd,
          ospfPmVirtIfStatsRxLsUpdByte,
          ospfPmVirtIfStatsRxLsAck,
          ospfPmVirtIfStatsRxLsAckByte,
          ospfPmVirtIfStatsTxFailed,
          ospfPmVirtIfStatsTxFailedByte,
          ospfPmVirtIfStatsTxHello,
          ospfPmVirtIfStatsTxHelloByte,
          ospfPmVirtIfStatsTxDbDes,
          ospfPmVirtIfStatsTxDbDesByte,
          ospfPmVirtIfStatsTxLsReq,
          ospfPmVirtIfStatsTxLsReqByte,
          ospfPmVirtIfStatsTxLsUpd,
          ospfPmVirtIfStatsTxLsUpdByte,
          ospfPmVirtIfStatsTxLsAck,
          ospfPmVirtIfStatsTxLsAckByte,
          ospfPmVirtIfStatsLength,
          ospfPmVirtIfStatsCksum,
          ospfPmVirtIfStatsVersion,
          ospfPmVirtIfStatsBadSrc,
          ospfPmVirtIfStatsAreaMismatch,
          ospfPmVirtIfStatsSelfOrig,
          ospfPmVirtIfStatsDupeId,
          ospfPmVirtIfStatsHello,
          ospfPmVirtIfStatsMtuMismatch,
          ospfPmVirtIfStatsNbrIgnored,
          ospfPmVirtIfStatsAuth,
          ospfPmVirtIfStatsWrongProto,
          ospfPmVirtIfStatsResourceErr,
          ospfPmVirtIfStatsVirtMaIfClash,
          ospfPmVirtIfStatsBadLsaLen,
          ospfPmVirtIfStatsLsaBadType,
          ospfPmVirtIfStatsLsaBadLen,
          ospfPmVirtIfStatsLsaBadData,
          ospfPmVirtIfStatsLsaBadCksum,
          ospfPmVirtIfStatsUnkNbmaNbr,
          ospfPmVirtIfStatsUnkVirtNbr,
          ospfPmVirtIfStatsAuthMismatch,
          ospfPmVirtIfStatsAuthFailure,
          ospfPmVirtIfStatsHelloMismatch,
          ospfPmVirtIfStatsDeadMismatch,
          ospfPmVirtIfStatsNetmaskMismatch,
          ospfPmVirtIfStatsOptionsMismatch,
          ospfPmVirtIfStatsNbrAdminDown,
          ospfPmVirtIfStatsPktLocalAddr,
          ospfPmVirtIfStatsMaIfNotP2p,
          ospfPmVirtIfStatsBadPacket
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for the proprietary ospfPmVirtIfStatsTable."
        ::= { ospfGroups 35 }

     ospfPropShamLinkStatsGroup OBJECT-GROUP
        OBJECTS {
          ospfPmShamLinkStatsRxInvalid,
          ospfPmShamLinkStatsRxInvalidByte,
          ospfPmShamLinkStatsRxHello,
          ospfPmShamLinkStatsRxHelloByte,
          ospfPmShamLinkStatsRxDbDes,
          ospfPmShamLinkStatsRxDbDesByte,
          ospfPmShamLinkStatsRxLsReq,
          ospfPmShamLinkStatsRxLsReqByte,
          ospfPmShamLinkStatsRxLsUpd,
          ospfPmShamLinkStatsRxLsUpdByte,
          ospfPmShamLinkStatsRxLsAck,
          ospfPmShamLinkStatsRxLsAckByte,
          ospfPmShamLinkStatsTxFailed,
          ospfPmShamLinkStatsTxFailedByte,
          ospfPmShamLinkStatsTxHello,
          ospfPmShamLinkStatsTxHelloByte,
          ospfPmShamLinkStatsTxDbDes,
          ospfPmShamLinkStatsTxDbDesByte,
          ospfPmShamLinkStatsTxLsReq,
          ospfPmShamLinkStatsTxLsReqByte,
          ospfPmShamLinkStatsTxLsUpd,
          ospfPmShamLinkStatsTxLsUpdByte,
          ospfPmShamLinkStatsTxLsAck,
          ospfPmShamLinkStatsTxLsAckByte,
          ospfPmShamLinkStatsLength,
          ospfPmShamLinkStatsCksum,
          ospfPmShamLinkStatsVersion,
          ospfPmShamLinkStatsBadSrc,
          ospfPmShamLinkStatsAreaMismatch,
          ospfPmShamLinkStatsSelfOrig,
          ospfPmShamLinkStatsDupeId,
          ospfPmShamLinkStatsHello,
          ospfPmShamLinkStatsMtuMismatch,
          ospfPmShamLinkStatsNbrIgnored,
          ospfPmShamLinkStatsAuth,
          ospfPmShamLinkStatsWrongProto,
          ospfPmShamLinkStatsResourceErr,
          ospfPmShamLinkStatsVirtMaIfClash,
          ospfPmShamLinkStatsBadLsaLen,
          ospfPmShamLinkStatsLsaBadType,
          ospfPmShamLinkStatsLsaBadLen,
          ospfPmShamLinkStatsLsaBadData,
          ospfPmShamLinkStatsLsaBadCksum,
          ospfPmShamLinkStatsUnkNbmaNbr,
          ospfPmShamLinkStatsUnkVirtNbr,
          ospfPmShamLinkStatsAuthMismatch,
          ospfPmShamLinkStatsAuthFailure,
          ospfPmShamLinkStatsNetmaskMsmtch,
          ospfPmShamLinkStatsHelloMismatch,
          ospfPmShamLinkStatsDeadMismatch,
          ospfPmShamLinkStatsOptionsMsmtch,
          ospfPmShamLinkStatsNbrAdminDown,
          ospfPmShamLinkStatsPktLocalAddr,
          ospfPmShamLinkStatsMaIfNotP2p,
          ospfPmShamLinkStatsBadPacket
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for the proprietary
            ospfPmShamLinkStatsTable."
        ::= { ospfGroups 36 }

     ospfPmMaIfStatsGroup OBJECT-GROUP
        OBJECTS {
          ospfPmMaIfStatsRxInvalid,
          ospfPmMaIfStatsRxInvalidByte,
          ospfPmMaIfStatsRxHello,
          ospfPmMaIfStatsRxHelloByte,
          ospfPmMaIfStatsRxDbDes,
          ospfPmMaIfStatsRxDbDesByte,
          ospfPmMaIfStatsRxLsReq,
          ospfPmMaIfStatsRxLsReqByte,
          ospfPmMaIfStatsRxLsUpd,
          ospfPmMaIfStatsRxLsUpdByte,
          ospfPmMaIfStatsRxLsAck,
          ospfPmMaIfStatsRxLsAckByte,
          ospfPmMaIfStatsTxFailed,
          ospfPmMaIfStatsTxFailedByte,
          ospfPmMaIfStatsTxHello,
          ospfPmMaIfStatsTxHelloByte,
          ospfPmMaIfStatsTxDbDes,
          ospfPmMaIfStatsTxDbDesByte,
          ospfPmMaIfStatsTxLsReq,
          ospfPmMaIfStatsTxLsReqByte,
          ospfPmMaIfStatsTxLsUpd,
          ospfPmMaIfStatsTxLsUpdByte,
          ospfPmMaIfStatsTxLsAck,
          ospfPmMaIfStatsTxLsAckByte,
          ospfPmMaIfStatsLength,
          ospfPmMaIfStatsCksum,
          ospfPmMaIfStatsVersion,
          ospfPmMaIfStatsBadSrc,
          ospfPmMaIfStatsAreaMismatch,
          ospfPmMaIfStatsSelfOrig,
          ospfPmMaIfStatsDupeId,
          ospfPmMaIfStatsHello,
          ospfPmMaIfStatsMtuMismatch,
          ospfPmMaIfStatsNbrIgnored,
          ospfPmMaIfStatsAuth,
          ospfPmMaIfStatsWrongProto,
          ospfPmMaIfStatsResourceErr,
          ospfPmMaIfStatsVirtMaIfClash,
          ospfPmMaIfStatsBadLsaLen,
          ospfPmMaIfStatsLsaBadType,
          ospfPmMaIfStatsLsaBadLen,
          ospfPmMaIfStatsLsaBadData,
          ospfPmMaIfStatsLsaBadCksum,
          ospfPmMaIfStatsUnkNbmaNbr,
          ospfPmMaIfStatsUnkVirtNbr,
          ospfPmMaIfStatsAuthMismatch,
          ospfPmMaIfStatsAuthFailure,
          ospfPmMaIfStatsHelloMismatch,
          ospfPmMaIfStatsDeadMismatch,
          ospfPmMaIfStatsNetmaskMismatch,
          ospfPmMaIfStatsOptionsMismatch,
          ospfPmMaIfStatsNbrAdminDown,
          ospfPmMaIfStatsPktLocalAddr,
          ospfPmMaIfStatsMaIfNotP2p,
          ospfPmMaIfStatsBadPacket
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for the proprietary
            ospfPmMaIfStatsTable."
        ::= { ospfGroups 37 }

     ospfPmSpfEntryGroup OBJECT-GROUP
        OBJECTS {
          ospfPmSpfEntryNextHopAddr,
          ospfPmSpfEntryIfIndex,
          ospfPmSpfEntryCost,
          ospfPmSpfEntryIsASBR,
          ospfPmSpfEntryIsABR,
          ospfPmSpfEntryIsVirtEndpt,
          ospfPmSpfEntryCalcIndex
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for the proprietary
            ospfPmSpfEntryTable."
        ::= { ospfGroups 39 }

     ospfPmRouteTableGroup OBJECT-GROUP
        OBJECTS {
          ospfPmRouteNextHopAddr,
          ospfPmRouteIfIndex,
          ospfPmRouteAreaId,
          ospfPmRouteCost,
          ospfPmRoutePathType,
          ospfPmRouteCalcIndex
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for the proprietary
            ospfPmRouteTable."
        ::= { ospfGroups 40 }

     ospfPmRouterDestGroup OBJECT-GROUP
        OBJECTS {
         ospfPmRouterDestNextHopAddr,
         ospfPmRouterDestIfIndex,
         ospfPmRouterDestCost,
         ospfPmRouterDestIsASBR,
         ospfPmRouterDestIsABR,
         ospfPmRouterDestIsVirtEndpt,
         ospfPmRouterDestPathType,
         ospfPmRouterDestCalcIndex
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for the proprietary
            ospfPmRouterDestTable."
        ::= { ospfGroups 41 }

     ospfPropNmEntStatsGroup OBJECT-GROUP
        OBJECTS {
          ospfNmEntStatsLength,
          ospfNmEntStatsNoIf,
          ospfNmEntStatsNoVirtLink,
          ospfNmEntStatsInstanceId,
          ospfNmEntStatsBadIpHdrLen,
          ospfNmEntStatsVersion,
          ospfNmEntStatsBadSrc,
          ospfNmEntStatsResourceErr,
          ospfNmEntStatsBadPacket
        }
        STATUS current
        DESCRIPTION
            "Proprietary objects for the proprietary ospfNmEntStatsTable."
        ::= { ospfGroups 38 }

--  Traps
ospfTrap OBJECT IDENTIFIER ::= { ospfMib 3 }

--  Trap Support Objects

   --  The following are support objects for the OSPF traps.

     ospfTrapControl OBJECT IDENTIFIER ::= { ospfTrap 1 }

     ospfConfigErrorType OBJECT-TYPE
          SYNTAX       INTEGER {
                          badVersion (1),
                          areaMismatch (2),
                          unknownNbmaNbr (3), -- Router is DR eligible
                          unknownVirtualNbr (4),
                          authTypeMismatch(5),
                          authFailure (6),
                          netMaskMismatch (7),
                          helloIntervalMismatch (8),
                          deadIntervalMismatch (9),
                          optionMismatch (10),
                          mtuMismatch (11),
                          duplicateRouterId (12) }
          MAX-ACCESS   read-only
          STATUS   current
          DESCRIPTION
             "Potential types of configuration conflicts.
             Used by the ospfConfigError and
             ospfConfigVirtError traps.  When the last value
             of a trap using this object is needed, but no
             traps of that type have been sent, this value
             pertaining to this object should be returned as
             noError."
          ::= { ospfTrapControl 1 }

     ospfPacketType OBJECT-TYPE
          SYNTAX       INTEGER {
                          hello (1),
                          dbDescript (2),
                          lsReq (3),
                          lsUpdate (4),
                          lsAck (5) }
          MAX-ACCESS   read-only
          STATUS       current
          DESCRIPTION
             "OSPF packet types.  When the last value of a trap
             using this object is needed, but no traps of
             that type have been sent, this value pertaining
             to this object should be returned as nullPacket."
          ::= { ospfTrapControl 2 }

     ospfPacketSrc OBJECT-TYPE
          SYNTAX       IpAddress
          MAX-ACCESS   read-only
          STATUS       current
          DESCRIPTION
             "The IP address of an inbound packet that cannot
             be identified by a neighbor instance.  When
             the last value of a trap using this object is
             needed, but no traps of that type have been sent,
             this value pertaining to this object should
             be returned as 0.0.0.0."
          ::= { ospfTrapControl 3 }

     ospfTrapVirtIfAreaId OBJECT-TYPE
          SYNTAX       AreaID
          MAX-ACCESS   accessible-for-notify
          STATUS       current
          DESCRIPTION
             "Version of ospfPmVirtIfAreaId used for traps."
          ::= { ospfTrapControl 4 }

     ospfTrapVirtIfNeighbor OBJECT-TYPE
          SYNTAX       RouterID
          MAX-ACCESS   accessible-for-notify
          STATUS       current
          DESCRIPTION
             "Version of ospfPmVirtIfNeighbor used for traps."
          ::= { ospfTrapControl 5 }

     ospfTrapPmEntIndex OBJECT-TYPE
          SYNTAX       OspfPmIndex
          MAX-ACCESS   accessible-for-notify
          STATUS       current
          DESCRIPTION
             "Version of ospfPmEntIndex used for traps."
          ::= { ospfTrapControl 6 }

     ospfTrapNbrIpAddr OBJECT-TYPE
          SYNTAX       IpAddress
          MAX-ACCESS   accessible-for-notify
          STATUS       current
          DESCRIPTION
             "Version of ospfPmNbrIpAddr used for traps."
          ::= { ospfTrapControl 7 }

     ospfTrapNbrAddressLessIndex OBJECT-TYPE
          SYNTAX       InterfaceIndexOrZero
          MAX-ACCESS   accessible-for-notify
          STATUS       current
          DESCRIPTION
             "Version of ospfPmNbrAddressLessIndex used for traps."
          ::= { ospfTrapControl 8 }

     ospfTrapVirtNbrArea OBJECT-TYPE
          SYNTAX       AreaID
          MAX-ACCESS   accessible-for-notify
          STATUS       current
          DESCRIPTION
             "Version of ospfPmVirtNbrArea used for traps."
          ::= { ospfTrapControl 9 }

     ospfTrapVirtNbrRtrId OBJECT-TYPE
          SYNTAX       RouterID
          MAX-ACCESS   accessible-for-notify
          STATUS       current
          DESCRIPTION
             "Version of ospfPmVirtNbrRtrId used for traps."
          ::= { ospfTrapControl 10 }

     ospfTrapNmEntIndexValid OBJECT-TYPE
          SYNTAX       TruthValue
          MAX-ACCESS   accessible-for-notify
          STATUS       current
          DESCRIPTION
             "Whether the trap was generated by OSPF-NM or not."
          ::= { ospfTrapControl 11 }

     ospfTrapNmEntIndex    OBJECT-TYPE
          SYNTAX       OspfPmIndex
          MAX-ACCESS   accessible-for-notify
          STATUS       current
          DESCRIPTION
             "Version of ospfNmEntIndex used for traps."
          ::= { ospfTrapControl 12 }

     ospfTrapIfIpAddress OBJECT-TYPE
          SYNTAX       IpAddress
          MAX-ACCESS   accessible-for-notify
          STATUS       current
          DESCRIPTION
             "Version of ospfPmIfIpAddress used for traps."
          ::= { ospfTrapControl 13 }

     ospfTrapAddressLessIf OBJECT-TYPE
          SYNTAX       InterfaceIndexOrZero
          MAX-ACCESS   accessible-for-notify
          STATUS       current
          DESCRIPTION
             "Version of ospfPmAddressLessIf used for traps."
          ::= { ospfTrapControl 14 }

     ospfTrapAreaId OBJECT-TYPE
          SYNTAX       AreaID
          MAX-ACCESS   accessible-for-notify
          STATUS       current
          DESCRIPTION
               "Version of ospfPmAreaId used for traps."
          ::= { ospfTrapControl 15 }

--  Traps

     ospfTraps OBJECT IDENTIFIER ::= { ospfTrap 0 }

     ospfVirtIfStateChange NOTIFICATION-TYPE
          OBJECTS { ospfPmEntRouterId,
             ospfTrapVirtIfAreaId,
             ospfTrapVirtIfNeighbor,
             ospfPmVirtIfState,
             ospfTrapPmEntIndex
             }
          STATUS       current
          DESCRIPTION
             "DC-OSPF generates this trap when the state of a virtual
              interface changes."
          ::= { ospfTraps 1 }

     ospfNbrStateChange NOTIFICATION-TYPE
          OBJECTS { ospfPmEntRouterId,
             ospfTrapNbrIpAddr,
             ospfTrapNbrAddressLessIndex,
             ospfPmNbrRtrId,
             ospfPmNbrState,
             ospfTrapPmEntIndex
             }
          STATUS       current
          DESCRIPTION
             "DC-OSPF generates this trap when the state of a neighbor
              changes."
          ::= { ospfTraps 2 }

     ospfVirtNbrStateChange NOTIFICATION-TYPE
          OBJECTS { ospfPmEntRouterId,
             ospfTrapVirtNbrArea,
             ospfTrapVirtNbrRtrId,
             ospfPmVirtNbrState,
             ospfTrapPmEntIndex
             }
          STATUS       current
          DESCRIPTION
             "DC-OSPF generates this trap when the state of a virtual
              neighbor changes."
          ::= { ospfTraps 3 }

     ospfIfConfigError NOTIFICATION-TYPE
          OBJECTS { ospfPmEntRouterId,
             ospfTrapIfIpAddress,
             ospfTrapAddressLessIf,
             ospfPacketSrc,
             ospfConfigErrorType,
             ospfPacketType,
             ospfTrapPmEntIndex,
             ospfTrapNmEntIndexValid,
             ospfTrapNmEntIndex
             }
          STATUS       current
          DESCRIPTION
             "DC-OSPF generates this trap when a packet is received,
              matched to a network interface and then dropped because of
              mismatching configuration."
          ::= { ospfTraps 4 }

     ospfVirtIfConfigError NOTIFICATION-TYPE
          OBJECTS { ospfPmEntRouterId,
             ospfTrapVirtIfAreaId,
             ospfTrapVirtIfNeighbor,
             ospfConfigErrorType,
             ospfPacketType,
             ospfTrapPmEntIndex,
             ospfTrapNmEntIndexValid,
             ospfTrapNmEntIndex
             }
          STATUS       current
          DESCRIPTION
             "DC-OSPF generates this trap when a packet is received,
              matched to a virtual interface and then dropped because of
              mismatching configuration."
          ::= { ospfTraps 5 }

     ospfIfAuthFailure NOTIFICATION-TYPE
          OBJECTS { ospfPmEntRouterId,
             ospfTrapIfIpAddress,
             ospfTrapAddressLessIf,
             ospfPacketSrc,
             ospfConfigErrorType,
             ospfPacketType,
             ospfTrapNmEntIndex,
             ospfTrapPmEntIndex
             }
          STATUS       current
          DESCRIPTION
             "DC-OSPF generates this trap when a packet is received that
              fails to authenticate over a network interface."
          ::= { ospfTraps 6 }

     ospfVirtIfAuthFailure NOTIFICATION-TYPE
          OBJECTS { ospfPmEntRouterId,
             ospfTrapVirtIfAreaId,
             ospfTrapVirtIfNeighbor,
             ospfConfigErrorType,
             ospfPacketType,
             ospfTrapNmEntIndex,
             ospfTrapPmEntIndex
             }
          STATUS       current
          DESCRIPTION
             "DC-OSPF generates this trap when a packet is received that
              fails to authenticate over a virtual interface."
          ::= { ospfTraps 7 }

     ospfIfStateChange NOTIFICATION-TYPE
          OBJECTS { ospfPmEntRouterId,
             ospfTrapIfIpAddress,
             ospfTrapAddressLessIf,
             ospfPmIfState,
             ospfTrapPmEntIndex
             }
          STATUS       current
          DESCRIPTION
             "DC-OSPF generates this trap when the state of a network
              interface changes."
          ::= { ospfTraps 8 }

     ospfNssaTranslatorStatusChange NOTIFICATION-TYPE
          OBJECTS { ospfPmEntRouterId,
             ospfTrapAreaId,
             ospfPmAreaNssaTranslatorState,
             ospfTrapPmEntIndex
             }
          STATUS       current
          DESCRIPTION
             "DC-OSPF generates this trap when the local router's ability
              to translate type-5 LSAs changes."
          ::= { ospfTraps 9 }

     ospfNbrRestartHelperStatusChange NOTIFICATION-TYPE
          OBJECTS { ospfPmEntRouterId,
                    ospfTrapNbrIpAddr,
                    ospfTrapNbrAddressLessIndex,
                    ospfPmNbrRtrId,
                    ospfPmNbrRestartHelperStatus,
                    ospfPmNbrRestartHelperAge,
                    ospfPmNbrRestartHelperExitReason,
                    ospfTrapPmEntIndex
                  }
          STATUS       current
          DESCRIPTION
             "DC-OSPF PM generates this trap when it enters or leaves
              graceful restart helper state for a neighbor on a network
              interface."
          ::= { ospfTraps 10 }

     ospfVirtNbrRstrtHelperStatusChng NOTIFICATION-TYPE
          OBJECTS { ospfPmEntRouterId,
                    ospfTrapVirtNbrArea,
                    ospfTrapVirtNbrRtrId,
                    ospfPmVirtNbrRestartHelperStatus,
                    ospfPmVirtNbrRestartHelperAge,
                    ospfPmVirtNbrRestartHelperExit,
                    ospfTrapPmEntIndex
                  }
          STATUS       current
          DESCRIPTION
             "DC-OSPF PM generates this trap when it enters or leaves
              graceful restart helper state for a virtual neighbor."
          ::= { ospfTraps 11 }

     ospfPmOperStateChange NOTIFICATION-TYPE
          OBJECTS { ospfPmEntRouterId,
                    ospfPmEntOperStatus,
                    ospfTrapPmEntIndex
                  }
          STATUS       current
          DESCRIPTION
             "DC-OSPF generates this trap when the operational state of
              OSPF-PM enters UP, DOWN or ACT_FAILED state."
          ::= { ospfTraps 12 }

   --  conformance information

   ospfTrapConformance OBJECT IDENTIFIER ::= { ospfTrap 2 }
   ospfTrapGroups      OBJECT IDENTIFIER ::= { ospfTrapConformance 1 }
   ospfTrapCompliances OBJECT IDENTIFIER ::= { ospfTrapConformance 2 }

   --  compliance statements

   ospfTrapCompliance MODULE-COMPLIANCE
        STATUS       obsolete
        DESCRIPTION
           "The compliance statement."
        MODULE       -- this module
        MANDATORY-GROUPS { ospfTrapControlGroup }

        GROUP       ospfTrapControlGroup
        DESCRIPTION
           "This group is optional but recommended for all
           OSPF systems."
        ::= { ospfTrapCompliances 1 }

   ospfTrapCompliance2 MODULE-COMPLIANCE
        STATUS       current
        DESCRIPTION
           "The compliance statement."
        MODULE       -- this module
        MANDATORY-GROUPS { ospfTrapEventGroup }
        ::= { ospfTrapCompliances 2 }

   --  units of conformance

     ospfTrapEventGroup       NOTIFICATION-GROUP
          NOTIFICATIONS {
             ospfVirtIfStateChange,
             ospfNbrStateChange,
             ospfVirtNbrStateChange,
             ospfIfConfigError,
             ospfVirtIfConfigError,
             ospfIfAuthFailure,
             ospfVirtIfAuthFailure,
             ospfIfStateChange,
             ospfNssaTranslatorStatusChange,
             ospfNbrRestartHelperStatusChange,
             ospfVirtNbrRstrtHelperStatusChng,
             ospfPmOperStateChange
             }

          STATUS        current
          DESCRIPTION
             "A grouping of OSPF trap events, as specified
             in NOTIFICATION-TYPE constructs."
          ::= { ospfTrapGroups 1 }

     ospfTrapControlGroup       OBJECT-GROUP
          OBJECTS {
             ospfConfigErrorType,
             ospfPacketType,
             ospfPacketSrc,
             ospfTrapVirtIfAreaId,
             ospfTrapVirtIfNeighbor,
             ospfTrapPmEntIndex,
             ospfTrapNbrIpAddr,
             ospfTrapNbrAddressLessIndex,
             ospfTrapVirtNbrArea,
             ospfTrapVirtNbrRtrId,
             ospfTrapNmEntIndexValid,
             ospfTrapNmEntIndex,
             ospfTrapIfIpAddress,
             ospfTrapAddressLessIf,
             ospfTrapAreaId
             }

          STATUS        current
          DESCRIPTION
             "A grouping of objects required for OSPF traps."
          ::= { ospfTrapGroups 2 }

END

