TPLINK-LAG-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        OBJECT-TYPE,OBJECT-IDENTITY,MODULE-IDENTITY
											FROM SNMPv2-SMI
		ifIndex
											FROM RFC1213-MIB						
      	DisplayString,RowStatus 
      										FROM SNMPv2-TC     	  	         	
		tplinkMgmt
											FROM TPLINK-MIB;

		tplinkLagMIB MODULE-IDENTITY
			LAST-UPDATED    "201212130930Z"
			ORGANIZATION    "TPLINK"
			CONTACT-INFO    "www.tplink.com"
			DESCRIPTION	    "Private MIB for system time configuration."
			REVISION        "201212130930Z"
			DESCRIPTION
					"Initial version of this MIB module."
			::= { tplinkMgmt 9 }
			
		tplinkLagMIBObjects		OBJECT IDENTIFIER	::= { tplinkLagMIB 1 }
		tplinkLagNotifications	OBJECT IDENTIFIER	::= { tplinkLagMIB 2 }
		
		tplinkLagMIBGlobalConfig  	OBJECT IDENTIFIER ::= {tplinkLagMIBObjects 1}
		tplinkLagTable			  	OBJECT IDENTIFIER ::= {tplinkLagMIBObjects 2}
		tplinkLagLacpManage  		OBJECT IDENTIFIER ::= {tplinkLagMIBObjects 3}
		
				tpLagMaxEntryNum OBJECT-TYPE
					SYNTAX				INTEGER
					MAX-ACCESS			read-only
					STATUS				current
					DESCRIPTION		
					"This object indicates the max number of entries in the lag 
					configuration table." 
					::= {tplinkLagMIBGlobalConfig 1}
					
				tpLagLoadBalance OBJECT-TYPE
					SYNTAX				
						INTEGER
						{	mac-source(0),
							mac-dest(1),
							mac-source-dest(2),
							ip-source(3),
							ip-dest(4),
						 	ip-source-dest(5) 
						}
					MAX-ACCESS			read-write
					STATUS				current
					DESCRIPTION		
					"This object configures scope of Aggregate Arithmetic, which 
					results in choosing a port to transfer the packets.
 					
					mac-source-dest: When this option is selected, the Aggregate
					Arithmetic will apply to the source and destination MAC addresses
					of the packets.
					
					ip-source-dest: When this option is selected, the Aggregate 
					Arithmetic will apply to the source and destination IP addresses
					of the packets."
					 
					::= {tplinkLagMIBGlobalConfig 2}
					
				tpLagTable OBJECT-TYPE
					SYNTAX SEQUENCE OF TPLAGENTRY
					MAX-ACCESS	not-accessible
					STATUS			current
					DESCRIPTION 
					"A table that contains informatin about every static lag. 
					LAG (Link Aggregation Group) is to combine a number of ports 
					together to make a single high-bandwidth data path, which can
					highly extend the bandwidth. The bandwidth of the LAG is the 
					sum of bandwidth of its member port."
					::= {tplinkLagTable 3}
				
				tpLagEntry OBJECT-TYPE
					SYNTAX			TPLAGENTRY
					MAX-ACCESS	not-accessible
					STATUS			current
					DESCRIPTION 
					"A list of information for every lag."	
					INDEX{tpLagIndex}
				::= {tpLagTable 1}
					
				TPLAGENTRY ::=
				SEQUENCE
				{
					tpLagIndex		INTEGER,
					tpLagType		INTEGER,
					tpLagMember		DisplayString,
					tpLagRowStatus 	RowStatus
				}
				
				tpLagIndex OBJECT-TYPE
					SYNTAX 				INTEGER
					MAX-ACCESS			read-only
					STATUS				current
					DESCRIPTION		
					"This object indicates the index of the lag entry."
					::= { tpLagEntry 1 }
				
				tpLagType OBJECT-TYPE
					SYNTAX				INTEGER { on(1),active(2),passive(3)}
					MAX-ACCESS			read-create
					STATUS				current
					DESCRIPTION		
					"This object indicates the type of the lag entry."
					::=	{ tpLagEntry 2 }
					
				tpLagMember OBJECT-TYPE
					SYNTAX				DisplayString(SIZE(0..100))
					MAX-ACCESS			read-create
					STATUS				current
					DESCRIPTION		
					"This object indicates how many ports are included in this lag.
 					The maximum number of ports is eight for 'on' type lag,
 					sixteen for 'active' or 'passive' type lag."
					::=	{ tpLagEntry 3 }
					
				tpLagRowStatus OBJECT-TYPE
					SYNTAX 			RowStatus
					MAX-ACCESS		read-create
					STATUS			current
					DESCRIPTION 
					""
					::= { tpLagEntry 4 }
				
				tpLacpSystemPriority OBJECT-TYPE
					SYNTAX			INTEGER(0..65535)
					MAX-ACCESS		read-write
					STATUS			current
					DESCRIPTION	
					"This object indicates the system priority of the lacp."
					::= {tplinkLagLacpManage 1}
					
				tpLacpTable OBJECT-TYPE
					SYNTAX SEQUENCE OF TPLACPENTRY
					MAX-ACCESS 		not-accessible
					STATUS 			current
					DESCRIPTION	
					"A table that contains the lacp information of every port.
					LACP (Link Aggregation Control Protocol) is defined in IEEE802.3ad and 
					enables the dynamic link aggregation and disaggregation by exchanging 
					LACP packets with its partner. The switch can dynamically group similarly
					configured ports into a single logical link, which will highly extend the
					bandwidth and flexibly balance the load."
					::= {tplinkLagLacpManage 2}
				
				tpLacpEntry OBJECT-TYPE
					SYNTAX 			TPLACPENTRY
					MAX-ACCESS 		not-accessible
					STATUS			current
					DESCRIPTION	
					"A list of lacp information for every port."
					INDEX{ifIndex}
					::= {tpLacpTable 1}
					
				TPLACPENTRY ::=
				SEQUENCE
				{
					tpLacpPort			DisplayString,
					tpLacpAdminKey		INTEGER,
					tpLacpPortPriority	INTEGER,
					tpLacpMode			INTEGER,
					tpLacpChan			DisplayString
				}	
				
				tpLacpPort		OBJECT-TYPE
					SYNTAX			DisplayString
					MAX-ACCESS		read-only
					STATUS			current
					DESCRIPTION	
					"This object indicates the port number."
					::= {tpLacpEntry 1}
					
				tpLacpAdminKey	OBJECT-TYPE
					SYNTAX			INTEGER(0..65535)
					MAX-ACCESS		read-write
					STATUS			current
					DESCRIPTION	
					"This object indicates the Admin Key of the port. The member ports
					in a dynamic aggregation group must have the same Admin Key."
					::= {tpLacpEntry 2}
									
				tpLacpPortPriority	OBJECT-TYPE
					SYNTAX			INTEGER(0..65535)
					MAX-ACCESS	read-write
					STATUS			current
					DESCRIPTION	
					"This object indicates the port priority of the port. This value 
					determines the priority of the port to be selected as the dynamic
					aggregation group member. The port with smaller Port Priority will
					be considered as the preferred one. If the two port priorities are
					equal; the port with smaller port number is preferred."
					::= {tpLacpEntry 3}		
					
				tpLacpMode	OBJECT-TYPE
					SYNTAX			INTEGER { active(1),passive(0) }
					MAX-ACCESS		read-write
					STATUS			current
					DESCRIPTION	
					"This object indicates the lacp mode of the port."
					::= {tpLacpEntry 4}
					
				tpLacpChan	OBJECT-TYPE
					SYNTAX			DisplayString(SIZE(0..10))
					MAX-ACCESS		read-only
					STATUS			current
					DESCRIPTION	
					"This object indicates the lag number of the port."
					::= {tpLacpEntry 5}																		
END
					