-- ============================================================================
-- Copyright (c) 2004-2022 New H3C Tech. Co., Ltd. All rights reserved.
--
-- Description: 802.1 VLAN Mapping MIB Version 1
-- Reference:
-- Version: V1.2
-- History:
-- V1.0 Initial version Created by XiaoRen Yang, 2013.3.8
-- V1.1 Updated by zhuhaifeng 2018-12-12.
--   Add hh3cVMAP1to2RangeNestedPrio to hh3cVMAP1to2RangeTable.
--   Add hh3cVMAP1to2SingleNestedPrio to hh3cVMAP1to2SingleTable.
--   Add hh3cVMAP2to1Table.
-- V1.2 Updated by chenjie 2022-06-17
--   Add hh3cVMAPTrapGroup
--   Add hh3cVMAPIfChassis to hh3cVMAPTrapGroup
--   Add hh3cVMAPIfSlot to hh3cVMAPTrapGroup
--   Add hh3cVMAPThresholdRatio to hh3cVMAPTrapGroup.
--   Add hh3cVMAPTrap to hh3cVmap
--   Add hh3cVMAPTrapPrex to hh3cVMAPTrap.
--   Add hh3cVMAPCountThresholdAlarm to hh3cVMAPTrapPrex
--   Add hh3cVMAPCountThresholdResume to hh3cVMAPTrapPrex.
-- ==================================================================
HH3C-VMAP-MIB DEFINITIONS ::= BEGIN
IMPORTS
    RowStatus, TruthValue
        FROM SNMPv2-TC
    MODULE-IDENTITY, OBJECT-TYPE, Integer32, NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    ifIndex
        FROM IF-MIB
    hh3cCommon
        FROM HH3C-OID-MIB;

-- ==================================================================
--
-- module identity part
--
-- ==================================================================
hh3cVmap MODULE-IDENTITY
    LAST-UPDATED
        "202206170000Z"
    ORGANIZATION
       "New H3C Tech. Co., Ltd."
    CONTACT-INFO
       "Platform Team New H3C Tech. Co., Ltd.
        Hai-Dian District Beijing P.R. China
        http://www.h3c.com
        Zip: 100085"
    DESCRIPTION
        "802.1 VLAN Mapping MIB Version"
    REVISION    "202206170000Z"
    DESCRIPTION "Add hh3cVMAPTrapGroup
                 Add hh3cVMAPIfChassis to hh3cVMAPTrapGroup
                 Add hh3cVMAPIfSlot to hh3cVMAPTrapGroup
                 Add hh3cVMAPThresholdRatio to hh3cVMAPTrapGroup.
                 Add hh3cVMAPTrap to hh3cVmap
                 Add hh3cVMAPTrapPrex to hh3cVMAPTrap.
                 Add hh3cVMAPCountThresholdAlarm to hh3cVMAPTrapPrex
                 Add hh3cVMAPCountThresholdResume to hh3cVMAPTrapPrex."
    REVISION    "201812120000Z"
    DESCRIPTION "Add hh3cVMAP1to2RangeNestedPrio to hh3cVMAP1to2RangeTable.
                 Add hh3cVMAP1to2SingleNestedPrio to hh3cVMAP1to2SingleTable.
                 Add hh3cVMAP2to1Table."
    REVISION    "201303080000Z"
    DESCRIPTION "The initial version of this MIB."
    ::= { hh3cCommon 138 }

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

hh3cVMAPNNITable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cVMAPNNIEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "VLAN mapping NNI table."
    ::= { hh3cVmap 1 }

hh3cVMAPNNIEntry OBJECT-TYPE
    SYNTAX      Hh3cVMAPNNIEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "VLAN mapping NNI table entries."
    INDEX { ifIndex }
    ::= { hh3cVMAPNNITable 1 }

Hh3cVMAPNNIEntry ::=
    SEQUENCE
    {
        hh3cVMAPNNIState    TruthValue
    }

hh3cVMAPNNIState    OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Set the network-side interface for a many-to-one VLAN mapping."
    ::= { hh3cVMAPNNIEntry 1 }

