-- =================================================================
-- Copyright (c) 2010-2014 Hewlett-Packard Development Company, L.P.
--
-- Description: Generic Routing Encapsulation configuration MIB
-- Reference: INET-ADDRESS-MIB, IPV6-FLOW-LABEL-MIB, IF-MIB
-- Version: V1.2
-- History:
-- V1.0 created by Sun Ludong
--   2005-06-04 Initial version
-- V1.1 modified by Zhao Chongri
--   2012-10-23 add table hpnicfTunnelEviTable and hpnicfTunnelEviLinkTable
--      modified by Zhao Wenpeng
--   2013-02-28 add table hpnicfTunnelGreTable
-- V1.2 modified by Yang Chao
--   2013-11-22 added tables hpnicfTunnelVxlanIfTable, hpnicfTunnelVxlanConfigGroup,
--      hpnicfTunnelAvailableIDGroup and hpnicfTunnelTotalNumTable
--      modified by Zhao Chongri
--   2014-4-9 added table hpnicfTunnelNvgreIfTable
-- =================================================================
HPN-ICF-TUNNEL-MIB DEFINITIONS ::= BEGIN

IMPORTS
    hpnicfCommon
        FROM HPN-ICF-OID-MIB
    MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32
        FROM SNMPv2-SMI
    RowStatus, TruthValue, TEXTUAL-CONVENTION
        FROM SNMPv2-TC
    InetAddressType, InetAddress
        FROM INET-ADDRESS-MIB
    IPv6FlowLabelOrAny
        FROM IPV6-FLOW-LABEL-MIB
    ifIndex, InterfaceIndexOrZero, InterfaceIndex
        FROM IF-MIB;

hpnicfTunnel MODULE-IDENTITY
    LAST-UPDATED
        "201302280000Z"                              -- Feb 28, 2013 at 00:00 GMT
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "This MIB contains objects to Manage configuration and Monitor tunnel.
        "
    REVISION
        "201302280000Z"                              -- Feb 28, 2013 at 00:00 GMT
    DESCRIPTION
        "The initial revision of this MIB module.
        "
    ::= { hpnicfCommon 53 }

HpnicfTunnelType ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "Tunnel type definition.
        "
    SYNTAX INTEGER {
        other(1),                            -- none of the following
        direct(2),                           -- no intermediate header
        gre(3),                              -- GRE encapsulation
        minimal(4),                          -- Minimal encapsulation
        l2tp(5),                             -- L2TP encapsulation
        pptp(6),                             -- PPTP encapsulation
        l2f(7),                              -- L2F encapsulation
        udp(8),                              -- UDP encapsulation
        atmp(9),                             -- ATMP encapsulation
        msdp(10),                            -- MSDP encapsulation
        sixToFour(11),                       -- 6to4 encapsulation
        sixOverFour(12),                     -- 6over4 encapsulation
        isatap(13),                          -- ISATAP encapsulation
        teredo(14),                          -- Teredo encapsulation
        tunnelModeReserve(35),               -- 15 to 35 are reserved
        tunnelModeIPv4Gre(36),               -- GRE tunnel, IPv4 as transport protocol
        tunnelModeIPv6Gre(37),               -- GRE tunnel, IPv6 as transport protocol
        tunnelModeIPv4IPv4(38),             -- IPv4 over IPv4 tunnel
        tunnelModeIPv4IPv6Config(39),        -- IPv6 over IPv4 manual tunnel
        tunnelModeIPv4IPv6Auto(40),          -- IPv6 over IPv4 auto tunnel
        tunnelModeIPv4IPv66to4(41),          -- IPv6 over IPv4 6to4 tunnel
        tunnelModeIPv4IPv6Isatap(42),        -- IPv6 over IPv4 isatap tunnel
        tunnelModeIPv6IPv4(43),              -- IPv4 over IPv6
        tunnelModeIPv6IPv6(44),              -- IPv6 over IPv6 tunnel
        tunnelModeIPv4UdpDVPN(45),           -- IPv4 DVPN tunnelUDP method
        tunnelModeIPv4GreDVPN(46),           -- IPv4 DVPN tunnelGRE method
        tunnelModeIPv6UdpDVPN(47),           -- IPv6 DVPN tunnelUDP method
        tunnelModeIPv6GreDVPN(48),           -- IPv6 DVPN tunnelGRE method
        tunnelModeCrLsp(49),                 -- IPv4 CRLSP tunnel
        tunnelModeMax(50),
        tunnelModeIPv4UdpVxlan(51),          -- IPv4 VXLAN tunnel, UDP method
        tunnelModeIPv6UdpVxlan(52),          -- IPv6 VXLAN tunnel, UDP method
        tunnelModeIPv4NVGRE(53),             -- IPv4 NVGRE tunnel
        tunnelModeIPv6NVGRE(54)              -- IPv6 NVGRE tunnel
    }

