-- ZyXEL Communications Corporation
-- Private Enterprise MIB definition 
  
-- This file describes the ZyXEL Communications Corporation Enterprise MIB.
-- It contains ZyXEL products OIDs, and common managed objects.

-- ZYXEL-LAG-MIB.mib
-- Revision 1.7  2013/12/06 

ZYXEL-LAG-MIB DEFINITIONS ::= BEGIN

    IMPORTS
	OBJECT-TYPE
		FROM SNMPv2-SMI			-- RFC2578	
		
	MODULE-IDENTITY
		FROM SNMPv2-SMI
	
	DisplayString                                          
		FROM SNMPv2-TC			-- RFC2579
		
	EnabledStatus
		FROM  P-BRIDGE-MIB

	dot1dBasePort
       	FROM BRIDGE-MIB

	esMgmt			
		FROM ZYXEL-ES-SMI;

	zyxelLinkAggregation MODULE-IDENTITY
		LAST-UPDATED	"201207010000Z"    
		ORGANIZATION "Enterprise Solution ZyXEL"     
		CONTACT-INFO
			""	   
		DESCRIPTION
			"The subtree for link aggregation"
		::= { esMgmt 42 }
	
	zyxelAggregationSetup   OBJECT IDENTIFIER ::= { zyxelLinkAggregation 1 }   
	zyxelAggregationStatus  OBJECT IDENTIFIER ::= { zyxelLinkAggregation 2 } 
--
--
--  42.zyxelLinkAggregation
--
--
                               
        zyAggregationState OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"Enable/Disable link aggregation control protocol."
        ::= { zyxelAggregationSetup 1 }
                                
        zyAggregationSysPriority OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"The system number is to set the priority of an active port using link aggregation 
		 control protocol. The smaller the number, the higher the priority level."
        ::= { zyxelAggregationSetup 2 }
                             
-- 		zyxelAggregationGroupTable

        zyxelAggregationGroupTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelAggregationGroupEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"The table contains aggregation group configuration."
        ::= { zyxelAggregationSetup 3 }
        
		zyxelAggregationGroupEntry OBJECT-TYPE
        SYNTAX	ZyxelAggregationGroupEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
        "An entry contains aggregation group configuration."
        INDEX          	{ zyAggregationGroupIndex }
        ::= { zyxelAggregationGroupTable 1 }

        ZyxelAggregationGroupEntry ::=
           SEQUENCE {
        	zyAggregationGroupIndex			INTEGER,
        	zyAggregationGroupState			EnabledStatus,
        	zyAggregationGroupDynamicState	EnabledStatus,
        	zyAggregationGroupCriteria    	INTEGER
           }

        zyAggregationGroupIndex OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"Index of link aggregation group."
        ::= { zyxelAggregationGroupEntry 1 }

        zyAggregationGroupState OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"Enable/Disable link aggregation control protocol on a special group."
        ::= { zyxelAggregationGroupEntry 2 }

        zyAggregationGroupDynamicState OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"Enable/Disable dynamic link aggregation control protocol on a special group."
        ::= { zyxelAggregationGroupEntry 3 }
        
        zyAggregationGroupCriteria OBJECT-TYPE
        SYNTAX  INTEGER  {
        	srcMac (1),
        	dstMac (2),
        	srcDstMac (3),
        	srcIp  (4),
        	dstIp  (5),
        	srcDstIp (6)
        }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"Outgoing traffic distribution type. Packets from the same source and/or to the same destination are 
		 sent over the same link within the trunk. By default, the switch uses the srcDstMac distribution type. 
		 If the switch is behind a router, the packet's destination or source MAC address will be changed. 
		 In this case, set the switch to distribute traffic based on its IP address to make sure port trunking can work properly."
        ::= { zyxelAggregationGroupEntry 4 }


--		zyxelAggregationPortTable

        zyxelAggregationPortTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelAggregationPortEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"The table contains aggregation port configuration."
        ::= { zyxelAggregationSetup 4 }
        
		zyxelAggregationPortEntry OBJECT-TYPE
        SYNTAX	ZyxelAggregationPortEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
        	"An entry contains aggregation port configuration."
        INDEX          	{ dot1dBasePort }
        ::= { zyxelAggregationPortTable 1 }

        ZyxelAggregationPortEntry ::=
           SEQUENCE {
        	zyAggregationPortGroup				INTEGER,
        	zyAggregationPortDynamicStateTimeout	INTEGER
           }

        zyAggregationPortGroup OBJECT-TYPE
        SYNTAX  INTEGER {
        	none(0),
        	t1(1),
        	t2(2),
        	t3(3),
        	t4(4),
        	t5(5),
        	t6(6),
			t7(7),
			t8(8),
			t9(9),
			t10(10),
			t11(11),
			t12(12),
        	t13(13),
        	t14(14),
        	t15(15),
        	t16(16),
        	t17(17),
        	t18(18),
			t19(19),
			t20(20),
			t21(21),
			t22(22),
			t23(23),
			t24(24),
			t25(25),
        	t26(26),
			t27(27),
			t28(28),
			t29(29),			
			t30(30),
        	t31(31),
        	t32(32),
        	t33(33),
        	t34(34),
        	t35(35),
        	t36(36),
			t37(37),
			t38(38),
			t39(39),
			t40(40),			
        	t41(41),
        	t42(42),
        	t43(43),
        	t44(44),
        	t45(45),
        	t46(46),
			t47(47),
			t48(48)			
        }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
			"Trunk group which a port belongs."
        ::= { zyxelAggregationPortEntry 1 }

        zyAggregationPortDynamicStateTimeout OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"This timeout is the time interval bEtween the individual port exchanges of LACP packets in order to 
		 check that the peer port in the trunk group is still up. For stacking mode it maximun support 48 trunk groups."
        ::= { zyxelAggregationPortEntry 2 }


END
