Network Working Group                                    Thomas D. Nadeau
Internet Draft                                                  Zafar Ali
Expires: December 2004                                Cisco Systems, Inc.


                                                               June 2004


            Bidirectional Forwarding Detection Management
                         Information Base

                    draft-ietf-bfd-mib-00.txt


Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC 2026.

   Internet-Drafts are working documents of the In ternet 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 draft defines a portion of the Management Information Base
  (MIB) for use with network management protocols in the Internet
  community. In particular, it describes managed objects for modeling
  Bidirectional Forwarding Detection (BFD) protocol [BFD].


Table of Contents

  1. Introduction .........................................................2
  2. Terminology ..........................................................2
  3. The SNMP Management Framework ........................................3
  4. Use of 32-bit and 64-bit Counters ....................................3
  5. Brief Description of MIB Objects .....................................3
  5.1 General Variables ...................................................3
  5.2 Session Table (bfdSessionTable) .....................................4



BFD Working Group            Expires December 2004           [Page 1]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



  5.3 Session Performance Table (bfdSessionPerfTable) .....................4
  5.4 Session Mapping Table (bfdSessMapTable) .............................4
  6. BFD MIB Module Definitions ...........................................4
  7. Security Considerations .............................................20
  8. Acknowledgements ....................................................21
  9. References ..........................................................21
  9.1. Normative References  .............................................21
  9.2. Informative References  ...........................................22
  10. Author's Addresses..................................................22
  11. Full Copyright Statement ...........................................22
  12. Intellectual Property Notice .......................................22
  13. IANA Considerations ................................................23

1. Introduction

   For a detailed overview of the documents that describe the
   current Internet-Standard Management Framework, please refer to
   section of RFC 3410 [RFC3410].

   Managed objects are accessed via a virtual information store,
   termed the Management Information Base or MIB. MIB objects are
   generally accessed through the Simple Network Management Protocol
   (SNMP). Objects in the MIB are defined using the mechanisms defined
   in the Structure of Management Information (SMI). This memo
   specifies a MIB 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].

   Current work is underway in the IETF to specify a suite of
   protocols known as Bidirectional Forwarding Detection to detect
   faults in the bidirectional path between two forwarding engines,
   including interfaces, data link(s), and to the extent possible the
   forwarding engines themselves, with potentially very low latency
   [BFD].

   In this document we describe a MIB module that can be used to
   manage BFD implementations. This MIB module covers both
   configuration and performance monitoring aspects of BFD.

   This document is based on draft-katz-ward-bfd-02.txt [BFD] and
   only addresses MIB for MFD running over point-to-point interfaces.
   Specifically, this version of the ID does not address BFD over
   shared interfaces [BFDSHARED]. Furthermore, at present we do not
   directly address manageability requirement when LSP-Ping is used for
   boot-strapping the BFD session [BFD-LSP]. Nonetheless, some
   considerations are in place for these applications of the BFD. These
   aspects of BFD will be directly addressed in the future version of
   the ID.

2. Terminology



BFD Working Group            Expires December 2004           [Page 2]


Internet Draft               BFD-DRAFT-00-MIB               June 2004




   This document uses terminology from the document describing the
   BFD protocol [BFD].


3. The SNMP Management Framework

   For a detailed overview of the documents that describe the current
   Internet-Standard Management Framework, please refer to section 7 of
   RFC 3410 [RFC3410].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  MIB objects are generally
   accessed through the Simple Network Management Protocol (SNMP).
   Objects in the MIB are defined using the mechanisms defined in the
   Structure of Management Information (SMI).  This memo specifies a MIB
   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].


4. Use of 32-bit and 64-bit Counters

   64-bit counters are provided in this MIB module for high speed
   interfaces where the use of 32-bit counters might be impractical.
   The requirements on the use of 32-bit and 64-bit counters (copied
   verbatim from [RFC2863]) are as follows.

   For interfaces that operate at 20,000,000 (20 million) bits per
   second or less, 32-bit byte and packet counters MUST be supported.
   For interfaces that operate faster than 20,000,000 bits/second,
   and slower than 650,000,000 bits/second, 32-bit packet counters
   MUST be supported and 64-bit octet counters MUST be supported.
   For interfaces that operate at 650,000,000 bits/second or faster,
   64-bit packet counters AND 64-bit octet counters MUST be
   supported.