hh3cVMAP1to1Table  OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cVMAP1to1Entry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "One-to-one VLAN mapping table."
    ::= { hh3cVmap 2 }

hh3cVMAP1to1Entry OBJECT-TYPE
    SYNTAX     Hh3cVMAP1to1Entry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "One-to-one VLAN mapping table entries."
    INDEX { ifIndex, hh3cVMAP1to1Vlan }
    ::= { hh3cVMAP1to1Table 1 }

Hh3cVMAP1to1Entry ::=
    SEQUENCE
    {
        hh3cVMAP1to1Vlan             Integer32,
        hh3cVMAP1to1TranslatedVlan   Integer32,
        hh3cVMAP1to1RowStatus        RowStatus
    }

hh3cVMAP1to1Vlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The original VLAN for a one-to-one VLAN mapping on the port."
    ::= { hh3cVMAP1to1Entry 1 }

hh3cVMAP1to1TranslatedVlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The translated VLAN for a one-to-one VLAN mapping on the port."
    ::= { hh3cVMAP1to1Entry 2 }

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

hh3cVMAPNto1RangeTable    OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cVMAPNto1RangeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Many-to-one VLAN mapping table.  The original VLANs of each entry
         should be a range of VLANs (for example, VLAN 20 to 30)."
    ::= { hh3cVmap 3 }

hh3cVMAPNto1RangeEntry OBJECT-TYPE
    SYNTAX     Hh3cVMAPNto1RangeEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Many-to-one VLAN mapping table entries.  The original VLANs of each
         entry should be a range of VLANs (for example, VLAN 20 to 30)."
    INDEX { ifIndex, hh3cVMAPNto1StartVlan }
    ::= { hh3cVMAPNto1RangeTable 1 }

Hh3cVMAPNto1RangeEntry ::=
    SEQUENCE
    {
        hh3cVMAPNto1StartVlan              Integer32,
        hh3cVMAPNto1EndVlan                Integer32,
        hh3cVMAPNto1RangeTranslatedVlan    Integer32,
        hh3cVMAPNto1RangeRowStatus         RowStatus
    }

hh3cVMAPNto1StartVlan   OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The original start VLAN for a many-to-one VLAN mapping on the port."
    ::= { hh3cVMAPNto1RangeEntry 1 }

hh3cVMAPNto1EndVlan   OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The original end VLAN for a many-to-one VLAN mapping on the port."
    ::= { hh3cVMAPNto1RangeEntry 2 }

hh3cVMAPNto1RangeTranslatedVlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The translated VLAN for a many-to-one VLAN mapping on the port."
    ::= { hh3cVMAPNto1RangeEntry 3 }

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

hh3cVMAPNto1SingleTable    OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cVMAPNto1SingleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Many-to-one VLAN mapping table.  The original VLANs of each entry
         should be a group of VLANs listed one by
         one (for example, VLAN 30, 31, 32)."
    ::= { hh3cVmap 4 }

hh3cVMAPNto1SingleEntry OBJECT-TYPE
    SYNTAX     Hh3cVMAPNto1SingleEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Many-to-one VLAN mapping table entries.  The original VLANs of each
         entry should be a group of VLANs listed one by
         one (for example, VLAN 30, 31, 32)."
    INDEX { ifIndex, hh3cVMAPNto1Vlan }
    ::= { hh3cVMAPNto1SingleTable 1 }

Hh3cVMAPNto1SingleEntry ::=
    SEQUENCE
    {
        hh3cVMAPNto1Vlan                    Integer32,
        hh3cVMAPNto1SingleTranslatedVlan    Integer32,
        hh3cVMAPNto1SingleRowStatus         RowStatus
    }

hh3cVMAPNto1Vlan   OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The original VLANs for a many-to-one VLAN mapping on the port."
    ::= { hh3cVMAPNto1SingleEntry 1 }

hh3cVMAPNto1SingleTranslatedVlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The translated VLAN for a many-to-one VLAN mapping on the port."
    ::= { hh3cVMAPNto1SingleEntry 2 }

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

