OSPF-TRAP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, IpAddress
                 FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
                 FROM SNMPv2-CONF
    ospfRouterId, ospfIfIpAddress, ospfAddressLessIf, ospfIfState,
    ospfVirtIfAreaId, ospfVirtIfNeighbor, ospfVirtIfState,
    ospfNbrIpAddr, ospfNbrAddressLessIndex, ospfNbrRtrId,
    ospfNbrState, ospfVirtNbrArea, ospfVirtNbrRtrId,
    ospfVirtNbrState, ospfLsdbType, ospfLsdbLsid, ospfLsdbRouterId,
    ospfLsdbAreaId, ospfExtLsdbLimit, ospf, ospfAreaId,
    ospfAreaNssaTranslatorState, ospfRestartStatus,
    ospfRestartInterval, ospfRestartExitReason,
    ospfNbrRestartHelperStatus, ospfNbrRestartHelperAge,
    ospfNbrRestartHelperExitReason, ospfVirtNbrRestartHelperStatus,
    ospfVirtNbrRestartHelperAge, ospfVirtNbrRestartHelperExitReason
                 FROM OSPF-MIB;

  ospfTrap MODULE-IDENTITY

       LAST-UPDATED "200611100000Z" -- November 10, 2006 00:00:00 EST
       ORGANIZATION "IETF OSPF Working Group"
       CONTACT-INFO
       "WG E-Mail: ospf@ietf.org

        WG Chairs: acee@cisco.com
                   rohit@gmail.com

        Editors:   Dan Joyal
                   Nortel
                   600 Technology Park Drive
                   Billerica, MA  01821
                   djoyal@nortel.com

                   Piotr Galecki
                   Airvana
                   19 Alpha Road
                   Chelmsford, MA 01824
                   pgalecki@airvana.com

                   Spencer Giacalone
                   CSFB
                   Eleven Madison Ave
                   New York, NY 10010-3629

                   spencer.giacalone@gmail.com"
       DESCRIPTION
          "The MIB module to describe traps for the OSPF
          Version 2 Protocol.

          Copyright (C) The IETF Trust (2006).
          This version of this MIB module is part of
          RFC 4750;  see the RFC itself for full legal
          notices."

       REVISION "200611100000Z" -- November 10, 2006 00:00:00 EST
       DESCRIPTION
          "Updated for latest changes to OSPFv2:
           -added graceful restart related traps
           -added new config error types
           -added ospfNssaTranslatorStatusChange trap.
           See Appendix B of RFC 4750 for more details.

          This version published as part of RFC 4750"

       REVISION "199501201225Z" -- Fri Jan 20 12:25:50 PST 1995
       DESCRIPTION
          "The initial SMIv2 revision of this MIB module, published
          in RFC 1850."
       ::= { ospf 16 }

--  Trap Support Objects

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

  ospfTrapControl OBJECT IDENTIFIER ::= { ospfTrap 1 }
  ospfTraps OBJECT IDENTIFIER ::= { ospfTrap 2 }

  ospfSetTrap OBJECT-TYPE
       SYNTAX       OCTET STRING (SIZE(4))
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "A 4-octet string serving as a bit map for
          the trap events defined by the OSPF traps.  This
          object is used to enable and disable specific
          OSPF traps where a 1 in the bit field
          represents enabled.  The right-most bit (least
          significant) represents trap 0.

          This object is persistent and when written

          the entity SHOULD save the change to non-volatile
          storage."
        ::= { ospfTrapControl 1 }

  ospfConfigErrorType OBJECT-TYPE
       SYNTAX       INTEGER {
                       badVersion (1),
                       areaMismatch (2),
                       unknownNbmaNbr (3), -- Router is DR eligible
                       unknownVirtualNbr (4),
                       authTypeMismatch(5),
                       authFailure (6),
                       netMaskMismatch (7),
                       helloIntervalMismatch (8),
                       deadIntervalMismatch (9),
                       optionMismatch (10),
                       mtuMismatch (11),
                       duplicateRouterId (12),
                       noError (13) }
       MAX-ACCESS   read-only
       STATUS   current
       DESCRIPTION
          "Potential types of configuration conflicts.
          Used by the ospfConfigError and
          ospfConfigVirtError traps.  When the last value
          of a trap using this object is needed, but no
          traps of that type have been sent, this value
          pertaining to this object should be returned as
          noError."
       ::= { ospfTrapControl 2 }

  ospfPacketType OBJECT-TYPE
       SYNTAX       INTEGER {
                       hello (1),
                       dbDescript (2),
                       lsReq (3),
                       lsUpdate (4),
                       lsAck (5),
                       nullPacket (6) }
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "OSPF packet types.  When the last value of a trap
          using this object is needed, but no traps of
          that type have been sent, this value pertaining
          to this object should be returned as nullPacket."
       ::= { ospfTrapControl 3 }

  ospfPacketSrc OBJECT-TYPE
       SYNTAX       IpAddress
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "The IP address of an inbound packet that cannot
          be identified by a neighbor instance.  When
          the last value of a trap using this object is
          needed, but no traps of that type have been sent,
          this value pertaining to this object should
          be returned as 0.0.0.0."
       ::= { ospfTrapControl 4 }