hpnicfTunnelMIBObjects OBJECT IDENTIFIER ::= { hpnicfTunnel 1 }

hpnicfTunnelTables      OBJECT IDENTIFIER ::= { hpnicfTunnelMIBObjects 1 }

hpnicfTunnelIfTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HpnicfTunnelIfEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table containing information on configured tunnels.
        "
    ::= { hpnicfTunnelTables 1 }

hpnicfTunnelIfEntry OBJECT-TYPE
    SYNTAX     HpnicfTunnelIfEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) containing the information on a
        particular configured tunnel.
        "
    INDEX      { ifIndex }
    ::= { hpnicfTunnelIfTable 1 }

HpnicfTunnelIfEntry ::= SEQUENCE {
    hpnicfTunnelIfEncapsMethod         HpnicfTunnelType,
    hpnicfTunnelIfHopLimit             Integer32,
    hpnicfTunnelIfSecurity             INTEGER,
    hpnicfTunnelIfTOS                  Integer32,
    hpnicfTunnelIfFlowLabel            IPv6FlowLabelOrAny,
    hpnicfTunnelIfAddressType          InetAddressType,
    hpnicfTunnelIfLocalInetAddress     InetAddress,
    hpnicfTunnelIfRemoteInetAddress    InetAddress,
    hpnicfTunnelIfEncapsLimit          Integer32
}

hpnicfTunnelIfEncapsMethod OBJECT-TYPE
    SYNTAX     HpnicfTunnelType
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The encapsulation method used by the tunnel.
        "
    ::= { hpnicfTunnelIfEntry 3 }