hh3cVMAP1to2RangeTable    OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cVMAP1to2RangeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "One-to-two VLAN mapping table.  The original VLANs of each entry
         should be a range of VLANs (for example, VLAN 20 to 30)."
    ::= { hh3cVmap 5 }

hh3cVMAP1to2RangeEntry OBJECT-TYPE
    SYNTAX      Hh3cVMAP1to2RangeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "One-to-two VLAN mapping table entries.  The original VLANs of
         each entry should be a range of VLANs (for example, VLAN 20 to 30)."
    INDEX { ifIndex, hh3cVMAP1to2StartVlan }
    ::= { hh3cVMAP1to2RangeTable 1 }

Hh3cVMAP1to2RangeEntry ::=
    SEQUENCE
    {
        hh3cVMAP1to2StartVlan          Integer32,
        hh3cVMAP1to2EndVlan            Integer32,
        hh3cVMAP1to2RangeNestedVlan    Integer32,
        hh3cVMAP1to2RangeRowStatus     RowStatus,
        hh3cVMAP1to2RangeNestedPrio    Integer32
    }

hh3cVMAP1to2StartVlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The original start VLAN for a one-to-two VLAN mapping on the port."
    ::= { hh3cVMAP1to2RangeEntry 1 }

hh3cVMAP1to2EndVlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The original end VLAN for a one-to-two VLAN mapping on the port."
    ::= { hh3cVMAP1to2RangeEntry 2 }

hh3cVMAP1to2RangeNestedVlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The nested VLAN for a one-to-two VLAN mapping on the port."
    ::= { hh3cVMAP1to2RangeEntry 3 }

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

hh3cVMAP1to2RangeNestedPrio OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The nested VLAN tag's priority for a one-to-two VLAN mapping on the port."
    DEFVAL { 65535 }
    ::= { hh3cVMAP1to2RangeEntry 5 }

hh3cVMAP1to2SingleTable    OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cVMAP1to2SingleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "One-to-two VLAN mapping table.  The original VLANs of each entry should
         be a group of VLANs listed one by one (for example, VLAN 30, 31, 32)."
    ::= { hh3cVmap 6 }

hh3cVMAP1to2SingleEntry OBJECT-TYPE
    SYNTAX      Hh3cVMAP1to2SingleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "One-to-two VLAN mapping table entries.  The original VLANs of each
         entry should be a group of VLANs listed one by
         one (for example, VLAN 30, 31, 32)."
    INDEX { ifIndex, hh3cVMAP1to2Vlan }
    ::= { hh3cVMAP1to2SingleTable 1 }

Hh3cVMAP1to2SingleEntry ::=
    SEQUENCE
    {
        hh3cVMAP1to2Vlan                Integer32,
        hh3cVMAP1to2SingleNestedVlan    Integer32,
        hh3cVMAP1to2SingleRowStatus     RowStatus,
        hh3cVMAP1to2SingleNestedPrio    Integer32
    }

hh3cVMAP1to2Vlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The original VLANs for a one-to-two VLAN mapping on the port."
    ::= { hh3cVMAP1to2SingleEntry 1 }

hh3cVMAP1to2SingleNestedVlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The nested VLAN for a one-to-two VLAN mapping on the port."
    ::= { hh3cVMAP1to2SingleEntry 2 }

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

hh3cVMAP1to2SingleNestedPrio OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The nested VLAN tag's priority for a one-to-two VLAN mapping on the port."
    DEFVAL { 65535 }
    ::= { hh3cVMAP1to2SingleEntry 4 }

hh3cVMAP2to2Table    OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cVMAP2to2Entry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Two-to-two VLAN mapping table."
    ::= { hh3cVmap 7 }

hh3cVMAP2to2Entry OBJECT-TYPE
    SYNTAX      Hh3cVMAP2to2Entry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Two-to-two VLAN mapping table entries."
    INDEX { ifIndex, hh3cVMAP2to2OuterVlan, hh3cVMAP2to2InnerVlan }
    ::= { hh3cVMAP2to2Table 1 }

