-- Copyright(c) 2008-2010 Shenzhen TP-LINK Technologies Co.Ltd.
--
-- Description: Performance Protocol vlan config
-- Reference:
-- Version: V0.1
-- History: Create by weishuifeng, 2102.11.28
-- ==================================================================

TPLINK-PROTOCOL-VLAN-MIB DEFINITIONS ::= BEGIN

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


tplinkProtocolVlanMIB MODULE-IDENTITY
	LAST-UPDATED    "200812160000Z"
	ORGANIZATION    "TPLINK"
	CONTACT-INFO	"www.tplink.com"
	DESCRIPTION
			"Protocol VLAN (Virtual Local Area Network) is the way to classify
			VLANs based on Protocols. A Protocol is relative to a single VLAN ID.
			The untagged packets and the priority-tagged packets matching the
			protocol template will be tagged with this VLAN ID."
	REVISION        "200908030000Z"
	DESCRIPTION
			"Initial version of this MIB module."
	::= { tplinkMgmt 16 }
	
tplinkProtocolVlanMIBObjects		OBJECT IDENTIFIER	::= { tplinkProtocolVlanMIB 1 }
tplinkProtocolVlanNotifications		OBJECT IDENTIFIER	::= { tplinkProtocolVlanMIB 2 }          	  	          
		
	protocolTemplate  					OBJECT IDENTIFIER ::= {tplinkProtocolVlanMIBObjects 1}
    protocolGroup 						OBJECT IDENTIFIER ::= {tplinkProtocolVlanMIBObjects 2}
    

	protocolTemplateTable OBJECT-TYPE
		SYNTAX  	SEQUENCE OF TEMPLATEENTRY
		MAX-ACCESS  not-accessible
		STATUS  	current
		DESCRIPTION
				"The Protocol Template should be created before configuring
				the Protocol VLAN. By default, the switch has defined the IP
				Template, ARP Template, RARP Template, etc. You can add more
				Protocol Template."
	::= { protocolTemplate 1 }

	templateEntry OBJECT-TYPE
		SYNTAX  	TEMPLATEENTRY
		MAX-ACCESS  not-accessible
		STATUS  	current
		DESCRIPTION
				"An entry contains of the information of a protocol template."
		INDEX   { templateProtocolName}
	::= { protocolTemplateTable 1 }

	TEMPLATEENTRY ::=
		SEQUENCE {
			templateProtocolName
				OCTET STRING (SIZE (0..32)),
			templateEtherType
				OCTET STRING (SIZE (2)),
			templateFrameType
				INTEGER,
			templateStatus
				TPRowStatus
		}
		
	templateProtocolName OBJECT-TYPE
		SYNTAX  OCTET STRING (SIZE (0..32))
		MAX-ACCESS  read-create
		STATUS  current
		DESCRIPTION
				"Give a name for the Protocol Template,1-8 characters"
	::= { templateEntry 1 }
	
	templateEtherType OBJECT-TYPE
		SYNTAX  	OCTET STRING (SIZE (2))
		MAX-ACCESS  read-create
		STATUS  	current
		DESCRIPTION
				"Enter the Ethernet protocol type field in the protocol template,
				for example 0800,0ff0.
				The value is [dsap ssap] when frame type is llc. "
	::= { templateEntry 2 }

	templateFrameType OBJECT-TYPE
		SYNTAX  	INTEGER{
			ethernet8023(0), 					--802.3Ethernet
			ethernetII(1),						--Ethernet II
			snap(2),							--SNAP
			llc(3)								--LLC
		}
		MAX-ACCESS  read-create
		STATUS  	current
		DESCRIPTION
						""
	  ::= { templateEntry 3 }

	templateStatus 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),
				the following three values are
				actions: these values may be written,
				but are never read
				createAndGo(4),
				destroy(6)"
	::= { templateEntry 4 }


protocolGroupTable OBJECT-TYPE
	SYNTAX  		SEQUENCE OF PROTOCOLENTRY
	MAX-ACCESS  	not-accessible
	STATUS  		current
	DESCRIPTION
			"Here you can configure the Protocol VLAN."
::= { protocolGroup 1 }

	protocolVlanEntry OBJECT-TYPE
		SYNTAX  		PROTOCOLENTRY
		MAX-ACCESS  	not-accessible
		STATUS  		current
		DESCRIPTION
				"An entry contains of the information of a protocol vlan."
		INDEX   { protocolName }
	::= { protocolGroupTable 1}

	PROTOCOLENTRY ::=
		SEQUENCE {
			protocolName
				OCTET STRING (SIZE (0..32)),
			protocolVlanId
				INTEGER,
			protocolPriority
				INTEGER,
			protocolPortMember
				OCTET STRING,
			protocolVlanStatus
				TPRowStatus
	}

	protocolName OBJECT-TYPE
		SYNTAX  	OCTET STRING (SIZE (0..32))
		MAX-ACCESS  read-only
		STATUS  	current
		DESCRIPTION
				"Displays the protocol template name of the VLAN."
	::= { protocolVlanEntry 1 }


	protocolVlanId OBJECT-TYPE
		SYNTAX  	INTEGER (1..4094)
		MAX-ACCESS  read-create
		STATUS  	current
		DESCRIPTION
				"Enter the ID number of the Protocol VLAN. This VLAN should
				be one of the 802.1Q VLANs the ingress port belongs to,1-4094."
	::= { protocolVlanEntry 2 }

	protocolPriority OBJECT-TYPE
		SYNTAX  	INTEGER (0..7)
		MAX-ACCESS  read-create
		STATUS  	current
		DESCRIPTION
				"Enter the ID number of the Protocol VLAN. This VLAN should
				be one of the 802.1Q VLANs the ingress port belongs to,1-4094."
	::= { protocolVlanEntry 3 }

	protocolPortMember OBJECT-TYPE
		SYNTAX  	OCTET STRING
		MAX-ACCESS  read-create
		STATUS  	current
		DESCRIPTION
				"Protocol Vlan port member."
	::= { protocolVlanEntry 4 }

	protocolVlanStatus 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),
				the following three values are
				actions: these values may be written,
				but are never read
				createAndGo(4),
				destroy(6)"
	  ::= { protocolVlanEntry 5 }

  END