-- Extracted from draft-ietf-ospf-mib-update-08.txt
--
-- Network Working Group                                          Dan Joyal
-- INTERNET-DRAFT                                             Piotr Galecki
-- Expiration Date: June 2004                               Nortel Networks
-- Filename:draft-ietf-ospf-mib-update-08.txt             Spencer Giacalone
--                                                                     CSFB
--                                                               Rob Coltun
--                                                           Movaz Networks
--                                                               Fred Baker
--                                                            Cisco Systems
--                                                            December 2003


--                  OSPF Version 2 Management Information Base

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 "200312180900Z" -- Dec 18, 2003 09:00:00 EST 
              -- 2000
          ORGANIZATION "IETF OSPF Working Group" 
          CONTACT-INFO 
          "WG E-Mail: ospf@peach.ease.lsoft.com 
  
          WG Chairs: John.Moy@sycamorenet.com 
                     acee@redback.com 
                     rohit@xebeo.com 
  
          Editors:   Dan Joyal, Piotr Galecki 
                     Nortel Networks 
                     600 Technology Park Drive 
                     Billerica, MA  01821 
                     djoyal@nortelnetworks.com 
                     pgalecki@nortelnetworks.com 
  
                     Spencer Giacalone 
                     Credit Suisse First Boston 
                     Eleven Madison Ave 
                     New York, NY 10010-3629 
                     spencer.giacalone@csfb.com"
            DESCRIPTION
               "The MIB module to describe traps for  the  OSPF
               Version 2 Protocol."
            REVISION "200312180900Z" -- Dec 18, 2003 09:00:00 EST 
            DESCRIPTION 
            "Updated for latest changes to 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. 
  
            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 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 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 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 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 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 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 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 
