-- =================================================================
-- Copyright (c) 2004-2014 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- 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 h3cTunnelEviTable and h3cTunnelEviLinkTable
--      modified by Zhao Wenpeng
--   2013-02-28 add table h3cTunnelGreTable
-- V1.2 modified by Yang Chao
--   2013-11-22 added tables h3cTunnelVxlanIfTable, h3cTunnelVxlanConfigGroup,
--      h3cTunnelAvailableIDGroup and h3cTunnelTotalNumTable
--      modified by Zhao Chongri
--   2014-4-9 added table h3cTunnelNvgreIfTable
-- =================================================================
H3C-TUNNEL-MIB DEFINITIONS ::= BEGIN

IMPORTS
    h3cCommon
        FROM HUAWEI-3COM-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;

h3cTunnel MODULE-IDENTITY
    LAST-UPDATED
        "201302280000Z"                              -- Feb 28, 2013 at 00:00 GMT
    ORGANIZATION
        "Hangzhou H3C Tech. Co., Ltd."
    CONTACT-INFO
        "Platform Team Hangzhou H3C Tech. Co., Ltd.
        Hai-Dian District Beijing P.R. China
        http://www.h3c.com
        Zip:100085
        "
    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.
        "
    ::= { h3cCommon 53 }

H3cTunnelType ::= 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
    }

h3cTunnelMIBObjects OBJECT IDENTIFIER ::= { h3cTunnel 1 }

h3cTunnelTables      OBJECT IDENTIFIER ::= { h3cTunnelMIBObjects 1 }

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

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

H3cTunnelIfEntry ::= SEQUENCE {
    h3cTunnelIfEncapsMethod         H3cTunnelType,
    h3cTunnelIfHopLimit             Integer32,
    h3cTunnelIfSecurity             INTEGER,
    h3cTunnelIfTOS                  Integer32,
    h3cTunnelIfFlowLabel            IPv6FlowLabelOrAny,
    h3cTunnelIfAddressType          InetAddressType,
    h3cTunnelIfLocalInetAddress     InetAddress,
    h3cTunnelIfRemoteInetAddress    InetAddress,
    h3cTunnelIfEncapsLimit          Integer32
}

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

h3cTunnelIfHopLimit 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.
        "
    ::= { h3cTunnelIfEntry 4 }

h3cTunnelIfSecurity 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.
        "
    ::= { h3cTunnelIfEntry 5 }

h3cTunnelIfTOS 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.
        "
    ::= { h3cTunnelIfEntry 6 }

h3cTunnelIfFlowLabel 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
        h3cTunnelIfAddressType 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.
        "
    ::= { h3cTunnelIfEntry 7 }

h3cTunnelIfAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The type of address in the corresponding
        h3cTunnelIfLocalInetAddress and h3cTunnelIfRemoteInetAddress
        objects.
        "
    ::= { h3cTunnelIfEntry 8 }

h3cTunnelIfLocalInetAddress 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 h3cTunnelIfAddressType.
        "
    ::= { h3cTunnelIfEntry 9 }

h3cTunnelIfRemoteInetAddress 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 h3cTunnelIfAddressType.
        "
    ::= { h3cTunnelIfEntry 10 }

h3cTunnelIfEncapsLimit 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
        "
    ::= { h3cTunnelIfEntry 11 }

h3cTunnelInetConfigTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF H3cTunnelInetConfigEntry
    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 h3cTunnelIfTable with a fixed
        destination address should have a corresponding row in
        the h3cTunnelInetConfigTable, regardless of whether it
        was created via SNMP.
        "
    ::= { h3cTunnelTables 3 }

h3cTunnelInetConfigEntry OBJECT-TYPE
    SYNTAX     H3cTunnelInetConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) containing the information
        on a particular configured tunnel.
        "
    INDEX {
        h3cTunnelInetConfigSlot,
        h3cTunnelInetConfigSubSlot,
        h3cTunnelInetConfigTunnNum
    }
    ::= { h3cTunnelInetConfigTable 1 }