hpnicfTunnelIfHopLimit OBJECT-TYPE
    SYNTAX     Integer32 (0 | 1..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The IPv4 TTL or IPv6 Hop Limit to use in the outer IP
        header.  A value of 0 indicates that the value is
        copied from the payload's header.
        "
    ::= { hpnicfTunnelIfEntry 4 }

hpnicfTunnelIfSecurity OBJECT-TYPE
    SYNTAX     INTEGER {
        none(1),   -- no security
        ipsec(2),  -- IPsec security
        other(3)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The method used by the tunnel to secure the outer IP
        header.  The value ipsec indicates that IPsec is used
        between the tunnel endpoints for authentication or
        encryption or both.  More specific security-related
        information may be available in a MIB module for the
        security protocol in use.
        "
    ::= { hpnicfTunnelIfEntry 5 }

hpnicfTunnelIfTOS OBJECT-TYPE
    SYNTAX     Integer32 (-2..63)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The method used to set the high 6 bits (the
        differentiated services codepoint) of the IPv4 TOS or
        IPv6 Traffic Class in the outer IP header.  A value of
        -1 indicates that the bits are copied from the
        payload's header.  A value of -2 indicates that a
        traffic conditioner is invoked and more information
        may be available in a traffic conditioner MIB module.
        A value between 0 and 63 inclusive indicates that the
        bit field is set to the indicated value.
        "
    ::= { hpnicfTunnelIfEntry 6 }

hpnicfTunnelIfFlowLabel OBJECT-TYPE
    SYNTAX     IPv6FlowLabelOrAny
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The method used to set the IPv6 Flow Label value.
        This object need not be present in rows where
        hpnicfTunnelIfAddressType indicates the tunnel is not over
        IPv6.  A value of -1 indicates that a traffic
        conditioner is invoked and more information may be
        available in a traffic conditioner MIB.  Any other
        value indicates that the Flow Label field is set to
        the indicated value.
        "
    ::= { hpnicfTunnelIfEntry 7 }

hpnicfTunnelIfAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The type of address in the corresponding
        hpnicfTunnelIfLocalInetAddress and hpnicfTunnelIfRemoteInetAddress
        objects.
        "
    ::= { hpnicfTunnelIfEntry 8 }

hpnicfTunnelIfLocalInetAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The address of the local endpoint of the tunnel
        (i.e., the source address used in the outer IP
        header).  If the address is unknown, the value is
        0.0.0.0 for IPv4 or :: for IPv6.  The type of this
        object is given by hpnicfTunnelIfAddressType.
        "
    ::= { hpnicfTunnelIfEntry 9 }

hpnicfTunnelIfRemoteInetAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The address of the remote endpoint of the tunnel
        (i.e., the destination address used in the outer IP
        header).  If the address is unknown or the tunnel is
        not a point-to-point link (e.g., if it is a 6to4
        tunnel), the value is 0.0.0.0 for tunnels over IPv4 or
        :: for tunnels over IPv6.  The type of this object is
        given by hpnicfTunnelIfAddressType.
        "
    ::= { hpnicfTunnelIfEntry 10 }

hpnicfTunnelIfEncapsLimit OBJECT-TYPE
    SYNTAX     Integer32 (-1 | 0..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The maximum number of additional encapsulations
        permitted for packets undergoing encapsulation at this
        node.  A value of -1 indicates that no limit is
        present (except as a result of the packet size).
        "
    REFERENCE
        "RFC 2473, section 4.1.1
        "
    ::= { hpnicfTunnelIfEntry 11 }

hpnicfTunnelInetConfigTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HpnicfTunnelInetConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table containing information on
        configured tunnels.  This table can be used to map a
        set of tunnel endpoints to the associated ifIndex
        value.  It can also be used for row creation.  Note
        that every row in the hpnicfTunnelIfTable with a fixed
        destination address should have a corresponding row in
        the hpnicfTunnelInetConfigTable, regardless of whether it
        was created via SNMP.
        "
    ::= { hpnicfTunnelTables 3 }

hpnicfTunnelInetConfigEntry OBJECT-TYPE
    SYNTAX     HpnicfTunnelInetConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) containing the information
        on a particular configured tunnel.
        "
    INDEX {
        hpnicfTunnelInetConfigSlot,
        hpnicfTunnelInetConfigSubSlot,
        hpnicfTunnelInetConfigTunnNum
    }
    ::= { hpnicfTunnelInetConfigTable 1 }

HpnicfTunnelInetConfigEntry ::= SEQUENCE {
    hpnicfTunnelInetConfigSlot                Integer32,
    hpnicfTunnelInetConfigSubSlot             Integer32,
    hpnicfTunnelInetConfigTunnNum             Integer32,
    hpnicfTunnelInetConfigIfIndex             InterfaceIndexOrZero,
    hpnicfTunnelInetConfigStatus              RowStatus
}

hpnicfTunnelInetConfigSlot OBJECT-TYPE
    SYNTAX     Integer32 (0..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Slot number.  hpnicfTunnelInetConfigSlot, hpnicfTunnelInetConfigSubSlot
        and hpnicfTunnelInetConfigTunnNum describe a tunnel interface.
        For Example, interface tunnel 0/0/25 would be configured as:
        hpnicfTunnelInetConfigSlot          0
        hpnicfTunnelInetConfigSubSlot       0
        hpnicfTunnelInetConfigTunnNum      25
        "
    ::= { hpnicfTunnelInetConfigEntry 1 }

hpnicfTunnelInetConfigSubSlot OBJECT-TYPE
    SYNTAX     Integer32 (0..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Sub slot number.  As described in hpnicfTunnelInetConfigSlot's description.
        "
    ::= { hpnicfTunnelInetConfigEntry 2 }

hpnicfTunnelInetConfigTunnNum OBJECT-TYPE
    SYNTAX     Integer32 (0..65535)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Tunnel number.  As described in hpnicfTunnelInetConfigSlot's description.
        "
    ::= { hpnicfTunnelInetConfigEntry 3 }

hpnicfTunnelInetConfigIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndexOrZero
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "If the value of hpnicfTunnelInetConfigStatus for this row
        is active, then this object contains the value of
        ifIndex corresponding to the tunnel interface.  A
        value of 0 is not legal in the active state, and means
        that the interface index has not yet been assigned.
        "
    ::= { hpnicfTunnelInetConfigEntry 6 }

hpnicfTunnelInetConfigStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The status of this row, by which new entries may be
        created, or old entries deleted from this table.  The
        agent need not support setting this object to
        createAndWait or notInService since there are no other
        writable objects in this table, and writable objects
        in rows of corresponding tables such as the
        hpnicfTunnelIfTable may be modified while this row is
        active.

        To create a row in this table, the management
        station should set hpnicfTunnelInetConfigSlot,
        hpnicfTunnelInetConfigSubSlot, hpnicfTunnelInetConfigTunnNum,
        and set hpnicfTunnelInetConfigStatus to createAndGo.

        Creating a row in this table will cause an interface
        index to be assigned by the agent in an
        implementation-dependent manner, and corresponding
        rows will be instantiated in the ifTable and the
        hpnicfTunnelIfTable.  The status of this row will become
        active as soon as the agent assigns the interface
        index, regardless of whether the interface is
        operationally up.

        Deleting a row in this table will likewise delete the
        corresponding row in the ifTable and in the hpnicfTunnelIfTable.
        "
    ::= { hpnicfTunnelInetConfigEntry 7 }

hpnicfTunnelEviTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HpnicfTunnelEviEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table containing information on configured EVI-Tunnel.
        "
    ::= { hpnicfTunnelTables 4 }

hpnicfTunnelEviEntry OBJECT-TYPE
    SYNTAX     HpnicfTunnelEviEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) containing the information on a
        particular configured EVI-Tunnel.
        "
    INDEX      { hpnicfTunnelEviTunnNum }
    ::= { hpnicfTunnelEviTable 1 }

HpnicfTunnelEviEntry ::= SEQUENCE {
    hpnicfTunnelEviTunnNum              Integer32,
    hpnicfTunnelEviIfIndex              InterfaceIndex,
    hpnicfTunnelEviStatus               RowStatus,
    hpnicfTunnelEviAddressType          InetAddressType,
    hpnicfTunnelEviLocalAddr            InetAddress,
    hpnicfTunnelEviNetworkID            Integer32,
    hpnicfTunnelEviKeepaliveInterval    Integer32,
    hpnicfTunnelEviKeepaliveTimes       Integer32
}

hpnicfTunnelEviTunnNum OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Tunnel number.  An identifier used to distinguish
         between multiple tunnels.
        "
    ::= { hpnicfTunnelEviEntry 1 }

hpnicfTunnelEviIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A unique value, greater than zero, for each
         interface.  It is recommended that values are assigned
         contiguously starting from 1.  The value for each
         interface sub-layer must remain constant at least from
         one re-initialization of the entity's network
         management system to the next re-initialization.
        "
    ::= { hpnicfTunnelEviEntry 2 }

hpnicfTunnelEviStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The status of this row, by which new entries may be
        created, or old entries deleted from this table.  The
        agent need not support setting this object to
        createAndWait or notInService since there are no other
        writable objects in this table, and writable objects
        in rows of corresponding tables such as the
        hpnicfTunnelEviTable may be modified while this row is
        active.

        Creating a row in this table will cause an interface
        index to be assigned by the agent in an
        implementation-dependent manner, and corresponding
        rows will be instantiated in the ifTable.
        The status of this row will become
        active as soon as the agent assigns the interface
        index, regardless of whether the interface is
        operationally up.

        Deleting a row in this table will likewise delete the
        corresponding row in the ifTable.
        "
    ::= { hpnicfTunnelEviEntry 3 }

hpnicfTunnelEviAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The type of address in the corresponding
         hpnicfTunnelEviLocalAddr objects.
         Can not be modified after creation.
        "
    ::= { hpnicfTunnelEviEntry 4 }

hpnicfTunnelEviLocalAddr OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The address of the local endpoint of the tunnel
        (i.e., the source address used in the outer IP
        header).  The type of this object is given by
        hpnicfTunnelEviAddressType.
        "
    ::= { hpnicfTunnelEviEntry 5 }

hpnicfTunnelEviNetworkID OBJECT-TYPE
    SYNTAX     Integer32 (0..16777215)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The method used to assign a network ID to an EVI-Tunnel interface.
         Assign the same network ID to the EVI-Tunnel interfaces of
         all edge devices in an EVI network.  A value of 0 indicates that
         no network ID is assigned to any EVI-Tunnel interface.
        "
    ::= { hpnicfTunnelEviEntry 6 }

hpnicfTunnelEviKeepaliveInterval OBJECT-TYPE
    SYNTAX     Integer32 (1..32767)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The method used to assign the keepalive interval.
        "
    ::= { hpnicfTunnelEviEntry 7 }

hpnicfTunnelEviKeepaliveTimes OBJECT-TYPE
    SYNTAX     Integer32 (1..255)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The method used to assign the keepalive maximum number
         of consecutive keepalive failures that are allowed.
        "
    ::= { hpnicfTunnelEviEntry 8 }

hpnicfTunnelEviLinkTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HpnicfTunnelEviLinkEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table containing information on configured EVI-Link.
        "
    ::= { hpnicfTunnelTables 5 }

hpnicfTunnelEviLinkEntry OBJECT-TYPE
    SYNTAX     HpnicfTunnelEviLinkEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) containing the information on a
        particular configured EVI-Link.
        "
    INDEX      { hpnicfTunnelEviTunnNum, hpnicfTunnelEviLinkNum }
    ::= { hpnicfTunnelEviLinkTable 1 }

HpnicfTunnelEviLinkEntry ::= SEQUENCE {
    hpnicfTunnelEviLinkNum                Integer32,
    hpnicfTunnelEviLinkIfIndex            InterfaceIndex,
    hpnicfTunnelEviLinkAddressType        InetAddressType,
    hpnicfTunnelEviLinkRemoteAddr         InetAddress
}

hpnicfTunnelEviLinkNum OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "EVI-Link number.
        "
    ::= { hpnicfTunnelEviLinkEntry 1 }

hpnicfTunnelEviLinkIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A unique value, greater than zero, for each
         interface.  It is recommended that values are assigned
         contiguously starting from 1.  The value for each
         interface sub-layer must remain constant at least from
         one re-initialization of the entity's network
         management system to the next re-initialization.
        "
    ::= { hpnicfTunnelEviLinkEntry 2 }

    hpnicfTunnelEviLinkAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The type of address in the corresponding
         hpnicfTunnelEviLinkRemoteAddr objects.
         Can not be modified after creation.
        "
    ::= { hpnicfTunnelEviLinkEntry 3 }

hpnicfTunnelEviLinkRemoteAddr OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The address of the remote endpoint of the tunnel
        (i.e., the destination address used in the outer IP
        header).
        "
    ::= { hpnicfTunnelEviLinkEntry 4}

hpnicfTunnelGreTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HpnicfTunnelGreEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table containing information on configured Gre-Tunnel.
        "
    ::= { hpnicfTunnelTables 6 }

hpnicfTunnelGreEntry OBJECT-TYPE
    SYNTAX     HpnicfTunnelGreEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) containing the information on a
        particular configured Gre-Tunnel.
        "
    INDEX      { hpnicfTunnelGreTunnNum }
    ::= { hpnicfTunnelGreTable 1 }

HpnicfTunnelGreEntry ::= SEQUENCE {
    hpnicfTunnelGreTunnNum                  Integer32,
    hpnicfTunnelGreTunnIfIndex              InterfaceIndex,
    hpnicfTunnelGreAddressType              InetAddressType,
    hpnicfTunnelGreLocalAddr                InetAddress,
    hpnicfTunnelGreRemoteAddr               InetAddress,
    hpnicfTunnelGreKeepaliveEnabled         TruthValue,
    hpnicfTunnelGreKeepaliveInterval        Integer32,
    hpnicfTunnelGreKeepaliveTimes           Integer32,
    hpnicfTunnelGreSlbgGroupNum             Unsigned32,
    hpnicfTunnelGreTunnStatus               RowStatus
}

hpnicfTunnelGreTunnNum OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Tunnel number.  An identifier used to distinguish
         between multiple tunnels.
        "
    ::= { hpnicfTunnelGreEntry 1 }

hpnicfTunnelGreTunnIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A unique value, greater than zero, for each
         interface.  It is recommended that values are assigned
         contiguously starting from 1.  The value for each
         interface sub-layer must remain constant at least from
         one re-initialization of the entity's network
         management system to the next re-initialization.
        "
    ::= { hpnicfTunnelGreEntry 2 }

hpnicfTunnelGreAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The type of address in the corresponding
         hpnicfTunnelGreLocalAddr and hpnicfTunnelGreRemoteAddr objects.
        "
    ::= { hpnicfTunnelGreEntry 3 }

hpnicfTunnelGreLocalAddr OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The address of the local endpoint of the tunnel
         (i.e., the source address used in the outer IP
         header).
        "
    ::= { hpnicfTunnelGreEntry 4 }

hpnicfTunnelGreRemoteAddr OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The address of the remote endpoint of the tunnel
         (i.e., the destination address used in the outer IP
         header).
        "
    ::= { hpnicfTunnelGreEntry 5 }

hpnicfTunnelGreKeepaliveEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This MIB object specifies whether or not keepalive is used.
         A value of true indicates that keepalive SHOULD be used.
         When keepalive is not be used, the value of
         hpnicfTunnelGreKeepaliveInterval and hpnicfTunnelGreKeepaliveTimes
         MUST be zero.
        "
    DEFVAL { false }
    ::= { hpnicfTunnelGreEntry 6 }

hpnicfTunnelGreKeepaliveInterval OBJECT-TYPE
    SYNTAX     Integer32 (0..32767)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The method used to assign the keepalive interval.
         The value is zero when keepalive is not used.
         The valid value is from 1 to 32767, when keepalive is used.
        "
    DEFVAL { 0 }
    ::= { hpnicfTunnelGreEntry 7 }

hpnicfTunnelGreKeepaliveTimes OBJECT-TYPE
    SYNTAX     Integer32 (0..255)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The method used to assign the keepalive maximum number
         of consecutive keepalive failures that are allowed.
         The value is zero when keepalive is not used.
         The valid value is from 1 to 255, when keepalive is used.
        "
    DEFVAL { 0 }
    ::= { hpnicfTunnelGreEntry 8 }

hpnicfTunnelGreSlbgGroupNum OBJECT-TYPE
    SYNTAX     Unsigned32 (0..4294967295)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The method used to assign the service-loopback-group.
        "
    ::= { hpnicfTunnelGreEntry 9 }

hpnicfTunnelGreTunnStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The status of this row, by which new entries may be
         created, or old entries deleted from this table.  The
         agent need not support setting this object to
         createAndWait or notInService since there are no other
         writable objects in this table, and writable objects
         in rows of corresponding tables such as the
         hpnicfTunnelGreTable may be modified while this row is
         active.

         Creating a row in this table will cause an interface
         index to be assigned by the agent in an
         implementation-dependent manner, and corresponding
         rows will be instantiated in the ifTable.
         The status of this row will become
         active as soon as the agent assigns the interface
         index, regardless of whether the interface is
         operationally up.

         Deleting a row in this table will likewise delete the
         corresponding row in the ifTable.
        "
    ::= { hpnicfTunnelGreEntry 10 }

hpnicfTunnelVxlanIfTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HpnicfTunnelVxlanIfEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table containing information on configured Vxlan-Tunnel.
        "
    ::= { hpnicfTunnelTables 7 }

hpnicfTunnelVxlanIfEntry OBJECT-TYPE
    SYNTAX     HpnicfTunnelVxlanIfEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) containing the information on a
        particular configured Vxlan-Tunnel.
        "
    INDEX      { hpnicfTunnelVxlanIfTunnNum }
    ::= { hpnicfTunnelVxlanIfTable 1 }

