 --**MOD+***********************************************************************
 -- Module:   hpicfBfd.mib 
 --
 -- Copyright (C) 2000-2016 Hewlett Packard Enterprise Development LP
 -- All Rights Reserved.
 -- 
 -- The contents of this software are proprietary and confidential
 -- to the Hewlett Packard Enterprise Development LP.  No part of this
 -- program may be photocopied, reproduced, or translated into another
 -- programming language without prior written consent of the
 -- Hewlett Packard Enterprise Development LP.
 --
 -- Purpose:  Defining proprietary MIB objects for BFD.
 --
 --MOD-***********************************************************************/
--
-- hpicf bfd config Table
-- 

HP-ICF-BFD-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE,Integer32
            FROM SNMPv2-SMI                       -- [RFC2578]

        RowStatus, TruthValue
            FROM SNMPv2-TC                        -- [RFC2579]

        MODULE-COMPLIANCE, OBJECT-GROUP
            FROM SNMPv2-CONF                      -- [RFC2580]

        hpSwitch
            FROM HP-ICF-OID

        InterfaceIndex                   
            FROM IF-MIB

	 InetAddress, InetAddressType
            FROM INET-ADDRESS-MIB

        IANAbfdSessAuthenticationTypeTC,IANAbfdSessAuthenticationKeyTC
            FROM IANA-BFD-TC-STD-MIB


        BfdIntervalTC, BfdMultiplierTC
            FROM BFD-TC-STD-MIB

        bfdObjects,bfdSessEntry         
            FROM BFD-STD-MIB;


        hpicfBfd MODULE-IDENTITY
        LAST-UPDATED "201611281000Z" -- November 28, 2016
        ORGANIZATION "HP Networking"
        CONTACT-INFO "Hewlett-Packard Company
                      8000 Foothills Blvd. M/S 5557
                      Roseville, CA 95747-5557"
        DESCRIPTION  "This MIB module contains HP proprietary
                                 extensions to the OSPF-MIB module."

        REVISION     "201611281000Z"   -- November 28th, 2016
        DESCRIPTION  "Added Static Support on Application ID
                      to create BFD Sessions on Static Routes"

        REVISION     "201010281000Z"   -- February 2nd, 2015

        DESCRIPTION  "The MIB module for managing the BFD 
                               sessions"

        ::= { hpSwitch 120 }

        hpicfBfdObjects OBJECT IDENTIFIER ::= { hpicfBfd 1 }

        hpicfBfdConformance   OBJECT IDENTIFIER ::= { hpicfBfd 2 }

	hpicfBfdScalarObjects OBJECT IDENTIFIER ::= { hpicfBfdObjects 2 }
        
    hpicfBfdEchoSrcIpAddType OBJECT-TYPE
            SYNTAX     InetAddressType
            MAX-ACCESS read-write
            STATUS     current
            DESCRIPTION
                    "The type of IP address used as source address for BFD echo packet"		
            ::= { hpicfBfdScalarObjects 1 }
	
    hpicfBfdEchoSrcIpAdd OBJECT-TYPE
        SYNTAX     InetAddress
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "The IP address which is used as source address for BFD echo packet"		
        ::= { hpicfBfdScalarObjects 2 }    
    
    hpicfBfdSessConfigTable  OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpicfBfdSessConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A table of BFD session parameters "
        ::= { hpicfBfdObjects 1 }
    
    hpicfBfdSessConfigEntry OBJECT-TYPE
        SYNTAX      HpicfBfdSessConfigEntry
        MAX-ACCESS  not-accessible 
        STATUS      current
        DESCRIPTION
                "A set of objects used to configure BFD session parameters ."
        INDEX    { hpicfBfdSessConfigIfIndex }
        ::= { hpicfBfdSessConfigTable 1 }

    HpicfBfdSessConfigEntry ::= SEQUENCE {
        hpicfBfdSessConfigIfIndex                  InterfaceIndex,
        hpicfBfdSessConfigDesiredMinTxInterval     BfdIntervalTC,
        hpicfBfdSessConfigReqMinRxInterval         BfdIntervalTC,
        hpicfBfdSessConfigReqMinEchoRxInterval     BfdIntervalTC,
        hpicfBfdSessConfigDetectMult               BfdMultiplierTC,
        hpicfBfdSessConfigAuthPresFlag             TruthValue,
        hpicfBfdSessConfigAuthenticationType
                  IANAbfdSessAuthenticationTypeTC,
        hpicfBfdSessConfigAuthenticationKeyID      Integer32,
        hpicfBfdSessConfigAuthenticationKey  
                  IANAbfdSessAuthenticationKeyTC,
        hpicfBfdSessConfigAuthEncPwd              
                  IANAbfdSessAuthenticationKeyTC,                    
        hpicfBfdSessConfigRowStatus                RowStatus
    }

    hpicfBfdSessConfigIfIndex OBJECT-TYPE
        SYNTAX          InterfaceIndex
        MAX-ACCESS      not-accessible 
        STATUS          current
        DESCRIPTION     "The VLAN ifIndex value that uniquely
                 identifies a row in the hpicf bfd session Table 
                 and corresponds to the VLAN on which the BFD
                 session exist."
        ::= { hpicfBfdSessConfigEntry 1 }

    hpicfBfdSessConfigDesiredMinTxInterval 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. The value of
                zero(0) is reserved in this case, and should not be
                used."
        REFERENCE
	        "Section 4.1 from Katz, D. and D. Ward, Bidirectional
	        Forwarding Detection (BFD), RFC 5880, June 2012."
        ::= { hpicfBfdSessConfigEntry 2 }

    hpicfBfdSessConfigReqMinRxInterval OBJECT-TYPE
        SYNTAX     BfdIntervalTC
        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. The value of
                 zero(0) can be specified when the transmitting system
                 does not want the remote system to send any periodic BFD
                 control packets."
        REFERENCE
                "Section 4.1 from Katz, D. and D. Ward, Bidirectional
                 Forwarding Detection (BFD), RFC 5880, June 2012."
        ::= { hpicfBfdSessConfigEntry 3 }

    hpicfBfdSessConfigReqMinEchoRxInterval OBJECT-TYPE
        SYNTAX     BfdIntervalTC 
        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. Value must be zero(0) if
                 this is a multihop BFD session."
        ::= { hpicfBfdSessConfigEntry 4 }

    hpicfBfdSessConfigDetectMult OBJECT-TYPE
        SYNTAX     BfdMultiplierTC 
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                 "This object specifies the Detect time multiplier."
        ::= { hpicfBfdSessConfigEntry 5 }

    hpicfBfdSessConfigAuthPresFlag OBJECT-TYPE
        SYNTAX     TruthValue
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "This object indicates that the local system's
                 desire to use Authentication. Specifically, it is set
                 to true(1) if the local system wishes the session
                 to be authenticated or false(2) if not."
        REFERENCE
                "Sections 4.2 - 4.4 from Katz, D. and D. Ward,
                 Bidirectional Forwarding Detection (BFD), RFC 5880,
                 June 2012."
        DEFVAL { false }
        ::= { hpicfBfdSessConfigEntry 6 }

    hpicfBfdSessConfigAuthenticationType OBJECT-TYPE
        SYNTAX     IANAbfdSessAuthenticationTypeTC
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "The Authentication Type used for this BFD session.
                This field is valid only when the Authentication
                Present bit is set. Max-access to this object as well as
                other authentication related objects are set to
                read-create in order to support management of a single
                key ID at a time, key rotation is not handled. Key update
                in practice must be done by atomic update using a set
                containing all affected objects in the same varBindList
                or otherwise risk the session dropping."
        REFERENCE
                "Sections 4.2 - 4.4 from Katz, D. and D. Ward,
                Bidirectional Forwarding Detection (BFD), RFC 5880,
                June 2012."
        DEFVAL { -1 }
        ::= { hpicfBfdSessConfigEntry 7 }

    hpicfBfdSessConfigAuthenticationKeyID OBJECT-TYPE
        SYNTAX     Integer32 (-1 | 0..255)
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "The authentication key ID in use for this session.  This
                object permits multiple keys to be active simultaneously.
                The value -1 indicates that no Authentication Key ID will
                be present in the optional BFD Authentication Section."
        REFERENCE
                "Sections 4.2 - 4.4 from Katz, D. and D. Ward,
                Bidirectional Forwarding Detection (BFD), RFC 5880,
                June 2012."
        DEFVAL { -1 }
        ::= { hpicfBfdSessConfigEntry 8}

    hpicfBfdSessConfigAuthenticationKey OBJECT-TYPE
        SYNTAX     IANAbfdSessAuthenticationKeyTC
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "The authentication key.  When the
                hpicfBfdSessConfigAuthenticationType is simplePassword(1) and when the
                encryption is enabled on the switch, the value of this object is the
                encrypted password present in the BFD packets.
                
                When the hpicfBfdSessConfigAuthenticationType is one of the keyed
                authentication types, this value is used in the
                computation of the key present in the BFD authentication
                packet."
        REFERENCE
                "Sections 4.2 - 4.4 from Katz, D. and D. Ward,
                Bidirectional Forwarding Detection (BFD), RFC 5880,
                June 2012."
        ::= { hpicfBfdSessConfigEntry 9}

    hpicfBfdSessConfigAuthEncPwd    OBJECT-TYPE
        SYNTAX     IANAbfdSessAuthenticationKeyTC
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "The authentication key.  When the
                bfdSessAuthenticationType is simplePassword(1), the value
                of this object is the password present in the BFD packets.
                
                When the bfdSessAuthenticationType is one of the keyed
                authentication types, this value is used in the
                computation of the key present in the BFD authentication
                packet."
        REFERENCE
               "Sections 4.2 - 4.4 from Katz, D. and D. Ward,
               Bidirectional Forwarding Detection (BFD), RFC 5880,
               June 2012."
        ::= { hpicfBfdSessConfigEntry 10}
    
    
    hpicfBfdSessConfigRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The status of this BFD session config entry."
        ::= { hpicfBfdSessConfigEntry 11 }

