-- ============================================================================
-- Copyright (c) 2010-2014 Hewlett-Packard Development Company, L.P.
--
-- Description: The MIB is extracted from draft-ietf-bfd-base-04.txt.
-- This file defines a portion of the Management Information Base (MIB) for use
-- with network management protocols in the Internet community. It describes
-- managed objects to configure or monitor Bi-Directional Forwarding Detection
-- on devices supporting this feature.
-- Reference:
-- Version: V1.1
-- History:
-- V1.0  2006-05-15 created by huanglina and xuqigang
-- V1.1  2014-01-20 modified by wangxingying
-- ============================================================================
HPN-ICF-BFD-STD-MIB DEFINITIONS ::= BEGIN
IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    Unsigned32, Counter32, Counter64,
    NOTIFICATION-TYPE
        FROM SNMPv2-SMI                        -- [RFC2578]

    TEXTUAL-CONVENTION, TruthValue,
    TimeStamp
        FROM SNMPv2-TC

    InterfaceIndex
        FROM IF-MIB

    InetAddress, InetAddressType, InetPortNumber
        FROM INET-ADDRESS-MIB                 -- [RFC3291]

    hpnicfCommon
        FROM HPN-ICF-OID-MIB;

hpnicfBfdMIB MODULE-IDENTITY
    LAST-UPDATED "201401171200Z"  -- 17 Jan 2014 12:00:00 Beijing time
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "Bidirectional Forwarding Management Information Base."

    -- Revision history.
    REVISION "201401171200Z"  -- 17 Jan 2014 12:00:00 Beijing time
    DESCRIPTION
        "Modified for bfd trap."

    REVISION "200605161200Z"  -- 08 May 2006 12:00:00 Beijing time
    DESCRIPTION
         "The first version. "

::= { hpnicfCommon 72 }

-- Top level components of this MIB module.