HpnicfTunnelVxlanIfEntry ::= SEQUENCE {
    hpnicfTunnelVxlanIfTunnNum              Integer32,
    hpnicfTunnelVxlanTunnIfIndex            InterfaceIndex,
    hpnicfTunnelVxlanIfAddressType          InetAddressType,
    hpnicfTunnelVxlanIfLocalAddr            InetAddress,
    hpnicfTunnelVxlanIfRemoteAddr           InetAddress,
    hpnicfTunnelVxlanIfStatus               RowStatus
}

hpnicfTunnelVxlanIfTunnNum OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Tunnel number.  An identifier used to distinguish
         between multiple tunnels.
        "
    ::= { hpnicfTunnelVxlanIfEntry 1 }

hpnicfTunnelVxlanTunnIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A unique value, greater than zero, for each
         interface.  It is recommended that values are assigned
         contiguously starting from 1.  The value for each
         interface sub-layer must remain constant at least from
         one re-initialization of the entity's network
         management system to the next re-initialization.
        "
    ::= { hpnicfTunnelVxlanIfEntry 2 }

hpnicfTunnelVxlanIfAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The type of address in the corresponding
         hpnicfTunnelVxlanIfLocalAddr and hpnicfTunnelVxlanIfRemoteAddr objects.
        "
    ::= { hpnicfTunnelVxlanIfEntry 3 }

