-- ==================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- 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 hpnicfLswIgmpsnoopingMib MODULE-IDENTITY clause.
-- V1.2 Revised by yaochunyan, 2004.11.28
--        V1.2 Add hpnicfIgmpSnoopingGroupLimitTable,
--        hpnicfIgmpSnoopingFastLeaveTable and
--        hpnicfIgmpSnoopingGroupPolicyTable.
--      Adjust format of the whole file by gaolong.
-- V1.3 2005-3-9 updated by fuzhenyu
--       Add object hpnicfIgmpSnoopingNonFloodingStatus.
--       Change the descriptions of hpnicfIgmpSnoopingGroupIfIndex,
--       hpnicfIgmpSnoopingFastLeaveIfIndex, hpnicfIgmpSnoopingGroupPolicyIfIndex
-- V1.4 2005-3-22 updated by wangxiaodong
--      Add hpnicfIgmpSnoopingVlanStatusTable
--      Add hpnicfRecvIGMPGQueryNum, hpnicfRecvIGMPSQueryNum,
--          hpnicfRecvIGMPV1ReportNum, hpnicfRecvIGMPV2ReportNum,
--          hpnicfRecvIGMPLeaveNum, hpnicfRecvErrorIGMPPacketNum,
--          hpnicfSentIGMPSQueryNum, hpnicfIgmpSnoopingClearStats
--      Adjust file format
-- ==================================================================
--
-- ==================================================================
--
-- Varibles and types be imported
--
-- ==================================================================
HPN-ICF-LswIGSP-MIB DEFINITIONS ::= BEGIN
IMPORTS

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

    TEXTUAL-CONVENTION,RowStatus
        FROM SNMPv2-TC

    hpnicflswCommon
        FROM HPN-ICF-OID-MIB

    InterfaceIndex
        FROM IF-MIB;

    hpnicfLswIgmpsnoopingMib MODULE-IDENTITY
        LAST-UPDATED "200106290000Z"
        ORGANIZATION
            ""
        CONTACT-INFO
            ""
        DESCRIPTION
            ""
        REVISION "200106290000Z"
        DESCRIPTION
            ""
        ::= { hpnicflswCommon  7 }

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


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

    hpnicfLswIgmpsnoopingMibObject OBJECT IDENTIFIER ::= {   hpnicfLswIgmpsnoopingMib 1  }

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

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

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

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

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

    hpnicfIgmpSnoopingGroupLimitEntry OBJECT-TYPE
        SYNTAX  HpnicfIgmpSnoopingGroupLimitEntry
        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  { hpnicfIgmpSnoopingGroupIfIndex }
        ::= { hpnicfIgmpSnoopingGroupLimitTable 1 }

    HpnicfIgmpSnoopingGroupLimitEntry ::= SEQUENCE {
        hpnicfIgmpSnoopingGroupIfIndex    InterfaceIndex,
        hpnicfIgmpSnoopingGroupLimitNumber  Unsigned32
        }

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

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

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

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

    HpnicfIgmpSnoopingFastLeaveEntry ::= SEQUENCE {
        hpnicfIgmpSnoopingFastLeaveIfIndex  InterfaceIndex,
        hpnicfIgmpSnoopingFastLeaveStatus  EnabledStatus
        }

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

    hpnicfIgmpSnoopingFastLeaveStatus 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 }
        ::= { hpnicfIgmpSnoopingFastLeaveEntry 2 }

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

    hpnicfIgmpSnoopingGroupPolicyEntry OBJECT-TYPE
        SYNTAX  HpnicfIgmpSnoopingGroupPolicyEntry
        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  { hpnicfIgmpSnoopingGroupPolicyIfIndex,
            hpnicfIgmpSnoopingGroupPolicyVlanID }
        ::= { hpnicfIgmpSnoopingGroupPolicyTable 1 }

    HpnicfIgmpSnoopingGroupPolicyEntry ::= SEQUENCE {
        hpnicfIgmpSnoopingGroupPolicyIfIndex  InterfaceIndex,
        hpnicfIgmpSnoopingGroupPolicyVlanID  Integer32,
        hpnicfIgmpSnoopingGroupPolicyParameter  Integer32,
        hpnicfIgmpSnoopingGroupPolicyStatus  RowStatus
        }

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

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

    hpnicfIgmpSnoopingGroupPolicyParameter 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."
        ::= { hpnicfIgmpSnoopingGroupPolicyEntry 3 }

    hpnicfIgmpSnoopingGroupPolicyStatus 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."
        ::= { hpnicfIgmpSnoopingGroupPolicyEntry 4 }

    hpnicfIgmpSnoopingNonFloodingStatus 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."
        ::= { hpnicfLswIgmpsnoopingMibObject 8 }

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

    hpnicfIgmpSnoopingVlanStatusEntry OBJECT-TYPE
        SYNTAX     HpnicfIgmpSnoopingVlanStatusEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "An entry representing the IGMP snooping status on 
             the specified VLAN."
        INDEX      {  hpnicfIgmpSnoopingVlanID }
        ::= { hpnicfIgmpSnoopingVlanStatusTable 1 }

    HpnicfIgmpSnoopingVlanStatusEntry ::= SEQUENCE {
        hpnicfIgmpSnoopingVlanID            Integer32,
        hpnicfIgmpSnoopingVlanEnabled       EnabledStatus
        }
        
    hpnicfIgmpSnoopingVlanID 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. "
        ::= { hpnicfIgmpSnoopingVlanStatusEntry 1 }

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

    hpnicfIgmpSnoopingStatsObjects OBJECT IDENTIFIER ::= { hpnicfLswIgmpsnoopingMibObject 10 }

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

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

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

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

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

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

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

    hpnicfIgmpSnoopingClearStats  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 }
        ::= { hpnicfIgmpSnoopingStatsObjects 8 }

        
END
