Internet Draft        OSPF Version 2 Traps                    May 1991


                           OSPF Version 2 Traps

                                Rob Coltun

                         Penril DataComm Networks
                         1300 Quince Orchard Blvd.
                     Gaithersburg, Maryland 20878-4106

                            rcoltun@ni.umd.edu



     Table Of Contents

          1.0 Abstract ................................................. 1
          2.0 Approach ................................................. 1
          2.1 Ignoring Initial Activity ................................ 2
          2.2 Throttling Traps ......................................... 2
          2.3 One Trap Per OSPF Packet ................................. 2
          2.4 Polling Event Counters ................................... 2
          3.0 OSPF Trap Definitions .................................... 3
          3.1 Imports .................................................. 3
          3.2 Trap Support Objects ..................................... 4
          3.3 Traps .................................................... 5
          4.0 Acknowledgements ......................................... 8
          5.0 References ............................................... 8

     1.0  Abstract

          OSPF [1] is an event driven  routing protocol, where an event can
          be a change in an OSPF interface's link-level status, the expira-
          tion 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 rout-
          ing  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.  Another approach is
          to notify a network manager of potentially critical  OSPF  events
          with SNMP traps.

          This draft document defines a set of traps, objects  and  mechan-
          isms  to enhance the ability to manage IP internetworks which use
          OSPF as its IGP.  It is meant as an extension  to  the  OSPF  MIB
          [2].

     2.0  Approach

          The SNMP trap mechanism is defined in RFC1155 [3]; the convention
          for defining traps is described in RFC1215 [4].  The mechanism is
          straightforward.  When an exception event occurs, the application
          will notify the local agent who will send a trap to the appropri-
          ate SNMP management stations.  The message will include the  trap
          type  and  may  include a list of trap specific variables.  A new
          object is defined in  section  3.2  that  will  allow  a  network



     Coltun                                                        [Page 1]


     Internet Draft        OSPF Version 2 Traps                    May 1991


          administrator  to  enable or disable particular OSPF traps.  Sec-
          tion 3.3 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.

     2.1  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 neigh-
          bor adjacencies are formed.  During this initial period a  poten-
          tial flood of traps is unnecessary since the events are expected.
          To avoid unnecessary generation of traps, a router should wait at
          least  two dead timer intervals before it enables its OSPF traps,
          where the dead timer is equal to the router's largest  configured
          dead timer.

     2.2  Throttling Traps

          The mechanism for throttling the traps is similar to the  mechan-
          ism  explained in RFC 1224 [5] section 5.  The basic idea is that
          there is a sliding window in seconds and an upper  bound  on  the
          number of traps that may be generated within this window.  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.
          For  example,  if  the window time is 3, the upper bound is 3 and
          the events that would cause trap types 1,3,5 and 7 occur within a
          3 second period, the type 7 trap should not be generated.

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

     2.3   One Trap Per OSPF Packet

          Several of the traps defined in section 3.3 are generated as  the
          result  of  finding  an  unusual  condition while parsing an OSPF
          packet or a timer event which results in sending an OSPF  packet.
          However,  there may be several events per packet.  For example, a
          link-state update  packet  may  contain  several  new  link-state
          advertisements,  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 packet.  Only the  variables  associated  with  the
          first entry should be included with the trap.  Similarly, if more
          than one type of unusual event is encountered while  parsing  the
          packet, only the first event will generate a trap.

     2.4  Polling Event Counters

          Many of the tables in the  OSPF  MIB  contain  generalized  event



     Coltun                                                        [Page 2]


     Internet Draft        OSPF Version 2 Traps                    May 1991


          counters.   By enabling the traps defined in this document a net-
          work 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 3.3.

                       Counter                  Trap Type
               -----------------------   ------------------------
               ospfOriginateNewLsa        ospfOriginateLSA
               ospfIfEvents               ospfIfStateChange
                                          ospfDrChange
                                          ospfConfigError
                                          ospfRxBadPacket
                                          ospfTxRetransmit
               ospfVirtIfEvents           ospfVirtIfStateChange
                                          ospfVirtIfConfigError
                                          ospfVirtIfRxBadPacket
                                          ospfVirtIfTxRetransmit
               ospfNbrEvents              ospfNbrStateChange
               ospfVirtNbrEvents          ospfVirtNbrStateChange


     3.0  OSPF Trap Definitions

     3.1  Imports

          RFCxxxx-MIB DEFINITIONS ::= BEGIN
               IMPORTS
                    IpAddress
                         FROM RFC1155-SMI
                    OBJECT-TYPE
                         FROM RFC1212
                    TRAP-TYPE
                         FROM RFC1215
                    ospfRouterId, ospfIfIpAddress, ospfAddressLessIf,
                    ospfAreaID, ospfIfType, ospfIfState, ospfVirtAreaID,
                    ospfVirtIfNeighbor, ospfVirtIfState, ospfNbrIpAddress,
                    ospfNbrAddressLessIndex, ospfNbrRtrId, ospfNbrState,
                    ospfVirtNbrArea, ospfVirtNbrRtrId, ospfLsdbAreaId,
                    ospfLsdbType, ospfLsdbLSID, ospfLsdbRouterId
                         FROM RFCxxxx-OSPF MIB












     Coltun                                                        [Page 3]


     Internet Draft        OSPF Version 2 Traps                    May 1991


     3.2  Trap Support Objects

          ospfTrapGroup OBJECT IDENTIFIER ::= { ospf 12 }

          ospfSetTrap     OBJECT-TYPE
               SYNTAX  OCTET STRING
               ACCESS  read-write
               STATUS  mandatory
               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."
               ::= { ospfTrapGroup 1 }


          ospfConfigErrorType     OBJECT-TYPE
               SYNTAX  INTEGER {
                         badVersion (1),
                         areaMismatch (2),
                         unknownNbmaNbr (3), -- Initiator  of  trap  is  Dr
                         eligible
                         unknownVirtualNbr (4),
                         authTypeMismatch(5),
                         authFailure (6),
                         netMaskMismatch (7),
                         helloIntervalMismatch (8),
                         deadIntervalMismatch (9),
                         eBitMismatch (10) }
               ACCESS  read-only
               STATUS  mandatory
               DESCRIPTION
                         "Potential types of configuration conflicts.  Used
                         by  the  ospfConfigError  and  ospfConfigVirtError
                         traps."
               ::= { ospfTrapGroup 2 }


          ospfPacketType  OBJECT-TYPE
               SYNTAX  INTEGER {
                         hello (1),
                         dbDescript (2),
                         lsReq (3),
                         lsUpdate (4),
                         lsAck (5) }
               ACCESS  read-only
               STATUS  mandatory
               DESCRIPTION
                         "OSPF packet types."
               ::= { ospfTrapGroup 3 ]





     Coltun                                                        [Page 4]


     Internet Draft        OSPF Version 2 Traps                    May 1991


