RFC4750

From RFC-Wiki

Network Working Group D. Joyal, Ed. Request for Comments: 4750 Nortel Obsoletes: 1850 P. Galecki, Ed. Category: Standards Track Airvana

                                                   S. Giacalone, Ed.
                                                                CSFB
                                                Original Authors:
                                                           R. Coltun
                                                      Touch Acoustra
                                                            F. Baker
                                                       Cisco Systems
                                                       December 2006
          OSPF Version 2 Management Information Base

Status of This Memo

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

Copyright Notice

Copyright (C) The IETF Trust (2006).

Abstract

This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in TCP/IP-based internets. In particular, it defines objects for managing version 2 of the Open Shortest Path First Routing Protocol. Version 2 of the OSPF protocol is specific to the IPv4 address family. Version 3 of the OSPF protocol is specific to the IPv6 address family.

This memo obsoletes RFC 1850; however, it is designed to be backwards compatible. The functional differences between this memo and RFC 1850 are explained in Appendix B.

       2.1.3. Link State Database and External Link State
       2.1.8. Local Link State Database Table and Virtual

Overview

The Internet-Standard Management Framework

For a detailed overview of the documents that describe the current Internet-Standard Management Framework, please refer to section 7 of RFC 3410 RFC3410.

Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. MIB objects are generally accessed through the Simple Network Management Protocol (SNMP). Objects in the MIB are defined using the mechanisms defined in the Structure of Management Information (SMI). This memo specifies a MIB module that is compliant to the SMIv2, which is described in STD 58, RFC 2578 RFC2578, STD 58, RFC 2579 RFC2579 and STD 58, RFC 2580 RFC2580.

Conceptual Row Creation

For the benefit of row-creation in "conceptual" tables, DEFVAL (Default Value) clauses are included in the definitions in section 3, suggesting values that an agent should use for instances of variables that need to be created due to a Set-Request, but that are not specified in the Set-Request. DEFVAL clauses have not been specified for some objects that are read-only, implying that they are zeroed upon row creation. These objects are of the SYNTAX Counter32 or Gauge32.

For those objects not having a DEFVAL clause, both management stations and agents should heed the Robustness Principle of the Internet (see RFC791):

"be liberal in what you accept, conservative in what you send"

Therefore, management stations should include as many of these columnar objects as possible (e.g., all read-write objects) in a Set-Request when creating a conceptual row. Agents should accept a Set-Request with as few of these columnar objects as they need (e.g., the minimum contents of a "row-creating" SET consists of those objects for which, as they cannot be intuited, no default is specified).

Default Configuration

OSPF is a powerful routing protocol, equipped with features to handle virtually any configuration requirement that might reasonably be found within an Autonomous System (AS). With this power comes a fair degree of complexity, which the sheer number of objects in the MIB will attest to. Care has therefore been taken, in constructing this MIB, to define default values for virtually every object, to minimize the amount of parameterization required in the typical case. That default configuration is as follows:

Given the following assumptions:

- IP has already been configured.

- The ifTable has already been configured.

- ifSpeed is estimated by the interface drivers.

- The OSPF process automatically discovers all IP interfaces and

 creates corresponding OSPF interfaces.

- The OSPF process automatically creates the areas required for the

 interfaces.

The simplest configuration of an OSPF process requires the following:

- The OSPF process be enabled.

This can be accomplished with a single SET:

  ospfAdminStat := enabled.

The configured system will have the following attributes:

- The RouterID will be one of the IP addresses of the device.

- The device will be neither an Area Border Router nor an Autonomous

 System Border Router.

- Every IP interface, with or without an address, will be an OSPF

 interface.

- The AreaID of each interface will be 0.0.0.0, the backbone.

- Authentication will be disabled.

- All broadcast and point-to-point interfaces will be operational.

 Non-broadcast multi-access (NBMA) interfaces require the
 configuration of at least one neighbor.

- Timers on all direct interfaces will be:

 Hello Interval:        10 seconds
 Dead Timeout:          40 Seconds
 Retransmission:         5 Seconds
 Transit Delay:          1 Second
 Poll Interval:        120 Seconds

- No direct links to hosts will be configured.

- No addresses will be summarized.

- Metrics, being a measure of bit duration, are unambiguous and

 intelligent.

- No virtual links will be configured.

OSPF Counters

This MIB defines several counters, namely:

- ospfOriginateNewLsas, ospfRxNewLsas in the ospfGeneralGroup - ospfSpfRuns, ospfAreaNssaTranslatorEvents in the ospfAreaTable - ospfIfEvents in the ospfIfTable - ospfVirtIfEvents in the ospfVirtIfTable - ospfNbrEvents in the ospfNbrTable - ospfVirtNbrEvents in the ospfVirtNbrTable

As a best practice, a management entity, when reading these counters, should use the discontinuity object, ospfDiscontinuityTime, to determine if an event that would invalidate the management entity understanding of the counters has occurred. A restart of the OSPF routing process is a possible example of a discontinuity event.

Multiple OSPF Instances

SNMPv3 supports "Contexts" that can be used to implement MIB views on multiple OSPF instances on the same system. See RFC3411 or its successors for details.

Conventions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 RFC2119.

Structure of This MIB

This MIB is composed of the following sections:

  General Variables
  Area Data Structure
  Area Stub Metric Table
  Link State Database (LSDB)
  Address Range Table
  Host Table
  Interface Table
  Interface Metric Table
  Virtual Interface Table
  Neighbor Table
  Virtual Neighbor Table
  External Link State Database
  Aggregate Range Table
  Local Link State Database
  AS-scope Link State Database

It supports the base OSPFv2 specification RFC2328 and extensions to OSPFv2 such as RFC1765, RFC1793, RFC2370, RFC3101 and RFC3623.

There exists a separate MIB for notifications ("traps"), which is entirely optional.

The Purposes of the Sections in This MIB

General Variables

The general variables describe (as it may seem from the name) variables that are global to the OSPF Process.

Area Data Structure and Area Stub Metric Table

The Area Data Structure describes all of the OSPF Areas that the router participates in. The Area Table includes data for Not-So- Stubby-Area (NSSA) translation.

The Area Stub Metric Table describes the metrics advertised into a stub area by the default router(s).

Link State Database and External Link State Database

The link state database is provided primarily to provide detailed information for network debugging.

Address Table and Host Tables

The Address Range Table and Host Table are provided to view configured Network Summary and host route information.

Interface and Interface Metric Tables

The Interface Table and the Interface Metric Table together describe the various IP interfaces to OSPF. The metrics are placed in separate tables in order to simplify dealing with multiple types of service. The Interface table includes link-local (Opaque type-9) link state advertisement (LSA) statistics.

Virtual Interface Table

The Virtual Interface Table describes virtual links to the OSPF Process, similarly to the (non-virtual) Interface Tables. This Table includes link-local (Opaque type-9) LSA statistics.

Neighbor and Virtual Neighbor Tables

The Neighbor Table and the Virtual Neighbor Table describe the neighbors to the OSPF Process.

Local Link State Database Table and Virtual Local Link State

    Database Table

The Local Link State Database Table and Virtual Local Link State Database Table are identical to the OSPF LSDB Table in format, but contain only link-local (Opaque type-9) link state advertisements for non-virtual and virtual links.

AS-scope Link State Database Table

The AS-scope Link State Database Table is identical to the OSPF LSDB Table in format, but contains only AS-scoped link state advertisements.

2.1.10. Area LSA Count Table

The table, which maintains number of link state advertisements on the per-area, per-LSA-type basis.

OSPF MIB Module

OSPF-MIB DEFINITIONS ::= BEGIN

IMPORTS

MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32,
Integer32, Unsigned32, IpAddress, mib-2
             FROM SNMPv2-SMI
TEXTUAL-CONVENTION, TruthValue, RowStatus, TimeStamp
             FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP
             FROM SNMPv2-CONF
InterfaceIndexOrZero
             FROM IF-MIB;

ospf MODULE-IDENTITY

   LAST-UPDATED "200611100000Z" -- November 10, 2006 00:00:00 EST
   ORGANIZATION "IETF OSPF Working Group"
   CONTACT-INFO
   "WG E-Mail: [email protected]
    WG Chairs: [email protected]
               [email protected]
    Editors:   Dan Joyal
               Nortel
               600 Technology Park Drive
               Billerica, MA  01821
               [email protected]
               Piotr Galecki
               Airvana
               19 Alpha Road
               Chelmsford, MA 01824
               [email protected]
               Spencer Giacalone
               CSFB
               Eleven Madison Ave
               New York, NY 10010-3629
               [email protected]"
   DESCRIPTION
      "The MIB module to describe the OSPF Version 2
      Protocol.  Note that some objects in this MIB
      module may pose a significant security risk.
      Refer to the Security Considerations section
      in RFC 4750 for more information.
      Copyright (C) The IETF Trust (2006).
      This version of this MIB module is part of
      RFC 4750;  see the RFC itself for full legal
      notices."
   REVISION "200611100000Z" -- November 10, 2006 09:00:00 EST
   DESCRIPTION
     "Updated for latest changes to OSPF Version 2:
      - updated the General Group with the new
        ospfRFC1583Compatibility, ospfReferenceBandwidth
        and ospfDiscontinuityTime objects
      - added graceful-restart-related objects
      - added stub-router-related objects
      - updated the Area Table with NSSA-related objects
      - added ospfAreaAggregateExtRouteTag object
      - added Opaque LSA-related objects
      - updates to the Compliances and Security sections
      - added area LSA counter table
      - added section describing translation of notification
        parameters between SNMP versions
      - added ospfComplianceObsolete to contain obsolete
        object groups
      - deprecated ospfExtLsdbTable
      See Appendix B of RFC 4750 for more details.
      This version published as part of RFC 4750"
   REVISION "199501201225Z" -- Fri Jan 20 12:25:50 PST 1995
   DESCRIPTION
      "The initial SMIv2 revision of this MIB module, published
      in RFC 1850."
   ::= { mib-2 14 }

AreaID ::= TEXTUAL-CONVENTION

   STATUS       current
   DESCRIPTION
      "An OSPF Area Identifier.
       Note that 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."
   SYNTAX       IpAddress

RouterID ::= TEXTUAL-CONVENTION

   STATUS       current
   DESCRIPTION
      "A OSPF Router Identifier.
       Note that the Router ID, in OSPF, has the same format
       as an IP address, but identifies the router independent
       of its IP address."
   SYNTAX       IpAddress

Metric ::= TEXTUAL-CONVENTION

   DISPLAY-HINT "d-0"
   STATUS       current
   DESCRIPTION
      "The OSPF internal metric.
       Note that the OSPF metric is defined as an unsigned value
       in the range."
   SYNTAX       Integer32 (0..'FFFF'h)

BigMetric ::= TEXTUAL-CONVENTION

   DISPLAY-HINT "d-0"
   STATUS       current
   DESCRIPTION
      "The OSPF external metric."
   SYNTAX       Integer32 (0..'FFFFFF'h)

Status ::= TEXTUAL-CONVENTION

   STATUS       current
   DESCRIPTION
      "An indication of the operability of an OSPF
      function or feature.  For example, the status
      of an interface: 'enabled' indicates that
      it is willing to communicate with other OSPF routers,
      and 'disabled' indicates that it is not."
   SYNTAX       INTEGER { enabled (1), disabled (2) }

PositiveInteger ::= TEXTUAL-CONVENTION

   DISPLAY-HINT "d-0"
   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

   DISPLAY-HINT "d-0"
   STATUS       current
   DESCRIPTION
      "The range of intervals in seconds on which Hello messages
      are exchanged."
   SYNTAX       Integer32 (1..'FFFF'h)

UpToMaxAge ::= TEXTUAL-CONVENTION

   DISPLAY-HINT "d-0"
   STATUS       current
   DESCRIPTION
      "The values in seconds that one might find or configure
      for variables bounded by the maximum age of an LSA."
   SYNTAX       Integer32 (0..3600)

DesignatedRouterPriority ::= TEXTUAL-CONVENTION

   DISPLAY-HINT "d-0"
   STATUS       current
   DESCRIPTION
      "The range of values defined for the priority of a system
      for becoming the designated router."
   SYNTAX       Integer32 (0..'FF'h)

TOSType ::= TEXTUAL-CONVENTION

   DISPLAY-HINT "d-0"
   STATUS      current
   DESCRIPTION
    "Type of Service (TOS) 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)

OspfAuthenticationType ::= TEXTUAL-CONVENTION

   STATUS       current
   DESCRIPTION
      "The authentication type."
   SYNTAX       INTEGER {
                   none (0),
                   simplePassword (1),
                   md5 (2)
                   -- reserved for specification by IANA (> 2)
                }

-- OSPF General Variables

-- Note: These parameters apply globally to the Router's -- OSPF Process.

ospfGeneralGroup OBJECT IDENTIFIER ::= { ospf 1 }

 ospfRouterId OBJECT-TYPE
   SYNTAX       RouterID
   MAX-ACCESS   read-write
   STATUS       current
   DESCRIPTION
      "A 32-bit integer uniquely identifying the
      router in the Autonomous System.
      By convention, to ensure uniqueness, this
      should default to the value of one of the
      router's IP interface addresses.
      This object is persistent and when written
      the entity SHOULD save the change to non-volatile storage."
   REFERENCE
      "OSPF Version 2, C.1 Global parameters"
   ::= { ospfGeneralGroup 1 }
 ospfAdminStat OBJECT-TYPE
   SYNTAX       Status
   MAX-ACCESS   read-write
   STATUS       current
   DESCRIPTION
      "The administrative status of OSPF in the
      router.  The value 'enabled' denotes that the
      OSPF Process is active on at least one interface;
      'disabled' disables it on all interfaces.
      This object is persistent and when written
      the entity SHOULD save the change to non-volatile storage."
   ::= { ospfGeneralGroup 2 }
 ospfVersionNumber OBJECT-TYPE
   SYNTAX       INTEGER { version2 (2) }
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The current version number of the OSPF protocol is 2."
   REFERENCE
      "OSPF Version 2, Title"
   ::= { ospfGeneralGroup 3 }
 ospfAreaBdrRtrStatus 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"
   ::= { ospfGeneralGroup 4 }
 ospfASBdrRtrStatus 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.
       This object is persistent and when written the
       entity SHOULD save the change to non-volatile storage."
   REFERENCE
      "OSPF Version 2, Section 3.3 Classification of
      routers"
   ::= { ospfGeneralGroup 5 }
 ospfExternLsaCount 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"
    ::= { ospfGeneralGroup 6 }
 ospfExternLsaCksumSum OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "The 32-bit 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.  The value should be treated as unsigned
       when comparing two sums of checksums."
    ::= { ospfGeneralGroup 7 }
 ospfTOSSupport OBJECT-TYPE
   SYNTAX       TruthValue
   MAX-ACCESS   read-write
   STATUS       current
   DESCRIPTION
      "The router's support for type-of-service routing.
       This object is persistent and when written
       the entity SHOULD save the change to non-volatile
       storage."
   REFERENCE
      "OSPF Version 2, Appendix F.1.2 Optional TOS
      support"
   ::= { ospfGeneralGroup 8 }

ospfOriginateNewLsas 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.
      Discontinuities in the value of this counter can
      occur at re-initialization of the management system,
      and at other times as indicated by the value of
      ospfDiscontinuityTime."
    ::= { ospfGeneralGroup 9 }
 ospfRxNewLsas OBJECT-TYPE
   SYNTAX       Counter32
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The number of link state advertisements received
      that are determined to be new instantiations.
      This number does not include newer instantiations
      of self-originated link state advertisements.
      Discontinuities in the value of this counter can
      occur at re-initialization of the management system,
      and at other times as indicated by the value of
      ospfDiscontinuityTime."
   ::= { ospfGeneralGroup 10 }
 ospfExtLsdbLimit OBJECT-TYPE
   SYNTAX       Integer32 (-1..'7FFFFFFF'h)
   MAX-ACCESS   read-write
   STATUS       current
   DESCRIPTION
      "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
      ospfExtLsdbLimit, the router enters
      overflow state.  The router never holds more than
      ospfExtLsdbLimit non-default AS-external LSAs
      in its database.  OspfExtLsdbLimit 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).
      This object is persistent and when written
      the entity SHOULD save the change to non-volatile
      storage."
    DEFVAL { -1 }
    ::= { ospfGeneralGroup 11 }
 ospfMulticastExtensions OBJECT-TYPE
   SYNTAX       Integer32
   MAX-ACCESS   read-write
   STATUS       current
   DESCRIPTION
      "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.
      This object is persistent and when written
      the entity SHOULD save the change to non-volatile
      storage."
   DEFVAL { 0 }
   ::= { ospfGeneralGroup 12 }
 ospfExitOverflowInterval OBJECT-TYPE
   SYNTAX       PositiveInteger
   MAX-ACCESS   read-write
   STATUS       current
   DESCRIPTION
      "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.
      This object is persistent and when written
      the entity SHOULD save the change to non-volatile
      storage."
   DEFVAL { 0 }
   ::= { ospfGeneralGroup 13 }
 ospfDemandExtensions OBJECT-TYPE
   SYNTAX       TruthValue
   MAX-ACCESS   read-write
   STATUS       current
   DESCRIPTION
      "The router's support for demand routing.
       This object is persistent and when written
       the entity SHOULD save the change to non-volatile
       storage."
   REFERENCE
      "Extending OSPF to Support Demand Circuits"
   ::= { ospfGeneralGroup 14 }
 ospfRFC1583Compatibility  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
      enabled, only cost will be used when choosing among
      multiple AS-external LSAs advertising the same
      destination.  When RFC1583Compatibility is set to
      disabled, preference will be driven first by type of
      path using cost only to break ties.
      This object is persistent and when written
      the entity SHOULD save the change to non-volatile
      storage."
    REFERENCE
       "OSPF Version 2, Section 16.4.1 External path
        preferences"
    ::= { ospfGeneralGroup 15 }