5. Brief Description of MIB Objects

   This section describes objects pertaining to BFD. The MIB objects
   are derived from the BFD document [BFD].

5.1  General Variables

   The General Variables are used to identify parameters that are
   global to the BFD process.

5.2 Session Table (bfdSessionTable)

   The session table is used to identify a BFD session between a



BFD Working Group            Expires December 2004           [Page 3]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



   pair of nodes.

5.3 Session Performance Table (bfdSessionPerfTable)

   The session performance table is used for collecting BFD
   performance counts on a per session basis. This table is an AUGMENT
   to the bfdSessionTable.

5.4 Session Mapping Table (bfdSessMapTable)

   The BFD Session Mapping Table maps the complex indexing of the BFD
   sessions to the flat BFDIndex used in the BfdSessionTable.

6. BFD MIB Module Definitions

BFD-DRAFT-00-MIB DEFINITIONS ::= BEGIN

IMPORTS
   MODULE-IDENTITY, OBJECT-TYPE,
   Unsigned32, Counter32, Counter64,
   NOTIFICATION-TYPE, mib-2
      FROM SNMPv2-SMI

   MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
       FROM SNMPv2-CONF

   TEXTUAL-CONVENTION, TruthValue, RowStatus, StorageType,
   TimeStamp
      FROM SNMPv2-TC

   InetAddress, InetAddressType
      FROM INET-ADDRESS-MIB
;

bfdMIB MODULE-IDENTITY
   LAST-UPDATED "200401221200Z"  -- 22 January 2004 12:00:00 EST
   ORGANIZATION "IETF"
   CONTACT-INFO
       "        Zafar Ali
                Cisco Systems, Inc.
        Email:  zali@cisco.com

                Thomas D. Nadeau
                Cisco Systems, Inc.
        Email:  tnadeau@cisco.com
       "
   DESCRIPTION
       "Bidirectional Forwarding Management Information Base."

   -- Revision history.



BFD Working Group            Expires December 2004           [Page 4]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



   REVISION
       "200401221200Z"  -- 22 January 2004 12:00:00 EST
   DESCRIPTION
       "Initial version."
   ::= { mib-2 999 } -- To be assigned by IANA.


-- Top level components of this MIB module.

bfdNotifications OBJECT IDENTIFIER ::= { bfdMIB 0 }

bfdObjects       OBJECT IDENTIFIER ::= { bfdMIB 1 }

bfdConformance   OBJECT IDENTIFIER ::= { bfdMIB 3 }

bfdScalarObjects OBJECT IDENTIFIER ::= { bfdObjects 1 }


--  Textual Conventions

   BfdSessIndexTC ::= TEXTUAL-CONVENTION
   DISPLAY-HINT "d"
   STATUS        current
   DESCRIPTION
       "An index used to uniquely identify BFD sessions."
   SYNTAX Unsigned32 (1..4294967295)


   BfdInterval ::= TEXTUAL-CONVENTION
   DISPLAY-HINT "d"
   STATUS        current
   DESCRIPTION
       "The BFD interval delay in microseconds."
   SYNTAX        Unsigned32 (1..4294967295)


   BfdDiag ::=      TEXTUAL-CONVENTION
   STATUS        current
   DESCRIPTION
       "A common BFD diagnostic code."

   SYNTAX INTEGER { noDiagnostic(1),
                    controlDetectionTimeExpired(2),
                    echoFunctionFailed(3),
                    neighborSignaledSessionDown(4),
                    forwardingPlaneReset(5),
                    pathDown(6),
                    concatenatedPathDown(7),
                    administrativelyDown(8)
                  }



BFD Working Group            Expires December 2004           [Page 5]


