-- ==================================================================
-- Copyright (c) 2004-2017 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- Description: Multicast Snooping MIB
-- Reference:
-- Version: V1.1
-- History:
-- V1.0 2014-06-17 Created by Huang Yun
-- V1.1 2017-09-26 Modified by meihaitao and yangjingdong
--      Added h3cMcsVUProxyEnabled and h3cMcsVUQuerierElection to h3cMcsVirtualUnitConfigTable.
--      Modified the description of object h3cMcsL2EntryIfIndex.
--      Added 'tunnel(6)', 'mtunnel(7)' to object h3cMcsL2EntryPortType.
--      Added 'b(6)', 'e(7)', 'de(8)', 'ee(9)', 'suc(10)', 'f(11)' to object h3cMcsL2EntryPortAttribute.
--      Modified the description of object h3cMcsL2EntryPortAttribute.
-- ==================================================================
--
-- Variables and types be imported
--
-- ==================================================================
H3C-MULTICAST-SNOOPING-MIB DEFINITIONS ::= BEGIN


IMPORTS

    MODULE-IDENTITY,OBJECT-TYPE,Unsigned32,Counter64
        FROM SNMPv2-SMI

    TEXTUAL-CONVENTION,RowStatus,TruthValue
        FROM SNMPv2-TC

    h3cCommon
        FROM HUAWEI-3COM-OID-MIB

    InetAddressType, InetAddress
        FROM INET-ADDRESS-MIB

    InterfaceIndex
        FROM IF-MIB;

h3cMulticastSnoop MODULE-IDENTITY
    LAST-UPDATED "201709260950Z"
    ORGANIZATION
        "Hangzhou H3C Tech. Co., Ltd."
    CONTACT-INFO
        "Platform Team Hangzhou H3C Tech. Co., Ltd.
        Hai-Dian District Beijing P.R. China
        http://www.h3c.com
        Zip:100085
        "
    DESCRIPTION
        "IGMP/MLD Snooping Management MIB"
    -- Revision history.
    REVISION "201709260950Z"
    DESCRIPTION
        "Added h3cMcsVUProxyEnabled and h3cMcsVUQuerierElection to h3cMcsVirtualUnitConfigTable.
        Modified the description of object h3cMcsL2EntryIfIndex.
        Added 'tunnel(6)', 'mtunnel(7)' to object h3cMcsL2EntryPortType.
        Added 'b(6)', 'e(7)', 'de(8)', 'ee(9)', 'suc(10)', 'f(11)' to object h3cMcsL2EntryPortAttribute.
        Modified the description of object h3cMcsL2EntryPortAttribute."
    REVISION "201405141700Z"
    DESCRIPTION
        "The initial version of this MIB file."
    ::= { h3cCommon 123 }

H3cVirtualUnitType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "VLAN configuration or VSI configuration."
    SYNTAX      INTEGER  { vlan(1), vsi(2) }

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

h3cMulticastSnoopObject OBJECT IDENTIFIER ::= {   h3cMulticastSnoop 1  }

h3cMcsGlobalConfigTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF H3cMcsGlobalConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Table containing information about the global
        configuration of IGMP/MLD snooping."
    ::= { h3cMulticastSnoopObject  1 }

h3cMcsGlobalConfigEntry OBJECT-TYPE
    SYNTAX     H3cMcsGlobalConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Entry containing information about the global
        configuration of IGMP/MLD snooping."
    INDEX      {  h3cMcsGlbSnoopingType }
    ::= { h3cMcsGlobalConfigTable 1 }

H3cMcsGlobalConfigEntry ::=
    SEQUENCE
    {
        h3cMcsGlbSnoopingType           InetAddressType,
        h3cMcsGlbRowStatus              RowStatus,
        h3cMcsGlbEntryLimit             Unsigned32,
        h3cMcsGlbHostAgingTime          Unsigned32,
        h3cMcsGlbMaxResponseTime        Unsigned32,
        h3cMcsGlbRouterAgingTime        Unsigned32,
        h3cMcsGlbLastMemQryInterval     Unsigned32,
        h3cMcsGlbDropUnknownEnabled     TruthValue
    }