3.3  Traps

          ospfIfStateChange       TRAP-TYPE
               ENTERPRISE      ospf
               VARIABLES {
                    ospfRouterId, -- The originator of the trap
                    ospfIfIpAddress,
                    ospfAddressLessIf,
                    ospfIfState } -- The new state
               DESCRIPTION
                    "An ospfIfStateChange trap  signifies  that  there  has
                    been a change in the state of a non-virtual OSPF inter-
                    face."
               ::= 0


          ospfVirtIfStateChange   TRAP-TYPE
               ENTERPRISE      ospf
               VARIABLES {
                    ospfRouterId, -- The originator of the trap
                    ospfVirtAreaID,
                    ospfVirtIfNeighbor,
                    ospfVirtIfState } -- The new state
               DESCRIPTION
                    "An ospfIfStateChange trap  signifies  that  there  has
                    been  a  change  in the state of an OSPF virtual inter-
                    face."
               ::= 1


          ospfNbrStateChange      TRAP-TYPE
               ENTERPRISE      ospf
               VARIABLES {
                    ospfRouterId, -- The originator of the trap
                    ospfNbrIpAddress,
                    ospfNbrAddressLessIndex,
                    ospfNbrRtrId,
                    ospfNbrState } -- The new state
               DESCRIPTION
                    "An ospfIfStateChange trap  signifies  that  there  has
                    been a change in the state of a non-virtual OSPF neigh-
                    bor."
               ::= 2


          ospfVirtNbrStateChange  TRAP-TYPE
               ENTERPRISE      ospf
               VARIABLES {
                    ospfRouterId, -- The originator of the trap
                    ospfVirtNbrArea,
                    ospfVirtNbrRtrId,
                    ospfVirtNbrState } -- The new state
               DESCRIPTION
                    "An ospfIfStateChange trap  signifies  that  there  has



     Coltun                                                        [Page 5]


     Internet Draft        OSPF Version 2 Traps                    May 1991


                    been  a  change  in the state of an OSPF virtual neigh-
                    bor."
               ::= 3


     ospfDrChange    TRAP-TYPE
               ENTERPRISE      ospf
               VARIABLES {
                    ospfRouterId, -- The originator of the trap
                    ospfIfIpAddress,
                    ospfIpAddress,  -- The new Dr or (0 if none)
                    ospfIpAddress } -- The new Backup Dr (0 if none)
               DESCRIPTION
                    "An ospfDrChange trap signifies that there has  been  a
                    change  in  the  Dr or backup Dr on one of the router's
                    directly connected multi-access networks."
               ::= 4


          ospfConfigError TRAP-TYPE
               ENTERPRISE      ospf
               VARIABLES {
                    ospfRouterId, -- The originator of the trap
                    ospfIfIpAddress,
                    ospfAddressLessIf,
                    IpAddress,  -- The source IP address
                    ospfConfigErrorType, -- Type of error
                    ospfPacketType }
               DESCRIPTION
                    "An ospfConfigError 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."
               ::= 5


          ospfVirtIfConfigError   TRAP-TYPE
               ENTERPRISE      ospf
               VARIABLES {
                    ospfRouterId, -- The originator of the trap
                    ospfVirtAreaID,
                    ospfVirtIfNeighbor,
                    ospfConfigErrorType, -- Type of error
                    ospfPacketType }
               DESCRIPTION
                    "An ospfConfigError 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."
               ::= 6


          ospfRxBadPacket TRAP-TYPE
               ENTERPRISE      ospf



     Coltun                                                        [Page 6]


     Internet Draft        OSPF Version 2 Traps                    May 1991


               VARIABLES {
                    ospfRouterId, -- The originator of the trap
                    ospfIfIpAddress,
                    ospfAddressLessIf,
                    IpAddress,  -- The source IP address
                    ospfPacketType }
               DESCRIPTION
                    "An ospfRxBadPacket trap signifies that an OSPF  packet
                    has  been received on a non-virtual interface that can-
                    not be parsed."
               ::= 7


          ospfVirtIfRxBadPacket   TRAP-TYPE
               ENTERPRISE      ospf
               VARIABLES {
                    ospfRouterId, -- The originator of the trap
                    ospfVirtAreaID,
                    ospfVirtIfNeighbor,
                    ospfPacketType }
               DESCRIPTION
                    "An ospfRxBadPacket trap signifies that an OSPF  packet
                    has been received on a virtual interface that cannot be
                    parsed."
               ::= 8


          ospfTxRetransmit        TRAP-TYPE
               ENTERPRISE      ospf
               VARIABLES {
                    ospfRouterId, -- The originator of the trap
                    ospfIfIpAddress,
                    ospfAddressLessIf,
                    ospfNbrRtrId, -- Who the packet is being  retransmitted
                    to
                    ospfPacketType }
               DESCRIPTION
                    "An ospfTxRetransmit trap signifies than an OSPF packet
                    has been retransmitted on a non-virtual interface."
               ::= 9


          ospfVirtIfTxRetransmit  TRAP-TYPE
               ENTERPRISE      ospf
               VARIABLES {
                    ospfRouterId, -- The originator of the trap
                    ospfVirtAreaID,
                    ospfVirtIfNeighbor,
                    ospfPacketType }
               DESCRIPTION
                    "An ospfTxRetransmit trap signifies than an OSPF packet
                    has been retransmitted on a virtual interface."
               ::= 10




     Coltun                                                        [Page 7]


     Internet Draft        OSPF Version 2 Traps                    May 1991


          ospfOriginateLSA        TRAP-TYPE
               ENTERPRISE      ospf
               VARIABLES {
                    ospfRouterId, -- The originator of the trap
                    ospfLsdbAreaId,  -- 0.0.0.0 for AS Externals
                    ospfLsdbType,
                    ospfLsdbLSID,
                    ospfLsdbRouterId }
               DESCRIPTION
                    "An ospfOriginateLSA trap signifies that  a  new  link-
                    state  advertisement  of  has  been  originated by this
                    router."
               ::= 11


          ospfMaxAgeLSA   TRAP-TYPE
               ENTERPRISE      ospf
               VARIABLES {
                    ospfRouterId, -- The originator of the trap
                    ospfLsdbAreaId,  -- 0.0.0.0 for AS Externals
                    ospfLsdbType,
                    ospfLsdbLSID,
                    ospfLsdbRouterId }
               DESCRIPTION
                    "An ospfMaxAgeLSA trap signifies that one of the  link-
                    state  advertisements  in the router's link-state data-
                    base has aged to MaxAge."
               ::= 12


          ospfFreeLSA     TRAP-TYPE
               ENTERPRISE      ospf
               VARIABLES {
                    ospfRouterId, -- The originator of the trap
                    ospfLsdbAreaId,  -- 0.0.0.0 for AS Externals
                    ospfLsdbType,
                    ospfLsdbLSID,
                    ospfLsdbRouterId }
               DESCRIPTION
                    "An ospFreeLSA trap signifies that  one  of  the  link-
                    state  advertisements  in the router's link-state data-
                    base has been freed."
               ::= 13














     Coltun                                                        [Page 8]


     Internet Draft        OSPF Version 2 Traps                    May 1991


