-- *****************************************************************
-- FS-IGMP-SNOOPING-MIB.mib:  FS IGMP snooping MIB file
--
-- March 2002, Wuzg
--
-- Copyright (c) 2002 by FS.COM Inc..
-- All rights reserved.
-- 
-- *****************************************************************
--

FS-IGMP-SNOOPING-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Integer32,
        Unsigned32,
        IpAddress
                FROM SNMPv2-SMI
        VlanId
                FROM Q-BRIDGE-MIB
        TruthValue
        --RowStatus
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        MemberMap,
        IfIndex
                FROM FS-TC
        EnabledStatus 
                FROM P-BRIDGE-MIB
        fsMgmt
                FROM FS-SMI;

fsIgmpSnoopingMIB MODULE-IDENTITY
        LAST-UPDATED "200910220000Z"
        ORGANIZATION "FS.COM Inc.."
        CONTACT-INFO
                " 
                Tel: 400-865-2852 

                E-mail: https://www.fs.com/live_chat_service_mail.html"

        DESCRIPTION
                "This module defines fs IGMP snooping mibs for WLAN DEV."
        REVISION      "200910220000Z"

        DESCRIPTION
                "This module defines fs IGMP snooping mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { fsMgmt 8}

fsIgmpSnoopingMIBObjects OBJECT IDENTIFIER ::= { fsIgmpSnoopingMIB 1 }

--
-- fs Snooping Igmp Group
--
fsSNIgmpWorkingMode OBJECT-TYPE
        SYNTAX INTEGER {
            disabled(1),
            svgl(2),    -- shared-vlan-group-learning(2),
            ivgl(3),    -- independent-vlan-group-learning(3)
            ivgl-svgl(4)-- svgl-and-ivgl-coexist(4)
        }
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            "System IGMP snooping working mode:
             disabled(1):
                disable the snooping IGMP function, and all IGMP report or leave
                message will be forward transparent.
             svgl(2):
                shared vlan group learning, all group learning in each VLAN will 
                be awared of by other VLAN.
             ivgl(3):
                independent vlan group learning, all group learning by each VLAN
                cannot be used by other VLAN.
             ivgl-svgl(4):
                svgl-and-ivgl-coexist."                
        DEFVAL { disabled }
        ::= { fsIgmpSnoopingMIBObjects 1 }

fsSNIgmpSourcePortCheck OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            "Only video flow of router port can be accept by switch when 
            this value is enabled"
        DEFVAL { disabled }
        ::= { fsIgmpSnoopingMIBObjects 2 }
        
fsSNIgmpSourceIpCheck OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            " "
        DEFVAL { disabled }
        ::= { fsIgmpSnoopingMIBObjects 3 }        

fsSNIgmpSourceIpCheckDefIp OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            "Default multicast server ip address of igmp source ip checking,
            this value must be setted before fsSNIgmpSourceIpCheck be setted
            to enabled"
        ::= { fsIgmpSnoopingMIBObjects 4 }

fsSNIgmpSrcIpCheckTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSSNIgmpSrcIpCheckEntry
        MAX-ACCESS not-accessible
        STATUS deprecated
        DESCRIPTION
            "table of igmp source Ip check."
        ::= { fsIgmpSnoopingMIBObjects 5 }
    
fsSNIgmpSrcIpCheckEntry OBJECT-TYPE
        SYNTAX FSSNIgmpSrcIpCheckEntry
        MAX-ACCESS not-accessible
        STATUS deprecated
        DESCRIPTION 
            "list of igmp source Ip check"
        INDEX { fsSNIgmpSrcIpCheckVID,fsSNIgmpSrcIpCheckMultiIpAddr }
        ::= { fsSNIgmpSrcIpCheckTable 1 }
    
FSSNIgmpSrcIpCheckEntry ::= 
        SEQUENCE {
        fsSNIgmpSrcIpCheckVID VlanId,
        fsSNIgmpSrcIpCheckMultiIpAddr IpAddress,
        fsSNIgmpSrcIpCheckSrcIpAddr IpAddress,
        fsSNIgmpSrcIpCheckEntryStatus INTEGER
        }