h3cMcsGlbSnoopingType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Type of the global configuration.  IPv4 means IGMP snooping
        configuration, and IPv6 means MLD snooping configuration."
    ::= { h3cMcsGlobalConfigEntry 1 }

h3cMcsGlbRowStatus OBJECT-TYPE
    SYNTAX  RowStatus
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The activation of a row enables IGMP/MLD snooping globally.
        The destruction of a row disables IGMP/MLD snooping globally."
    ::= { h3cMcsGlobalConfigEntry 2 }

h3cMcsGlbEntryLimit   OBJECT-TYPE
    SYNTAX  Unsigned32
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Global maximum number of IGMP/MLD snooping forwarding entries."
    ::= { h3cMcsGlobalConfigEntry  3 }

h3cMcsGlbHostAgingTime   OBJECT-TYPE
    SYNTAX  Unsigned32  (1..8097894)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Global aging time of the multicast group on ports."
    DEFVAL  {260}
    ::= { h3cMcsGlobalConfigEntry  4 }

h3cMcsGlbMaxResponseTime  OBJECT-TYPE
    SYNTAX  Unsigned32   (1..3174)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Global maximum query response time."
    DEFVAL  {10}
    ::= { h3cMcsGlobalConfigEntry  5 }

h3cMcsGlbRouterAgingTime  OBJECT-TYPE
    SYNTAX  Unsigned32 (1..8097894)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Global aging time of router ports."
    DEFVAL  {260}
    ::= { h3cMcsGlobalConfigEntry  6 }

h3cMcsGlbLastMemQryInterval  OBJECT-TYPE
    SYNTAX  Unsigned32 (1..25)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Global last member query interval."
    DEFVAL  {1}
    ::= { h3cMcsGlobalConfigEntry  7 }

h3cMcsGlbDropUnknownEnabled OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Whether the feature of dropping unknown packets is enabled globally."
    DEFVAL     { false }
    ::= { h3cMcsGlobalConfigEntry  8 }

h3cMcsVirtualUnitConfigTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF H3cMcsVirtualUnitConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Table containing configuration information about the specified
        VLAN or VSI."
    ::= { h3cMulticastSnoopObject  2 }

h3cMcsVirtualUnitConfigEntry OBJECT-TYPE
    SYNTAX     H3cMcsVirtualUnitConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Entry containing information of the specified VLAN or VSI."
    INDEX
    {
        h3cMcsVUType,
        h3cMcsVUID,
        h3cMcsVUSnoopingType
    }
    ::= { h3cMcsVirtualUnitConfigTable 1 }

H3cMcsVirtualUnitConfigEntry ::=
    SEQUENCE
    {
        h3cMcsVUType                     H3cVirtualUnitType,
        h3cMcsVUID                       Unsigned32,
        h3cMcsVUSnoopingType             InetAddressType,
        h3cMcsVURowStatus                RowStatus,
        h3cMcsVUHostAgingTime            Unsigned32,
        h3cMcsVUMaxResponseTime          Unsigned32,
        h3cMcsVURouterAgingTime          Unsigned32,
        h3cMcsVULastMemQryInterval       Unsigned32,
        h3cMcsVUDropUnknownEnabled       TruthValue,
        h3cMcsVUPimSnoopingEnabled       TruthValue,
        h3cMcsVUVersion                  Unsigned32,
        h3cMcsVUQuerierEnabled           TruthValue,
        h3cMcsVUQuerierInterval          Unsigned32,
        h3cMcsVUGeneQuerierSourceAddress InetAddress,
        h3cMcsVUSpecQuerierSourceAddress InetAddress,
        h3cMcsVULeaveSourceAddress       InetAddress,
        h3cMcsVUReportSourceAddress      InetAddress,
        h3cMcsVUProxyEnabled             TruthValue,
        h3cMcsVUQuerierElection          TruthValue
    }

