-- 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-VLAN-STACK-MIB.mib
-- Revision 1.6  2013/12/06 

ZYXEL-VLAN-STACK-MIB DEFINITIONS ::= BEGIN

    IMPORTS

	OBJECT-TYPE
		FROM SNMPv2-SMI			-- RFC2578	
		
	MODULE-IDENTITY		
		FROM SNMPv2-SMI			-- RFC2578	

	RowStatus
		FROM SNMPv2-TC			-- RFC2579
		
	DisplayString                                          
	  	FROM SNMPv2-TC			-- RFC2579
	  	
	EnabledStatus
		FROM  P-BRIDGE-MIB

	dot1dBasePort
       	FROM BRIDGE-MIB

	esMgmt			
		FROM ZYXEL-ES-SMI;

	zyxelVlanStack MODULE-IDENTITY
		LAST-UPDATED	"201207010000Z"    
		ORGANIZATION "Enterprise Solution ZyXEL"     
		CONTACT-INFO
			""	   
		DESCRIPTION
			"The subtree for VLAN Stack"
		::= { esMgmt 89 }

	zyxelVlanStackSetup 			OBJECT IDENTIFIER ::= { zyxelVlanStack 1 }
	
-- *******************************************************************
-- *
-- * zyxelVlanStackSetup
-- *
-- *******************************************************************  
	
-- zyxelVlanStackState
        zyVlanStackState OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                      "Enable/Disable VLAN Stacking for the switch."
        ::= { zyxelVlanStackSetup 1 }
        
-- zyxelVlanStackPortTable       
        zyxelVlanStackPortTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelVlanStackPortEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                 	"The table contains VLAN stack configuration."
        ::= { zyxelVlanStackSetup 2 }
        
		zyxelVlanStackPortEntry OBJECT-TYPE
        SYNTAX	ZyxelVlanStackPortEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
					"An entry contains VLAN stack configuration."
        INDEX          	{ dot1dBasePort }
        ::= { zyxelVlanStackPortTable 1 }

        ZyxelVlanStackPortEntry ::=
           SEQUENCE {
        	zyVlanStackPortMode			INTEGER,
        	zyVlanStackPortVid			INTEGER,
        	zyVlanStackPortPriority		INTEGER,
        	zyVlanStackTunnelPortTpid 	INTEGER
           }

        zyVlanStackPortMode OBJECT-TYPE
        SYNTAX  INTEGER {
		normal(1),
		access(2),
		tunnel(3)
		}
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                      	"VLAN stacking mode of the port:
						Set Normal mode to have the switch ignore frames received(or transmitted) on this port with VLAN stacking tags. 
						Set Access mode to have the switch add the SP TPID tag to all incoming frames received on this port. It is for ingress ports at the edge of the service provider's network. 
						Set Tunnel mode (available for Gigabit ports only) for egress ports at the edge of the service provider's network. 
						In order to support VLAN stacking on a port, the port must be able to allow frames of 1526 Bytes (1522 Bytes + 4 Bytes for the second tag) to pass through it."
        ::= { zyxelVlanStackPortEntry 1 }

        zyVlanStackPortVid OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                      	"Stacking port VLAN ID is the service provider's VLAN ID (the outer VLAN tag). 
						Set the service provider ID (from 1 to 4094) for frames received on this port."
        ::= { zyxelVlanStackPortEntry 2 }

        zyVlanStackPortPriority OBJECT-TYPE
        SYNTAX  INTEGER {
        		priority0(0),
        		priority1(1),
        		priority2(2),
        		priority3(3),
        		priority4(4),
        		priority5(5),
        		priority6(6),
        		priority7(7)
        }
        
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                      	"Set a priority level (from 0 to 7). This is the service provider's priority level that adds to the frames received on this port.
						0 is the lowest priority level and 7 is the highest."
        ::= { zyxelVlanStackPortEntry 3 }

        zyVlanStackTunnelPortTpid OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                      	"TPID is a standard Ethernet type code identifying the frame and indicates whether the frame carries IEEE 802.1Q tag information. 
						Set a four-digit hexadecimal number from 0000 to FFFF that the switch adds in the outer VLAN tag of the frames sent on the tunnel port(s). 
						The switch also uses this to check if the received frames are double-tagged. The value of this field is 0x8100 as defined in IEEE 802.1Q.
						If the switch needs to communicate with other vendors' devices, they should use the same TPID."
        ::= { zyxelVlanStackPortEntry 4 }
   
-- zyxelSelectiveQinQMaxNumberOfRules
        zySelectiveQinQMaxNumberOfRules OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      "The maximum number of selective Q-in-Q that can be created."
        ::= { zyxelVlanStackSetup 3 }
        
   
-- zyxelSelectiveQinQTable
        zyxelSelectiveQinQTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelSelectiveQinQEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                 	"The table contains selective Q-in-Q configuration."
        ::= { zyxelVlanStackSetup 4 }
        
		zyxelSelectiveQinQEntry OBJECT-TYPE
        SYNTAX	ZyxelSelectiveQinQEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	"An entry contains selective Q-in-Q configuration."
        INDEX          	{ zySelectiveQinQPort, zySelectiveQinQCvid }
        ::= { zyxelSelectiveQinQTable 1 }

        ZyxelSelectiveQinQEntry ::=
           SEQUENCE {
           	zySelectiveQinQName			DisplayString,
        	zySelectiveQinQPort			INTEGER,
        	zySelectiveQinQCvid			INTEGER,
        	zySelectiveQinQSpvid		INTEGER,
        	zySelectiveQinQPriority		INTEGER,
        	zySelectiveQinQRowStatus	RowStatus
           }

        zySelectiveQinQName OBJECT-TYPE
        SYNTAX  DisplayString
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                      	"Set the name of selective Q-in-Q entry."
        ::= { zyxelSelectiveQinQEntry 1 }

        zySelectiveQinQPort OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                     	"Interface port ID."
        ::= { zyxelSelectiveQinQEntry 2 }

        zySelectiveQinQCvid OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                     	"The customer VLAN ID (the inner VLAN tag) from 1 to 4094. 
						This is the VLAN tag carried in the packets from the subscribers."
        ::= { zyxelSelectiveQinQEntry 3 }
        
        zySelectiveQinQSpvid OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                     	"Stacking port VLAN ID is the service provider's VLAN ID (the outer VLAN tag). 
						Set the service provider ID (from 1 to 4094) for frames received on this port."
        ::= { zyxelSelectiveQinQEntry 4 }
        
        zySelectiveQinQPriority OBJECT-TYPE
        SYNTAX  INTEGER {
        		priority0(0),
        		priority1(1),
        		priority2(2),
        		priority3(3),
        		priority4(4),
        		priority5(5),
        		priority6(6),
        		priority7(7)
        }

        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                     	"Set a priority level (from 0 to 7). This is the service provider's priority level that adds to the frames received on this port.
						0 is the lowest priority level and 7 is the highest."
        ::= { zyxelSelectiveQinQEntry 5 }

        zySelectiveQinQRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
                     	"This object allows entries to be created and deleted from the selective Q-in-Q table"
        ::= { zyxelSelectiveQinQEntry 6 }

END