--  Traps

  ospfVirtIfStateChange NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
          ospfVirtIfAreaId,
          ospfVirtIfNeighbor,
          ospfVirtIfState  -- The new state
          }
       STATUS       current
       DESCRIPTION
          "An ospfVirtIfStateChange trap signifies that there
          has been a change in the state of an OSPF virtual
          interface.

          This trap should be generated when the interface
          state regresses (e.g., goes from Point-to-Point to Down)
          or progresses to a terminal state
          (i.e., Point-to-Point)."
       ::= { ospfTraps 1 }

  ospfNbrStateChange NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
          ospfNbrIpAddr,
          ospfNbrAddressLessIndex,
          ospfNbrRtrId,
          ospfNbrState  -- The new state
          }
       STATUS       current
       DESCRIPTION
          "An ospfNbrStateChange trap signifies that
          there has been a change in the state of a
          non-virtual OSPF neighbor.  This trap should be
          generated when the neighbor state regresses
          (e.g., goes from Attempt or Full to 1-Way or
          Down) or progresses to a terminal state (e.g.,
          2-Way or Full).  When an neighbor transitions
          from or to Full on non-broadcast multi-access
          and broadcast networks, the trap should be
          generated by the designated router.  A designated
          router transitioning to Down will be noted by
          ospfIfStateChange."
       ::= { ospfTraps 2 }

  ospfVirtNbrStateChange NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
          ospfVirtNbrArea,
          ospfVirtNbrRtrId,
          ospfVirtNbrState  -- The new state
          }
       STATUS       current
       DESCRIPTION
          "An ospfVirtNbrStateChange trap signifies that there
          has been a change in the state of an OSPF virtual
          neighbor.  This trap should be generated
          when the neighbor state regresses (e.g., goes
          from Attempt or Full to 1-Way or Down) or
          progresses to a terminal state (e.g., Full)."
       ::= { ospfTraps 3 }

  ospfIfConfigError NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
          ospfIfIpAddress,
          ospfAddressLessIf,
          ospfPacketSrc,  -- The source IP address
          ospfConfigErrorType, -- Type of error
          ospfPacketType
          }
       STATUS       current
       DESCRIPTION
          "An ospfIfConfigError trap signifies that a
          packet has been received on a non-virtual
          interface from a router whose configuration
          parameters conflict with this router's
          configuration parameters.  Note that the event
          optionMismatch should cause a trap only if it
          prevents an adjacency from forming."
       ::= { ospfTraps 4 }

  ospfVirtIfConfigError NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
          ospfVirtIfAreaId,
          ospfVirtIfNeighbor,
          ospfConfigErrorType, -- Type of error

          ospfPacketType
          }
       STATUS       current
       DESCRIPTION
          "An ospfVirtIfConfigError trap signifies that a
          packet has been received on a virtual interface
          from a router whose configuration parameters
          conflict with this router's configuration
          parameters.  Note that the event optionMismatch
          should cause a trap only if it prevents an
          adjacency from forming."
       ::= { ospfTraps 5 }

  ospfIfAuthFailure NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
          ospfIfIpAddress,
          ospfAddressLessIf,
          ospfPacketSrc,  -- The source IP address
          ospfConfigErrorType, -- authTypeMismatch or
                               -- authFailure
          ospfPacketType
          }
       STATUS       current
       DESCRIPTION
          "An ospfIfAuthFailure trap signifies that a
          packet has been received on a non-virtual
          interface from a router whose authentication key
          or authentication type conflicts with this
          router's authentication key or authentication
          type."
       ::= { ospfTraps 6 }

  ospfVirtIfAuthFailure NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
          ospfVirtIfAreaId,
          ospfVirtIfNeighbor,
          ospfConfigErrorType, -- authTypeMismatch or
                               -- authFailure
          ospfPacketType
          }
       STATUS       current
       DESCRIPTION
          "An ospfVirtIfAuthFailure trap signifies that a
          packet has been received on a virtual interface
          from a router whose authentication key or
          authentication type conflicts with this router's
          authentication key or authentication type."
       ::= { ospfTraps 7 }

  ospfIfRxBadPacket NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
          ospfIfIpAddress,
          ospfAddressLessIf,
          ospfPacketSrc,  -- The source IP address
          ospfPacketType
          }
       STATUS       current
       DESCRIPTION
          "An ospfIfRxBadPacket trap signifies that an
          OSPF packet has been received on a non-virtual
          interface that cannot be parsed."
       ::= { ospfTraps 8 }

  ospfVirtIfRxBadPacket NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
         ospfVirtIfAreaId,
         ospfVirtIfNeighbor,
         ospfPacketType
         }
       STATUS       current
       DESCRIPTION
          "An ospfVirtIfRxBadPacket trap signifies that an OSPF
          packet has been received on a virtual interface
          that cannot be parsed."
       ::= { ospfTraps 9 }

  ospfTxRetransmit NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
          ospfIfIpAddress,
          ospfAddressLessIf,
          ospfNbrRtrId, -- Destination
          ospfPacketType,
          ospfLsdbType,
          ospfLsdbLsid,
          ospfLsdbRouterId
          }
        STATUS       current
        DESCRIPTION
           "An ospfTxRetransmit trap signifies than an
           OSPF packet has been retransmitted on a
           non-virtual interface.  All packets that may be
           retransmitted are associated with an LSDB entry.
           The LS type, LS ID, and Router ID are used to
           identify the LSDB entry."
        ::= { ospfTraps 10 }

  ospfVirtIfTxRetransmit NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
          ospfVirtIfAreaId,
          ospfVirtIfNeighbor,
          ospfPacketType,
          ospfLsdbType,
          ospfLsdbLsid,
          ospfLsdbRouterId
          }
       STATUS       current
       DESCRIPTION
          "An ospfVirtIfTxRetransmit trap signifies than an
          OSPF packet has been retransmitted on a virtual
          interface.  All packets that may be retransmitted
          are associated with an LSDB entry.  The LS
          type, LS ID, and Router ID are used to identify
          the LSDB entry."
       ::= { ospfTraps 11 }

  ospfOriginateLsa NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
          ospfLsdbAreaId,  -- 0.0.0.0 for AS Externals
          ospfLsdbType,
          ospfLsdbLsid,
          ospfLsdbRouterId
          }
       STATUS       current
       DESCRIPTION
          "An ospfOriginateLsa trap signifies that a new
          LSA has been originated by this router.  This
          trap should not be invoked for simple refreshes
          of LSAs (which happens every 30 minutes), but
          instead will only be invoked when an LSA is
          (re)originated due to a topology change.
          Additionally, this trap does not include LSAs that
          are being flushed because they have reached
          MaxAge."
       ::= { ospfTraps 12 }

  ospfMaxAgeLsa NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
          ospfLsdbAreaId,  -- 0.0.0.0 for AS Externals
          ospfLsdbType,
          ospfLsdbLsid,
          ospfLsdbRouterId
          }
       STATUS       current
       DESCRIPTION
          "An ospfMaxAgeLsa trap signifies that one of
          the LSAs in the router's link state database has
          aged to MaxAge."
       ::= { ospfTraps 13 }

  ospfLsdbOverflow NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
          ospfExtLsdbLimit
          }
       STATUS       current
       DESCRIPTION
          "An ospfLsdbOverflow trap signifies that the
          number of LSAs in the router's link state
          database has exceeded ospfExtLsdbLimit."
       ::= { ospfTraps 14 }

  ospfLsdbApproachingOverflow NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
          ospfExtLsdbLimit
          }
       STATUS       current
       DESCRIPTION
          "An ospfLsdbApproachingOverflow trap signifies
          that the number of LSAs in the router's
          link state database has exceeded ninety percent of
          ospfExtLsdbLimit."
       ::= { ospfTraps 15 }

  ospfIfStateChange NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
          ospfIfIpAddress,
          ospfAddressLessIf,
          ospfIfState   -- The new state
          }
       STATUS       current
       DESCRIPTION
          "An ospfIfStateChange trap signifies that there
          has been a change in the state of a non-virtual
          OSPF interface.  This trap should be generated
          when the interface state regresses (e.g., goes
          from Dr to Down) or progresses to a terminal
          state (i.e., Point-to-Point, DR Other, Dr, or
          Backup)."
       ::= { ospfTraps 16 }

  ospfNssaTranslatorStatusChange NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap

          ospfAreaId,
          ospfAreaNssaTranslatorState -- The current translation
                                      -- status
          }
       STATUS       current
       DESCRIPTION
          "An ospfNssaTranslatorStatusChange trap indicates that
          there has been a change in the router's ability to
          translate OSPF type-7 LSAs into OSPF type-5 LSAs.
          This trap should be generated when the translator
          status transitions from or to any defined status on
          a per-area basis."
       ::= { ospfTraps 17 }

  ospfRestartStatusChange NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
                 ospfRestartStatus,
                 ospfRestartInterval,
                 ospfRestartExitReason
               }
       STATUS       current
       DESCRIPTION
          "An ospfRestartStatusChange trap signifies that
          there has been a change in the graceful restart
          state for the router.  This trap should be
          generated when the router restart status
          changes."
       ::= { ospfTraps 18 }

  ospfNbrRestartHelperStatusChange NOTIFICATION-TYPE
       OBJECTS { ospfRouterId, -- The originator of the trap
                 ospfNbrIpAddr,
                 ospfNbrAddressLessIndex,
                 ospfNbrRtrId,
                 ospfNbrRestartHelperStatus,
                 ospfNbrRestartHelperAge,
                 ospfNbrRestartHelperExitReason
               }
       STATUS       current
       DESCRIPTION
          "An ospfNbrRestartHelperStatusChange trap signifies that
          there has been a change in the graceful restart
          helper state for the neighbor.  This trap should be
          generated when the neighbor restart helper status
          transitions for a neighbor."
       ::= { ospfTraps 19 }

  ospfVirtNbrRestartHelperStatusChange NOTIFICATION-TYPE

       OBJECTS { ospfRouterId, -- The originator of the trap
                 ospfVirtNbrArea,
                 ospfVirtNbrRtrId,
                 ospfVirtNbrRestartHelperStatus,
                 ospfVirtNbrRestartHelperAge,
                 ospfVirtNbrRestartHelperExitReason
               }
       STATUS       current
       DESCRIPTION
          "An ospfVirtNbrRestartHelperStatusChange trap signifies
          that there has been a change in the graceful restart
          helper state for the virtual neighbor.  This trap should
          be generated when the virtual neighbor restart helper
          status transitions for a virtual neighbor."
       ::= { ospfTraps 20 }

