-- ==================================================================
-- Copyright (c) 2010-2014 Hewlett-Packard Development Company, L.P.
--
-- Description: Multicast Snooping MIB
-- Reference:
-- Version: V1.0
-- History:
-- V1.0 2014-06-17 Created by Huang Yun
-- ==================================================================
-- ==================================================================
-- ==================================================================
--
-- Variables and types be imported
--
-- ==================================================================
HPN-ICF-MULTICAST-SNOOPING-MIB DEFINITIONS ::= BEGIN


IMPORTS

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

    TEXTUAL-CONVENTION,RowStatus,TruthValue
        FROM SNMPv2-TC

    hpnicfCommon
        FROM HPN-ICF-OID-MIB

    InetAddressType, InetAddress
        FROM INET-ADDRESS-MIB

    InterfaceIndex
        FROM IF-MIB;

hpnicfMulticastSnoop MODULE-IDENTITY
    LAST-UPDATED "201405141700Z"
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "IGMP/MLD Snooping Management MIB"
    REVISION "201405141700Z"
    DESCRIPTION
        "The initial version of this MIB file."
    ::= { hpnicfCommon 123 }

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

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

hpnicfMulticastSnoopObject OBJECT IDENTIFIER ::= {   hpnicfMulticastSnoop 1  }

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

hpnicfMcsGlobalConfigEntry OBJECT-TYPE
    SYNTAX     HpnicfMcsGlobalConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Entry containing information about the global
        configuration of IGMP/MLD snooping."
    INDEX      {  hpnicfMcsGlbSnoopingType }
    ::= { hpnicfMcsGlobalConfigTable 1 }

HpnicfMcsGlobalConfigEntry ::=
    SEQUENCE
    {
        hpnicfMcsGlbSnoopingType           InetAddressType,
        hpnicfMcsGlbRowStatus              RowStatus,
        hpnicfMcsGlbEntryLimit             Unsigned32,
        hpnicfMcsGlbHostAgingTime          Unsigned32,
        hpnicfMcsGlbMaxResponseTime        Unsigned32,
        hpnicfMcsGlbRouterAgingTime        Unsigned32,
        hpnicfMcsGlbLastMemQryInterval     Unsigned32,
        hpnicfMcsGlbDropUnknownEnabled     TruthValue
    }

hpnicfMcsGlbSnoopingType 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."
    ::= { hpnicfMcsGlobalConfigEntry 1 }

hpnicfMcsGlbRowStatus 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."
    ::= { hpnicfMcsGlobalConfigEntry 2 }

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

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

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

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

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

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

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

hpnicfMcsVirtualUnitConfigEntry OBJECT-TYPE
    SYNTAX     HpnicfMcsVirtualUnitConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Entry containing information of the specified VLAN or VSI."
    INDEX
    {
        hpnicfMcsVUType,
        hpnicfMcsVUID,
        hpnicfMcsVUSnoopingType
    }
    ::= { hpnicfMcsVirtualUnitConfigTable 1 }

HpnicfMcsVirtualUnitConfigEntry ::=
    SEQUENCE
    {
        hpnicfMcsVUType                     HpnicfVirtualUnitType,
        hpnicfMcsVUID                       Unsigned32,
        hpnicfMcsVUSnoopingType             InetAddressType,
        hpnicfMcsVURowStatus                RowStatus,
        hpnicfMcsVUHostAgingTime            Unsigned32,
        hpnicfMcsVUMaxResponseTime          Unsigned32,
        hpnicfMcsVURouterAgingTime          Unsigned32,
        hpnicfMcsVULastMemQryInterval       Unsigned32,
        hpnicfMcsVUDropUnknownEnabled       TruthValue,
        hpnicfMcsVUPimSnoopingEnabled       TruthValue,
        hpnicfMcsVUVersion                  Unsigned32,
        hpnicfMcsVUQuerierEnabled           TruthValue,
        hpnicfMcsVUQuerierInterval          Unsigned32,
        hpnicfMcsVUGeneQuerierSourceAddress InetAddress,
        hpnicfMcsVUSpecQuerierSourceAddress InetAddress,
        hpnicfMcsVULeaveSourceAddress       InetAddress,
        hpnicfMcsVUReportSourceAddress      InetAddress
    }

hpnicfMcsVUType  OBJECT-TYPE
    SYNTAX     HpnicfVirtualUnitType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Type of virtual unit."
    ::= { hpnicfMcsVirtualUnitConfigEntry 1 }

