TPLINK-8021X-MIB	DEFINITIONS ::= BEGIN
	IMPORTS
		MODULE-IDENTITY, OBJECT-TYPE, IpAddress 
			FROM SNMPv2-SMI
		tplinkMgmt
			FROM TPLINK-MIB
		ifIndex						
			FROM RFC1213-MIB
		DisplayString 
			FROM SNMPv2-TC;
				
	tplink8021xMIB MODULE-IDENTITY
		LAST-UPDATED    "201212171050Z"
		ORGANIZATION    "TPLINK"
		CONTACT-INFO    "www.tplink.com"
		DESCRIPTION	    "Private MIB for 802.1x configuration."
		REVISION        "201212171050Z"
		DESCRIPTION
				"Initial version of this MIB module."
		::= { tplinkMgmt 31 }
          	  	          
	tplink8021xMIBObjects		OBJECT IDENTIFIER	::= { tplink8021xMIB 1 }
	tplink8021xNotifications	OBJECT IDENTIFIER	::= { tplink8021xMIB 2 }
						  
	tp8021xGlobalConfig  		OBJECT IDENTIFIER 	::= {tplink8021xMIBObjects 1}
  			
		tp8021xGlobalEnable OBJECT-TYPE
	          SYNTAX  INTEGER{
	      		disable(0), 						
	      		enable(1)						
	      		}
	            MAX-ACCESS  read-write
	            STATUS  current
	            DESCRIPTION
	                    "0. disable 
	                     1. enable
	                     Enable/Disable the 802.1X function."
	            ::= { tp8021xGlobalConfig 1 }
      
      	tp8021xAuthProtocol OBJECT-TYPE
	          SYNTAX  INTEGER{
	      		pap(0), 						
	      		eap(1)						
	      		}
	            MAX-ACCESS  read-write
	            STATUS  current
	            DESCRIPTION
	                    "Select the Authentication Protocol
	                     0. pap: IEEE 802.1X authentication system uses extensible authentication protocol (EAP) 
	                             to exchange information between the switch and the client. 
	                             The transmission of EAP packets is terminated at the switch and the EAP packets 
	                             are converted to the other protocol (such as RADIUS) packets for transmission.  
	                     1. eap: IEEE 802.1X authentication system uses extensible authentication protocol (EAP) 
	                                 to exchange information between the switch and the client. 
	                                 The EAP protocol packets with authentication data can be encapsulated in the 
	                                 advanced protocol (such as RADIUS) packets to be transmitted to the authentication 
	                                 server."
	            ::= { tp8021xGlobalConfig 2 }
      
		tp8021xHandshake OBJECT-TYPE
	          SYNTAX  INTEGER{
	      		disable(0), 						
	      		enable(1)						
	      		}
	            MAX-ACCESS  read-write
	            STATUS  current
	            DESCRIPTION
	                    "0. disable 
	                     1. enable
	                     Enable/Disable the handshake feature."
	            ::= { tp8021xGlobalConfig 3 }

--		tp8021xGuestVlanEnable OBJECT-TYPE
--	          SYNTAX  INTEGER{
--	      		disable(0), 						
--	      		enable(1)						
--	      		}
--	            MAX-ACCESS  read-write
--	            STATUS  current
--	            DESCRIPTION
--	                    "0. disable 
--	                     1. enable
--	                     Enable/Disable the Guest VLAN feature."
--	            ::= { tp8021xGlobalConfig 4 }
           
--        tp8021xGuestVlanID OBJECT-TYPE
--			  SYNTAX  INTEGER
--				MAX-ACCESS  read-write
--				STATUS  current
--				DESCRIPTION
--						"Enter your desired VLAN ID to enable the Guest VLAN feature. 
--						 The supplicants in the Guest VLAN can access the specified network source."
--				::= { tp8021xGlobalConfig 5 }  
            
--        tp8021xQuietEnable OBJECT-TYPE
--	          SYNTAX  INTEGER{
--	      		disable(0), 						
--	      		enable(1)						
--	      		}
--	            MAX-ACCESS  read-write
--	            STATUS  current
--	            DESCRIPTION
--	                    "0. disable 
--	                     1. enable
--	                     Enable/Disable the Quiet timer."
--	            ::= { tp8021xGlobalConfig 6 }
	            