Internet Draft               BFD-DRAFT-00-MIB               June 2004




     --  BFD General Variables

     --  These parameters apply globally to the Router's
     --  BFD Process.

     bfdAdminStatus OBJECT-TYPE
        SYNTAX   INTEGER { enabled(1), disabled(2) }
        MAX-ACCESS   read-write
        STATUS   current
        DESCRIPTION
           "The global administrative status of BFD in this router.
            The value 'enabled' denotes that the BFD Process is active
            on at least one interface; 'disabled' disables it on
            all interfaces."
        DEFVAL { enabled }
        ::= { bfdScalarObjects 1 }

     bfdOperStatus OBJECT-TYPE
       SYNTAX        INTEGER { up(1), down(2) }
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "The operational status of BFD on this router."
      ::= { bfdScalarObjects 2 }

     bfdVersionNumber OBJECT-TYPE
         SYNTAX   Unsigned32
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "The current version number of the BFD protocol."
         REFERENCE
            " BFD Version 0 (draft-katz-ward-bfd-04.txt)"
         DEFVAL { 0 }
         ::= { bfdScalarObjects 3 }


     --  BFD Session Table
     --  The BFD Session Table specifies BFD session specific
     --  information.

     bfdSessTable OBJECT-TYPE
         SYNTAX   SEQUENCE OF BfdSessEntry
         MAX-ACCESS   not-accessible
         STATUS   current
         DESCRIPTION
            "The BFD Session Table describes the BFD sessions."
         REFERENCE
            "BFD Version 0 (draft-katz-ward-bfd-04.txt)"



BFD Working Group            Expires December 2004           [Page 6]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



         ::= { bfdObjects 2 }

     bfdSessEntry OBJECT-TYPE
         SYNTAX  BfdSessEntry
         MAX-ACCESS   not-accessible
         STATUS   current
         DESCRIPTION
            "The BFD Session Entry describes BFD session."
         INDEX { bfdSessIndex }
         ::= { bfdSessTable 1 }

     BfdSessEntry ::= SEQUENCE {
       bfdSessIndex                    BfdSessIndexTC,
       bfdSessApplicationId            Unsigned32,
       bfdSessDiscriminator            Unsigned32,
       bfdSessLocalDiscr               Unsigned32,
       bfdSessRemoteDiscr              Unsigned32,
       bfdSessState                    INTEGER,
       bfdSessRemoteHeardFlag          TruthValue,
       bfdSessDiag                     Unsigned32,
       bfdSessOperMode                 INTEGER,
       bfdSessDemandModeDesiredFlag    TruthValue,
       bfdSessEchoFuncModeDesiredFlag  TruthValue,
       bfdSessEchoFuncFlag             INTEGER,
       bfdSessAddrType                 InetAddressType,
       bfdSessAddr                     InetAddress,
       bfdSessDesiredMinTxInterval     BfdInterval,
       bfdSessDesiredMinRxInterval     BfdInterval,
       bfdSessDesiredMinEchoRxInterval BfdInterval,
       bfdSessDetectMult               BfdInterval,
       bfdSessStorType                 StorageType,
       bfdSessRowStatus                RowStatus
   }

   bfdSessIndex  OBJECT-TYPE
   SYNTAX        BfdSessIndexTC
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This object contains an index used to represent a
        unique BFD session on this device."
   ::= { bfdSessEntry 1 }

bfdSessApplicationId  OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object contains an index used to indicate
        an local application which owns or maintains this



BFD Working Group            Expires December 2004           [Page 7]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



        BFD session. For instance, the VPN process may
        maintain a subset of the total number of BFD
        sessions.  This application ID provides a convienent
        way to segretate sessions by the applications which
        maintain them."
   ::= { bfdSessEntry 2 }

   bfdSessDiscriminator            OBJECT-TYPE
   SYNTAX        Unsigned32 (1..4294967295)
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object specifies the local discriminator for this BFD
     session, used to uniquely identify it."
   ::= { bfdSessEntry 3 }

   bfdSessLocalDiscr OBJECT-TYPE
   SYNTAX        Unsigned32 (1..4294967295)
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object specifies the local discriminator for this BFD
     session, used to uniquely identify it."
   ::= { bfdSessEntry 4 }

   bfdSessRemoteDiscr OBJECT-TYPE
   SYNTAX        Unsigned32 (1..4294967295)
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
         "This object specifies the discriminator chosen by the
          remote system local discriminator for this BFD
     session."
   ::= { bfdSessEntry 5 }

   bfdSessState OBJECT-TYPE
         SYNTAX   INTEGER {
               init(1),
               up(2),
               failing(3),
               down(4),
               adminDown(5)
         }
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "The perceived state of the BFD session."
         ::= { bfdSessEntry 6 }

bfdSessRemoteHeardFlag OBJECT-TYPE



