                                                         TPLINK-MLDSNOOPING-MIB DEFINITIONS ::= BEGIN

          IMPORTS
             
             OBJECT-TYPE,MODULE-IDENTITY,IpAddress
          	  	        FROM SNMPv2-SMI
			TPRowStatus
				FROM TPLINK-TC-MIB 
			ifIndex
						FROM RFC1213-MIB
			tplinkMgmt
					FROM TPLINK-MIB;
          	  	          
          	 
	    tplinkMldSnoopingMIB MODULE-IDENTITY
	    LAST-UPDATED    "201212141432Z"
	    ORGANIZATION    "TPLINK"
	    CONTACT-INFO  	"www.tplink.com"
	    DESCRIPTION
	             "Private MIB for mldSnooping manage."
	    REVISION        "201212141432Z"
	    DESCRIPTION
	            "Initial version of this MIB module."
	    ::= { tplinkMgmt 43 }
				
				tplinkMldSnoopingMIBObjects   			OBJECT IDENTIFIER ::= {tplinkMldSnoopingMIB 1}
	  			tplinkMldSnoopingNotifications			OBJECT IDENTIFIER ::= {tplinkMldSnoopingMIB 2}
        
		tpMldSnooping   					OBJECT IDENTIFIER ::= {tplinkMldSnoopingMIBObjects 1}
	  	tpMldFilter						OBJECT IDENTIFIER ::= {tplinkMldSnoopingMIBObjects 2}
	  	tpMldPacketStatistic				OBJECT IDENTIFIER ::= {tplinkMldSnoopingMIBObjects 3}
	  	tpMldMultigroup                    OBJECT IDENTIFIER ::= {tplinkMldSnoopingMIBObjects 4}
	  	tpMldStaticMultigroup              OBJECT IDENTIFIER ::= {tplinkMldSnoopingMIBObjects 5}
		
		--**************
		--MLD SNOOPING
		--**************
		tpMldSnoopingGlobalConfig OBJECT IDENTIFIER ::= {tpMldSnooping 1}
	
			tpMldSnoopingEnable OBJECT-TYPE
         			SYNTAX  INTEGER{
	      							disable(0), 						--disable
	      							enable(1)								--enable
	      							}
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Select Enable/Disable MLD Snooping function globally on the Switch.
                      0. disable 
                      1. enable"
              ::= { tpMldSnoopingGlobalConfig 1 }
              
      	   
         	tpMldUnknownMulticastPacket OBJECT-TYPE
         			SYNTAX  INTEGER{
	      							forward(0), 						--forward
	      							discard(1)					--discard
	      							}
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Select the operation for the switch to process unknown multicast.
                      0. forward 
                      1. discard"
              ::= { tpMldSnoopingGlobalConfig 2 } 
                          
        tpMldPortConfig   	OBJECT IDENTIFIER ::= {tpMldSnooping 2}
         
         
            tpMldPortTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF TPMLDPORTENTRY
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "MLD Snooping (Internet Group Management Protocol Snooping) 
                      is a multicast control mechanism running on Layer 2 switch. 
                      It can effectively prevent multicast groups being broadcasted 
                      in the network."
              ::= { tpMldPortConfig 1 }

          tpMldPortEntry OBJECT-TYPE
              SYNTAX  TPMLDPORTENTRY
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "An entry contains of the information of port configure."
              INDEX { ifIndex }
              ::= { tpMldPortTable 1 }
      
          TPMLDPORTENTRY ::=
              SEQUENCE {
                  tpMldSnoopingPortEnable
                      INTEGER,
                  tpMldFastLeavePortEnable
                      INTEGER,
                  tpMldPortLag
                  		OCTET STRING
                   		
              	}      
          tpMldSnoopingPortEnable OBJECT-TYPE
              SYNTAX  INTEGER{
	      										disable(0), 					--Disable
	      										enable(1)						--Enable
	      											}
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Select Enable/Disable MLD Snooping for the desired port.
                      0. Disable
                      1. Enable"
              ::= { tpMldPortEntry 2 }
              
          tpMldFastLeavePortEnable OBJECT-TYPE
               SYNTAX  INTEGER{
	      										disable(0), 					--Disable
	      										enable(1)						--Enable
	      											}
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Select Enable/Disable Fast Leave feature for the desired port. 
                      If Fast Leave is enabled for a port, the Switch will immediately 
                      remove this port from the multicast group upon receiving MLD 
                      leave messages.
                      0. Disable
                      1. Enable"
              ::= { tpMldPortEntry 3 }
              
            tpMldPortLag OBJECT-TYPE
          		SYNTAX  OCTET STRING (SIZE (0..255))
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      	"Displays the LAG number which the port belongs to."
              ::= { tpMldPortEntry 4 } 
             
          
        tpMldVlanConfig   	OBJECT IDENTIFIER ::= {tpMldSnooping 3}
        
           tpMldVlanTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF TPMLDVLANENTRY
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "Multicast groups established by MLD Snooping are based on VLANs. 
                      You can configure different MLD parameters for different VLANs.
