-- =============================================================================
-- Copyright (c) 2004-2014 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- Description: Ethernet Virtual Connection MIB
-- Reference:
-- Version: V1.3
-- History:
--   V1.0 2009-08-08 Initial version Created by Jianyong Song
--   V1.1 2011-12-23 Updated by Xuanli Mou
--      Added h3cEvcSrvInstEnableInStat in h3cEvcSrvInstTable.
--      Added h3cEvcSrvInstEnableOutStat in h3cEvcSrvInstTable.
--      Added h3cEvcSrvInstCarTable.
--      Added h3cEvcSrvInstStatInfoTable.
--   V1.2 2012-11-21 Updated by Neng Yan
--      portbased is replaced by default.
--   V1.3 2014-01-03 Updated by Neng Yan
--      Added h3cEvcSrvInstCvlanIdListLow, h3cEvcSrvInstCvlanIdListHigh
--          in h3cEvcSrvInstTable.
--      Added encapSvlanIdCvlanId(6),
--          encapSvlanIdCvlanIdList(7),
--          encapCvlanId(8),
--          encapCvlanIdList(9) for h3cEvcSrvInstEncapCapabilities.
--      Added svlanIdCvlanId(6),
--          svlanIdCvlanIdList(7),
--          svlanIdCvlanIdAll(8),
--          cvlanIdList(9) for h3cEvcSrvInstEncap.
-- =============================================================================
H3C-EVC-MIB DEFINITIONS ::= BEGIN
IMPORTS
        RowStatus,
        TruthValue
    FROM SNMPv2-TC
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Integer32,
        Counter64
    FROM SNMPv2-SMI
        ifIndex
    FROM IF-MIB
        h3cCommon
    FROM HUAWEI-3COM-OID-MIB;

-- =============================================================================
-- module identity part
-- =============================================================================
h3cEvc MODULE-IDENTITY
    LAST-UPDATED
        "200908081000Z"        -- Aug 08, 2009 at 10: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
        "Ethernet Virtual Connection MIB"
    REVISION
        "200908081000Z"   -- Aug 08, 2009 at 10:00 GMT
    DESCRIPTION
        "The initial version of this MIB."
    ::= { h3cCommon 106 }

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

h3cEvcObjects      OBJECT IDENTIFIER ::= { h3cEvc 1 }

h3cEvcScalarGroup OBJECT IDENTIFIER ::= { h3cEvcObjects 1 }