BFD Working Group            Expires December 2004           [Page 8]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



   SYNTAX        TruthValue
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
         "This object specifies status of BFD packet reception from
          the remote system. Specifically, it is set to true(1) if the
          local system is actively receiving BFD packets from the
          remote system, and is set to false(0) if the local system
          has not received BFD packets recently (within the detection
          time) or if the local system is  attempting to tear down the
          BFD session."
   ::= { bfdSessEntry 7 }

bfdSessDiag OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  accessible-for-notify
         STATUS      current
         DESCRIPTION
            "A diagnostic code specifying the local system's reason
             for the last transition of the session from up(1) to some
             other state."
   ::= { bfdSessEntry 8 }

bfdSessOperMode OBJECT-TYPE
         SYNTAX   INTEGER { asyncModeWEchoFun(1),
                            asynchModeWOEchoFun(2),
                            demandModeWEchoFunction(3),
                            demandModeWOEchoFunction(4)
          }
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
            "This object specifies current operating mode that BFD
             session is operating in.

             A value of AsyncModeWEchoFun(1) ...
             A value of AsynchModeWOEchoFun(2) ...
             A value of DemandModeWEchoFunction(3) ...
             A value of DemandModeWOEchoFunction(4) ...
         "
         ::= { bfdSessEntry 9 }

bfdSessDemandModeDesiredFlag OBJECT-TYPE
   SYNTAX        TruthValue
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
           "This object indicates that the local system's
            desire to use Demand mode. Specifically, it is set
            to true(1) if the local system wishes to use



BFD Working Group            Expires December 2004           [Page 9]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



            Demand mode or false(0) if not"
   DEFVAL { false }
   ::= { bfdSessEntry 10 }

bfdSessEchoFuncModeDesiredFlag OBJECT-TYPE
   SYNTAX        TruthValue
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
           "This object indicates that the local system's
            desire to use Echo mode. Specifically, it is set
            to true(1) if the local system wishes to use
            Echo mode or false(0) if not"
   DEFVAL { false }
   ::= { bfdSessEntry 11 }

bfdSessEchoFuncFlag OBJECT-TYPE
   SYNTAX        INTEGER { enabled(1), disabled(2) }
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
            "The administrative status of Echo function for this BFD
             session.  The value 'enabled' denotes that the Echo
             function is enabled for this session; 'disabled' disables
             Echo function for this session."
        ::= { bfdSessEntry 12 }

bfdSessAddrType  OBJECT-TYPE
   SYNTAX        InetAddressType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
        "This object specifies IP address of the interface associated with
         this BFD session.

         Only values unknown(0), ipv4(1) or ipv6(2)
         have to be supported.

         A value of unknown(0) is allowed only when
         the outgoing interface is of type point-to-point, or
         when the BFD session is not associated with a specific
         interface.

         If any other unsupported values are attempted in a set
         operation, the agent MUST return an inconsistentValue
         error.
        "
        ::= { bfdSessEntry 13 }

bfdSessAddr OBJECT-TYPE



BFD Working Group           Expires December 2004           [Page 10]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



   SYNTAX        InetAddress
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
        "This object specifies IP address of the interface associated with
         this BFD session. It can also be used to enabled BFD on a specific
         interface. The value is set to zero when BFD session is not
         associated with a specific interface. "
        ::= { bfdSessEntry 14 }

bfdSessDesiredMinTxInterval OBJECT-TYPE
   SYNTAX        BfdInterval
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
         "This object specifies the minimum interval, in
          microseconds, that the local system would like to use when
          transmitting BFD Control packets."
   ::= { bfdSessEntry 15 }

bfdSessDesiredMinRxInterval OBJECT-TYPE
   SYNTAX        BfdInterval
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
         "This object specifies the minimum interval, in
          microseconds, between received  BFD Control packets the
          local system is capable of supporting."
   ::= { bfdSessEntry 16 }

bfdSessDesiredMinEchoRxInterval OBJECT-TYPE
   SYNTAX        BfdInterval
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
         "This object specifies the minimum interval, in
          microseconds, between received BFD Echo packets that this
          system is capable of supporting."
   ::= { bfdSessEntry 17 }

bfdSessDetectMult OBJECT-TYPE
   SYNTAX        BfdInterval
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
         "This object specifies the Detect time multiplier."
   ::= { bfdSessEntry 18 }

bfdSessStorType  OBJECT-TYPE
   SYNTAX        StorageType



