-- =============================================================================
-- Copyright (c) 2004-2014 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- Description: The NVGRE(Network Virtualization using
--                        Generic Routing Encapsulation) MIB
-- Reference:
-- Version: V1.0
-- History:
--   V1.0 2014-03-11 Initial version created by Neng Yan
-- =============================================================================
H3C-NVGRE-MIB DEFINITIONS ::= BEGIN
IMPORTS
        RowStatus, MacAddress
    FROM SNMPv2-TC
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Unsigned32, Counter64
    FROM SNMPv2-SMI
        h3cCommon
    FROM HUAWEI-3COM-OID-MIB;

-- =============================================================================
-- module identity part
-- =============================================================================
h3cNvgre MODULE-IDENTITY
    LAST-UPDATED
        "201403110900Z"        -- Mar 11, 2014 at 09:00 GMT
    ORGANIZATION
        "Hangzhou H3C Technologies Co., Ltd."
    CONTACT-INFO
        "Platform Team Hangzhou H3C Technologies Co., Ltd.
         Hai-Dian District Beijing P.R. China
         http://www.h3c.com
         Zip:100085"
    DESCRIPTION
        "The NVGRE MIB."
    REVISION
        "201403110900Z"   -- Mar 11, 2014 at 09:00 GMT
    DESCRIPTION
        "Initial version."
    ::= { h3cCommon 156 }

-- =============================================================================
-- object definition begin
-- =============================================================================

h3cNvgreObjects      OBJECT IDENTIFIER ::= { h3cNvgre 1 }

h3cNvgreScalarGroup OBJECT IDENTIFIER ::= { h3cNvgreObjects 1 }

h3cNvgreNextNvgreID    OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Next available NVGRE ID(identifier), in the range of 4096 to 16777214.
        The invalid value 4294967295 indicates that no ID can be set."
    ::= { h3cNvgreScalarGroup 1 }

h3cNvgreConfigured    OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of currently configured NVGREs."
    ::= { h3cNvgreScalarGroup 2 }

-- =============================================================================
-- h3cNvgreTable Definition
-- =============================================================================
h3cNvgreTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cNvgreEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for NVGRE parameters."
    ::= { h3cNvgreObjects 2 }

h3cNvgreEntry  OBJECT-TYPE
    SYNTAX      H3cNvgreEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry represents the parameters of an NVGRE."
    INDEX
    {
        h3cNvgreID
    }
    ::= { h3cNvgreTable 1 }

H3cNvgreEntry ::=
    SEQUENCE
    {
        h3cNvgreID                 Unsigned32,
        h3cNvgreVsiIndex           Unsigned32,
        h3cNvgreRemoteMacCount     Unsigned32,
        h3cNvgreRowStatus          RowStatus
    }

h3cNvgreID    OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The NVGRE ID, in the range of 4096 to 16777214."
    ::= { h3cNvgreEntry 1 }

h3cNvgreVsiIndex    OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "VSI index.  A unique index for the conceptual row identifying
         a VSI(Virtual Switch Instance) in the h3cVsiTable."
    ::= { h3cNvgreEntry 2 }

h3cNvgreRemoteMacCount    OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Remote MAC(Media Access Control) address count of this NVGRE."
    ::= { h3cNvgreEntry 3 }

h3cNvgreRowStatus     OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Operation status of this table entry.  When a row in this
         table is in active state, no objects in that row
         can be modified by the agent."
    ::= { h3cNvgreEntry 4 }

-- =============================================================================
-- End of h3cNvgreTable Definition
-- =============================================================================

-- =============================================================================
-- h3cNvgreTunnelTable Definition
-- =============================================================================
h3cNvgreTunnelTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cNvgreTunnelEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for NVGRE tunnel parameters."
    ::= { h3cNvgreObjects 3 }

h3cNvgreTunnelEntry  OBJECT-TYPE
    SYNTAX      H3cNvgreTunnelEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry represents the parameters of an NVGRE tunnel."
    INDEX
    {
        h3cNvgreID,
        h3cNvgreTunnelID
    }
    ::= { h3cNvgreTunnelTable 1 }

H3cNvgreTunnelEntry ::=
    SEQUENCE
    {
        h3cNvgreTunnelID             Unsigned32,
        h3cNvgreTunnelRowStatus      RowStatus,
        h3cNvgreTunnelOctets         Counter64,
        h3cNvgreTunnelPackets        Counter64
    }