-- **********************************************************************
-- Augments to BFD Session Table
-- **********************************************************************

    hpicfBfdSessTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpicfBfdSessEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "HP extensions to the BfdSessTable (RFC 7331)."
        ::= { bfdObjects 6 }
    
    hpicfBfdSessEntry OBJECT-TYPE
        SYNTAX      HpicfBfdSessEntry
        MAX-ACCESS  not-accessible 
        STATUS      current
        DESCRIPTION "HP extensions for an entry in the BfdSessTable."
        AUGMENTS    { bfdSessEntry }
        ::= { hpicfBfdSessTable 1 }
    
    HpicfBfdSessEntry ::= SEQUENCE {
        hpicfBfdSessApplicationID     INTEGER,
        hpicfBfdSessStaus             INTEGER,
        hpicfBfdSessClearStats        TruthValue
    }


    hpicfBfdSessApplicationID OBJECT-TYPE
        SYNTAX      INTEGER {
                              none(0),
                              ospf(1),
                              vrrp(2),
                              bgp(3),
                              multiple(4),
                              static(5)
                            }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION " Name of application above BFD session."
        DEFVAL      { none }
        ::= { hpicfBfdSessEntry 1 }


    hpicfBfdSessStaus OBJECT-TYPE
        SYNTAX      INTEGER {
                                         static(1),
                                         dynamic(2)
                         }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION " Nature of application above BFD session."
        DEFVAL      { static }
        ::= { hpicfBfdSessEntry 2 }

    hpicfBfdSessClearStats OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION " Flag to clear or not to clear statistics."
        DEFVAL      { false }
        ::= { hpicfBfdSessEntry 3 }


   -- Module compliance.

    hpicfBfdGroups
        OBJECT IDENTIFIER ::= { hpicfBfdConformance 1 }

    hpicfBfdCompliances
        OBJECT IDENTIFIER ::= { hpicfBfdConformance 2 }

    -- Compliance requirement for fully compliant implementations.

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

        MODULE -- This module.

        MANDATORY-GROUPS {
            hpicfBfdSessGroup,
            hpicfBfdScalarGroup
        }
        ::= { hpicfBfdCompliances 1 }

   -- Units of conformance.

    hpicfBfdSessGroup OBJECT-GROUP
        OBJECTS {
            hpicfBfdSessConfigDesiredMinTxInterval,
            hpicfBfdSessConfigReqMinRxInterval,
            hpicfBfdSessConfigReqMinEchoRxInterval,
            hpicfBfdSessConfigDetectMult,
            hpicfBfdSessConfigAuthPresFlag,
            hpicfBfdSessConfigAuthenticationType,
            hpicfBfdSessConfigAuthenticationKeyID,
            hpicfBfdSessConfigAuthenticationKey,
            hpicfBfdSessConfigAuthEncPwd,
            hpicfBfdSessConfigRowStatus,
            hpicfBfdSessApplicationID,
            hpicfBfdSessStaus,
            hpicfBfdSessClearStats
        }
        STATUS     current
        DESCRIPTION
                "Collection of objects needed for BFD sessions."
        ::= { hpicfBfdGroups 1 }


        hpicfBfdScalarGroup OBJECT-GROUP
            OBJECTS {
                hpicfBfdEchoSrcIpAddType,
                hpicfBfdEchoSrcIpAdd
            }
            STATUS     current
            DESCRIPTION
                    "Collection of global parameters values needed for BFD instance."
            ::= { hpicfBfdGroups 2 }


END