"
              ::= { tpMldVlanConfig 1 }

          tpMldVlanEntry OBJECT-TYPE
              SYNTAX  TPMLDVLANENTRY
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "An entry contains of the information of mldsnooping."
              INDEX   {tpMldVlanId}
              ::= { tpMldVlanTable 1 }
      
          TPMLDVLANENTRY ::=
              SEQUENCE {
                  tpMldVlanId
                      INTEGER,
                  tpMldVlanEnable
                  	  INTEGER,
                  tpMldVlanFastLeave
                      INTEGER,
                  tpMldVlanReportSuppression
                      INTEGER, 
                  tpMldRouterTime
                      INTEGER, 
                  tpMldMemberTime
                  		INTEGER,
				  tpMldLeaveTime
						INTEGER,	
                  tpMldRouterPort
                 		OCTET STRING,
                  tpMldForbiddenRouterPort
                 		OCTET STRING,
                  tpMldQueryEnable
                      	INTEGER,
                  tpMldQueryInterval
                      	INTEGER, 
                  tpMldQueryMaxResponseTime
                  	  	INTEGER,
                  tpMldQueryGeneralSrcIp
                 		OCTET STRING,
                  tpMldQueryLastMemberCount
                      	INTEGER, 
                  tpMldQueryLastMemberInterval
                  	  	INTEGER,
                  tpMldVlanStatus
                      TPRowStatus
              }
              
          tpMldVlanId OBJECT-TYPE
              SYNTAX  INTEGER (1..4094)  
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Enter the VLAN ID to enable MLD Snooping for the desired VLAN,1-4094."
              ::= { tpMldVlanEntry 1 }
          
          tpMldVlanEnable OBJECT-TYPE
               SYNTAX  INTEGER{
	      						   disable(0), 					--Disable
	      						   enable(1)					--Enable
	      					  }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Select Enable/Disable MLD Snooping for the desired vlan.
                      0. Disable
                      1. Enable"
              ::= { tpMldVlanEntry 2 }
          
          tpMldVlanFastLeave OBJECT-TYPE
               SYNTAX  INTEGER{
	      						   disable(0), 					--Disable
	      						   enable(1)					--Enable
	      					  }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Select Enable/Disable Fast Leave feature for the desired vlan. 
                      If Fast Leave is enabled for a vlan, the Switch will immediately 
                      remove this port from the multicast group upon receiving MLD 
                      leave messages.
                      0. Disable
                      1. Enable"
              ::= { tpMldVlanEntry 3 }
          
          tpMldVlanReportSuppression OBJECT-TYPE
               SYNTAX  INTEGER{
	      						   disable(0), 					--Disable
	      						   enable(1)					--Enable
	      					  }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Select Enable/Disable MLD Snooping report suppression function globally on the Switch.
                      0. Disable
                      1. Enable"
              ::= { tpMldVlanEntry 4 } 
          
          tpMldRouterTime OBJECT-TYPE
              SYNTAX  INTEGER(60..600)  
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "Specify the aging time of the router port. Within this time, 
                      if the switch don't receive MLD query message from the router port, 
                      it will consider this port is not a router port any more,0,60-600 second."
              ::= { tpMldVlanEntry 5 }
              
          tpMldMemberTime OBJECT-TYPE
              SYNTAX  INTEGER(60..600)  
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "Specify the aging time of the member port. Within this time, 
                      if the switch don't receive MLD report message from the member port,
                      it will consider this port is not a member port any more,0,60-600 second."
              ::= { tpMldVlanEntry 6}

          tpMldLeaveTime OBJECT-TYPE
              SYNTAX  INTEGER(1..30)  
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "Specify the leave time for the VLAN. 
					  When the switch receives a leave message from a port to leave a multicast group, 
					  it will wait for a leave time before removing the port from the multicast group."
              ::= { tpMldVlanEntry 7}
			  
          tpMldRouterPort OBJECT-TYPE
              SYNTAX  OCTET STRING (SIZE (0..255))
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "Config the static router ports which are mainly used in the network with 
                      stable topology."
              ::= { tpMldVlanEntry 8 }
              
          tpMldForbiddenRouterPort OBJECT-TYPE
              SYNTAX  OCTET STRING (SIZE (0..255))
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "Config the forbidden router ports which are mainly used to forbidden
                      specified ports to become router ports."
              ::= { tpMldVlanEntry 9 }             
       
         tpMldQueryEnable OBJECT-TYPE
               SYNTAX  INTEGER{
	      						   disable(0), 					--Disable
	      						   enable(1)					--Enable
	      					  }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Select Enable/Disable MLD Querier.
                      0. Disable
                      1. Enable"
              ::= { tpMldVlanEntry 10 }

          tpMldQueryInterval OBJECT-TYPE
              SYNTAX  INTEGER(10..300)  
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "Enter the Query message interval time. The Querier will send General Query Message with this interval. The interval is ranging from 10 to 300 seconds."
              ::= { tpMldVlanEntry 11 }
              
          tpMldQueryMaxResponseTime OBJECT-TYPE
              SYNTAX  INTEGER(1..25)  
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "Enter the value of Maximum Response Time field of the Query message. The host is expected to response to an IGMP general query within this time. The time is ranging from 1 to 25 seconds."
              ::= { tpMldVlanEntry 12}
              
          tpMldQueryGeneralSrcIp OBJECT-TYPE
              SYNTAX  OCTET STRING  
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "Enter the General Query Message source IP address."
              ::= { tpMldVlanEntry 13}
          
         tpMldQueryLastMemberCount OBJECT-TYPE
              SYNTAX  INTEGER(1..5)  
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "Enter the Last Listener Query numbers. When the multicast group has no more member ports, 
                      it will send this numbers of Specific Query Message to check whether there is another member. 
                      It is ranging from 1 to 5."
              ::= { tpMldVlanEntry 14}
              
         tpMldQueryLastMemberInterval OBJECT-TYPE
              SYNTAX  INTEGER(1..5)  
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "Enter the Last Listener Query interval time. When the multicast group has no more member ports, 
                      it will send the Specific Query Message with this interval time to check whether there is another 
                      member. The interval is ranging from 1 to 5 seconds."
              ::= { tpMldVlanEntry 15}
                 
         tpMldVlanStatus OBJECT-TYPE
              SYNTAX  TPRowStatus
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "the following two values are states:
                     these values may be read or written
                     active(1),
                     notInService(2),

                     the following value is a state:
                     this value may be read, but not written
                     notReady(3),

                     the following three values are
                     actions: these values may be written,
                     but are never read
                     createAndGo(4),
                     createAndWait(5),
                     destroy(6)"
              ::= { tpMldVlanEntry 16 }
              
    
			  
		--**************
		--MLD FILTER
		--**************	  
			      
         tpMldPortFilterConfig            OBJECT IDENTIFIER ::= { tpMldFilter 1 }  
          tpMldFilterPortTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF TPMLDFILTERPORTENTRY
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "When the switch receives MLD report message, it examines 
                      the multicast filtering IP ID configured on the access port 
                      to determine if the port can join the multicast group. 
                      If the multicast IP is not filtered, the switch will add 
                      the port to the forward port list of the multicast group. 
                      Otherwise, the switch will drop the MLD report message. 
                      In that way, you can control the multicast groups that users 
                      can access."
              ::= { tpMldPortFilterConfig 1 }

          tpMldFilterPortEntry OBJECT-TYPE
              SYNTAX  TPMLDFILTERPORTENTRY
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "An entry contains of the information of a port param."
              INDEX { ifIndex }
              ::= { tpMldFilterPortTable 1 }
      
          TPMLDFILTERPORTENTRY ::=
              SEQUENCE {
                  tpMldFilterMaxGroup
                      INTEGER,
                  tpMldFilterMaxGroupAction
                      INTEGER,
                  tpMldFilterBindAddrId
                  		 OCTET STRING,
                  tpMldFilterPortLag
                  		 OCTET STRING 
                  		
              	}
                     
           tpMldFilterMaxGroup OBJECT-TYPE
               SYNTAX  INTEGER(0..1000)
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Specify the maximum number of multicast groups to prevent some 
                      ports taking up too much bandwidth."
              ::= { tpMldFilterPortEntry 2 }
              
          tpMldFilterMaxGroupAction OBJECT-TYPE
               SYNTAX  INTEGER{ 
	      										drop(0), 				--Drop
	      										replace(1)				--Replace
	      											}
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "The policy should be taken when the number of multicast group 
					  a port has joined reach the maximum.
                      0.Drop: drop the successive report packet, and this port can 
					  not join any other multicast group.
                      1.Replace: when the port joins another new multicast group,it 
					  will quit the existing multicast group randomly."
              ::= { tpMldFilterPortEntry 3 }
              
          tpMldFilterBindAddrId OBJECT-TYPE
              SYNTAX  OCTET STRING (SIZE (0..3))
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Enter the profile ID the port will be bound to. Only one profile
					  can be bound to each port."
              ::= { tpMldFilterPortEntry 4 }

          tpMldFilterPortLag OBJECT-TYPE
          		SYNTAX  OCTET STRING (SIZE (0..255)) 
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      	"Displays the LAG number which the port belongs to."
              ::= { tpMldFilterPortEntry 5 } 
			  
		--**************
		--PACKET STAT
		--**************	  
		tpMldPktStat    OBJECT IDENTIFIER ::= { tpMldPacketStatistic 1 }      	      
          
          tpMldPktStatTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF TPMLDPKTSTATENTRY
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "A list of  multicast statistic Table."
              ::= { tpMldPktStat 1 }

          tpMldPktStatEntry OBJECT-TYPE
              SYNTAX  TPMLDPKTSTATENTRY
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "An entry contains of multicast packet statistics over each port."
              INDEX { ifIndex }
              ::= { tpMldPktStatTable 1 }
      
          TPMLDPKTSTATENTRY ::=
              SEQUENCE {
                  tpMldQueryPktStat
                      INTEGER,
                 	tpMldReportV1PktStat
              				INTEGER,
                  tpMldReportV2PktStat
                      INTEGER,
                  tpMldDonePktStat
              		  INTEGER,
                  tpMldErrorPktStat
                      INTEGER
              }
                 
            tpMldQueryPktStat OBJECT-TYPE
            	 SYNTAX  INTEGER
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Displays the number of query packets the port received."
              ::= { tpMldPktStatEntry 2 }
           
        	tpMldReportV1PktStat OBJECT-TYPE
            	 SYNTAX  INTEGER
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Displays the number of MLDv1 report packets the port received."
              ::= { tpMldPktStatEntry 3 }
                 
          tpMldReportV2PktStat OBJECT-TYPE
            	 SYNTAX  INTEGER
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Displays the number of MLDv2 report packets the port received."
              ::= { tpMldPktStatEntry 4 }
                      
           tpMldDonePktStat OBJECT-TYPE
            	 SYNTAX  INTEGER
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Displays the number of done packets the port received."
              ::= { tpMldPktStatEntry 6 }
              
            tpMldErrorPktStat OBJECT-TYPE
            	 SYNTAX  INTEGER
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Displays the number of error packets the port received."
              ::= { tpMldPktStatEntry 7 }
       
		       tpIpMldPktStatClear OBJECT-TYPE
		            	 SYNTAX INTEGER
									   				{
									   					commit(1)
									   				}
		              MAX-ACCESS  read-write
		              STATUS  current
		              DESCRIPTION
		                      "mld packet statistic clear."
		              ::= { tpMldPktStat 2 }
			  
		--**************
		--GROUP SHOW
		--**************
		tpMldMulticastGroups               OBJECT IDENTIFIER ::= { tpMldMultigroup 1 }      	      

          tpMldMulticastGroupTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF TPMLDMULTICASTGROUPENTRY
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "A list of  multicast groups Table."
              ::= { tpMldMulticastGroups 1 }

          tpMldMulticastGroupEntry OBJECT-TYPE
              SYNTAX  TPMLDMULTICASTGROUPENTRY
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "An entry contains of multicast packet statistics over each port."
              INDEX   { tpMldMulticastIP ,  tpMldVlanID}
              ::= { tpMldMulticastGroupTable 1 }
      
          TPMLDMULTICASTGROUPENTRY ::=
              SEQUENCE {
                  tpMldMulticastIP
                      OCTET STRING,
                 tpMldVlanID
              		  INTEGER,
                  tpMldForwardPorts
                      OCTET STRING,
                  tpMldGrouptype
                      INTEGER
              }
                 
            tpMldMulticastIP OBJECT-TYPE
            	 SYNTAX  OCTET STRING
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Displays the multicast IP address."
              ::= { tpMldMulticastGroupEntry 1 }
              
            tpMldVlanID OBJECT-TYPE
            	 SYNTAX  INTEGER
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Displays the VLAN ID."
              ::= { tpMldMulticastGroupEntry 2 }
           
            tpMldForwardPorts OBJECT-TYPE
            	 SYNTAX  OCTET STRING(SIZE (0..50))
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Displays the forward ports of multicast group."
              ::= { tpMldMulticastGroupEntry 3 }
                 
          tpMldGrouptype OBJECT-TYPE
            	 SYNTAX  INTEGER{
	      		static(0), 						
	      		dynamic(1)						
	      		}
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Displays the type of multicast group."
              ::= { tpMldMulticastGroupEntry 4 }
		--**************
		--STATIC GROUP
		--**************
		tpMldMulticastStaticGroups              OBJECT IDENTIFIER ::= { tpMldStaticMultigroup 1 }      	      

          tpMldMulticastStaticGroupTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF TPMLDMULTICASTSTATICGROUPENTRY
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "A list of  multicast groups Table."
              ::= { tpMldMulticastStaticGroups 1 }

          tpMldMulticastStaticGroupEntry OBJECT-TYPE
              SYNTAX  TPMLDMULTICASTSTATICGROUPENTRY
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "An entry contains of multicast packet statistics over each port."
              INDEX   { tpMldStaticMulticastIP , tpMldStaticVlanID }
              ::= { tpMldMulticastStaticGroupTable 1 }
      
          TPMLDMULTICASTSTATICGROUPENTRY ::=
              SEQUENCE {
                  tpMldStaticMulticastIP
                      OCTET STRING,
                 tpMldStaticVlanID
              		INTEGER,
                  tpMldStaticForwardPorts
                      OCTET STRING,
                  tpMldStaticGroupStatus
                      TPRowStatus
              }
                 
            tpMldStaticMulticastIP OBJECT-TYPE
              SYNTAX  OCTET STRING
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "The multicast IP address."
              ::= { tpMldMulticastStaticGroupEntry 1 }
              
             tpMldStaticVlanID OBJECT-TYPE
            	 SYNTAX  INTEGER
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "The VLAN ID."
              ::= { tpMldMulticastStaticGroupEntry 2 }
           
            tpMldStaticForwardPorts OBJECT-TYPE
            	 SYNTAX  OCTET STRING(SIZE (0..50))
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "The forward ports of multicast group."
              ::= { tpMldMulticastStaticGroupEntry 3 }
                 
          tpMldStaticGroupStatus  OBJECT-TYPE
	     SYNTAX  TPRowStatus  
	      MAX-ACCESS  read-create
	      STATUS  current
	      DESCRIPTION
	             "  The following values are states:
                     these values may be used as follow:
                     
                     active(1),if the entry is being used.
                     notInService(2),destory the entry.
                     notReady(3),destory the entry.
                     createAndGo(4),not being used
                     createAndWait(5),creat a new entry
                     destroy(6),destory the entry."
              ::= { tpMldMulticastStaticGroupEntry 4 }
			  
			  
			  
		END