BFD Working Group           Expires December 2004           [Page 11]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable indicates the storage type for this
        object. Conceptual rows having the value
        'permanent' need not allow write-access to any
        columnar objects in the row."
   ::= { bfdSessEntry 19 }

bfdSessRowStatus OBJECT-TYPE
   SYNTAX        RowStatus
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
         "This variable is used to create, modify, and/or
          delete a row in this table. When a row in this
          table has a row in the active(1) state, no
          objects in this row can be modified except the
          bfdSessRowStatus and bfdSessStorageType."
   ::= { bfdSessEntry 20 }


-- BFD Session Performance Table

bfdSessPerfTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF BfdSessPerfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies BFD Session performance counters."
   ::= { bfdObjects 3 }

bfdSessPerfEntry OBJECT-TYPE
   SYNTAX        BfdSessPerfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table is created by a BFD-enabled node for
        every BFD Session. bfdCounterDiscontinuityTime is used to
        indicate potential discontinuity for all counter objects
        in this table."
   AUGMENTS    { bfdSessEntry }
   ::= { bfdSessPerfTable 1 }

BfdSessPerfEntry ::= SEQUENCE {
  bfdSessPerfPktIn               Counter32,
  bfdSessPerfPktOut              Counter32,
  bfdSessPerfBadDiscrim          Counter32,
  bfdSessPerfLastSessDownTime    TimeStamp,
  bfdSessPerfLastCommLostDiag    BfdDiag,



BFD Working Group           Expires December 2004           [Page 12]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



  bfdSessPerfSessDownCount       Counter32,
  bfdSessPerfDiscTime            TimeStamp,

  -- High Capacity Counters
  bfdSessPerfPktInHC             Counter64,
  bfdSessPerfPktOutHC            Counter64,
  bfdSessPerfBadDiscrimHC        Counter64

}

-- Ed Note: should we add per-diag code counts here,

bfdSessPerfPktIn OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of BFD messages received for this BFD session."
    ::= { bfdSessPerfEntry 1 }

bfdSessPerfPktOut OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of BFD messages sent for this BFD session."
    ::= { bfdSessPerfEntry 2 }

bfdSessPerfBadDiscrim  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of BFD messages received with a
          bad local Discriminator value for this BFD session."
    ::= { bfdSessPerfEntry 3 }

bfdSessPerfLastSessDownTime OBJECT-TYPE
    SYNTAX       TimeStamp
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The value of sysUpTime on the most recent occasion at which
         the last time communication was lost with the neighbor. If
         no such down event exist this object contains a zero value."
    ::= { bfdSessPerfEntry 4 }

bfdSessPerfLastCommLostDiag  OBJECT-TYPE
    SYNTAX       BfdDiag
    MAX-ACCESS   read-only



BFD Working Group           Expires December 2004           [Page 13]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



    STATUS       current
    DESCRIPTION
        "The BFD diag code for the last time communication was lost
         with the neighbor. If no such down event exist this object
         contains a zero value."
    ::= { bfdSessPerfEntry 5 }

bfdSessPerfSessDownCount OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of times this session has gone into the down
         state since the router last rebooted."
    ::= { bfdSessPerfEntry 6 }

bfdSessPerfDiscTime OBJECT-TYPE
    SYNTAX       TimeStamp
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The value of sysUpTime on the most recent occasion at which any
         one or more of the session counters suffered a discontinuity.
         The relevant counters are the specific instances associated
         with this BFD sesion of any Counter32 object contained in the
         BfdSessPerfTable. If no such discontinuities have occurred
         since the last re-initialization of the local management subsystem,
         then this object contains a zero value."
    ::= { bfdSessPerfEntry 7 }

bfdSessPerfPktInHC OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "This value represents the total number of
         total number of BFD messages received for this
         BFD session. It MUST be equal to the
        least significant 32 bits of bfdSessPerfPktIn
        if bfdSessPerfPktInHC is supported according to
        the rules spelled out in RFC2863."
    ::= { bfdSessPerfEntry 8 }

bfdSessPerfPktOutHC OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "This value represents the total number of
         total number of BFD messages transmitted for this



BFD Working Group           Expires December 2004           [Page 14]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



         BFD session. It MUST be equal to the
        least significant 32 bits of bfdSessPerfPktIn
        if bfdSessPerfPktOutHC is supported according to
        the rules spelled out in RFC2863."
    ::= { bfdSessPerfEntry 9 }

