-- Copyright (C) 2008-2014 Super Micro Computer Inc. All Rights Reserved

-- $Id: fsmpbfd.mib,v 1.7 2013/07/13 12:43:32 siva Exp $

-- BFD Proprietary MIB Definition  
-- This MIB contains tables used to configure a switch running 
-- BFD in addition to the standard BFD MIB.
 
    SUPERMICRO-BFD-MI-MIB DEFINITIONS ::= BEGIN 
 
    IMPORTS 
      MODULE-IDENTITY, OBJECT-TYPE, enterprises, Integer32, Unsigned32,
      Counter32, NOTIFICATION-TYPE
          FROM SNMPv2-SMI

      RowPointer, TruthValue, TEXTUAL-CONVENTION
          FROM SNMPv2-TC

      fsMIStdBfdContextName, fsMIStdBfdSessNegotiatedInterval, 
      fsMIStdBfdSessDesiredMinTxInterval, fsMIStdBfdGlobalConfigTableEntry, 
      fsMIStdBfdSessEntry, fsMIStdBfdSessReqMinRxInterval, 
      fsMIStdBfdSessDiscriminator, fsMIStdBfdSessRemoteDiscr, 
      fsMIStdBfdSessState
          FROM SUPERMICRO-BFD-STD-MI-MIB

      BfdSessOperModeTC, BfdIntervalTC, BfdMultiplierTC
          FROM BFD-TC-STD-MIB;

      fsMIBfd MODULE-IDENTITY 
      LAST-UPDATED "201209050000Z" 
      ORGANIZATION "Super Micro Computer Inc." 
      CONTACT-INFO "support@Supermicro.com" 
      DESCRIPTION 
          "This proprietary MIB for BFD is to provide a proactive 
           mechanism to detect faults using BFD in MPLS and MPLS-TP paths
           when Multiple Instances of the router is supported."
      REVISION "201209050000Z"
      DESCRIPTION 
          "This proprietary MIB for BFD is to provide a proactive 
           mechanism to detect faults using BFD in MPLS and MPLS-TP paths
           when Multiple Instances of the router is supported."

      ::=  { enterprises supermicro-computer-inc(10876) super-switch(101) basic(2) 55 }

-- ------------------------------------------------------------  
-- groups in the MIB  
-- ------------------------------------------------------------ 
 
      fsMIBfdGlobals            OBJECT IDENTIFIER ::= { fsMIBfd 1 } 
      fsMIBfdObjects            OBJECT IDENTIFIER ::= { fsMIBfd 2 } 
      fsMIBfdNotifications      OBJECT IDENTIFIER ::= { fsMIBfd 3 }
 
-- ------------------------------------------------------------
-- Textual Conventions 
-- ------------------------------------------------------------

    FsSessionMapTypeTC ::= TEXTUAL-CONVENTION
        STATUS     current
        DESCRIPTION
          "Used to indicate the type of MPLS or MPLS-TP path associated to 
           the session"
        SYNTAX INTEGER {
                 nonteipv4(1),       -- mapping into LDP IPv4
                 nonteipv6(2),       -- mapping into LDP IPv6
                 teipv4(3),          -- mapping into TE IPv4 Working LSP
                 teipv6(4),          -- mapping into TE IPv6
                 pw(5),              -- mapping into Pseudowires
                 mep(6),             -- mapping into MEPs in MPLS-TP
                 teipv4protection(7) -- mapping into TE IPv4 Protecting LSP
               }