hpnicfTunnelVxlanIfLocalAddr OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The address of the local endpoint of the tunnel
         (i.e., the source address used in the outer IP
         header).
        "
    ::= { hpnicfTunnelVxlanIfEntry 4 }

hpnicfTunnelVxlanIfRemoteAddr OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The address of the remote endpoint of the tunnel
         (i.e., the destination address used in the outer IP
         header).
        "
    ::= { hpnicfTunnelVxlanIfEntry 5 }

hpnicfTunnelVxlanIfStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The status of this row, by which new entries may be
         created, or old entries deleted from this table.  The
         agent need not support setting this object to
         createAndWait or notInService since there are no other
         writable objects in this table, and writable objects
         in rows of corresponding tables such as the
         hpnicfTunnelVxlanIfTable may be modified while this row is
         active.

         Creating a row in this table will cause an interface
         index to be assigned by the agent in an
         implementation-dependent manner, and corresponding
         rows will be instantiated in the ifTable.
         The status of this row will become
         active as soon as the agent assigns the interface
         index, regardless of whether the interface is
         operationally up.

         Deleting a row in this table will likewise delete the
         corresponding row in the ifTable.
        "
    ::= { hpnicfTunnelVxlanIfEntry 6 }

hpnicfTunnelVxlanConfigGroup OBJECT IDENTIFIER ::= { hpnicfTunnelTables 8 }