bfdSessPerfBadDiscrimHC OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "This value represents the total number of
         total number of BFD messages received with a
         bad local Discriminator value for this BFD session.
         It MUST be equal to the least significant 32 bits of
         bfdSessPerfBadDiscrimHC if bfdSessPerfBadDiscrimHC
         is supported according to the rules spelled out
         in RFC2863."
    ::= { bfdSessPerfEntry 10 }


-- BFD Sess Mapping Table

     bfdSessMapTable OBJECT-TYPE
         SYNTAX   SEQUENCE OF BfdSessMapEntry
         MAX-ACCESS   not-accessible
         STATUS   current
         DESCRIPTION
            "The BFD Session Map Table maps the complex
             indexing of the BFD sessions to the flat
             BFDIndex used in the BfdSessionTable.

             Implementors need to be aware that if the value of
             the bfdSessAddr (an OID) has more
             that 111 sub-identifiers, then OIDs of column
             instances in this table will have more than 128
             sub-identifiers and cannot be accessed using SNMPv1,
             SNMPv2c, or SNMPv3.
            "
         REFERENCE
            "BFD Version 0 (draft-katz-ward-bfd-04.txt)"
         ::= { bfdObjects 4 }

     bfdSessMapEntry OBJECT-TYPE
         SYNTAX   BfdSessMapEntry
         MAX-ACCESS   not-accessible
         STATUS   current
         DESCRIPTION
            "The BFD Session Entry describes BFD session
             that is mapped to this index.



BFD Working Group           Expires December 2004           [Page 15]


Internet Draft               BFD-DRAFT-00-MIB               June 2004




             Implementors need to be aware that if the value of
             the bfdSessAddr has more that 111 octets, then OIDs of
             column instances in this table will have more than 128
             sub-identifiers and cannot be accessed using SNMPv1,
             SNMPv2c, or SNMPv3"

         INDEX { bfdSessApplicationId,
                 bfdSessDiscriminator,
                 bfdSessAddrType,
                 bfdSessAddr
          }
         ::= { bfdSessMapTable 1 }

     BfdSessMapEntry ::= SEQUENCE {
       bfdSessMapBfdIndex            BfdSessIndexTC
     }

bfdSessMapBfdIndex OBJECT-TYPE
   SYNTAX        BfdSessIndexTC
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object specifies the BfdIndex refered to by
        the indexes of this row. In essence, a mapping is
        provided between these indexes and the BfdSessTable."
   ::= { bfdSessMapEntry 1 }

-- Notification Configuration

bfdSessNotificationsEnable OBJECT-TYPE
   SYNTAX        TruthValue
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION
       "If this object is set to true(1), then it enables
        the emission of bfdSessUp and bfdSessDown
        notifications; otherwise these notifications are not
        emitted."
   REFERENCE
       "See also RFC3413 for explanation that
        notifications are under the ultimate control of the
        MIB modules in this document."
   DEFVAL { false }
   ::= { bfdScalarObjects 4 }

bfdSessUp NOTIFICATION-TYPE
   OBJECTS     { bfdSessDiag, -- low range value
                 bfdSessDiag  -- high range value
   }



BFD Working Group           Expires December 2004           [Page 16]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



   STATUS      current
   DESCRIPTION
       "This notification is generated when the
        bfdSessState object for one or more contiguous
        entries in bfdSessTable are about to enter the up(2)
        state from some other state. The included values of
        bfdSessDiag MUST both be set equal to this
        new state (i.e: up(1)).  The two instances of
        bfdSessDiag in this notification indicate the range
        of indexes that are affected.  Note that all the indexes
        of the two ends of the range can be derived from the
        instance identifiers of these two objects.  For
        cases where a contiguous range of sessions
        have transitioned into the up(1) state at roughly
        the same time, the device SHOULD issue a single
        notification for each range of contiguous indexes in
        an effort to minimize the emission of a large number
        of notifications.  If a notification has to be
        issued for just a single bfdSessEntry, then
        the instance identifier (and values) of the two
        bfdSessDiag objects MUST be the identical."
   ::= { bfdNotifications 1 }