ospfOpaqueLsaSupport  OBJECT-TYPE
   SYNTAX       TruthValue
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The router's support for Opaque LSA types."
   REFERENCE
      "The OSPF Opaque LSA Option"
   ::= { ospfGeneralGroup 16 }
 ospfReferenceBandwidth OBJECT-TYPE
   SYNTAX       Unsigned32
   UNITS        "kilobits per second"
   MAX-ACCESS   read-write
   STATUS       current
   DESCRIPTION
      "Reference bandwidth in kilobits/second for
      calculating default interface metrics.  The
      default value is 100,000 KBPS (100 MBPS).
      This object is persistent and when written
      the entity SHOULD save the change to non-volatile
      storage."
   ::= { ospfGeneralGroup 17 }
 ospfRestartSupport OBJECT-TYPE
   SYNTAX       INTEGER { none (1),
                          plannedOnly (2),
                          plannedAndUnplanned (3)
                        }
   MAX-ACCESS   read-write
   STATUS       current
   DESCRIPTION
      "The router's support for OSPF graceful restart.
      Options include: no restart support, only planned
      restarts, or both planned and unplanned restarts.
      This object is persistent and when written
      the entity SHOULD save the change to non-volatile
      storage."
   ::= { ospfGeneralGroup 18 }
 ospfRestartInterval OBJECT-TYPE
   SYNTAX       Integer32 (1..1800)
   UNITS        "seconds"
   MAX-ACCESS   read-write
   STATUS       current
   DESCRIPTION
      "Configured OSPF graceful restart timeout interval.
       This object is persistent and when written
       the entity SHOULD save the change to non-volatile
       storage."
   ::= { ospfGeneralGroup 19 }
 ospfRestartStrictLsaChecking OBJECT-TYPE
   SYNTAX       TruthValue
   MAX-ACCESS   read-write
   STATUS       current
   DESCRIPTION
      "Indicates if strict LSA checking is enabled for
       graceful restart.
       This object is persistent and when written
       the entity SHOULD save the change to non-volatile
       storage."
   ::= { ospfGeneralGroup 20 }
 ospfRestartStatus OBJECT-TYPE
   SYNTAX       INTEGER { notRestarting (1),
                          plannedRestart (2),
                          unplannedRestart (3)
                        }
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "Current status of OSPF graceful restart."
   ::= { ospfGeneralGroup 21 }
 ospfRestartAge OBJECT-TYPE
   SYNTAX       Unsigned32
   UNITS        "seconds"
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "Remaining time in current OSPF graceful restart
      interval."
   ::= { ospfGeneralGroup 22 }
 ospfRestartExitReason OBJECT-TYPE
   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.
                        }
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "Describes the outcome of the last attempt at a
      graceful restart.  If the value is 'none', no restart
      has yet been attempted.  If the value is 'inProgress',
      a restart attempt is currently underway."
   ::= { ospfGeneralGroup 23 }
 ospfAsLsaCount OBJECT-TYPE
   SYNTAX       Gauge32
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
       "The number of AS-scope link state
       advertisements in the AS-scope link state database."
   ::= { ospfGeneralGroup 24 }
 ospfAsLsaCksumSum OBJECT-TYPE
   SYNTAX       Unsigned32
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
       "The 32-bit unsigned sum of the LS checksums of
       the AS link state advertisements contained in the AS-scope
       link state database.  This sum can be used to determine
       if there has been a change in a router's AS-scope link
       state database, and to compare the AS-scope link state
       database of two routers."
   ::= { ospfGeneralGroup 25 }

ospfStubRouterSupport OBJECT-TYPE

   SYNTAX       TruthValue
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
       "The router's support for stub router functionality."
   REFERENCE
       "OSPF Stub Router Advertisement"
   ::= { ospfGeneralGroup 26 }

ospfStubRouterAdvertisement OBJECT-TYPE

   SYNTAX       INTEGER {
                      doNotAdvertise (1),
                      advertise(2)
                      }
   MAX-ACCESS   read-write
   STATUS       current
   DESCRIPTION
       "This object controls the advertisement of
       stub router LSAs by the router.  The value
       doNotAdvertise will result in the advertisement
       of a standard router LSA and is the default value.
       This object is persistent and when written
       the entity SHOULD save the change to non-volatile
       storage."
   ::= { ospfGeneralGroup 27 }
 ospfDiscontinuityTime OBJECT-TYPE
  SYNTAX     TimeStamp
  MAX-ACCESS read-only
  STATUS     current
  DESCRIPTION
     "The value of sysUpTime on the most recent occasion
      at which any one of this MIB's counters suffered
      a discontinuity.
      If no such discontinuities have occurred since the last
      re-initialization of the local management subsystem,
      then this object contains a zero value."
  ::= { ospfGeneralGroup 28 }

-- OSPF Area Table -- The OSPF Area Table contains information -- regarding the various areas.

 ospfAreaTable OBJECT-TYPE
   SYNTAX       SEQUENCE OF OspfAreaEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "Information describing the configured parameters and
      cumulative statistics of the router's attached areas.
      The interfaces and virtual links are configured
      as part of these areas.  Area 0.0.0.0, by definition,
      is the backbone area."
   REFERENCE
      "OSPF Version 2, Section 6 The Area Data Structure"
   ::= { ospf 2 }
 ospfAreaEntry OBJECT-TYPE
   SYNTAX       OspfAreaEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "Information describing the configured parameters and
      cumulative statistics of one of the router's attached areas.
      The interfaces and virtual links are configured as part of
      these areas.  Area 0.0.0.0, by definition, is the backbone
      area.
      Information in this table is persistent and when this object
      is written the entity SHOULD save the change to non-volatile
      storage."
   INDEX { ospfAreaId }
   ::= { ospfAreaTable 1 }
 OspfAreaEntry ::=
    SEQUENCE {
       ospfAreaId
          AreaID,
       ospfAuthType
          OspfAuthenticationType,
       ospfImportAsExtern
          INTEGER,
       ospfSpfRuns
          Counter32,
       ospfAreaBdrRtrCount
          Gauge32,
       ospfAsBdrRtrCount
          Gauge32,
       ospfAreaLsaCount
          Gauge32,
       ospfAreaLsaCksumSum
          Integer32,
       ospfAreaSummary
          INTEGER,
       ospfAreaStatus
          RowStatus,
       ospfAreaNssaTranslatorRole
          INTEGER,
       ospfAreaNssaTranslatorState
          INTEGER,
       ospfAreaNssaTranslatorStabilityInterval
          PositiveInteger,
       ospfAreaNssaTranslatorEvents
          Counter32
       }
 ospfAreaId OBJECT-TYPE
   SYNTAX       AreaID
   MAX-ACCESS   read-only -- read-only since originally
                          -- an SMIv1 index
   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"
   ::= { ospfAreaEntry 1 }
 ospfAuthType OBJECT-TYPE
   SYNTAX       OspfAuthenticationType
   MAX-ACCESS   read-create
   STATUS       obsolete
   DESCRIPTION
      "The authentication type specified for an area."
   REFERENCE
      "OSPF Version 2, Appendix D Authentication"
   DEFVAL { none } -- no authentication, by default
   ::= { ospfAreaEntry 2 }
 ospfImportAsExtern OBJECT-TYPE
   SYNTAX       INTEGER {
                  importExternal (1),
                  importNoExternal (2),
                  importNssa (3)
                  }
   MAX-ACCESS   read-create
   STATUS       current
   DESCRIPTION
      "Indicates if 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"
   REFERENCE
      "OSPF Version 2, Appendix C.2 Area parameters"
   DEFVAL { importExternal }
   ::= { ospfAreaEntry 3 }
 ospfSpfRuns 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.
      Discontinuities in the value of this counter can occur
      at re-initialization of the management system, and at other
      times as indicated by the value of ospfDiscontinuityTime."
   ::= { ospfAreaEntry 4 }
 ospfAreaBdrRtrCount 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 Shortest Path First (SPF) pass."
   ::= { ospfAreaEntry 5 }
 ospfAsBdrRtrCount 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."
   ::= { ospfAreaEntry 6 }
 ospfAreaLsaCount 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 LSAs."
   ::= { ospfAreaEntry 7 }
 ospfAreaLsaCksumSum OBJECT-TYPE
   SYNTAX       Integer32
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The 32-bit 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.  The value should be treated as unsigned
      when comparing two sums of checksums."
   DEFVAL { 0 }
   ::= { ospfAreaEntry 8 }
 ospfAreaSummary OBJECT-TYPE
   SYNTAX       INTEGER {
                   noAreaSummary (1),
                   sendAreaSummary (2)
                   }
   MAX-ACCESS   read-create
   STATUS       current
   DESCRIPTION
      "The variable ospfAreaSummary 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 not
      originate 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 { noAreaSummary }
   ::= { ospfAreaEntry 9 }
 ospfAreaStatus 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.
      The value of this object has no effect on
      whether other objects in this conceptual row can be
      modified."
   ::= { ospfAreaEntry 10 }
 ospfAreaNssaTranslatorRole OBJECT-TYPE
   SYNTAX       INTEGER { always (1), candidate (2) }
   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 { candidate }
   ::= { ospfAreaEntry 11 }
 ospfAreaNssaTranslatorState OBJECT-TYPE
   SYNTAX       INTEGER { enabled (1),
                   elected (2),
                   disabled (3)
                   }
   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 is set to enabled, the NSSA Border
      router's OspfAreaNssaExtTranslatorRole 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."
   ::= { ospfAreaEntry 12 }
 ospfAreaNssaTranslatorStabilityInterval OBJECT-TYPE
   SYNTAX       PositiveInteger
   UNITS        "seconds"
   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 }
   ::= { ospfAreaEntry 13 }
 ospfAreaNssaTranslatorEvents 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.
      Discontinuities in the value of this counter can occur
      at re-initialization of the management system, and at other
      times as indicated by the value of ospfDiscontinuityTime."
   ::= { ospfAreaEntry 14 }

-- OSPF Area Default Metric Table

 ospfStubAreaTable OBJECT-TYPE
   SYNTAX       SEQUENCE OF OspfStubAreaEntry
   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"
   ::= { ospf 3 }
 ospfStubAreaEntry OBJECT-TYPE
   SYNTAX       OspfStubAreaEntry
   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.
      Information in this table is persistent and when this object
      is written the entity SHOULD save the change to non-volatile
      storage."
   REFERENCE
      "OSPF Version 2, Appendix C.2, Area Parameters"
   INDEX { ospfStubAreaId, ospfStubTOS }
   ::= { ospfStubAreaTable 1 }
 OspfStubAreaEntry ::=
   SEQUENCE {
      ospfStubAreaId
         AreaID,
      ospfStubTOS
         TOSType,
      ospfStubMetric
         BigMetric,
      ospfStubStatus
         RowStatus,
      ospfStubMetricType
         INTEGER
      }
 ospfStubAreaId OBJECT-TYPE
   SYNTAX       AreaID
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       current
   DESCRIPTION
      "The 32-bit identifier for the stub area.  On
      creation, this can be derived from the
      instance."
   ::= { ospfStubAreaEntry 1 }
 ospfStubTOS OBJECT-TYPE
   SYNTAX       TOSType
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       current
   DESCRIPTION
      "The Type of Service associated with the
      metric.  On creation, this can be derived from
      the instance."
   ::= { ospfStubAreaEntry 2 }
 ospfStubMetric OBJECT-TYPE
   SYNTAX       BigMetric
   MAX-ACCESS   read-create
   STATUS       current
   DESCRIPTION
      "The metric value applied at the indicated Type
      of Service.  By default, this equals the least
      metric at the Type of Service among the
      interfaces to other areas."
   ::= { ospfStubAreaEntry 3 }
 ospfStubStatus 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.
      The value of this object has no effect on
      whether other objects in this conceptual row can be
      modified."
   ::= { ospfStubAreaEntry 4 }
 ospfStubMetricType OBJECT-TYPE
   SYNTAX       INTEGER {
                   ospfMetric (1),  -- OSPF Metric
                   comparableCost (2), -- external type 1
                   nonComparable  (3) -- external type 2
                   }
   MAX-ACCESS   read-create
   STATUS       current
   DESCRIPTION
      "This variable displays the type of metric
      advertised as a default route."
   DEFVAL { ospfMetric }
   ::= { ospfStubAreaEntry 5 }

-- OSPF Link State Database

 ospfLsdbTable OBJECT-TYPE
   SYNTAX       SEQUENCE OF OspfLsdbEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "The OSPF Process's link state database (LSDB).
       The LSDB contains the link state advertisements
       from throughout the areas that the device is attached to."
   REFERENCE
      "OSPF Version 2, Section 12 Link State Advertisements"
   ::= { ospf 4 }
 ospfLsdbEntry OBJECT-TYPE
   SYNTAX   OspfLsdbEntry
   MAX-ACCESS   not-accessible
   STATUS   current
   DESCRIPTION
      "A single link state advertisement."
   INDEX { ospfLsdbAreaId, ospfLsdbType,
           ospfLsdbLsid, ospfLsdbRouterId }
   ::= { ospfLsdbTable 1 }
 OspfLsdbEntry ::=
   SEQUENCE {
      ospfLsdbAreaId
         AreaID,
      ospfLsdbType
         INTEGER,
      ospfLsdbLsid
         IpAddress,
      ospfLsdbRouterId
         RouterID,
      ospfLsdbSequence
         Integer32,
      ospfLsdbAge
         Integer32,
      ospfLsdbChecksum
         Integer32,
      ospfLsdbAdvertisement
         OCTET STRING
      }
 ospfLsdbAreaId OBJECT-TYPE
   SYNTAX       AreaID
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   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"
   ::= { ospfLsdbEntry 1 }
 ospfLsdbType OBJECT-TYPE
   SYNTAX       INTEGER {
                   routerLink (1),
                   networkLink (2),
                   summaryLink (3),
                   asSummaryLink (4),
                   asExternalLink (5), -- but see ospfAsLsdbTable
                   multicastLink (6),
                   nssaExternalLink (7),
                   areaOpaqueLink (10)
                   }
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       current
   DESCRIPTION
      "The type of the link state advertisement.
      Each link state type has a separate advertisement
      format.
      Note: External link state advertisements are permitted
      for backward compatibility, but should be displayed
      in the ospfAsLsdbTable rather than here."
   REFERENCE
      "OSPF Version 2, Appendix A.4.1 The Link State
      Advertisement header"
   ::= { ospfLsdbEntry 2 }
 ospfLsdbLsid OBJECT-TYPE
   SYNTAX       IpAddress
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   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"
   ::= { ospfLsdbEntry 3 }
 ospfLsdbRouterId OBJECT-TYPE
   SYNTAX       RouterID
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   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"
   ::= { ospfLsdbEntry 4 }
 ospfLsdbSequence OBJECT-TYPE
   SYNTAX       Integer32
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The sequence number field is a signed 32-bit
      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.
      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"
   ::= { ospfLsdbEntry 5 }
 ospfLsdbAge OBJECT-TYPE
   SYNTAX       Integer32 -- Should be 0..MaxAge, except when
                          -- doNotAge bit is set
   UNITS        "seconds"
   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"
   ::= { ospfLsdbEntry 6 }
 ospfLsdbChecksum 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"
    ::= { ospfLsdbEntry 7 }
 ospfLsdbAdvertisement OBJECT-TYPE
   SYNTAX       OCTET STRING (SIZE (1..65535))
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The entire link state advertisement, including
      its header.
      Note that for variable length LSAs, SNMP agents
      may not be able to return the largest string size."
   REFERENCE
      "OSPF Version 2, Section 12 Link State Advertisements"
   ::= { ospfLsdbEntry 8 }