-- ------------------------------------------------------------------ 
-- BFD Global Objects per context for System Config 
-- ------------------------------------------------------------------ 
    fsMIBfdSystemConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF FsMIBfdSystemConfigEntry

        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION 
            "This table contains all the system configurations of BFD 
             per virtual context of the router."
        ::= {  fsMIBfdGlobals 1 }

    fsMIBfdSystemConfigEntry OBJECT-TYPE
        SYNTAX      FsMIBfdSystemConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This represents per virtual context BFD  system parameters.
             An entry in this table is created when a virtual context 
             is created."
        AUGMENTS { fsMIStdBfdGlobalConfigTableEntry }
        ::= { fsMIBfdSystemConfigTable 1 }

    FsMIBfdSystemConfigEntry ::= SEQUENCE {
        fsMIBfdSystemControl INTEGER,
        fsMIBfdTraceLevel    Integer32,
        fsMIBfdTrapEnable    Integer32
    }

 
   fsMIBfdSystemControl OBJECT-TYPE 
        SYNTAX      INTEGER  { start(1), shutdown(2) } 
        MAX-ACCESS  read-write 
        STATUS      current 
        DESCRIPTION 
          "The administrative system control status of the BFD module.
           The value 'start' (1) indicates that the BFD feature should be
           started in the system and all resources required by 
           the BFD module should be allocated.
           The value 'shutdown' (2) indicates that the BFD feature should be 
           shutdown in the device and all allocated memory must be released."  
        DEFVAL { start }
    ::= { fsMIBfdSystemConfigEntry 1 }

    fsMIBfdTraceLevel OBJECT-TYPE 
        SYNTAX      Integer32          
        MAX-ACCESS  read-write 
        STATUS      current 
        DESCRIPTION 
          "This object is used to store the trace options that are enabled
           by the user. The bit positions to enable specific traces are as 
           shown below :
 
           Bit 0  - init-shut
           Bit 1  - mgmt
           Bit 2  - data
           Bit 3  - ctrl
           Bit 4  - pkt-dump
           Bit 5  - resource
           Bit 6  - all-fail
           Bit 7  - buf

           Bit 8  - sess-estb
           Bit 9  - sess-down
           Bit 10 - poll-seq
           Bit 11 - critical
           Bit 12 - redundancy
           Bit 13 - Offload
            
           A value of zero(0) indicates traces are disabled and a value 
           with all bits set to one indicates all traces are enabled.
           By default critical trace (Bit 11) is set."
        DEFVAL { '00000800'H }
    ::= { fsMIBfdSystemConfigEntry 2 } 

   
    fsMIBfdTrapEnable OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION    
          "This object is used to enable or disable specific traps in the 
           system. The bit positions to enable specific traps are as shown
           below:

           Bit 0  - enables the fsMIStdBfdSessUp/fsMIStdBfdSessDown 
                    notification
           Bit 1  - enables the fsMIBfdSessBtstrapFailTrap notificaton 
           Bit 2  - enables the fsMIBfdSessNegTxIntvlChange notification 
           Bit 3  - enables the fsMIBfdSessAdminCtrlErrTrap notification 
          
           A value of zero(0) indicates traps are disabled and a value with 
           all bits set to one indicates all traps are enabled. 
           By default no traps will be enabled.
           Note that bfdSessUp and bfdSessDown notifications
           can be set either using the object fsMIStdBfdSessNotificationsEnable
           or using this object and the same will be reflected in both the
           objects." 
       DEFVAL { 0 }
    ::= { fsMIBfdSystemConfigEntry 3 }