hpnicfTunnelVxlanUdpPort OBJECT-TYPE
    SYNTAX Integer32 (1..65535)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The UDP port number for Vxlan Tunnels."
    ::= { hpnicfTunnelVxlanConfigGroup 1 }

hpnicfTunnelVxlanDropWrongCksmPkt OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Whether or not dropping invalid UDP chesksum Vxlan packet."
    ::= { hpnicfTunnelVxlanConfigGroup 2 }

hpnicfTunnelVxlanDropVlanTagPkt OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Whether or not dropping Vxlan packet with inner VLAN tag."
    ::= { hpnicfTunnelVxlanConfigGroup 3 }

hpnicfTunnelAvailableIDGroup OBJECT IDENTIFIER ::= { hpnicfTunnelTables 9 }

hpnicfTunnelAvailableID OBJECT-TYPE
    SYNTAX Integer32 (-1 | 1..2147483647)
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The available tunnel ID.  A value of -1 indicates that
         there is no available tunnel ID."
    ::= { hpnicfTunnelAvailableIDGroup 1 }

hpnicfTunnelTotalNumTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HpnicfTunnelTotalNumEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Total number of a particular method tunnel."
    ::= { hpnicfTunnelTables 10 }

hpnicfTunnelTotalNumEntry OBJECT-TYPE
    SYNTAX     HpnicfTunnelTotalNumEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Total number of a particular method tunnel."
    INDEX      { hpnicfTunnelEncapsMethod }
    ::= { hpnicfTunnelTotalNumTable 1 }