H3cTunnelInetConfigEntry ::= SEQUENCE {
    h3cTunnelInetConfigSlot                Integer32,
    h3cTunnelInetConfigSubSlot             Integer32,
    h3cTunnelInetConfigTunnNum             Integer32,
    h3cTunnelInetConfigIfIndex             InterfaceIndexOrZero,
    h3cTunnelInetConfigStatus              RowStatus
}

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

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

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

h3cTunnelInetConfigIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndexOrZero
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "If the value of h3cTunnelInetConfigStatus 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.
        "
    ::= { h3cTunnelInetConfigEntry 6 }

h3cTunnelInetConfigStatus 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
        h3cTunnelIfTable may be modified while this row is
        active.

        To create a row in this table, the management
        station should set h3cTunnelInetConfigSlot,
        h3cTunnelInetConfigSubSlot, h3cTunnelInetConfigTunnNum,
        and set h3cTunnelInetConfigStatus 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
        h3cTunnelIfTable.  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 h3cTunnelIfTable.
        "
    ::= { h3cTunnelInetConfigEntry 7 }

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

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

H3cTunnelEviEntry ::= SEQUENCE {
    h3cTunnelEviTunnNum              Integer32,
    h3cTunnelEviIfIndex              InterfaceIndex,
    h3cTunnelEviStatus               RowStatus,
    h3cTunnelEviAddressType          InetAddressType,
    h3cTunnelEviLocalAddr            InetAddress,
    h3cTunnelEviNetworkID            Integer32,
    h3cTunnelEviKeepaliveInterval    Integer32,
    h3cTunnelEviKeepaliveTimes       Integer32
}

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

h3cTunnelEviIfIndex 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.
        "
    ::= { h3cTunnelEviEntry 2 }

h3cTunnelEviStatus 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
        h3cTunnelEviTable 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.
        "
    ::= { h3cTunnelEviEntry 3 }

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

h3cTunnelEviLocalAddr 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
        h3cTunnelEviAddressType.
        "
    ::= { h3cTunnelEviEntry 5 }

h3cTunnelEviNetworkID 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.
        "
    ::= { h3cTunnelEviEntry 6 }

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

h3cTunnelEviKeepaliveTimes 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.
        "
    ::= { h3cTunnelEviEntry 8 }

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

h3cTunnelEviLinkEntry OBJECT-TYPE
    SYNTAX     H3cTunnelEviLinkEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) containing the information on a
        particular configured EVI-Link.
        "
    INDEX      { h3cTunnelEviTunnNum, h3cTunnelEviLinkNum }
    ::= { h3cTunnelEviLinkTable 1 }

H3cTunnelEviLinkEntry ::= SEQUENCE {
    h3cTunnelEviLinkNum                Integer32,
    h3cTunnelEviLinkIfIndex            InterfaceIndex,
    h3cTunnelEviLinkAddressType        InetAddressType,
    h3cTunnelEviLinkRemoteAddr         InetAddress
}

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

h3cTunnelEviLinkIfIndex 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.
        "
    ::= { h3cTunnelEviLinkEntry 2 }

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

h3cTunnelEviLinkRemoteAddr 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).
        "
    ::= { h3cTunnelEviLinkEntry 4}

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

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

H3cTunnelGreEntry ::= SEQUENCE {
    h3cTunnelGreTunnNum                  Integer32,
    h3cTunnelGreTunnIfIndex              InterfaceIndex,
    h3cTunnelGreAddressType              InetAddressType,
    h3cTunnelGreLocalAddr                InetAddress,
    h3cTunnelGreRemoteAddr               InetAddress,
    h3cTunnelGreKeepaliveEnabled         TruthValue,
    h3cTunnelGreKeepaliveInterval        Integer32,
    h3cTunnelGreKeepaliveTimes           Integer32,
    h3cTunnelGreSlbgGroupNum             Unsigned32,
    h3cTunnelGreTunnStatus               RowStatus
}

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

h3cTunnelGreTunnIfIndex 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.
        "
    ::= { h3cTunnelGreEntry 2 }

h3cTunnelGreAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The type of address in the corresponding
         h3cTunnelGreLocalAddr and h3cTunnelGreRemoteAddr objects.
        "
    ::= { h3cTunnelGreEntry 3 }

h3cTunnelGreLocalAddr 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).
        "
    ::= { h3cTunnelGreEntry 4 }