-- Address Range Table

 ospfAreaRangeTable OBJECT-TYPE
   SYNTAX       SEQUENCE OF OspfAreaRangeEntry
   MAX-ACCESS   not-accessible
   STATUS       obsolete
   DESCRIPTION
      "The Address Range Table acts as an adjunct to the Area
       Table.  It describes those Address Range Summaries that
       are configured to be propagated from an Area to reduce
       the amount of information about it that is known beyond
       its borders.  It contains a set of IP address ranges
       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 this table is obsoleted and is replaced
       by the Area Aggregate Table."
   REFERENCE
      "OSPF Version 2, Appendix C.2  Area parameters"
   ::= { ospf 5 }
 ospfAreaRangeEntry OBJECT-TYPE
   SYNTAX       OspfAreaRangeEntry
   MAX-ACCESS   not-accessible
   STATUS       obsolete
   DESCRIPTION
      "A single area address range.
      Information in this table is persistent and when this object
      is written the entity SHOULD save the change to non-volatile
      storage."
   REFERENCE
      "OSPF Version 2, Appendix C.2  Area parameters"
   INDEX { ospfAreaRangeAreaId, ospfAreaRangeNet }
   ::= { ospfAreaRangeTable 1 }
 OspfAreaRangeEntry ::=
   SEQUENCE {
      ospfAreaRangeAreaId
         AreaID,
      ospfAreaRangeNet
         IpAddress,
      ospfAreaRangeMask
         IpAddress,
      ospfAreaRangeStatus
         RowStatus,
      ospfAreaRangeEffect
         INTEGER
      }
 ospfAreaRangeAreaId OBJECT-TYPE
   SYNTAX       AreaID
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       obsolete
   DESCRIPTION
      "The area that the address range is to be found
      within."
   REFERENCE
      "OSPF Version 2, Appendix C.2 Area parameters"
   ::= { ospfAreaRangeEntry 1 }
 ospfAreaRangeNet OBJECT-TYPE
   SYNTAX       IpAddress
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       obsolete
   DESCRIPTION
      "The IP address of the net or subnet indicated
      by the range."
   REFERENCE
      "OSPF Version 2, Appendix C.2 Area parameters"
   ::= { ospfAreaRangeEntry 2 }
 ospfAreaRangeMask OBJECT-TYPE
   SYNTAX       IpAddress
   MAX-ACCESS   read-create
   STATUS       obsolete
   DESCRIPTION
      "The subnet mask that pertains to the net or
      subnet."
   REFERENCE
      "OSPF Version 2, Appendix C.2 Area parameters"
   ::= { ospfAreaRangeEntry 3 }
 ospfAreaRangeStatus OBJECT-TYPE
   SYNTAX       RowStatus
   MAX-ACCESS   read-create
   STATUS       obsolete
   DESCRIPTION
      "This object permits management of the table by
      facilitating actions such as row creation,
      construction, and destruction.
      The value of this object has no effect on
      whether other objects in this conceptual row can be
      modified."
   ::= { ospfAreaRangeEntry 4 }
 ospfAreaRangeEffect OBJECT-TYPE
   SYNTAX       INTEGER {
                   advertiseMatching (1),
                   doNotAdvertiseMatching (2)
                   }
   MAX-ACCESS   read-create
   STATUS       obsolete
   DESCRIPTION
      "Subnets subsumed by ranges either trigger the
      advertisement of the indicated summary
     (advertiseMatching) or result in the subnet's not
      being advertised at all outside the area."
   DEFVAL { advertiseMatching }
   ::= { ospfAreaRangeEntry 5 }

-- OSPF Host Table

 ospfHostTable OBJECT-TYPE
   SYNTAX       SEQUENCE OF OspfHostEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "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."
   REFERENCE
      "OSPF Version 2, Appendix C.7 Host route
      parameters"
   ::= { ospf 6 }
 ospfHostEntry OBJECT-TYPE
   SYNTAX       OspfHostEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "A metric to be advertised, for a given type of
      service, when a given host is reachable.
      Information in this table is persistent and when this object
      is written the entity SHOULD save the change to non-volatile
      storage."
   INDEX { ospfHostIpAddress, ospfHostTOS }
   ::= { ospfHostTable 1 }
 OspfHostEntry ::=
   SEQUENCE {
      ospfHostIpAddress
         IpAddress,
      ospfHostTOS
         TOSType,
      ospfHostMetric
         Metric,
      ospfHostStatus
         RowStatus,
      ospfHostAreaID
         AreaID,
      ospfHostCfgAreaID
         AreaID
      }
 ospfHostIpAddress OBJECT-TYPE
   SYNTAX       IpAddress
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       current
   DESCRIPTION
      "The IP address of the host."
   REFERENCE
      "OSPF Version 2, Appendix C.7 Host route parameters"
   ::= { ospfHostEntry 1 }
 ospfHostTOS OBJECT-TYPE
   SYNTAX       TOSType
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       current
   DESCRIPTION
      "The Type of Service of the route being configured."
   REFERENCE
      "OSPF Version 2, Appendix C.7 Host route parameters"
   ::= { ospfHostEntry 2 }
 ospfHostMetric 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"
   ::= { ospfHostEntry 3 }
 ospfHostStatus 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.
      The value of this object has no effect on
      whether other objects in this conceptual row can be
      modified."
   ::= { ospfHostEntry 4 }
 ospfHostAreaID OBJECT-TYPE
   SYNTAX       AreaID
   MAX-ACCESS   read-only
   STATUS       deprecated
   DESCRIPTION
      "The OSPF area to which the host belongs.
      Deprecated by ospfHostCfgAreaID."
   REFERENCE
      "OSPF Version 2, Appendix C.7 Host parameters"
   ::= { ospfHostEntry 5 }
 ospfHostCfgAreaID OBJECT-TYPE
   SYNTAX       AreaID
   MAX-ACCESS   read-create
   STATUS       current
   DESCRIPTION
      "To configure the OSPF area to which the host belongs."
   REFERENCE
      "OSPF Version 2, Appendix C.7 Host parameters"
   ::= { ospfHostEntry 6 }

-- OSPF Interface Table

 ospfIfTable OBJECT-TYPE
   SYNTAX       SEQUENCE OF OspfIfEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "The OSPF Interface Table describes the interfaces
      from the viewpoint of OSPF.
      It augments the ipAddrTable with OSPF specific information."
   REFERENCE
      "OSPF Version 2, Appendix C.3  Router interface
      parameters"
   ::= { ospf 7 }
 ospfIfEntry OBJECT-TYPE
   SYNTAX       OspfIfEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "The OSPF interface entry describes one interface
      from the viewpoint of OSPF.
      Information in this table is persistent and when this object
      is written the entity SHOULD save the change to non-volatile
      storage."
   INDEX { ospfIfIpAddress, ospfAddressLessIf }
   ::= { ospfIfTable 1 }
 OspfIfEntry ::=
   SEQUENCE {
      ospfIfIpAddress
         IpAddress,
      ospfAddressLessIf
         InterfaceIndexOrZero,
      ospfIfAreaId
         AreaID,
      ospfIfType
         INTEGER,
      ospfIfAdminStat
         Status,
      ospfIfRtrPriority
         DesignatedRouterPriority,
      ospfIfTransitDelay
         UpToMaxAge,
      ospfIfRetransInterval
         UpToMaxAge,
      ospfIfHelloInterval
         HelloRange,
      ospfIfRtrDeadInterval
         PositiveInteger,
      ospfIfPollInterval
         PositiveInteger,
      ospfIfState
         INTEGER,
      ospfIfDesignatedRouter
         IpAddress,
      ospfIfBackupDesignatedRouter
         IpAddress,
      ospfIfEvents
         Counter32,
      ospfIfAuthKey
         OCTET STRING,
      ospfIfStatus
         RowStatus,
      ospfIfMulticastForwarding
         INTEGER,
      ospfIfDemand
         TruthValue,
      ospfIfAuthType
         OspfAuthenticationType,
      ospfIfLsaCount
         Gauge32,
      ospfIfLsaCksumSum
         Unsigned32,
      ospfIfDesignatedRouterId
         RouterID,
      ospfIfBackupDesignatedRouterId
         RouterID
      }
 ospfIfIpAddress OBJECT-TYPE
   SYNTAX       IpAddress
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       current
   DESCRIPTION
      "The IP address of this OSPF interface."
   ::= { ospfIfEntry 1 }
 ospfAddressLessIf OBJECT-TYPE
   SYNTAX       InterfaceIndexOrZero
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   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 corresponding value of
      ifIndex for interfaces having no IP address."
   ::= { ospfIfEntry 2 }
 ospfIfAreaId 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."
   DEFVAL { '00000000'H }  -- 0.0.0.0
   ::= { ospfIfEntry 3 }
 ospfIfType OBJECT-TYPE
   SYNTAX       INTEGER {
                   broadcast (1),
                   nbma (2),
                   pointToPoint (3),
                   pointToMultipoint (5)
                   }
   MAX-ACCESS   read-create
   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'."
    ::= { ospfIfEntry 4 }
 ospfIfAdminStat OBJECT-TYPE
   SYNTAX       Status
   MAX-ACCESS   read-create
   STATUS       current
   DESCRIPTION
      "The OSPF interface's administrative status.
      The value formed on the interface, and the interface
      will be advertised as an internal route to some area.
      The value 'disabled' denotes that the interface is
      external to OSPF."
   DEFVAL { enabled }
   ::= { ospfIfEntry 5 }
 ospfIfRtrPriority 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 }
    ::= { ospfIfEntry 6 }
 ospfIfTransitDelay OBJECT-TYPE
    SYNTAX       UpToMaxAge
    UNITS        "seconds"
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
       "The estimated number of seconds it takes to
       transmit a link state update packet over this
       interface.  Note that the minimal value SHOULD be
       1 second."
    DEFVAL { 1 }
    ::= { ospfIfEntry 7 }
 ospfIfRetransInterval OBJECT-TYPE
   SYNTAX       UpToMaxAge
   UNITS        "seconds"
   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.
      Note that minimal value SHOULD be 1 second."
   DEFVAL { 5 }
   ::= { ospfIfEntry 8 }
 ospfIfHelloInterval OBJECT-TYPE
   SYNTAX       HelloRange
   UNITS        "seconds"
   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."
   DEFVAL { 10 }
   ::= { ospfIfEntry 9 }
 ospfIfRtrDeadInterval OBJECT-TYPE
   SYNTAX       PositiveInteger
   UNITS        "seconds"
   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."
    DEFVAL { 40 }
    ::= { ospfIfEntry 10 }
 ospfIfPollInterval OBJECT-TYPE
   SYNTAX       PositiveInteger
   UNITS        "seconds"
   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 }
   ::= { ospfIfEntry 11 }
 ospfIfState OBJECT-TYPE
   SYNTAX       INTEGER {
                   down (1),
                   loopback (2),
                   waiting (3),
                   pointToPoint (4),
                   designatedRouter (5),
                   backupDesignatedRouter (6),
                   otherDesignatedRouter (7)
                   }
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The OSPF Interface State."
   DEFVAL { down }
   ::= { ospfIfEntry 12 }
 ospfIfDesignatedRouter 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
   ::= { ospfIfEntry 13 }
 ospfIfBackupDesignatedRouter 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
   ::= { ospfIfEntry 14 }
 ospfIfEvents 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.
      Discontinuities in the value of this counter can occur
      at re-initialization of the management system, and at other
      times as indicated by the value of ospfDiscontinuityTime."
   ::= { ospfIfEntry 15 }
 ospfIfAuthKey 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 RFC1704.
      When read, ospfIfAuthKey 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
   ::= { ospfIfEntry 16 }
 ospfIfStatus 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.
      The value of this object has no effect on
      whether other objects in this conceptual row can be
      modified."
   ::= { ospfIfEntry 17 }
 ospfIfMulticastForwarding OBJECT-TYPE
   SYNTAX       INTEGER {
                   blocked (1), -- no multicast forwarding
                   multicast (2), -- using multicast address
                   unicast (3) -- to each OSPF neighbor
                   }
   MAX-ACCESS   read-create
   STATUS       current
   DESCRIPTION
      "The way multicasts should be 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 ospfMulticastForwarding to 0 effectively
      disables all multicast forwarding."
   DEFVAL { blocked }
   ::= { ospfIfEntry 18 }
 ospfIfDemand OBJECT-TYPE
   SYNTAX       TruthValue
   MAX-ACCESS   read-create
   STATUS       current
   DESCRIPTION
      "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 }
   ::= { ospfIfEntry 19 }
 ospfIfAuthType OBJECT-TYPE
   SYNTAX       OspfAuthenticationType
   MAX-ACCESS   read-create
   STATUS       current
   DESCRIPTION
      "The authentication type specified for an interface.
      Note that this object can be used to engage
      in significant attacks against an OSPF router."
   REFERENCE
      "OSPF Version 2, Appendix D Authentication"
   DEFVAL { none } -- no authentication, by default
   ::= { ospfIfEntry 20 }
 ospfIfLsaCount 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."
   ::= { ospfIfEntry 21 }
 ospfIfLsaCksumSum OBJECT-TYPE
   SYNTAX       Unsigned32
   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."
   ::= { ospfIfEntry 22 }
 ospfIfDesignatedRouterId OBJECT-TYPE
   SYNTAX       RouterID
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The Router ID of the designated router."
   ::= { ospfIfEntry 23 }
 ospfIfBackupDesignatedRouterId OBJECT-TYPE
   SYNTAX       RouterID
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The Router ID of the backup designated router."
   ::= { ospfIfEntry 24 }

-- OSPF Interface Metric Table

 ospfIfMetricTable OBJECT-TYPE
   SYNTAX       SEQUENCE OF OspfIfMetricEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "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 = referenceBandwidth / ifSpeed
      is the default value.
      The default reference bandwidth is 10^8.
      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.
      Note that the default reference bandwidth can be configured
      using the general group object ospfReferenceBandwidth."
   REFERENCE
      "OSPF Version 2, Appendix C.3 Router interface
      parameters"
   ::= { ospf 8 }
 ospfIfMetricEntry OBJECT-TYPE
   SYNTAX       OspfIfMetricEntry
   MAX-ACCESS   not-accessible
   STATUS      current
   DESCRIPTION
      "A particular TOS metric for a non-virtual interface
      identified by the interface index.
      Information in this table is persistent and when this object
      is written the entity SHOULD save the change to non-volatile
      storage."
   REFERENCE
      "OSPF Version 2, Appendix C.3 Router interface
      parameters"
   INDEX { ospfIfMetricIpAddress,
      ospfIfMetricAddressLessIf,
      ospfIfMetricTOS }
   ::= { ospfIfMetricTable 1 }
 OspfIfMetricEntry ::=
   SEQUENCE {
      ospfIfMetricIpAddress
         IpAddress,
      ospfIfMetricAddressLessIf
         InterfaceIndexOrZero,
      ospfIfMetricTOS
         TOSType,
      ospfIfMetricValue
         Metric,
      ospfIfMetricStatus
         RowStatus
      }
 ospfIfMetricIpAddress OBJECT-TYPE
   SYNTAX       IpAddress
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       current
   DESCRIPTION
      "The IP address of this OSPF interface.  On row
      creation, this can be derived from the instance."
   ::= { ospfIfMetricEntry 1 }
 ospfIfMetricAddressLessIf OBJECT-TYPE
   SYNTAX       InterfaceIndexOrZero
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   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."
    ::= { ospfIfMetricEntry 2 }
 ospfIfMetricTOS OBJECT-TYPE
   SYNTAX       TOSType
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       current
   DESCRIPTION
      "The Type of Service metric being referenced.
      On row creation, this can be derived from the
      instance."
   ::= { ospfIfMetricEntry 3 }
 ospfIfMetricValue 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."
   ::= { ospfIfMetricEntry 4 }
 ospfIfMetricStatus 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.
      The value of this object has no effect on
      whether other objects in this conceptual row can be
      modified."
   ::= { ospfIfMetricEntry 5 }

-- OSPF Virtual Interface Table

 ospfVirtIfTable OBJECT-TYPE
   SYNTAX       SEQUENCE OF OspfVirtIfEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "Information about this router's virtual interfaces
      that the OSPF Process is configured to carry on."
   REFERENCE
      "OSPF Version 2, Appendix C.4  Virtual link
      parameters"
   ::= { ospf 9 }
 ospfVirtIfEntry OBJECT-TYPE
   SYNTAX       OspfVirtIfEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "Information about a single virtual interface.
      Information in this table is persistent and when this object
      is written the entity SHOULD save the change to non-volatile
      storage."
   INDEX { ospfVirtIfAreaId, ospfVirtIfNeighbor }
   ::= { ospfVirtIfTable 1 }
 OspfVirtIfEntry ::=
   SEQUENCE {
      ospfVirtIfAreaId
         AreaID,
      ospfVirtIfNeighbor
         RouterID,
      ospfVirtIfTransitDelay
         UpToMaxAge,
      ospfVirtIfRetransInterval
         UpToMaxAge,
      ospfVirtIfHelloInterval
         HelloRange,
      ospfVirtIfRtrDeadInterval
         PositiveInteger,
      ospfVirtIfState
         INTEGER,
      ospfVirtIfEvents
         Counter32,
      ospfVirtIfAuthKey
         OCTET STRING,
      ospfVirtIfStatus
         RowStatus,
      ospfVirtIfAuthType
         OspfAuthenticationType,
      ospfVirtIfLsaCount
         Gauge32,
      ospfVirtIfLsaCksumSum
         Unsigned32
      }
 ospfVirtIfAreaId OBJECT-TYPE
   SYNTAX       AreaID
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       current
   DESCRIPTION
      "The transit area that the virtual link
      traverses.  By definition, this is not 0.0.0.0."
   ::= { ospfVirtIfEntry 1 }
 ospfVirtIfNeighbor OBJECT-TYPE
   SYNTAX       RouterID
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       current
   DESCRIPTION
      "The Router ID of the virtual neighbor."
   ::= { ospfVirtIfEntry 2 }
 ospfVirtIfTransitDelay OBJECT-TYPE
   SYNTAX       UpToMaxAge
   UNITS        "seconds"
   MAX-ACCESS   read-create
   STATUS       current
   DESCRIPTION
      "The estimated number of seconds it takes to
      transmit a Link State update packet over this
      interface.  Note that the minimal value SHOULD be
      1 second."
   DEFVAL { 1 }
   ::= { ospfVirtIfEntry 3 }
 ospfVirtIfRetransInterval OBJECT-TYPE
   SYNTAX       UpToMaxAge
   UNITS        "seconds"
   MAX-ACCESS   read-create
   STATUS       current
   DESCRIPTION
      "The number of seconds between link state
      avertisement 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
      round-trip time.  Note that the minimal value SHOULD be
      1 second."
   DEFVAL { 5 }
   ::= { ospfVirtIfEntry 4 }
 ospfVirtIfHelloInterval OBJECT-TYPE
   SYNTAX       HelloRange
   UNITS        "seconds"
   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."
   DEFVAL { 10 }
   ::= { ospfVirtIfEntry 5 }
 ospfVirtIfRtrDeadInterval OBJECT-TYPE
   SYNTAX       PositiveInteger
   UNITS        "seconds"
   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."
   DEFVAL { 60 }
   ::= { ospfVirtIfEntry 6 }
 ospfVirtIfState OBJECT-TYPE
   SYNTAX       INTEGER {
                   down (1), -- these use the same encoding
                   pointToPoint (4) -- as the ospfIfTable
                   }
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "OSPF virtual interface states."
   DEFVAL { down }
   ::= { ospfVirtIfEntry 7 }
 ospfVirtIfEvents OBJECT-TYPE
   SYNTAX       Counter32
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The number of state changes or error events on
      this virtual link.
      Discontinuities in the value of this counter can occur
      at re-initialization of the management system, and at other
      times as indicated by the value of ospfDiscontinuityTime."
   ::= { ospfVirtIfEntry 8 }
 ospfVirtIfAuthKey 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.  RFC1704
      When read, ospfIfAuthKey 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
   ::= { ospfVirtIfEntry 9 }
 ospfVirtIfStatus 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.
      The value of this object has no effect on
      whether other objects in this conceptual row can be
      modified."
    ::= { ospfVirtIfEntry 10 }
 ospfVirtIfAuthType OBJECT-TYPE
   SYNTAX       OspfAuthenticationType
   MAX-ACCESS   read-create
   STATUS       current
   DESCRIPTION
      "The authentication type specified for a virtual interface.
      Note that this object can be used to engage
      in significant attacks against an OSPF router."
   REFERENCE
      "OSPF Version 2, Appendix E Authentication"
   DEFVAL { none } -- no authentication, by default
   ::= { ospfVirtIfEntry 11 }
 ospfVirtIfLsaCount 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."
   ::= { ospfVirtIfEntry 12 }
 ospfVirtIfLsaCksumSum OBJECT-TYPE
   SYNTAX       Unsigned32
   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."
   ::= { ospfVirtIfEntry 13 }