hpnicfMcsVUID  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"
    ::= { hpnicfMcsVirtualUnitConfigEntry 2 }

hpnicfMcsVUSnoopingType 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."
    ::= { hpnicfMcsVirtualUnitConfigEntry 3 }

hpnicfMcsVURowStatus 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."
    ::= { hpnicfMcsVirtualUnitConfigEntry 4 }

hpnicfMcsVUHostAgingTime   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."
    ::= { hpnicfMcsVirtualUnitConfigEntry  5 }

hpnicfMcsVUMaxResponseTime  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."
    ::= { hpnicfMcsVirtualUnitConfigEntry  6 }

hpnicfMcsVURouterAgingTime  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."
    ::= { hpnicfMcsVirtualUnitConfigEntry  7 }

hpnicfMcsVULastMemQryInterval  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."
    ::= { hpnicfMcsVirtualUnitConfigEntry  8 }

hpnicfMcsVUDropUnknownEnabled 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 }
    ::= { hpnicfMcsVirtualUnitConfigEntry  9 }

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

hpnicfMcsVUVersion 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 }
    ::= { hpnicfMcsVirtualUnitConfigEntry 11 }

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

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

hpnicfMcsVUGeneQuerierSourceAddress 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."
    ::= { hpnicfMcsVirtualUnitConfigEntry 14 }

hpnicfMcsVUSpecQuerierSourceAddress 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."
    ::= { hpnicfMcsVirtualUnitConfigEntry 15 }

hpnicfMcsVULeaveSourceAddress 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."
    ::= { hpnicfMcsVirtualUnitConfigEntry 16 }

hpnicfMcsVUReportSourceAddress 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."
    ::= { hpnicfMcsVirtualUnitConfigEntry 17 }

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

hpnicfMcsL2EntryEntry OBJECT-TYPE
    SYNTAX     HpnicfMcsL2EntryEntry
    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
    {
        hpnicfMcsL2EntryVUType,
        hpnicfMcsL2EntryVUID,
        hpnicfMcsL2EntryAddressType,
        hpnicfMcsL2EntryGroupAddress,
        hpnicfMcsL2EntrySourceAddress,
        hpnicfMcsL2EntryIfIndex
    }
    ::= { hpnicfMcsL2EntryTable 1 }

HpnicfMcsL2EntryEntry ::=
    SEQUENCE
    {
        hpnicfMcsL2EntryVUType          HpnicfVirtualUnitType,
        hpnicfMcsL2EntryVUID            Unsigned32,
        hpnicfMcsL2EntryAddressType     InetAddressType,
        hpnicfMcsL2EntryGroupAddress    InetAddress,
        hpnicfMcsL2EntrySourceAddress   InetAddress,
        hpnicfMcsL2EntryIfIndex         InterfaceIndex,
        hpnicfMcsL2EntryPortType        INTEGER,
        hpnicfMcsL2EntryPortAttribute   BITS
    }

hpnicfMcsL2EntryVUType  OBJECT-TYPE
    SYNTAX     HpnicfVirtualUnitType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Type of virtual unit."
    ::= { hpnicfMcsL2EntryEntry 1 }

hpnicfMcsL2EntryVUID  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."
    ::= { hpnicfMcsL2EntryEntry 2 }

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

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

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

hpnicfMcsL2EntryIfIndex  OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "IfIndex value of the port that joined the Layer 2 IP multicast
        group entry."
    ::= { hpnicfMcsL2EntryEntry 6 }

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

hpnicfMcsL2EntryPortAttribute  OBJECT-TYPE
    SYNTAX           BITS
    {
        d(0),
        s(1),
        p(2),
        k(3),
        r(4),
        w(5)
    }
    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 snooping,
        'k' means obtained from the kernel, 'r' means learned from (*, *)
        entries, 'w' means learned from (*, G) entries."
    ::= { hpnicfMcsL2EntryEntry 8 }

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

hpnicfMcsPacketStatisticsEntry OBJECT-TYPE
    SYNTAX     HpnicfMcsPacketStatisticsEntry
    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      {  hpnicfMcsStatisticsSnoopingType }
    ::= { hpnicfMcsPacketStatisticsTable 1 }