fsSNIgmpSrcIpCheckVID OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-only
        STATUS deprecated
        DESCRIPTION
            "VID of ipmc stream"
        ::= { fsSNIgmpSrcIpCheckEntry 1 }
        
fsSNIgmpSrcIpCheckMultiIpAddr OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-only
        STATUS deprecated
        DESCRIPTION
            "Group Destination Address for a ipmc stream."
        ::= { fsSNIgmpSrcIpCheckEntry 2 }

fsSNIgmpSrcIpCheckSrcIpAddr OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-create
        STATUS deprecated
        DESCRIPTION
            "The associate source ip of this ipmc stream. This Stream can be accepted only it's
            source ip address is fsSNIgmpSrcIpCheckSrcIpAddr."
        ::= { fsSNIgmpSrcIpCheckEntry 3 }
            
fsSNIgmpSrcIpCheckEntryStatus OBJECT-TYPE
        SYNTAX INTEGER{
              valid(1),
              delete(2) 
        }
        MAX-ACCESS read-create
        STATUS deprecated
        DESCRIPTION
            "entry status of this entry. Setting this value to 'delete' will delete this
             entry.Setting this value to value have no any effect"
        ::= { fsSNIgmpSrcIpCheckEntry 4 } 
   
fsSNIgmpPortTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSSNIgmpPortEntry
        MAX-ACCESS not-accessible
        STATUS deprecated
        DESCRIPTION
            "Port's configuration concerned with snooping IGMP"
       ::= { fsIgmpSnoopingMIBObjects 6 }
        
fsSNIgmpPortEntry OBJECT-TYPE
        SYNTAX FSSNIgmpPortEntry
        MAX-ACCESS not-accessible
        STATUS deprecated
        DESCRIPTION 
            "list of IGMP port configurations."
        INDEX { fsSNIgmpPortRouterVID,fsSNIgmpPortIndex }
        ::= { fsSNIgmpPortTable 1 }
        
FSSNIgmpPortEntry ::= 
        SEQUENCE {
        fsSNIgmpPortRouterVID VlanId,        
        fsSNIgmpPortIndex IfIndex,
        fsSNIgmpPortRouterState INTEGER,
        fsSNIgmpPortRouterProfile Unsigned32
        }
    
fsSNIgmpPortRouterVID OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            "the mroute port's vlan id"
        ::= { fsSNIgmpPortEntry 1 }    
    
fsSNIgmpPortIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS deprecated
        DESCRIPTION     
            ""
        ::= { fsSNIgmpPortEntry 2 }

fsSNIgmpPortRouterState OBJECT-TYPE
        SYNTAX INTEGER{
           mrnone(1),
           mrstatic(2),
           mrdynamic(3)
        }
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            "the mroute port's state,"
        ::= { fsSNIgmpPortEntry 3 }        

fsSNIgmpPortRouterProfile OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            "the mroute port's profile."
        ::= { fsSNIgmpPortEntry 4 }        
    

--fsSNIgmpPortDefGroupsFilterBehavior OBJECT-TYPE
--        SYNTAX INTEGER {
--            forwardAllGroups(1),
--            forwardUnregisteredGroups (2),
--            filterUnregisteredGroups (3)
--        }
--        MAX-ACCESS read-write
--        STATUS current
--        DESCRIPTION
--         "Forwarding and filtering of group addressed frames may be managed by specifying 
--         defaults for each outbound Port. The behavior of each of these defaults, as modified
--         by the control elements of more explicit Filtering Database entries applicable to 
--         a given frames MAC Address, reception Port, and outbound Port, is as follows.
--              a) Forward All Groups. The frame is forwarded, unless an explicit Static Filtering
--                 Entry specifies filtering independent of any dynamic filtering information.
--              b) Forward Unregistered Groups. The frame is forwarded, unless
--                 1) An explicit Static Filtering Entry specifies filtering independent 
--                    of any dynamic filtering information; or
--                 2) An explicit Static Filtering Entry specifies forwarding or filtering
--                    on the basis of dynamic filtering information, and an applicable explicit
--                     Group Registration Entry exists specifying filtering;or
--                 3) An applicable explicit Static Filtering Entry does not exist, but an 
--                    applicable Group Registration entry specifies filtering.
--              c) Filter Unregistered Groups. The frame is filtered unless
--                 1) An explicit Static Filtering Entry specifies forwarding independent of 
--                    any dynamic filtering information; or
--                 2) An explicit Static Filtering Entry specifies forwarding or filtering on
--                   the basis of dynamic filtering information, and an applicable explicit 
--                   Group Registration Entry exists specifying forwarding;or
--                 3) An applicable explicit Static Filtering Entry does not exist, but an 
--                    applicable Group Registration entry specifies forwarding."
--        ::= { fsSNIgmpPortEntry 4 }