h3cEvcSrvInstEncapCapabilities    OBJECT-TYPE
    SYNTAX      BITS
    {
        encapDefault(0),
        encapUntagged(1),
        encapTagged(2),
        encapSvlanId(3),
        encapSvlanIdList(4),
        encapSvlanIdOnlyTagged(5),
        encapSvlanIdCvlanId(6),
        encapSvlanIdCvlanIdList(7),
        encapCvlanId(8),
        encapCvlanIdList(9)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object displays the encapsulation capabilities of service
         instance with respect to certain fields.  The following values may be
         supported:
         encapDefault:       Support for matching packets by the default
                             criteria which matches packets that do not match
                             any other service instance.
         encapUntagged:      Support for matching untagged packets.
         encapTagged:        Support for matching all tagged packets.
         encapSvlanId:       Support for matching packets by an SVLAN ID, and
                             the packets may be untagged if PVID of the port is
                             the SVLAN ID when the encapSvlanIdOnlyTagged field
                             is not set.
         encapSvlanIdList:   Support for matching packets by SVLAN ID list, and
                             the packets may be untagged if PVID of the port is
                             in SVLAN ID list when the encapSvlanIdOnlyTagged
                             field is not set.
         encapSvlanIdOnlyTagged:   Support for matching only tagged packets
                                   by an SVLAN ID or a SVLAN ID list.
         encapSvlanIdCvlanId:      Support for matching packets by an SVLAN ID
                                   and a CVLAN ID.
         encapSvlanIdCvlanIdList:  Support for matching packets by an SVLAN ID
                                   and a CVLAN ID list.
         encapCvlanId:       Support for matching packets by a CVLAN ID.
         encapCvlanIdList:   Support for matching packets by a CVLAN ID list."
    ::= { h3cEvcScalarGroup 1 }

h3cEvcPortMaxSrvInstNum    OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The max service instance number of a port."
    ::= { h3cEvcScalarGroup 2 }

-- =============================================================================
-- h3cEvcSrvInstTable Definition
-- =============================================================================
h3cEvcSrvInstTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cEvcSrvInstEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for configuring service instance parameter of the port."
    ::= { h3cEvcObjects 2 }

h3cEvcSrvInstEntry  OBJECT-TYPE
    SYNTAX      H3cEvcSrvInstEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for configuring service instance parameter of the port."
    INDEX
    {
        ifIndex,
        h3cEvcSrvInstId
    }
    ::= { h3cEvcSrvInstTable 1 }

H3cEvcSrvInstEntry ::=
    SEQUENCE
    {
        h3cEvcSrvInstId              Integer32,
        h3cEvcSrvInstEncap           INTEGER,
        h3cEvcSrvInstSvlanIdListLow  OCTET STRING,
        h3cEvcSrvInstSvlanIdListHigh OCTET STRING,
        h3cEvcSrvInstRowStatus       RowStatus,
        h3cEvcSrvInstEnableInStat    TruthValue,
        h3cEvcSrvInstEnableOutStat   TruthValue,
        h3cEvcSrvInstCvlanIdListLow  OCTET STRING,
        h3cEvcSrvInstCvlanIdListHigh OCTET STRING
    }

h3cEvcSrvInstId    OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Service instance ID.  Its value ranges from 1 to the value of
        h3cEvcPortMaxSrvInstNum."
    ::= { h3cEvcSrvInstEntry 1 }

h3cEvcSrvInstEncap    OBJECT-TYPE
    SYNTAX      INTEGER
    {
        none(0),
        default(1),
        untagged(2),
        tagged(3),
        svlanIdList(4),
        svlanIdListOnlyTagged(5),
        svlanIdCvlanId(6),
        svlanIdCvlanIdList(7),
        svlanIdCvlanIdAll(8),
        cvlanIdList(9)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Encapsulation mode of a service instance.
        none : Invalid value.
        default :    Match packets by the default criteria which matches
                     packets that do not match any other service instance.
                     It is supported when the encapDefault field of
                     h3cEvcCapabilities is set.
        untagged :   Match untagged packets.  It is supported when the
                     encapUntagged field of h3cEvcCapabilities is set.
        tagged :     Match all tagged packets.  It is supported when the
                     encapTagged field of h3cEvcCapabilities is set.
        svlanIdList: Match packets by SVLAN ID list and untagged packets if
                     PVID of the port is in SVLAN ID list, the SVLAN ID list is
                     denoted by h3cEvcSrvInstSvlanIdListLow and
                     h3cEvcSrvInstSvlanIdListHigh.  It is supported when the
                     encapSvlanId or encapSvlanIdList field of
                     h3cEvcCapabilities is set.  Only a VLAN ID is supported
                     when the encapSvlanId field of h3cEvcCapabilities is set.
        svlanIdListOnlyTagged: Match only tagged packets by an SVLAN ID list,
                               the SVLAN ID is denoted by
                               h3cEvcSrvInstSvlanIdListLow and
                               h3cEvcSrvInstSvlanIdListLow.  It is
                               supported when the encapSvlanId (or
                               encapSvlanIdList) and encapSvlanIdOnlyTagged
                               fields of h3cEvcCapabilities are set.  Only a
                               VLAN ID is supported when the encapSvlanId and
                               encapSvlanIdOnlyTagged field of
                               h3cEvcCapabilities are set.
        svlanIdCvlanId: Match packets by an SVLAN ID and a CVLAN ID.
                        The SVLAN ID is denoted by h3cEvcSrvInstSvlanIdListLow
                        or h3cEvcSrvInstSvlanIdListHigh.  The CVLAN ID is
                        denoted by h3cEvcSrvInstCvlanIdListLow or
                        h3cEvcSrvInstCvlanIdListHigh.  It is supported when
                        the encapSvlanIdCvlanId field of
                        h3cEvcCapabilities is set.
        svlanIdCvlanIdList: Match packets by an SVLAN ID and a CVLAN ID list.
                            The SVLAN ID is denoted by
                            h3cEvcSrvInstSvlanIdListLow or
                            h3cEvcSrvInstSvlanIdListHigh.  The CVLAN ID list is
                            denoted by h3cEvcSrvInstCvlanIdListLow and
                            h3cEvcSrvInstCvlanIdListHigh.  It is supported when
                            the encapSvlanIdCvlanIdList field of
                            h3cEvcCapabilities is set.
        svlanIdCvlanIdAll:  Match packets by an SVLAN ID and all CVLAN IDs.
                         The SVLAN ID is denoted by h3cEvcSrvInstSvlanIdListLow
                         or h3cEvcSrvInstSvlanIdListHigh.  The CVLAN ID
                         includes all VLAN IDs.  It is supported when the
                         encapSvlanIdCvlanIdList field of h3cEvcCapabilities
                         is set.
        cvlanIdList:  Match packets by CVLAN ID list.  The CVLAN ID list is
                      denoted by h3cEvcSrvInstCvlanIdListLow and
                      h3cEvcSrvInstCvlanIdListLow.  It is supported when the
                      encapCvlanId or encapCvlanIdList field of
                      h3cEvcCapabilities is set."
    ::= { h3cEvcSrvInstEntry 2 }

h3cEvcSrvInstSvlanIdListLow OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..256))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object contains the first 2048 bits of the 4096-bit vector,
        indicating which SVLAN IDs are assigned to this service instance.  The
        lowest order bit of the first octet corresponds to SVLAN 1, while the
        highest order bit of the last octet corresponds to SVLAN 2048.  A bit
        that is on (equal to 1) indicates that the corresponding SVLAN ID is
        assigned to this service instance."
    ::= { h3cEvcSrvInstEntry 3 }

