TPLINK-AAA-MIB	DEFINITIONS ::= BEGIN	
    IMPORTS
		MODULE-IDENTITY, OBJECT-TYPE, IpAddress ,Integer32
			FROM SNMPv2-SMI   
		TPRowStatus       	 
			FROM TPLINK-TC-MIB
		tplinkMgmt
			FROM TPLINK-MIB;
    
	tplinkAaaMIB MODULE-IDENTITY
		LAST-UPDATED    "201506111430Z"
		ORGANIZATION    "TPLINK"
		CONTACT-INFO    "www.tplink.com"
		DESCRIPTION	    "Private MIB for aaa configuration."
		REVISION        "201506111430Z"
		DESCRIPTION
				"Initial version of this MIB module."
		::= { tplinkMgmt 82 }
		
   aaaGlobalConfig   	OBJECT IDENTIFIER ::= { tplinkAaaMIB 1}

--   swAaaGlobalEnable OBJECT-TYPE
--   SYNTAX  INTEGER{
--		disable(0), 						
--		enable(1)						
--		}
--		MAX-ACCESS  read-write
--		STATUS  current
--		DESCRIPTION
--				"0. disable 
--				 1. enable
--				 Enable/Disable the AAA function."
--		::= { aaaGlobalConfig 1 }

	aaaEnableAdminPassword OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..31))
	  MAX-ACCESS  read-write
	  STATUS  current
	  DESCRIPTION
			  "The enable password for obtaining admin privileges."
	  ::= { aaaGlobalConfig 2 }

	aaaApplicationList   	OBJECT IDENTIFIER ::= {aaaGlobalConfig 3}
	
	aaaApplicationListTable OBJECT-TYPE
	  SYNTAX  SEQUENCE OF AAAAPPLICATIONLISTENTRY
	  MAX-ACCESS  not-accessible
	  STATUS  current
	  DESCRIPTION
			  "Display the authentication method list the module use."
	  ::= { aaaApplicationList 1 }
	  
	aaaApplicationListEntry OBJECT-TYPE
	  SYNTAX  AAAAPPLICATIONLISTENTRY
	  MAX-ACCESS  not-accessible
	  STATUS  current
	  DESCRIPTION
			  "An entry contains of the information of methodlist the module use."
	  INDEX   { moduleId }
	  ::= { aaaApplicationListTable 1 }
	  
	AAAAPPLICATIONLISTENTRY ::=
	  SEQUENCE {
		  moduleId
			  INTEGER,  
		  moduleName
			  OCTET STRING (SIZE (0..15)), 
		  loginList
			  OCTET STRING (SIZE (0..15)),
		  enableList
			  OCTET STRING (SIZE (0..15))
	}
	  
	moduleId OBJECT-TYPE
	  SYNTAX  INTEGER  
	  MAX-ACCESS  read-only
	  STATUS  current
	  DESCRIPTION
			  "Display the id of module."
	  ::= { aaaApplicationListEntry 1 }
  
	moduleName OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-only
	  STATUS  current
	  DESCRIPTION
			  "Display the name of module."
	  ::= { aaaApplicationListEntry 2 }
	  
	loginList OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-write
	  STATUS  current
	  DESCRIPTION
			  "Display the login method list that the module use."
	  ::= { aaaApplicationListEntry 3 }

	enableList OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-write
	  STATUS  current
	  DESCRIPTION
			  "Display the enable method list that the module use."
	  ::= { aaaApplicationListEntry 4 }

	aaaAuthenticationListConfig   	OBJECT IDENTIFIER ::= { tplinkAaaMIB 2}
	authenticationLoginMethodListTable OBJECT-TYPE
	  SYNTAX  SEQUENCE OF AUTHENTICATIONLOGINMETHODLISTENTRY
	  MAX-ACCESS  not-accessible
	  STATUS  current
	  DESCRIPTION
			  "Display the authentication login method list."
	  ::= { aaaAuthenticationListConfig 1 }
	  
	authenticationLoginMethodListEntry OBJECT-TYPE
	  SYNTAX  AUTHENTICATIONLOGINMETHODLISTENTRY
	  MAX-ACCESS  not-accessible
	  STATUS  current
	  DESCRIPTION
			  "An entry contains of the information of method list."
	  INDEX   { authenLoginListName }
	  ::= { authenticationLoginMethodListTable 1 }
	  
	AUTHENTICATIONLOGINMETHODLISTENTRY ::=
	  SEQUENCE {
		  authenLoginListName
			  OCTET STRING (SIZE (0..15)),  
		  authenLoginPri1
			  OCTET STRING (SIZE (0..15)), 
		  authenLoginPri2
			  OCTET STRING (SIZE (0..15)),
		  authenLoginPri3
			  OCTET STRING (SIZE (0..15)),
		  authenLoginPri4
			  OCTET STRING (SIZE (0..15)),
		  authenLoginStatus
			  TPRowStatus
	}
		   
	authenLoginListName OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-create
	  STATUS  current
	  DESCRIPTION
			  "The name of method list."
	  ::= { authenticationLoginMethodListEntry 1 }

	authenLoginPri1 OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-write
	  STATUS  current
	  DESCRIPTION
			  "The priority 1 method."
	  ::= { authenticationLoginMethodListEntry 2 }

	authenLoginPri2 OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-write
	  STATUS  current
	  DESCRIPTION
			  "The priority 2 method."
	  ::= { authenticationLoginMethodListEntry 3 }

	authenLoginPri3 OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-write
	  STATUS  current
	  DESCRIPTION
			  "The priority 3 method."
	  ::= { authenticationLoginMethodListEntry 4 }
	  
	authenLoginPri4 OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-write
	  STATUS  current
	  DESCRIPTION
			  "The priority 4 method."
	  ::= { authenticationLoginMethodListEntry 5 }

	authenLoginStatus 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)"
	  ::= { authenticationLoginMethodListEntry 6 }
	  
	authenticationEnableMethodListTable OBJECT-TYPE
	  SYNTAX  SEQUENCE OF AUTHENTICATIONENABLEMETHODLISTENTRY
	  MAX-ACCESS  not-accessible
	  STATUS  current
	  DESCRIPTION
			  "Display the authentication enable method list.."
	  ::= { aaaAuthenticationListConfig 2 }
	  
	authenticationEnableMethodListEntry OBJECT-TYPE
	  SYNTAX  AUTHENTICATIONENABLEMETHODLISTENTRY
	  MAX-ACCESS  not-accessible
	  STATUS  current
	  DESCRIPTION
			  "An entry contains of the information of method list."
	  INDEX   { authenEnableListName }
	  ::= { authenticationEnableMethodListTable 1 }
	  
	AUTHENTICATIONENABLEMETHODLISTENTRY ::=
	  SEQUENCE {
		  authenEnableListName
			  OCTET STRING (SIZE (0..15)),  
		  authenEnablePri1
			  OCTET STRING (SIZE (0..15)), 
		  authenEnablePri2
			  OCTET STRING (SIZE (0..15)),
		  authenEnablePri3
			  OCTET STRING (SIZE (0..15)),
		  authenEnablePri4
			  OCTET STRING (SIZE (0..15)),
		  authenEnableStatus
			  TPRowStatus
	}
		   
	authenEnableListName OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-create
	  STATUS  current
	  DESCRIPTION
			  "The name of method list."
	  ::= { authenticationEnableMethodListEntry 1 }

	authenEnablePri1 OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-write
	  STATUS  current
	  DESCRIPTION
			  "The priority 1 method."
	  ::= { authenticationEnableMethodListEntry 2 }

	authenEnablePri2 OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-write
	  STATUS  current
	  DESCRIPTION
			  "The priority 2 method."
	  ::= { authenticationEnableMethodListEntry 3 }

	authenEnablePri3 OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-write
	  STATUS  current
	  DESCRIPTION
			  "The priority 3 method."
	  ::= { authenticationEnableMethodListEntry 4 }
	  
	authenEnablePri4 OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-write
	  STATUS  current
	  DESCRIPTION
			  "The priority 4 method."
	  ::= { authenticationEnableMethodListEntry 5 }

	authenEnableStatus 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)"
	  ::= { authenticationEnableMethodListEntry 6 }

	aaaDot1xListConfig   	OBJECT IDENTIFIER ::= { tplinkAaaMIB 3}			  
	authenticationDot1xMethodListTable OBJECT-TYPE
	  SYNTAX  SEQUENCE OF AUTHENTICATIONDOT1XMETHODLISTENTRY
	  MAX-ACCESS  not-accessible
	  STATUS  current
	  DESCRIPTION
			  "Display the authentication dot1x method list."
	  ::= { aaaDot1xListConfig 1 }
	  
	authenticationDot1xMethodListEntry OBJECT-TYPE
	  SYNTAX  AUTHENTICATIONDOT1XMETHODLISTENTRY
	  MAX-ACCESS  not-accessible
	  STATUS  current
	  DESCRIPTION
			  "An entry contains of the information of method list."
	  INDEX   { authenDot1xListName }
	  ::= { authenticationDot1xMethodListTable 1 }
	  
	AUTHENTICATIONDOT1XMETHODLISTENTRY ::=
	  SEQUENCE {
		  authenDot1xListName
			  OCTET STRING (SIZE (0..15)),  
		  authenDot1xPri1
			  OCTET STRING (SIZE (0..15)), 
		  authenDot1xStatus
			  TPRowStatus
	}
		   
	authenDot1xListName OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-only
	  STATUS  current
	  DESCRIPTION
			  "The name of method list."
	  ::= { authenticationDot1xMethodListEntry 1 }

	authenDot1xPri1 OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-write
	  STATUS  current
	  DESCRIPTION
			  "The priority 1 method."
	  ::= { authenticationDot1xMethodListEntry 2 }

	authenDot1xStatus OBJECT-TYPE
	  SYNTAX  TPRowStatus
	  MAX-ACCESS  read-only
	  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)"
	  ::= { authenticationDot1xMethodListEntry 3 }
	  
	accountingDot1xMethodListTable OBJECT-TYPE
	  SYNTAX  SEQUENCE OF ACCOUNTINGDOT1XMETHODLISTENTRY
	  MAX-ACCESS  not-accessible
	  STATUS  current
	  DESCRIPTION
			  "Display the accounting dot1x method list."
	  ::= { aaaDot1xListConfig 2 }
	  
	accountingDot1xMethodListEntry OBJECT-TYPE
	  SYNTAX  ACCOUNTINGDOT1XMETHODLISTENTRY
	  MAX-ACCESS  not-accessible
	  STATUS  current
	  DESCRIPTION
			  "An entry contains of the information of method list."
	  INDEX   { acctDot1xListName }
	  ::= { accountingDot1xMethodListTable 1 }
	  
	ACCOUNTINGDOT1XMETHODLISTENTRY ::=
	  SEQUENCE {
		  acctDot1xListName
			  OCTET STRING (SIZE (0..15)),  
		  acctDot1xPri1
			  OCTET STRING (SIZE (0..15)), 
		  acctDot1xStatus
			  TPRowStatus
	}
		   
	acctDot1xListName OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-only
	  STATUS  current
	  DESCRIPTION
			  "The name of method list."
	  ::= { accountingDot1xMethodListEntry 1 }

	acctDot1xPri1 OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..15))
	  MAX-ACCESS  read-write
	  STATUS  current
	  DESCRIPTION
			  "The priority 1 method."
	  ::= { accountingDot1xMethodListEntry 2 }

	acctDot1xStatus OBJECT-TYPE
	  SYNTAX  TPRowStatus
	  MAX-ACCESS  read-only
	  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)"
	  ::= { accountingDot1xMethodListEntry 3 }
	  
	radiusDeamonTable OBJECT-TYPE
	  SYNTAX  SEQUENCE OF RADIUSDEAMONENTRY
	  MAX-ACCESS  not-accessible
	  STATUS  current
	  DESCRIPTION
			  "RADIUS DEAMON is a server
			   used to authenticate the user,which is getting access to the NAS(Network 
			   Access Server)."
	  ::= { tplinkAaaMIB 4 }

	radiusDeamonEntry OBJECT-TYPE
	  SYNTAX  RADIUSDEAMONENTRY
	  MAX-ACCESS  not-accessible
	  STATUS  current
	  DESCRIPTION
			  "An entry contains of the information of a radius deamon."
	  INDEX   { radiusDeamonServerIp }
	  ::= { radiusDeamonTable 1 }

	RADIUSDEAMONENTRY ::=
	  SEQUENCE {
		  radiusDeamonServerIp
			  IpAddress, 
		  radiusDeamonTimeout
			  INTEGER, 
		  radiusDeamonRetransimit
			  INTEGER,
		  radiusDeamonKey 
			  OCTET STRING (SIZE (0..32)),	
		  radiusDeamonAuthPort 
			  INTEGER,  
		  radiusDeamonAcctPort 
			  INTEGER,  					  
		  radiusDeamonNasId
			  OCTET STRING (SIZE (0..31)),
		  radiusDeamonStatus
			  TPRowStatus
	  }
	  
  radiusDeamonServerIp OBJECT-TYPE
	  SYNTAX  IpAddress  
	  MAX-ACCESS  read-only
	  STATUS  current
	  DESCRIPTION
			  "Enter the IP address of the RADIUS server."
	  ::= { radiusDeamonEntry 1 }
  
  radiusDeamonTimeout OBJECT-TYPE
	  SYNTAX  INTEGER (1..9)
	  MAX-ACCESS  read-create
	  STATUS  current
	  DESCRIPTION
			  "Enter the number of seconds the switch waits for a 
			   reply (1-9)."
	  ::= { radiusDeamonEntry 2 }
	  
  radiusDeamonRetransimit OBJECT-TYPE
	  SYNTAX  INTEGER (1..3)
	  MAX-ACCESS  read-create
	  STATUS  current
	  DESCRIPTION
			  "Enter the number of times the switch will resend an 
			   authentication request to the RADIUS server (1-3)."
	  ::= { radiusDeamonEntry 3 }
	  
  radiusDeamonKey OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..32))
	  MAX-ACCESS  read-create
	  STATUS  current
	  DESCRIPTION
			  "Enter the encryption key used to authenticate logon 
			   access."
	  ::= { radiusDeamonEntry 4 }              
	 
  radiusDeamonAuthPort OBJECT-TYPE
	  SYNTAX  INTEGER (1..65535)
	  MAX-ACCESS  read-create
	  STATUS  current
	  DESCRIPTION
			  "Enter the radius server port used for sending 
			   authentication packets (1-65535)."
	  ::= { radiusDeamonEntry 5 } 
	  
  radiusDeamonAcctPort OBJECT-TYPE
	  SYNTAX  INTEGER (1..65535)
	  MAX-ACCESS  read-create
	  STATUS  current
	  DESCRIPTION
			  "Enter the radius server port used for sending 
			   authentication packets (1-65535)."
	  ::= { radiusDeamonEntry 6 } 
	  
  radiusDeamonNasId OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..31))
	  MAX-ACCESS  read-create
	  STATUS  current
	  DESCRIPTION
			  "Enter the NAS identifier of radius packets."
	  ::= { radiusDeamonEntry 7 }

 radiusDeamonStatus 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)"
	  ::= { radiusDeamonEntry 8 }				
  
   tacacsDeamonTable OBJECT-TYPE
	  SYNTAX  SEQUENCE OF TACACSDEAMONENTRY
	  MAX-ACCESS  not-accessible
	  STATUS  current
	  DESCRIPTION
			  "TACACS(Terminal Access Controller Access Control System) DEAMON is a server
			   used to authenticate the user,which is getting access to the NAS(Network 
			   Access Server)."
	  ::= { tplinkAaaMIB 5 }

  tacacsDeamonEntry OBJECT-TYPE
	  SYNTAX  TACACSDEAMONENTRY
	  MAX-ACCESS  not-accessible
	  STATUS  current
	  DESCRIPTION
			  "An entry contains of the information of a tacacs deamon."
	  INDEX   { tacacsDeamonServerIp }
	  ::= { tacacsDeamonTable 1 }

  TACACSDEAMONENTRY ::=
	  SEQUENCE {
		  tacacsDeamonServerIp
			  IpAddress, 
		  tacacsDeamonTimeout
			  INTEGER,
		  tacacsDeamonKey 
			  OCTET STRING (SIZE (0..32)),
		  tacacsDeamonPort 
			  INTEGER,                                            		 
		  tacacsDeamonStatus
			  TPRowStatus
	  }
	  
  tacacsDeamonServerIp OBJECT-TYPE
	  SYNTAX  IpAddress  
	  MAX-ACCESS  read-only
	  STATUS  current
	  DESCRIPTION
			  "Enter the IP address of the TACACS+ server."
	  ::= { tacacsDeamonEntry 1 }
  
  tacacsDeamonTimeout OBJECT-TYPE
	  SYNTAX  INTEGER (1..10)
	  MAX-ACCESS  read-create
	  STATUS  current
	  DESCRIPTION
			  "Enter the number of seconds the switch waits for a 
			   reply (1-10)."
	  ::= { tacacsDeamonEntry 2 }
	  

  tacacsDeamonKey OBJECT-TYPE
	  SYNTAX  OCTET STRING (SIZE (0..32))
	  MAX-ACCESS  read-create
	  STATUS  current
	  DESCRIPTION
			  "Enter the encryption key used to authenticate logon 
			   access."
	  ::= { tacacsDeamonEntry 3 }              
	 
  tacacsDeamonPort OBJECT-TYPE
	  SYNTAX  INTEGER (1..65535)
	  MAX-ACCESS  read-create
	  STATUS  current
	  DESCRIPTION
			  "Enter the tacacs+ server port used for sending 
			   authentication packets (1-65535)."
	  ::= { tacacsDeamonEntry 4 }       
	
 tacacsDeamonStatus 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)"
	  ::= { tacacsDeamonEntry 5 }
	  
  

  END