--  conformance information

ospfTrapConformance OBJECT IDENTIFIER ::= { ospfTrap 3 }
ospfTrapGroups      OBJECT IDENTIFIER ::= { ospfTrapConformance 1 }
ospfTrapCompliances OBJECT IDENTIFIER ::= { ospfTrapConformance 2 }

--  compliance statements

ospfTrapCompliance MODULE-COMPLIANCE
     STATUS       obsolete
     DESCRIPTION
        "The compliance statement."
     MODULE       -- this module
     MANDATORY-GROUPS { ospfTrapControlGroup }

     GROUP       ospfTrapControlGroup
     DESCRIPTION
        "This group is optional but recommended for all
        OSPF systems."
     ::= { ospfTrapCompliances 1 }

ospfTrapCompliance2 MODULE-COMPLIANCE
     STATUS       current
     DESCRIPTION
        "The compliance statement."
     MODULE       -- this module
     MANDATORY-GROUPS { ospfTrapControlGroup, ospfTrapEventGroup }
     OBJECT       ospfConfigErrorType
     MIN-ACCESS   accessible-for-notify
     DESCRIPTION
        "This object is only required to be supplied within
        notifications."

     OBJECT       ospfPacketType
     MIN-ACCESS   accessible-for-notify
     DESCRIPTION
        "This object is only required to be supplied within
        notifications."
     OBJECT       ospfPacketSrc
     MIN-ACCESS   accessible-for-notify
     DESCRIPTION
        "This object is only required to be supplied within
        notifications."
     ::= { ospfTrapCompliances 2 }

