-- =============================================================================
-- Copyright (c) 2010-2014 Hewlett-Packard Development Company, L.P.
--
-- 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
-- =============================================================================
HPN-ICF-NVGRE-MIB DEFINITIONS ::= BEGIN
IMPORTS
        RowStatus, MacAddress
    FROM SNMPv2-TC
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Unsigned32, Counter64
    FROM SNMPv2-SMI
        hpnicfCommon
    FROM HPN-ICF-OID-MIB;

-- =============================================================================
-- module identity part
-- =============================================================================
hpnicfNvgre MODULE-IDENTITY
    LAST-UPDATED
        "201403110900Z"        -- Mar 11, 2014 at 09:00 GMT
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "The NVGRE MIB."
    REVISION
        "201403110900Z"   -- Mar 11, 2014 at 09:00 GMT
    DESCRIPTION
        "Initial version."
    ::= { hpnicfCommon 156 }

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

hpnicfNvgreObjects      OBJECT IDENTIFIER ::= { hpnicfNvgre 1 }

hpnicfNvgreScalarGroup OBJECT IDENTIFIER ::= { hpnicfNvgreObjects 1 }

hpnicfNvgreNextNvgreID    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."
    ::= { hpnicfNvgreScalarGroup 1 }

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

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

hpnicfNvgreEntry  OBJECT-TYPE
    SYNTAX      HpnicfNvgreEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry represents the parameters of an NVGRE."
    INDEX
    {
        hpnicfNvgreID
    }
    ::= { hpnicfNvgreTable 1 }

HpnicfNvgreEntry ::=
    SEQUENCE
    {
        hpnicfNvgreID                 Unsigned32,
        hpnicfNvgreVsiIndex           Unsigned32,
        hpnicfNvgreRemoteMacCount     Unsigned32,
        hpnicfNvgreRowStatus          RowStatus
    }

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

hpnicfNvgreVsiIndex    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 hpnicfVsiTable."
    ::= { hpnicfNvgreEntry 2 }

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

hpnicfNvgreRowStatus     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."
    ::= { hpnicfNvgreEntry 4 }

-- =============================================================================
-- End of hpnicfNvgreTable Definition
-- =============================================================================

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

hpnicfNvgreTunnelEntry  OBJECT-TYPE
    SYNTAX      HpnicfNvgreTunnelEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry represents the parameters of an NVGRE tunnel."
    INDEX
    {
        hpnicfNvgreID,
        hpnicfNvgreTunnelID
    }
    ::= { hpnicfNvgreTunnelTable 1 }

HpnicfNvgreTunnelEntry ::=
    SEQUENCE
    {
        hpnicfNvgreTunnelID             Unsigned32,
        hpnicfNvgreTunnelRowStatus      RowStatus,
        hpnicfNvgreTunnelOctets         Counter64,
        hpnicfNvgreTunnelPackets        Counter64
    }

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

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

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

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

-- =============================================================================
-- End of hpnicfNvgreTunnelTable Definition
-- =============================================================================

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

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

HpnicfNvgreTunnelBoundEntry ::=
    SEQUENCE
    {
        hpnicfNvgreTunnelBoundNvgreNum  Unsigned32
    }

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

-- =============================================================================
-- End of hpnicfNvgreTunnelBoundTable Definition
-- =============================================================================

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

hpnicfNvgreMacEntry  OBJECT-TYPE
    SYNTAX      HpnicfNvgreMacEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An NVGRE remote MAC address."
    INDEX
    {
        hpnicfNvgreVsiIndex,
        hpnicfNvgreMacAddr
    }
    ::= { hpnicfNvgreMacTable 1 }

HpnicfNvgreMacEntry ::=
    SEQUENCE
    {
        hpnicfNvgreMacAddr            MacAddress,
        hpnicfNvgreMacTunnelID        Unsigned32,
        hpnicfNvgreMacType            INTEGER
    }

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

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

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

-- =============================================================================
-- End of hpnicfNvgreMacTable Definition
-- =============================================================================

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

hpnicfNvgreStaticMacEntry  OBJECT-TYPE
    SYNTAX      HpnicfNvgreStaticMacEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An NVGRE static MAC address."
    INDEX
    {
        hpnicfNvgreVsiIndex,
        hpnicfNvgreStaticMacAddr
    }
    ::= { hpnicfNvgreStaticMacTable 1 }

HpnicfNvgreStaticMacEntry ::=
    SEQUENCE
    {
        hpnicfNvgreStaticMacAddr         MacAddress,
        hpnicfNvgreStaticMacTunnelID     Unsigned32,
        hpnicfNvgreStaticMacRowStatus    RowStatus
    }

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

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

hpnicfNvgreStaticMacRowStatus     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."
    ::= { hpnicfNvgreStaticMacEntry 3 }

-- =============================================================================
-- End of hpnicfNvgreStaticMacTable Definition
-- =============================================================================

END
