Network Working Group                                          Editors
  Internet Draft                                        Spencer Giacalone
                                                     Predictive Systems                                               Dan Joyal
                                                           Piotr Galecki
                                                         Nortel Networks

                                                        Original Authors
                                                              Rob Coltun
                                                          Movaz Networks
                                                              Fred Baker
                                                           Cisco Systems

  Document: draft-ietf-ospf-mib-update-06.txt                  April 2003
Expires: draft-ietf-ospf-mib-update-07.txt               October 2003
  Expires: April 2004

                     OSPF Version 2 Management Information Base

    This document is an Internet-Draft and is in full conformance with
    all provisions of Section 10 of RFC2026. Internet-Drafts are working
    documents of the Internet Engineering Task Force (IETF), its areas,
    and its working groups.  Note that other groups may also distribute
    working documents as Internet-Drafts.

    Internet-Drafts are draft documents valid for a maximum of six months
    and may be updated, replaced, or obsoleted by other documents at any
    time.  It is inappropriate to use Internet-Drafts as reference
    material or to cite them other than as "work in progress."

    The list of current Internet-Drafts can be accessed at
    http://www.ietf.org/ietf/1id-abstracts.txt

    The list of Internet-Draft Shadow Directories can be accessed at
    http://www.ietf.org/shadow.html.

  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 is intended to update and possibly obsolete RFC 1850,
    however, it is designed to be backwards compatible. The functional
    differences between this memo and RFC 1850 are explained in Appendix
    B.

    Please send comments to ospf@discuss.microsoft.com. ospf@peach.ease.lsoft.com.

  Copyright Notice

    Copyright (C) The Internet Society (1999).  All Rights Reserved.

  Table of Contents

    1 Overview ..............................................3
    1.1 The SNMPv2 Network Internet-Standard Management Framework .............3 ..........3
    1.2 The SMI, and Object definitions .....................3
   1.3 Object Identification ...............................4
   1.4 Textual Conventions .................................4
   1.5 Conceptual Row Creation .............................4
   1.6
    1.3 Default Configuration ...............................5
    1.4 OSPF Counters .......................................5
    2 Structure of this MIB .................................6
    2.1 The Purposes of the sections in this MIB ............6
    2.1.1 General Variables .................................6
    2.1.2 Area Data Structure and Area Stub Metric Table ....6
    2.1.3 Link State Database and External Link State
          Database ..........................................7
    2.1.4 Address Table and Host Tables .....................7
    2.1.5 Interface and Interface Metric Tables .............7
    2.1.6 Virtual Interface Table ...........................7
    2.1.7 Neighbor and Virtual Neighbor Tables ..............7
    2.1.8 Local Link State Database Table and Virtual
          Local Link State Database Table ...................7
    2.1.9 AS-scope Link State Database Table ................7
    2.1.10 Area Lsa Count Table .............................7
    3 OSPF-MIB Definitions ..................................7
    3.1 OSPF General Variables ..............................11
    3.2 OSPF Area Table .....................................17
    3.3 OSPF Area Default Metrics ...........................22
    3.4 OSPF Link State Database ............................24
    3.5 OSPF Address Range Table ............................27
    3.6 OSPF Host Table .....................................29
    3.7 OSPF Interface Table ................................31
    3.8 OSPF Interface Metric Table .........................38
    3.9 OSPF Virtual Interface Table ........................40
    3.10 OSPF Neighbor Table ................................45
    3.11 OSPF Virtual Neighbor Table ........................49
    3.12 OSPF External Link State Database ..................53
    3.13 OSPF Route Table Use ...............................56
    3.14 OSPF Area Aggregate Table ..........................57
    3.15 OSPF Local LSDB Table...............................59
    3.16 OSPF Virtual Local LSDB Table.......................63
    3.17 OSPF AS LSDB Table..................................66
    3.18 Conformance Information ............................69
    4 OSPF Trap overview ....................................79
    4.1 Introduction.........................................79
    4.2 Approach.............................................80
    4.3 Ignoring Initial Activity ...........................80
    4.4 Throttling Traps ....................................80
    4.5 One Trap Per OSPF Event .............................80
    4.6 Polling Event Counters ..............................81
    5 OSPF Trap Definitions .................................81
    5.1 Trap Support Objects ................................82
    5.2 Traps ...............................................84
    5.3 Conformance Information .............................90
    6 Acknowledgements ......................................92
    7 References ............................................92
    A TOS Support ...........................................94
    B Changes from RFC 1850 .................................94
    B.1 General Group Support ...............................94
    B.2 OSPF NSSA Enhancement Support .......................94
    B.4 Opaque LSA Support ..................................95
    B.5 Graceful Restart Support ............................97
    B.6 OSPF Compliances.....................................97
    B.7 OSPF Authentication and Security.....................98
    B.8 OSPF Trap MIB .......................................98
    B.9 Miscellaneous .......................................99
    C Security Considerations ...............................100
    D Authors' Addresses ....................................100
    E Full Copyright Statement ..............................101

  1 Overview

  1.1 The SNMPv2 Network Internet-Standard Management Framework

   This document describes aspects of the SNMPv2 Network Management
   Framework, which consists of

    For a number of components.  They are:

      - An overall architecture, described in RFC 2571 [1].

      - Mechanisms for describing and naming objects  and  events
        for  the purpose of management. The first version of this
        Structure of Management Information (SMI) is called SMIv1
        and described in STD 16, RFC 1155 [2], STD 16, RFC 1212
        [3] and RFC 1215 [4]. The second version, called SMIv2,
        is described in STD 58, RFC 2578 [5], RFC 2579 [6] and
        RFC 2580 [7].

      - Message protocols for transferring management
        information. The first version of the SNMP  message
        protocol is called SNMPv1 and described in STD 15, RFC
        1157 [8]. A second version detailed overview of the SNMP message protocol,
        which is not an Internet standards  track  protocol, is
        called SNMPv2c and described in RFC 1901 [9] and RFC 1906
        [10]. The third version of documents that describe the message protocol is called
        SNMPv3 and described in RFC 1906 [10], RFC 2572 [11] and
        RFC 2574 [12].

      - Protocol operations for accessing management information.
        The first set of protocol operations and associated PDU
        formats is described in STD 15, RFC 1157  [8]. A second
        set of protocol operations and associated PDU formats is
        described in RFC 1905 [13].

      - A set current
    Internet-Standard Management Framework, please refer to section 7 of fundamental applications described in  RFC  2573
        [14] and the view-based access control mechanism
        described in
    RFC 2575 [15].

1.2 The SMI, and Object Definitions 3410 [RFC3410].

    Managed objects are accessed via a virtual information store, termed
    the Management Information Base or MIB.  Objects in the MIB are
   defined using the subset of Abstract Syntax Notation One (ASN.1)
   defined in the SMI.

   This memo specifies a MIB module that is compliant to the
   SMIv2. A MIB conforming to the SMIv1 can be produced through
   the appropriate translations.

1.3 Object Identification

   Objects in the SMI are defined by types, and are named by an
   OBJECT IDENTIFIER, which is an administratively assigned name.
   The object type together with an object instance serves to
   uniquely identify a specific instantiation of the object. For
   human convenience, we often use a textual string, termed
   the descriptor, to refer to the object type.

1.4 Textual Conventions

   Several data types in this or MIB.  MIB document objects are termed textual
   conventions. Textual conventions enhance the readability
   of the specification and can ease comparison with other
   specifications if appropriate. It should be noted that
   textual conventions have no effect on either the syntax nor generally
    accessed through the semantics of any managed objects. Simple Network Management Protocol (SNMP).
    Objects defined in
   terms of one of these methods are always encoded by means
   of the rules that define the primitive type. Textual
   conventions MIB are used for defined using the convenience of readers and
   writers mechanisms defined in pursuit of the goal
    Structure of clear, concise, and
   unambiguous Management Information (SMI).  This memo specifies a MIB documents.

1.5
    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].

  1.2 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 which an agent should use for instances
    of variables which need to be created due to a Set-Request, but which
    are not specified in the Set-Request. DEFVAL clauses have not been
    specified for some objects which 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 RFC-791):

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

   Therefor,

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