h3cEvcSrvInstSvlanIdListHigh OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..256))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object contains the second 2048 bits of the 4096-bit vector,
        indicating which SVLAN IDs are assigned to this service instance.  The
        lowest order bit of the first octet corresponds to SVLAN 2049, while
        the third highest order bit of the last octet corresponds to SVLAN
        4094.  A bit that is on (equal to 1) indicates that the corresponding
        SVLAN ID is assigned to this service instance."
    ::= { h3cEvcSrvInstEntry 4 }

h3cEvcSrvInstRowStatus  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."
    ::= { h3cEvcSrvInstEntry 5 }

h3cEvcSrvInstEnableInStat OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The object is used to configure inbound statistics function
        to this service instance."
    DEFVAL { false }
    ::= { h3cEvcSrvInstEntry 6 }

h3cEvcSrvInstEnableOutStat OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The object is used to configure outbound statistics function
        to this service instance."
    DEFVAL { false }
    ::= { h3cEvcSrvInstEntry 7 }

h3cEvcSrvInstCvlanIdListLow OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..256))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object contains the first 2048 bits of the 4096-bit vector,
        indicating which CVLAN IDs are assigned to this service instance.  The
        lowest order bit of the first octet corresponds to CVLAN 1, while the
        highest order bit of the last octet corresponds to CVLAN 2048.  A bit
        that is on (equal to 1) indicates that the corresponding CVLAN ID is
        assigned to this service instance."
    DEFVAL { ''h }
    ::= { h3cEvcSrvInstEntry 8 }

h3cEvcSrvInstCvlanIdListHigh OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..256))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object contains the second 2048 bits of the 4096-bit vector,
        indicating which CVLAN IDs are assigned to this service instance.  The
        lowest order bit of the first octet corresponds to CVLAN 2049, while
        the third highest order bit of the last octet corresponds to CVLAN
        4094.  A bit that is on (equal to 1) indicates that the corresponding
        CVLAN ID is assigned to this service instance."
    DEFVAL { ''h }
    ::= { h3cEvcSrvInstEntry 9 }
