-- ==================================================================
-- Copyright (C) 2002 by  H3C TECHNOLOGIES. All rights reserved.
--
-- Description: Igmp snooping MIB
-- Reference:
-- Version: V1.4
-- History:
--(1) Created by Zhangshilin, 2001.06.29
--(2) Revised by Qi Zhenglin, 2002.1.8
-- V1.1 2004-10-12 updated by gaolong
--        Import TEXTUAL-CONVENTION.
--        Relocate hwLswIgmpsnoopingMib MODULE-IDENTITY clause.
-- V1.2 Revised by yaochunyan, 2004.11.28
--        V1.2 Add hwIgmpSnoopingGroupLimitTable,
--        hwIgmpSnoopingFastLeaveTable and
--        hwIgmpSnoopingGroupPolicyTable.
--      Adjust format of the whole file by gaolong.
-- V1.3 2005-3-9 updated by fuzhenyu
--       Add object hwIgmpSnoopingNonFloodingStatus.
--       Change the descriptions of hwIgmpSnoopingGroupIfIndex,
--       hwIgmpSnoopingFastLeaveIfIndex, hwIgmpSnoopingGroupPolicyIfIndex
-- V1.4 2005-3-22 updated by wangxiaodong
--      Add hwIgmpSnoopingVlanStatusTable
--      Add hwRecvIGMPGQueryNum, hwRecvIGMPSQueryNum,
--          hwRecvIGMPV1ReportNum, hwRecvIGMPV2ReportNum,
--          hwRecvIGMPLeaveNum, hwRecvErrorIGMPPacketNum,
--          hwSentIGMPSQueryNum, hwIgmpSnoopingClearStats
--      Adjust file format
-- ==================================================================
--
-- ==================================================================
--
-- Varibles and types be imported
--
-- ==================================================================
HUAWEI-LswIGSP-MIB DEFINITIONS ::= BEGIN
IMPORTS

    Integer32,MODULE-IDENTITY,OBJECT-TYPE,Unsigned32,Counter32
        FROM SNMPv2-SMI

    TEXTUAL-CONVENTION,RowStatus
        FROM SNMPv2-TC

    lswCommon
        FROM HUAWEI-3COM-OID-MIB

    InterfaceIndex
        FROM IF-MIB;

    hwLswIgmpsnoopingMib MODULE-IDENTITY
        LAST-UPDATED "200106290000Z"
        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
            ""
        REVISION "200106290000Z"
        DESCRIPTION
            ""
        ::= { lswCommon  7 }

    EnabledStatus ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION
            "A simple status value for the object."
        SYNTAX      INTEGER { enabled(1), disabled(2) }


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

    hwLswIgmpsnoopingMibObject OBJECT IDENTIFIER ::= {   hwLswIgmpsnoopingMib 1  }

    hwIgmpSnoopingStatus    OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION "Configure to enable IGMP Snooping."
        ::= { hwLswIgmpsnoopingMibObject  1 }

    hwIgmpSnoopingRouterPortAge  OBJECT-TYPE
        SYNTAX  INTEGER (1..1000)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION "Configure the aging time of the router port."
        DEFVAL  {105}
        ::= { hwLswIgmpsnoopingMibObject  2 }

    hwIgmpSnoopingResponseTime  OBJECT-TYPE
        SYNTAX  INTEGER   (1..25)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION "Configure the maximum query response time."
        DEFVAL  {10}
        ::= { hwLswIgmpsnoopingMibObject  3 }

    hwIgmpSnoopingHostTime   OBJECT-TYPE
        SYNTAX  INTEGER  (200..1000)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION "Configure the aging time of the multicast group port."
        DEFVAL  {260}
        ::= { hwLswIgmpsnoopingMibObject  4 }

    hwIgmpSnoopingGroupLimitTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF HwIgmpSnoopingGroupLimitEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The table lists the maximum group number that one
             interface could do IGMP Snooping."
        ::= { hwLswIgmpsnoopingMibObject  5 }

    hwIgmpSnoopingGroupLimitEntry OBJECT-TYPE
        SYNTAX  HwIgmpSnoopingGroupLimitEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An entry (conceptual row) representing  the maximum
             group number on an interface which IGMP Snooping operation
             is enabled."
        INDEX  { hwIgmpSnoopingGroupIfIndex }
        ::= { hwIgmpSnoopingGroupLimitTable 1 }

    HwIgmpSnoopingGroupLimitEntry ::= SEQUENCE {
        hwIgmpSnoopingGroupIfIndex    InterfaceIndex,
        hwIgmpSnoopingGroupLimitNumber  Unsigned32
        }

    hwIgmpSnoopingGroupIfIndex OBJECT-TYPE
        SYNTAX  InterfaceIndex
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The ifIndex value of the port on which IGMP
             snooping is enabled."
        ::= { hwIgmpSnoopingGroupLimitEntry 1 }

    hwIgmpSnoopingGroupLimitNumber OBJECT-TYPE
        SYNTAX  Unsigned32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The maxmum group number of IGMP Snooping on a port."
        DEFVAL  { 4294967295 }
        ::= { hwIgmpSnoopingGroupLimitEntry 2 }

    hwIgmpSnoopingFastLeaveTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF HwIgmpSnoopingFastLeaveEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The table specifies the fast leave status
             on those ports that do IGMP Snooping."
        ::= { hwLswIgmpsnoopingMibObject  6 }

    hwIgmpSnoopingFastLeaveEntry OBJECT-TYPE
        SYNTAX  HwIgmpSnoopingFastLeaveEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An entry specifies the fast leave status
             on those ports that do IGMP Snooping."
        INDEX  { hwIgmpSnoopingFastLeaveIfIndex }
        ::= { hwIgmpSnoopingFastLeaveTable 1 }

    HwIgmpSnoopingFastLeaveEntry ::= SEQUENCE {
        hwIgmpSnoopingFastLeaveIfIndex  InterfaceIndex,
        hwIgmpSnoopingFastLeaveStatus  EnabledStatus
        }

    hwIgmpSnoopingFastLeaveIfIndex OBJECT-TYPE
        SYNTAX  InterfaceIndex
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The ifIndex value of the port on which IGMP
             snooping is enabled."
        ::= { hwIgmpSnoopingFastLeaveEntry 1 }

    hwIgmpSnoopingFastLeaveStatus OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The fast leave status of the port on which IGMP
             Snooping is enabled."
        DEFVAL  { 2 }
        ::= { hwIgmpSnoopingFastLeaveEntry 2 }

    hwIgmpSnoopingGroupPolicyTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF HwIgmpSnoopingGroupPolicyEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This is a table specifies the group policy parameter and
             Vlan ID of the IGMP Snooping port."
        ::= { hwLswIgmpsnoopingMibObject  7 }

    hwIgmpSnoopingGroupPolicyEntry OBJECT-TYPE
        SYNTAX  HwIgmpSnoopingGroupPolicyEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An entry representing the group policy parameter and Vlan ID
             of a port on which IGMP Snooping operation is enabled."
        INDEX  { hwIgmpSnoopingGroupPolicyIfIndex,
            hwIgmpSnoopingGroupPolicyVlanID }
        ::= { hwIgmpSnoopingGroupPolicyTable 1 }

    HwIgmpSnoopingGroupPolicyEntry ::= SEQUENCE {
        hwIgmpSnoopingGroupPolicyIfIndex  InterfaceIndex,
        hwIgmpSnoopingGroupPolicyVlanID  Integer32,
        hwIgmpSnoopingGroupPolicyParameter  Integer32,
        hwIgmpSnoopingGroupPolicyStatus  RowStatus
        }

    hwIgmpSnoopingGroupPolicyIfIndex OBJECT-TYPE
        SYNTAX  InterfaceIndex
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The ifIndex value of the port on which
             IGMP Snooping is enabled."
        ::= { hwIgmpSnoopingGroupPolicyEntry 1 }

    hwIgmpSnoopingGroupPolicyVlanID OBJECT-TYPE
        SYNTAX  Integer32(1..4094)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The Vlan ID which the IGMP Snooping port
             is attached to."
        ::= { hwIgmpSnoopingGroupPolicyEntry 2 }

    hwIgmpSnoopingGroupPolicyParameter OBJECT-TYPE
        SYNTAX  Integer32(2000..2999)
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The ACL Number which is used as the group policy parameter
             of the IGMP Snooping port."
        ::= { hwIgmpSnoopingGroupPolicyEntry 3 }

    hwIgmpSnoopingGroupPolicyStatus OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "This object is used to create or delete a row
             and represent the current status of this row.
             Now support three state:CreateAndGo,Active,Destroy."
        ::= { hwIgmpSnoopingGroupPolicyEntry 4 }

    hwIgmpSnoopingNonFloodingStatus OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Configure to disable multicast flooding when no member exists
             in the destinated group. To use this function,IGMP snooping
             must be enabled."
        ::= { hwLswIgmpsnoopingMibObject 8 }

    hwIgmpSnoopingVlanStatusTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF HwIgmpSnoopingVlanStatusEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "The table used to enable or disable IGMP snooping 
             on the specified VLAN."
        ::= { hwLswIgmpsnoopingMibObject 9 }

    hwIgmpSnoopingVlanStatusEntry OBJECT-TYPE
        SYNTAX     HwIgmpSnoopingVlanStatusEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "An entry representing the IGMP snooping status on 
             the specified VLAN."
        INDEX      {  hwIgmpSnoopingVlanID }
        ::= { hwIgmpSnoopingVlanStatusTable 1 }

    HwIgmpSnoopingVlanStatusEntry ::= SEQUENCE {
        hwIgmpSnoopingVlanID            Integer32,
        hwIgmpSnoopingVlanEnabled       EnabledStatus
        }
        
    hwIgmpSnoopingVlanID OBJECT-TYPE
        SYNTAX     Integer32(1..4094)
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "An index uniquely identifies on which VLAN IGMP 
             snooping is enabled or disabled. "
        ::= { hwIgmpSnoopingVlanStatusEntry 1 }

    hwIgmpSnoopingVlanEnabled OBJECT-TYPE
        SYNTAX     EnabledStatus
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Indicating whether IGMP snooping is enabled on this VLAN."
        DEFVAL     { disabled }
        ::= { hwIgmpSnoopingVlanStatusEntry 2 }

    hwIgmpSnoopingStatsObjects OBJECT IDENTIFIER ::= { hwLswIgmpsnoopingMibObject 10 }

    hwRecvIGMPGQueryNum OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The statistics of IGMP general query packets received on
             the device."
        ::= { hwIgmpSnoopingStatsObjects 1 }

    hwRecvIGMPSQueryNum OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The statistics of IGMP specific query packets received on
             the device."
        ::= { hwIgmpSnoopingStatsObjects 2 }

    hwRecvIGMPV1ReportNum OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The statistics of IGMP V1 report packets received on
             the device."
        ::= { hwIgmpSnoopingStatsObjects 3 }

    hwRecvIGMPV2ReportNum OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The statistics of IGMP V2 report packets received on
             the device."
        ::= { hwIgmpSnoopingStatsObjects 4 }

    hwRecvIGMPLeaveNum OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The statistics of IGMP leave packets received on
             the device."
        ::= { hwIgmpSnoopingStatsObjects 5 }

    hwRecvErrorIGMPPacketNum OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The statistics of error IGMP packets received on
             the device."
        ::= { hwIgmpSnoopingStatsObjects 6 }

    hwSentIGMPSQueryNum OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The statistics of IGMP specific query packets sent from
             the device."
        ::= { hwIgmpSnoopingStatsObjects 7 }

    hwIgmpSnoopingClearStats  OBJECT-TYPE
        SYNTAX     INTEGER { clear(1),
                             counting(2)
                           }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "The configuration to clear the statistics of IGMP packets."
        DEFVAL  { counting }
        ::= { hwIgmpSnoopingStatsObjects 8 }

        
END