4.0     Acknowledgements

     This document was produced by the OSPF Working Group, chaired by  John
     Moy.

     In addition, the comments of the following individuals are  also  ack-
     nowledged:
             Fred Baker      ACC
             Dino Farinacci  cisco
             Stan Froyd      ACC
             John Moy        Proteon, Inc.



5.0     References

     [1]     J. Moy, The OSPF Specification, Version 2 Internet
             Draft, Internet Engineering Task Force,
             (January, 1991)

     [2]     F. Baker and R. Coltun, OSPF Version 2 Management
             Information Base Internet Draft, Internet Engineering
             Task Force, (April 1991)

     [3]     M.T. Rose and K. McCloghrie, Structure and Identifi-
             cation of Management Information for TCP/IP-based
             Internets, Internet Request for Comments 1155.
             Network Information Center, SRI International,
             Menlo Park, California, (May, 1990).

     [4]     M.T. Rose, A Convention for Defining Traps for
             use with the SNMP, Internet Request for Comments
             1215. Network Information Center, SRI International,
             Menlo Park, California, (March, 1991).

     [5]     L.  Steinberg, Techniques for Managing Asynchronously
             Generated Alerts.  Internet Request for Comments 1224.
             Network Information Center, SRI International, Menlo Park,
             California, (May, 1991).


















     Coltun                                                        [Page 9]