HpnicfTunnelTotalNumEntry ::= SEQUENCE {
    hpnicfTunnelEncapsMethod              HpnicfTunnelType,
    hpnicfTunnelTotalNum                  Unsigned32
}

hpnicfTunnelEncapsMethod OBJECT-TYPE
    SYNTAX     HpnicfTunnelType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The encapsulation method used by the tunnel."
    ::= { hpnicfTunnelTotalNumEntry 1 }

hpnicfTunnelTotalNum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of a particular method tunnel.
        "
    ::= { hpnicfTunnelTotalNumEntry 2 }

hpnicfTunnelNvgreIfTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HpnicfTunnelNvgreIfEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table containing information on configured Nvgre-Tunnel.
        "
    ::= { hpnicfTunnelTables 11 }

hpnicfTunnelNvgreIfEntry OBJECT-TYPE
    SYNTAX     HpnicfTunnelNvgreIfEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) containing the information on a
        particular configured Nvgre-Tunnel.
        "
    INDEX      { hpnicfTunnelNvgreIfTunnNum }
    ::= { hpnicfTunnelNvgreIfTable 1 }

HpnicfTunnelNvgreIfEntry ::= SEQUENCE {
    hpnicfTunnelNvgreIfTunnNum              Integer32,
    hpnicfTunnelNvgreTunnIfIndex            InterfaceIndex,
    hpnicfTunnelNvgreIfAddressType          InetAddressType,
    hpnicfTunnelNvgreIfLocalAddr            InetAddress,
    hpnicfTunnelNvgreIfRemoteAddr           InetAddress,
    hpnicfTunnelNvgreIfStatus               RowStatus
}

