   TPLINK-DHCPSNOOPING-MIB DEFINITIONS ::= BEGIN

         IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE
          	  	        FROM SNMPv2-SMI
          	ifIndex
						FROM RFC1213-MIB
            tplinkMgmt
						FROM TPLINK-MIB; 
	    
			tplinkDhcpSnoopingMIB MODULE-IDENTITY
				LAST-UPDATED    "201212171014Z"
				ORGANIZATION    "TPLINK"
				CONTACT-INFO    "www.tplink.com.cn"
				DESCRIPTION	    "Private MIB for DHCP Snooping configuration."
				REVISION        "201212171014Z"
				DESCRIPTION
				"Initial version of this MIB module."
			::= { tplinkMgmt 27 }
		
			tplinkDhcpSnoopingMIBObjects		OBJECT IDENTIFIER	::= { tplinkDhcpSnoopingMIB 1 }
			tplinkDhcpSnoopingNotifications		OBJECT IDENTIFIER	::= { tplinkDhcpSnoopingMIB 2 }
                
  			dhcpSnoopingGlobalConfig		OBJECT IDENTIFIER	::= { tplinkDhcpSnoopingMIBObjects 1 }
			dhcpSnoopingOption82Config		OBJECT IDENTIFIER	::= { tplinkDhcpSnoopingMIBObjects 2 }
            dhcpSnoopingPortConfig     		OBJECT IDENTIFIER	::= { tplinkDhcpSnoopingMIBObjects 3 }
				
				dhcpSnoopingEnable OBJECT-TYPE
	          		SYNTAX  INTEGER{
	      				disable(0), 						
	      				enable(1)						
	      			}
	            MAX-ACCESS  read-write
	            STATUS  current
	            DESCRIPTION
	                    "0. disable 
	                     1. enable
	                     Enable or disable the DHCP Snooping function globally."
	            ::= { dhcpSnoopingGlobalConfig 1 }
      				
				dhcpSnoopingVlanConfigTable OBJECT-TYPE
					SYNTAX  	SEQUENCE OF DhcpSnoopingVlanConfigTable
					MAX-ACCESS  not-accessible
					STATUS  	current
					DESCRIPTION
							"Here you can view and modify the DHCP Snooping VLAN config table."
				::= { dhcpSnoopingGlobalConfig 2 }

				dhcpSnoopingVlanConfigEntry OBJECT-TYPE
					SYNTAX  	DhcpSnoopingVlanConfigTable
					MAX-ACCESS  not-accessible
					STATUS  	current
					DESCRIPTION
							"An entry contains of the DHCP Snooping function enable status information of a VLAN."
					INDEX   { dhcpSnoopingVlanId }
				::= { dhcpSnoopingVlanConfigTable 1 }

				DhcpSnoopingVlanConfigTable ::=
					SEQUENCE {
						dhcpSnoopingVlanId
								INTEGER(1..4094),
						dhcpSnoopingVlanStatus
								INTEGER
					}

				dhcpSnoopingVlanId OBJECT-TYPE
					SYNTAX 	 	INTEGER(1..4094)
					MAX-ACCESS  read-create
					STATUS  	current
					DESCRIPTION
							"Enter the ID number of VLAN,1-4094."
				::= { dhcpSnoopingVlanConfigEntry 1 }
				
        		dhcpSnoopingVlanStatus OBJECT-TYPE
	          		SYNTAX  INTEGER{
	      				disable(0), 						
	      				enable(1)						
	      			}
	            	MAX-ACCESS  read-create
	            	STATUS  current
	            	DESCRIPTION
	                    "0. disable 
	                     1. enable
	                     Enable or disable DHCP Snooping function in specified VLAN. "
	            ::= { dhcpSnoopingVlanConfigEntry 2 }

	           -- the dhcp snoop option 82 config
	         
		       dhcpSnoopingOption82ConfigTable OBJECT-TYPE
		          SYNTAX  SEQUENCE OF DHCPSNOOPOPTION82CONFIGENTRY
		          MAX-ACCESS  not-accessible
		          STATUS  current
		          DESCRIPTION
		                  "A list of DHCP Snooping option 82 config entries.
		                   Here you can configure the port parameters for the DHCP Snooping option 82 feature."
		          ::= { dhcpSnoopingOption82Config 1 }
	
		      dhcpSnoopingOption82ConfigEntry OBJECT-TYPE
		          SYNTAX  DHCPSNOOPOPTION82CONFIGENTRY
		          MAX-ACCESS  not-accessible
		          STATUS  current
		          DESCRIPTION
		                  "An entry contains of the information of dhcp snooping option 82 config."
		          INDEX   {ifIndex}
		          ::= { dhcpSnoopingOption82ConfigTable 1 }
	  
		      DHCPSNOOPOPTION82CONFIGENTRY ::=
		          SEQUENCE {
									dhcpSnoopingOption82ConfigPort
											OCTET STRING (SIZE (0..255)), 
									dhcpSnoopingOption82ConfigSupportStatus
											INTEGER, 
									dhcpSnoopingOption82ConfigOperationStrategy
											INTEGER,
									dhcpSnoopingOption82ConfigCircuitCustomization
											INTEGER,
									dhcpSnoopingOption82ConfigCircuitID
											OCTET STRING (SIZE (1..64)),
									dhcpSnoopingOption82ConfigRemoteCustomization
											INTEGER,
									dhcpSnoopingOption82ConfigRemoteID
											OCTET STRING (SIZE (1..64)),
									dhcpSnoopingOption82ConfigLag
											OCTET STRING (SIZE (1..255))  
		          }
	          
		      dhcpSnoopingOption82ConfigPort OBJECT-TYPE
		          SYNTAX  OCTET STRING (SIZE (0..255))  
		          MAX-ACCESS  read-only
		          STATUS  current
		          DESCRIPTION
		                  "Port number"
		          ::= { dhcpSnoopingOption82ConfigEntry 1 }
	    
		     dhcpSnoopingOption82ConfigSupportStatus OBJECT-TYPE
		          SYNTAX  INTEGER{
		      		disable(0), 						
		      		enable(1)			
		      		}
		          MAX-ACCESS  read-write
		          STATUS  current
		          DESCRIPTION
		                  "0. disable
		                   1. enable
		                   Select Enable/Disable the port to support the Option 82 feature. "       
		          ::= { dhcpSnoopingOption82ConfigEntry 2 }
	       
		      dhcpSnoopingOption82ConfigOperationStrategy OBJECT-TYPE
			        SYNTAX  INTEGER{
		      		keep(0), 						
		      		replace(1),
		      		drop(2)						
		      		}
		            MAX-ACCESS  read-write
		            STATUS  current
		            DESCRIPTION
		                    "Select the operation for the Option 82 filed of the DHCP request packets from the Host.
		                     0. keep: Indicates to keep the Option 82 field of the packets. 
		                     1. replace: Indicates to replace the Option 82 field of the packets with the switch defined one. 
		                     2. drop: Indicates to discard the packets including the Option 82 field."
		            ::= { dhcpSnoopingOption82ConfigEntry 3 }
	                 
		      dhcpSnoopingOption82ConfigCircuitCustomization OBJECT-TYPE   
		          SYNTAX  INTEGER{
		      		disable(0), 						
		      		enable(1)						
		      		}
		            MAX-ACCESS  read-write
		            STATUS  current
		            DESCRIPTION
		                    "0. disable 
		                     1. enable
		                     Enable/Disable the switch to define the Option 82 circuit id."
		            ::= { dhcpSnoopingOption82ConfigEntry 4 }
	                      
		      dhcpSnoopingOption82ConfigCircuitID OBJECT-TYPE            
		          SYNTAX  OCTET STRING (SIZE (1..64)) 
		            MAX-ACCESS  read-write
		            STATUS  current
		            DESCRIPTION
		                    "The sub-option Circuit ID for the customized Option 82.(1-64 characters)"
		            ::= { dhcpSnoopingOption82ConfigEntry 5 }
	            
	      dhcpSnoopingOption82ConfigRemoteCustomization OBJECT-TYPE   
	          SYNTAX  INTEGER{
	      		disable(0), 						
	      		enable(1)						
	      		}
	            MAX-ACCESS  read-write
	            STATUS  current
	            DESCRIPTION
	                    "0. disable 
	                     1. enable
	                     Enable/Disable the switch to define the Option 82 remote id. "
	            ::= { dhcpSnoopingOption82ConfigEntry 6 }
	                      
		      dhcpSnoopingOption82ConfigRemoteID OBJECT-TYPE            
		          SYNTAX  OCTET STRING (SIZE (1..64)) 
		            MAX-ACCESS  read-write
		            STATUS  current
		            DESCRIPTION
		                    "The sub-option Remote ID for the customized Option 82.(1-64 characters)"
		            ::= { dhcpSnoopingOption82ConfigEntry 7 }
	 	                      
		      dhcpSnoopingOption82ConfigLag OBJECT-TYPE
		            SYNTAX  OCTET STRING (SIZE (1..255))  
		            MAX-ACCESS  read-only
		            STATUS  current
		            DESCRIPTION
		                    "The LAG to which the port belongs to."
		            ::= { dhcpSnoopingOption82ConfigEntry 8 }      
       
       -- the dhcp snoop port config
         
       			dhcpSnoopingPortConfigTable OBJECT-TYPE
          			SYNTAX  SEQUENCE OF DhcpSnoopingPortConfigEntry
          			MAX-ACCESS  not-accessible
          			STATUS  current
          			DESCRIPTION
                  		"A list of DHCP Snooping port config entries.
                   		Here you can configure the port parameters for the DHCP Snooping."
          		::= { dhcpSnoopingPortConfig 1 }

      			dhcpSnoopingPortConfigEntry OBJECT-TYPE
          			SYNTAX  DhcpSnoopingPortConfigEntry
          			MAX-ACCESS  not-accessible
          			STATUS  current
          			DESCRIPTION
                  		"An entry contains of the information of DHCP Snooping port config."
          			INDEX   {ifIndex}
          		::= { dhcpSnoopingPortConfigTable 1 }
  
      			DhcpSnoopingPortConfigEntry ::=
          			SEQUENCE {
          					dhcpSnoopingPort
          							OCTET STRING (SIZE (0..255)),
							dhcpSnoopingPortConfigTrustedPort
									INTEGER, 
							dhcpSnoopingPortConfigMacVerify
									INTEGER,
							dhcpSnoopingPortConfigRateLimit
									INTEGER, 
							dhcpSnoopingPortConfigDeclineRateLimit
									INTEGER,
							dhcpSnoopingPortConfigPortLag
									OCTET STRING  
          			}
          			
               	dhcpSnoopingPort OBJECT-TYPE
					SYNTAX  	OCTET STRING (SIZE (0..255))
					MAX-ACCESS  read-only
					STATUS  	current
					DESCRIPTION
						"Display port number"
				::= { dhcpSnoopingPortConfigEntry 1 }
				               
      			dhcpSnoopingPortConfigTrustedPort OBJECT-TYPE
          			SYNTAX  INTEGER{
      					disable(0), 						
      					enable(1)			
      				}
          			MAX-ACCESS  read-write
          			STATUS  current
          			DESCRIPTION
                  		"0. disable
                   		 1. enable
                   		 Select Enable/Disable the port to be a Trusted Port. 
                   		 Only the Trusted Port can receive the DHCP packets from DHCP servers."
          		::= { dhcpSnoopingPortConfigEntry 2 }
       
      			dhcpSnoopingPortConfigMacVerify 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. "
          		::= { dhcpSnoopingPortConfigEntry 3 }
     
      			dhcpSnoopingPortConfigRateLimit 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. "
          		::= { dhcpSnoopingPortConfigEntry 4 }      
          
      			dhcpSnoopingPortConfigDeclineRateLimit 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. "          		
          		::= { dhcpSnoopingPortConfigEntry 5 }
          		  
      			dhcpSnoopingPortConfigPortLag OBJECT-TYPE
            		SYNTAX  OCTET STRING (SIZE (1..255))  
            		MAX-ACCESS  read-only
            		STATUS  current
            		DESCRIPTION
                    	"The LAG to which the port belongs to."
            	::= { dhcpSnoopingPortConfigEntry 6 }
          
END