h3cTunnelGreRemoteAddr 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).
        "
    ::= { h3cTunnelGreEntry 5 }

h3cTunnelGreKeepaliveEnabled 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
         h3cTunnelGreKeepaliveInterval and h3cTunnelGreKeepaliveTimes
         MUST be zero.
        "
    DEFVAL { false }
    ::= { h3cTunnelGreEntry 6 }

h3cTunnelGreKeepaliveInterval 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 }
    ::= { h3cTunnelGreEntry 7 }

h3cTunnelGreKeepaliveTimes 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 }
    ::= { h3cTunnelGreEntry 8 }

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

h3cTunnelGreTunnStatus 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
         h3cTunnelGreTable 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.
        "
    ::= { h3cTunnelGreEntry 10 }

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

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

H3cTunnelVxlanIfEntry ::= SEQUENCE {
    h3cTunnelVxlanIfTunnNum              Integer32,
    h3cTunnelVxlanTunnIfIndex            InterfaceIndex,
    h3cTunnelVxlanIfAddressType          InetAddressType,
    h3cTunnelVxlanIfLocalAddr            InetAddress,
    h3cTunnelVxlanIfRemoteAddr           InetAddress,
    h3cTunnelVxlanIfStatus               RowStatus
}

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

h3cTunnelVxlanTunnIfIndex 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.
        "
    ::= { h3cTunnelVxlanIfEntry 2 }

h3cTunnelVxlanIfAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The type of address in the corresponding
         h3cTunnelVxlanIfLocalAddr and h3cTunnelVxlanIfRemoteAddr objects.
        "
    ::= { h3cTunnelVxlanIfEntry 3 }

h3cTunnelVxlanIfLocalAddr 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).
        "
    ::= { h3cTunnelVxlanIfEntry 4 }

h3cTunnelVxlanIfRemoteAddr 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).
        "
    ::= { h3cTunnelVxlanIfEntry 5 }

h3cTunnelVxlanIfStatus 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
         h3cTunnelVxlanIfTable 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.
        "
    ::= { h3cTunnelVxlanIfEntry 6 }

h3cTunnelVxlanConfigGroup OBJECT IDENTIFIER ::= { h3cTunnelTables 8 }

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

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

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

h3cTunnelAvailableIDGroup OBJECT IDENTIFIER ::= { h3cTunnelTables 9 }

h3cTunnelAvailableID 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."
    ::= { h3cTunnelAvailableIDGroup 1 }

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

h3cTunnelTotalNumEntry OBJECT-TYPE
    SYNTAX     H3cTunnelTotalNumEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Total number of a particular method tunnel."
    INDEX      { h3cTunnelEncapsMethod }
    ::= { h3cTunnelTotalNumTable 1 }

H3cTunnelTotalNumEntry ::= SEQUENCE {
    h3cTunnelEncapsMethod              H3cTunnelType,
    h3cTunnelTotalNum                  Unsigned32
}

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

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

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

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

H3cTunnelNvgreIfEntry ::= SEQUENCE {
    h3cTunnelNvgreIfTunnNum              Integer32,
    h3cTunnelNvgreTunnIfIndex            InterfaceIndex,
    h3cTunnelNvgreIfAddressType          InetAddressType,
    h3cTunnelNvgreIfLocalAddr            InetAddress,
    h3cTunnelNvgreIfRemoteAddr           InetAddress,
    h3cTunnelNvgreIfStatus               RowStatus
}

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

h3cTunnelNvgreTunnIfIndex 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.
        "
    ::= { h3cTunnelNvgreIfEntry 2 }

h3cTunnelNvgreIfAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The type of address in the corresponding
         h3cTunnelNvgreIfLocalAddr and h3cTunnelNvgreIfRemoteAddr objects.
        "
    ::= { h3cTunnelNvgreIfEntry 3 }

h3cTunnelNvgreIfLocalAddr 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).
        "
    ::= { h3cTunnelNvgreIfEntry 4 }

h3cTunnelNvgreIfRemoteAddr 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).
        "
    ::= { h3cTunnelNvgreIfEntry 5 }

h3cTunnelNvgreIfStatus 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
         h3cTunnelNvgreIfTable 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.
        "
    ::= { h3cTunnelNvgreIfEntry 6 }
END