HpnicfMcsPacketStatisticsEntry ::=
    SEQUENCE
    {
        hpnicfMcsStatisticsSnoopingType   InetAddressType,
        hpnicfMcsRxGeneryQueryNum         Counter64,
        hpnicfMcsRxV2SpecificQueryNum     Counter64,
        hpnicfMcsRxV3SpecificQueryNum     Counter64,
        hpnicfMcsRxV3SpecificSGQueryNum   Counter64,
        hpnicfMcsRxV1ReportNum            Counter64,
        hpnicfMcsRxV2ReportNum            Counter64,
        hpnicfMcsRxV3ReportNum            Counter64,
        hpnicfMcsRxV3ErrCorReportNum      Counter64,
        hpnicfMcsRxLeaveNum               Counter64,
        hpnicfMcsRxPimHelloNum            Counter64,
        hpnicfMcsRxErrorPacketNum         Counter64,
        hpnicfMcsTxV2SpecificQueryNum     Counter64,
        hpnicfMcsTxV3SpecificQueryNum     Counter64,
        hpnicfMcsTxV3SpecificSGQueryNum   Counter64
    }

hpnicfMcsStatisticsSnoopingType 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."
    ::= { hpnicfMcsPacketStatisticsEntry 1 }

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

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

hpnicfMcsRxV3SpecificQueryNum 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."
    ::= { hpnicfMcsPacketStatisticsEntry 4 }

hpnicfMcsRxV3SpecificSGQueryNum 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."
    ::= { hpnicfMcsPacketStatisticsEntry 5 }

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

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

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

hpnicfMcsRxV3ErrCorReportNum 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."
    ::= { hpnicfMcsPacketStatisticsEntry 9 }

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

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

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

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

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

hpnicfMcsTxV3SpecificSGQueryNum 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."
    ::= { hpnicfMcsPacketStatisticsEntry 15 }

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

hpnicfMcsPortJoinGroupConfigEntry OBJECT-TYPE
    SYNTAX     HpnicfMcsPortJoinGroupConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Entry for configuring a port as a simulated member host for a
        multicast group."
    INDEX
    {
        hpnicfMcsPortJoinGroupIfIndex,
        hpnicfMcsPortJoinGroupSnoopingType,
        hpnicfMcsPortJoinGroupVlanID,
        hpnicfMcsPortJoinGroupGroupAddress,
        hpnicfMcsPortJoinGroupSourceAddress
    }
    ::= { hpnicfMcsPortJoinGroupConfigTable 1 }

HpnicfMcsPortJoinGroupConfigEntry ::=
    SEQUENCE
    {
        hpnicfMcsPortJoinGroupIfIndex         InterfaceIndex,
        hpnicfMcsPortJoinGroupSnoopingType    InetAddressType,
        hpnicfMcsPortJoinGroupVlanID          Unsigned32,
        hpnicfMcsPortJoinGroupGroupAddress    InetAddress,
        hpnicfMcsPortJoinGroupSourceAddress   InetAddress,
        hpnicfMcsPortJoinGroupStatus          RowStatus
    }

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

hpnicfMcsPortJoinGroupSnoopingType 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."
    ::= { hpnicfMcsPortJoinGroupConfigEntry 2 }

hpnicfMcsPortJoinGroupVlanID 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."
    ::= { hpnicfMcsPortJoinGroupConfigEntry 3 }

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

hpnicfMcsPortJoinGroupSourceAddress 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."
    ::= { hpnicfMcsPortJoinGroupConfigEntry 5 }

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

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

hpnicfMcsPortStaticGroupConfigEntry OBJECT-TYPE
    SYNTAX     HpnicfMcsPortStaticGroupConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Entry for configuring static group membership entries on a port."
    INDEX
    {
        hpnicfMcsPortStaticGroupIfIndex,
        hpnicfMcsPortStaticGroupSnoopingType,
        hpnicfMcsPortStaticGroupVlanID,
        hpnicfMcsPortStaticGroupGroupAddress,
        hpnicfMcsPortStaticGroupSourceAddress
    }
    ::= { hpnicfMcsPortStaticGroupConfigTable 1 }

HpnicfMcsPortStaticGroupConfigEntry ::=
    SEQUENCE
    {
        hpnicfMcsPortStaticGroupIfIndex           InterfaceIndex,
        hpnicfMcsPortStaticGroupSnoopingType      InetAddressType,
        hpnicfMcsPortStaticGroupVlanID            Unsigned32,
        hpnicfMcsPortStaticGroupGroupAddress      InetAddress,
        hpnicfMcsPortStaticGroupSourceAddress     InetAddress,
        hpnicfMcsPortStaticGroupStatus            RowStatus
    }

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