1.6

  1.3 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. 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 that:

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

  1.4 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
       - ospftVirtNbrEvents in the ospfVirtNbrEvents.

    As a best practice, a management entity when reading these counters, should
    use the discontinuity object ospfDiscontinuityTime,
    to determine if an event, which 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.

  1.5 Multiple OSPF Instances

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

  2 Structure of this MIB

    This MIB is composed of the following sections:

       General Variables
       Area Data Structure
       Area Stub Metric Table
       Link State Database
       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

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

  2.1 The Purposes of the sections in this MIB

  2.1.1 General Variables

    The General Variables describe (as it may seem from the name)
    variables which are global to the OSPF Process.

  2.1.2 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 NSSA
    translation.

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

  2.1.3 Link State Database and External Link State Database

    The Link State Database is provided primarily to provide detailed
    information for network debugging.

  2.1.4 Address Table and Host Tables

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

  2.1.5 Interface and Interface Metric Tables

    The 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) LSA
    statistics.

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

  2.1.7 Neighbor and Virtual Neighbor Tables

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

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

  2.1.9 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 DEFINITIONS ::= BEGIN

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

  ospf MODULE-IDENTITY
         LAST-UPDATED "200304011015Z" "200309201100Z" -- Apr 01, Sep 20, 2003 10:15:00 11:00:00 GMT
         ORGANIZATION "IETF OSPF Working Group"
         CONTACT-INFO
         "WG E-Mail: ospf@discuss.microsoft.com ospf@peach.ease.lsoft.com

          WG Chairs: John.Moy@sycamorenet.com
                     acee@redback.com
                     rohit@xebeo.com

                Spencer Giacalone
        Postal: Predictive Systems
                25a Vreeland Road
                Florham Park, NJ 07932
        Tel:    +1 (973) 301-5695
        E-Mail: spencer.giacalone@predictive.com

          Editors:   Dan Joyal
        Postal: Joyal, Piotr Galecki
                     Nortel Networks
                     600 Technology Park Drive
                     Billerica, MA  01821
        E-Mail: djoyal@nortelnetworks.com"
                     djoyal@nortelnetworks.com
                     pgalecki@nortelnetworks.com"

         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 the document defining this MIB module for more
            information"
         REVISION "200304011015Z" "200309201100Z" -- Apr 01, Sep 20, 2003 10:15:00 11:00:00 GMT
         DESCRIPTION
           "Updated for latest changes to OSPF Version 2. 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
            See Appendix B for more details."
         REVISION "9501201225Z" -- Fri Jan 20 12:25:50 PST 1995
         DESCRIPTION
            "The initial SMIv2 revision of this MIB module, published in
            RFC1850."
         ::= { 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

AreaID Advertisements."
         SYNTAX       IpAddress

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

--  Note: The 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.

RouterID Address."
         SYNTAX       IpAddress

  Metric ::= TEXTUAL-CONVENTION
         STATUS       current
         DESCRIPTION
           "A
            "The OSPF Router Identifier."
        SYNTAX       IpAddress

-- Internal Metric.

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

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

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

--  Status Values

  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,
            while 'disabled' indicates that it is not."
         SYNTAX       INTEGER { enabled (1), disabled (2) }

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

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

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

  UpToMaxAge ::= TEXTUAL-CONVENTION
         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)

--  The range of ifIndex

InterfaceIndex ::= TEXTUAL-CONVENTION
        STATUS       obsolete
        DESCRIPTION
           "The range of ifIndex. This statement
           no longer used and is included for backwards-
           compatibility "
        SYNTAX       Integer32