hpnicfTunnelNvgreIfTunnNum OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Tunnel number.  An identifier used to distinguish
         between multiple tunnels.
        "
    ::= { hpnicfTunnelNvgreIfEntry 1 }

hpnicfTunnelNvgreTunnIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A unique value, greater than zero, for each
         interface.  It is recommended that values are assigned
         contiguously starting from 1.  The value for each
         interface sub-layer must remain constant at least from
         one re-initialization of the entity's network
         management system to the next re-initialization.
        "
    ::= { hpnicfTunnelNvgreIfEntry 2 }

hpnicfTunnelNvgreIfAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The type of address in the corresponding
         hpnicfTunnelNvgreIfLocalAddr and hpnicfTunnelNvgreIfRemoteAddr objects.
        "
    ::= { hpnicfTunnelNvgreIfEntry 3 }

hpnicfTunnelNvgreIfLocalAddr OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The address of the local endpoint of the tunnel
         (i.e., the source address used in the outer IP
         header).
        "
    ::= { hpnicfTunnelNvgreIfEntry 4 }

hpnicfTunnelNvgreIfRemoteAddr OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The address of the remote endpoint of the tunnel
         (i.e., the destination address used in the outer IP
         header).
        "
    ::= { hpnicfTunnelNvgreIfEntry 5 }

hpnicfTunnelNvgreIfStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The status of this row, by which new entries may be
         created, or old entries deleted from this table.  The
         agent need not support setting this object to
         createAndWait or notInService since there are no other
         writable objects in this table, and writable objects
         in rows of corresponding tables such as the
         hpnicfTunnelNvgreIfTable may be modified while this row is
         active.

         Creating a row in this table will cause an interface
         index to be assigned by the agent in an
         implementation-dependent manner, and corresponding
         rows will be instantiated in the ifTable.
         The status of this row will become
         active as soon as the agent assigns the interface
         index, regardless of whether the interface is
         operationally up.

         Deleting a row in this table will likewise delete the
         corresponding row in the ifTable.
        "
    ::= { hpnicfTunnelNvgreIfEntry 6 }
END