hpnicfMcsPortStaticGroupSnoopingType 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."
    ::= { hpnicfMcsPortStaticGroupConfigEntry 2 }

hpnicfMcsPortStaticGroupVlanID 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."
    ::= { hpnicfMcsPortStaticGroupConfigEntry 3 }

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

hpnicfMcsPortStaticGroupSourceAddress 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."
    ::= { hpnicfMcsPortStaticGroupConfigEntry 5 }

hpnicfMcsPortStaticGroupStatus 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'."
    ::= { hpnicfMcsPortStaticGroupConfigEntry 6 }

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

hpnicfMcsRouterPortConfigEntry OBJECT-TYPE
    SYNTAX  HpnicfMcsRouterPortConfigEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Entry for configuring a port as a static router port."
    INDEX
    {
        hpnicfMcsRouterPortConfigIfIndex,
        hpnicfMcsRouterPortConfigSnoopingType,
        hpnicfMcsRouterPortConfigVlanID
    }
    ::= { hpnicfMcsRouterPortConfigTable 1 }

HpnicfMcsRouterPortConfigEntry ::=
    SEQUENCE
    {
        hpnicfMcsRouterPortConfigIfIndex               InterfaceIndex,
        hpnicfMcsRouterPortConfigSnoopingType          InetAddressType,
        hpnicfMcsRouterPortConfigVlanID                Unsigned32,
        hpnicfMcsRouterPortConfigRowStatus             RowStatus
    }

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

hpnicfMcsRouterPortConfigSnoopingType 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."
    ::= { hpnicfMcsRouterPortConfigEntry 2 }

hpnicfMcsRouterPortConfigVlanID 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."
    ::= { hpnicfMcsRouterPortConfigEntry 3 }

hpnicfMcsRouterPortConfigRowStatus 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 hpnicfMcsRouterPortConfigTable.
        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."
    ::= { hpnicfMcsRouterPortConfigEntry 4 }

hpnicfMcsPortConfigTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF HpnicfMcsPortConfigEntry
    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."
    ::= { hpnicfMulticastSnoopObject 8 }

hpnicfMcsPortConfigEntry OBJECT-TYPE
    SYNTAX  HpnicfMcsPortConfigEntry
    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
    {
        hpnicfMcsPortConfigIfIndex,
        hpnicfMcsPortConfigSnoopingType,
        hpnicfMcsPortConfigVlanID
    }
    ::= { hpnicfMcsPortConfigTable 1 }

HpnicfMcsPortConfigEntry ::=
    SEQUENCE
    {
        hpnicfMcsPortConfigIfIndex               InterfaceIndex,
        hpnicfMcsPortConfigSnoopingType          InetAddressType,
        hpnicfMcsPortConfigVlanID                Unsigned32,
        hpnicfMcsPortConfigGroupLimitNumber      Unsigned32,
        hpnicfMcsPortConfigFastLeaveStatus       TruthValue,
        hpnicfMcsPortConfigGroupPolicyParameter  Unsigned32,
        hpnicfMcsPortConfigOverflowReplace       TruthValue,
        hpnicfMcsPortConfigRowStatus             RowStatus
    }

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

hpnicfMcsPortConfigSnoopingType 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."
    ::= { hpnicfMcsPortConfigEntry 2 }

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

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

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

hpnicfMcsPortConfigGroupPolicyParameter 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 }
    ::= { hpnicfMcsPortConfigEntry 6 }

hpnicfMcsPortConfigOverflowReplace OBJECT-TYPE
    SYNTAX  TruthValue
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "This object is related to the object hpnicfMcsPortConfigGroupLimitNumber.
        If the current group number is less than the value of
        hpnicfMcsPortConfigGroupLimitNumber, any new group is permitted.
        If the current group number equals to the value of
        hpnicfMcsPortConfigGroupLimitNumber 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
        hpnicfMcsPortConfigGroupLimitNumber and the value of this object is disabled,
        none of new group will be permitted."
    DEFVAL  { false }
    ::= { hpnicfMcsPortConfigEntry 7 }

hpnicfMcsPortConfigRowStatus 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'."
    ::= { hpnicfMcsPortConfigEntry 8 }

END
