-- =============================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description: 802.1ah MAC-in-MAC MIB
-- Reference:
-- Version: V1.0
-- History:
--   V1.0 2009-08-08 Initial version Created by Jianyong Song
--        2010-08-05 Add 'hpnicfMinmBmac' by Wei Zhang
-- =============================================================================
HPN-ICF-MINM-MIB DEFINITIONS ::= BEGIN
IMPORTS
        RowStatus,
        TEXTUAL-CONVENTION,
        MacAddress
    FROM SNMPv2-TC
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Integer32,
        Unsigned32
    FROM SNMPv2-SMI
        ifIndex
    FROM RFC1213-MIB
        hpnicfCommon
    FROM HPN-ICF-OID-MIB
        hpnicfVsiIndex
    FROM HPN-ICF-VSI-MIB;

-- =============================================================================
-- module identity part
-- =============================================================================
hpnicfMinm MODULE-IDENTITY
    LAST-UPDATED
        "200908081000Z"        -- Aug 08, 2009 at 10:00 GMT
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "802.1ah MAC-in-MAC MIB"
    REVISION
        "200908081000Z"   -- Aug 08, 2009 at 10:00 GMT
    DESCRIPTION
        "The initial version of this MIB."
    ::= { hpnicfCommon 107 }

-- =============================================================================
-- Textual Conventions
-- =============================================================================
HpnicfMinmEnabledStatus ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "A enumerated value which indicates the state of object."
    SYNTAX  INTEGER
    {
        enabled(1),
        disabled(2)
    }

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

hpnicfMinmObjects      OBJECT IDENTIFIER ::= { hpnicfMinm 1 }

hpnicfMinmScalarGroup OBJECT IDENTIFIER ::= { hpnicfMinmObjects 1 }