bfdSessDown NOTIFICATION-TYPE
   OBJECTS     { bfdSessDiag, -- low range value
                 bfdSessDiag  -- high range value
   }
   STATUS      current
   DESCRIPTION
       "This notification is generated when the
        bfdSessState object for one or more contiguous
        entries in bfdSessTable are about to enter the down(4)
        or adminDown(5) states from some other state. The included
        values of bfdSessDiag MUST both be set equal to this
        new state (i.e: down(4) or adminDown(5)).  The two instances
        of bfdSessDiag in this notification indicate the range
        of indexes that are affected.  Note that all the indexes
        of the two ends of the range can be derived from the
        instance identifiers of these two objects.  For
        cases where a contiguous range of sessions
        have transitioned into the down(4) or adminDown(5) states
        at roughly the same time, the device SHOULD issue a single
        notification for each range of contiguous indexes in
        an effort to minimize the emission of a large number
        of notifications.  If a notification has to be
        issued for just a single bfdSessEntry, then
        the instance identifier (and values) of the two
        bfdSessDiag objects MUST be the identical."
   ::= { bfdNotifications 2 }




BFD Working Group           Expires December 2004           [Page 17]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



-- Module compliance.

bfdGroups
   OBJECT IDENTIFIER ::= { bfdConformance 1 }

bfdCompliances
   OBJECT IDENTIFIER ::= { bfdConformance 2 }

-- Compliance requirement for fully compliant implementations.

bfdModuleFullCompliance MODULE-COMPLIANCE
   STATUS       current
   DESCRIPTION "Compliance statement for agents that provide full
                support for BFD-MIB. Such devices can
                then be monitored and also be configured using
                this MIB module."

   MODULE -- This module.
   MANDATORY-GROUPS {
         bfdSessionGroup,
         bfdSessionPerfGroup,
         bfdSessionPerfHCGroup,
         bfdNotificationGroup
   }

   GROUP        bfdSessionPerfHCGroup
   DESCRIPTION "This group is mandatory for those bfdPerfTable entries
                for which any of the objects bfdSessPerfPktInHC,
                bfdSessPerfPktOutHC, or bfdSessPerfBadDiscrimHC
                wraps around too quickly based on the criteria specified in
                RFC 2863 for high-capacity counters."

   GROUP        bfdNotificationGroup
   DESCRIPTION "This group is only mandatory for those implementations
                which can efficiently implement the notifications
                contained in this group."

   OBJECT       bfdSessAddrType
   SYNTAX       InetAddressType { unknown(0), ipv4(1), ipv6(2) }
   DESCRIPTION "Only unknown(0), ipv4(1) and ipv6(2) support
                is required."

   OBJECT       bfdSessAddr
   SYNTAX       InetAddress (SIZE(0|4|16))
   DESCRIPTION "An implementation is only required to support
                unknown(0), ipv4(1) and ipv6(2) sizes."

   ::= { bfdCompliances 1 }

-- Read-Only compliance TBD...



BFD Working Group           Expires December 2004           [Page 18]


Internet Draft               BFD-DRAFT-00-MIB               June 2004





-- Units of conformance.

bfdSessionGroup OBJECT-GROUP
   OBJECTS {
             bfdSessNotificationsEnable,
             bfdAdminStatus,
             bfdOperStatus,
             bfdVersionNumber,
             bfdSessApplicationId,
             bfdSessDiscriminator,
             bfdSessAddrType,
             bfdSessAddr,
             bfdSessLocalDiscr,
             bfdSessRemoteDiscr,
             bfdSessState,
             bfdSessRemoteHeardFlag,
             bfdSessDiag,
             bfdSessOperMode,
             bfdSessDemandModeDesiredFlag,
             bfdSessEchoFuncFlag,
             bfdSessEchoFuncModeDesiredFlag,
             bfdSessDesiredMinTxInterval,
             bfdSessDesiredMinRxInterval,
             bfdSessDesiredMinEchoRxInterval,
             bfdSessDetectMult,
             bfdSessStorType,
             bfdSessRowStatus,
             bfdSessMapBfdIndex
   }
   STATUS  current
   DESCRIPTION
          "Collection of objects needed for BFD sessions."
   ::= { bfdGroups 1 }


bfdSessionPerfGroup OBJECT-GROUP
   OBJECTS {
             bfdSessPerfPktIn,
             bfdSessPerfPktOut,
             bfdSessPerfBadDiscrim,
             bfdSessPerfLastSessDownTime,
             bfdSessPerfLastCommLostDiag,
             bfdSessPerfSessDownCount,
             bfdSessPerfDiscTime
   }
   STATUS  current
   DESCRIPTION
          "Collection of objects needed to monitor the