--		tp8021xQuietPeriod OBJECT-TYPE
--			  SYNTAX  INTEGER
--				MAX-ACCESS  read-write
--				STATUS  current
--				DESCRIPTION
--						"Specify a value for Quiet Period. Once the supplicant failed to the 802.1X Authentication,
--						 then the switch will not respond to the authentication request from the same supplicant 
--						 during the Quiet Period. (1-999 second)"
--				::= { tp8021xGlobalConfig 7 } 
        
-- 		tp8021xRetryTimes OBJECT-TYPE
--			  SYNTAX  INTEGER
--				MAX-ACCESS  read-write
--				STATUS  current
--				DESCRIPTION
--						"Specify the maximum transfer times of the repeated authentication request.(1-9)"
--				::= { tp8021xGlobalConfig 8 }  
		   
--		tp8021xSupplicantTimeOut OBJECT-TYPE
--			  SYNTAX  INTEGER
--				MAX-ACCESS  read-write
--				STATUS  current
--				DESCRIPTION
--						"Specify the maximum time for the switch to wait for the response from supplicant 
--						 before resending a request to the supplicant. (1-9 second)"
--				::= { tp8021xGlobalConfig 9 } 
            
--		tp8021xServerTimeOut OBJECT-TYPE
--			  SYNTAX  INTEGER
--				MAX-ACCESS  read-write
--				STATUS  current
--				DESCRIPTION
--						"Specify the maximum time for the switch to wait for the response from authentication 
--						 server before resending a request to the authentication server. (1-9 second)"
--				::= { tp8021xGlobalConfig 10 } 
      
--		tp8021xAuthPrimaryIP OBJECT-TYPE
--			  SYNTAX  IpAddress
--				MAX-ACCESS  read-write
--				STATUS  current
--				DESCRIPTION
--						"Enter the IP address of the authentication server."
--				::= { tp8021xGlobalConfig 11 } 
          
--		tp8021xAuthSecondaryIP OBJECT-TYPE
--			  SYNTAX  IpAddress
--				MAX-ACCESS  read-write
--				STATUS  current
--				DESCRIPTION
--						"Enter the IP address of the alternate authentication server."
--				::= { tp8021xGlobalConfig 12 } 
            
--		tp8021xServerAuthPort OBJECT-TYPE
--			  SYNTAX  INTEGER
--				MAX-ACCESS  read-write
--				STATUS  current
--				DESCRIPTION
--						"Set the UDP port of authentication server(s). The default port is 1812(1-65535)"
--				::= { tp8021xGlobalConfig 13 } 
       
--		tp8021xServerAuthKey OBJECT-TYPE
--              SYNTAX  OCTET STRING (SIZE (0..255))  
--				MAX-ACCESS  read-write
--				STATUS  current
--				DESCRIPTION
--						"Set the shared password for the switch and the authentication 
--						 servers to exchange messages.(0-31 characters)."
--				::= { tp8021xGlobalConfig 14 }
              
		tp8021xAcctEnable OBJECT-TYPE
			  SYNTAX  INTEGER{
				disable(0), 						
				enable(1)						
				}
				MAX-ACCESS  read-write
				STATUS  current
				DESCRIPTION
							"0. disable 
							 1. enable
							 Enable/Disable the accounting feature. "
				::= { tp8021xGlobalConfig 15 } 
              
--  		tp8021xAcctPrimaryIP OBJECT-TYPE
--			  SYNTAX  IpAddress
--				MAX-ACCESS  read-write
--				STATUS  current
--				DESCRIPTION
--						"Enter the IP address of the accounting server."
--				::= { tp8021xGlobalConfig 16 } 
          
--		tp8021xAcctSecondaryIP OBJECT-TYPE
--			  SYNTAX  IpAddress
--				MAX-ACCESS  read-write
--				STATUS  current
--				DESCRIPTION
--						"Enter the IP address of the alternate accounting server."
--				::= { tp8021xGlobalConfig 17 } 
            
--		tp8021xAcctPort OBJECT-TYPE
--			  SYNTAX  INTEGER
--				MAX-ACCESS  read-write
--				STATUS  current
--				DESCRIPTION
--						"Set the UDP port of accounting server(s). The default port is 1813(1-65535)"
--				::= { tp8021xGlobalConfig 18 } 
       