-- OSPF Neighbor Table

 ospfNbrTable OBJECT-TYPE
   SYNTAX       SEQUENCE OF OspfNbrEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "A table describing all non-virtual neighbors
      in the locality of the OSPF router."
   REFERENCE
      "OSPF Version 2, Section 10 The Neighbor Data
      Structure"
   ::= { ospf 10 }
 ospfNbrEntry OBJECT-TYPE
   SYNTAX       OspfNbrEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "The information regarding a single neighbor.
      Information in this table is persistent and when this object
      is written the entity SHOULD save the change to non-volatile
      storage."
   REFERENCE
      "OSPF Version 2, Section 10 The Neighbor Data
      Structure"
   INDEX { ospfNbrIpAddr, ospfNbrAddressLessIndex }
   ::= { ospfNbrTable 1 }
 OspfNbrEntry ::=
   SEQUENCE {
      ospfNbrIpAddr
         IpAddress,
      ospfNbrAddressLessIndex
         InterfaceIndexOrZero,
      ospfNbrRtrId
         RouterID,
      ospfNbrOptions
         Integer32,
      ospfNbrPriority
         DesignatedRouterPriority,
      ospfNbrState
         INTEGER,
      ospfNbrEvents
         Counter32,
      ospfNbrLsRetransQLen
         Gauge32,
      ospfNbmaNbrStatus
         RowStatus,
      ospfNbmaNbrPermanence
         INTEGER,
      ospfNbrHelloSuppressed
         TruthValue,
      ospfNbrRestartHelperStatus
         INTEGER,
      ospfNbrRestartHelperAge
         Unsigned32,
      ospfNbrRestartHelperExitReason
         INTEGER
      }
 ospfNbrIpAddr OBJECT-TYPE
   SYNTAX       IpAddress
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   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."
   ::= { ospfNbrEntry 1 }

ospfNbrAddressLessIndex OBJECT-TYPE

   SYNTAX       InterfaceIndexOrZero
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   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."
    ::= { ospfNbrEntry 2 }
 ospfNbrRtrId 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
   ::= { ospfNbrEntry 3 }
 ospfNbrOptions 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, that is
      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."
   REFERENCE
       "OSPF Version 2, Section 12.1.2 Options"
   DEFVAL { 0 }
   ::= { ospfNbrEntry 4 }

ospfNbrPriority OBJECT-TYPE

   SYNTAX       DesignatedRouterPriority
   MAX-ACCESS   read-create
   STATUS       current
   DESCRIPTION
      "The priority of this neighbor in the designated
      router election algorithm.  The value 0 signifies
      that the neighbor is not eligible to become
      the designated router on this particular network."
   DEFVAL { 1 }
   ::= { ospfNbrEntry 5 }

ospfNbrState OBJECT-TYPE

    SYNTAX       INTEGER {
                     down (1),
                     attempt (2),
                     init (3),
                     twoWay (4),
                     exchangeStart (5),
                     exchange (6),
                     loading (7),
                     full (8)
                     }
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
        "The state of the relationship with this neighbor."
     REFERENCE
        "OSPF Version 2, Section 10.1 Neighbor States"
     DEFVAL { down }
     ::= { ospfNbrEntry 6 }
 ospfNbrEvents 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.
      Discontinuities in the value of this counter can occur
      at re-initialization of the management system, and at other
      times as indicated by the value of ospfDiscontinuityTime."
   ::= { ospfNbrEntry 7 }
 ospfNbrLsRetransQLen OBJECT-TYPE
   SYNTAX       Gauge32
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The current length of the retransmission
      queue."
   ::= { ospfNbrEntry 8 }
 ospfNbmaNbrStatus 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.
      The value of this object has no effect on
      whether other objects in this conceptual row can be
      modified."
   ::= { ospfNbrEntry 9 }
 ospfNbmaNbrPermanence OBJECT-TYPE
   SYNTAX       INTEGER {
                   dynamic (1), -- learned through protocol
                   permanent (2) -- configured address
                   }
   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 { permanent }
   ::= { ospfNbrEntry 10 }

ospfNbrHelloSuppressed OBJECT-TYPE

   SYNTAX       TruthValue
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "Indicates whether Hellos are being suppressed
      to the neighbor."
   ::= { ospfNbrEntry 11 }
 ospfNbrRestartHelperStatus OBJECT-TYPE
   SYNTAX       INTEGER { notHelping (1),
                          helping (2)
                        }
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "Indicates whether the router is acting
      as a graceful restart helper for the neighbor."
      ::= { ospfNbrEntry 12 }
 ospfNbrRestartHelperAge OBJECT-TYPE
   SYNTAX       Unsigned32
   UNITS        "seconds"
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "Remaining time in current OSPF graceful restart
      interval, if the router is acting as a restart
      helper for the neighbor."
   ::= { ospfNbrEntry 13 }
 ospfNbrRestartHelperExitReason OBJECT-TYPE
   SYNTAX       INTEGER { none (1),           -- not attempted
                          inProgress (2),     -- restart in
                                              -- progress
                          completed (3),      -- successfully
                                              -- completed
                          timedOut (4),       -- timed out
                          topologyChanged (5) -- aborted due to
                                              -- topology
                                              -- change.
                        }
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "Describes the outcome of the last attempt at acting
       as a graceful restart helper for the neighbor."
   ::= { ospfNbrEntry 14 }

-- OSPF Virtual Neighbor Table

 ospfVirtNbrTable OBJECT-TYPE
   SYNTAX       SEQUENCE OF OspfVirtNbrEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "This table describes all virtual neighbors.
      Since virtual links are configured
      in the Virtual Interface Table, this table is read-only."
   REFERENCE
      "OSPF Version 2, Section 15 Virtual Links"
   ::= { ospf 11 }
 ospfVirtNbrEntry OBJECT-TYPE
   SYNTAX       OspfVirtNbrEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "Virtual neighbor information."
   INDEX { ospfVirtNbrArea, ospfVirtNbrRtrId }
   ::= { ospfVirtNbrTable 1 }
 OspfVirtNbrEntry ::=
   SEQUENCE {
      ospfVirtNbrArea
         AreaID,
      ospfVirtNbrRtrId
         RouterID,
      ospfVirtNbrIpAddr
         IpAddress,
      ospfVirtNbrOptions
         Integer32,
      ospfVirtNbrState
         INTEGER,
      ospfVirtNbrEvents
         Counter32,
      ospfVirtNbrLsRetransQLen
         Gauge32,
      ospfVirtNbrHelloSuppressed
         TruthValue,
      ospfVirtNbrRestartHelperStatus
         INTEGER,
      ospfVirtNbrRestartHelperAge
         Unsigned32,
      ospfVirtNbrRestartHelperExitReason
         INTEGER
      }
 ospfVirtNbrArea OBJECT-TYPE
   SYNTAX       AreaID
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       current
   DESCRIPTION
      "The Transit Area Identifier."
   ::= { ospfVirtNbrEntry 1 }
 ospfVirtNbrRtrId OBJECT-TYPE
   SYNTAX       RouterID
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS      current
   DESCRIPTION
      "A 32-bit integer uniquely identifying the
      neighboring router in the Autonomous System."
   ::= { ospfVirtNbrEntry 2 }
 ospfVirtNbrIpAddr OBJECT-TYPE
   SYNTAX       IpAddress
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The IP address this virtual neighbor is using."
   ::= { ospfVirtNbrEntry 3 }
 ospfVirtNbrOptions OBJECT-TYPE
   SYNTAX       Integer32
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "A bit mask corresponding to the neighbor's
      options field.
      Bit 1, 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 2, if set, indicates that the system is
      network multicast capable, i.e., that it
      implements OSPF multicast routing."
   ::= { ospfVirtNbrEntry 4 }

ospfVirtNbrState OBJECT-TYPE

   SYNTAX       INTEGER {
                   down (1),
                   attempt (2),
                   init (3),
                   twoWay (4),
                   exchangeStart (5),
                   exchange (6),
                   loading (7),
                   full (8)
                   }
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The state of the virtual neighbor relationship."
   ::= { ospfVirtNbrEntry 5 }
 ospfVirtNbrEvents 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.
      Discontinuities in the value of this counter can occur
      at re-initialization of the management system, and at other
      times as indicated by the value of ospfDiscontinuityTime."
   ::= { ospfVirtNbrEntry 6 }
 ospfVirtNbrLsRetransQLen OBJECT-TYPE
   SYNTAX       Gauge32
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The current length of the retransmission
      queue."
   ::= { ospfVirtNbrEntry 7 }
 ospfVirtNbrHelloSuppressed OBJECT-TYPE
   SYNTAX       TruthValue
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "Indicates whether Hellos are being suppressed
      to the neighbor."
   ::= { ospfVirtNbrEntry 8 }
 ospfVirtNbrRestartHelperStatus OBJECT-TYPE
   SYNTAX       INTEGER { notHelping (1),
                          helping (2)
                        }
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "Indicates whether the router is acting
      as a graceful restart helper for the neighbor."
   ::= { ospfVirtNbrEntry 9 }
 ospfVirtNbrRestartHelperAge OBJECT-TYPE
   SYNTAX       Unsigned32
   UNITS        "seconds"
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "Remaining time in current OSPF graceful restart
      interval, if the router is acting as a restart
      helper for the neighbor."
   ::= { ospfVirtNbrEntry 10 }
 ospfVirtNbrRestartHelperExitReason OBJECT-TYPE
   SYNTAX       INTEGER { none (1),           -- not attempted
                          inProgress (2),     -- restart in
                                              -- progress
                          completed (3),      -- successfully
                                              -- completed
                          timedOut (4),       -- timed out
                          topologyChanged (5) -- aborted due to
                                              -- topology
                                              -- change.
                        }
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "Describes the outcome of the last attempt at acting
       as a graceful restart helper for the neighbor."
   ::= { ospfVirtNbrEntry 11 }

-- OSPF Link State Database, External

 ospfExtLsdbTable OBJECT-TYPE
   SYNTAX       SEQUENCE OF OspfExtLsdbEntry
   MAX-ACCESS   not-accessible
   STATUS       deprecated
   DESCRIPTION
      "The OSPF Process's external LSA link state database.
      This table is identical to the OSPF LSDB Table
      in format, but contains only external link state
      advertisements.  The purpose is to allow external
      LSAs to be displayed once for the router rather
      than once in each non-stub area.
      Note that external LSAs are also in the AS-scope link state
      database."
   REFERENCE
      "OSPF Version 2, Section 12 Link State Advertisements"
   ::= { ospf 12 }
 ospfExtLsdbEntry OBJECT-TYPE
   SYNTAX       OspfExtLsdbEntry
   MAX-ACCESS   not-accessible
   STATUS       deprecated
   DESCRIPTION
      "A single link state advertisement."
   INDEX { ospfExtLsdbType, ospfExtLsdbLsid, ospfExtLsdbRouterId }
   ::= { ospfExtLsdbTable 1 }
 OspfExtLsdbEntry ::=
   SEQUENCE {
      ospfExtLsdbType
         INTEGER,
      ospfExtLsdbLsid
         IpAddress,
      ospfExtLsdbRouterId
         RouterID,
      ospfExtLsdbSequence
         Integer32,
      ospfExtLsdbAge
         Integer32,
      ospfExtLsdbChecksum
         Integer32,
      ospfExtLsdbAdvertisement
         OCTET STRING
      }
 ospfExtLsdbType OBJECT-TYPE
   SYNTAX      INTEGER {
                  asExternalLink (5)
                  }
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       deprecated
   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"
   ::= { ospfExtLsdbEntry 1 }
 ospfExtLsdbLsid OBJECT-TYPE
   SYNTAX       IpAddress
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       deprecated
   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"
   ::= { ospfExtLsdbEntry 2 }
 ospfExtLsdbRouterId OBJECT-TYPE
   SYNTAX       RouterID
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       deprecated
   DESCRIPTION
      "The 32-bit number that uniquely identifies the
      originating router in the Autonomous System."
   REFERENCE
      "OSPF Version 2, Appendix C.1 Global parameters"
   ::= { ospfExtLsdbEntry 3 }
 ospfExtLsdbSequence OBJECT-TYPE
   SYNTAX       Integer32
   MAX-ACCESS   read-only
   STATUS       deprecated
   DESCRIPTION
      "The sequence number field is a signed 32-bit
      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.
      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"
   ::= { ospfExtLsdbEntry 4 }
 ospfExtLsdbAge OBJECT-TYPE
   SYNTAX       Integer32 -- Should be 0..MaxAge, except when
                          -- doNotAge bit is set
   UNITS        "seconds"
   MAX-ACCESS   read-only
   STATUS       deprecated
   DESCRIPTION
      "This field is the age of the link state
      advertisement in seconds."
   REFERENCE
      "OSPF Version 2, Section 12.1.1 LS age"
   ::= { ospfExtLsdbEntry 5 }
 ospfExtLsdbChecksum OBJECT-TYPE
   SYNTAX       Integer32
   MAX-ACCESS   read-only
   STATUS       deprecated
   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"
   ::= { ospfExtLsdbEntry 6 }
 ospfExtLsdbAdvertisement OBJECT-TYPE
   SYNTAX       OCTET STRING (SIZE(36))
   MAX-ACCESS   read-only
   STATUS       deprecated
   DESCRIPTION
      "The entire link state advertisement, including
      its header."
   REFERENCE
      "OSPF Version 2, Section 12  Link State
      Advertisements"
   ::= { ospfExtLsdbEntry 7 }