fsSNIgmpGDANumber OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS deprecated
        DESCRIPTION
            "max number of Group Destination Address this system supported."
        ::= { fsIgmpSnoopingMIBObjects 7 }

fsSNIgmpGDATable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSSNIgmpGDAEntry
        MAX-ACCESS not-accessible
        STATUS deprecated
        DESCRIPTION
            "table of GDA."
        ::= { fsIgmpSnoopingMIBObjects 8}
    
fsSNIgmpGDAEntry OBJECT-TYPE
        SYNTAX FSSNIgmpGDAEntry
        MAX-ACCESS not-accessible
        STATUS deprecated
        DESCRIPTION 
            "list of GDA of ports"
        INDEX { fsSNIgmpGDAVID,fsSNIgmpGDAAddr }
        ::= { fsSNIgmpGDATable 1 }
    
FSSNIgmpGDAEntry ::= 
        SEQUENCE {
        fsSNIgmpGDAVID VlanId,
        fsSNIgmpGDAAddr IpAddress,
        fsSNIgmpGDAPortMemberAction MemberMap,
        fsSNIgmpGDATrunkMemberAction MemberMap
--        fsSNIgmpGDAStatus RowStatus
--        fsSNIgmpGDAStatus INTEGER
        }

fsSNIgmpGDAVID OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-only
        STATUS deprecated
        DESCRIPTION
            "VID of ipmc stream"
        ::= { fsSNIgmpGDAEntry 1 }
        
fsSNIgmpGDAAddr OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-only
        STATUS deprecated
        DESCRIPTION
            "Group Destination Address for a port."
        ::= { fsSNIgmpGDAEntry 2 }
    
fsSNIgmpGDAPortMemberAction OBJECT-TYPE
        SYNTAX MemberMap
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            "member physical port of this group, and each port have its action:
             null(1), static(2), dynamic(3), mroute(4). the port is the logic port
             by implementation specific."
        ::= { fsSNIgmpGDAEntry 3 }
        
fsSNIgmpGDATrunkMemberAction OBJECT-TYPE
        SYNTAX MemberMap
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            "member trunk port of this group, and each trunk port have its action:
             null(1), static(2), dynamic(3), mroute(4). the port is the logic port
             by implementation specific."
        ::= { fsSNIgmpGDAEntry 4 }        
   
--fsSNIgmpGDAStatus OBJECT-TYPE
--        SYNTAX RowStatus
--        MAX-ACCESS read-create
--        STATUS current
--        DESCRIPTION
--            "the item status"
--        ::= { fsSNIgmpGDAEntry 5 }    
        
--fsSNIgmpGDAStatus OBJECT-TYPE
--        SYNTAX INTEGER {
--            invalid(1),
--          dynamic(2),
--          static(3)
--      }
--      MAX-ACCESS read-only
--      STATUS current
--      DESCRIPTION
--          "Status of a logic port's Group Destination Address.
--          dynamic (2):
--          while logic port's GDA dynamic configuration in 
--          snoopingIgmpPortTable is enabled some GDA 
--          will add to table with status dynamic.
--          static (3):
--          add by management, you can specify a GDA by
--          hand for a logic port.
--          changes can occur between every status, from invalid
--          to dynamic, static to dynamic, etc. but can't change
--          from invalid to dynamic or static when 
--          snoopingIgmpGDAAddr is not a valid GDA."
--      ::= { fsSNIgmpGDAEntry 5 }

fsSNIgmpSvglVID OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            "the vid of svgl mode"
        ::= { fsIgmpSnoopingMIBObjects 9 }
        
fsSNIgmpSvglProfile OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            "the profile of svgl mode"
        ::= { fsIgmpSnoopingMIBObjects 10 }        


fsSNIgmpMrLearnTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSSNIgmpMrLearnEntry
        MAX-ACCESS not-accessible
        STATUS deprecated
        DESCRIPTION
            "table of MrLearn."
        ::= { fsIgmpSnoopingMIBObjects 11}
    
fsSNIgmpMrLearnEntry OBJECT-TYPE
        SYNTAX FSSNIgmpMrLearnEntry
        MAX-ACCESS not-accessible
        STATUS deprecated
        DESCRIPTION
            "list of MrLearn table"
        INDEX { fsSNIgmpMrLearnVID }         
        ::= { fsSNIgmpMrLearnTable 1}
    
FSSNIgmpMrLearnEntry ::= 
        SEQUENCE {
        fsSNIgmpMrLearnVID VlanId,
        fsSNIgmpMrLearnStatus INTEGER
        }

fsSNIgmpMrLearnVID OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            "VID of Mr Learn"
        ::= { fsSNIgmpMrLearnEntry 1 } 
        
fsSNIgmpMrLearnStatus OBJECT-TYPE
        SYNTAX INTEGER{
        	disable(1),
        	pim-dvmrp(2)
        }
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            "Status of Mr Learn"
        ::= { fsSNIgmpMrLearnEntry 2 }          

fsSNIgmpPortFilteringTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSSNIgmpPortFilteringEntry
        MAX-ACCESS not-accessible
        STATUS deprecated
        DESCRIPTION
            "table of igmp snooping port filtering."
        ::= { fsIgmpSnoopingMIBObjects 12}
    
fsSNIgmpPortFilteringEntry OBJECT-TYPE
        SYNTAX FSSNIgmpPortFilteringEntry
        MAX-ACCESS not-accessible
        STATUS deprecated
        DESCRIPTION
            "list of igmp filtering table"
        INDEX { fsSNPortIndex }         
        ::= { fsSNIgmpPortFilteringTable 1}
        
FSSNIgmpPortFilteringEntry ::= 
        SEQUENCE {
        fsSNPortIndex IfIndex,
        fsSNIgmpFilteringProfile Unsigned32,
        fsSNIgmpFilteringMaxGroups Unsigned32
        }

fsSNPortIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS deprecated
        DESCRIPTION     
            ""
        ::= { fsSNIgmpPortFilteringEntry 1}  

fsSNIgmpFilteringProfile OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            "profile for igmp snooping port filtering"
        ::= { fsSNIgmpPortFilteringEntry 2 }     


fsSNIgmpFilteringMaxGroups OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            "The maximum number of IGMP groups that the L2 interface can join,the number can 
            be from 0-4294967294;4294967295(0xFFFFFFFF) means no limit"
        ::= { fsSNIgmpPortFilteringEntry 3 }             

fsSNIgmpGDAConfigTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSSNIgmpGDAConfigEntry
        MAX-ACCESS not-accessible
        STATUS deprecated
        DESCRIPTION
            "GDA config table"
        ::= { fsIgmpSnoopingMIBObjects 13}
    
fsSNIgmpGDAConfigEntry OBJECT-TYPE
        SYNTAX FSSNIgmpGDAConfigEntry
        MAX-ACCESS not-accessible
        STATUS deprecated
        DESCRIPTION 
            "list of GDA table"
        INDEX { fsSNIgmpGDAConfigVID,fsSNIgmpGDAConfigAddr }
        ::= { fsSNIgmpGDAConfigTable 1 }
    
FSSNIgmpGDAConfigEntry ::= 
        SEQUENCE {
        fsSNIgmpGDAConfigVID VlanId,
        fsSNIgmpGDAConfigAddr IpAddress,
        fsSNIgmpGDAConfigIfIndex IfIndex,
        fsSNIgmpGDAConfigType INTEGER,
        fsSNIgmpGDAConfigStatus INTEGER
        }        

fsSNIgmpGDAConfigVID OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-only
        STATUS deprecated
        DESCRIPTION
            "VID of ipmc stream"
        ::= { fsSNIgmpGDAConfigEntry 1 }
        
fsSNIgmpGDAConfigAddr OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-only
        STATUS deprecated
        DESCRIPTION
            "Group Destination Address for a port."
        ::= { fsSNIgmpGDAConfigEntry 2 }
        