--		tp8021xAcctKey OBJECT-TYPE
--              SYNTAX  OCTET STRING (SIZE (0..255))  
--              MAX-ACCESS  read-write
--              STATUS  current
--              DESCRIPTION
--                      "Set the shared password for the switch and the accounting servers
--                       to exchange messages. (0-31 characters)."
--              ::= { tp8021xGlobalConfig 19 }
       
--       	tp8021xEapolFwdEnable OBJECT-TYPE
--		    SYNTAX  INTEGER{
--			    disable(0), 						
--			    enable(1)						
--			    }
--			    MAX-ACCESS  read-write
--			    STATUS  current
--			    DESCRIPTION
--				    "0. disable 
--				     1. enable
--				     Enable/Disable the EAPOL forward feature. "
--		        ::= { tp8021xGlobalConfig 20 } 

  		tp8021xVlanAssignEnable OBJECT-TYPE
			  SYNTAX  INTEGER{
				disable(0),
				enable(1)
				}
				MAX-ACCESS  read-write
				STATUS  current
				DESCRIPTION
							"0. disable
							 1. enable
							 Enable/Disable the VLAN assignment feature. "
				::= { tp8021xGlobalConfig 21 }

       -- the 8021x port config
	tp8021xPortConfig 			OBJECT IDENTIFIER ::= {tplink8021xMIBObjects 2}
	
		tp8021xPortConfigTable OBJECT-TYPE
          SYNTAX  SEQUENCE OF TP8021XPORTCONFIGENTRY
          MAX-ACCESS  not-accessible
          STATUS  current
          DESCRIPTION
                  "A list of 8021x port config entries."
          ::= { tp8021xPortConfig 1 }

		tp8021xPortConfigEntry OBJECT-TYPE
          SYNTAX  TP8021XPORTCONFIGENTRY
          MAX-ACCESS  not-accessible
          STATUS  current
          DESCRIPTION
                  "An entry contains of the information of 8021x port config.
                   Here you can configure the ports for the 802.1X authentication."
          INDEX   { ifIndex }
          ::= { tp8021xPortConfigTable 1 }
  
		TP8021XPORTCONFIGENTRY ::=
          SEQUENCE {
					tp8021xPortConfigPortIndex
							DisplayString,
					tp8021xPortConfigEnable
							INTEGER, 
					tp8021xPortConfigMABEnable
							INTEGER,
--					tp8021xPortConfigEAPOLFwdEnable
--							INTEGER,
--					tp8021xPortConfigGuestVlanEnable
--							INTEGER,
					tp8021xPortConfigControlMode
							INTEGER, 
					tp8021xPortConfigControlType
							INTEGER, 
					tp8021xPortConfigGuestVlanID
							INTEGER,
					tp8021xPortConfigMaxRequest
							INTEGER,
					tp8021xPortConfigQuietPeriod
							INTEGER,
					tp8021xPortConfigSuppTimeout
							INTEGER,
					tp8021xPortConfigAuthState
							INTEGER,
					tp8021xPortConfigPortLag
							OCTET STRING
          }
		  
		tp8021xPortConfigPortIndex OBJECT-TYPE
  			SYNTAX			DisplayString(SIZE(0..16))
  			MAX-ACCESS	read-only
  			STATUS			current
  			DESCRIPTION	
  			"This object indicates the port number."
  			::= {tp8021xPortConfigEntry 1}
  			
		tp8021xPortConfigEnable OBJECT-TYPE
			  SYNTAX  INTEGER{
				disable(0), 						
				enable(1)			
				}
				MAX-ACCESS  read-write
				STATUS  current
				DESCRIPTION
					  "0. disable
					   1. enable
					   Select Enable/Disable the 802.1X authentication feature for the port."
				::= { tp8021xPortConfigEntry 2 }

		tp8021xPortConfigMABEnable OBJECT-TYPE
			  SYNTAX  INTEGER{
				disable(0), 						
				enable(1)			
				}
				MAX-ACCESS  read-write
				STATUS  current
				DESCRIPTION
					  "0. disable
					   1. enable
					   Select Enable/Disable the MAB feature for the port."
          ::= { tp8021xPortConfigEntry 3 }