h3cMcsVUType  OBJECT-TYPE
    SYNTAX     H3cVirtualUnitType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Type of virtual unit."
    ::= { h3cMcsVirtualUnitConfigEntry 1 }

h3cMcsVUID  OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "VLAN ID or VSI Index.  Its value ranges from 1 to 4094 when type is
        VLAN, and from 0 to 0xFFFFFFFE when type is VSI"
    ::= { h3cMcsVirtualUnitConfigEntry 2 }

h3cMcsVUSnoopingType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Type of the configuration.  IPv4 means IGMP snooping configuration,
        and IPv6 means MLD snooping configuration."
    ::= { h3cMcsVirtualUnitConfigEntry 3 }

h3cMcsVURowStatus OBJECT-TYPE
    SYNTAX  RowStatus
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The activation of a row enables IGMP/MLD snooping in the VLAN or
        VSI.  The destruction of a row disables IGMP/MLD snooping in the
        VLAN or VSI."
    ::= { h3cMcsVirtualUnitConfigEntry 4 }

h3cMcsVUHostAgingTime   OBJECT-TYPE
    SYNTAX  Unsigned32  (0..8097894)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Aging time of the multicast group on ports in the VLAN or VSI.
        A value of zero indicates that it is not configured in the VLAN
        or VSI."
    ::= { h3cMcsVirtualUnitConfigEntry  5 }

h3cMcsVUMaxResponseTime  OBJECT-TYPE
    SYNTAX  Unsigned32   (0..3174)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Maximum query response time in the VLAN or VSI.  A value of
        zero indicates that it is not configured in the VLAN or VSI."
    ::= { h3cMcsVirtualUnitConfigEntry  6 }

h3cMcsVURouterAgingTime  OBJECT-TYPE
    SYNTAX  Unsigned32 (0..8097894)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Aging time of the router port in the VLAN or VSI.  A value of
        zero indicates that it is not configured in the VLAN or VSI."
    ::= { h3cMcsVirtualUnitConfigEntry  7 }

h3cMcsVULastMemQryInterval  OBJECT-TYPE
    SYNTAX  Unsigned32 (0..25)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Last member query interval in the VLAN or VSI.  A value of
        zero indicates that it is not configured in the VLAN or VSI."
    ::= { h3cMcsVirtualUnitConfigEntry  8 }

h3cMcsVUDropUnknownEnabled OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Whether the feature of dropping unknown packets is enabled in
        the VLAN or VSI."
    DEFVAL     { false }
    ::= { h3cMcsVirtualUnitConfigEntry  9 }

h3cMcsVUPimSnoopingEnabled OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Whether PIM snooping is enabled in the VLAN or VSI."
    DEFVAL     { false }
    ::= { h3cMcsVirtualUnitConfigEntry  10 }

h3cMcsVUVersion OBJECT-TYPE
    SYNTAX     Unsigned32 (2|3)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Version of IGMP/MLD snooping that is running on the VLAN.
        Value 2 represents IGMPv2 snooping and MLDv1 snooping,
        and value 3 represents IGMPv3 snooping and MLDv2 snooping."
    DEFVAL     { 2 }
    ::= { h3cMcsVirtualUnitConfigEntry 11 }

h3cMcsVUQuerierEnabled OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Whether the querier feature is enabled in the VLAN or VSI."
    DEFVAL     { false }
    ::= { h3cMcsVirtualUnitConfigEntry  12 }

h3cMcsVUQuerierInterval OBJECT-TYPE
    SYNTAX     Unsigned32 (2..31744)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Query interval."
    DEFVAL     { 125 }
    ::= { h3cMcsVirtualUnitConfigEntry  13 }

h3cMcsVUGeneQuerierSourceAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Source IP address of IGMP or MLD general query packets.  Its value
        is 255.255.255.255 or FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
        when not configured."
    ::= { h3cMcsVirtualUnitConfigEntry 14 }

h3cMcsVUSpecQuerierSourceAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Source IP address of IGMP or MLD group-specific query packets.  Its
        value is 255.255.255.255 or FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
        when not configured."
    ::= { h3cMcsVirtualUnitConfigEntry 15 }

h3cMcsVULeaveSourceAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Source IP address of IGMP or MLD leave packets.  Its value is
        255.255.255.255 or FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
        when not configured."
    ::= { h3cMcsVirtualUnitConfigEntry 16 }

h3cMcsVUReportSourceAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Source IP address of IGMP or MLD report packets.  Its value is
        255.255.255.255 or FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
        when not configured."
    ::= { h3cMcsVirtualUnitConfigEntry 17 }

h3cMcsVUProxyEnabled OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Whether the proxy feature is enabled in the VLAN or VSI."
    DEFVAL     { false }
    ::= { h3cMcsVirtualUnitConfigEntry  18 }

h3cMcsVUQuerierElection OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Whether the querier election feature is enabled in the VLAN or VSI."
    DEFVAL     { false }
    ::= { h3cMcsVirtualUnitConfigEntry  19 }

h3cMcsL2EntryTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF H3cMcsL2EntryEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Table containing a list of Layer 2 multicast group entries."
    ::= { h3cMulticastSnoopObject 3 }

h3cMcsL2EntryEntry OBJECT-TYPE
    SYNTAX     H3cMcsL2EntryEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Entry of l2-multicast group, which is created for each group
        learned or configured in the VLAN or VSI."
    INDEX
    {
        h3cMcsL2EntryVUType,
        h3cMcsL2EntryVUID,
        h3cMcsL2EntryAddressType,
        h3cMcsL2EntryGroupAddress,
        h3cMcsL2EntrySourceAddress,
        h3cMcsL2EntryIfIndex
    }
    ::= { h3cMcsL2EntryTable 1 }

H3cMcsL2EntryEntry ::=
    SEQUENCE
    {
        h3cMcsL2EntryVUType          H3cVirtualUnitType,
        h3cMcsL2EntryVUID            Unsigned32,
        h3cMcsL2EntryAddressType     InetAddressType,
        h3cMcsL2EntryGroupAddress    InetAddress,
        h3cMcsL2EntrySourceAddress   InetAddress,
        h3cMcsL2EntryIfIndex         InterfaceIndex,
        h3cMcsL2EntryPortType        INTEGER,
        h3cMcsL2EntryPortAttribute   BITS
    }

h3cMcsL2EntryVUType  OBJECT-TYPE
    SYNTAX     H3cVirtualUnitType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Type of virtual unit."
    ::= { h3cMcsL2EntryEntry 1 }

h3cMcsL2EntryVUID  OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "VLAN ID or VSI Index.  Its value ranges from 1 to 4094 when type is
        VLAN, and from 0 to 0xFFFFFFFE when type is VSI."
    ::= { h3cMcsL2EntryEntry 2 }

h3cMcsL2EntryAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Type of multicast IP address."
    ::= { h3cMcsL2EntryEntry 3 }

h3cMcsL2EntryGroupAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "IP address of the multicast group which the port joined."
    ::= { h3cMcsL2EntryEntry 4 }

h3cMcsL2EntrySourceAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "IP address of the unicast source which the port joined."
    ::= { h3cMcsL2EntryEntry 5 }

h3cMcsL2EntryIfIndex  OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "In the VLAN, interface index of the port that joined the Layer 2 IP
        multicast group.  In the VSI, link ID of the AC, PW, or tunnel that
        joined the Layer 2 IP multicast group."
    ::= { h3cMcsL2EntryEntry 6 }

h3cMcsL2EntryPortType  OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   interface(1),
                   ac(2),
                   npw(3),
                   upw(4),
                   trill(5),
                   tunnel(6),
                   mtunnel(7)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Type of the port."
    ::= { h3cMcsL2EntryEntry 7 }