-- OSPF Use of the CIDR Route Table

 ospfRouteGroup    OBJECT IDENTIFIER ::= { ospf 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.

 ospfIntraArea      OBJECT IDENTIFIER ::= { ospfRouteGroup 1 }
 ospfInterArea      OBJECT IDENTIFIER ::= { ospfRouteGroup 2 }
 ospfExternalType1  OBJECT IDENTIFIER ::= { ospfRouteGroup 3 }
 ospfExternalType2  OBJECT IDENTIFIER ::= { ospfRouteGroup 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.

ospfAreaAggregateTable OBJECT-TYPE

   SYNTAX       SEQUENCE OF OspfAreaAggregateEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "The Area Aggregate Table acts as an adjunct
       to the Area Table.  It describes those address aggregates
       that are configured to be propagated from an area.
       Its purpose is to reduce the amount of information
       that is known beyond an Area's borders.
       It contains a set of IP address ranges
       specified by an IP address/IP network mask pair.
       For example, a 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"
   ::= { ospf 14 }
 ospfAreaAggregateEntry OBJECT-TYPE
   SYNTAX   OspfAreaAggregateEntry
   MAX-ACCESS   not-accessible
   STATUS   current
   DESCRIPTION
      "A single area aggregate entry.
      Information in this table is persistent and when this object
      is written the entity SHOULD save the change to non-volatile
      storage."
   REFERENCE
      "OSPF Version 2, Appendix C.2  Area parameters"
   INDEX { ospfAreaAggregateAreaID, ospfAreaAggregateLsdbType,
      ospfAreaAggregateNet, ospfAreaAggregateMask }
   ::= { ospfAreaAggregateTable 1 }
 OspfAreaAggregateEntry ::=
   SEQUENCE {
      ospfAreaAggregateAreaID
         AreaID,
      ospfAreaAggregateLsdbType
         INTEGER,
      ospfAreaAggregateNet
         IpAddress,
      ospfAreaAggregateMask
         IpAddress,
      ospfAreaAggregateStatus
         RowStatus,
      ospfAreaAggregateEffect
         INTEGER,
      ospfAreaAggregateExtRouteTag
         Unsigned32
      }
 ospfAreaAggregateAreaID OBJECT-TYPE
   SYNTAX       AreaID
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS       current
   DESCRIPTION
      "The area within which the address aggregate is to be
      found."
   REFERENCE
      "OSPF Version 2, Appendix C.2 Area parameters"
   ::= { ospfAreaAggregateEntry 1 }
 ospfAreaAggregateLsdbType OBJECT-TYPE
   SYNTAX       INTEGER {
                   summaryLink (3),
                   nssaExternalLink (7)
                   }
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   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"
   ::= { ospfAreaAggregateEntry 2 }
 ospfAreaAggregateNet OBJECT-TYPE
   SYNTAX   IpAddress
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS   current
   DESCRIPTION
      "The IP address of the net or subnet indicated
      by the range."
   REFERENCE
      "OSPF Version 2, Appendix C.2 Area parameters"
   ::= { ospfAreaAggregateEntry 3 }
 ospfAreaAggregateMask OBJECT-TYPE
   SYNTAX       IpAddress
   MAX-ACCESS   read-only -- read-only since originally an
                          -- SMIv1 index
   STATUS      current
   DESCRIPTION
      "The subnet mask that pertains to the net or
      subnet."
   REFERENCE
      "OSPF Version 2, Appendix C.2 Area parameters"
   ::= { ospfAreaAggregateEntry 4 }
 ospfAreaAggregateStatus 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.
      The value of this object has no effect on
      whether other objects in this conceptual row can be
      modified."
   ::= { ospfAreaAggregateEntry 5 }
 ospfAreaAggregateEffect OBJECT-TYPE
   SYNTAX       INTEGER {
                   advertiseMatching (1),
                   doNotAdvertiseMatching (2)
                   }
   MAX-ACCESS   read-create
   STATUS       current
   DESCRIPTION
      "Subnets subsumed by ranges either trigger the
      advertisement of the indicated aggregate
     (advertiseMatching) or result in the subnet's not
      being advertised at all outside the area."
   DEFVAL { advertiseMatching }
   ::= { ospfAreaAggregateEntry 6 }
 ospfAreaAggregateExtRouteTag OBJECT-TYPE
   SYNTAX       Unsigned32
   MAX-ACCESS   read-create
   STATUS       current
   DESCRIPTION
      "External route tag to be included in NSSA (type-7)
       LSAs."
   DEFVAL { 0 }
   ::= { ospfAreaAggregateEntry 7 }

-- OSPF Link State Database, link-local for non-virtual links

 ospfLocalLsdbTable OBJECT-TYPE
   SYNTAX       SEQUENCE OF OspfLocalLsdbEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "The OSPF Process's link-local link state database
      for non-virtual links.
      This table is identical to the OSPF LSDB Table
      in format, but contains only link-local Link State
      Advertisements for non-virtual links.  The purpose is
      to allow link-local LSAs to be displayed for each
      non-virtual interface.  This table is implemented to
      support type-9 LSAs that are defined
      in 'The OSPF Opaque LSA Option'."
   REFERENCE
      "OSPF Version 2, Section 12 Link State Advertisements
      and The OSPF Opaque LSA Option"
   ::= { ospf 17 }
 ospfLocalLsdbEntry OBJECT-TYPE
   SYNTAX       OspfLocalLsdbEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "A single link state advertisement."
   INDEX { ospfLocalLsdbIpAddress, ospfLocalLsdbAddressLessIf,
      ospfLocalLsdbType, ospfLocalLsdbLsid, ospfLocalLsdbRouterId
      }
   ::= { ospfLocalLsdbTable 1 }
 OspfLocalLsdbEntry ::=
   SEQUENCE {
      ospfLocalLsdbIpAddress
         IpAddress,
      ospfLocalLsdbAddressLessIf
         InterfaceIndexOrZero,
      ospfLocalLsdbType
         INTEGER,
      ospfLocalLsdbLsid
         IpAddress,
      ospfLocalLsdbRouterId
         RouterID,
      ospfLocalLsdbSequence
         Integer32,
      ospfLocalLsdbAge
         Integer32,
      ospfLocalLsdbChecksum
         Integer32,
      ospfLocalLsdbAdvertisement
         OCTET STRING
      }
 ospfLocalLsdbIpAddress 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"
   ::= { ospfLocalLsdbEntry 1 }
 ospfLocalLsdbAddressLessIf 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"
   ::= { ospfLocalLsdbEntry 2 }
 ospfLocalLsdbType OBJECT-TYPE
   SYNTAX       INTEGER { localOpaqueLink (9) }
   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"
   ::= { ospfLocalLsdbEntry 3 }
 ospfLocalLsdbLsid 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"
   ::= { ospfLocalLsdbEntry 4 }
 ospfLocalLsdbRouterId 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"
   ::= { ospfLocalLsdbEntry 5 }
 ospfLocalLsdbSequence OBJECT-TYPE
   SYNTAX       Integer32
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The sequence number field is a signed 32-bit
      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.
      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"
   ::= { ospfLocalLsdbEntry 6 }
 ospfLocalLsdbAge OBJECT-TYPE
   SYNTAX       Integer32 -- Should be 0..MaxAge, except when
                          -- doNotAge bit is set
   UNITS        "seconds"
   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"
   ::= { ospfLocalLsdbEntry 7 }
 ospfLocalLsdbChecksum 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"
   ::= { ospfLocalLsdbEntry 8 }
 ospfLocalLsdbAdvertisement OBJECT-TYPE
   SYNTAX       OCTET STRING (SIZE (1..65535))
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The entire link state advertisement, including
      its header.
      Note that for variable length LSAs, SNMP agents
      may not be able to return the largest string size."
   REFERENCE
      "OSPF Version 2, Section 12 Link State
      Advertisements"
   ::= { ospfLocalLsdbEntry 9 }

-- OSPF Link State Database, link-local for virtual Links

 ospfVirtLocalLsdbTable OBJECT-TYPE
   SYNTAX       SEQUENCE OF OspfVirtLocalLsdbEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "The OSPF Process's link-local link state database
      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
      that are defined in 'The OSPF Opaque LSA Option'."
   REFERENCE
      "OSPF Version 2, Section 12 Link State
      Advertisements and The OSPF Opaque LSA Option"
   ::= { ospf 18 }
 ospfVirtLocalLsdbEntry OBJECT-TYPE
   SYNTAX       OspfVirtLocalLsdbEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "A single link state advertisement."
   INDEX { ospfVirtLocalLsdbTransitArea,
      ospfVirtLocalLsdbNeighbor,
      ospfVirtLocalLsdbType,
      ospfVirtLocalLsdbLsid,
      ospfVirtLocalLsdbRouterId
      }
   ::= { ospfVirtLocalLsdbTable 1 }
 OspfVirtLocalLsdbEntry ::=
   SEQUENCE {
      ospfVirtLocalLsdbTransitArea
         AreaID,
      ospfVirtLocalLsdbNeighbor
         RouterID,
      ospfVirtLocalLsdbType
         INTEGER,
      ospfVirtLocalLsdbLsid
         IpAddress,
      ospfVirtLocalLsdbRouterId
         RouterID,
      ospfVirtLocalLsdbSequence
         Integer32,
      ospfVirtLocalLsdbAge
         Integer32,
      ospfVirtLocalLsdbChecksum
         Integer32,
      ospfVirtLocalLsdbAdvertisement
        OCTET STRING
      }
 ospfVirtLocalLsdbTransitArea 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"
   ::= { ospfVirtLocalLsdbEntry 1 }
 ospfVirtLocalLsdbNeighbor 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"
   ::= { ospfVirtLocalLsdbEntry 2 }
 ospfVirtLocalLsdbType OBJECT-TYPE
   SYNTAX       INTEGER  { localOpaqueLink (9) }
   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"
   ::= { ospfVirtLocalLsdbEntry 3 }
 ospfVirtLocalLsdbLsid 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"
   ::= { ospfVirtLocalLsdbEntry 4 }
 ospfVirtLocalLsdbRouterId 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"
   ::= { ospfVirtLocalLsdbEntry 5 }
 ospfVirtLocalLsdbSequence OBJECT-TYPE
   SYNTAX       Integer32
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The sequence number field is a signed 32-bit
      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.
      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"
   ::= { ospfVirtLocalLsdbEntry 6 }
 ospfVirtLocalLsdbAge OBJECT-TYPE
   SYNTAX       Integer32 -- Should be 0..MaxAge, except when
                          -- doNotAge bit is set
   UNITS        "seconds"
   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"
   ::= { ospfVirtLocalLsdbEntry 7 }
 ospfVirtLocalLsdbChecksum 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"
   ::= { ospfVirtLocalLsdbEntry 8 }
 ospfVirtLocalLsdbAdvertisement 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.
      Note that for variable length LSAs, SNMP agents
      may not be able to return the largest string size."
   ::= { ospfVirtLocalLsdbEntry 9 }

-- OSPF Link State Database, AS-scope

 ospfAsLsdbTable OBJECT-TYPE
   SYNTAX       SEQUENCE OF OspfAsLsdbEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "The OSPF Process's AS-scope LSA link state database.
       The database contains the AS-scope 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 AS-scope Link State
       Advertisements.  The purpose is to allow AS-scope
       LSAs to be displayed once for the router rather
       than once in each non-stub area."
   REFERENCE
      "OSPF Version 2, Section 12 Link State
      Advertisements"
   ::= { ospf 19 }
 ospfAsLsdbEntry OBJECT-TYPE
   SYNTAX       OspfAsLsdbEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "A single link state advertisement."
   INDEX { ospfAsLsdbType, ospfAsLsdbLsid, ospfAsLsdbRouterId }
   ::= { ospfAsLsdbTable 1 }
 OspfAsLsdbEntry ::=
   SEQUENCE {
      ospfAsLsdbType
         INTEGER,
      ospfAsLsdbLsid
         IpAddress,
      ospfAsLsdbRouterId
         RouterID,
      ospfAsLsdbSequence
         Integer32,
      ospfAsLsdbAge
         Integer32,
      ospfAsLsdbChecksum
         Integer32,
      ospfAsLsdbAdvertisement
         OCTET STRING
      }
 ospfAsLsdbType OBJECT-TYPE
   SYNTAX      INTEGER {
                  asExternalLink (5),
                  asOpaqueLink   (11)
                  }
   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"
   ::= { ospfAsLsdbEntry 1 }
 ospfAsLsdbLsid 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"
   ::= { ospfAsLsdbEntry 2 }
 ospfAsLsdbRouterId 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"
   ::= { ospfAsLsdbEntry 3 }
 ospfAsLsdbSequence OBJECT-TYPE
   SYNTAX       Integer32
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
      "The sequence number field is a signed 32-bit
      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.
      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"
   ::= { ospfAsLsdbEntry 4 }
 ospfAsLsdbAge OBJECT-TYPE
   SYNTAX       Integer32 -- Should be 0..MaxAge, except when
                          -- doNotAge bit is set
   UNITS        "seconds"
   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"
   ::= { ospfAsLsdbEntry 5 }
 ospfAsLsdbChecksum 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"
   ::= { ospfAsLsdbEntry 6 }
 ospfAsLsdbAdvertisement 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.
      Note that for variable length LSAs, SNMP agents
      may not be able to return the largest string size."
   ::= { ospfAsLsdbEntry 7 }
--  OSPF Area LSA Counter Table
  ospfAreaLsaCountTable OBJECT-TYPE
      SYNTAX       SEQUENCE OF OspfAreaLsaCountEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "This table maintains per-area, per-LSA-type counters"
      ::= { ospf 20 }
  ospfAreaLsaCountEntry OBJECT-TYPE
      SYNTAX       OspfAreaLsaCountEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "An entry with a number of link advertisements
          of a given type for a given area."
      INDEX { ospfAreaLsaCountAreaId, ospfAreaLsaCountLsaType }
      ::= { ospfAreaLsaCountTable 1 }
  OspfAreaLsaCountEntry ::=
       SEQUENCE {
          ospfAreaLsaCountAreaId
             AreaID,
          ospfAreaLsaCountLsaType
             INTEGER,
          ospfAreaLsaCountNumber
             Gauge32
       }
  ospfAreaLsaCountAreaId OBJECT-TYPE
      SYNTAX       AreaID
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "This entry Area ID."
     ::= { ospfAreaLsaCountEntry 1 }
  ospfAreaLsaCountLsaType OBJECT-TYPE
      SYNTAX       INTEGER {
                      routerLink (1),
                      networkLink (2),
                      summaryLink (3),
                      asSummaryLink (4),
                      multicastLink (6),
                      nssaExternalLink (7),
                      areaOpaqueLink (10)
                   }
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "This entry LSA type."
     ::= { ospfAreaLsaCountEntry 2 }
  ospfAreaLsaCountNumber OBJECT-TYPE
      SYNTAX       Gauge32
      MAX-ACCESS   read-only
      STATUS       current
      DESCRIPTION
         "Number of LSAs of a given type for a given area."
     ::= { ospfAreaLsaCountEntry 3 }

-- conformance information

ospfConformance OBJECT IDENTIFIER ::= { ospf 15 }

ospfGroups OBJECT IDENTIFIER ::= { ospfConformance 1 } ospfCompliances OBJECT IDENTIFIER ::= { ospfConformance 2 }

-- compliance statements

 ospfCompliance MODULE-COMPLIANCE
   STATUS       deprecated
   DESCRIPTION
      "The compliance statement for OSPF systems
      conforming to RFC 1850."
   MODULE       -- this module
   MANDATORY-GROUPS {
       ospfBasicGroup,
       ospfAreaGroup,
       ospfStubAreaGroup,
       ospfIfGroup,
       ospfIfMetricGroup,
       ospfVirtIfGroup,
       ospfNbrGroup,
       ospfVirtNbrGroup,
       ospfAreaAggregateGroup
       }
   GROUP  ospfHostGroup
      DESCRIPTION
         "This group is mandatory for OSPF systems that support
         attached hosts."
   GROUP  ospfLsdbGroup
      DESCRIPTION
         "This group is mandatory for OSPF systems that display
         their per-area link state database."
   GROUP  ospfExtLsdbGroup
      DESCRIPTION
         "This group is mandatory for OSPF systems that display
         their external link state database."
   ::= { ospfCompliances 1 }
 ospfCompliance2 MODULE-COMPLIANCE
   STATUS       current
   DESCRIPTION
      "The compliance statement."
   MODULE       -- this module
   MANDATORY-GROUPS {
      ospfBasicGroup2,
      ospfAreaGroup2,
      ospfStubAreaGroup,
      ospfIfGroup2,
      ospfIfMetricGroup,
      ospfVirtIfGroup2,
      ospfNbrGroup2,
      ospfVirtNbrGroup2,
      ospfAreaAggregateGroup2
      }
   GROUP  ospfHostGroup2
      DESCRIPTION
         "This group is mandatory for OSPF systems that support
         attached hosts."
   GROUP  ospfLsdbGroup
      DESCRIPTION
         "This group is mandatory for OSPF systems that display
         their per-area link state database."
   GROUP  ospfAsLsdbGroup
      DESCRIPTION
         "This group is mandatory for OSPF systems that display
         their AS-scope link state database."
   GROUP  ospfLocalLsdbGroup
      DESCRIPTION
         "This group is mandatory for OSPF systems that display
         their per-link link state database for non-virtual
         links."
   GROUP  ospfVirtLocalLsdbGroup
      DESCRIPTION
         "This group is mandatory for OSPF systems that display
         their per-link link state database for virtual links."
   GROUP ospfAreaLsaCountGroup
      DESCRIPTION
         "This group is mandatory for OSPF systems that display
         per-area, per-LSA-type counters."
   ::= { ospfCompliances 2 }
 ospfComplianceObsolete MODULE-COMPLIANCE
   STATUS       obsolete
   DESCRIPTION
      "Contains obsolete object groups."
   MODULE       -- this module
   GROUP  ospfAreaRangeGroup
      DESCRIPTION
         "This group is obsolete, and it is mandatory only
         for non-Classless Inter-Domain Routing (CIDR) OSPF
         systems that support multiple areas."
   GROUP  ospfObsoleteGroup
      DESCRIPTION
         "This group contains obsolete objects,
         which are no longer required for OSPF systems."
   ::= { ospfCompliances 3 }

-- units of conformance

 ospfBasicGroup    OBJECT-GROUP
   OBJECTS {
      ospfRouterId,
      ospfAdminStat,
      ospfVersionNumber,
      ospfAreaBdrRtrStatus,
      ospfASBdrRtrStatus,
      ospfExternLsaCount,
      ospfExternLsaCksumSum,
      ospfTOSSupport,
      ospfOriginateNewLsas,
      ospfRxNewLsas,
      ospfExtLsdbLimit,
      ospfMulticastExtensions,
      ospfExitOverflowInterval,
      ospfDemandExtensions
      }
   STATUS      deprecated
   DESCRIPTION
      "These objects are used to monitor/manage
      global OSPF parameters.  This object group
      conforms to RFC 1850."
   ::= { ospfGroups 1 }
 ospfAreaGroup    OBJECT-GROUP
   OBJECTS {
      ospfAreaId,
      ospfImportAsExtern,
      ospfSpfRuns,
      ospfAreaBdrRtrCount,
      ospfAsBdrRtrCount,
      ospfAreaLsaCount,
      ospfAreaLsaCksumSum,
      ospfAreaSummary,
      ospfAreaStatus
      }
   STATUS      deprecated
   DESCRIPTION
      "These objects are used for OSPF systems
      supporting areas per RFC 1850."
   ::= { ospfGroups 2 }
 ospfStubAreaGroup    OBJECT-GROUP
   OBJECTS {
      ospfStubAreaId,
      ospfStubTOS,
      ospfStubMetric,
      ospfStubStatus,
      ospfStubMetricType
      }
   STATUS       current
   DESCRIPTION
      "These objects are used for OSPF systems
      supporting stub areas."
   ::= { ospfGroups 3 }

ospfLsdbGroup OBJECT-GROUP

   OBJECTS {
      ospfLsdbAreaId,
      ospfLsdbType,
      ospfLsdbLsid,
      ospfLsdbRouterId,
      ospfLsdbSequence,
      ospfLsdbAge,
      ospfLsdbChecksum,
      ospfLsdbAdvertisement
      }
   STATUS       current
   DESCRIPTION
      "These objects are used for OSPF systems
      that display their link state database."
   ::= { ospfGroups 4 }

ospfAreaRangeGroup OBJECT-GROUP

   OBJECTS {
      ospfAreaRangeAreaId,
      ospfAreaRangeNet,
      ospfAreaRangeMask,
      ospfAreaRangeStatus,
      ospfAreaRangeEffect
      }
   STATUS  obsolete
   DESCRIPTION
      "These objects are used for non-CIDR OSPF
      systems that support multiple areas.  This
      object group is obsolete."
   ::= { ospfGroups 5 }
 ospfHostGroup    OBJECT-GROUP
   OBJECTS {
      ospfHostIpAddress,
      ospfHostTOS,
      ospfHostMetric,
      ospfHostStatus,
      ospfHostAreaID
      }
   STATUS       deprecated
   DESCRIPTION
      "These objects are used for OSPF systems
      that support attached hosts."
   ::= { ospfGroups 6 }
 ospfIfGroup    OBJECT-GROUP
   OBJECTS {
      ospfIfIpAddress,
      ospfAddressLessIf,
      ospfIfAreaId,
      ospfIfType,
      ospfIfAdminStat,
      ospfIfRtrPriority,
      ospfIfTransitDelay,
      ospfIfRetransInterval,
      ospfIfHelloInterval,
      ospfIfRtrDeadInterval,
      ospfIfPollInterval,
      ospfIfState,
      ospfIfDesignatedRouter,
      ospfIfBackupDesignatedRouter,
      ospfIfEvents,
      ospfIfAuthType,
      ospfIfAuthKey,
      ospfIfStatus,
      ospfIfMulticastForwarding,
      ospfIfDemand
      }
   STATUS       deprecated
   DESCRIPTION
      "These objects are used to monitor/manage OSPF
      interfaces.  This object group conforms to RFC 1850."
   ::= { ospfGroups 7 }
 ospfIfMetricGroup    OBJECT-GROUP
   OBJECTS {
      ospfIfMetricIpAddress,
      ospfIfMetricAddressLessIf,
      ospfIfMetricTOS,
      ospfIfMetricValue,
      ospfIfMetricStatus
      }
   STATUS       current
   DESCRIPTION
      "These objects are used for OSPF systems for supporting
      interface metrics."
   ::= { ospfGroups 8 }
 ospfVirtIfGroup    OBJECT-GROUP
   OBJECTS {
      ospfVirtIfAreaId,
      ospfVirtIfNeighbor,
      ospfVirtIfTransitDelay,
      ospfVirtIfRetransInterval,
      ospfVirtIfHelloInterval,
      ospfVirtIfRtrDeadInterval,
      ospfVirtIfState,
      ospfVirtIfEvents,
      ospfVirtIfAuthType,
      ospfVirtIfAuthKey,
      ospfVirtIfStatus
      }
    STATUS       deprecated
    DESCRIPTION
      "These objects are used for OSPF systems for supporting
      virtual interfaces.  This object group conforms
      to RFC 1850."
    ::= { ospfGroups 9 }
 ospfNbrGroup    OBJECT-GROUP
   OBJECTS {
      ospfNbrIpAddr,
      ospfNbrAddressLessIndex,
      ospfNbrRtrId,
      ospfNbrOptions,
      ospfNbrPriority,
      ospfNbrState,
      ospfNbrEvents,
      ospfNbrLsRetransQLen,
      ospfNbmaNbrStatus,
      ospfNbmaNbrPermanence,
      ospfNbrHelloSuppressed
      }
   STATUS       deprecated
   DESCRIPTION
      "These objects are used to monitor/manage OSPF neighbors.
      This object group conforms to RFC 1850."
   ::= { ospfGroups 10 }
 ospfVirtNbrGroup    OBJECT-GROUP
   OBJECTS {
      ospfVirtNbrArea,
      ospfVirtNbrRtrId,
      ospfVirtNbrIpAddr,
      ospfVirtNbrOptions,
      ospfVirtNbrState,
      ospfVirtNbrEvents,
      ospfVirtNbrLsRetransQLen,
      ospfVirtNbrHelloSuppressed
      }
   STATUS       deprecated
   DESCRIPTION
      "These objects are used to monitor/manage OSPF virtual
      neighbors.  This object group conforms to RFC 1850."
   ::= { ospfGroups 11 }
 ospfExtLsdbGroup    OBJECT-GROUP
   OBJECTS {
      ospfExtLsdbType,
      ospfExtLsdbLsid,
      ospfExtLsdbRouterId,
      ospfExtLsdbSequence,
      ospfExtLsdbAge,
      ospfExtLsdbChecksum,
      ospfExtLsdbAdvertisement
      }
   STATUS       deprecated
   DESCRIPTION
      "These objects are used for OSPF systems that display
      their link state database.  This object group
      conforms to RFC 1850.
      This object group is replaced by the ospfAsLsdbGroup
      in order to support any AS-scope LSA type in a single
      table."
   ::= { ospfGroups 12 }
 ospfAreaAggregateGroup    OBJECT-GROUP
   OBJECTS {
      ospfAreaAggregateAreaID,
      ospfAreaAggregateLsdbType,
      ospfAreaAggregateNet,
      ospfAreaAggregateMask,
      ospfAreaAggregateStatus,
      ospfAreaAggregateEffect
      }
   STATUS       deprecated
   DESCRIPTION
      "These objects are used for OSPF systems to support
      network prefix aggregation across areas."
   ::= { ospfGroups 13 }
 ospfLocalLsdbGroup    OBJECT-GROUP
   OBJECTS {
      ospfLocalLsdbSequence,
      ospfLocalLsdbAge,
      ospfLocalLsdbChecksum,
      ospfLocalLsdbAdvertisement
      }
   STATUS      current
   DESCRIPTION
      "These objects are used for OSPF systems
      that display their link-local link state databases
      for non-virtual links."
    ::= { ospfGroups 14 }
 ospfVirtLocalLsdbGroup    OBJECT-GROUP
   OBJECTS {
      ospfVirtLocalLsdbSequence,
      ospfVirtLocalLsdbAge,
      ospfVirtLocalLsdbChecksum,
      ospfVirtLocalLsdbAdvertisement
      }
    STATUS       current
    DESCRIPTION
       "These objects are used for OSPF systems
       that display their link-local link state databases
       for virtual links."
     ::= { ospfGroups 15 }
 ospfAsLsdbGroup    OBJECT-GROUP
   OBJECTS {
      ospfAsLsdbSequence,
      ospfAsLsdbAge,
      ospfAsLsdbChecksum,
      ospfAsLsdbAdvertisement
      }
    STATUS       current
    DESCRIPTION
       "These objects are used for OSPF systems
       that display their AS-scope link state database."
     ::= { ospfGroups 16 }
 ospfBasicGroup2    OBJECT-GROUP
   OBJECTS {
      ospfRouterId,
      ospfAdminStat,
      ospfVersionNumber,
      ospfAreaBdrRtrStatus,
      ospfASBdrRtrStatus,
      ospfExternLsaCount,
      ospfExternLsaCksumSum,
      ospfTOSSupport,
      ospfOriginateNewLsas,
      ospfRxNewLsas,
      ospfExtLsdbLimit,
      ospfMulticastExtensions,
      ospfExitOverflowInterval,
      ospfDemandExtensions,
      ospfRFC1583Compatibility,
      ospfOpaqueLsaSupport,
      ospfReferenceBandwidth,
      ospfRestartSupport,
      ospfRestartInterval,
      ospfRestartStrictLsaChecking,
      ospfRestartStatus,
      ospfRestartAge,
      ospfRestartExitReason,
      ospfAsLsaCount,
      ospfAsLsaCksumSum,
      ospfStubRouterSupport,
      ospfStubRouterAdvertisement,
      ospfDiscontinuityTime
      }
   STATUS       current
   DESCRIPTION
      "These objects are used to monitor/manage OSPF global
      parameters."
   ::= { ospfGroups 17 }
 ospfAreaGroup2    OBJECT-GROUP
   OBJECTS {
      ospfAreaId,
      ospfImportAsExtern,
      ospfSpfRuns,
      ospfAreaBdrRtrCount,
      ospfAsBdrRtrCount,
      ospfAreaLsaCount,
      ospfAreaLsaCksumSum,
      ospfAreaSummary,
      ospfAreaStatus,
      ospfAreaNssaTranslatorRole,
      ospfAreaNssaTranslatorState,
      ospfAreaNssaTranslatorStabilityInterval,
      ospfAreaNssaTranslatorEvents
      }
   STATUS       current
   DESCRIPTION
        "These objects are used by OSPF systems
        to support areas."
   ::= { ospfGroups 18 }
 ospfIfGroup2    OBJECT-GROUP
   OBJECTS {
      ospfIfIpAddress,
      ospfAddressLessIf,
      ospfIfAreaId,
      ospfIfType,
      ospfIfAdminStat,
      ospfIfRtrPriority,
      ospfIfTransitDelay,
      ospfIfRetransInterval,
      ospfIfHelloInterval,
      ospfIfRtrDeadInterval,
      ospfIfPollInterval,
      ospfIfState,
      ospfIfDesignatedRouter,
      ospfIfBackupDesignatedRouter,
      ospfIfEvents,
      ospfIfAuthType,
      ospfIfAuthKey,
      ospfIfStatus,
      ospfIfMulticastForwarding,
      ospfIfDemand,
      ospfIfLsaCount,
      ospfIfLsaCksumSum
      }
   STATUS       current
   DESCRIPTION
      "These objects are used to monitor/manage OSPF interfaces."
    ::= { ospfGroups 19 }
 ospfVirtIfGroup2    OBJECT-GROUP
   OBJECTS {
      ospfVirtIfAreaId,
      ospfVirtIfNeighbor,
      ospfVirtIfTransitDelay,
      ospfVirtIfRetransInterval,
      ospfVirtIfHelloInterval,
      ospfVirtIfRtrDeadInterval,
      ospfVirtIfState,
      ospfVirtIfEvents,
      ospfVirtIfAuthType,
      ospfVirtIfAuthKey,
      ospfVirtIfStatus,
      ospfVirtIfLsaCount,
      ospfVirtIfLsaCksumSum,
      ospfIfDesignatedRouterId,
      ospfIfBackupDesignatedRouterId
      }
   STATUS       current
   DESCRIPTION
      "These objects are used to monitor/manage OSPF
      virtual interfaces."
   ::= { ospfGroups 20 }
 ospfNbrGroup2    OBJECT-GROUP
   OBJECTS {
      ospfNbrIpAddr,
      ospfNbrAddressLessIndex,
      ospfNbrRtrId,
      ospfNbrOptions,
      ospfNbrPriority,
      ospfNbrState,
      ospfNbrEvents,
      ospfNbrLsRetransQLen,
      ospfNbmaNbrStatus,
      ospfNbmaNbrPermanence,
      ospfNbrHelloSuppressed,
      ospfNbrRestartHelperStatus,
      ospfNbrRestartHelperAge,
      ospfNbrRestartHelperExitReason
      }
   STATUS       current
   DESCRIPTION
      "These objects are used to monitor/manage OSPF
      neighbors."
   ::= { ospfGroups 21 }
 ospfVirtNbrGroup2    OBJECT-GROUP
   OBJECTS {
      ospfVirtNbrArea,
      ospfVirtNbrRtrId,
      ospfVirtNbrIpAddr,
      ospfVirtNbrOptions,
      ospfVirtNbrState,
      ospfVirtNbrEvents,
      ospfVirtNbrLsRetransQLen,
      ospfVirtNbrHelloSuppressed,
      ospfVirtNbrRestartHelperStatus,
      ospfVirtNbrRestartHelperAge,
      ospfVirtNbrRestartHelperExitReason
      }
   STATUS       current
   DESCRIPTION
      "These objects are used to monitor/manage OSPF
      virtual neighbors."
   ::= { ospfGroups 22 }
 ospfAreaAggregateGroup2    OBJECT-GROUP
   OBJECTS {
      ospfAreaAggregateAreaID,
      ospfAreaAggregateLsdbType,
      ospfAreaAggregateNet,
      ospfAreaAggregateMask,
      ospfAreaAggregateStatus,
      ospfAreaAggregateEffect,
      ospfAreaAggregateExtRouteTag
      }
   STATUS       current
   DESCRIPTION
      "These objects are used for OSPF systems to support
      network prefix aggregation across areas."
   ::= { ospfGroups 23 }
 ospfAreaLsaCountGroup      OBJECT-GROUP
   OBJECTS {
      ospfAreaLsaCountNumber
      }
   STATUS       current
   DESCRIPTION
      "These objects are used for OSPF systems that display
      per-area, per-LSA-type counters."
   ::= { ospfGroups 24 }
 ospfHostGroup2    OBJECT-GROUP
   OBJECTS {
      ospfHostIpAddress,
      ospfHostTOS,
      ospfHostMetric,
      ospfHostStatus,
      ospfHostCfgAreaID
      }
   STATUS       current
   DESCRIPTION
      "These objects are used for OSPF systems
      that support attached hosts."
   ::= { ospfGroups 25 }

-- This object group is included for SMI conformance. It is not a

-- mandatory group for compliance with this MIB

 ospfObsoleteGroup    OBJECT-GROUP
   OBJECTS {
      ospfAuthType
      }
   STATUS       obsolete
   DESCRIPTION
      "These objects are obsolete and are no longer required for
      OSPF systems.  They are placed into this group for SMI
      conformance."
   ::= { ospfGroups 26 }

END

OSPF Trap Overview

Introduction

OSPF is an event-driven routing protocol, where an event can be a change in an OSPF interface's link-level status, the expiration of an OSPF timer, or the reception of an OSPF protocol packet. Many of the actions that OSPF takes as a result of these events will result in a change of the routing topology.

As routing topologies become large and complex, it is often difficult to locate the source of a topology change or unpredicted routing path by polling a large number or routers. Because of the difficulty of polling a large number of devices, a more prudent approach is for devices to notify a network manager of potentially critical OSPF events using SNMP traps.

This section defines a set of traps, objects, and mechanisms to enhance the ability to manage IP internetworks that use OSPF as their Interior Gateway Protocol (IGP). It is an optional but very useful extension to the OSPF MIB.

Approach

The mechanism for sending traps is straightforward. When an exception event occurs, the application notifies the local agent, who sends a trap to the appropriate SNMP management stations. The message includes the trap type and may include a list of trap- specific variables. Section 5 gives the trap definitions, which includes the variable lists. The Router ID of the originator of the trap is included in the variable list so that the network manager may easily determine the source of the trap.

To limit the frequency of OSPF traps, the following additional mechanisms are suggested.

Ignoring Initial Activity

The majority of critical events occur when OSPF is enabled on a router, at which time the designated router is elected and neighbor adjacencies are formed. During this initial period, a potential flood of traps is unnecessary since the events are expected. To avoid unnecessary traps, a router should not originate expected OSPF interface-related traps until two of that interface's dead timer intervals have elapsed. The expected OSPF interface traps are ospfIfStateChange, ospfVirtIfStateChange, ospfNbrStateChange, ospfVirtNbrStateChange, ospfTxRetransmit, and ospfVirtIfTxRetransmit. Additionally, ospfMaxAgeLsa and ospfOriginateLsa traps should not be originated until two dead timer intervals have elapsed where the dead timer interval used should be the dead timer with the smallest value.

Throttling Traps

The mechanism for throttling the traps is similar to the mechanism explained in RFC 1224 RFC1224. The basic premise of the throttling mechanism is that of a sliding window, defined in seconds and an upper bound on the number of traps that may be generated within this window. Note that unlike RFC 1224, traps are not sent to inform the network manager that the throttling mechanism has kicked in.

A single window should be used to throttle all OSPF trap types except for the ospfLsdbOverflow and the ospfLsdbApproachingOverflow traps, which should not be throttled. For example, with a window time of 3, an upper bound of 3, and events to cause trap types 1, 3, 5, and 7 (4 traps within a 3-second period), the type-7 (the 4th) trap should not be generated.

Appropriate values are 7 traps with a window time of 10 seconds.

One Trap Per OSPF Event

Several of the traps defined in section 5 are generated as the result of finding an unusual condition while parsing an OSPF packet or a processing a timer event. There may be more than one unusual condition detected while handling the event. For example, a link state update packet may contain several retransmitted link state advertisements (LSAs), or a retransmitted database description packet may contain several database description entries. To limit the number of traps and variables, OSPF should generate at most one trap per OSPF event. Only the variables associated with the first unusual condition should be included with the trap. Similarly, if more than one type of unusual condition is encountered while parsing the packet, only the first event will generate a trap.

Polling Event Counters

Many of the tables in the OSPF MIB contain generalized event counters. By enabling the traps defined in this document, a network manager can obtain more specific information about these events. A network manager may want to poll these event counters and enable specific OSPF traps when a particular counter starts increasing abnormally.

The following table shows the relationship between the event counters defined in the OSPF MIB and the trap types.

     Counter32                   Trap Type

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

 ospfOriginateNewLsas       ospfOriginateLsa
 ospfIfEvents               ospfIfStateChange
                            ospfConfigError
                            ospfIfAuthFailure
                            ospfRxBadPacket
                            ospfTxRetransmit
 ospfVirtIfEvents           ospfVirtIfStateChange
                            ospfVirtIfConfigError
                            ospfVirtIfAuthFailure
                            ospfVirtIfRxBadPacket
                            ospfVirtIfTxRetransmit
 ospfNbrEvents              ospfNbrStateChange
 ospfVirtNbrEvents          ospfVirtNbrStateChange
 ospfExternLSACount         ospfLsdbApproachingOverflow
 ospfExternLSACount         ospfLsdbOverflow

Translating Notification Parameters

The definition of the OSPF notifications pre-dates the RFC 2578 RFC2578 requirement of having a zero value for the penultimate sub-identifier for translating SNMPv2/SNMPv3 trap parameters to SNMPv1 trap parameters. RFC 3584 RFC3584, section 3, defines the translation rules that can be implemented by intermediate proxy- agents or multi-lingual agents to convert SNMPv2/SNMPv3 notifications to SNMPv1 notifications and vice versa. The conversion is not reversible, that is, a conversion to one SNMP version and then back again will result in an incorrectly formatted version of the notification.

According to the rules specified in RFC 3584, section 3.1, translation of OSPF notifications from SNMPv1 to SNMPv2/SNMPv3 would result in the SNMPv2/SNMPv3 snmpTrapOID being the concatenation of the SNMPv1 'enterprise' parameter and two additional sub-identifiers, '0' and the SNMPv1 'specific-trap' parameter.

According to the rules specified in RFC 3584, section 3.2, translation of OSPF notifications from SNMPv2/SNMPv3 to SNMPv1, as the notifications are defined in this MIB, would result in the SNMPv1 'enterprise' parameter being set to the SNMPv2/SNMPv3 snmpTrapOID parameter value with the last sub-identifier removed and the 'specific-trap' parameter being set to the last sub-identifier of the SNMPv2/SNMPv3 snmpTrapOID parameter.

Note that a notification originated from an SNMPv1 agent will not be converted into the same notification that would be originated from a native SNMPv2/SNMPv3 agent.

Historical Artifacts

The MIB modules that are updated by this document were originally written in SMIv1 for SNMPv1 when only traps were used. Since this version of the MIB module is written in SMIv2, it should be understood that all types of notifications, trap and inform PDUs, may be used by native SNMPv2 and SNMPv3 agents, although only traps are mentioned. Also, for backwards compatibility, the OSPF Trap module remains rooted at {ospf 16}.

OSPF Trap Definitions

OSPF-TRAP-MIB DEFINITIONS ::= BEGIN

IMPORTS

   MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, IpAddress
                FROM SNMPv2-SMI
   MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
                FROM SNMPv2-CONF
   ospfRouterId, ospfIfIpAddress, ospfAddressLessIf, ospfIfState,
   ospfVirtIfAreaId, ospfVirtIfNeighbor, ospfVirtIfState,
   ospfNbrIpAddr, ospfNbrAddressLessIndex, ospfNbrRtrId,
   ospfNbrState, ospfVirtNbrArea, ospfVirtNbrRtrId,
   ospfVirtNbrState, ospfLsdbType, ospfLsdbLsid, ospfLsdbRouterId,
   ospfLsdbAreaId, ospfExtLsdbLimit, ospf, ospfAreaId,
   ospfAreaNssaTranslatorState, ospfRestartStatus,
   ospfRestartInterval, ospfRestartExitReason,
   ospfNbrRestartHelperStatus, ospfNbrRestartHelperAge,
   ospfNbrRestartHelperExitReason, ospfVirtNbrRestartHelperStatus,
   ospfVirtNbrRestartHelperAge, ospfVirtNbrRestartHelperExitReason
                FROM OSPF-MIB;
 ospfTrap MODULE-IDENTITY
      LAST-UPDATED "200611100000Z" -- November 10, 2006 00:00:00 EST
      ORGANIZATION "IETF OSPF Working Group"
      CONTACT-INFO
      "WG E-Mail: [email protected]
       WG Chairs: [email protected]
                  [email protected]
       Editors:   Dan Joyal
                  Nortel
                  600 Technology Park Drive
                  Billerica, MA  01821
                  [email protected]
                  Piotr Galecki
                  Airvana
                  19 Alpha Road
                  Chelmsford, MA 01824
                  [email protected]
                  Spencer Giacalone
                  CSFB
                  Eleven Madison Ave
                  New York, NY 10010-3629
                  [email protected]"
      DESCRIPTION
         "The MIB module to describe traps for the OSPF
         Version 2 Protocol.
         Copyright (C) The IETF Trust (2006).
         This version of this MIB module is part of
         RFC 4750;  see the RFC itself for full legal
         notices."
      REVISION "200611100000Z" -- November 10, 2006 00:00:00 EST
      DESCRIPTION
         "Updated for latest changes to OSPFv2:
          -added graceful restart related traps
          -added new config error types
          -added ospfNssaTranslatorStatusChange trap.
          See Appendix B of RFC 4750 for more details.
         This version published as part of RFC 4750"
      REVISION "199501201225Z" -- Fri Jan 20 12:25:50 PST 1995
      DESCRIPTION
         "The initial SMIv2 revision of this MIB module, published
         in RFC 1850."
      ::= { ospf 16 }

-- Trap Support Objects

-- The following are support objects for the OSPF traps.

 ospfTrapControl OBJECT IDENTIFIER ::= { ospfTrap 1 }
 ospfTraps OBJECT IDENTIFIER ::= { ospfTrap 2 }
 ospfSetTrap OBJECT-TYPE
      SYNTAX       OCTET STRING (SIZE(4))
      MAX-ACCESS   read-write
      STATUS       current
      DESCRIPTION
         "A 4-octet string serving as a bit map for
         the trap events defined by the OSPF traps.  This
         object is used to enable and disable specific
         OSPF traps where a 1 in the bit field
         represents enabled.  The right-most bit (least
         significant) represents trap 0.
         This object is persistent and when written
         the entity SHOULD save the change to non-volatile
         storage."
       ::= { ospfTrapControl 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),
                      noError (13) }
      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 2 }
 ospfPacketType OBJECT-TYPE
      SYNTAX       INTEGER {
                      hello (1),
                      dbDescript (2),
                      lsReq (3),
                      lsUpdate (4),
                      lsAck (5),
                      nullPacket (6) }
      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 3 }
 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 4 }