--  Potential Priorities for the Designated Router Election

  DesignatedRouterPriority ::= TEXTUAL-CONVENTION
         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
         STATUS      current
         DESCRIPTION
            "Type of Service is defined as a mapping to the IP Type of
            Service Flags as defined in the IP Forwarding Table MIB
                +-----+-----+-----+-----+-----+-----+-----+-----+
                |                 |                       |     |
                |   PRECEDENCE    |    TYPE OF SERVICE    |  0  |
                |                 |                       |     |
                +-----+-----+-----+-----+-----+-----+-----+-----+

                         IP TOS                IP TOS
                    Field     Policy      Field     Policy

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

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

  OspfAuthType ::= TEXTUAL-CONVENTION
         STATUS       current
         DESCRIPTION
            "The authentication type."
         SYNTAX       INTEGER {
                         none (0),
                         simplePassword (1),
                         md5 (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." 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 inter-
            face; 'disabled' disables  it on all inter-
           faces."
            faces.

            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  proto-
            col 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 config-
            ured as an Autonomous System border router." 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." database.

             This object is persistent and when written
             the entity SHOULD save the change to non-volatile storage."
          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 unsigned sum of the LS checksums of
             the  external link-state advertisements con-
             tained 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."
          ::= { ospfGeneralGroup 7 }

    ospfTOSSupport OBJECT-TYPE
         SYNTAX       TruthValue
         MAX-ACCESS   read-write
         STATUS       current
         DESCRIPTION
            "The router's support for type-of-service rout-
           ing." 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 in-
            cremented each time the router originates a new
           LSA."
            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 re-
           ceived received determined
            to be new instantiations.
            This number does not include newer instantia-
           tions 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 self-originated link-state advertise-
           ments." 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)." 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 Multi-
            cast 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 mul-
            ticast 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 Auto-
            nomous Systems (called inter-AS multicast rout-
            ing).

            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 mul-
            ticast forwarding is enabled." 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." 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." 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." 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." types.

             This object is persistent and when written
             the entity SHOULD save the change to non-volatile storage."
         REFERENCE
            "The OSPF Opaque LSA Option"
         ::= { ospfGeneralGroup 16 }

   ospfTrafficEngineeringSupport OBJECT-TYPE
        SYNTAX       TruthValue
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
           "The router's support for OSPF traffic engineering."
        ::= { ospfGeneralGroup 17 }

    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)" MBPS)
            This object is persistent and when written
            the entity SHOULD save the change to non-volatile storage."
         ::= { ospfGeneralGroup 18 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 hitless graceful restart.
            Options include: no restart support, only planned
            restarts or both planned and unplanned restarts." restarts.

            This object is persistent and when written
            the entity SHOULD save the change to non-volatile storage."
         ::= { ospfGeneralGroup 19 18 }

    ospfRestartInterval OBJECT-TYPE
         SYNTAX       Integer32 (0..1800) (1..1800)
         UNITS        "seconds"
         MAX-ACCESS   read-write
         STATUS       current
         DESCRIPTION
            "Configured OSPF hitless graceful restart timeout interval." interval.

             This object is persistent and when written
             the entity SHOULD save the change to non-volatile storage."
         ::= { ospfGeneralGroup 20 19 }

    ospfRestartStatus OBJECT-TYPE
         SYNTAX       INTEGER { notRestarting (1),
                                plannedRestart (2),
                                unplannedRestart (3)
                              }
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
            "Current status of OSPF hitless restart." graceful restart.”
         ::= { ospfGeneralGroup 21 20 }

    ospfRestartAge OBJECT-TYPE
         SYNTAX       Unsigned32
         UNITS        "seconds"
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
            "Remaining time in current OSPF hitless graceful restart
            interval."
         ::= { ospfGeneralGroup 22 21 }
    ospfRestartExitReason OBJECT-TYPE
         SYNTAX       INTEGER { none (1),           -- none attempted
                                inProgress (2) (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
           hitless
            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 22 }

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

    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 con-
             tained 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 24 }

     ospfStubRouterSupport OBJECT-TYPE
         SYNTAX       TruthValue
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
             "The router's support for stub router functionality." functionality.

             This object is persistent and when written
             the entity SHOULD save the change to non-volatile storage."
         REFERENCE
             "OSPF Stub Router Advertisement"
         ::= { ospfGeneralGroup 26 25 }

     ospfStubRouterAdvertisement OBJECT-TYPE
         SYNTAX       INTEGER {
                            doNotAdvertise (1),
                            advertise(2)
                            }
         MAX-ACCESS   read-write
         STATUS       current
         DESCRIPTION
             "This object controls the advertisement of
             stub router LSA's by the router. The value
             doNotAdvertise will result in the advertisement
             of a standard router LSA and is the default value.ö value.

             This object is persistent and when written
             the entity SHOULD save the change to non-volatile storage."
         ::= { ospfGeneralGroup 26 }

    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
            reinitialization of the local management subsystem,
            then this object contains a zero value."
        ::= { ospfGeneralGroup 27 }

  --  OSPF Area Data Structure Table

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

    ospfAreaTable OBJECT-TYPE
         SYNTAX       SEQUENCE OF OspfAreaEntry
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "Information describing the configured parame-
            ters and cumulative statistics of the router's
           attached areas." 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 Struc-
            ture"
         ::= { ospf 2 }

    ospfAreaEntry OBJECT-TYPE
         SYNTAX       OspfAreaEntry
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "Information describing the configured parame-
            ters and cumulative statistics of one of the
            router's attached areas." 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
               Integer32,
                OspfAuthType,
             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
         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       Integer32
                        -- none (0),
                        -- simplePassword (1)
                        -- md5 (2)
                        -- reserved for specification by IANA (> 2)       OspfAuthType
         MAX-ACCESS   read-create
         STATUS       obsolete
         DESCRIPTION
            "The authentication type specified for an area.
           Additional authentication types may be assigned
           locally on a per Area basis." area."
         REFERENCE
            "OSPF Version 2, Appendix D Authentication"
         DEFVAL { 0 } -- 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 whether an area is a Stub area, NSSA, or standard
            area. Type-5 AS-External LSAs and Type-11 Opaque LSAs are
            not imported into Stub Areas or NSSAs. NSSAs import AS-
            External data as Type-7 LSAs"
         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." 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 reach-
            able within this area. This is initially zero,
            and is calculated in each 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 LSA's."
         ::= { ospfAreaEntry 7 }

    ospfAreaLsaCksumSum OBJECT-TYPE
         SYNTAX       Integer32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
            "The 32-bit unsigned sum of the link-state  ad-
            vertisements' 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 data-
            base, and to compare the link-state database of
            two routers."
         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 im-
            port of summary LSAs into stub and NSSA areas.
            It has no effect on other areas.

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

            If it is sendAreaSummary, the router will both
            summarize and propagate summary LSAs."
         DEFVAL { 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." destruction.

            The RowStatus TC requires that this DESCRIPTION clause
            states under which circumstances other objects in this row
            can be modified.  The value of this object has no effect on
            whether other objects in this conceptual row can be
            modified."
         ::= { 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 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." 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

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

    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." 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
         STATUS       current
         DESCRIPTION
            "The 32 bit identifier for the Stub Area. On
            creation, this can be derived from the in-
            stance."
         ::= { ospfStubAreaEntry 1 }

    ospfStubTOS OBJECT-TYPE
         SYNTAX       TOSType
         MAX-ACCESS   read-only
         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 inter-
            faces 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." destruction.

            The RowStatus TC requires that this DESCRIPTION clause
            states under which circumstances other objects in this row
            can be modified.  The value of this object has no effect on
            whether other objects in this conceptual row can be
            modified."
         ::= { 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 ad-
            vertised as a default route."
         DEFVAL { ospfMetric }
         ::= { ospfStubAreaEntry 5 }

  --  OSPF Link State Database

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

    ospfLsdbTable OBJECT-TYPE
         SYNTAX       SEQUENCE OF OspfLsdbEntry
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "The OSPF Process's Link State Database." 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 Adver-
            tisements"
         ::= { 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
         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 }

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

    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
         STATUS       current
         DESCRIPTION
            "The type of the link state advertisement.

            Each link state type has a separate advertise-
            ment format." 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
         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
         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 }

--  Note that the OSPF Sequence Number

    ospfLsdbSequence OBJECT-TYPE
         SYNTAX       Integer32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
            "The sequence number field is a 32 bit signed
-- 32-bit
            integer. It starts with the value '80000001'h,
--
            or -'7FFFFFFF'h, and increments until '7FFFFFFF'h
-- '7FFFFFFF'h.
            Thus, a typical sequence number will be very negative.

   ospfLsdbSequence OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The sequence number field is a signed 32-bit
           integer.
            It is used to detect old and dupli-
           cate 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 adver-
            tisement 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 connec-
            tionless 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." 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 Adver-
            tisements"
         ::= { ospfLsdbEntry 8 }

  --  Address Range Table

--     The

    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;
             Table. It describes those Address Range Summaries that
--
             are configured to be propagated from an Area to reduce
--
             the amount of information about it which is known beyond
--
             its borders.

   ospfAreaRangeTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF OspfAreaRangeEntry
        MAX-ACCESS   not-accessible
        STATUS       obsolete
        DESCRIPTION
           "A range if It contains a set of IP addresses 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" 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 range if IP addresses specified  by  an  IP
           address/IP network mask pair. For example,
           class B single area 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 range.

            Information in this table is persistent and when this object
            is written the entity SHOULD save the change to X.X.255.255" 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
         STATUS       obsolete
         DESCRIPTION
            "The Area 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
         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." creation,
            construction and destruction.

            The RowStatus TC requires that this DESCRIPTION clause
            states under which circumstances other objects in this row
            can be modified.  The value of this object has no effect on
            whether other objects in this conceptual row can be
            modified."
         ::= { 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 (adver-
            tiseMatching), or result in the subnet's not
            being advertised at all outside the area."
         DEFVAL { advertiseMatching }
         ::= { ospfAreaRangeEntry 5 }

  --  OSPF Host Table

--     The

    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.

   ospfHostTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF OspfHostEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The list of Hosts, and their metrics, that the
           router will advertise as host routes." within."
         REFERENCE
            "OSPF Version 2, Appendix C.7 Host route param-
            eters"
         ::= { 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." 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
         STATUS       current
         DESCRIPTION
            "The IP Address of the Host."
         REFERENCE
            "OSPF Version 2, Appendix C.7 Host route parame-
            ters"
         ::= { ospfHostEntry 1 }

    ospfHostTOS OBJECT-TYPE
         SYNTAX       TOSType
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
            "The Type of Service of the route being config-
            ured."
         REFERENCE
            "OSPF Version 2, Appendix C.7 Host route parame-
            ters"
         ::= { 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 parame-
            ters"
         ::= { 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." destruction.

            The RowStatus TC requires that this DESCRIPTION clause
            states under which circumstances other objects in this row
            can be modified.  The value of this object has no effect on
            whether other objects in this conceptual row can be
            modified."
         ::= { ospfHostEntry 4 }

    ospfHostAreaID OBJECT-TYPE
         SYNTAX       AreaID
         MAX-ACCESS   read-create   read-only
         STATUS       current
         DESCRIPTION
           "The
            "Displays the Area the Host Entry is to be found within."
         REFERENCE
            "OSPF Version 2, Appendix C.7 Host parameters"
         ::= { ospfHostEntry 5 }

    ospfHostCfgAreaID OBJECT-TYPE
         SYNTAX       AreaID
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "Allows the configuration of the Area the Host Entry is
             to be found within."
         REFERENCE
            "OSPF Version 2, Appendix C.7 Host parameters"
         ::= { ospfHostEntry 6 }

  --  OSPF Interface Table

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

    ospfIfTable OBJECT-TYPE
         SYNTAX       SEQUENCE OF OspfIfEntry
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "The OSPF Interface Table describes the inter-
           faces interfaces
            from the viewpoint of OSPF." 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 inter-
           face interface
            from the viewpoint of OSPF." 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
              INTEGER,
               OspfAuthType,
            ospfIfLsaCount
               Gauge32,
            ospfIfLsaCksumSum
              Integer32
               Integer32,
            ospfIfDesignatedRouterId
               RouterID,
            ospfIfBackupDesignatedRouterId
               RouterID
            }

    ospfIfIpAddress OBJECT-TYPE
         SYNTAX       IpAddress
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
            "The IP address of this OSPF interface."
         ::= { ospfIfEntry 1 }

    ospfAddressLessIf OBJECT-TYPE
         SYNTAX       InterfaceIndexOrZero
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
            "For the purpose of easing the instancing of
            addressed and address less interfaces; This
            variable takes the value 0 on interfaces with
            IP Addresses, and the corresponding value of
            ifIndex for interfaces having no IP Address."
         ::= { 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. Broad-
            cast 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 in-
            terface 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 eligi-
            ble 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."
             interface. Note that minimual 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  ad-
            vertisement retransmissions, for adjacencies
            belonging to this interface. This value is
            also used when retransmitting database descrip-
            tion and link-state request packets." 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 in-
            terface. 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 it's neigh-
            bors 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." 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. [RFC-1704]
            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 the table by
            facilitating actions such as row creation,
            construction and destruction.

            The RowStatus TC requires that this DESCRIPTION clause
            states under which circumstances other objects in this row
            can be modified.  The value of this object has no effect on
            whether other objects in this conceptual row creation,
           construction and destruction." 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 forwarded on this
            interface; not forwarded, forwarded as data
            link multicasts, or forwarded as data link uni-
            casts. Data link multicasting is not meaning-
            ful on point to point and NBMA interfaces, and
            setting ospfMulticastForwarding to 0 effective-
            ly 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 (hel-
            lo suppression to FULL neighbors and setting the
            DoNotAge flag on propagated LSAs) should be per-
            formed on this interface."
         DEFVAL { false }
         ::= { ospfIfEntry 19 }

    ospfIfAuthType OBJECT-TYPE
         SYNTAX       INTEGER (0..255)
                        -- none (0),
                        -- simplePassword (1)
                        -- md5 (2)
                        -- reserved for specification by IANA (> 2)       OspfAuthType
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "The authentication type specified for an in-
           terface. Additional authentication types may
           be assigned locally. 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 { 0 } -- 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       Integer32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
            "The 32-bit unsigned sum of the link-state ad-
            vertisements' 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 data-
            base, 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

--     The

    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.

   ospfIfMetricTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF OspfIfMetricEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The TOS metrics for a non-virtual interface
           identified by the interface index." 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 in-
           terface interface
            identified by the interface index." 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
         STATUS       current
         DESCRIPTION
            "The IP address of this OSPF interface. On row
            creation, this can be derived from the in-
            stance."
         ::= { ospfIfMetricEntry 1 }

    ospfIfMetricAddressLessIf OBJECT-TYPE
         SYNTAX       InterfaceIndexOrZero
         MAX-ACCESS   read-only
         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 in-
            terfaces having no IP Address. On row crea-
            tion, this can be derived from the instance."
          ::= { ospfIfMetricEntry 2 }

    ospfIfMetricTOS OBJECT-TYPE
         SYNTAX       TOSType
         MAX-ACCESS   read-only
         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." destruction.

            The RowStatus TC requires that this DESCRIPTION clause
            states under which circumstances other objects in this row
            can be modified.  The value of this object has no effect on
            whether other objects in this conceptual row can be
            modified."
         ::= { ospfIfMetricEntry 5 }

  --  OSPF Virtual Interface Table

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

    ospfVirtIfTable OBJECT-TYPE
         SYNTAX       SEQUENCE OF OspfVirtIfEntry
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "Information about this router's virtual inter-
           faces." 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." 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,
           ospfVirtIfAuthType
              INTEGER,
            ospfVirtIfAuthKey
               OCTET STRING,
            ospfVirtIfStatus
               RowStatus,
            ospfVirtIfAuthType
               OspfAuthType,
            ospfVirtIfLsaCount
               Gauge32,
            ospfVirtIfLsaCksumSum
               Integer32
            }

    ospfVirtIfAreaId OBJECT-TYPE
         SYNTAX       AreaID
         MAX-ACCESS   read-only
         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
         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."
            interface. Note that minimal value SHOULD be
            one 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 ad-
            vertisement retransmissions, for adjacencies
            belonging to this interface. This value is
            also used when retransmitting database descrip-
            tion and link-state request packets. This
            value  should be well over the expected round-
            trip time." time. Note that minimal value SHOULD be
            one 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 in-
            terface. 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 it's neigh-
            bors declare the router down. This should be
            some  multiple of the Hello interval. This
            value must be the same for the virtual neigh-
            bor."
         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" 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. [RFC-1704]

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

            The RowStatus TC requires that this DESCRIPTION clause
            states under which circumstances other objects in this row
            can be modified.  The value of this object has no effect on
            whether other objects in this conceptual row can be
            modified."
          ::= { ospfVirtIfEntry 10 }

    ospfVirtIfAuthType OBJECT-TYPE
         SYNTAX       INTEGER (0..255)
                        -- none (0),
                        -- simplePassword (1)
                        -- md5 (2)
                        -- reserved for specification by IANA (> 2)       OspfAuthType
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "The authentication type specified for a virtu-
           al virtual interface. Additional authentication types
           may be assigned locally.

            Note that this object can be used to engage
            in significant attacks against an OSPF router."
         REFERENCE
            "OSPF Version 2, Appendix E Authentication"
         DEFVAL { 0 } -- 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       Integer32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
            "The 32-bit unsigned sum of the link-state ad-
            vertisements' 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 data-
            base, and to compare the virtual interface link-state
            database of the virtual neighbors."
         ::= { ospfVirtIfEntry 13 }

  --  OSPF Neighbor Table

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

    ospfNbrTable OBJECT-TYPE
         SYNTAX       SEQUENCE OF OspfNbrEntry
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "A table of describing all non-virtual neighbor information." 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." 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
         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 ad-
            dress of another of the neighbor's interfaces."
         ::= { ospfNbrEntry 1 }

     ospfNbrAddressLessIndex OBJECT-TYPE
         SYNTAX       InterfaceIndexOrZero
         MAX-ACCESS   read-only
         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 IpAd-
            dress) 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 op-
            tions 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 informa-
            tion; if zero, it is a stub area.

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

            Bit 3, if set, indicates that the associated
            area is an NSSA. These areas are capable of
            carrying type 7 external advertisements, which
            are translated into type 5 external advertise-
            ments 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 designat-
            ed router election algorithm. The value 0 sig-
            nifies that the neighbor is not eligible to be-
            come 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 Neigh-
              bor."
           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." 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." destruction.

            The RowStatus TC requires that this DESCRIPTION clause
            states under which circumstances other objects in this row
            can be modified.  The value of this object has no effect on
            whether other objects in this conceptual row can be
            modified."
         ::= { 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 en-
            try. '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 hitless 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 hitless 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 hitless graceful restart helper for the neighbor."
         ::= { ospfNbrEntry 14 }

  --  OSPF Virtual Neighbor Table

--     This

    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.

   ospfVirtNbrTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF OspfVirtNbrEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "A table of virtual neighbor information." 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." information.

            Information in this table is persistent and when this object
            is written the entity SHOULD save the change to non-volatile
            storage."
         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
         STATUS       current
         DESCRIPTION
            "The Transit Area Identifier."
         ::= { ospfVirtNbrEntry 1 }

    ospfVirtNbrRtrId OBJECT-TYPE
         SYNTAX       RouterID
         MAX-ACCESS   read-only
         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 us-
             ing."
         ::= { ospfVirtNbrEntry 3 }

    ospfVirtNbrOptions OBJECT-TYPE
         SYNTAX       Integer32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
            "A Bit Mask corresponding to the neighbor's op-
            tions 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; ie, that it imple-
            ments 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 Relation-
            ship."
         ::= { 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." 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 hitless 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 hitless 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 hitless graceful restart helper for the neighbor."
         ::= { ospfVirtNbrEntry 11 }

  --  OSPF Link State Database, External

--      The Link State Database contains the

    ospfExtLsdbTable OBJECT-TYPE
         SYNTAX       SEQUENCE OF OspfExtLsdbEntry
         MAX-ACCESS   not-accessible
         STATUS       deprecated
         DESCRIPTION
            "The OSPF Process's External LSA Link State
--      Advertisements from throughout the areas that the
--      device is attached to.

-- 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 this table has been deprecated and is
--
            replaced by the AS-scope Link State Database

   ospfExtLsdbTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF OspfExtLsdbEntry
        MAX-ACCESS   not-accessible
        STATUS       deprecated
        DESCRIPTION
           "The OSPF Process's External Database.
            This has been done in order to support AS-scope LSA Link State Database." types
            other than the external type.”
         REFERENCE
            "OSPF Version 2, Section 12 Link State Adver-
            tisements"
         ::= { 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
         STATUS       deprecated
         DESCRIPTION
            "The type of the link state advertisement.
            Each link state type has a separate advertise-
            ment 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
         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
         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 }

--  Note that the OSPF Sequence Number

    ospfExtLsdbSequence OBJECT-TYPE
         SYNTAX       Integer32
         MAX-ACCESS   read-only
         STATUS       deprecated
         DESCRIPTION
            "The sequence number field is a 32 bit signed
-- 32-bit
            integer. It starts with the value '80000001'h,
--
            or -'7FFFFFFF'h, and increments until '7FFFFFFF'h
-- '7FFFFFFF'h.
            Thus, a typical sequence number will be very negative.

   ospfExtLsdbSequence OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       deprecated
        DESCRIPTION
           "The sequence number field is a signed 32-bit
           integer.
            It is used to detect old and dupli-
           cate 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 adver-
            tisement 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 connec-
            tionless 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  Adver-
            tisements"
         ::= { 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
           "A range
            “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
             which is known beyond Area’s borders.

             It contains a set of IP addresses 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 if ranges are configured such that one range sub-
           sumes
             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 range of IP addresses specified  by  an  IP
           address/IP network mask pair. For example,
           class B address range of X.X.X.X with a network
           mask  of  255.255.0.0 includes all IP addresses
           from X.X.0.0 to X.X.255.255. Note that if
           ranges are range configured such that one range
           subsumes another range (e.g., 10.0.0.0  mask
           255.0.0.0 single area aggregate entry.

            Information in this table is persistent and 10.1.0.0 mask 255.255.0.0), the
           most specific match when this object
            is written the preferred one." 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
         STATUS       current
         DESCRIPTION
            "The Area the Address Aggregate is to be  found
            within."
         REFERENCE
            "OSPF Version 2, Appendix C.2 Area parameters"
         ::= { ospfAreaAggregateEntry 1 }

    ospfAreaAggregateLsdbType OBJECT-TYPE
         SYNTAX       INTEGER {
                         summaryLink (3),
                         nssaExternalLink (7)
                         }
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
            "The type of the Address Aggregate. This field
            specifies the Lsdb type that this Address Ag-
            gregate 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
         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
         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." destruction.

            The RowStatus TC requires that this DESCRIPTION clause
            states under which circumstances other objects in this row
            can be modified.  The value of this object has no effect on
            whether other objects in this conceptual row can be
            modified."
         ::= { 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 (ad-
            vertiseMatching), 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 which are defined
            in
--     "The ‘The OSPF Opaque LSA Option".

   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." Option’"
         REFERENCE
            "OSPF Version 2, Section 12 Link State Adver-
            tisements 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   read-only   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   read-only   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   read-only   not-accessible
         STATUS       current
         DESCRIPTION
            "The type of the link state advertisement.

            Each link state type has a separate advertise-
            ment format."
         REFERENCE
            "OSPF Version 2, Appendix A.4.1 The  Link  State
            Advertisement header and "
         ::= { ospfLocalLsdbEntry 3 }

    ospfLocalLsdbLsid OBJECT-TYPE
         SYNTAX       IpAddress
         MAX-ACCESS   read-only   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   read-only   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 }

--  Note that the OSPF Sequence Number

    ospfLocalLsdbSequence OBJECT-TYPE
         SYNTAX       Integer32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
            "The sequence number field is a 32 bit signed
-- 32-bit
            integer. It starts with the value '80000001'h,
--
            or -'7FFFFFFF'h, and increments until '7FFFFFFF'h
-- '7FFFFFFF'h.
            Thus, a typical sequence number will be very negative.

   ospfLocalLsdbSequence OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The sequence number field is a signed 32-bit
           integer.
            It is used to detect old and dupli-
           cate 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 adver-
            tisement 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 connec-
            tionless 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." 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 Adver-
            tisements"
         ::= { 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
--
            which are defined in "The ‘The OSPF Opaque LSA Option".

   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." Option’"
         REFERENCE
            "OSPF Version 2, Section 12 Link State Adver-
            tisements 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   read-only   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   read-only   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   read-only   not-accessible
         STATUS       current
         DESCRIPTION
            "The type of the link state advertisement.
            Each  link state type has a separate advertise-
            ment format."
         REFERENCE
            "OSPF Version 2, Appendix A.4.1 The  Link  State
            Advertisement header and "
         ::= { ospfVirtLocalLsdbEntry 3 }

    ospfVirtLocalLsdbLsid OBJECT-TYPE
         SYNTAX       IpAddress
         MAX-ACCESS   read-only   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   read-only   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 }

--  Note that the OSPF Sequence Number

    ospfVirtLocalLsdbSequence OBJECT-TYPE
         SYNTAX       Integer32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
            "The sequence number field is a 32 bit signed
-- 32-bit
            integer. It starts with the value '80000001'h,
--
            or -'7FFFFFFF'h, and increments until '7FFFFFFF'h
-- '7FFFFFFF'h.
            Thus, a typical sequence number will be very negative.

   ospfVirtLocalLsdbSequence OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The a typical sequence number field is a  signed  32-bit
           integer. will be very negative.
            It is used to detect old and dupli-
           cate 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 adver-
            tisement 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 connec-
            tionless 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 Adver-
           tisements"
            tisements.

            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

--      The

    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.

   ospfAsLsdbTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF OspfAsLsdbEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The OSPF Process's AS-scope LSA Link State Database." area.”
         REFERENCE
            "OSPF Version 2, Section 12 Link State Adver-
            tisements"
         ::= { 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   read-only   not-accessible
         STATUS       current
         DESCRIPTION
            "The type of the link state advertisement.
            Each link state type has a separate advertise-
            ment format."
         REFERENCE
            "OSPF Version 2, Appendix A.4.1 The  Link  State
            Advertisement header"
         ::= { ospfAsLsdbEntry 1 }

    ospfAsLsdbLsid OBJECT-TYPE
         SYNTAX       IpAddress
         MAX-ACCESS   read-only   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   read-only   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 }

--  Note that the OSPF Sequence Number

    ospfAsLsdbSequence OBJECT-TYPE
         SYNTAX       Integer32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
            "The sequence number field is a 32 bit signed
-- 32-bit
            integer. It starts with the value '80000001'h,
--
            or -'7FFFFFFF'h, and increments until '7FFFFFFF'h

-- '7FFFFFFF'h.
            Thus, a typical sequence number will be very negative.

   ospfAsLsdbSequence OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "The sequence number field is a signed 32-bit
           integer.

            It is used to detect old and dupli-
           cate 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 adver-
            tisement 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 connec-
            tionless datagrams; it is commonly referred  to
            as the Fletcher checksum."
         REFERENCE
            "OSPF Version 2, Section 12.1.7 LS checksum"
         ::= { ospfAsLsdbEntry 6 ospfAsLsdbEntry 6 }

    ospfAsLsdbAdvertisement OBJECT-TYPE
         SYNTAX       OCTET STRING (SIZE(36))
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
            "The entire Link State Advertisement, including
            its header."
         REFERENCE
            "OSPF Version 2, Section 12  Link  State  Adver-
            tisements.

            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 }

   ospfAsLsdbAdvertisement

        ospfAreaLsaCountNumber OBJECT-TYPE
            SYNTAX       OCTET STRING (SIZE(36))       Gauge32
            MAX-ACCESS   read-only
            STATUS       current
            DESCRIPTION
           "The entire Link State Advertisement, including
           its header."
        REFERENCE
           "OSPF Version 2, Section 12  Link  State  Adver-
           tisements"
               "Number of LSAs of a given type for a given area."
           ::= { ospfAsLsdbEntry 7 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       current
         DESCRIPTION
            "The compliance statement for 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  ospfHostGroup  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 }

  --  units of conformance

    ospfBasicGroup    OBJECT-GROUP
         OBJECTS {
            ospfRouterId,
            ospfAdminStat,
            ospfVersionNumber,
            ospfAreaBdrRtrStatus,
            ospfASBdrRtrStatus,
            ospfExternLsaCount,
            ospfExternLsaCksumSum,
            ospfTOSSupport,
            ospfOriginateNewLsas,
            ospfRxNewLsas,
            ospfExtLsdbLimit,
            ospfMulticastExtensions,
            ospfExitOverflowInterval,
            ospfDemandExtensions
            }
         STATUS      current
         DESCRIPTION
            "These objects are required for OSPF systems conforming to
            RFC 1850."
         ::= { ospfGroups 1 }

    ospfAreaGroup    OBJECT-GROUP
         OBJECTS {
            ospfAreaId,
            ospfImportAsExtern,
            ospfSpfRuns,
            ospfAreaBdrRtrCount,
            ospfAsBdrRtrCount,
            ospfAreaLsaCount,
            ospfAreaLsaCksumSum,
            ospfAreaSummary,
            ospfAreaStatus
            }
         STATUS      current
         DESCRIPTION
            "These objects are required 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 required 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 required 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 required for non-CIDR OSPF
            systems that support multiple areas."
         ::= { ospfGroups 5 }

    ospfHostGroup    OBJECT-GROUP
         OBJECTS {
            ospfHostIpAddress,
            ospfHostTOS,
            ospfHostMetric,
            ospfHostStatus,
            ospfHostAreaID
            }
         STATUS       current
         DESCRIPTION
            "These objects are required  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       current
         DESCRIPTION
            "These objects are required for OSPF systems conforming
            to RFC 1850."
         ::= { ospfGroups 7 }

    ospfIfMetricGroup    OBJECT-GROUP
         OBJECTS {
            ospfIfMetricIpAddress,
            ospfIfMetricAddressLessIf,
            ospfIfMetricTOS,
            ospfIfMetricValue,
            ospfIfMetricStatus
            }
         STATUS       current
         DESCRIPTION
            "These objects are required for OSPF systems."
         ::= { ospfGroups 8 }

    ospfVirtIfGroup    OBJECT-GROUP
         OBJECTS {
            ospfVirtIfAreaId,
            ospfVirtIfNeighbor,
            ospfVirtIfTransitDelay,
            ospfVirtIfRetransInterval,
            ospfVirtIfHelloInterval,
            ospfVirtIfRtrDeadInterval,
            ospfVirtIfState,
            ospfVirtIfEvents,
            ospfVirtIfAuthType,
            ospfVirtIfAuthKey,
            ospfVirtIfStatus
            }
          STATUS       current
          DESCRIPTION
            "These objects are required for OSPF systems conforming
            to RFC 1850."
          ::= { ospfGroups 9 }

    ospfNbrGroup    OBJECT-GROUP
         OBJECTS {
            ospfNbrIpAddr,
            ospfNbrAddressLessIndex,
            ospfNbrRtrId,
            ospfNbrOptions,
            ospfNbrPriority,
            ospfNbrState,
            ospfNbrEvents,
            ospfNbrLsRetransQLen,
            ospfNbmaNbrStatus,
            ospfNbmaNbrPermanence,
            ospfNbrHelloSuppressed
            }
         STATUS       current
         DESCRIPTION
            "These objects are required for OSPF systems conforming
            to RFC 1850."
         ::= { ospfGroups 10 }

    ospfVirtNbrGroup    OBJECT-GROUP
         OBJECTS {
            ospfVirtNbrArea,
            ospfVirtNbrRtrId,
            ospfVirtNbrIpAddr,
            ospfVirtNbrOptions,
            ospfVirtNbrState,
            ospfVirtNbrEvents,
            ospfVirtNbrLsRetransQLen,
            ospfVirtNbrHelloSuppressed
            }
         STATUS       current
         DESCRIPTION
            "These objects are required for OSPF systems conforming
            to RFC 1850."
         ::= { ospfGroups 11 }

    ospfExtLsdbGroup    OBJECT-GROUP
         OBJECTS {
            ospfExtLsdbType,
            ospfExtLsdbLsid,
            ospfExtLsdbRouterId,
            ospfExtLsdbSequence,
            ospfExtLsdbAge,
            ospfExtLsdbChecksum,
            ospfExtLsdbAdvertisement
            }
         STATUS       deprecated
         DESCRIPTION
            "These objects are required for OSPF systems
            that display their link state database conforming
            to RFC 1850.
            This object replaced be is replaced by
           ospfAsLsdbGroup." the ospfAsLsdbGroup.
            This has been done in order to support AS-scope LSA types
            other than the external type."
         ::= { ospfGroups 12 }

    ospfAreaAggregateGroup    OBJECT-GROUP
         OBJECTS {
            ospfAreaAggregateAreaID,
            ospfAreaAggregateLsdbType,
            ospfAreaAggregateNet,
            ospfAreaAggregateMask,
            ospfAreaAggregateStatus,
            ospfAreaAggregateEffect
            }
         STATUS       current
         DESCRIPTION
            "These objects are required for OSPF systems."
         ::= { ospfGroups 13 }

    ospfLocalLsdbGroup    OBJECT-GROUP
         OBJECTS {
           ospfLocalLsdbIpAddress,
           ospfLocalLsdbAddressLessIf,
           ospfLocalLsdbType,
           ospfLocalLsdbLsid,
           ospfLocalLsdbRouterId,
            ospfLocalLsdbSequence,
            ospfLocalLsdbAge,
            ospfLocalLsdbChecksum,
            ospfLocalLsdbAdvertisement
            }
         STATUS      current
         DESCRIPTION
            "These objects are required  for OSPF systems
            that display their Link-Local link state databases
            for non-virtual links."
          ::= { ospfGroups 14 }

    ospfVirtLocalLsdbGroup    OBJECT-GROUP
         OBJECTS {
           ospfVirtLocalLsdbTransitArea,
           ospfVirtLocalLsdbNeighbor,
           ospfVirtLocalLsdbType,
           ospfVirtLocalLsdbLsid,
           ospfVirtLocalLsdbRouterId,
            ospfVirtLocalLsdbSequence,
            ospfVirtLocalLsdbAge,
            ospfVirtLocalLsdbChecksum,
            ospfVirtLocalLsdbAdvertisement
            }
          STATUS       current
          DESCRIPTION
             "These objects are required for OSPF systems
             that display their Link-Local link state databases
             for virtual links."
           ::= { ospfGroups 15 }

    ospfAsLsdbGroup    OBJECT-GROUP
         OBJECTS {
           ospfAsLsdbType,
           ospfAsLsdbLsid,
           ospfAsLsdbRouterId,
            ospfAsLsdbSequence,
            ospfAsLsdbAge,
            ospfAsLsdbChecksum,
            ospfAsLsdbAdvertisement
            }
          STATUS       current
          DESCRIPTION
             "These objects are required 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,
           ospfTrafficEngineeringSupport,
            ospfReferenceBandwidth,
            ospfRestartSupport,
            ospfRestartInterval,
            ospfRestartStatus,
            ospfRestartAge,
            ospfRestartExitReason,
            ospfAsLsaCount,
            ospfAsLsaCksumSum,
            ospfStubRouterSupport,
           ospfStubRouterAdvertisement
            ospfStubRouterAdvertisement,
            ospfDiscontinuityTime
            }
         STATUS       current
         DESCRIPTION
            "These objects are required for OSPF systems."
         ::= { 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 required for OSPF systems
              supporting areas. This statement is recommended
              for use. "
         ::= { 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 required for OSPF systems."
          ::= { ospfGroups 19 }

    ospfVirtIfGroup2    OBJECT-GROUP
         OBJECTS {
            ospfVirtIfAreaId,
            ospfVirtIfNeighbor,
            ospfVirtIfTransitDelay,
            ospfVirtIfRetransInterval,
            ospfVirtIfHelloInterval,
            ospfVirtIfRtrDeadInterval,
            ospfVirtIfState,
            ospfVirtIfEvents,
            ospfVirtIfAuthType,
            ospfVirtIfAuthKey,
            ospfVirtIfStatus,
            ospfVirtIfLsaCount,
           ospfVirtIfLsaCksumSum
            ospfVirtIfLsaCksumSum,
            ospfIfDesignatedRouterId,
            ospfIfBackupDesignatedRouterId
            }
         STATUS       current
         DESCRIPTION
            "These objects are required for OSPF systems."
         ::= { 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 required for OSPF systems."
         ::= { ospfGroups 21 }

    ospfVirtNbrGroup2    OBJECT-GROUP
         OBJECTS {
            ospfVirtNbrArea,
            ospfVirtNbrRtrId,
            ospfVirtNbrIpAddr,
            ospfVirtNbrOptions,
            ospfVirtNbrState,
            ospfVirtNbrEvents,
            ospfVirtNbrLsRetransQLen,
            ospfVirtNbrHelloSuppressed,
            ospfVirtNbrRestartHelperStatus,
            ospfVirtNbrRestartHelperAge,
            ospfVirtNbrRestartHelperExitReason
            }
         STATUS       current
         DESCRIPTION
            "These objects are required for OSPF systems."
         ::= { ospfGroups 22 }

    ospfAreaAggregateGroup2    OBJECT-GROUP
         OBJECTS {
            ospfAreaAggregateAreaID,
            ospfAreaAggregateLsdbType,
            ospfAreaAggregateNet,
            ospfAreaAggregateMask,
            ospfAreaAggregateStatus,
            ospfAreaAggregateEffect,
            ospfAreaAggregateExtRouteTag
            }
         STATUS       current
         DESCRIPTION
            "These objects are required for OSPF systems."
         ::= { ospfGroups 23 }

    ospfAreaLsaCountGroup      OBJECT-GROUP
         OBJECTS {
            ospfAreaLsaCountNumber
            }
         STATUS       current
         DESCRIPTION
            “This group is mandatory for OSPF systems that display
            per area per LSA type counters.”
         ::= { ospfGroups 24 }

    ospfHostGroup2    OBJECT-GROUP
         OBJECTS {
            ospfHostIpAddress,
            ospfHostTOS,
            ospfHostMetric,
            ospfHostStatus,
            ospfHostAreaID,
            ospfHostCfgAreaID
            }
         STATUS       current
         DESCRIPTION
            "These objects are required  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 24 26 }

  END

  4 OSPF Trap Overview

  4.1 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 which use OSPF as its
    IGP. It is an optional but very useful extension to the OSPF MIB.

  4.2 Approach

    The mechanism for sending traps is straight-forward. 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.

  4.3 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, ospfTxRetranmit 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.

  4.4 Throttling Traps

    The mechanism for throttling the traps is similar to the mechanism
    explained in RFC 1224 [24]. 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 traps types
    except for the ospfLsdbOverflow and the ospfLsdbApproachingOverflow
    trap 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.

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

  4.6 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 defined in section x.

           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

  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 "200304011015Z" "200309281015Z" -- Apr 01, Sep 28, 2003 10:15:00 GMT
         ORGANIZATION "IETF OSPF Working Group"
         CONTACT-INFO
         "WG E-Mail: ospf@discuss.microsoft.com ospf@peach.ease.lsoft.com

          WG Chairs: John.Moy@sycamorenet.com
                     acee@redback.com
                     rohit@xebeo.com
                    Spencer Giacalone
            Postal: Predictive Systems
                    25a Vreeland Road
                    Florham Park, NJ 07932
            Tel:    +1 (973) 301-5695
            E-Mail: spencer.giacalone@predictive.com

          Editors:   Dan Joyal
            Postal: Joyal, Piotr Galecki
                     Nortel Networks
                     600 Technology Park Drive
                     Billerica, MA  01821
            E-Mail: djoyal@nortelnetworks.com"
                     djoyal@nortelnetworks.com
                     pgalecki@nortelnetworks.com"

         DESCRIPTION
            "The MIB module to describe traps for the OSPF
            Version 2 Protocol."
         REVISION "200304011015Z" "200309281015Z" -- Apr 01, Sep 28, 2003 10:15:00 GMT
         DESCRIPTION
            "Updated for latest version of OSPFv2" changes to OSPFv2:
             -added graceful restart related traps
             -added new config error types
             -added ospfNssaTranslatorStatusChange trap."
         REVISION "9501201225Z" -- Fri Jan 20 12:25:50 PST 1995
         DESCRIPTION
            "The initial SMIv2 revision of this MIB module, published
            in RFC1850."
         ::= { 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 four-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." 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 (12) (13) }
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "Potential types of configuration conflicts.
            Used  by the ospfConfigError and ospfConfigVir-
            tError 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 can-
                not 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 ospfIfStateChange ospfVirtIfStateChange trap signifies that there
            has been a change in the state of an OSPF vir-
            tual interface.

            This trap should be generated when the inter-
            face 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 gen-
            erated  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 ospfIfStateChange ospfVirtNbrStateChange trap signifies that there
            has been a change in the state of an OSPF vir-
            tual 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 in-
            terface from a router whose configuration
            parameters conflict with this router's confi-
            guration parameters. Note that the event op-
            tionMismatch 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 ospfConfigError ospfVirtIfConfigError trap signifies that a pack-
            et 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 ad-
            jacency 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 in-
            terface 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 au-
            thentication 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 ospfRxBadPacket 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 re-
             transmitted 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 ospfTxRetransmit ospfVirtIfTxRetransmit trap signifies than  an
            OSPF packet has been retransmitted on a virtual
            interface. All packets that may be retransmit-
            ted 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. Addi-
            tionally, 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 LSA 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 data-
            base 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 ospfRestartStatus ospfRestartStatusChange trap signifies that
            there has been a change in the hitless 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 ospfNbrRestartHelperStatus ospfNbrRestartHelperStatusChange trap signifies that
            there has been a change in the hitless 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 ospfVirtNbrRestartHelperStatus ospfVirtNbrRestartHelperStatusChange trap signifies that
            there has been a change in the hitless 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

  6 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 [18]. We would like to acknowledge John Moy, Rob Coltun,
    Randall Atkinson, David T. Perkins, Ken Chapman, Brian Field, Acee
   Lindem and
    Lindem, Vishwas Manral Manral, Roy Jose and Don Goodspeed for their
    constructive comments.

  7 Normative References

   [1] Harrington, D., Presuhn, R., and B. Wijnen, "An
       Architecture for Describing SNMP Management Frameworks",
       RFC 2571, April 1999
   [2] Rose, M., and K. McCloghrie, "Structure and
       Identification of Management Information for TCP/IP-based
       Internets", STD 16, RFC 1155, May 1990

   [3] Rose, M., and K. McCloghrie, "Concise MIB Definitions",
       STD 16, RFC 1212, March 1991

   [4] M. Rose, "A Convention for Defining Traps for use with
       the SNMP", RFC 1215, March 1991

   [5]

    [RFC2578] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
              Rose, M., M. and S. Waldbusser, "Structure of Management
              Information Version 2 (SMIv2)", STD 58, RFC 2578, April
       1999

   [6]
              1999.

    [RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
              Rose, M., M. and S. Waldbusser, "Textual Conventions for
              SMIv2", STD 58, RFC 2579, April 1999

   [7] 1999.

    [RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
              Rose, M., M. and S. Waldbusser, "Conformance Statements for
              SMIv2", STD 58, RFC 2580, April 1999

   [8] Case, J., Fedor, M., Schoffstall, M., and J. Davin,
       "Simple Network Management Protocol", STD 15, RFC 1157,
       May 1990.

   [9] Case, J., 1999.

    [RFC2863] McCloghrie, K., Rose, M., and S.  Waldbusser,
       "Introduction to Community-based SNMPv2", RFC 1901,
       January 1996.

   [10] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
        "Transport Mappings for Version 2 of the Simple Network
        Management Protocol (SNMPv2)", Kastenholtz, F.,
              "The Interfaces Group MIB", RFC 1906, January 1996.

   [11] 2863, June 2000.

  8 Informative References

    [RFC3410] Case, J., Harrington D., Presuhn Mundy, R., Partain, D. and B. Wijnen,
        "Message Processing Stewart,
              "Introduction and Dispatching Applicability Statements for the Simple
        Network Internet-
              Standard Management Protocol (SNMP)", Framework", RFC 2572, April 1999

   [21] 3410, December 2002.

    [RFC2328] Moy, J., "OSPF Version 2", RFC 2328, Ascend
        Communications, Inc., April 1998.

   [13] Case, J., McCloghrie, K., Rose, M., and S.  Waldbusser,
        "Protocol Operations for Version 2 of the Simple Network
        Management Protocol (SNMPv2)", RFC 1905, January 1996.

   [14] Levi, D., Meyer, P., and B. Stewart, "SNMPv3
        Applications", RFC 2573, April 1999

   [15] Wijnen, B., Presuhn, R., and K.  McCloghrie, "View-based
        Access Control Model (VACM) for  the  Simple  Network
        Management Protocol (SNMP)", RFC 2575, April 1999

   [16] Case, J., Mundy, R., Partain, D., and B. Stewart,
        "Introduction to Version 3 of the Internet-standard
        Network Management Framework", RFC 2570, April 1999

   [17] Deering, S., and R. Hinden, "Internet Protocol, Version 6
        (IPv6) Specification", RFC 2460, December 1998.

   [18]

    [RFC1850] Baker, F., and Coltun, R., "OSPF Version 2 Management
              Information Base", RFC 1850, Cisco Systems, FORE Systems, November 1995.

   [19] Cerf, V., "IAB Recommendations for

    [RFC3101] Murphy, P., "The OSPF Not-So-Stubby Area (NSSA) Option",
              RFC 3101, January 2003.

    [RFC2370] Coltun, R., "The OSPF Opqaue LSA Option", RFC 2370,
              July 1998.

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

    [RFC1793] Moy, J., "Extending OSPF to Support Demand Circuits",
              RFC 1793, April 1995.

  9 IPR Notices

    The IETF takes no position regarding the validity or scope of any
    intellectual property 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; neither does it represent that it
    has made any effort to identify any such rights. Information on the Development
    IETF's procedures with respect to rights in standards-track and
    standards-related documentation can be found in BCP-11. Copies of Internet
        Network Management Standards", RFC 1052, NRI, April 1988.

   [20] Cerf, V., "Report
    claims of the Second Ad Hoc Network Management Review
        Group", RFC 1109, NRI, August 1989.

   [21] Rose M., Editor, "Management Information Base rights made available for Network
        Management publication and any assurances of TCP/IP-based internets: MIB-II", STD 17, RFC 1213,
        Performance Systems International, March 1991.

   [22] Information processing systems - Open Systems Interconnection -
        Specification
    licenses to be made available, or the result of Abstract Syntax Notation One (ASN.1),
        International Organization an attempt made to
    obtain a general license or permission for Standardization, International
        Standard 8824, December 1987.

   [23] Information processing systems - Open Systems Interconnection -
        Specification the use of Basic Encoding Rules for Abstract Notation One
        (ASN.1), International Organization for Standardization,
        International Standard 8825, December 1987.

   [24] Steinberg, L., "Techniques for Managing Asynchronously Generated
        Alerts", RFC 1224, IBM Corporation, May 1991.

   [25] Moy, J., "Multicast Extensions such
    proprietary rights by implementors or users of this specification
    can be obtained from the IETF Secretariat.

    The IETF invites any interested party to OSPF", RFC 1584, Proteon,
        Inc., September 1993. bring to its attention any
    copyrights, patents or patent applications, or other proprietary
    rights which may cover technology that may be required to practice
    this standard. Please address the information to the IETF Executive
    Director.

  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 [RFC 2178].

  B Changes from RFC 1850

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

  B.1 General Group Changes

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

    Added object ospfTrafficEngineeringSupport to indicate support
   of OSPF traffic engineering.

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

    Added objects ospfRestartSupport, ospfRestartInterval, ospfRestartAge
    and ospfRestartExitReason to support graceful (hitless) restart.

    Added objects ospfStubRouterSupport and ospfStubRouteAdvertisement to
    support stub routers.

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

  B.2 OSPF NSSA Enhancement Support

    Added new objects to OspfAreaTable including:

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

  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:

       -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:

       -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:

       -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:

       -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:

       -ospfAsLsdbType

       -ospfAsLsdbLsid

       -ospfAsLsdbRouterId

    ospfAsLsdbTable contains the following (columnar) objects:

       -ospfAsLsdbSequence, to indicate LSA instance

       -ospfAsLsdbAge

       -ospfAsLsdbChecksum

       -ospfAsLsdbAdvertisement, containing the entire LSA

  B.4 Graceful Restart Support
    Added objects ospfRestartSupport, ospfRestartInterval, ospfRestartAge
    and ospfRestartExitReason to general group.

    Added objects ospfNbrRestartHelperStatus, ospfNbrRestartHelperAge
    and ospfNbrRestartHelperExitReason to OspfNbrTable.

    Added objects
    ospfVirtNbrRestartHelperStatus, ospfVirtNbrRestartHelperAge
    and ospfVirtNbrRestartHelperExitReason to OspfVirtNbrTable.

  B.5 OSPF Compliances

    New compliance statements were added for new conformance groups.
    These Statements include:

       -ospfCompliance2

    Conformance groups were depreciated due to the fact that
    the objects in the group were deprecated.

       -ospfExtLsdbGroup

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

       -ospfBasicGroup2

       -ospfAreaGroup2

       -ospfIfGroup2

       -ospfVirtIfGroup2

       -ospfNbrGroup2

       -ospfVirtNbrGroup2

       -ospfAreaAggregateGroup2

    Added completely new conformance groups, including:

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

  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

  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.

  B.8 Miscellaneous

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

       -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 an appendix

       -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

   Changed the MAX-ACCESS clause of ospfHostStatus

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

    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 ‘OspfAuthType’ 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.

  C 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 2574 [RFC2574] and the View-
    based Access Control Model RFC 2575 [RFC2575] 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.

  D Editors' Addresses

    Dan Joyal
    Nortel Networks, Inc.
    600 Technology Park Drive
    Billerica, MA 01821
    EMail: djoyal@nortelnetworks.com

    Piotr Galecki
    Nortel Networks, Inc.
    600 Technology Park Drive
    Billerica, MA 01821
    EMail: pgalecki@nortelnetworks.com

  E Contributors' Addresses

    Spencer Giacalone
    Predictive Systems, Inc.
    145 Hudson Street
    New York, NY 10013

    Phone: +1 (973) 301-5695
    EMail: spencer.giacalone@predictive.com

   Dan Joyal
   Nortel Networks, Inc.
   600 Technology Park Drive
   Billerica, MA 01821
   EMail: djoyal@nortelnetworks.com

E

  F Full Copyright Statement

    Copyright (C) The Internet Society (1999).  All Rights Reserved.
    This document and translations of it may be copied and furnished to
    others, and derivative works that comment on or otherwise explain it
    or assist in its implementation may be prepared, copied, published
    and distributed, in whole or in part, without restriction of any
    kind, provided that the above copyright notice and this paragraph are
    included on all such copies and derivative works.  However, this
    document itself may not be modified in any way, such as by removing
    the copyright notice or references to the Internet Society or other
    Internet organizations, except as needed for the purpose of
    developing Internet standards in which case the procedures for
    copyrights defined in the Internet Standards process must be
    followed, or as required to translate it into languages other than
    English.

    The limited permissions granted above are perpetual and will not be
    revoked by the Internet Society or its successors or assigns.

    This document and the information contained herein is provided on an
    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
    TASK FORCE DISCLAIMS 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.