   TPLINK-DHCPFILTER-MIB DEFINITIONS ::= BEGIN

         IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE, IpAddress
          	  	        FROM SNMPv2-SMI
          	ifIndex
						FROM RFC1213-MIB
			TPRowStatus
						FROM TPLINK-TC-MIB				
            tplinkMgmt
						FROM TPLINK-MIB; 
				
			tplinkDhcpFilterMIB MODULE-IDENTITY
				LAST-UPDATED    "201212171014Z"
				ORGANIZATION    "TPLINK"
				CONTACT-INFO    "www.tplink.com"
				DESCRIPTION	    "Private MIB for DHCP Filter configuration."
				REVISION        "201212171014Z"
				DESCRIPTION
				"Initial version of this MIB module."
			::= { tplinkMgmt 48 }
		
			tplinkDhcpFilterMIBObjects		OBJECT IDENTIFIER	::= { tplinkDhcpFilterMIB 1 }
			tplinkDhcpFilterNotifications		OBJECT IDENTIFIER	::= { tplinkDhcpFilterMIB 2 }
                
  			dhcpFilterGlobalConfig		OBJECT IDENTIFIER	::= { tplinkDhcpFilterMIBObjects 1 }
            dhcpFilterPortConfig     		OBJECT IDENTIFIER	::= { tplinkDhcpFilterMIBObjects 2}
			dhcpFilterServerPermitEntryCofig 	OBJECT IDENTIFIER	::= { tplinkDhcpFilterMIBObjects 3}
				
				dhcpFilterEnable OBJECT-TYPE
	          		SYNTAX  INTEGER{
	      				disable(0), 						
	      				enable(1)						
	      			}
	            MAX-ACCESS  read-write
	            STATUS  current
	            DESCRIPTION
	                    "0. disable 
	                     1. enable
	                     Enable or disable the DHCP Filter function globally."
	            ::= { dhcpFilterGlobalConfig 1 }
       
       -- the DHCP Filter port config
         
       			dhcpFilterPortConfigTable OBJECT-TYPE
          			SYNTAX  SEQUENCE OF DhcpFilterPortConfigEntry
          			MAX-ACCESS  not-accessible
          			STATUS  current
          			DESCRIPTION
                  		"A list of DHCP Filter port config entries.
                   		Here you can configure the port parameters for the DHCP Filter."
          		::= { dhcpFilterPortConfig 1 }

      			dhcpFilterPortConfigEntry OBJECT-TYPE
          			SYNTAX  DhcpFilterPortConfigEntry
          			MAX-ACCESS  not-accessible
          			STATUS  current
          			DESCRIPTION
                  		"An entry contains of the information of DHCP Filter port config."
          			INDEX   {ifIndex}
          		::= { dhcpFilterPortConfigTable 1 }
  
      			DhcpFilterPortConfigEntry ::=
          			SEQUENCE {
          					dhcpFilterPort
          							OCTET STRING (SIZE (0..255)),
							dhcpFilterPortConfigState
									INTEGER, 
							dhcpFilterPortConfigMacVerify
									INTEGER,
							dhcpFilterPortConfigRateLimit
									INTEGER, 
							dhcpFilterPortConfigDeclineRateLimit
									INTEGER,
							dhcpFilterPortConfigPortLag
									OCTET STRING  
          			}
          			
               	dhcpFilterPort OBJECT-TYPE
					SYNTAX  	OCTET STRING (SIZE (0..255))
					MAX-ACCESS  read-only
					STATUS  	current
					DESCRIPTION
						"Display port number"
				::= { dhcpFilterPortConfigEntry 1 }
				               
      			dhcpFilterPortConfigState OBJECT-TYPE
          			SYNTAX  INTEGER{
      					disable(0), 						
      					enable(1)			
      				}
          			MAX-ACCESS  read-write
          			STATUS  current
          			DESCRIPTION
                  		"0. disable
                   		 1. enable
                   		 Select Enable/Disable DHCP Filter function of the specified port."
          		::= { dhcpFilterPortConfigEntry 2 }
       
      			dhcpFilterPortConfigMacVerify OBJECT-TYPE
          			SYNTAX  INTEGER{
      					disable(0), 						
      					enable(1)			
      				}
          			MAX-ACCESS  read-write
          			STATUS  current
          			DESCRIPTION
                  		"0. disable
                   		 1. enable
                   		 Select Enable/Disable the MAC Verify feature. 
                   		 There are two fields of the DHCP packet containing the MAC address of the Host. 
                   		 The MAC Verify feature is to compare the two fields and discard the packet 
                   		 if the two fields are different. "
          		::= { dhcpFilterPortConfigEntry 3 }
     
      			dhcpFilterPortConfigRateLimit OBJECT-TYPE
           			SYNTAX  INTEGER{
			      		disable(0), 						
			      		value5pps(5),
			      		value10pps(10),
			      		value15pps(15),
			      		value20pps(20),						
			      		value25pps(25),
			      		value30pps(30)
			      	}
	            	MAX-ACCESS  read-write
	            	STATUS  current
	            	DESCRIPTION
	                    "0. disable 
	                     1. 5pps
	                     2. 10pps
	                     3. 15pps
	                     4. 20pps
	                     5. 25pps
	                     6. 30pps
	                     Select Enable/Disable the Flow Control feature for the DHCP packets. 
	                     The excessive DHCP packets will be discarded. "
          		::= { dhcpFilterPortConfigEntry 4 }      
          
      			dhcpFilterPortConfigDeclineRateLimit OBJECT-TYPE
          			SYNTAX  INTEGER{
			      		disable(0), 						
			      		value5pps(5),
			      		value10pps(10),
			      		value15pps(15),
			      		value20pps(20),						
			      		value25pps(25),
			      		value30pps(30)
      				}
          			MAX-ACCESS  read-write
          			STATUS  current
          			DESCRIPTION
	                    "0. disable 
	                     1. 5pps
	                     2. 10pps
	                     3. 15pps
	                     4. 20pps
	                     5. 25pps
	                     6. 30pps
	                     Select Enable/Disable the Flow Control feature for the DHCP decline packets. 
	                     The excessive DHCP decline packets will be discarded. "          		
          		::= { dhcpFilterPortConfigEntry 5 }
          		  
      			dhcpFilterPortConfigPortLag OBJECT-TYPE
            		SYNTAX  OCTET STRING (SIZE (1..255))  
            		MAX-ACCESS  read-only
            		STATUS  current
            		DESCRIPTION
                    	"The LAG to which the port belongs to."
            	::= { dhcpFilterPortConfigEntry 6 }

            dhcpFilterServerPermitEntryTable OBJECT-TYPE
            SYNTAX  SEQUENCE OF DHCPFILTERSERVERPERMITENTRY
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                "A list of DHCP Filter DHCP Server permit entries.
                 Here you can add or delete entries."
            ::= { dhcpFilterServerPermitEntryCofig 1 }
        
            dhcpFilterServerPermitEntry OBJECT-TYPE
            SYNTAX  DHCPFILTERSERVERPERMITENTRY
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                "An entry contains server ip address, client mac address and interface ."
            INDEX   {serverIp,
					clientMac,
					interface}
            ::= { dhcpFilterServerPermitEntryTable 1 }
        
            DHCPFILTERSERVERPERMITENTRY ::=
            SEQUENCE {
                serverIp
                    IpAddress,
                clientMac
                    OCTET STRING (SIZE (1..17)),
                interface
                    OCTET STRING (SIZE (1..20)),
                rowStatus
                    TPRowStatus
            }
			
            serverIp OBJECT-TYPE
                SYNTAX IpAddress
                MAX-ACCESS read-create
                STATUS current
                DESCRIPTION
                    "IP address of the permit entry."
                ::= {dhcpFilterServerPermitEntry 1}
         
            clientMac OBJECT-TYPE
                SYNTAX OCTET STRING (SIZE (1..17))
                MAX-ACCESS read-create
                STATUS current
                DESCRIPTION
                    "MAC address of the permit entry."
                ::= {dhcpFilterServerPermitEntry 2}
        
            interface OBJECT-TYPE
                SYNTAX OCTET STRING (SIZE (1..20))
                MAX-ACCESS read-create
                STATUS current
                DESCRIPTION
                    "Interface of the permit entry."
                ::= {dhcpFilterServerPermitEntry 3}
     
                        
            rowStatus OBJECT-TYPE
                SYNTAX  TPRowStatus
                MAX-ACCESS  read-create
                STATUS  current
                DESCRIPTION
                    "the following value 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)"
                ::= {dhcpFilterServerPermitEntry 4}	

       -- the DHCP Filter trap
		   dhcpFilterRxIllegalServerPacket NOTIFICATION-TYPE 
				STATUS          current
				DESCRIPTION 
					"A notification is sent when DHCP Filter received illegal DHCP Server packets."
				::= { tplinkDhcpFilterNotifications 1}				
          
END