-- Traps

 ospfVirtIfStateChange NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
         ospfVirtIfAreaId,
         ospfVirtIfNeighbor,
         ospfVirtIfState  -- The new state
         }
      STATUS       current
      DESCRIPTION
         "An ospfVirtIfStateChange trap signifies that there
         has been a change in the state of an OSPF virtual
         interface.
         This trap should be generated when the interface
         state regresses (e.g., goes from Point-to-Point to Down)
         or progresses to a terminal state
         (i.e., Point-to-Point)."
      ::= { ospfTraps 1 }
 ospfNbrStateChange NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
         ospfNbrIpAddr,
         ospfNbrAddressLessIndex,
         ospfNbrRtrId,
         ospfNbrState  -- The new state
         }
      STATUS       current
      DESCRIPTION
         "An ospfNbrStateChange trap signifies that
         there has been a change in the state of a
         non-virtual OSPF neighbor.  This trap should be
         generated when the neighbor state regresses
         (e.g., goes from Attempt or Full to 1-Way or
         Down) or progresses to a terminal state (e.g.,
         2-Way or Full).  When an neighbor transitions
         from or to Full on non-broadcast multi-access
         and broadcast networks, the trap should be
         generated by the designated router.  A designated
         router transitioning to Down will be noted by
         ospfIfStateChange."
      ::= { ospfTraps 2 }
 ospfVirtNbrStateChange NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
         ospfVirtNbrArea,
         ospfVirtNbrRtrId,
         ospfVirtNbrState  -- The new state
         }
      STATUS       current
      DESCRIPTION
         "An ospfVirtNbrStateChange trap signifies that there
         has been a change in the state of an OSPF virtual
         neighbor.  This trap should be generated
         when the neighbor state regresses (e.g., goes
         from Attempt or Full to 1-Way or Down) or
         progresses to a terminal state (e.g., Full)."
      ::= { ospfTraps 3 }
 ospfIfConfigError NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
         ospfIfIpAddress,
         ospfAddressLessIf,
         ospfPacketSrc,  -- The source IP address
         ospfConfigErrorType, -- Type of error
         ospfPacketType
         }
      STATUS       current
      DESCRIPTION
         "An ospfIfConfigError trap signifies that a
         packet has been received on a non-virtual
         interface from a router whose configuration
         parameters conflict with this router's
         configuration parameters.  Note that the event
         optionMismatch should cause a trap only if it
         prevents an adjacency from forming."
      ::= { ospfTraps 4 }
 ospfVirtIfConfigError NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
         ospfVirtIfAreaId,
         ospfVirtIfNeighbor,
         ospfConfigErrorType, -- Type of error
         ospfPacketType
         }
      STATUS       current
      DESCRIPTION
         "An ospfVirtIfConfigError trap signifies that a
         packet has been received on a virtual interface
         from a router whose configuration parameters
         conflict with this router's configuration
         parameters.  Note that the event optionMismatch
         should cause a trap only if it prevents an
         adjacency from forming."
      ::= { ospfTraps 5 }
 ospfIfAuthFailure NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
         ospfIfIpAddress,
         ospfAddressLessIf,
         ospfPacketSrc,  -- The source IP address
         ospfConfigErrorType, -- authTypeMismatch or
                              -- authFailure
         ospfPacketType
         }
      STATUS       current
      DESCRIPTION
         "An ospfIfAuthFailure trap signifies that a
         packet has been received on a non-virtual
         interface from a router whose authentication key
         or authentication type conflicts with this
         router's authentication key or authentication
         type."
      ::= { ospfTraps 6 }
 ospfVirtIfAuthFailure NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
         ospfVirtIfAreaId,
         ospfVirtIfNeighbor,
         ospfConfigErrorType, -- authTypeMismatch or
                              -- authFailure
         ospfPacketType
         }
      STATUS       current
      DESCRIPTION
         "An ospfVirtIfAuthFailure trap signifies that a
         packet has been received on a virtual interface
         from a router whose authentication key or
         authentication type conflicts with this router's
         authentication key or authentication type."
      ::= { ospfTraps 7 }
 ospfIfRxBadPacket NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
         ospfIfIpAddress,
         ospfAddressLessIf,
         ospfPacketSrc,  -- The source IP address
         ospfPacketType
         }
      STATUS       current
      DESCRIPTION
         "An ospfIfRxBadPacket trap signifies that an
         OSPF packet has been received on a non-virtual
         interface that cannot be parsed."
      ::= { ospfTraps 8 }
 ospfVirtIfRxBadPacket NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
        ospfVirtIfAreaId,
        ospfVirtIfNeighbor,
        ospfPacketType
        }
      STATUS       current
      DESCRIPTION
         "An ospfVirtIfRxBadPacket trap signifies that an OSPF
         packet has been received on a virtual interface
         that cannot be parsed."
      ::= { ospfTraps 9 }
 ospfTxRetransmit NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
         ospfIfIpAddress,
         ospfAddressLessIf,
         ospfNbrRtrId, -- Destination
         ospfPacketType,
         ospfLsdbType,
         ospfLsdbLsid,
         ospfLsdbRouterId
         }
       STATUS       current
       DESCRIPTION
          "An ospfTxRetransmit trap signifies than an
          OSPF packet has been retransmitted on a
          non-virtual interface.  All packets that may be
          retransmitted are associated with an LSDB entry.
          The LS type, LS ID, and Router ID are used to
          identify the LSDB entry."
       ::= { ospfTraps 10 }
 ospfVirtIfTxRetransmit NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
         ospfVirtIfAreaId,
         ospfVirtIfNeighbor,
         ospfPacketType,
         ospfLsdbType,
         ospfLsdbLsid,
         ospfLsdbRouterId
         }
      STATUS       current
      DESCRIPTION
         "An ospfVirtIfTxRetransmit trap signifies than an
         OSPF packet has been retransmitted on a virtual
         interface.  All packets that may be retransmitted
         are associated with an LSDB entry.  The LS
         type, LS ID, and Router ID are used to identify
         the LSDB entry."
      ::= { ospfTraps 11 }
 ospfOriginateLsa NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
         ospfLsdbAreaId,  -- 0.0.0.0 for AS Externals
         ospfLsdbType,
         ospfLsdbLsid,
         ospfLsdbRouterId
         }
      STATUS       current
      DESCRIPTION
         "An ospfOriginateLsa trap signifies that a new
         LSA has been originated by this router.  This
         trap should not be invoked for simple refreshes
         of LSAs (which happens every 30 minutes), but
         instead will only be invoked when an LSA is
         (re)originated due to a topology change.
         Additionally, this trap does not include LSAs that
         are being flushed because they have reached
         MaxAge."
      ::= { ospfTraps 12 }
 ospfMaxAgeLsa NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
         ospfLsdbAreaId,  -- 0.0.0.0 for AS Externals
         ospfLsdbType,
         ospfLsdbLsid,
         ospfLsdbRouterId
         }
      STATUS       current
      DESCRIPTION
         "An ospfMaxAgeLsa trap signifies that one of
         the LSAs in the router's link state database has
         aged to MaxAge."
      ::= { ospfTraps 13 }
 ospfLsdbOverflow NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
         ospfExtLsdbLimit
         }
      STATUS       current
      DESCRIPTION
         "An ospfLsdbOverflow trap signifies that the
         number of LSAs in the router's link state
         database has exceeded ospfExtLsdbLimit."
      ::= { ospfTraps 14 }
 ospfLsdbApproachingOverflow NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
         ospfExtLsdbLimit
         }
      STATUS       current
      DESCRIPTION
         "An ospfLsdbApproachingOverflow trap signifies
         that the number of LSAs in the router's
         link state database has exceeded ninety percent of
         ospfExtLsdbLimit."
      ::= { ospfTraps 15 }
 ospfIfStateChange NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
         ospfIfIpAddress,
         ospfAddressLessIf,
         ospfIfState   -- The new state
         }
      STATUS       current
      DESCRIPTION
         "An ospfIfStateChange trap signifies that there
         has been a change in the state of a non-virtual
         OSPF interface.  This trap should be generated
         when the interface state regresses (e.g., goes
         from Dr to Down) or progresses to a terminal
         state (i.e., Point-to-Point, DR Other, Dr, or
         Backup)."
      ::= { ospfTraps 16 }
 ospfNssaTranslatorStatusChange NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
         ospfAreaId,
         ospfAreaNssaTranslatorState -- The current translation
                                     -- status
         }
      STATUS       current
      DESCRIPTION
         "An ospfNssaTranslatorStatusChange trap indicates that
         there has been a change in the router's ability to
         translate OSPF type-7 LSAs into OSPF type-5 LSAs.
         This trap should be generated when the translator
         status transitions from or to any defined status on
         a per-area basis."
      ::= { ospfTraps 17 }
 ospfRestartStatusChange NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
                ospfRestartStatus,
                ospfRestartInterval,
                ospfRestartExitReason
              }
      STATUS       current
      DESCRIPTION
         "An ospfRestartStatusChange trap signifies that
         there has been a change in the graceful restart
         state for the router.  This trap should be
         generated when the router restart status
         changes."
      ::= { ospfTraps 18 }
 ospfNbrRestartHelperStatusChange NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
                ospfNbrIpAddr,
                ospfNbrAddressLessIndex,
                ospfNbrRtrId,
                ospfNbrRestartHelperStatus,
                ospfNbrRestartHelperAge,
                ospfNbrRestartHelperExitReason
              }
      STATUS       current
      DESCRIPTION
         "An ospfNbrRestartHelperStatusChange trap signifies that
         there has been a change in the graceful restart
         helper state for the neighbor.  This trap should be
         generated when the neighbor restart helper status
         transitions for a neighbor."
      ::= { ospfTraps 19 }
 ospfVirtNbrRestartHelperStatusChange NOTIFICATION-TYPE
      OBJECTS { ospfRouterId, -- The originator of the trap
                ospfVirtNbrArea,
                ospfVirtNbrRtrId,
                ospfVirtNbrRestartHelperStatus,
                ospfVirtNbrRestartHelperAge,
                ospfVirtNbrRestartHelperExitReason
              }
      STATUS       current
      DESCRIPTION
         "An ospfVirtNbrRestartHelperStatusChange trap signifies
         that there has been a change in the graceful restart
         helper state for the virtual neighbor.  This trap should
         be generated when the virtual neighbor restart helper
         status transitions for a virtual neighbor."
      ::= { ospfTraps 20 }