fsSNIgmpGDAConfigIfIndex OBJECT-TYPE   
	SYNTAX   IfIndex
        MAX-ACCESS read-only
        STATUS deprecated
        DESCRIPTION
            "member port of this group"
        ::= { fsSNIgmpGDAConfigEntry 3 }
        
fsSNIgmpGDAConfigType OBJECT-TYPE   
	SYNTAX   INTEGER{
		null(1),
		static(2),
		dynamic(3),
		mrouter(4)
	}
        MAX-ACCESS read-only
        STATUS deprecated
        DESCRIPTION
            ""
        ::= { fsSNIgmpGDAConfigEntry 4 }        
        
fsSNIgmpGDAConfigStatus OBJECT-TYPE   
	SYNTAX   INTEGER{
		valid(1),
		invalid(2)
	}
        MAX-ACCESS read-only
        STATUS deprecated
        DESCRIPTION
            ""
        ::= { fsSNIgmpGDAConfigEntry 5 }     
        
fsSNIgmpQueryResponeTime  OBJECT-TYPE   
	SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            "The maximal response time for Query messages."  
        ::= { fsIgmpSnoopingMIBObjects 14}                 



fsIgmpSnoopingWorkingMode OBJECT-TYPE
        SYNTAX INTEGER {
            disabled(1),
            svgl(2),    -- shared-vlan-group-learning(2),
            ivgl(3),    -- independent-vlan-group-learning(3)
            ivgl-svgl(4)-- svgl-and-ivgl-coexist(4)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "System IGMP snooping working mode:
             disabled(1):
                disable the snooping IGMP function, and all IGMP report or leave
                message will be forward transparent.
             svgl(2):
                shared vlan group learning, all group learning in each VLAN will 
                be awared of by other VLAN.
             ivgl(3):
                independent vlan group learning, all group learning by each VLAN
                cannot be used by other VLAN.
             ivgl-svgl(4):
                svgl-and-ivgl-coexist."                
        DEFVAL { disabled }
        ::= { fsIgmpSnoopingMIBObjects 15 }

fsIgmpSnoopingGDANumber OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Max number of Group Destination Address this system supported."
        ::= { fsIgmpSnoopingMIBObjects 16 }

fsIgmpSnoopingGDATable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSIgmpSnoopingGDAEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "table of GDA."
        ::= { fsIgmpSnoopingMIBObjects 17}
    
fsIgmpSnoopingGDAEntry OBJECT-TYPE
        SYNTAX FSIgmpSnoopingGDAEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION 
            "list of GDA of ports"
        INDEX { fsIgmpSnoopingGDAVID,fsIgmpSnoopingGDAAddr }
        ::= { fsIgmpSnoopingGDATable 1 }
    
FSIgmpSnoopingGDAEntry ::= 
        SEQUENCE {
        fsIgmpSnoopingGDAVID VlanId,
        fsIgmpSnoopingGDAAddr IpAddress,
        fsIgmpSnoopingGDAPortMemberAction MemberMap
        }

fsIgmpSnoopingGDAVID OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "VID of ipmc stream"
        ::= { fsIgmpSnoopingGDAEntry 1 }

fsIgmpSnoopingGDAAddr OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Group Destination Address for a port."
        ::= { fsIgmpSnoopingGDAEntry 2 }
    
fsIgmpSnoopingGDAPortMemberAction OBJECT-TYPE
        SYNTAX MemberMap
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "member physical port of this group, and each port have its action:
             null(1), static(2), dynamic(3), mroute(4). the port is the logic port
             by implementation specific."
        ::= { fsIgmpSnoopingGDAEntry 3 }

--show vlan snooping status
fsIgmpSnoopingVlanStatusTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSIgmpSnoopingVlanStatusEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "table of Vlan snooping status."
        ::= { fsIgmpSnoopingMIBObjects 18}

fsIgmpSnoopingVlanStatusEntry OBJECT-TYPE
        SYNTAX FSIgmpSnoopingVlanStatusEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of Vlan Status"
        INDEX { fsIgmpSnoopingVlanStatusVID }         
        ::= { fsIgmpSnoopingVlanStatusTable 1}

FSIgmpSnoopingVlanStatusEntry ::= 
        SEQUENCE {
        fsIgmpSnoopingVlanStatusVID VlanId,
        fsIgmpSnoopingVlanStatusStatus EnabledStatus
        }

fsIgmpSnoopingVlanStatusVID OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "VID of Mr Learn"
        ::= { fsIgmpSnoopingVlanStatusEntry 1 } 
        
fsIgmpSnoopingVlanStatusStatus OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Status of Vlan snooping"
        ::= { fsIgmpSnoopingVlanStatusEntry 2 }

--show svgl vlan
fsIgmpSnoopingSvglVID OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the vid of share-vlan mode"
        ::= { fsIgmpSnoopingMIBObjects 19 }

fsIgmpSnoopingSvglProfile OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the profile of svgl mode"
        ::= { fsIgmpSnoopingMIBObjects 20 }

--show vlan learning
fsIgmpSnoopingMrLearnTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSIgmpSnoopingMrLearnEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "table of MrLearn."
        ::= { fsIgmpSnoopingMIBObjects 21}

fsIgmpSnoopingMrLearnEntry OBJECT-TYPE
        SYNTAX FSIgmpSnoopingMrLearnEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of MrLearn table"
        INDEX { fsIgmpSnoopingMrLearnVID }         
        ::= { fsIgmpSnoopingMrLearnTable 1}

FSIgmpSnoopingMrLearnEntry ::= 
        SEQUENCE {
        fsIgmpSnoopingMrLearnVID VlanId,
        fsIgmpSnoopingMrLearnStatus INTEGER
        }

fsIgmpSnoopingMrLearnVID OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "VID of Mr Learn"
        ::= { fsIgmpSnoopingMrLearnEntry 1 } 
        
fsIgmpSnoopingMrLearnStatus OBJECT-TYPE
        SYNTAX INTEGER{
        	disable(1),
        	pim-dvmrp(2)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Status of Mr Learn"
        ::= { fsIgmpSnoopingMrLearnEntry 2 }

fsIgmpSnoopingPortFilteringTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSIgmpSnoopingPortFilteringEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "table of igmp snooping port filtering."
        ::= { fsIgmpSnoopingMIBObjects 22 }
    
fsIgmpSnoopingPortFilteringEntry OBJECT-TYPE
        SYNTAX FSIgmpSnoopingPortFilteringEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of igmp filtering table"
        INDEX { fsIgmpSnoopingportIndex }         
        ::= { fsIgmpSnoopingPortFilteringTable 1}
        
FSIgmpSnoopingPortFilteringEntry ::= 
        SEQUENCE {
        fsIgmpSnoopingportIndex IfIndex,
        fsIgmpSnoopingFilteringProfile Unsigned32,
        fsIgmpSnoopingFilteringMaxGroups Unsigned32
        }

fsIgmpSnoopingportIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION     
            ""
        ::= { fsIgmpSnoopingPortFilteringEntry 1}  

fsIgmpSnoopingFilteringProfile OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "profile for igmp snooping port filtering"
        ::= { fsIgmpSnoopingPortFilteringEntry 2 }


fsIgmpSnoopingFilteringMaxGroups OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The maximum number of IGMP groups that the L2 interface can join,the number can 
            be from 0-4294967294;4294967295(0xFFFFFFFF) means no limit"
        ::= { fsIgmpSnoopingPortFilteringEntry 3 }             

fsIgmpSnoopingGDAConfigTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSIgmpSnoopingGDAConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "GDA config table"
        ::= { fsIgmpSnoopingMIBObjects 23 }
    
fsIgmpSnoopingGDAConfigEntry OBJECT-TYPE
        SYNTAX FSIgmpSnoopingGDAConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION 
            "list of GDA table static configure"
        INDEX { fsIgmpSnoopingGDAConfigVID,fsIgmpSnoopingGDAConfigAddr,fsIgmpSnoopingGDAConfigIfIndex }
        ::= { fsIgmpSnoopingGDAConfigTable 1 }
    
FSIgmpSnoopingGDAConfigEntry ::= 
        SEQUENCE {
        fsIgmpSnoopingGDAConfigVID VlanId,
        fsIgmpSnoopingGDAConfigAddr IpAddress,
        fsIgmpSnoopingGDAConfigIfIndex IfIndex
        }        

fsIgmpSnoopingGDAConfigVID OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "VID of ipmc stream"
        ::= { fsIgmpSnoopingGDAConfigEntry 1 }
        
fsIgmpSnoopingGDAConfigAddr OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Group Destination Address for a port."
        ::= { fsIgmpSnoopingGDAConfigEntry 2 }
        
fsIgmpSnoopingGDAConfigIfIndex OBJECT-TYPE   
	SYNTAX   IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "member port of this group"
        ::= { fsIgmpSnoopingGDAConfigEntry 3 }   
        
fsIgmpSnoopingQueryResponeTime  OBJECT-TYPE   
	SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Query max response time"
        ::= { fsIgmpSnoopingMIBObjects 24 }

fsIgmpSnoopingReportSuppress  OBJECT-TYPE   
	SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Report suppress"
        ::= { fsIgmpSnoopingMIBObjects 25 }                 


fsIgmpSnoopingFastleave  OBJECT-TYPE   
	SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Fast leave"
        ::= { fsIgmpSnoopingMIBObjects 26 }

--newgdatable
fsIgmpSnoopingGDANewTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSIgmpSnoopingGDANewEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "table of GDA."
        ::= { fsIgmpSnoopingMIBObjects 27}

fsIgmpSnoopingMulticastWlan  OBJECT-TYPE   
	SYNTAX INTEGER {
            disabled(0),
            enable(1)    -- enable Multicast for Wlan(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "enable or disable the global Multicast for Wlan"
        DEFVAL{disabled}
        ::= { fsIgmpSnoopingMIBObjects 28 }
		
fsIgmpSnoopingGDANewEntry OBJECT-TYPE
        SYNTAX FSIgmpSnoopingGDANewEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION 
            "list of GDA of ports"
        INDEX { fsIgmpSnoopingGDANewInVID,
        	fsIgmpSnoopingGDANewOutVID,
        	fsIgsmpSnoopingGDASrc,
        	fsIgmpSnoopingGDAGrp,
        	fsIgmpSnoopingGDAIfx }
        ::= { fsIgmpSnoopingGDANewTable 1 }
    
FSIgmpSnoopingGDANewEntry ::=
        SEQUENCE {
        fsIgmpSnoopingGDANewInVID VlanId,
        fsIgmpSnoopingGDANewOutVID VlanId,
        fsIgsmpSnoopingGDASrc IpAddress,
        fsIgmpSnoopingGDAGrp IpAddress,
        fsIgmpSnoopingGDAIfx   IfIndex,
        fsIgmpSnoopingGDAIfxAction INTEGER
        }

fsIgmpSnoopingGDANewInVID OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "VID of In ipmc stream"
        ::= { fsIgmpSnoopingGDANewEntry 1 }
        
fsIgmpSnoopingGDANewOutVID OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "VID of Out ipmc stream"
        ::= { fsIgmpSnoopingGDANewEntry 2 } 
             
fsIgsmpSnoopingGDASrc OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Source Address of the entry"
        ::= { fsIgmpSnoopingGDANewEntry 3 }
        
fsIgmpSnoopingGDAGrp OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Group Address of the entry"
        ::= { fsIgmpSnoopingGDANewEntry 4 }
             
fsIgmpSnoopingGDAIfx OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Egress of the entry"
        ::= { fsIgmpSnoopingGDANewEntry 5 }
              
fsIgmpSnoopingGDAIfxAction OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Every egress in the entry may have three states: 1. static, 2.dynamic, 3.mroute."
        ::= { fsIgmpSnoopingGDANewEntry 6 }

        

fsIgmpSnoopingMIBConformance OBJECT IDENTIFIER ::= { fsIgmpSnoopingMIB 2 }
fsIgmpSnoopingMIBCompliances OBJECT IDENTIFIER ::= { fsIgmpSnoopingMIBConformance 1 }
fsIgmpSnoopingMIBGroups      OBJECT IDENTIFIER ::= { fsIgmpSnoopingMIBConformance 2 }


-- compliance statements

fsIgmpSnoopingMIBCompliance MODULE-COMPLIANCE
        STATUS  deprecated
        DESCRIPTION
                "The compliance statement for entities which implement
                the FS Snooping Igmp MIB. It is replaced by 
                the fsIgmpSnoopingMIBCompliance2."
        MODULE   --this module
                MANDATORY-GROUPS { fsIgmpSnoopingMIBGroup
                 }
        ::= { fsIgmpSnoopingMIBCompliances 1 }
        
fsIgmpSnoopingMIBCompliance2 MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the FS Snooping Igmp MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { fsIgmpSnoopingMIBGroup2
                 }
        ::= { fsIgmpSnoopingMIBCompliances 2 }
                
-- units of conformance

fsIgmpSnoopingMIBGroup OBJECT-GROUP
        OBJECTS {
           fsSNIgmpWorkingMode,
           fsSNIgmpSourcePortCheck,
           fsSNIgmpSourceIpCheck,
           fsSNIgmpSourceIpCheckDefIp,           
           fsSNIgmpSrcIpCheckVID,
           fsSNIgmpSrcIpCheckMultiIpAddr,
           fsSNIgmpSrcIpCheckSrcIpAddr,
           fsSNIgmpSrcIpCheckEntryStatus,    
           fsSNIgmpPortRouterVID,        
           fsSNIgmpPortIndex,
           fsSNIgmpPortRouterState,
           fsSNIgmpPortRouterProfile,
           fsSNIgmpGDANumber,
           fsSNIgmpGDAVID,
           fsSNIgmpGDAAddr,
           fsSNIgmpGDAPortMemberAction,
           fsSNIgmpGDATrunkMemberAction,   
           fsSNIgmpSvglVID,   
           fsSNIgmpSvglProfile,	      
           fsSNIgmpMrLearnVID,
           fsSNIgmpMrLearnStatus,
           fsSNPortIndex,
           fsSNIgmpFilteringProfile,
           fsSNIgmpFilteringMaxGroups,
           fsSNIgmpGDAConfigVID,
           fsSNIgmpGDAConfigAddr,
           fsSNIgmpGDAConfigIfIndex,
           fsSNIgmpGDAConfigType,
           fsSNIgmpGDAConfigStatus,
           fsSNIgmpQueryResponeTime           
        }
        STATUS  deprecated
        DESCRIPTION
                "A collection of objects providing snooping Igmp configure.
                It is replaced by the fsIgmpSnoopingMIBGroup2."
        ::= { fsIgmpSnoopingMIBGroups 1 }
        
fsIgmpSnoopingMIBGroup2 OBJECT-GROUP
        OBJECTS {
           fsIgmpSnoopingWorkingMode,
           fsIgmpSnoopingGDANumber,
           fsIgmpSnoopingGDAVID,
           fsIgmpSnoopingGDAAddr,
           fsIgmpSnoopingGDAPortMemberAction,
           fsIgmpSnoopingVlanStatusVID,
           fsIgmpSnoopingVlanStatusStatus,
           fsIgmpSnoopingSvglVID,   
           fsIgmpSnoopingSvglProfile,	      
           fsIgmpSnoopingMrLearnVID,
           fsIgmpSnoopingMrLearnStatus,
           fsIgmpSnoopingportIndex,
           fsIgmpSnoopingFilteringProfile,
           fsIgmpSnoopingFilteringMaxGroups,
           fsIgmpSnoopingGDAConfigVID,
           fsIgmpSnoopingGDAConfigAddr,
           fsIgmpSnoopingGDAConfigIfIndex,
           fsIgmpSnoopingQueryResponeTime,    
           fsIgmpSnoopingReportSuppress,
           fsIgmpSnoopingFastleave,
           fsIgmpSnoopingGDANewInVID,
       	   fsIgmpSnoopingGDANewOutVID,
       	   fsIgsmpSnoopingGDASrc,
           fsIgmpSnoopingGDAGrp,
           fsIgmpSnoopingGDAIfx,
           fsIgmpSnoopingGDAIfxAction,
           fsIgmpSnoopingMulticastWlan	         
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing snooping Igmp configure ."
        ::= { fsIgmpSnoopingMIBGroups 2 }
        
END