h3cMcsL2EntryPortAttribute  OBJECT-TYPE
    SYNTAX           BITS
    {
        d(0),
        s(1),
        p(2),
        k(3),
        r(4),
        w(5),
        b(6),
        e(7),
        de(8),
        ee(9),
        suc(10),
        f(11)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Attribute of the port.  'd' means learned from IGMP/MLD packets,
        's' means configured statically, 'p' means learned from PIM packets,
        'k' means obtained from the kernel, 'r' means learned from (*, *)
        entries, 'w' means learned from (*, G) entries,
        'b' means broadcast port, 'e' means learned from EVPN BGP route,
        'de' means learned from IGMP/MLD packets in Exclude filter mode,
        'ee' means learned from EVPN BGP routein Exclude filter mode,
        'suc' means processing has succeeded,
        'f' means processing has failed."
    ::= { h3cMcsL2EntryEntry 8 }

h3cMcsPacketStatisticsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF H3cMcsPacketStatisticsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Table containing the IGMP/MLD packets statistics."
    ::= { h3cMulticastSnoopObject 4 }

h3cMcsPacketStatisticsEntry OBJECT-TYPE
    SYNTAX     H3cMcsPacketStatisticsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Entry containing the statistic information of IGMP/MLD packets
        that have been transmitted and received in the device."
    INDEX      {  h3cMcsStatisticsSnoopingType }
    ::= { h3cMcsPacketStatisticsTable 1 }

H3cMcsPacketStatisticsEntry ::=
    SEQUENCE
    {
        h3cMcsStatisticsSnoopingType   InetAddressType,
        h3cMcsRxGeneryQueryNum         Counter64,
        h3cMcsRxV2SpecificQueryNum     Counter64,
        h3cMcsRxV3SpecificQueryNum     Counter64,
        h3cMcsRxV3SpecificSGQueryNum   Counter64,
        h3cMcsRxV1ReportNum            Counter64,
        h3cMcsRxV2ReportNum            Counter64,
        h3cMcsRxV3ReportNum            Counter64,
        h3cMcsRxV3ErrCorReportNum      Counter64,
        h3cMcsRxLeaveNum               Counter64,
        h3cMcsRxPimHelloNum            Counter64,
        h3cMcsRxErrorPacketNum         Counter64,
        h3cMcsTxV2SpecificQueryNum     Counter64,
        h3cMcsTxV3SpecificQueryNum     Counter64,
        h3cMcsTxV3SpecificSGQueryNum   Counter64
    }

h3cMcsStatisticsSnoopingType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Type of the snooping, IPv4 means the statistics for IGMP
        snooping, and IPv6 means the statistics for MLD snooping."
    ::= { h3cMcsPacketStatisticsEntry 1 }

h3cMcsRxGeneryQueryNum OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Statistics of IGMP or MLD general query packets received on
        the device."
    ::= { h3cMcsPacketStatisticsEntry 2 }

h3cMcsRxV2SpecificQueryNum OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Statistics of IGMPv2 or MLDv1 group-specific query packets
        received on the device."
    ::= { h3cMcsPacketStatisticsEntry 3 }

h3cMcsRxV3SpecificQueryNum OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The statistics of IGMPv3 or MLDv2 group-specific query packets
        received on the device."
    ::= { h3cMcsPacketStatisticsEntry 4 }

h3cMcsRxV3SpecificSGQueryNum OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Statistics of IGMPv3 or MLDv2 group-and-source-specific query
        packets received on the device."
    ::= { h3cMcsPacketStatisticsEntry 5 }

h3cMcsRxV1ReportNum OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Statistics of IGMPv1 report packets received on the device."
    ::= { h3cMcsPacketStatisticsEntry 6 }

h3cMcsRxV2ReportNum OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Statistics of IGMPv2 or MLDv1 report packets received on the
        device."
    ::= { h3cMcsPacketStatisticsEntry 7 }

h3cMcsRxV3ReportNum OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Statistics of IGMPv3 or MLDv2 report packets received on
        the device."
    ::= { h3cMcsPacketStatisticsEntry 8 }

h3cMcsRxV3ErrCorReportNum OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Statistics of IGMPv3 or MLDv2 report packets with correct and
        incorrect records received on the device."
    ::= { h3cMcsPacketStatisticsEntry 9 }

h3cMcsRxLeaveNum OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Statistics of leave packets received on the device."
    ::= { h3cMcsPacketStatisticsEntry 10 }

h3cMcsRxPimHelloNum OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Statistics of PIM hello packets received on the device."
    ::= { h3cMcsPacketStatisticsEntry 11 }

h3cMcsRxErrorPacketNum OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Statistics of error IGMP/MLD packets received on the device."
    ::= { h3cMcsPacketStatisticsEntry 12 }

h3cMcsTxV2SpecificQueryNum OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Statistics of IGMPv2 or MLDv1 group-specific query packets sent
        from the device."
    ::= { h3cMcsPacketStatisticsEntry 13 }

h3cMcsTxV3SpecificQueryNum OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Statistics of IGMPv3 or MLDv2 group-specific query packets sent
        from the device."
    ::= { h3cMcsPacketStatisticsEntry 14 }

h3cMcsTxV3SpecificSGQueryNum OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Statistics of IGMPv3 or MLDv2 group-and-source-specific query
        packets sent from the device."
    ::= { h3cMcsPacketStatisticsEntry 15 }

h3cMcsPortJoinGroupConfigTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF H3cMcsPortJoinGroupConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Table for configuring a port as a simulated member host for a
        multicast group."
    ::= { h3cMulticastSnoopObject 5 }

h3cMcsPortJoinGroupConfigEntry OBJECT-TYPE
    SYNTAX     H3cMcsPortJoinGroupConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Entry for configuring a port as a simulated member host for a
        multicast group."
    INDEX
    {
        h3cMcsPortJoinGroupIfIndex,
        h3cMcsPortJoinGroupSnoopingType,
        h3cMcsPortJoinGroupVlanID,
        h3cMcsPortJoinGroupGroupAddress,
        h3cMcsPortJoinGroupSourceAddress
    }
    ::= { h3cMcsPortJoinGroupConfigTable 1 }

H3cMcsPortJoinGroupConfigEntry ::=
    SEQUENCE
    {
        h3cMcsPortJoinGroupIfIndex         InterfaceIndex,
        h3cMcsPortJoinGroupSnoopingType    InetAddressType,
        h3cMcsPortJoinGroupVlanID          Unsigned32,
        h3cMcsPortJoinGroupGroupAddress    InetAddress,
        h3cMcsPortJoinGroupSourceAddress   InetAddress,
        h3cMcsPortJoinGroupStatus          RowStatus
    }

h3cMcsPortJoinGroupIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Port for which this entry contains information."
    ::= { h3cMcsPortJoinGroupConfigEntry 1 }

h3cMcsPortJoinGroupSnoopingType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Type of the configuration.  IPv4 means IGMP snooping configuration,
        and IPv6 means MLD snooping configuration."
    ::= { h3cMcsPortJoinGroupConfigEntry 2 }

h3cMcsPortJoinGroupVlanID OBJECT-TYPE
    SYNTAX     Unsigned32(1..4094)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Index uniquely identifying the specified VLAN in which a host
        on a port joined the multicast group."
    ::= { h3cMcsPortJoinGroupConfigEntry 3 }

h3cMcsPortJoinGroupGroupAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "IP address of the group to which the host belongs."
    ::= { h3cMcsPortJoinGroupConfigEntry 4 }

h3cMcsPortJoinGroupSourceAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "IP address of the source.  A value of zero indicates that the
        multicast packets of this group can come from any sources."
    ::= { h3cMcsPortJoinGroupConfigEntry 5 }

h3cMcsPortJoinGroupStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "This object is responsible for managing rows, which supports
        'active', 'createAndGo' and 'destroy'."
    ::= { h3cMcsPortJoinGroupConfigEntry 6 }

h3cMcsPortStaticGroupConfigTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF H3cMcsPortStaticGroupConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Table for configuring static group membership entries on a port."
    ::= { h3cMulticastSnoopObject 6 }

h3cMcsPortStaticGroupConfigEntry OBJECT-TYPE
    SYNTAX     H3cMcsPortStaticGroupConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Entry for configuring static group membership entries on a port."
    INDEX
    {
        h3cMcsPortStaticGroupIfIndex,
        h3cMcsPortStaticGroupSnoopingType,
        h3cMcsPortStaticGroupVlanID,
        h3cMcsPortStaticGroupGroupAddress,
        h3cMcsPortStaticGroupSourceAddress
    }
    ::= { h3cMcsPortStaticGroupConfigTable 1 }

H3cMcsPortStaticGroupConfigEntry ::=
    SEQUENCE
    {
        h3cMcsPortStaticGroupIfIndex           InterfaceIndex,
        h3cMcsPortStaticGroupSnoopingType      InetAddressType,
        h3cMcsPortStaticGroupVlanID            Unsigned32,
        h3cMcsPortStaticGroupGroupAddress      InetAddress,
        h3cMcsPortStaticGroupSourceAddress     InetAddress,
        h3cMcsPortStaticGroupStatus            RowStatus
    }

h3cMcsPortStaticGroupIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Port for which this entry contains information."
    ::= { h3cMcsPortStaticGroupConfigEntry 1 }

h3cMcsPortStaticGroupSnoopingType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Type of the configuration.  IPv4 means IGMP snooping configuration,
        and IPv6 means MLD snooping configuration."
    ::= { h3cMcsPortStaticGroupConfigEntry 2 }

h3cMcsPortStaticGroupVlanID OBJECT-TYPE
    SYNTAX     Unsigned32(1..4094)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Index uniquely identifying the specified VLAN in which a port
        statically joined the multicast group."
    ::= { h3cMcsPortStaticGroupConfigEntry 3 }

h3cMcsPortStaticGroupGroupAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "IP address of the multicast group."
    ::= { h3cMcsPortStaticGroupConfigEntry 4 }

h3cMcsPortStaticGroupSourceAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "IP address of the source.  A value of zero indicates that the
        multicast packets of this group can come from any sources."
    ::= { h3cMcsPortStaticGroupConfigEntry 5 }

h3cMcsPortStaticGroupStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "This object is responsible for managing the creation and
        deletion of rows, which supports 'active', 'createAndGo'
        and 'destroy'."
    ::= { h3cMcsPortStaticGroupConfigEntry 6 }

h3cMcsRouterPortConfigTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF H3cMcsRouterPortConfigEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Table for configuring a port as a static router port."
    ::= { h3cMulticastSnoopObject 7 }

h3cMcsRouterPortConfigEntry OBJECT-TYPE
    SYNTAX  H3cMcsRouterPortConfigEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Entry for configuring a port as a static router port."
    INDEX
    {
        h3cMcsRouterPortConfigIfIndex,
        h3cMcsRouterPortConfigSnoopingType,
        h3cMcsRouterPortConfigVlanID
    }
    ::= { h3cMcsRouterPortConfigTable 1 }

H3cMcsRouterPortConfigEntry ::=
    SEQUENCE
    {
        h3cMcsRouterPortConfigIfIndex               InterfaceIndex,
        h3cMcsRouterPortConfigSnoopingType          InetAddressType,
        h3cMcsRouterPortConfigVlanID                Unsigned32,
        h3cMcsRouterPortConfigRowStatus             RowStatus
    }

h3cMcsRouterPortConfigIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Port for which this entry contains information."
    ::= { h3cMcsRouterPortConfigEntry 1 }

h3cMcsRouterPortConfigSnoopingType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Type of the configuration.  IPv4 means IGMP snooping configuration,
        and IPv6 means MLD snooping configuration."
    ::= { h3cMcsRouterPortConfigEntry 2 }

h3cMcsRouterPortConfigVlanID OBJECT-TYPE
    SYNTAX     Unsigned32(1..4094)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Index uniquely identifying the specified VLAN in which a port
        act as a static router port."
    ::= { h3cMcsRouterPortConfigEntry 3 }

h3cMcsRouterPortConfigRowStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "This object is a conceptual row entry that allows to add
        or delete entries to or from the h3cMcsRouterPortConfigTable.
        When an entry is created in this table 'createAndGo' method
        is used and the value of this object is set to 'active'.
        Deactivation of an 'active' entry is not allowed.  When
        an entry is deleted in this table 'destroy' method is used."
    ::= { h3cMcsRouterPortConfigEntry 4 }

h3cMcsPortConfigTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF H3cMcsPortConfigEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Table for configuring the fast leave status, group limit number,
        group policy parameter and overflow replace status on a port in
        the specified VLAN."
    ::= { h3cMulticastSnoopObject 8 }

h3cMcsPortConfigEntry OBJECT-TYPE
    SYNTAX  H3cMcsPortConfigEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Entry containing information about the fast leave status, group
        limit number, group policy parameter and overflow replace status
        of a port in the specified VLAN."
    INDEX
    {
        h3cMcsPortConfigIfIndex,
        h3cMcsPortConfigSnoopingType,
        h3cMcsPortConfigVlanID
    }
    ::= { h3cMcsPortConfigTable 1 }

H3cMcsPortConfigEntry ::=
    SEQUENCE
    {
        h3cMcsPortConfigIfIndex               InterfaceIndex,
        h3cMcsPortConfigSnoopingType          InetAddressType,
        h3cMcsPortConfigVlanID                Unsigned32,
        h3cMcsPortConfigGroupLimitNumber      Unsigned32,
        h3cMcsPortConfigFastLeaveStatus       TruthValue,
        h3cMcsPortConfigGroupPolicyParameter  Unsigned32,
        h3cMcsPortConfigOverflowReplace       TruthValue,
        h3cMcsPortConfigRowStatus             RowStatus
    }

h3cMcsPortConfigIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Port for which this entry contains information."
    ::= { h3cMcsPortConfigEntry 1 }

h3cMcsPortConfigSnoopingType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Type of the configuration.  IPv4 means IGMP snooping configuration,
        and IPv6 means MLD snooping configuration."
    ::= { h3cMcsPortConfigEntry 2 }

h3cMcsPortConfigVlanID OBJECT-TYPE
    SYNTAX     Unsigned32(1..4094)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "VLAN ID."
    ::= { h3cMcsPortConfigEntry 3 }

h3cMcsPortConfigGroupLimitNumber OBJECT-TYPE
    SYNTAX  Unsigned32
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Group limit number of the port."
    ::= { h3cMcsPortConfigEntry 4 }

h3cMcsPortConfigFastLeaveStatus OBJECT-TYPE
    SYNTAX  TruthValue
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Fast leave status of the port."
    DEFVAL  { false }
    ::= { h3cMcsPortConfigEntry 5 }

h3cMcsPortConfigGroupPolicyParameter OBJECT-TYPE
    SYNTAX  Unsigned32(0|2000..3999)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "ACL number which is used as the group policy parameter of the port."
    DEFVAL  { 0 }
    ::= { h3cMcsPortConfigEntry 6 }

h3cMcsPortConfigOverflowReplace OBJECT-TYPE
    SYNTAX  TruthValue
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "This object is related to the object h3cMcsPortConfigGroupLimitNumber.
        If the current group number is less than the value of
        h3cMcsPortConfigGroupLimitNumber, any new group is permitted.
        If the current group number equals to the value of
        h3cMcsPortConfigGroupLimitNumber and the value of this object is enabled,
        the group with the minimum multicast address will be replaced by the new
        group.
        If the current group number equals to the value of
        h3cMcsPortConfigGroupLimitNumber and the value of this object is disabled,
        none of new group will be permitted."
    DEFVAL  { false }
    ::= { h3cMcsPortConfigEntry 7 }

h3cMcsPortConfigRowStatus OBJECT-TYPE
    SYNTAX  RowStatus
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The object is responsible for managing the creation and deletion
        of rows, which supports 'active', 'createAndGo' and 'destroy'."
    ::= { h3cMcsPortConfigEntry 8 }

END