h3cNvgreTunnelID    OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A unique index for tunnel."
    ::= { h3cNvgreTunnelEntry 1 }

h3cNvgreTunnelRowStatus     OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Operation status of this table entry."
    ::= { h3cNvgreTunnelEntry 2 }

h3cNvgreTunnelOctets   OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of octets that have been forwarded over the tunnel."
    ::= { h3cNvgreTunnelEntry 3 }

h3cNvgreTunnelPackets  OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of packets that have been forwarded over the tunnel."
    ::= { h3cNvgreTunnelEntry 4 }

-- =============================================================================
-- End of h3cNvgreTunnelTable Definition
-- =============================================================================

-- =============================================================================
-- h3cNvgreTunnelBoundTable Definition
-- =============================================================================
h3cNvgreTunnelBoundTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cNvgreTunnelBoundEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for the number of NVGREs to which the tunnel is bound."
    ::= { h3cNvgreObjects 4 }

h3cNvgreTunnelBoundEntry  OBJECT-TYPE
    SYNTAX      H3cNvgreTunnelBoundEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry represents the number of NVGREs to which a tunnel is bound."
    INDEX
    {
        h3cNvgreTunnelID
    }
    ::= { h3cNvgreTunnelBoundTable 1 }

H3cNvgreTunnelBoundEntry ::=
    SEQUENCE
    {
        h3cNvgreTunnelBoundNvgreNum  Unsigned32
    }

h3cNvgreTunnelBoundNvgreNum    OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of NVGREs to which this tunnel is bound."
    ::= { h3cNvgreTunnelBoundEntry 1 }

-- =============================================================================
-- End of h3cNvgreTunnelBoundTable Definition
-- =============================================================================

-- =============================================================================
-- h3cNvgreMacTable Definition
-- =============================================================================
h3cNvgreMacTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cNvgreMacEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for NVGRE remote MAC addresses."
    ::= { h3cNvgreObjects 5 }

h3cNvgreMacEntry  OBJECT-TYPE
    SYNTAX      H3cNvgreMacEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An NVGRE remote MAC address."
    INDEX
    {
        h3cNvgreVsiIndex,
        h3cNvgreMacAddr
    }
    ::= { h3cNvgreMacTable 1 }

H3cNvgreMacEntry ::=
    SEQUENCE
    {
        h3cNvgreMacAddr            MacAddress,
        h3cNvgreMacTunnelID        Unsigned32,
        h3cNvgreMacType            INTEGER
    }

h3cNvgreMacAddr    OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "MAC address."
    ::= { h3cNvgreMacEntry 1 }

h3cNvgreMacTunnelID    OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A unique index for tunnel."
    ::= { h3cNvgreMacEntry 2 }

h3cNvgreMacType    OBJECT-TYPE
    SYNTAX      INTEGER{
                 selfLearned (1),
                 staticConfigured (2),
                 protocolLearned (3)
                 }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The type of an MAC address."
    ::= { h3cNvgreMacEntry 3 }

-- =============================================================================
-- End of h3cNvgreMacTable Definition
-- =============================================================================

-- =============================================================================
-- h3cNvgreStaticMacTable Definition
-- =============================================================================
h3cNvgreStaticMacTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cNvgreStaticMacEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for NVGRE static remote MAC addresses."
    ::= { h3cNvgreObjects 6 }

h3cNvgreStaticMacEntry  OBJECT-TYPE
    SYNTAX      H3cNvgreStaticMacEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An NVGRE static MAC address."
    INDEX
    {
        h3cNvgreVsiIndex,
        h3cNvgreStaticMacAddr
    }
    ::= { h3cNvgreStaticMacTable 1 }

H3cNvgreStaticMacEntry ::=
    SEQUENCE
    {
        h3cNvgreStaticMacAddr         MacAddress,
        h3cNvgreStaticMacTunnelID     Unsigned32,
        h3cNvgreStaticMacRowStatus    RowStatus
    }

h3cNvgreStaticMacAddr    OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Static MAC address."
    ::= { h3cNvgreStaticMacEntry 1 }

h3cNvgreStaticMacTunnelID    OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A unique index for tunnel."
    ::= { h3cNvgreStaticMacEntry 2 }

h3cNvgreStaticMacRowStatus     OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Operation status of this table entry.  When a row in this
         table is in active state, no objects in that row
         can be modified by the agent."
    ::= { h3cNvgreStaticMacEntry 3 }

-- =============================================================================
-- End of h3cNvgreStaticMacTable Definition
-- =============================================================================

END