-- ------------------------------------------------------------------ 
-- BFD Global Objects per context for Session Config
-- ------------------------------------------------------------------ 
    fsMIBfdGblSessionConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF FsMIBfdGblSessionConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table contains all the Session configurations of BFD
             per virtual context of the router."
        ::= {  fsMIBfdGlobals 2 }

    fsMIBfdGblSessionConfigEntry OBJECT-TYPE
        SYNTAX      FsMIBfdGblSessionConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This represents per virtual context BFD  session parameters.
             An entry in this table is created when a virtual context
             is created."
        AUGMENTS { fsMIStdBfdGlobalConfigTableEntry }
        ::= { fsMIBfdGblSessionConfigTable 1 }

    FsMIBfdGblSessionConfigEntry ::= SEQUENCE {
       fsMIBfdGblSessOperMode             BfdSessOperModeTC,
       fsMIBfdGblDesiredMinTxIntvl        BfdIntervalTC,
       fsMIBfdGblReqMinRxIntvl            BfdIntervalTC,
       fsMIBfdGblDetectMult               BfdMultiplierTC,
       fsMIBfdGblSlowTxIntvl              Unsigned32
    }


    fsMIBfdGblSessOperMode OBJECT-TYPE
        SYNTAX     BfdSessOperModeTC
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
          "This object specifies the operating mode applicable to all BFD 
           sessions in the system. This value will serve as the default 
           operational mode for all BFD session entries during session entry
           creation, in the absence of a per-session operational mode being 
           configured for each session entry.Modification of this object will
           thereon not be reflected to the individual session enteries.
           (Modification of session oper mode for individual session enteries
           should be done using the object 'fsMIStdBfdSessOperMode' in the 
           session table.) The modified value of this object will be used 
           only for the session enteries created after modification.
           The default operational mode is 'asynchModeWOEchoFunction'."
        DEFVAL { asynchModeWOEchoFunction }
    ::= { fsMIBfdGblSessionConfigEntry 1 }
   
    fsMIBfdGblDesiredMinTxIntvl OBJECT-TYPE
        SYNTAX     BfdIntervalTC
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
          "This object specifies the minimum interval, in microseconds, that
           the local system would like to use when transmitting BFD Control 
           packets. This value will serve as the default desired transmit 
           interval for all BFD session entries during session entry creation,
           in the absence of a per-session desired transmit interval being 
           configured for each session entry. Modification of this object will
           thereon not be reflected to the individual session enteries.
           (Modification of the desired transmit interval for individual 
            session enteries should be done using the object
           'fsMIStdBfdSessDesiredMinTxInterval' in the session table.) 
           The modified value of this object will be used
           only for the session enteries created after modification.
           The default desired transmit interval is 1 second."
        DEFVAL { 1000000 }
    ::= { fsMIBfdGblSessionConfigEntry 2 }

    fsMIBfdGblReqMinRxIntvl  OBJECT-TYPE
        SYNTAX     BfdIntervalTC
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
          "This object specifies the minimum interval, in microseconds, 
           between received BFD Control packets the local system is capable 
           of supporting. This value will serve as the default receive
           interval for all BFD session entries during session entry creation,
           in the absence of a per-session required receive interval being 
           configured for each session entry. Modification of this object will
           thereon not be reflected to the individual session enteries.
           (Modification of the receive interval for individual 
            session enteries should be done using the object
           'fsMIStdBfdSessReqMinRxInterval' in the session table.) 
           The modified value of this object will be used
           only for the session enteries created after modification.
           The default required receive interval is 1 second."
        DEFVAL { 1000000 }
    ::= { fsMIBfdGblSessionConfigEntry 3 }

    fsMIBfdGblDetectMult  OBJECT-TYPE
        SYNTAX     BfdMultiplierTC
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
          "This object specifies the Detect time multiplier. This value will
           serve as the default detect time multiplier for all BFD session 
           entries during session entry creation , in the absence of a 
           per-session detect time multiplier being configured for each 
           session entry. Modification of this object will thereon not 
           be reflected to the individual session enteries. (Modification 
           of the detect time multiplier for individual session enteries 
           should be done using the object 'fsMIStdBfdSessDetectMult' in the
           session table.) The modified value of this object will be used
           only for the session enteries created after modification."
        DEFVAL { 3 }
    ::= { fsMIBfdGblSessionConfigEntry 4 }

    fsMIBfdGblSlowTxIntvl OBJECT-TYPE
        SYNTAX     Unsigned32 (1000000..4294967295)
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
          "This object specifies the interval, in microseconds, between
           BFD control packet transmission (bootstrapped or otherwise) during
           the BFD session establishment process until the session comes to
           the UP state at both end systems.
           After the session is in the UP state in both the local and remote
           system, the packets will be transmitted at an interval influenced
           by the session's negotiated transmit interval and the value in
           this object will not be used."
        DEFVAL { 1000000 }
    ::= { fsMIBfdGblSessionConfigEntry 5 }