--		tp8021xPortConfigEAPOLFwdEnable OBJECT-TYPE
--			  SYNTAX  INTEGER{
--				disable(0), 						
--				enable(1)			
--				}
--				MAX-ACCESS  read-write
--				STATUS  current
--				DESCRIPTION
--					  "0. disable
--					   1. enable
--					   Select Enable/Disable the EAPOL Forward feature for the port."
--         ::= { tp8021xPortConfigEntry 4 }

--		tp8021xPortConfigGuestVlanEnable OBJECT-TYPE
--			  SYNTAX  INTEGER{
--				disable(0), 						
--				enable(1)			
--				}
--				MAX-ACCESS  read-write
--				STATUS  current
--				DESCRIPTION
--					  "0. disable
--					   1. enable
--					   Select Enable/Disable the Guest VLAN feature for the port."
--         ::= { tp8021xPortConfigEntry 5 }
     
		tp8021xPortConfigControlMode OBJECT-TYPE
			  SYNTAX  INTEGER{
				forceAuth(0), 						
				forceUnAuth(1),
				autoAuth(2)				
				}
				MAX-ACCESS  read-write
				STATUS  current
				DESCRIPTION
					  "Specify the Control Mode for the port.
					   0. force auth: In this mode, the port can work normally without passing the 802.1X Authentication. 
					   1. force unauth: In this mode, the port is forbidden working for its fixed unauthorized status. 
					   2. auto auth: In this mode, the port will normally work only after passing the 802.1X Authentication."
				::= { tp8021xPortConfigEntry 6 }      
          
      tp8021xPortConfigControlType OBJECT-TYPE
			  SYNTAX  INTEGER{
				macBased(0), 						
				portBased(1)			
				}
				MAX-ACCESS  read-write
				STATUS  current
				DESCRIPTION
					  "Specify the Control Type for the port.
					   0. base of mac:  Any client connected to the port should pass the 802.1X Authentication for access. 
					   1. base of port: All the clients connected to the port can access the network on the condition 
										 that any one of the clients has passed the 802.1X Authentication. "
				::= { tp8021xPortConfigEntry 7 }  
          
	  tp8021xPortConfigGuestVlanID OBJECT-TYPE
			  SYNTAX  INTEGER
				MAX-ACCESS  read-write
				STATUS  current
				DESCRIPTION
						"Enter your desired VLAN ID to enable the Guest VLAN feature. 
						 The supplicants in the Guest VLAN can access the specified network source."
				::= { tp8021xPortConfigEntry 8 }

 	  tp8021xPortConfigMaxRequest OBJECT-TYPE
			  SYNTAX  INTEGER
				MAX-ACCESS  read-write
				STATUS  current
				DESCRIPTION
						"Specify the maximum transfer times of the repeated authentication request.(1-9)"
				::= { tp8021xPortConfigEntry 9 }

	  tp8021xPortConfigQuietPeriod OBJECT-TYPE
			  SYNTAX  INTEGER
				MAX-ACCESS  read-write
				STATUS  current
				DESCRIPTION
						"Specify a value for Quiet Period. Once the supplicant failed to the 802.1X Authentication,
						 then the switch will not respond to the authentication request from the same supplicant 
						 during the Quiet Period. (0-999 second)"
				::= { tp8021xPortConfigEntry 10 }

	  tp8021xPortConfigSuppTimeout OBJECT-TYPE
			  SYNTAX  INTEGER
				MAX-ACCESS  read-write
				STATUS  current
				DESCRIPTION
						"Specify the maximum time for the switch to wait for the response from supplicant 
						 before resending a request to the supplicant. (1-9 second)"
				::= { tp8021xPortConfigEntry 11 }

      tp8021xPortConfigAuthState OBJECT-TYPE
			  SYNTAX  INTEGER{
				unAuthorized(0), 						
				authorized(1)			
				}
				MAX-ACCESS  read-only
				STATUS  current
				DESCRIPTION
					  "The authentication status of the port. 
					   0. unAuthorized
					   1. Authorized"
				::= { tp8021xPortConfigEntry 12 }
     
     tp8021xPortConfigPortLag OBJECT-TYPE
              SYNTAX  OCTET STRING(SIZE (0..255))  
				MAX-ACCESS  read-only
				STATUS  current
				DESCRIPTION
						"the lag the port belong to"
				::= { tp8021xPortConfigEntry 13 }

       -- the 8021x authenticator state
   tp8021xAuthenticatorState 			OBJECT IDENTIFIER ::= {tplink8021xMIBObjects 3}

   tp8021xAuthenticatorStateTable OBJECT-TYPE
	  SYNTAX  SEQUENCE OF TP8021XAUTHENTICATORSTATEENTRY
	  MAX-ACCESS  not-accessible
	  STATUS  current
	  DESCRIPTION
			  "Display authenticator state of dot1x."
	  ::= { tp8021xAuthenticatorState 1 }

  tp8021xAuthenticatorStateEntry OBJECT-TYPE
	  SYNTAX  TP8021XAUTHENTICATORSTATEENTRY
	  MAX-ACCESS  not-accessible
	  STATUS  current
	  DESCRIPTION
			  "An entry contains of the authenticator state for a single port."
	  INDEX   { ifIndex, tp8021xAuthenticatorStateMac }
	  ::= { tp8021xAuthenticatorStateTable 1 }

  TP8021XAUTHENTICATORSTATEENTRY ::=
	  SEQUENCE {
		  tp8021xAuthenticatorStatePort
			  DisplayString,
		  tp8021xAuthenticatorStateMac
			  DisplayString,
		  tp8021xAuthenticatorStatePAEState
			  DisplayString,
		  tp8021xAuthenticatorStateBEState
			  DisplayString,
		  tp8021xAuthenticatorStateStatus
		      DisplayString,
		  tp8021xAuthenticatorStateVid
		      INTEGER,
--		  tp8021xAuthenticatorStatePriority
--			  INTEGER,
		  tp8021xAuthenticatorStateOperation
			  INTEGER
	  }
	  
  tp8021xAuthenticatorStatePort OBJECT-TYPE
	  SYNTAX  DisplayString  
	  MAX-ACCESS  read-only
	  STATUS  current
	  DESCRIPTION
			  "This object indicates the port number."
	  ::= { tp8021xAuthenticatorStateEntry 1 }

  tp8021xAuthenticatorStateMac OBJECT-TYPE
	  SYNTAX  DisplayString
	  MAX-ACCESS  read-only
	  STATUS  current
	  DESCRIPTION
			  "This object indicates the MAC address of authenticated client."
	  ::= { tp8021xAuthenticatorStateEntry 2 }

  tp8021xAuthenticatorStatePAEState OBJECT-TYPE
	  SYNTAX  DisplayString
	  MAX-ACCESS  read-only
	  STATUS  current
	  DESCRIPTION
			  "The PAE state of client."
	  ::= { tp8021xAuthenticatorStateEntry 3 }

  tp8021xAuthenticatorStateBEState OBJECT-TYPE
	  SYNTAX  DisplayString
	  MAX-ACCESS  read-only
	  STATUS  current
	  DESCRIPTION
			  "The backend state of client."
	  ::= { tp8021xAuthenticatorStateEntry 4 }

  tp8021xAuthenticatorStateStatus OBJECT-TYPE
	  SYNTAX  DisplayString
	  MAX-ACCESS  read-only
	  STATUS  current
	  DESCRIPTION
			  "The authenticate status of client."
	  ::= { tp8021xAuthenticatorStateEntry 5 }

  tp8021xAuthenticatorStateVid OBJECT-TYPE
	  SYNTAX  INTEGER
	  MAX-ACCESS  read-only
	  STATUS  current
	  DESCRIPTION
			  "The VLAN id of authenticated client."
	  ::= { tp8021xAuthenticatorStateEntry 6 }

--  tp8021xAuthenticatorStatePriority OBJECT-TYPE
--	  SYNTAX  INTEGER
--	  MAX-ACCESS  read-only
--	  STATUS  current
--	  DESCRIPTION
--			  "The priority of authenticated client."
--	  ::= { tp8021xAuthenticatorStateEntry 7 }

  tp8021xAuthenticatorStateOperation OBJECT-TYPE
	  SYNTAX  INTEGER{
		NULL(0),
		Initialize(1),
		Reauthenticate(2)
		}
	  MAX-ACCESS  read-write
	  STATUS  current
	  DESCRIPTION
		"0. NULL
		 1. Initialize
		 2. Reauthenticate
		 Select operation for the authenticated client."
	  ::= { tp8021xAuthenticatorStateEntry 8 }

END