BFD Working Group           Expires December 2004           [Page 19]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



           performance of BFD sessions."
   ::= { bfdGroups 2 }

bfdSessionPerfHCGroup OBJECT-GROUP
   OBJECTS {
            bfdSessPerfPktInHC,
            bfdSessPerfPktOutHC,
            bfdSessPerfBadDiscrimHC
   }
   STATUS  current
   DESCRIPTION
          "Collection of objects needed to monitor the
           performance of BFD sessions for which the
           values of bfdSessPerfPktIn,
           bfdSessPerfPktOut, or bfdSessPerfBadDiscrim
           wrap around too quickly."
   ::= { bfdGroups 3 }

bfdNotificationGroup NOTIFICATION-GROUP
   NOTIFICATIONS {
             bfdSessUp,
             bfdSessDown
   }
   STATUS  current
   DESCRIPTION
          "Set of notifications implemented in this
           module."
   ::= { bfdGroups 4 }




END

7. Security Considerations

   There are a number of management objects defined in this MIB
   module with a MAX-ACCESS clause of read-write and/or read-create.
   Such objects may be considered sensitive or vulnerable in some
   network environments. It is thus important to control even GET
   and/or NOTIFY access to these objects and possibly to even encrypt
   the values of these objects when sending them over the network via
   SNMP.

   Some of the readable objects in this MIB module (i.e., objects
   with a MAX-ACCESS other than not-accessible) may be considered
   sensitive or vulnerable in some network environments.  It is thus
   important to control even GET and/or NOTIFY access to these objects
   and possibly to even encrypt the values of these objects when
   sending them over the network via SNMP.



BFD Working Group           Expires December 2004           [Page 20]


Internet Draft               BFD-DRAFT-00-MIB               June 2004




   SNMP versions prior to SNMPv3 did not include adequate security.
   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 these MIB modules.

   It is RECOMMENDED that implementers consider the security
   features as provided by the SNMPv3 framework "see [RFC3410], section
   8", including full support for the SNMPv3 cryptographic mechanisms
   "for authentication and privacy".

   Further, deployment of SNMP versions prior to SNMPv3 is NOT
   RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to
   enable cryptographic security.  It is then a customer/operator
   responsibility to ensure that the SNMP entity giving access to an
   instance of this MIB module, 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.

8. Acknowledgements

   We would like to thank David Ward for his comments and suggestions.

9. References

9.1 Normative References

   [BFD]       Katz, D., and Ward, D., "Bidirectional Forwarding Detection",
               draft-katz-ward-bfd-02.txt (work in progress).

   [BFDSHARED] "Bidirectional Forwarding Detection over Shared
                 Interfaces", work in progress.

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

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

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

   [RFC2863]    McCloghrie, K., Kastenholz, F., "The Interfaces Group
                MIB", RFC 2863, June 2000.





BFD Working Group           Expires December 2004           [Page 21]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



9.2 Informative References

   [RFC3410]   Case, J., Mundy, R., Partain, D. and B. Stewart,
               "Introduction and Applicability Statements for Internet-Standard
               Management Framework", RFC 3410,December 2002.

   [RFC3413]    Levi, D., Meyer, P., Stewart, B., "Simple Network
                Management Protocol (SNMP) Applications", RFC 3413, December 2002.

10. Author's Addresses

   Thomas D. Nadeau                Zafar Ali
   Cisco Systems, Inc.             Cisco Systems Inc.
   300 Beaver Brook Road           100 South Main St. #200
   Boxborough, MA 01719               Ann Arbor, MI 48104, USA.
   Phone: +1-978-936-1470          Phone: +1-734-276-2459
   Email: tnadeau@cisco.com        Email: zali@cisco.com

16.   Full Copyright Statement

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

17.  Intellectual Property Notice

   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



BFD Working Group           Expires December 2004           [Page 22]


Internet Draft               BFD-DRAFT-00-MIB               June 2004



   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
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in BCP-11 [RFC2028].
   Copies of claims of rights made available for publication and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementors or users of this
   specification can be obtained from the IETF Secretariat.
   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to practice
   this standard.  Please address the information to the IETF Executive
   Director.






































BFD Working Group           Expires December 2004           [Page 23]