-- ------------------------------------------------------------------ 
-- BFD Global Objects per context for statistics
-- ------------------------------------------------------------------ 

   fsMIBfdStatisticsTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF FsMIBfdStatisticsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table contains the statistics of BFD per virtual context 
             of the router."
        ::= {  fsMIBfdGlobals 3 }

   fsMIBfdStatisticsEntry OBJECT-TYPE
        SYNTAX      FsMIBfdStatisticsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This represents per virtual context BFD statistics.
             An entry in this table is created when a virtual context
             is created."
        AUGMENTS { fsMIStdBfdGlobalConfigTableEntry }
        ::= { fsMIBfdStatisticsTable 1 }

   FsMIBfdStatisticsEntry ::= SEQUENCE {
        fsMIBfdMemAllocFailure   Counter32,
        fsMIBfdInputQOverFlows   Counter32,
        fsMIBfdClrGblStats       TruthValue,
        fsMIBfdClrAllSessStats   TruthValue
     }

   fsMIBfdMemAllocFailure  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "This object gives the count of total memory allocation failures in 
          the BFD module"
      ::= { fsMIBfdStatisticsEntry 1 }

   fsMIBfdInputQOverFlows  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "This object gives the count of total input queue overflows for the
          BFD module"
      ::= {fsMIBfdStatisticsEntry 2}

    fsMIBfdClrGblStats   OBJECT-TYPE
        SYNTAX             TruthValue
        MAX-ACCESS         read-write
        STATUS             current
        DESCRIPTION     
           "This object is used to clear the global statistics of the BFD
           module.
           Setting this object to true will cause the statistics to be reset 
           and setting this object to false will have no effect. 
           A Get operation on this object will always return a value of false."
        DEFVAL { false }
    ::= { fsMIBfdStatisticsEntry 3 }

    fsMIBfdClrAllSessStats OBJECT-TYPE 
        SYNTAX      TruthValue
        MAX-ACCESS  read-write 
        STATUS      current 
        DESCRIPTION
          "This object is used to clear all the statistics and counters of all
           the BFD sessions currently running in the system. Setting this 
           object to true will cause the statistics to be reset and setting 
           this object to false will have no effect. 
           A Get operation on this object will always return a value of false."
        DEFVAL  { false }
    ::= { fsMIBfdStatisticsEntry 4 }

-- ------------------------------------------------------------------ 
-- BFD Objects per context for Session Config
-- ------------------------------------------------------------------ 