hpnicfBfdNotifications OBJECT IDENTIFIER ::= { hpnicfBfdMIB 0 }
hpnicfBfdObjects       OBJECT IDENTIFIER ::= { hpnicfBfdMIB 1 }
hpnicfBfdConformance   OBJECT IDENTIFIER ::= { hpnicfBfdMIB 2 }
hpnicfBfdGlobalObjects OBJECT IDENTIFIER ::= { hpnicfBfdObjects 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
        "A time interval delay in microseconds, which is used by the BFD."
    SYNTAX        Unsigned32 (1..4294967295)

BfdDiag ::=       TEXTUAL-CONVENTION
    STATUS        current
    DESCRIPTION
        "The diagnostic code is used by the BFD specifying the local
         system's reason for the last session state change, and must
         be initialized to zero(No Diagnostic).

         The 'noDiagnostic' means the session keeps state up.
         The 'controlDetectionTimeExpired' indicates the reason the session
         enters state down from state up is that the control detection time
         expires.
         The 'echoFunctionFailed' indicates the reason the session
         enters state down from state up is that Echo Function fails.
         The 'neighborSignaledSessionDown' indicates the reason the session
         enters state down from state up is that neighbor signals session Down.
         The 'forwardingPlaneReset' indicates the reason the session
         enters state down from state up is that the Forwarding Plane resets.
         The 'pathDown' indicates the reason the session
         enters state down from state up is that the path state is down.
         The 'concatenatedPathDown' indicates the reason the session
         enters state down from state up is that the concatenated path state
         is down.
         The 'administrativelyDown' indicates the reason the session
         enters state down from state up is that the session is kept
         administratively down by entering the AdminDown state.
         The 'reverseConcatenatedPathDown' indicates the reason the session
         enters state down from state up is that reverse concatenated path
         state is down."

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

--  BFD General Variables

--  These variables apply globally to the Router's BFD Process.
hpnicfBfdVersionNumber OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "It indicates the BFD session's current version number."
    REFERENCE
        "BFD Version 1 (draft-ietf-bfd-base-04.txt)"
    DEFVAL { 1 }
    ::= { hpnicfBfdGlobalObjects 1 }

hpnicfBfdSysInitMode OBJECT-TYPE
    SYNTAX      INTEGER { active(1), passive(2)}
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A system may take either an active role or a passive role in
         session initialization. A system taking the active role must
         send BFD control packets for a particular session, regardless
         of whether it has received any BFD packets for that session.
         A system taking the passive role must not begin sending BFD
         packets for a particular session until it has received a BFD
         packet for that session, and thus has learned the remote system's
         discriminator value."
    DEFVAL { active }
    ::= { hpnicfBfdGlobalObjects 2 }

hpnicfBfdSessNotificationsEnable OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This variable enables the emission of hpnicfBfdSessStateUp
         hpnicfBfdSessStateDown and hpnicfBfdSessReachLimit notifications
         if this variable is set to true(1); otherwise these notifications
         are not emitted."
    DEFVAL { false }
    ::= { hpnicfBfdGlobalObjects 3 }

hpnicfBfdSessNumberLimit OBJECT-TYPE
    SYNTAX        Unsigned32 (1..4294967295)
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This variable is the active session limit of this device."
    ::= { hpnicfBfdGlobalObjects 4 }

--  BFD Interface Table
--  The BFD Interface Table defines BFD interface specific information.

hpnicfBfdIfTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfBfdIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This Table describes the BFD interface specific information."
    ::= { hpnicfBfdObjects 2 }

hpnicfBfdIfEntry OBJECT-TYPE
    SYNTAX      HpnicfBfdIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This Entry describes the BFD interface specific information."
    INDEX { hpnicfBfdIfIndex }
    ::= { hpnicfBfdIfTable 1 }

HpnicfBfdIfEntry ::= SEQUENCE {
        hpnicfBfdIfIndex                      InterfaceIndex,
        hpnicfBfdIfDesiredMinTxInterval       BfdInterval,
        hpnicfBfdIfDesiredMinRxInterval       BfdInterval,
        hpnicfBfdIfDetectMult                 Unsigned32,
        hpnicfBfdIfAuthType                   INTEGER
    }

hpnicfBfdIfIndex OBJECT-TYPE
    SYNTAX        InterfaceIndex
    MAX-ACCESS    accessible-for-notify
    STATUS        current
    DESCRIPTION
        "This variable contains an index that represents a
         unique BFD interface on this device."
    ::= { hpnicfBfdIfEntry 1 }

hpnicfBfdIfDesiredMinTxInterval OBJECT-TYPE
    SYNTAX        BfdInterval
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This variable defines the minimum interval, in
         microseconds, that the interface would like to use when
         transmitting BFD Control packets."
    ::= { hpnicfBfdIfEntry 2 }

hpnicfBfdIfDesiredMinRxInterval OBJECT-TYPE
    SYNTAX        BfdInterval
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This variable defines the minimum interval, in,
         microseconds, between received  BFD Control packets the
         local system is capable of supporting."
    ::= { hpnicfBfdIfEntry 3 }

hpnicfBfdIfDetectMult OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The desired detect time multiplier for BFD control packets.
         The negotiated control packet transmission interval, multiplied
         by this variable, will be the detection time for this session
         (as seen by the remote system.)  The variable must be a
         nonzero integer."
    ::= { hpnicfBfdIfEntry 4 }

hpnicfBfdIfAuthType OBJECT-TYPE
    SYNTAX        INTEGER {
                            none(1),
                            simple(2),
                            md5(3),
                            mmd5(4),
                            sha1(5),
                            msha1(6)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The Authentication Type used for this interface. This
         field is valid only when the Authentication Present bit is set.

         The 'none' indicates the session doesn't support
         authentication.
         The 'simple' indicates the session supports simple
         password authentication.
         The 'md5' indicates the session supports Keyed MD5
         authentication.
         The 'mmd5' indicates the session supports
         Meticulous Keyed MD5 authentication.
         The 'sha1' indicates the session supports Keyed SHA1
         authentication.
         The 'msha1' indicates the session supports
         Meticulous Keyed SHA1 authentication."
    DEFVAL { none }
    ::= { hpnicfBfdIfEntry 5 }

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

hpnicfBfdSessTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF HpnicfBfdSessEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This table describes the BFD sessions."
    REFERENCE
        "BFD Version 1 (draft-ietf-bfd-base-04.txt)"
    ::= { hpnicfBfdObjects 3 }

hpnicfBfdSessEntry OBJECT-TYPE
    SYNTAX        HpnicfBfdSessEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This Entry describes the BFD sessions."
    INDEX { hpnicfBfdSessIfIndex,
            hpnicfBfdSessIndex }
    ::= { hpnicfBfdSessTable 1 }

HpnicfBfdSessEntry ::= SEQUENCE {
        hpnicfBfdSessIfIndex                  InterfaceIndex,
        hpnicfBfdSessIndex                    BfdSessIndexTC,
        hpnicfBfdSessAppSupportId             BITS,
        hpnicfBfdSessLocalDiscr               Unsigned32,
        hpnicfBfdSessRemoteDiscr              Unsigned32,
        hpnicfBfdSessDstPort                  InetPortNumber,
        hpnicfBfdSessOperMode                 INTEGER,
        hpnicfBfdSessAddrType                 InetAddressType,
        hpnicfBfdSessLocalAddr                InetAddress,
        hpnicfBfdSessRemoteAddr               InetAddress,
        hpnicfBfdSessLocalDiag                BfdDiag,
        hpnicfBfdSessState                    INTEGER,
        hpnicfBfdSessControlPlanIndepFlag     TruthValue,
        hpnicfBfdSessAuthFlag                 TruthValue,
        hpnicfBfdSessDemandModeFlag           TruthValue
    }

hpnicfBfdSessIfIndex  OBJECT-TYPE
    SYNTAX        InterfaceIndex
    MAX-ACCESS    accessible-for-notify
    STATUS        current
    DESCRIPTION
        "This variable contains an interface's index under which the BFD
         session runs."
    ::= { hpnicfBfdSessEntry 1 }

hpnicfBfdSessIndex OBJECT-TYPE
    SYNTAX        BfdSessIndexTC
    MAX-ACCESS    accessible-for-notify
    STATUS        current
    DESCRIPTION
        "This variable contains an index which represents a
         unique BFD session on this device."
    ::= { hpnicfBfdSessEntry 2 }

hpnicfBfdSessAppSupportId OBJECT-TYPE
    SYNTAX        BITS {none(0), ospf(1), isis(2), bgp(3), mpls(4)}
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This variable contains an ID used to indicate
         a local application which owns or maintains this
         BFD session. Note, a BFD session can support several route
         protocols. This is a bit-map of possible conditions.
         The corresponding bit positions are:
         |0        |none        |
         |1        |ospf        |
         |2        |isis        |
         |3        |bgp         |
         |4        |mpls        |
        "
    ::= { hpnicfBfdSessEntry 3 }

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

hpnicfBfdSessRemoteDiscr OBJECT-TYPE
    SYNTAX        Unsigned32 (1..4294967295)
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This variable defines the session discriminator chosen
         by the remote system for this BFD session."
    ::= { hpnicfBfdSessEntry 5 }

hpnicfBfdSessDstPort OBJECT-TYPE
    SYNTAX        InetPortNumber
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The UDP Port for BFD. The default value is the
         well-known value for this port."
    REFERENCE
        "BFD Version 1 (draft-ietf-bfd-base-04.txt)"
    DEFVAL { 3784 }
    ::= { hpnicfBfdSessEntry 6 }

hpnicfBfdSessOperMode OBJECT-TYPE
    SYNTAX   INTEGER {
                         asynchModeWOEchoFun(1),
                         demandModeWOEchoFunction(2),
                         asyncModeWEchoFun(3),
                         demandModeWEchoFunction(4)

    }
    MAX-ACCESS   read-only
    STATUS   current
    DESCRIPTION
        "This variable defines current operating mode that BFD
         session is running in.

         The primary mode which the BFD session runs in is known as
         Asynchronous mode.  In this mode, the systems periodically
         send BFD Control packets to one another, and if a number of
         those packets in a row are not received by the other system,
         the session is declared to be down.

         The second mode is known as Demand mode.  In this mode, it is
         assumed that each system has an independent way of verifying
         that it has connectivity to the other system.  Once a BFD
         session is established, the systems stop sending BFD Control
         packets, except when either system feels the need to verify
         connectivity explicitly, in which case a short sequence of BFD
         Control packets is sent, and then the protocol quiesces.

         An adjunct to both modes is the Echo function.  When the Echo
         function is active, a stream of BFD Echo packets is transmitted
         in such a way as to have the other system loop them back through
         its forwarding path. If a number of packets of the echoed data
         stream are not received, the session is declared to be down.
         The Echo function may be used with either Asynchronous or
         Demand modes.

         The 'asynchModeWOEchoFun' indicates this BFD session operates in
         the Asynchronous mode, and doesn't support the Echo Function.

         The 'demandModeWOEchoFunction' indicates this BFD session operates in
         the Demand mode, and doesn't support the Echo Function.

         The 'asyncModeWEchoFun' indicates this BFD session operates in
         the Asynchronous mode, and also supports the Echo Function.

         The 'demandModeWEchoFunction' indicates this BFD session operates in
         the Demand mode, and also supports the Echo Function."
    DEFVAL { asynchModeWOEchoFun }
    ::= { hpnicfBfdSessEntry 7 }

hpnicfBfdSessAddrType  OBJECT-TYPE
    SYNTAX        InetAddressType
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object defines IP address type 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."
    ::= { hpnicfBfdSessEntry 8 }

hpnicfBfdSessLocalAddr OBJECT-TYPE
    SYNTAX        InetAddress
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This variable defines IP address of the local interface
         from which the BFD packets is transmitted.
         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."
    ::= { hpnicfBfdSessEntry 9 }

hpnicfBfdSessRemoteAddr OBJECT-TYPE
    SYNTAX        InetAddress
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This variable defines IP address of the remote interface
         from which the BFD packets is transmitted.
         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."
    ::= { hpnicfBfdSessEntry 10 }

hpnicfBfdSessLocalDiag OBJECT-TYPE
    SYNTAX        BfdDiag
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The BFD diagnostic code for the BFD session was down with the
         neighbor. If no such event happens this object contains a zero
         value."
    DEFVAL { noDiagnostic }
    ::= { hpnicfBfdSessEntry 11 }

hpnicfBfdSessState OBJECT-TYPE
    SYNTAX        INTEGER {
                           adminDown(0),
                           down(1),
                           init(2),
                           up(3)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The state of the running BFD session.

         There are three states through which a session normally
         proceeds, two for establishing a session (Init and Up)
         and one for tearing down a session (Down.)  This allows
         a three-way handshake for both session establishment and
         session teardown (assuring that both systems are aware of
         all session state changes.)  A fourth state (AdminDown)
         exists so that a session can be administratively put down
         indefinitely.

         The Down state means that the session is down (or has just been
         created.) A session remains in Down state until the remote
         system indicates that it agrees that the session is down by
         sending a BFD Control packet with the State field set to
         anything other than Up.  If that packet signals Down state,
         the session advances to Init state;  if that packet signals
         Init state, the session advances to Up state.

         Init state means that the remote system is 0communicating,
         and the local system desires to bring the session up, but
         the remote system does not yet realize it.  A session will
         remain in Init state until either a BFD Control Packet is
         received that is signaling Init or Up state (in which case
         the session advances to Up state) or until the detection time
         expires, meaning that communication with the remote system
         has been lost (in which case the session advances to Down
         state.)

         Up state means that the BFD session has successfully been
         established, and implies that connectivity between the systems
         is working.  The session will remain in the Up state until either
         connectivity fails, or the session is taken down administratively.
         If either the remote system signals Down state, or the detection
         time expires, the session advances to Down state.

         AdminDown state means that the session is being held
         administratively down.  This causes the remote system to enter
         Down state, and remain there until the local system exits
         AdminDown state."
    DEFVAL { down }
    ::= { hpnicfBfdSessEntry 12 }

hpnicfBfdSessControlPlanIndepFlag OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This variable indicates whether the local system
         can continue to work while the control plane is out
         of work. Specifically, it is set to true(1) if the
         local system is independent of the control plane. Otherwise,
         the value is set to false(0)"
    DEFVAL { true }
    ::= { hpnicfBfdSessEntry 13 }

hpnicfBfdSessAuthFlag OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This variable indicates that the local system wants
         to use Authentication. Specifically, it is set
         to true(1) if the local system wishes the session
         to be authenticated or false(0) if not."
    DEFVAL { false }
    ::= { hpnicfBfdSessEntry 14 }

hpnicfBfdSessDemandModeFlag OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This variable indicates that the local system wants
         to use Demand mode. Specifically, it is set
         to true(1) if the local system wishes to use
         Demand mode or false(0) if not"
    DEFVAL { false }
    ::= { hpnicfBfdSessEntry 15 }

-- BFD Session State Table

hpnicfBfdSessStatTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF HpnicfBfdSessStatEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The table defines BFD session state."
    ::= { hpnicfBfdObjects 4 }

hpnicfBfdSessStatEntry OBJECT-TYPE
    SYNTAX        HpnicfBfdSessStatEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "An entry in this table is created by a BFD-enabled node for
         every BFD Session. It defines BFD session statistics."
    AUGMENTS    { hpnicfBfdSessEntry }
    ::= { hpnicfBfdSessStatTable 1 }

HpnicfBfdSessStatEntry ::= SEQUENCE {
        hpnicfBfdSessStatPktInHC             Counter64,
        hpnicfBfdSessStatPktOutHC            Counter64,
        hpnicfBfdSessStatDownCount           Counter32,
        hpnicfBfdSessStatPktDiscard          Counter64,
        hpnicfBfdSessStatPktLost             Counter64
    }


hpnicfBfdSessStatPktInHC OBJECT-TYPE
    SYNTAX        Counter64
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The total number of BFD messages received by this BFD
         session."
    ::= { hpnicfBfdSessStatEntry 1 }

hpnicfBfdSessStatPktOutHC OBJECT-TYPE
    SYNTAX        Counter64
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The total number of BFD messages sent by this BFD session."
    ::= { hpnicfBfdSessStatEntry 2 }

hpnicfBfdSessStatDownCount 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."
    ::= { hpnicfBfdSessStatEntry 3 }

hpnicfBfdSessStatPktDiscard OBJECT-TYPE
    SYNTAX        Counter64
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The number of  packets the local system has discarded
         since the router last rebooted."
    ::= { hpnicfBfdSessStatEntry 4 }

hpnicfBfdSessStatPktLost OBJECT-TYPE
    SYNTAX        Counter64
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The number of packets the local system has failed to transmit
         since the router last rebooted."
    ::= { hpnicfBfdSessStatEntry 5 }


-- BFD Session Performance Table

hpnicfBfdSessPerfTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF HpnicfBfdSessPerfEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The table defines BFD session performance."
    ::= { hpnicfBfdObjects 5 }

hpnicfBfdSessPerfEntry OBJECT-TYPE
    SYNTAX        HpnicfBfdSessPerfEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "An entry in this table is created by a BFD-enabled node for
         every BFD session. It defines BFD Session performance."
    AUGMENTS    { hpnicfBfdSessEntry }
    ::= { hpnicfBfdSessPerfTable 1 }

HpnicfBfdSessPerfEntry ::= SEQUENCE {
        hpnicfBfdSessPerfCreatTime       TimeStamp,
        hpnicfBfdSessPerfLastUpTime      TimeStamp,
        hpnicfBfdSessPerfLastDownTime    TimeStamp
    }

hpnicfBfdSessPerfCreatTime OBJECT-TYPE
    SYNTAX        TimeStamp
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The value of sysUpTime when the session was created. If no such
         create event exists this object contains a zero value."
    ::= { hpnicfBfdSessPerfEntry 1 }

hpnicfBfdSessPerfLastUpTime OBJECT-TYPE
    SYNTAX        TimeStamp
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The value of sysUpTime when the last time communication was lost.
         If no such up event exists this variable contains a zero value."
    ::= { hpnicfBfdSessPerfEntry 2 }

hpnicfBfdSessPerfLastDownTime OBJECT-TYPE
    SYNTAX        TimeStamp
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The value of sysUpTime when the last time communication was lost
         with the neighbor. If no such event exist this variable contains
         a zero value."
    ::= { hpnicfBfdSessPerfEntry 3 }


-- Notification Configuration

hpnicfBfdSessStateChange NOTIFICATION-TYPE
    OBJECTS       { hpnicfBfdSessIfIndex,
                    hpnicfBfdSessIndex,
                    hpnicfBfdSessState
    }
    STATUS        current
    DESCRIPTION
        "A notification sent when a session changes
         state, entering state up or entering state down.
         The session will enter state up finishing three times handshakes
         , and will enter state down when the communication path is out
         of work.

         When the hpnicfBfdSessState's value is state up, the session enters
         state up, and the session enters state down when the
         hpnicfBfdSessState's value is state down.

         The hpnicfBfdSessIfIndex contains an interface's index under which
         the BFD session runs.

         The hpnicfBfdSessIndex contains an index which represents a
         unique BFD session on this device.

         The hpnicfBfdSessState is the state of the running BFD session.
         "
    ::= { hpnicfBfdNotifications 1 }

hpnicfBfdSessAuthFail NOTIFICATION-TYPE
    OBJECTS       { hpnicfBfdIfIndex
    }
    STATUS        current
    DESCRIPTION
        "A notification sent when receiving a session
         with an authentication fail.

         The hpnicfBfdIfIndex is an index which represents a unique BFD
         interface on this device.
         "
    ::= { hpnicfBfdNotifications 2 }

hpnicfBfdSessStateUp NOTIFICATION-TYPE
    OBJECTS       { hpnicfBfdSessIfIndex,
                    hpnicfBfdSessIndex,
                    hpnicfBfdSessState
    }
    STATUS        current
    DESCRIPTION
        "A notification sent when a session changes state to up.

         The session will enter state up finishing three times handshakes.

         The hpnicfBfdSessIfIndex contains an interface's index under which
         the BFD session runs.

         The hpnicfBfdSessIndex contains an index which represents a
         unique BFD session on this device.

         The hpnicfBfdSessState is the state of the running BFD session."
    ::= { hpnicfBfdNotifications 3 }

hpnicfBfdSessStateDown NOTIFICATION-TYPE
    OBJECTS       { hpnicfBfdSessIfIndex,
                    hpnicfBfdSessIndex,
                    hpnicfBfdSessState
    }
    STATUS        current
    DESCRIPTION
        "A notification sent when a session changes state to down.

         The session will enter state down when the communication path is out
         of work.

         The hpnicfBfdSessIfIndex contains an interface's index under which
         the BFD session runs.

         The hpnicfBfdSessIndex contains an index which represents a
         unique BFD session on this device.

         The hpnicfBfdSessState is the state of the running BFD session."
    ::= { hpnicfBfdNotifications 4 }

hpnicfBfdSessReachLimit NOTIFICATION-TYPE
    OBJECTS       { hpnicfBfdSessNumberLimit
    }
    STATUS        current
    DESCRIPTION
        "A notification would be sent when the number of active BFD sessions
         reached this device's upper limit and no more session could be
         activated.

         The hpnicfBfdSessNumberLimit is the active session limit of this device."
    ::= { hpnicfBfdNotifications 5 }

END