Hh3cVMAP2to2Entry ::=
    SEQUENCE
    {
        hh3cVMAP2to2OuterVlan             Integer32,
        hh3cVMAP2to2InnerVlan             Integer32,
        hh3cVMAP2to2TranslatedOuterVlan   Integer32,
        hh3cVMAP2to2TranslatedInnerVlan   Integer32,
        hh3cVMAP2to2RowStatus             RowStatus
    }

hh3cVMAP2to2OuterVlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The original outer VLAN for a two-to-two VLAN mapping on the port."
    ::= { hh3cVMAP2to2Entry 1 }

hh3cVMAP2to2InnerVlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The original inner VLAN for a two-to-two VLAN mapping on the port."
    ::= { hh3cVMAP2to2Entry 2 }

hh3cVMAP2to2TranslatedOuterVlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The translated outer VLAN for a two-to-two VLAN mapping on the port."
    ::= { hh3cVMAP2to2Entry 3 }

hh3cVMAP2to2TranslatedInnerVlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The translated inner VLAN for a two-to-two VLAN mapping on the port."
    ::= { hh3cVMAP2to2Entry 4 }

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

hh3cVMAP2to1Table    OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cVMAP2to1Entry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Two-to-one VLAN mapping table."
    ::= { hh3cVmap 8 }

hh3cVMAP2to1Entry OBJECT-TYPE
    SYNTAX      Hh3cVMAP2to1Entry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Two-to-one VLAN mapping table entries."
    INDEX { ifIndex, hh3cVMAP2to1OuterVlan, hh3cVMAP2to1InnerVlan }
    ::= { hh3cVMAP2to1Table 1 }

Hh3cVMAP2to1Entry ::=
    SEQUENCE
    {
        hh3cVMAP2to1OuterVlan             Integer32,
        hh3cVMAP2to1InnerVlan             Integer32,
        hh3cVMAP2to1TranslatedOuterVlan   Integer32,
        hh3cVMAP2to1RowStatus             RowStatus
    }

hh3cVMAP2to1OuterVlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The original outer VLAN for a two-to-one VLAN mapping on the port."
    ::= { hh3cVMAP2to1Entry 1 }

hh3cVMAP2to1InnerVlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The original inner VLAN for a two-to-one VLAN mapping on the port."
    ::= { hh3cVMAP2to1Entry 2 }

hh3cVMAP2to1TranslatedOuterVlan    OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The translated outer VLAN for a two-to-one VLAN mapping on the port."
    ::= { hh3cVMAP2to1Entry 3 }

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

hh3cVMAPTrapGroup OBJECT IDENTIFIER ::= { hh3cVmap 9 }

hh3cVMAPIfChassis    OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Chassis number."
    ::= { hh3cVMAPTrapGroup 1 }

hh3cVMAPIfSlot    OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Slot number."
    ::= { hh3cVMAPTrapGroup 2 }

hh3cVMAPThresholdRatio    OBJECT-TYPE
    SYNTAX      Integer32 (0..100)
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Ratio which the current configure number in the system total about vlan mapping
        and vlan stacking."
    ::= { hh3cVMAPTrapGroup 3 }

hh3cVMAPTrap OBJECT IDENTIFIER ::= { hh3cVmap 10 }
hh3cVMAPTrapPrex OBJECT IDENTIFIER ::= { hh3cVMAPTrap 0 }

hh3cVMAPCountThresholdAlarm NOTIFICATION-TYPE
    OBJECTS
    {
        hh3cVMAPIfChassis,
        hh3cVMAPIfSlot,
        hh3cVMAPThresholdRatio
    }
    STATUS current
    DESCRIPTION
        "The notification is generated when configure number exceeds the
         upper threshold."
    ::= { hh3cVMAPTrapPrex 1 }

hh3cVMAPCountThresholdResume NOTIFICATION-TYPE
    OBJECTS
    {
        hh3cVMAPIfChassis,
        hh3cVMAPIfSlot,
        hh3cVMAPThresholdRatio
    }
    STATUS current
    DESCRIPTION
        "The notification is generated when configure number from
         above the upper threshold to below the lower threshold."
    ::= { hh3cVMAPTrapPrex 2 }

END