-- conformance information

ospfTrapConformance OBJECT IDENTIFIER ::= { ospfTrap 3 } 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 { ospfTrapControlGroup, ospfTrapEventGroup }
    OBJECT       ospfConfigErrorType
    MIN-ACCESS   accessible-for-notify
    DESCRIPTION
       "This object is only required to be supplied within
       notifications."
    OBJECT       ospfPacketType
    MIN-ACCESS   accessible-for-notify
    DESCRIPTION
       "This object is only required to be supplied within
       notifications."
    OBJECT       ospfPacketSrc
    MIN-ACCESS   accessible-for-notify
    DESCRIPTION
       "This object is only required to be supplied within
       notifications."
    ::= { ospfTrapCompliances 2 }

-- units of conformance

 ospfTrapControlGroup    OBJECT-GROUP
      OBJECTS { ospfSetTrap,
                ospfConfigErrorType,
                ospfPacketType,
                ospfPacketSrc }
      STATUS       current
      DESCRIPTION
         "These objects are required to control traps
         from OSPF systems."
      ::= { ospfTrapGroups 1 }
 ospfTrapEventGroup       NOTIFICATION-GROUP
      NOTIFICATIONS {
         ospfVirtIfStateChange,
         ospfNbrStateChange,
         ospfVirtNbrStateChange,
         ospfIfConfigError,
         ospfVirtIfConfigError,
         ospfIfAuthFailure,
         ospfVirtIfAuthFailure,
         ospfIfRxBadPacket,
         ospfVirtIfRxBadPacket,
         ospfTxRetransmit,
         ospfVirtIfTxRetransmit,
         ospfOriginateLsa,
         ospfMaxAgeLsa,
         ospfLsdbOverflow,
         ospfLsdbApproachingOverflow,
         ospfIfStateChange,
         ospfNssaTranslatorStatusChange,
         ospfRestartStatusChange,
         ospfNbrRestartHelperStatusChange,
         ospfVirtNbrRestartHelperStatusChange
         }
      STATUS        current
      DESCRIPTION
         "A grouping of OSPF trap events, as specified
         in NOTIFICATION-TYPE constructs."
      ::= { ospfTrapGroups 2 }