-- fsMIBfdSessionTable - fsMIStdBfdSessTable Augment

    fsMIBfdSessionTable   OBJECT-TYPE  
        SYNTAX              SEQUENCE OF FsMIBfdSessionEntry  
        MAX-ACCESS          not-accessible   
        STATUS              current  
        DESCRIPTION  
          "This table is an augment to the fsMIStdBfdSessTable for 
           configuring BFD sessions for MPLS or MPLS-TP paths."
    ::= { fsMIBfdObjects 1 } 

    fsMIBfdSessionEntry   OBJECT-TYPE  
        SYNTAX              FsMIBfdSessionEntry  
        MAX-ACCESS          not-accessible  
        STATUS              current  
        DESCRIPTION  
          "A row in this table augments a row in fsMIStdBfdSessTable"
        AUGMENTS    { fsMIStdBfdSessEntry }
    ::= { fsMIBfdSessionTable 1 }
 
    FsMIBfdSessionEntry ::= SEQUENCE {  
        fsMIBfdSessRole                INTEGER,
        fsMIBfdSessMode                INTEGER,
        fsMIBfdSessRemoteDiscr         Unsigned32,
        fsMIBfdSessEXPValue            Unsigned32,
        fsMIBfdSessTmrNegotiate        TruthValue,
        fsMIBfdSessOffld               TruthValue,
        fsMIBfdSessEncapType           INTEGER,
        fsMIBfdSessAdminCtrlReq        TruthValue,
        fsMIBfdSessAdminCtrlErrReason  INTEGER,
        fsMIBfdSessMapType             FsSessionMapTypeTC,
        fsMIBfdSessMapPointer          RowPointer,
        fsMIBfdSessCardNumber          Unsigned32,
        fsMIBfdSessSlotNumber          Unsigned32,
        fsMIBfdSessRegisteredClients   Unsigned32
    }  

    fsMIBfdSessRole  OBJECT-TYPE
        SYNTAX      INTEGER {
                      active(1),
                      passive(2)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
          "This object specifies whether the system is playing the
           active(1) role or the passive(2) role for this BFD session.
           BFD session will not come up if both the ends of a path are
           configured to be passive. In case of MPLS and MPLS-TP LSP,
           it is expected to configure the BFD session in the
           ingress of the LSP as Active. Even in the case of static
           provisioning of discriminators, it is recommended to
           configure the BFD session as Active at the ingress and
           as Passive at the egress. In the case of PW, BFD session
           at both the ends should be Active"
        REFERENCE
            "RFC 5880, Section 6.1"
        DEFVAL { active }
    ::= { fsMIBfdSessionEntry 1 }

    fsMIBfdSessMode  OBJECT-TYPE
        SYNTAX      INTEGER {
                      cc(1),
                      ccv(2)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
          "This object specifies whether the BFD session is running in
           Continuity Check(CC) or the Connectivity Verification(CV) mode.
           This object is  always cc(1) if the value of fsMIBfdSessMapType is 
           any value other than mep(6). 
           
           When the fsMIBfdSessMapType is mep(6) and indicates that this
           BFD session is for an MPLS-TP path, then this object can hold 
           either a CC(1) or a CCV(2) value."
        REFERENCE
            " draft-ietf-mpls-tp-cc-cv-00 "
        DEFVAL { cc }
    ::= { fsMIBfdSessionEntry 2}


    fsMIBfdSessRemoteDiscr OBJECT-TYPE
        SYNTAX     Unsigned32 (0 | 1..4294967295)
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
          "This object specifies the session discriminator that is to be used
           by the remote system for this BFD session. 
           This object is configurable for MPLS and MPLS-TP paths. 

           The value may be zero(0) if the remote discriminator is not yet
           known or if session is in the down or adminDown state.

           A Get operation on the this object will return the same value as
           the bfdSessRemoteDiscr object for each BFD session."
        REFERENCE
            "draft-ieft-mpls-tp-lsp-ping-bfd-procedures-00 Section 3"
    ::= { fsMIBfdSessionEntry 3 }

    fsMIBfdSessEXPValue  OBJECT-TYPE
        SYNTAX             Unsigned32(0..7)
        MAX-ACCESS         read-create
        STATUS             current
        DESCRIPTION
          "This object specifies the MPLS experimental field (traffic class
           field) value that should be sent in the MPLS header for the
           BFD control packets."
        DEFVAL { 0 }
    ::= { fsMIBfdSessionEntry 4 }

    fsMIBfdSessTmrNegotiate  OBJECT-TYPE
        SYNTAX             TruthValue
        MAX-ACCESS         read-create
        STATUS             current
        DESCRIPTION
          "This object specifies if timer negotiation is required for
           the BFD session. When set to false, timer negotiation is
           disabled and if the value of the received DesiredMinTxInterval
           is different from the locally configured RequiredMinRxInterval,
           or the received value of the Detect Multiplier field is
           different from the locally configured value, then a Period
           Mis-Configuration defect will be detected. When this object is
           set to true, support for Period Mis-Configuration defect is
           not provided."
        DEFVAL { true }
    ::= { fsMIBfdSessionEntry 5 }

    fsMIBfdSessOffld  OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
          "This object specifies if the BFD session needs to be
           offloaded onto a specific hardware chipset or an external
           software component or a seperate CPU/Core. When set to true
           the BFD session will be offloaded."
        DEFVAL { false }
    ::= { fsMIBfdSessionEntry 6 }

     fsMIBfdSessEncapType  OBJECT-TYPE
        SYNTAX           INTEGER {
                            mplsIp (1),
                            mplsAch (2),
                            mplsAchIp (3),
                            vccvNegotiated (4)
                         }
        MAX-ACCESS       read-create
        STATUS           current
        DESCRIPTION
          "This object specifies the encapsulation type of the
           BFD Control packets. In case of MPLS LSP/Tunnel, the
           encapsulation type should be set to mplsIp, which is the
           default value for MPLS LSP/Tunnel.Note that for an MPLS
           LSP/Tunnel,an IP return path, if present, will be used to
           send the BFD control packets, in case an MPLS LSP/Tunnel
           return path is not available.

           For MPLS-TP LSP/Tunnel any one of the following 
           types: mplsIp, mplsAch or mplsAchIp is applicable,
           mplsAch being the default. For MPLS or MPLS-TP PW, 
           the encapsulation type should be set to vccvNegotiated, 
           which is the default value for MPLS and MPLS-TP PW."
    ::= { fsMIBfdSessionEntry 7 }

    fsMIBfdSessAdminCtrlReq OBJECT-TYPE
        SYNTAX             TruthValue
        MAX-ACCESS         read-only
        STATUS             current
        DESCRIPTION
          "This object specifies if an administrator control or
           intervention is required for the session due to an
           error specified by fsMIBfdSessAdminCtrlErrReason. This object
           will display True when such an administrator control
           is required, for eg if a period mis-configuration
           defect is detected for a session, the same will be
           indicated by fsMIBfdSessAdminCtrlErrReason and this object will
           be set to true. The administrator may then take the necessary
           action eg in this case change the timer values to rectify the 
           defect."
    ::= { fsMIBfdSessionEntry 8 }

    fsMIBfdSessAdminCtrlErrReason  OBJECT-TYPE
        SYNTAX             INTEGER
                           {
                              none (0),
                              sessOffloadFailure (1),
                              periodMisConfigDefect (2)
                           }
        MAX-ACCESS         read-only
        STATUS             current
        DESCRIPTION
          "This object specifies the reason for an error in the
           BFD session. For instance, when offloading of a BFD session
           fails due to any reason, this object is set to the value
           sessOffloadFailure. Similarly if a period mis-configuration
           defect is detected, this object specifies the same and is set
           to periodMisConfigDefect(2). By default when there is no error
           value none(0) is used."
    ::= { fsMIBfdSessionEntry 9 }
 
    fsMIBfdSessMapType OBJECT-TYPE
        SYNTAX             FsSessionMapTypeTC
        MAX-ACCESS         read-create
        STATUS             current
        DESCRIPTION
          "This object indicates the type of path being monitored by this
           BFD session entry."
    ::= { fsMIBfdSessionEntry 10 }

    fsMIBfdSessMapPointer OBJECT-TYPE
        SYNTAX           RowPointer
        MAX-ACCESS       read-create
        STATUS           current
        DESCRIPTION
          "If fsMIBfdSessMapType is ldpipv4(1) or ldpipv6(2), then this object
           MUST contain zeroDotZero or point to an instance of the mplsXCEntry 
           indicating the LDP-based LSP associated with this BFD session.

           If fsMIBfdSessMapType is rsvpipv4(3) or rsvpipv6(4), then this 
           object MUST contain zeroDotZero or point to an instance of the 
           mplsTunnelEntry indicating the RSVP-based MPLS TE tunnel associated 
           with this BFD session.

           If fsMIBfdSessMapType is pw(5), then this object MUST contain 
           zeroDotZero or point to an instance of the pwEntry indicating the 
           MPLS Pseudowire associated with this BFD session.

           If fsMIBfdSessMapType is mep(6). then this object MUST contain 
           zeroDotZero or point to an instance identifying the MEP entity 
           configured for monitoring the MPLS-TP path associated with this BFD 
           session.

           If this object points to a conceptual row instance in a table 
           consistent with fsMIBfdSessMapType but this instance does not 
           currently exist then no valid path is associated with this session 
           entry.

           If this object contains zeroDotZero then no valid path is 
           associated with this BFD session entry till it is populated with 
           a valid pointer consistent with the value of fsMIBfdSessMapType 
           as explained above."
      ::= { fsMIBfdSessionEntry 11 }

    fsMIBfdSessCardNumber OBJECT-TYPE
        SYNTAX             Unsigned32
        MAX-ACCESS         read-create
        STATUS             current
        DESCRIPTION
          "This object specifies the card number to which the BFD session is
           offloaded."
    ::= { fsMIBfdSessionEntry 12 }

    fsMIBfdSessSlotNumber OBJECT-TYPE
        SYNTAX             Unsigned32
        MAX-ACCESS         read-create
        STATUS             current
        DESCRIPTION
          "This object specifies the slot number to which the BFD session 
           is offloaded."
    ::= { fsMIBfdSessionEntry 13 }

    fsMIBfdSessRegisteredClients OBJECT-TYPE
        SYNTAX             Unsigned32
        MAX-ACCESS         read-only
        STATUS             current
        DESCRIPTION
          "This object specifies the BFD clients who are all registered for the
           particular session. When each client register for the session, the 
	   bit corresponding to the Client ID will be set in this field.
	   For Example, if OSPF with client ID 1 registers for the session,then the 
	   first bit will be set in this field (i.e. 0x80 00 00 00)"
    ::= { fsMIBfdSessionEntry 14 }


-- ------------------------------------------------------------------ 
-- BFD  Objects per context for Session Performance
-- ------------------------------------------------------------------ 

-- fsMIBfdSessPerfTable - fsMIStdBfdSessEntry Augment

    fsMIBfdSessPerfTable     OBJECT-TYPE  
        SYNTAX              SEQUENCE OF FsMIBfdSessPerfEntry
        MAX-ACCESS          not-accessible  
        STATUS              current  
        DESCRIPTION  
          "This table is an augment to the fsMIStdBfdSessPerfTable"
    ::= { fsMIBfdObjects 2 }

    fsMIBfdSessPerfEntry OBJECT-TYPE
        SYNTAX     FsMIBfdSessPerfEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "A row in this table augments the fsMIStdBfdSessPerfTable"
        AUGMENTS    { fsMIStdBfdSessEntry }
    ::= { fsMIBfdSessPerfTable 1 }

    FsMIBfdSessPerfEntry ::= SEQUENCE {
        fsMIBfdSessPerfCCPktIn         Counter32,
        fsMIBfdSessPerfCCPktOut        Counter32,
        fsMIBfdSessPerfCVPktIn         Counter32,
        fsMIBfdSessPerfCVPktOut        Counter32,
        fsMIBfdSessMisDefCount         Counter32,
        fsMIBfdSessLocDefCount         Counter32,
        fsMIBfdSessRdiInCount          Counter32,
        fsMIBfdSessRdiOutCount         Counter32,
        fsMIBfdClearStats              TruthValue
    }    

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

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

    fsMIBfdSessPerfCVPktIn OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The total number of BFD CV control messages received for this
             BFD session."
    ::= { fsMIBfdSessPerfEntry 3 }

    fsMIBfdSessPerfCVPktOut OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The total number of BFD CV control messages sent for this BFD
             session."
    ::= { fsMIBfdSessPerfEntry 4 }

    fsMIBfdSessMisDefCount  OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     
           "This object gives a count of the misconnectivity defects
           detected for the BFD Session. For instance, this count will be 
           incremented when the received BFD control packet carries 
           an incorrect globally unique source MEP identifier. 
           This count is valid only for MPLS-TP paths. For MPLS paths 
           this count will show a value 0 and will not be incremented."
    ::= { fsMIBfdSessPerfEntry 5 }

    fsMIBfdSessLocDefCount  OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     
          "This object gives a count of the Loss of continuity defects 
           detected in MPLS and MPLS-TP paths."
    ::= { fsMIBfdSessPerfEntry 6 }

    fsMIBfdSessRdiInCount  OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     
           "This object gives a count of the Remote Defect Indications
           received by the BFD Session in MPLS-TP environment.
           It is valid only for bi-directional MPLS-TP paths. For MPLS
           paths this count will show a value 0 and will not be incremented."
    ::= { fsMIBfdSessPerfEntry 7 } 

    fsMIBfdSessRdiOutCount  OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     
           "This object gives a count of the Remote Defect Indications
           sent by the BFD Session in MPLS-TP environment.
           It is valid only for bi-directional MPLS-TP paths. For MPLS
           paths this count will show a value 0 and will not be incremented."
    ::= { fsMIBfdSessPerfEntry 8 } 

    fsMIBfdClearStats   OBJECT-TYPE
        SYNTAX          TruthValue
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION     
           "This object is used to clear all the statistic counters for this  
           BFD session.
           Setting this object to true will cause the statistics to be reset 
           and setting this object to false will have no effect. 
           A Get operation on this object will always return a value of false."
        DEFVAL { false }
    ::= { fsMIBfdSessPerfEntry 9 }

   
-- ------------------------------------------------------------------ 
-- BFD Notification Group 
-- ------------------------------------------------------------------ 
    fsMIBfdTraps OBJECT IDENTIFIER ::= { fsMIBfdNotifications 0 }

    
    fsMIBfdSessBtstrapFailTrap NOTIFICATION-TYPE
        OBJECTS {
          fsMIStdBfdContextName,
          fsMIStdBfdSessDiscriminator
        }
        STATUS      current
        DESCRIPTION
          "This notification is generated when the BFD session establishment 
           bootstrap fails due to a failure in the  LSP Ping bootstrap 
           request."
    ::= { fsMIBfdTraps 1 }
    
    fsMIBfdSessNegTxIntvlChange NOTIFICATION-TYPE
        OBJECTS {
          fsMIStdBfdContextName,
          fsMIStdBfdSessDiscriminator,
          fsMIStdBfdSessRemoteDiscr,
          fsMIStdBfdSessNegotiatedInterval
        }
        STATUS      current
        DESCRIPTION
          "This notification is generated when the negotiated transmit 
           interval changes due to a change in the local DesiredMinTxInterval 
           value or remote RequiredMinRxInterval."
    ::= { fsMIBfdTraps 2 }

    fsMIBfdSessAdminCtrlErrTrap NOTIFICATION-TYPE
        OBJECTS {
          fsMIStdBfdContextName,
          fsMIStdBfdSessDiscriminator,
          fsMIStdBfdSessState,
          fsMIBfdSessAdminCtrlErrReason
        }
        STATUS      current
        DESCRIPTION
          "This notification is generated in case of an error detected in
           the BFD sesion. For instance, when fsMIBfdSessTmrNegotiate is set
           to false and the value of the received Desired min TX interval is
           different from the locally configured reception period, or the
           received value of the Detect Multiplier is different from the
           locally configured one, a period misconfiguration defect will be
           detected and this trap will be raised.

           This notification is also generated when any failure occurs
           during offloading of the BFD session. This includes failure in
           transmission of packets in the Offload module when the same
           is indicated to the control plane by the Offload module."
    ::= { fsMIBfdTraps 3 }

    END 
