-- extracted from draft-ietf-ospf-mib-update-05.txt
-- at Sat Nov 25 16:04:53 2000

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
                  FROM OSPF-MIB;

ospfTrap MODULE-IDENTITY
            LAST-UPDATED "200010201225Z" -- Fri Oct 20 12:25:50 GMT
               -- 2000
            ORGANIZATION "IETF OSPF Working Group"
            CONTACT-INFO
            "       Spencer Giacalone
            Postal: Predictive Systems
                    25a Vreeland Road
                    Florham Park, NJ 07932
            Tel:    +1 (973) 301-5695
            E-Mail: spencer.giacalone@predictive.com

                    Dan Joyal
            Postal: Quantum Bridge Communications
                    1 High Street
                    North Andover, MA  01845
            Tel:    +1 (978) 688-9100
            E-Mail: djoyal@quantumbridge.com"
            DESCRIPTION
               "The MIB module to describe traps for  the  OSPF
               Version 2 Protocol."
            REVISION "200011201015Z" -- Mon Nov 20 10:15:00 GMT 2000
            DESCRIPTION
               "Updated for latest version of OSPFv2"
            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."
         ::= { 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),
                        noError (12) }
        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 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 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 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 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 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 }

--  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
-- Commented out because a group cannot be mandatory
-- and optional at the same time! F.Fock
--      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
           }
        STATUS        current
        DESCRIPTION
           "A grouping of OSPF Trap Events, as specified
           in NOTIFICATION-TYPE constructs."
        ::= { ospfTrapGroups 2 }


END

-- 
--    Copyright (C) The Internet Society (2000).  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.