END

Security Considerations

There are a number of management objects defined in this MIB that have a MAX-ACCESS clause of read-write and/or read-create. Such objects may be considered sensitive or vulnerable in some network environments. The support for SET operations in a non-secure environment without proper protection can have a negative effect on network operations.

It is recommended that attention be specifically given to implementing the MAX-ACCESS clause in a number of objects, including ospfIfAuthKey, ospfIfAuthType, ospfVirtIfAuthKey, and ospfVirtIfAuthType in scenarios that DO NOT use SNMPv3 strong security (i.e., authentication and encryption). Extreme caution must be used to minimize the risk of cascading security vulnerabilities when SNMPv3 strong security is not used. When SNMPv3 strong security is not used, these objects should have access of read-only, not read-create.

SNMPv1 by itself is not a secure environment. Even if the network itself is secure (for example by using IPsec), even then, there is no control as to who on the secure network is allowed to access and GET/SET (read/change/create/delete) the objects in this MIB.

It is recommended that the implementers consider the security features as provided by the SNMPv3 framework. Specifically, the use of the User-based Security Model RFC 3414 RFC3414 and the View- based Access Control Model RFC 3415 RFC3415 is recommended.

It is then a customer/user responsibility to ensure that the SNMP entity giving access to an instance of this MIB, is properly configured to give access to the objects only to those principals (users) that have legitimate rights to indeed GET or SET (change/create/delete) them.

IANA Considerations

The MIB module in this document uses the following IANA-assigned OBJECT IDENTIFIER values recorded in the SMI Numbers registry:

Descriptor OBJECT IDENTIFIER value


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

ospf { mib-2 14 }

Acknowledgements

This document was produced by the OSPF Working Group and is based on the MIB for OSPF version 2 by Rob Coltun and Fred Baker RFC1850. The editors would like to acknowledge John Moy, Rob Coltun, Randall Atkinson, David T. Perkins, Ken Chapman, Brian Field, Acee Lindem, Vishwas Manral, Roy Jose, Don Goodspeed, Vivek Dubey, Keith McCloghrie, Bill Fenner, and Dan Romascanu for their constructive comments.

References

Normative References

RFC2119 Bradner, S., "Key words for use in RFCs to Indicate

          Requirement Levels", BCP 14, RFC 2119, March 1997.

RFC2578 McCloghrie, K., Perkins, D., and J. Schoenwaelder,

          "Structure of Management Information Version 2 (SMIv2)",
          STD 58, RFC 2578, April 1999.

RFC2579 McCloghrie, K., Perkins, D., and J. Schoenwaelder,

          "Textual Conventions for SMIv2", STD 58, RFC 2579, April
          1999.

RFC2580 McCloghrie, K., Perkins, D., and J. Schoenwaelder,

          "Conformance Statements for SMIv2", STD 58, RFC 2580,
          April 1999.

Informative References

RFC1224 Steinberg, L., "Techniques for managing asynchronously

          generated alerts", RFC 1224, May 1991.

RFC1704 Haller, N. and R. Atkinson, "On Internet Authentication",

          RFC 1704, October 1994.

RFC1765 Moy, J., "OSPF Database Overflow", RFC 1765, March 1995.

RFC1793 Moy, J., "Extending OSPF to Support Demand Circuits", RFC

          1793, April 1995.

RFC1850 Baker, F. and R. Coltun, "OSPF Version 2 Management

          Information Base", RFC 1850, November 1995.

RFC2328 Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998.

RFC2370 Coltun, R., "The OSPF Opaque LSA Option", RFC 2370, July

          1998.

RFC3101 Murphy, P., "The OSPF Not-So-Stubby Area (NSSA) Option",

          RFC 3101, January 2003.

RFC3410 Case, J., Mundy, R., Partain, D., and B. Stewart,

          "Introduction and Applicability Statements for Internet-
          Standard Management Framework", RFC 3410, December 2002.

RFC3414 Blumenthal, U. and B. Wijnen, "User-based Security Model

          (USM) for version 3 of the Simple Network Management
          Protocol (SNMPv3)", STD 62, RFC 3414, December 2002.

RFC3415 Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based

          Access Control Model (VACM) for the Simple Network
          Management Protocol (SNMP)", STD 62, RFC 3415, December
          2002.

RFC3584 Frye, R., Levi, D., Routhier, S., and B. Wijnen,

          "Coexistence between Version 1, Version 2, and Version 3
          of the Internet-standard Network Management Framework",
          BCP 74, RFC 3584, August 2003.

RFC3623 Moy, J., Pillay-Esnault, P., and A. Lindem, "Graceful OSPF

          Restart", RFC 3623, November 2003.

RFC791 Postel, J., "Internet Protocol", STD 5, RFC 791, September

          1981.

RFC3411 Harrington, D., Presuhn, R., and B. Wijnen, "An

          Architecture for Describing Simple Network Management
          Protocol (SNMP) Management Frameworks", STD 62, RFC 3411,
          December 2002.

RFC1583 Moy, J., "OSPF Version 2", RFC 1583, March 1994.

Appendix A. TOS Support

For backward compatibility with previous versions of the OSPF MIB specification, TOS-specific information has been retained in this document, though the TOS routing option has been deleted from OSPF RFC2328.

Appendix B. Changes from RFC 1850

This section documents the differences between this memo and RFC 1850.

Appendix B.1. General Group Changes

Added object ospfRFC1583Compatibility to indicate support with "RFC 1583 Compatibility" RFC1583. This object has DEFVAL of "enabled".

Added object ospfReferenceBandwidth to allow configuration of a reference bandwidth for calculation of default interface metrics.

Added objects ospfRestartSupport, ospfRestartInterval, ospfRestartAge, ospfRestartStrictLsaChecking, and ospfRestartExitReason to support graceful restart.

Added objects ospfStubRouterSupport and ospfStubRouteAdvertisement to support stub routers.

Added object ospfDiscontinuityTime in order for a management entity to detect counter discontinuity events.

Appendix B.2. OSPF NSSA Enhancement Support

Added new objects to OspfAreaTable including the following:

-ospfAreaNssaTranslatorRole to indicate the configured NSSA

translation role.

-ospfAreaNssaTranslatorState to indicate the current NSSA translation

role.

-ospfAreaNssaTranslatorStabilityInterval to indicate time to continue

to perform at current translation status.

-ospfAreaNssaTranslatorEvents to indicate the number of times OSPF

translation state has changed.

Added new object ospfAreaAggregateExtRouteTag to ospfAreaAggregateTable.

Added new object ospfNssaTranslatorStatusChange to ospfTraps in OSPF-TRAP-MIB DEFINITIONS.

Added ospfAreaId to IMPORTS in OSPF-TRAP-MIB DEFINITIONS to support ospfNssaTranslatorStatusChange.

Added ospfAreaExtNssaTranslatorStatus to IMPORTS in OSPF-TRAP-MIB DEFINITIONS to support ospfNssaTranslatorStatusChange.

Modified the DESCRIPTION clause of the ospfAreaSummary object in the ospfAreaTable to indicate support for NSSA.

Modified the DESCRIPTION clause of the ospfImportAsExtern object in the ospfAreaTable for clarity.

Appendix B.3. Opaque LSA Support

Added object ospfOpaqueLsaSupport to ospfGeneralGroup to indicate support of OSPF Opaque LSAs.

Created ospfLocalLsdbTable, for link-local (type-9) LSA support. This table is indexed by the following:

-ospflocalLsdbIpAddress

-ospfLocalLsdbAddressLessIf

-ospfLocalLsdbType

-ospfLocalLsdbLsid

-ospfLocalLsdbRouterId

ospfLocalLsdbTable contains the following (columnar) objects:

-ospfLocalLsdbSequence, to indicate LSA instance

-ospfLocalLsdbAge

-ospfLocalLsdbChecksum

-ospfLocalLsdbAdvertisement, containing the entire LSA

Created ospfVirLocalLsdbTable, for link-local (type-9) LSA support on virtual links. This table is indexed by the following:

-ospfVirtLocalLsdbTransitArea

-ospfVirtLocalLsdbNeighbor, to indicate the router ID of the virtual

neighbor

-ospfVirLocalLsdbType

-ospfVirLocalLsdbLsid

-ospfVirLocalLsdbRouterId

ospfVirLocalLsdbTable contains the following (columnar) objects:

-ospfVirLocalLsdbSequence, to indicate LSA instance

-ospfVirLocalLsdbAge

-ospfVirLocalLsdbChecksum

-ospfVirLocalLsdbAdvertisement, containing the entire LSA

Added objects to ospfIfTable to support link-local (type-9) LSAs, including the following:

-ospfIfLsaCount

-ospfIfLsaCksumSum, to indicate the sum of the type-9 link state

advertisement checksums on this interface

Added objects to ospfVirIfTable, to support link-local (type-9) LSAs on virtual links, including the following:

-ospfVirIfLsaCount

-ospfVirIfLsaCksumSum, to indicate the sum of the type-9 link state

advertisement checksums on this link

To support area scope (type-10) LSAs, the enumeration areaOpaqueLink (10) was added to ospfLsdbType in the ospfLsdbTable.

Created ospfAsLsdbTable, for AS-scope LSA support. This table is indexed by the following:

-ospfAsLsdbType

-ospfAsLsdbLsid

-ospfAsLsdbRouterId

ospfAsLsdbTable contains the following (columnar) objects:

-ospfAsLsdbSequence, to indicate LSA instance

-ospfAsLsdbAge

-ospfAsLsdbChecksum

-ospfAsLsdbAdvertisement, containing the entire LSA

Appendix B.4. Graceful Restart Support

Added objects ospfRestartSupport, ospfRestartInterval, ospfRestartAge, ospfRestartStrictLsaChecking, and ospfRestartExitReason to general group.

Added objects ospfNbrRestartHelperStatus, ospfNbrRestartHelperAge, and ospfNbrRestartHelperExitReason to OspfNbrTable.

Added objects ospfVirtNbrRestartHelperStatus, ospfVirtNbrRestartHelperAge, and ospfVirtNbrRestartHelperExitReason to OspfVirtNbrTable.

Appendix B.5. OSPF Compliances

New compliance statements were added for new and for obsoleted conformance groups. These statements include the following:

-ospfCompliance2

-ospfComplianceObsolete

New conformance groups were created to support new objects added to the group. These groups include the following:

-ospfBasicGroup2

-ospfAreaGroup2

-ospfIfGroup2

-ospfVirtIfGroup2

-ospfNbrGroup2

-ospfVirtNbrGroup2

-ospfAreaAggregateGroup2

Added completely new conformance groups, including the following:

-ospfLocalLsdbGroup, which specifies support for link-local (type-9)

LSAs

-ospfVirtLocalLsdbGroup, which specifies support for link-local

(type-9) LSAs on virtual links

-ospfObsoleteGroup, for obsolete objects and SMI compatibility

Appendix B.6. OSPF Authentication and Security

As there has been significant concern in the community regarding cascading security vulnerabilities, the following changes have been incorporated:

-Modified the DESCRIPTION clause of ospfIfAuthKey due to security

concerns and to increase clarity

-Modified the DESCRIPTION clause of ospfVirtIfAuthKey due to security

concerns and to increase clarity

-Modified the DESCRIPTION clause of ospfIfAuthType due to security

concerns and to increase clarity

-Modified the DESCRIPTION clause of ospfVirtIfType due to security

concerns and to increase clarity

-Modified the OSPF MIB MODULE DESCRIPTION due to security concerns

and to include a reference to the Security Considerations section in
this document that will transcend compilation

-Modified the Security Considerations section to provide detail

Appendix B.7. OSPF Trap MIB

Added ospfTrapEventGroup.

Added importation of NOTIFICATION-GROUP.

Changed the STATUS of the ospfTrapCompliance MODULE-COMPLIANCE construct to obsolete.

Added ospfTrapCompliance2 MODULE-COMPLIANCE construct, which replaces ospfTrapCompliance. OspfTrapCompliance includes an updated MANDATORY-GROUPS clause and new MIN-ACCESS specifications.

Added mtuMismatch enumeration to ospfConfigErrorType object in ospfTrapControl to imply MTU mismatch trap generation. in ospfIfConfigError.

Added noError enumeration to ospfConfigErrorType object for situations when traps are requested but none have been sent. Updated the DESCRIPTION clause accordingly.

Added nullPacket enumeration to ospfPacketType object for situations when traps are requested but none have been sent. Updated the DESCRIPTION clause accordingly.

Updated the DESCRIPTION clause of ospfPacketSrc for situations when traps are requested, but none have been sent.

Added NOTIFICATION-TYPE for ospfRestartStatusChange.

Added NOTIFICATION-TYPE for ospfNbrRestartHelperStatusChange.

Added NOTIFICATION-TYPE for ospfVirtNbrRestartHelperStatusChange.

Appendix B.8. Miscellaneous

Various sections have been moved or modified for clarity. Most of these changes are semantic in nature and include, but are not limited to the following:

-The OSPF overview section's format was revised. Unneeded

information was removed.  Removed information includes OSPF TOS
default values.

-The trap overview section's format and working were revised.

Unneeded information was removed.

-Modified the DESCRIPTION clause of "Status" "TEXTUAL-CONVENTION" for

clarity.

-The Updates section was moved from the overview to its own section.

-Updated "REFERENCE" clauses in all objects, as needed.

-Modified the SEQUENCE of the OspfIfTable to reflect the true order

of the objects in the table.

-Modified the DESCRIPTION clause of all row management objects for

clarity.

Added ospfHostCfgAreaID to object to Host table with read-create access. Deprecated ospfHostAreaID.

Added importation of InterfaceIndexOrZero from IF-MIB. This TEXTUAL-CONVENTION will replace the InterfaceIndex TEXTUAL- CONVENTION.

Changed the SYNTAX clause of ospfNbrAddressLessIndex to use the semantically identical InterfaceIndexOrZero TEXTUAL-CONVENTION, as permitted by the SMI.

Changed the STATUS clause of the TEXTUAL-CONVENTION InterfaceIndex to obsolete and modified the DESCRIPTION accordingly.

Changed the SYNTAX clause of ospfAddressLessIf to use the semantically identical InterfaceIndexOrZero TEXTUAL-CONVENTION, as permitted by the SMI.

Changed the SYNTAX clause of ospfIfMetricAddressLessIf to use the semantically identical InterfaceIndexOrZero TEXTUAL-CONVENTION, as permitted by the SMI.

Changed importation of mib-2 from RFC1213-MIB to SNMPv2-SMI

Added Intellectual Property Rights section.

Updated REVISION DESCRIPTION clauses with description of major MIB modifications.

Moved all relevant MIB comments to objects' DESCRIPTION clauses.

Added reasoning for object deprecation.

Added persistence information for read-write, read-create objects.

Described conditions when columns can be modified in RowStatus managed rows as required by RFC 2579.

Defined OspfAuthenticationType TC and modified authentication type objects to use the new type.

Made index objects of new tables not accessible.

Added the UNITS clause to several objects.

Added ospfIfDesignatedRouterId and ospfIfBackupDesignatedRouterId to the OspfIfEntry.

Added the area LSA counter table.

Added IANA Considerations section.

Authors' Addresses

Dan Joyal (Editor) Nortel, Inc. 600 Technology Park Drive Billerica, MA 01821 USA

EMail: [email protected]

Piotr Galecki (Editor) Airvana, Inc. 19 Alpha Road Chelmsford, MA 01824 USA

EMail: [email protected]

Spencer Giacalone (Editor) CSFB Eleven Madison Ave New York, NY 10010-3629 USA

EMail: [email protected]

Fred Baker Cisco Systems 1121 Via Del Rey Santa Barbara, California 93117 USA

EMail: [email protected]

Rob Coltun Touch Acoustra 3204 Brooklawn Terrace Chevy Chase, MD 20815 USA

EMail: undisclosed

Full Copyright Statement

Copyright (C) The IETF Trust (2006).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST, AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at [email protected].

Acknowledgement

Funding for the RFC Editor function is currently provided by the Internet Society.