hpnicfMinmCapabilities    OBJECT-TYPE
    SYNTAX      BITS
    {
        reEncapsulation(0),
        uplink(1),
        vsiShareConnection(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object displays the MAC-in-MAC capabilities with respect to
         certain fields. The following values may be supported:
         reEncapsulation:     Support for configuring re-encapsulation (denoted
                              by hpnicfMinmVsiReEncapsulation).
         uplink:              Support for configuring uplink (denoted
                              by hpnicfMinmUplinkTable).
         vsiShareConnection:  It indicates that connection entry is shared in
                              all VSIs. hpnicfVsiIndex is meaningless and must
                              be value 1 in hpnicfMinmConnectionTable."
    ::= { hpnicfMinmScalarGroup 1 }

hpnicfMinmBmac  OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A MAC address used in creating the MAC header of I-tagged frames
        transmitted across a Provider Backbone Bridged Network. The invalid
        value FF:FF:FF:FF:FF:FF indicates that this node is not supported by
        the device."
    ::= { hpnicfMinmScalarGroup 2 }

-- =============================================================================
-- hpnicfMinmVsiTable Definition
-- =============================================================================
hpnicfMinmVsiTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfMinmVsiEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for configuring MAC-in-MAC service instance parameter."
    ::= { hpnicfMinmObjects 2 }

hpnicfMinmVsiEntry  OBJECT-TYPE
    SYNTAX      HpnicfMinmVsiEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for configuring MAC-in-MAC service instance parameter."
    INDEX
    {
        hpnicfVsiIndex
    }
    ::= { hpnicfMinmVsiTable 1 }

HpnicfMinmVsiEntry ::=
    SEQUENCE
    {
        hpnicfMinmVsiBvlan               Integer32,
        hpnicfMinmVsiReEncapsulation     HpnicfMinmEnabledStatus,
        hpnicfMinmVsiNextAvailableLinkId Unsigned32
    }

hpnicfMinmVsiBvlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..4094 | 65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "BVLAN ID. The value 65535 indicates the BVLAN has not been configured
        for get operation, and it indicates deleting the BVLAN configration
        for set operation."
    ::= { hpnicfMinmVsiEntry 1 }

hpnicfMinmVsiReEncapsulation    OBJECT-TYPE
    SYNTAX      HpnicfMinmEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Whether the re-encapsulation is enabled. The reEncapsulation field of
        hpnicfMinmCapabilities denotes whether this node is supported."
    ::= { hpnicfMinmVsiEntry 2 }

hpnicfMinmVsiNextAvailableLinkId    OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Next available connection entry index for creating a connection entry.
        Its value ranges from 0x1 to 0xFFFFFFFF.The invalid value 0xFFFFFFFF
        indicates that connection entry can not be created. When the
        vsiShareConnection field of hpnicfMinmCapabilities is set, this node
        returns an invalid value if the value of hpnicfVsiIndex is not 1."
    ::= { hpnicfMinmVsiEntry 3 }

-- =============================================================================
-- End of hpnicfMinmVsiTable Definition
-- =============================================================================

-- =============================================================================
-- hpnicfMinmUplinkTable Definition
-- =============================================================================
hpnicfMinmUplinkTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfMinmUplinkEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for uplink ports of the VSI in MAC-in-MAC. The uplink field of
        hpnicfMinmCapabilities denotes whether this table is supported."
    ::= { hpnicfMinmObjects 3 }

hpnicfMinmUplinkEntry  OBJECT-TYPE
    SYNTAX      HpnicfMinmUplinkEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for uplink ports of the VSI in MAC-in-MAC."
    INDEX
    {
        hpnicfVsiIndex,
        ifIndex
    }
    ::= { hpnicfMinmUplinkTable 1 }

HpnicfMinmUplinkEntry ::=
    SEQUENCE
    {
        hpnicfMinmUplinkRowStatus      RowStatus
    }

hpnicfMinmUplinkRowStatus     OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Operation status of this table entry."
    ::= { hpnicfMinmUplinkEntry 1 }
-- =============================================================================
-- End of hpnicfMinmUplinkTable Definition
-- =============================================================================

-- =============================================================================
-- hpnicfMinmConnectionTable Definition
-- =============================================================================
hpnicfMinmConnectionTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfMinmConnectionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for the connection information of BMAC."
    ::= { hpnicfMinmObjects 4 }

hpnicfMinmConnectionEntry  OBJECT-TYPE
    SYNTAX      HpnicfMinmConnectionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for the connection information of BMAC.
        When the vsiShareConnection field of hpnicfMinmCapabilities is set,
        connection entry is shared in all VSIs. hpnicfVsiIndex is meaningless
        and must be value 1 in hpnicfMinmConnectionTable."
    INDEX
    {
        hpnicfVsiIndex,
        hpnicfMinmConnectionLinkId
    }
    ::= { hpnicfMinmConnectionTable 1 }

HpnicfMinmConnectionEntry ::=
    SEQUENCE
    {
        hpnicfMinmConnectionLinkId       Unsigned32,
        hpnicfMinmConnectionBmac         MacAddress,
        hpnicfMinmConnectionBvlan        Integer32,
        hpnicfMinmConnectionPort         Integer32,
        hpnicfMinmConnectionStatus       INTEGER,
        hpnicfMinmConnectionAgingStatus  INTEGER,
        hpnicfMinmConnectionRowStatus    RowStatus
    }

hpnicfMinmConnectionLinkId    OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry index when the vsiShareConnection bit of hpnicfMinmCapabilities
        is set(hpnicfVsiIndex is meaningless and must be value 1),
        else entry index in the VSI of hpnicfVsiIndex.Its value ranges
        from 0x1 to 0xFFFFFFFE. It should be obtained from
        hpnicfMinmVsiNextAvailableLinkId for create operation."
    ::= { hpnicfMinmConnectionEntry 1 }

hpnicfMinmConnectionBmac    OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "BMAC of an connection entry."
    ::= { hpnicfMinmConnectionEntry 2 }

hpnicfMinmConnectionBvlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..4094)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "BVLAN of an connection entry."
    ::= { hpnicfMinmConnectionEntry 3 }

hpnicfMinmConnectionPort   OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Port ifindex of an connection entry."
    ::= { hpnicfMinmConnectionEntry 4 }

hpnicfMinmConnectionStatus   OBJECT-TYPE
    SYNTAX      INTEGER
    {
        learned(1),
        configDynamic(2),
        configStatic(3),
        blackhole(4)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "State of an connection entry."
    ::= { hpnicfMinmConnectionEntry 5 }

hpnicfMinmConnectionAgingStatus   OBJECT-TYPE
    SYNTAX      INTEGER
    {
        aging(1),
        noAged(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Aging time of an connection entry."
    ::= { hpnicfMinmConnectionEntry 6 }

hpnicfMinmConnectionRowStatus  OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Operation status of this table entry."
    ::= { hpnicfMinmConnectionEntry 7 }
-- =============================================================================
-- End of hpnicfMinmConnectionTable Definition
-- =============================================================================

END