--  units of conformance

  ospfTrapControlGroup    OBJECT-GROUP
       OBJECTS { ospfSetTrap,
                 ospfConfigErrorType,
                 ospfPacketType,
                 ospfPacketSrc }
       STATUS       current
       DESCRIPTION
          "These objects are required to control traps
          from OSPF systems."
       ::= { ospfTrapGroups 1 }

  ospfTrapEventGroup       NOTIFICATION-GROUP
       NOTIFICATIONS {
          ospfVirtIfStateChange,
          ospfNbrStateChange,
          ospfVirtNbrStateChange,
          ospfIfConfigError,
          ospfVirtIfConfigError,
          ospfIfAuthFailure,
          ospfVirtIfAuthFailure,
          ospfIfRxBadPacket,
          ospfVirtIfRxBadPacket,
          ospfTxRetransmit,
          ospfVirtIfTxRetransmit,
          ospfOriginateLsa,
          ospfMaxAgeLsa,
          ospfLsdbOverflow,
          ospfLsdbApproachingOverflow,
          ospfIfStateChange,
          ospfNssaTranslatorStatusChange,
          ospfRestartStatusChange,
          ospfNbrRestartHelperStatusChange,
          ospfVirtNbrRestartHelperStatusChange
          }
       STATUS        current
       DESCRIPTION
          "A grouping of OSPF trap events, as specified
          in NOTIFICATION-TYPE constructs."
       ::= { ospfTrapGroups 2 }

END