-- =============================================================================
-- End of h3cEvcSrvInstTable Definition
-- =============================================================================

-- =============================================================================
-- h3cEvcSrvInstCarTable Definition
-- =============================================================================
h3cEvcSrvInstCarTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cEvcSrvInstCarEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of configuring CAR for the service instance."
    ::= { h3cEvcObjects 3 }

h3cEvcSrvInstCarEntry  OBJECT-TYPE
    SYNTAX      H3cEvcSrvInstCarEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the table containing CAR configuration on
         the service instance.  If the following entries are not supported
         by the service instance, or not configured to the service instance,
         they are zero."
    INDEX
    {
        ifIndex,
        h3cEvcSrvInstId
    }
    ::= { h3cEvcSrvInstCarTable 1 }

H3cEvcSrvInstCarEntry ::=
    SEQUENCE
    {
        h3cEvcSrvInstInCarIndex          Integer32,
        h3cEvcSrvInstOutCarIndex         Integer32
    }

h3cEvcSrvInstInCarIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The object is used to configure inbound CAR function
        to this service instance.
        The CAR index is defined in h3cIfQoSAggregativeCarIndex
        at H3C-IFQOS2-MIB.  The default value is 0."
    ::= { h3cEvcSrvInstCarEntry 1 }

h3cEvcSrvInstOutCarIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The object is used to configure outbound CAR function
        to this service instance.
        The CAR index is defined in h3cIfQoSAggregativeCarIndex
        at H3C-IFQOS2-MIB.  The default value is 0."
    ::= { h3cEvcSrvInstCarEntry 2 }
-- =============================================================================
-- End of h3cEvcSrvInstTable Definition
-- =============================================================================

-- =============================================================================
-- h3cEvcSrvInstStatInfoTable Definition
-- =============================================================================
h3cEvcSrvInstStatInfoTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cEvcSrvInstStatInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for displaying statistics information of service instance."
    ::= { h3cEvcObjects 4 }

h3cEvcSrvInstStatInfoEntry  OBJECT-TYPE
    SYNTAX      H3cEvcSrvInstStatInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table entry of the service instance.
         If the statistics function is not supported
         by the service instance, or not configured to the service instance,
         following entries will be zero."
    INDEX
    {
        ifIndex,
        h3cEvcSrvInstId
    }
    ::= { h3cEvcSrvInstStatInfoTable 1 }

H3cEvcSrvInstStatInfoEntry ::=
    SEQUENCE
    {
        h3cEvcSrvInstInPackets       Counter64,
        h3cEvcSrvInstInBytes         Counter64,
        h3cEvcSrvInstOutPackets      Counter64,
        h3cEvcSrvInstOutBytes        Counter64
    }

h3cEvcSrvInstInPackets    OBJECT-TYPE
    SYNTAX      Counter64
    UNITS       "packets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of inbound packets received on this service instance."
    ::= { h3cEvcSrvInstStatInfoEntry 1 }

h3cEvcSrvInstInBytes    OBJECT-TYPE
    SYNTAX      Counter64
    UNITS       "bytes"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Byte counts of inbound packets received on this service instance."
    ::= { h3cEvcSrvInstStatInfoEntry 2 }

h3cEvcSrvInstOutPackets    OBJECT-TYPE
    SYNTAX      Counter64
    UNITS       "packets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of outbound packets transmitted on this service instance."
    ::= { h3cEvcSrvInstStatInfoEntry 3 }

h3cEvcSrvInstOutBytes    OBJECT-TYPE
    SYNTAX      Counter64
    UNITS       "bytes"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Byte counts of outbound packets transmitted on this service instance."
    ::= { h3cEvcSrvInstStatInfoEntry 4 }
-- =============================================================================
-- End of h3cEvcSrvInstStatInfoTable Definition
-- =============================================================================

END
