#-MIBFILE: cisco-vtp.mib

CISCO-VTP-MIB DEFINITIONS ::= BEGIN


DisplayString ::=
	OCTET STRING (SIZE(0..255))

PhysAddress ::=
	OCTET STRING

MacAddress ::=
	OCTET STRING (SIZE(6))

TruthValue ::=
	INTEGER {
	true(1),
	false(2)
	}

TestAndIncr ::=
	INTEGER (0..2147483647)

AutonomousType ::=
	OBJECT IDENTIFIER

InstancePointer ::=
	OBJECT IDENTIFIER

VariablePointer ::=
	OBJECT IDENTIFIER

RowPointer ::=
	OBJECT IDENTIFIER

RowStatus ::=
	INTEGER {
	active(1),
	notInService(2),
	notReady(3),
	createAndGo(4),
	createAndWait(5),
	destroy(6)
	}

TimeStamp ::=
	TimeTicks

TimeInterval ::=
	INTEGER (0..2147483647)

DateAndTime ::=
	OCTET STRING (SIZE(8|11))

StorageType ::=
	INTEGER {
	other(1),
	volatile(2),
	nonVolatile(3),
	permanent(4),
	readOnly(5)
	}

TDomain ::=
	OBJECT IDENTIFIER

TAddress ::=
	OCTET STRING (SIZE(1..255))

OwnerString ::=
	OCTET STRING (SIZE(0..255))

InterfaceIndex ::=
	INTEGER (1..2147483647)

InterfaceIndexOrZero ::=
	INTEGER (0..2147483647)

mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
interfaces OBJECT IDENTIFIER ::= { mib-2 2 }
ifTable OBJECT IDENTIFIER ::= { interfaces 2 }
ifEntry OBJECT IDENTIFIER ::= { ifTable 1 }
ifIndex OBJECT IDENTIFIER ::= { ifEntry 1 }
interfaces OBJECT IDENTIFIER ::= { mib-2 2 }
EntryStatus ::=
	INTEGER {
	valid(1),
	createRequest(2),
	underCreation(3),
	invalid(4)
	}

cisco OBJECT IDENTIFIER ::= { enterprises 9 }
ciscoMgmt OBJECT IDENTIFIER ::= { cisco 9 }
SnmpEngineID ::=
	OCTET STRING (SIZE(5..32))

SnmpSecurityModel ::=
	INTEGER (0..2147483647)

SnmpMessageProcessingModel ::=
	INTEGER (0..2147483647)

SnmpSecurityLevel ::=
	INTEGER {
	noAuthNoPriv(1),
	authNoPriv(2),
	authPriv(3)
	}

SnmpAdminString ::=
	OCTET STRING (SIZE(0..255))

VlanIndex ::=
	INTEGER (0..4095)

ManagementDomainIndex ::=
	INTEGER (1..255)

VlanType ::=
	INTEGER {
	ethernet(1),
	fddi(2),
	tokenRing(3),
	fddiNet(4),
	trNet(5),
	deprecated(6)
	}

VlanTypeExt ::=
	OCTET STRING {
	vtpmanageable(0),
	internal(1),
	reserved(2),
	rspan(3),
	dynamicGvrp(4)
	}

ciscoVtpMIB OBJECT IDENTIFIER ::= { ciscoMgmt 46 }

vtpMIBObjects OBJECT IDENTIFIER ::= { ciscoVtpMIB 1 }

vtpStatus OBJECT IDENTIFIER ::= { vtpMIBObjects 1 }

vtpVersion OBJECT-TYPE
	SYNTAX INTEGER {
	one(1),
	two(2),
	none(3),
	three(4)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The version of VTP in use on the local system.  A device
will report its version capability and not any particular
version in use on the device. If the device does not support
vtp, the version is none(3)."
	::= { vtpStatus 1 }


vtpMaxVlanStorage OBJECT-TYPE
	SYNTAX INTEGER (-1..1023)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "An estimate of the maximum number of VLANs about which the
local system can recover complete VTP information after a
reboot.  If the number of defined VLANs is greater than this
value, then the system can not act as a VTP Server. For a
device which has no means to calculate the estimated number,
this value is -1."
	::= { vtpStatus 2 }


vtpNotificationsEnabled OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "An indication of whether the notifications/traps defined by
the vtpConfigNotificationsGroup and 
vtpConfigNotificationsGroup2 are enabled."
	::= { vtpStatus 3 }


vtpVlanCreatedNotifEnabled OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "An indication of whether the notification should 
be generated when a VLAN is created. 

If the value of this object is 'true' then the
vtpVlanCreated notification will be generated.

If the value of this object is 'false' then the
vtpVlanCreated notification will not be generated."
	::= { vtpStatus 4 }


vtpVlanDeletedNotifEnabled OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "An indication of whether the notification should  
be generated when a VLAN is deleted.  

If the value of this object is 'true' then the
vtpVlanDeleted notification will be generated.

If the value of this object is 'false' then the
vtpVlanDeleted notification will not be generated."
	::= { vtpStatus 5 }


vlanManagementDomains OBJECT IDENTIFIER ::= { vtpMIBObjects 2 }

managementDomainTable OBJECT-TYPE
	SYNTAX SEQUENCE OF ManagementDomainEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The table containing information on the management domains
in which the local system is participating.  Devices which
support only one management domain will support just one row
in this table, and will not let it be deleted nor let other
rows be created.  Devices which support multiple management
domains will allow rows to be created and deleted, but will
not allow the last row to be deleted. If the device does 
not support VTP, the table is read-only."
	::= { vlanManagementDomains 1 }


managementDomainEntry OBJECT-TYPE
	SYNTAX ManagementDomainEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Information about the status of one management domain."
	INDEX { managementDomainIndex  }

	::= { managementDomainTable 1 }

managementDomainEntry ::=
	SEQUENCE {
		managementDomainIndex ManagementDomainIndex,
		managementDomainName DisplayString,
		managementDomainLocalMode INTEGER,
		managementDomainConfigRevNumber Gauge32,
		managementDomainLastUpdater IpAddress,
		managementDomainLastChange DateAndTime,
		managementDomainRowStatus RowStatus,
		managementDomainTftpServer IpAddress,
		managementDomainTftpPathname DisplayString,
		managementDomainPruningState INTEGER,
		managementDomainVersionInUse INTEGER
		}

managementDomainIndex OBJECT-TYPE
	SYNTAX INTEGER (1..255)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "An arbitrary value to uniquely identify the management
domain on the local system."
	::= { managementDomainEntry 1 }


managementDomainName OBJECT-TYPE
	SYNTAX DisplayString (SIZE(0..32))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The management name of a domain in which the local system
is participating.  The zero-length name corresponds to the
'no management-domain' state which is the initial value at
installation-time if not configured otherwise.  Note that
the zero-length name does not correspond to an operational
management domain, and a device does not send VTP
advertisements while in the 'no management-domain' state.  A
device leaves the 'no management-domain' state when it
obtains a management-domain name, either through
configuration or through inheriting the management-domain
name from a received VTP advertisement.

When the value of an existing instance of this object is
modified by network management, the local system should re-
initialize its VLAN information (for the given management
domain) as if it had just been configured with a management
domain name at installation time."
	::= { managementDomainEntry 2 }


managementDomainLocalMode OBJECT-TYPE
	SYNTAX INTEGER {
	client(1),
	server(2),
	transparent(3),
	off(4)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The local VTP mode in this management domain when
managementDomainVersionInUse is version1(1) or
version2(2).

If managementDomainVersionInUse is version3(4), this 
object has the same value with vtpDatabaseLocalMode 
of VLAN database type.

- 'client' indicates that the local system is acting
as a VTP client.

- 'server' indicates that the local system is acting
as a VTP server.

- 'transparent' indicates that the local system does
not generate or listen to VTP messages, but forwards
messages. This mode can also be set by the device
itself when the amount of VLAN information is too
large for it to hold in DRAM.

- 'off' indicates that the local system does not
generate, listen to or forward any VTP messages."
	::= { managementDomainEntry 3 }


managementDomainConfigRevNumber OBJECT-TYPE
	SYNTAX Gauge
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The current Configuration Revision Number as known by 
the local device for this management domain when 
managementDomainVersionInUse is version1(1) or 
version2(2).

If managementDomainVersionInUse is version3(4), this 
object has the same value with vtpDatabaseRevisionNumber 
of VLAN database type.

This value is updated (if necessary) whenever a VTP
advertisement is received or generated. When in the
'no management-domain' state, this value is 0."
	::= { managementDomainEntry 4 }


managementDomainLastUpdater OBJECT-TYPE
	SYNTAX IpAddress
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The IP-address (or one of them) of the VTP Server which
last updated the Configuration Revision Number, as indicated
in the most recently received VTP advertisement for this
management domain, when managementDomainVersionInUse is
version1(1) or version2(2). 

If managementDomainVersionInUse is version3(4), this object
has the value of 0.0.0.0.

Before an advertisement has been received, this value is
0.0.0.0."
	::= { managementDomainEntry 5 }


managementDomainLastChange OBJECT-TYPE
	SYNTAX DateAndTime
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The time at which the Configuration Revision Number was
(last) increased to its current value, as indicated in the
most recently received VTP advertisement for this management
domain when managementDomainVersionInUse is not version3(4)
or in the most recently received VTP VLAN database 
advertisement for this management domain when 
managementDomainVersionInUse is version3(4).

The value 0x0000010100000000 indicates that the device which
last increased the Configuration Revision Number had no idea
of the date/time, or that no advertisement has been
received."
	::= { managementDomainEntry 6 }


managementDomainRowStatus OBJECT-TYPE
	SYNTAX RowStatus
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The status of this conceptual row."
	::= { managementDomainEntry 7 }


managementDomainTftpServer OBJECT-TYPE
	SYNTAX IpAddress
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The IP address of a TFTP Server in/from which VTP VLAN
information for this management domain is to be
stored/retrieved.  If the information is being locally
stored in NVRAM, this object should take the value 0.0.0.0."
	::= { managementDomainEntry 8 }


managementDomainTftpPathname OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The complete pathname of the file at the TFTP Server
identified by the value of managementDomainTftpServer
in/from which VTP VLAN information for this management
domain is to be stored/retrieved.  If the value of
corresponding instance of managementDomainTftpServer is
0.0.0.0, the value of this object is ignored."
	::= { managementDomainEntry 9 }


managementDomainPruningState OBJECT-TYPE
	SYNTAX INTEGER {
	enabled(1),
	disabled(2)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "An indication of whether VTP pruning is enabled or disabled
in this managament domain.  This value can only be modified
by local/network management when the value of the
corresponding instance of managementDomainLocalMode is
'server'."
	::= { managementDomainEntry 10 }


managementDomainVersionInUse OBJECT-TYPE
	SYNTAX INTEGER {
	version1(1),
	version2(2),
	none(3),
	version3(4)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The current version of the VTP that is in use by the
designated management domain. 

This object can be set to none(3) only when 
vtpVersion is none(3)."
	::= { managementDomainEntry 11 }


vlanInfo OBJECT IDENTIFIER ::= { vtpMIBObjects 3 }

vtpVlanTable OBJECT-TYPE
	SYNTAX SEQUENCE OF VtpVlanEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This table contains information on the VLANs which
currently exist.  The creation, deletion or modification of
entries occurs through: a) the receipt of VTP messages in
VTP Clients and in VTP Servers, or, b) in VTP Servers (or in
VTP transparent mode), through management operations acting
upon entries in the vtpVlanEditTable and then issuing an
'apply' command via the vtpVlanEditOperation object."
	::= { vlanInfo 1 }


vtpVlanEntry OBJECT-TYPE
	SYNTAX VtpVlanEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Information about one current VLAN.  The
managementDomainIndex value in the INDEX clause indicates
which management domain the VLAN is in."
	INDEX { managementDomainIndex , vtpVlanIndex }

	::= { vtpVlanTable 1 }

vtpVlanEntry ::=
	SEQUENCE {
		vtpVlanIndex VlanIndex,
		vtpVlanState INTEGER,
		vtpVlanType VlanType,
		vtpVlanName DisplayString,
		vtpVlanMtu Integer32,
		vtpVlanDot10Said OCTET STRING,
		vtpVlanRingNumber Integer32,
		vtpVlanBridgeNumber Integer32,
		vtpVlanStpType INTEGER,
		vtpVlanParentVlan VlanIndex,
		vtpVlanTranslationalVlan1 VlanIndex,
		vtpVlanTranslationalVlan2 VlanIndex,
		vtpVlanBridgeType INTEGER,
		vtpVlanAreHopCount Integer32,
		vtpVlanSteHopCount Integer32,
		vtpVlanIsCRFBackup TruthValue,
		vtpVlanTypeExt VlanTypeExt,
		vtpVlanIfIndex InterfaceIndexOrZero
		}

vtpVlanIndex OBJECT-TYPE
	SYNTAX INTEGER (0..4095)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The VLAN-id of this VLAN on ISL or 802.1q trunks."
	::= { vtpVlanEntry 1 }


vtpVlanState OBJECT-TYPE
	SYNTAX INTEGER {
	operational(1),
	suspended(2),
	mtuTooBigForDevice(3),
	mtuTooBigForTrunk(4)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The state of this VLAN.

The state 'mtuTooBigForDevice' indicates that this device
cannot participate in this VLAN because the VLAN's MTU is
larger than the device can support.

The state 'mtuTooBigForTrunk' indicates that while this
VLAN's MTU is supported by this device, it is too large for
one or more of the device's trunk ports."
	::= { vtpVlanEntry 2 }


vtpVlanType OBJECT-TYPE
	SYNTAX INTEGER {
	ethernet(1),
	fddi(2),
	tokenRing(3),
	fddiNet(4),
	trNet(5),
	deprecated(6)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The type of this VLAN."
	::= { vtpVlanEntry 3 }


vtpVlanName OBJECT-TYPE
	SYNTAX DisplayString (SIZE(1..32))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The name of this VLAN.  This name is used as the ELAN-name
for an ATM LAN-Emulation segment of this VLAN."
	::= { vtpVlanEntry 4 }


vtpVlanMtu OBJECT-TYPE
	SYNTAX INTEGER (1500..18190)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The MTU size on this VLAN, defined as the size of largest
MAC-layer (information field portion of the) data frame
which can be transmitted on the VLAN."
	::= { vtpVlanEntry 5 }


vtpVlanDot10Said OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(4))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The value of the 802.10 SAID field for this VLAN."
	::= { vtpVlanEntry 6 }


vtpVlanRingNumber OBJECT-TYPE
	SYNTAX INTEGER (0..4095)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The ring number of this VLAN.  This object is only
instantiated when the value of the corresponding instance of
vtpVlanType has a value of 'fddi' or 'tokenRing' and Source
Routing is in use on this VLAN."
	::= { vtpVlanEntry 7 }


vtpVlanBridgeNumber OBJECT-TYPE
	SYNTAX INTEGER (0..15)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The bridge number of the VTP-capable switches for this
VLAN.  This object is only instantiated for VLANs that are
involved with emulating token ring segments."
	::= { vtpVlanEntry 8 }


vtpVlanStpType OBJECT-TYPE
	SYNTAX INTEGER {
	ieee(1),
	ibm(2),
	hybrid(3)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION " The type of the Spanning Tree Protocol (STP) running on
this VLAN.  This object is only instanciated when the
value of the corresponding instance of vtpVlanType has a
value of 'fddiNet' or 'trNet'.

The value returned by this object depends upon the value
of the corresponding instance of vtpVlanEditStpType.

- 'ieee' indicates IEEE STP is running exclusively.

- 'ibm' indicates IBM STP is running exclusively.

- 'hybrid' indicates a STP that allows a combination of
IEEE and IBM is running.

The 'hybrid' STP type results from tokenRing/fddi VLANs
that are children of this trNet/fddiNet parent VLAN being
configured in a combination of SRT and SRB
vtpVlanBridgeTypes while the instance of
vtpVlanEditStpType that corresponds to this object is set
to 'auto'."
	::= { vtpVlanEntry 9 }


vtpVlanParentVlan OBJECT-TYPE
	SYNTAX INTEGER (0..4095)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The parent VLAN for this VLAN.  This object is only
instantiated when the value of the corresponding instance of
vtpVlanType has a value of 'fddi' or 'tokenRing' and Source
Routing is in use on this VLAN.  The parent VLAN must have 
a vtpVlanType value of fddiNet(4) or trNet(5), 
respectively."
	::= { vtpVlanEntry 10 }


vtpVlanTranslationalVlan1 OBJECT-TYPE
	SYNTAX INTEGER (0..4095)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A VLAN to which this VLAN is being translational-bridged.
If this value and the corresponding instance of
vtpVlanTranslationalVlan2 are both zero, then this VLAN is
not being translational-bridged."
	::= { vtpVlanEntry 11 }


vtpVlanTranslationalVlan2 OBJECT-TYPE
	SYNTAX INTEGER (0..4095)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Another VLAN, i.e., other than that indicated by
vtpVlanTranslationalVlan1, to which this VLAN is being
translational-bridged.  If this value and the corresponding
instance of vtpVlanTranslationalVlan1 are both zero, then
this VLAN is not being translational-bridged."
	::= { vtpVlanEntry 12 }


vtpVlanBridgeType OBJECT-TYPE
	SYNTAX INTEGER {
	srt(1),
	srb(2)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The type of the Source Route bridging mode in use on this 
VLAN.  This object is only instantiated when the value of 
the corresponding instance of vtpVlanType has a value of 
fddi(2) or tokenRing(3) and Source Routing is in use on
this VLAN."
	::= { vtpVlanEntry 13 }


vtpVlanAreHopCount OBJECT-TYPE
	SYNTAX INTEGER (1..13)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The maximum number of bridge hops allowed in
All Routes Explorer frames on this VLAN.  This
object is only instantiated when the value of the
corresponding instance of vtpVlanType has a value of fddi(2)
or tokenRing(3) and Source Routing is in use on this VLAN."
	::= { vtpVlanEntry 14 }


vtpVlanSteHopCount OBJECT-TYPE
	SYNTAX INTEGER (1..13)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The maximum number of bridge hops allowed in
Spanning Tree Explorer frames on this VLAN.  This
object is only instantiated when the value of the
corresponding instance of vtpVlanType has a value of fddi(2)
or tokenRing(3) and Source Routing is in use on this VLAN."
	::= { vtpVlanEntry 15 }


vtpVlanIsCRFBackup OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION " True if this VLAN is of type trCrf and also is acting as
a backup trCrf for the ISL distributed BRF"
	::= { vtpVlanEntry 16 }


vtpVlanTypeExt OBJECT-TYPE
	SYNTAX OCTET STRING {
	vtpmanageable(0),
	internal(1),
	reserved(2),
	rspan(3),
	dynamicGvrp(4)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The additional type information of this VLAN."
	::= { vtpVlanEntry 17 }


vtpVlanIfIndex OBJECT-TYPE
	SYNTAX InterfaceIndexOrZero
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The value of the ifIndex corresponding to this VLAN ID. 
If the VLAN ID does not have its corresponding interface, 
this object has the value of zero."
	::= { vtpVlanEntry 18 }


internalVlanInfo OBJECT IDENTIFIER ::= { vlanInfo 2 }

vtpInternalVlanAllocPolicy OBJECT-TYPE
	SYNTAX INTEGER {
	ascending(1),
	descending(2)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The internal VLAN allocation policy.

'ascending'  - internal VLANs are allocated
starting from a lowwer VLAN ID and 
upwards.
'descending' - internal VLANs are allocated
starting from a higher VLAN ID and
downwards."
	::= { internalVlanInfo 1 }


vtpInternalVlanTable OBJECT-TYPE
	SYNTAX SEQUENCE OF VtpInternalVlanEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This table sparsely augments the 
vtpVlanTable (i.e., every row in this 
table corresponds to a row in the 
vtpVlanTable but not necessarily 
vice versa).

A vtpInternalVlanTable entry contains 
information on an existing internal 
VLAN with the bit 'internal' turned on 
for the object vtpVlanTypeExt. It is
internally created by the device for 
a specific application program and 
hence owned by the application.
It cannot be modified or deleted through 
management operations acting upon entries 
in the vtpVlanEditTable."
	::= { internalVlanInfo 2 }


vtpInternalVlanEntry OBJECT-TYPE
	SYNTAX VtpInternalVlanEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Information about one current internal 
VLAN."
	INDEX { managementDomainIndex , vtpVlanIndex }

	::= { vtpInternalVlanTable 1 }

vtpInternalVlanEntry ::=
	SEQUENCE {
		vtpInternalVlanOwner SnmpAdminString
		}

vtpInternalVlanOwner OBJECT-TYPE
	SYNTAX SnmpAdminString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The program name of the internal VLAN's 
owner application. This internal VLAN
is allocated by the device specifically
for this application and no one else
could create, modify or delete this 
VLAN."
	::= { vtpInternalVlanEntry 1 }


vlanEdit OBJECT IDENTIFIER ::= { vtpMIBObjects 4 }

vtpEditControlTable OBJECT-TYPE
	SYNTAX SEQUENCE OF VtpEditControlEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This table provides the means to control the editing of the
VLANs for a particular management domain.  Each and every
entry in this table augments its corresponding entry in the
managementDomainTable; thus, an entry in this table is
created/deleted only as a by-product of creating/deleting an
entry in the managementDomainTable."
	::= { vlanEdit 1 }


vtpEditControlEntry OBJECT-TYPE
	SYNTAX VtpEditControlEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Control information for editing the VLANs in one management
domain."
	::= { vtpEditControlTable 1 }

vtpEditControlEntry ::=
	SEQUENCE {
		vtpVlanEditOperation INTEGER,
		vtpVlanApplyStatus INTEGER,
		vtpVlanEditBufferOwner OwnerString,
		vtpVlanEditConfigRevNumber Gauge32,
		vtpVlanEditModifiedVlan VlanIndex
		}

vtpVlanEditOperation OBJECT-TYPE
	SYNTAX INTEGER {
	none(1),
	copy(2),
	apply(3),
	release(4),
	restartTimer(5)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This object always has the value 'none' when read.  When
written, each value causes the appropriate action:

'copy' - causes the creation of rows in the
vtpVlanEditTable exactly corresponding to the current global
VLAN information for this management domain.  If the Edit
Buffer (for this management domain) is not currently empty,
a copy operation fails.  A successful copy operation starts
the deadman-timer.

'apply' - first performs a consistent check on the the
modified information contained in the Edit Buffer, and if
consistent, then tries to instanciate the modified
information as the new global VLAN information.  Note that
an empty Edit Buffer (for the management domain) would
always result in an inconsistency since the default VLANs
are required to be present.

'release' - flushes the Edit Buffer (for this management
domain), clears the Owner information, and aborts the
deadman-timer.  A release is generated automatically if the
deadman-timer ever expires.

'restartTimer' - restarts the deadman-timer.

'none' - no operation is performed."
	::= { vtpEditControlEntry 1 }


vtpVlanApplyStatus OBJECT-TYPE
	SYNTAX INTEGER {
	inProgress(1),
	succeeded(2),
	configNumberError(3),
	inconsistentEdit(4),
	tooBig(5),
	localNVStoreFail(6),
	remoteNVStoreFail(7),
	editBufferEmpty(8),
	someOtherError(9),
	notPrimaryServer(10)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The current status of an 'apply' operation to instanciate
the Edit Buffer as the new global VLAN information (for this
management domain).  If no apply is currently active, the
status represented is that of the most recently completed
apply.  The possible values are:

inProgress - 'apply' operation in progress;

succeeded - the 'apply' was successful (this value is
also used when no apply has been invoked since the
last time the local system restarted);

configNumberError - the apply failed because the value of
vtpVlanEditConfigRevNumber was less or equal to
the value of current value of 
managementDomainConfigRevNumber;

inconsistentEdit - the apply failed because the modified
information was not self-consistent;

tooBig - the apply failed because the modified
information was too large to fit in this VTP
Server's non-volatile storage location;

localNVStoreFail - the apply failed in trying to store
the new information in a local non-volatile
storage location;

remoteNVStoreFail - the apply failed in trying to store
the new information in a remote non-volatile
storage location;

editBufferEmpty - the apply failed because the Edit
Buffer was empty (for this management domain).

someOtherError - the apply failed for some other reason
(e.g., insufficient memory).

notPrimaryServer - the apply failed because the local 
device is not a VTP primary server for VLAN 
database type when managementDomainVersionInUse
is version3(4). "
	::= { vtpEditControlEntry 2 }


vtpVlanEditBufferOwner OBJECT-TYPE
	SYNTAX OwnerString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The management station which is currently using the Edit
Buffer for this management domain.  When the Edit Buffer for
a management domain is not currently in use, the value of
this object is the zero-length string.  Note that it is also
the zero-length string if a manager fails to set this object
when invoking a copy operation."
	::= { vtpEditControlEntry 3 }


vtpVlanEditConfigRevNumber OBJECT-TYPE
	SYNTAX Gauge
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The Configuration Revision Number to be used for the next
apply operation.  This value is initialized (by the agent)
on a copy operation to be one greater than the value of
managementDomainConfigRevNumber. On an apply, if the 
number is less or equal to the value of 
managementDomainConfigRevNumber, then the apply fails.
The value can be modified (increased) by network management
before an apply to ensure that an apply does not fail for 
this reason.

This object is used to allow management control over whether
a configuration revision received via a VTP advertisement
after a copy operation but before the succeeding apply
operation is lost by being overwritten by the (local) edit
operation.  By default, the apply operation will fail in
this situation.  By increasing this object's value after the
copy but before the apply, management can control whether
the apply is to succeed (with the update via VTP
advertisement being lost)."
	::= { vtpEditControlEntry 4 }


vtpVlanEditModifiedVlan OBJECT-TYPE
	SYNTAX INTEGER (0..4095)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The VLAN-id of the modified VLAN in the Edit Buffer.
If the object has the value of zero, any VLAN can 
be edited. If the value of the object is not zero,
only this VLAN can be edited.

The object's value is reset to zero after a successful
'apply' operation or a 'release' operation. 

This object is only supported for devices which allow 
only one VLAN editing for each 'apply' operation. For
devices which allow multiple VLAN editing for each
'apply' operation, this object is not supported."
	::= { vtpEditControlEntry 5 }


vtpVlanEditTable OBJECT-TYPE
	SYNTAX SEQUENCE OF VtpVlanEditEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The table which contains the information in the Edit
Buffers, one Edit Buffer per management domain.  The
information for a particular management domain is
initialized, by a 'copy' operation, to be the current global
VLAN information for that management domain.  After
initialization, editing can be performed to add VLANs,
delete VLANs, or modify their global parameters.  The
information as modified through editing is local to this
Edit Buffer.  An apply operation using the
vtpVlanEditOperation object is necessary to instanciate the
modified information as the new global VLAN information for
that management domain.

To use the Edit Buffer, a manager acts as follows:

1. ensures the Edit Buffer for a management domain is empty,
i.e., there are no rows in this table for this management
domain.

2. issues a SNMP set operation which sets
vtpVlanEditOperation to 'copy', and vtpVlanEditBufferOwner
to its own identifier (e.g., its own IP address).

3. if this set operation is successful, proceeds to edit the
information in the vtpVlanEditTable.

4. if and when the edited information is to be instantiated,
issues a SNMP set operation which sets vtpVlanEditOperation
to 'apply'.

5. issues retrieval requests to obtain the value of
vtpVlanApplyStatus, until the result of the apply is
determined.

6. releases the Edit Buffer by issuing a SNMP set operation
which sets vtpVlanEditOperation to 'release'.

Note that the information contained in this table is not
saved across agent reboots."
	::= { vlanEdit 2 }


vtpVlanEditEntry OBJECT-TYPE
	SYNTAX VtpVlanEditEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Information about one VLAN in the Edit Buffer for a
particular management domain."
	INDEX { managementDomainIndex , vtpVlanEditIndex }

	::= { vtpVlanEditTable 1 }

vtpVlanEditEntry ::=
	SEQUENCE {
		vtpVlanEditIndex VlanIndex,
		vtpVlanEditState INTEGER,
		vtpVlanEditType VlanType,
		vtpVlanEditName DisplayString,
		vtpVlanEditMtu Integer32,
		vtpVlanEditDot10Said OCTET STRING,
		vtpVlanEditRingNumber Integer32,
		vtpVlanEditBridgeNumber Integer32,
		vtpVlanEditStpType INTEGER,
		vtpVlanEditParentVlan VlanIndex,
		vtpVlanEditRowStatus RowStatus,
		vtpVlanEditTranslationalVlan1 VlanIndex,
		vtpVlanEditTranslationalVlan2 VlanIndex,
		vtpVlanEditBridgeType INTEGER,
		vtpVlanEditAreHopCount Integer32,
		vtpVlanEditSteHopCount Integer32,
		vtpVlanEditIsCRFBackup TruthValue,
		vtpVlanEditTypeExt VlanTypeExt,
		vtpVlanEditTypeExt2 VlanTypeExt
		}

vtpVlanEditIndex OBJECT-TYPE
	SYNTAX INTEGER (0..4095)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The VLAN-id which this VLAN would have on ISL or
802.1q trunks."
	::= { vtpVlanEditEntry 1 }


vtpVlanEditState OBJECT-TYPE
	SYNTAX INTEGER {
	operational(1),
	suspended(2)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The state which this VLAN would have."
	::= { vtpVlanEditEntry 2 }


vtpVlanEditType OBJECT-TYPE
	SYNTAX INTEGER {
	ethernet(1),
	fddi(2),
	tokenRing(3),
	fddiNet(4),
	trNet(5),
	deprecated(6)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The type which this VLAN would have.
An implementation may restrict access to this object."
	::= { vtpVlanEditEntry 3 }


vtpVlanEditName OBJECT-TYPE
	SYNTAX DisplayString (SIZE(1..32))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The name which this VLAN would have.  This name would be
used as the ELAN-name for an ATM LAN-Emulation segment of
this VLAN.

An implementation may restrict access to this object."
	::= { vtpVlanEditEntry 4 }


vtpVlanEditMtu OBJECT-TYPE
	SYNTAX INTEGER (1500..18190)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The MTU size which this VLAN would have, defined as the
size of largest MAC-layer (information field portion of the)
data frame which can be transmitted on the VLAN.

An implementation may restrict access to this object."
	::= { vtpVlanEditEntry 5 }


vtpVlanEditDot10Said OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(4))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The value of the 802.10 SAID field which would be used for
this VLAN.

An implementation may restrict access to this object."
	::= { vtpVlanEditEntry 6 }


vtpVlanEditRingNumber OBJECT-TYPE
	SYNTAX INTEGER (0..4095)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The ring number which would be used for this VLAN.  This
object is only instantiated when the value of the
corresponding instance of vtpVlanEditType has a value of
'fddi' or 'tokenRing' and Source Routing is in use on 
this VLAN."
	::= { vtpVlanEditEntry 7 }


vtpVlanEditBridgeNumber OBJECT-TYPE
	SYNTAX INTEGER (0..15)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The bridge number of the VTP-capable switches which would
be used for this VLAN.  This object is only instantiated
when the value of the corresponding instance of
vtpVlanEditType has a value of fddiNet(4) or trNet(5)."
	::= { vtpVlanEditEntry 8 }


vtpVlanEditStpType OBJECT-TYPE
	SYNTAX INTEGER {
	ieee(1),
	ibm(2),
	auto(3)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The type of the Spanning Tree Protocol which would be
running on this VLAN.  This object is only instantiated
when the value of the corresponding instance of
vtpVlanEditType has a value of fddiNet(4) or trNet(5).

If 'ieee' is selected, the STP that runs will be IEEE.

If 'ibm' is selected, the STP that runs will be IBM.

If 'auto' is selected, the STP that runs will be
dependant on the values of vtpVlanEditBridgeType for all
children tokenRing/fddi type VLANs.  This will result in
a 'hybrid' STP (see vtpVlanStpType)."
	::= { vtpVlanEditEntry 9 }


vtpVlanEditParentVlan OBJECT-TYPE
	SYNTAX INTEGER (0..4095)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The VLAN index of the VLAN which would be the parent for
this VLAN.  This object is only instantiated when the value
of the corresponding instance of vtpVlanEditType has a value
of 'fddi' or 'tokenRing' and Source Routing is in use on
this VLAN.  The parent VLAN must have a vtpVlanEditType 
value of fddiNet(4) or trNet(5), respectively."
	::= { vtpVlanEditEntry 10 }


vtpVlanEditRowStatus OBJECT-TYPE
	SYNTAX RowStatus
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The status of this row.  Any and all columnar objects in an
existing row can be modified irrespective of the status of
the row.

A row is not qualified for activation until instances of at
least its vtpVlanEditType, vtpVlanEditName and
vtpVlanEditDot10Said columns have appropriate values.

The management station should endeavor to make all rows
consistent in the table before 'apply'ing the buffer.  An
inconsistent entry in the table will cause the entire
buffer to be rejected with the vtpVlanApplyStatus object
set to the appropriate error value."
	::= { vtpVlanEditEntry 11 }


vtpVlanEditTranslationalVlan1 OBJECT-TYPE
	SYNTAX INTEGER (0..4095)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A VLAN to which this VLAN would be translational-bridged.
If this value and the corresponding instance of
vtpVlanTranslationalVlan2 are both zero, then this VLAN
would not be translational-bridged.

An implementation may restrict access to this object."
	::= { vtpVlanEditEntry 12 }


vtpVlanEditTranslationalVlan2 OBJECT-TYPE
	SYNTAX INTEGER (0..4095)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Another VLAN, i.e., other than that indicated by
vtpVlanEditTranslationalVlan1, to which this VLAN would be
translational-bridged.  If this value and the corresponding
instance of vtpVlanTranslationalVlan1 are both zero, then
this VLAN would not be translational-bridged.

An implementation may restrict access to this object."
	::= { vtpVlanEditEntry 13 }


vtpVlanEditBridgeType OBJECT-TYPE
	SYNTAX INTEGER {
	srt(1),
	srb(2)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The type of Source Route bridging mode which would be in 
use on this VLAN.  This object is only instantiated when 
the value of  the corresponding instance of vtpVlanEditType
has a value of fddi(2) or tokenRing(3) and Source Routing 
is in use on this VLAN."
	::= { vtpVlanEditEntry 14 }


vtpVlanEditAreHopCount OBJECT-TYPE
	SYNTAX INTEGER (1..13)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The maximum number of bridge hops allowed in
All Routes Explorer frames on this VLAN.  This
object is only instantiated when the value of the
corresponding instance of vtpVlanType has a value of fddi(2)
or tokenRing(3) and Source Routing is in use on this VLAN."
	::= { vtpVlanEditEntry 15 }


vtpVlanEditSteHopCount OBJECT-TYPE
	SYNTAX INTEGER (1..13)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The maximum number of bridge hops allowed in
Spanning Tree Explorer frames on this VLAN.  This
object is only instantiated when the value of the
corresponding instance of vtpVlanType has a value of fddi(2)
or tokenRing(3) and Source Routing is in use on this VLAN."
	::= { vtpVlanEditEntry 16 }


vtpVlanEditIsCRFBackup OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION " True if this VLAN is of type trCrf and also is acting as
a backup trCrf for the ISL distributed BRF.  This object is
only instantiated when the value of the corresponding
instance of vtpVlanEditType has a value of tokenRing(3)."
	::= { vtpVlanEditEntry 17 }


vtpVlanEditTypeExt OBJECT-TYPE
	SYNTAX OCTET STRING {
	vtpmanageable(0),
	internal(1),
	reserved(2),
	rspan(3),
	dynamicGvrp(4)
	}
	ACCESS read-only
	STATUS optional
	DESCRIPTION "The additional type information of this VLAN."
	::= { vtpVlanEditEntry 18 }


vtpVlanEditTypeExt2 OBJECT-TYPE
	SYNTAX OCTET STRING {
	vtpmanageable(0),
	internal(1),
	reserved(2),
	rspan(3),
	dynamicGvrp(4)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The additional type information of this VLAN.
The VlanTypeExt TC specifies which bits may
be written by a management application.
The agent should provide a default value."
	::= { vtpVlanEditEntry 19 }


vtpStats OBJECT IDENTIFIER ::= { vtpMIBObjects 5 }

vtpStatsTable OBJECT-TYPE
	SYNTAX SEQUENCE OF VtpStatsEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A table of VTP statistics."
	::= { vtpStats 1 }


vtpStatsEntry OBJECT-TYPE
	SYNTAX VtpStatsEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "VTP statistics for one management domain."
	::= { vtpStatsTable 1 }

vtpStatsEntry ::=
	SEQUENCE {
		vtpInSummaryAdverts Counter32,
		vtpInSubsetAdverts Counter32,
		vtpInAdvertRequests Counter32,
		vtpOutSummaryAdverts Counter32,
		vtpOutSubsetAdverts Counter32,
		vtpOutAdvertRequests Counter32,
		vtpConfigRevNumberErrors Counter32,
		vtpConfigDigestErrors Counter32
		}

vtpInSummaryAdverts OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The total number of VTP Summary Adverts received for this
management domain."
	::= { vtpStatsEntry 1 }


vtpInSubsetAdverts OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The total number of VTP Subset Adverts received for this
management domain."
	::= { vtpStatsEntry 2 }


vtpInAdvertRequests OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The total number of VTP Advert Requests received for this
management domain."
	::= { vtpStatsEntry 3 }


vtpOutSummaryAdverts OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The total number of VTP Summary Adverts sent for this
management domain."
	::= { vtpStatsEntry 4 }


vtpOutSubsetAdverts OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The total number of VTP Subset Adverts sent for this
management domain."
	::= { vtpStatsEntry 5 }


vtpOutAdvertRequests OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The total number of VTP Advert Requests sent for this
management domain."
	::= { vtpStatsEntry 6 }


vtpConfigRevNumberErrors OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The number of occurrences of configuration revision number
errors for this management domain.  A configuration revision
number error occurs when a device receives a VTP
advertisement for which:

- the advertisement's Configuration Revision Number is the
same as the current locally-held value, and

- the advertisement's digest value is different from the
current locally-held value."
	::= { vtpStatsEntry 7 }


vtpConfigDigestErrors OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The number of occurrences of configuration digest errors
for this management domain.  A configuration digest error
occurs when a device receives a VTP advertisement for which:

- the advertisement's Configuration Revision Number is
greater than the current locally-held value, and

- the advertisement's digest value does not match the VLAN
information assumed by the receiver of the advertisement,
where the infomation assumed is the combination of the
information explicitly contained in the advertisement plus
any omitted information as currently known by the
receiving device."
	::= { vtpStatsEntry 8 }


vlanTrunkPorts OBJECT IDENTIFIER ::= { vtpMIBObjects 6 }

vlanTrunkPortTable OBJECT-TYPE
	SYNTAX SEQUENCE OF VlanTrunkPortEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The table containing information on the local system's VLAN
trunk ports."
	::= { vlanTrunkPorts 1 }


vlanTrunkPortEntry OBJECT-TYPE
	SYNTAX VlanTrunkPortEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Information about one trunk port."
	INDEX { vlanTrunkPortIfIndex  }

	::= { vlanTrunkPortTable 1 }

vlanTrunkPortEntry ::=
	SEQUENCE {
		vlanTrunkPortIfIndex InterfaceIndex,
		vlanTrunkPortManagementDomain ManagementDomainIndex,
		vlanTrunkPortEncapsulationType INTEGER,
		vlanTrunkPortVlansEnabled OCTET STRING,
		vlanTrunkPortNativeVlan VlanIndex,
		vlanTrunkPortRowStatus RowStatus,
		vlanTrunkPortInJoins Counter32,
		vlanTrunkPortOutJoins Counter32,
		vlanTrunkPortOldAdverts Counter32,
		vlanTrunkPortVlansPruningEligible OCTET STRING,
		vlanTrunkPortVlansXmitJoined OCTET STRING,
		vlanTrunkPortVlansRcvJoined OCTET STRING,
		vlanTrunkPortDynamicState INTEGER,
		vlanTrunkPortDynamicStatus INTEGER,
		vlanTrunkPortVtpEnabled TruthValue,
		vlanTrunkPortEncapsulationOperType INTEGER,
		vlanTrunkPortVlansEnabled2k OCTET STRING,
		vlanTrunkPortVlansEnabled3k OCTET STRING,
		vlanTrunkPortVlansEnabled4k OCTET STRING,
		vtpVlansPruningEligible2k OCTET STRING,
		vtpVlansPruningEligible3k OCTET STRING,
		vtpVlansPruningEligible4k OCTET STRING,
		vlanTrunkPortVlansXmitJoined2k OCTET STRING,
		vlanTrunkPortVlansXmitJoined3k OCTET STRING,
		vlanTrunkPortVlansXmitJoined4k OCTET STRING,
		vlanTrunkPortVlansRcvJoined2k OCTET STRING,
		vlanTrunkPortVlansRcvJoined3k OCTET STRING,
		vlanTrunkPortVlansRcvJoined4k OCTET STRING,
		vlanTrunkPortDot1qTunnel INTEGER
		}

vlanTrunkPortIfIndex OBJECT-TYPE
	SYNTAX InterfaceIndex
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The value of ifIndex for the interface corresponding to
this trunk port."
	::= { vlanTrunkPortEntry 1 }


vlanTrunkPortManagementDomain OBJECT-TYPE
	SYNTAX INTEGER (1..255)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The value of managementDomainIndex for the management
domain on this trunk port.  Devices which support only one
management domain will support this object read-only."
	::= { vlanTrunkPortEntry 2 }


vlanTrunkPortEncapsulationType OBJECT-TYPE
	SYNTAX INTEGER {
	isl(1),
	dot10(2),
	lane(3),
	dot1Q(4),
	negotiate(5)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The type of VLAN encapsulation desired to be used on this
trunk port. It is either a particular type, or 'negotiate'
meaning whatever type results from the negotiation.
negotiate(5) is not allowed if the port does not support
negotiation or if its vlanTrunkPortDynamicState is set to
on(1) or onNoNegotiate(5). Whether writing to this object
in order to modify the encapsulation is supported is both
device and interface specific."
	::= { vlanTrunkPortEntry 3 }


vlanTrunkPortVlansEnabled OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(128))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A string of octets containing one bit per VLAN in the
management domain on this trunk port.  The first octet
corresponds to VLANs with VlanIndex values of 0 through 7;
the second octet to VLANs 8 through 15; etc.  The most
significant bit of each octet corresponds to the lowest
value VlanIndex in that octet.  If the bit corresponding to
a VLAN is set to '1', then the local system is enabled for
sending and receiving frames on that VLAN; if the bit is set
to '0', then the system is disabled from sending and
receiving frames on that VLAN.

To avoid conflicts between overlapping partial updates by
multiple managers, i.e., updates which modify only a portion
of an instance of this object (e.g., enable/disable a single
VLAN on the trunk port), any SNMP Set operation accessing an
instance of this object should also write the value of
vlanTrunkPortSetSerialNo."
	::= { vlanTrunkPortEntry 4 }


vlanTrunkPortNativeVlan OBJECT-TYPE
	SYNTAX INTEGER (0..4095)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The VlanIndex of the VLAN which is represented by native
frames on this trunk port.  For trunk ports not supporting
the sending and receiving of native frames, this value
should be set to zero."
	::= { vlanTrunkPortEntry 5 }


vlanTrunkPortRowStatus OBJECT-TYPE
	SYNTAX RowStatus
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The status of this row.  In some circumstances, the
creation of a row in this table is needed to enable the
appropriate trunking/tagging protocol on the port, to enable
the use of VTP on the port, and to assign the port to the
appropriate management domain.  In other circumstances, rows
in this table will be created as a by-product of other
operations."
	::= { vlanTrunkPortEntry 6 }


vlanTrunkPortInJoins OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The number of VTP Join messages received on this trunk
port."
	::= { vlanTrunkPortEntry 7 }


vlanTrunkPortOutJoins OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The number of VTP Join messages sent on this trunk port."
	::= { vlanTrunkPortEntry 8 }


vlanTrunkPortOldAdverts OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The number of VTP Advertisement messages which indicated
the sender does not support VLAN-pruning received on this
trunk port."
	::= { vlanTrunkPortEntry 9 }


vlanTrunkPortVlansPruningEligible OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(128))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A string of octets containing one bit per VLAN in the
management domain on this trunk port.  The first octet
corresponds to VLANs with VlanIndex values of 0 through 7;
the second octet to VLANs 8 through 15; etc.  The most
significant bit of each octet corresponds to the lowest
value VlanIndex in that octet.

If the bit corresponding to a VLAN is set to '1', then the
local system is permitted to prune that VLAN on this trunk
port; if the bit is set to '0', then the system must not
prune that VLAN on this trunk port.

To avoid conflicts between overlapping partial updates by
multiple managers, i.e., updates which modify only a portion
of an instance of this object (e.g., enable/disable a single
VLAN on the trunk port), any SNMP Set operation accessing an
instance of this object should also write the value of
vlanTrunkPortSetSerialNo."
	::= { vlanTrunkPortEntry 10 }


vlanTrunkPortVlansXmitJoined OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(128))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A string of octets containing one bit per VLAN in the
management domain on this trunk port.  The first octet
corresponds to VLANs with VlanIndex values of 0 through 7;
the second octet to VLANs 8 through 15; etc.  The most
significant bit of each octet corresponds to the lowest
value VlanIndex in that octet.

If the bit corresponding to a VLAN is set to '1', then this
VLAN is presently being forwarded on this trunk port, i.e.,
it is not pruned; if the bit is set to '0', then this VLAN
is presently not being forwarded on this trunk port, either
because it is pruned or for some other reason."
	::= { vlanTrunkPortEntry 11 }


vlanTrunkPortVlansRcvJoined OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(128))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A string of octets containing one bit per VLAN in the
management domain on this trunk port.  The first octet
corresponds to VLANs with VlanIndex values of 0 through 7;
the second octet to VLANs 8 through 15; etc.  The most
significant bit of each octet corresponds to the lowest
value VlanIndex in that octet.

If the bit corresponding to a VLAN is set to '1', then the
local switch is currently sending joins for this VLAN on
this trunk port, i.e., it is asking to receive frames for
this VLAN; if the bit is set to '0', then the local switch
is not currently sending joins for this VLAN on this trunk
port."
	::= { vlanTrunkPortEntry 12 }


vlanTrunkPortDynamicState OBJECT-TYPE
	SYNTAX INTEGER {
	on(1),
	off(2),
	desirable(3),
	auto(4),
	onNoNegotiate(5)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "For devices that allows dynamic determination of whether
a link between two switches should be a trunk or not, this
object allows the operator to mandate the behavior of that
dynamic mechanism.

on(1) dictates that the interface will always be a
trunk. This is the value for static entries (those that
show no dynamic behavior). If the negotiation is supported
on this port, negotiation will take place with the far end
to attempt to bring the far end into trunking state.

off(2) allows an operator to specify that the specified
interface is never to be trunk, regardless of any dynamic
mechanisms to the contrary.  This value is useful for
overriding the default behavior of some switches. If the
negotiation is supported on this port, negotiation will take
place with the far end to attempt on the link to bring the
far end into non-trunking state.

desirable(3) is used to indicate that it is desirable for
the interface to become a trunk.  The device will initiate
any negotiation necessary to become a trunk but will not
become a trunk unless it receives confirmation from the far
end on the link.

auto(4) is used to indicate that the interface is capable
and willing to become a trunk but will not initiate
trunking negotiations.  The far end on the link are
required to either start negotiations or start sending
encapsulated packets, on which event the specified
interface will become a trunk.

onNoNegotiate(5) is used to indicate that the interface is
permanently set to be a trunk, and no negotiation takes
place with the far end on the link to ensure consistent
operation. This is similar to on(1) except no negotiation
takes place with the far end.

If the port does not support negotiation or its
vlanTrunkPortEncapsulationType is set to negotiate(5),
onNoNegotiate(5) is not allowed.

Devices that do no support dynamic determination (for just
a particular interface, encapsulation or for the whole
device) need only support the 'on', and 'off' values."
	::= { vlanTrunkPortEntry 13 }


vlanTrunkPortDynamicStatus OBJECT-TYPE
	SYNTAX INTEGER {
	trunking(1),
	notTrunking(2)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION " Indicates whether the specified interface is either
acting as a trunk or not. This is a result of the
vlanTrunkPortDynamicState and the ifOperStatus of the
trunk port itself."
	::= { vlanTrunkPortEntry 14 }


vlanTrunkPortVtpEnabled OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION " Some trunk interface modules allow VTP to be
enabled/disabled seperately from that of the central
device.  In such a case this object provides management a
way to remotely enable VTP on that module.  If a module
does not support a seperate VTP enabled state then this
object shall always return 'true' and will accept no other
value during a SET operation."
	::= { vlanTrunkPortEntry 15 }


vlanTrunkPortEncapsulationOperType OBJECT-TYPE
	SYNTAX INTEGER {
	isl(1),
	dot10(2),
	lane(3),
	dot1Q(4),
	negotiating(5),
	notApplicable(6)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The type of VLAN encapsulation in use on this trunk port.
For intefaces with vlanTrunkPortDynamicStatus of
notTrunking(2) the vlanTrunkPortEncapsulationOperType shall
be notApplicable(6). "
	::= { vlanTrunkPortEntry 16 }


vlanTrunkPortVlansEnabled2k OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(0..128))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A string of octets containing one bit per VLAN for VLANS
with VlanIndex values of 1024 through 2047 in the management
domain on this trunk port.  The first octet corresponds to
VLANs with VlanIndex values of 1024 through 1031; the second
octet to VLANs 1032 through 1039; etc.  The most significant
bit of each octet corresponds to the lowest value VlanIndex
in that octet. If the bit corresponding to a VLAN is set to
'1', then the local system is enabled for sending and
receiving frames on that VLAN; if the bit is set to '0',
then the system is disabled from sending and receiving
frames on that VLAN. The default value is zero length
string.

To avoid conflicts between overlapping partial updates by
multiple managers, i.e., updates which modify only a portion
of an instance of this object (e.g., enable/disable a single
VLAN on the trunk port), any SNMP Set operation accessing an
instance of this object should also write the value of
vlanTrunkPortSetSerialNo."
	::= { vlanTrunkPortEntry 17 }


vlanTrunkPortVlansEnabled3k OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(0..128))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A string of octets containing one bit per VLAN for VLANS
with VlanIndex values of 2048 through 3071 in the management
domain on this trunk port.  The first octet corresponds to
VLANs with VlanIndex values of 2048 through 2055; the second
octet to VLANs 2056 through 2063; etc.  The most significant
bit of each octet corresponds to the lowest value VlanIndex
in that octet. If the bit corresponding to a VLAN is set to
'1', then the local system is enabled for sending and
receiving frames on that VLAN; if the bit is set to '0',
then the system is disabled from sending and receiving
frames on that VLAN. The default value is zero length
string.

To avoid conflicts between overlapping partial updates by
multiple managers, i.e., updates which modify only a portion
of an instance of this object (e.g., enable/disable a single
VLAN on the trunk port), any SNMP Set operation accessing an
instance of this object should also write the value of
vlanTrunkPortSetSerialNo."
	::= { vlanTrunkPortEntry 18 }


vlanTrunkPortVlansEnabled4k OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(0..128))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A string of octets containing one bit per VLAN for VLANS
with VlanIndex values of 3072 through 4095 in the management
domain on this trunk port.  The first octet corresponds to
VLANs with VlanIndex values of 3072 through 3079; the second
octet to VLANs 3080 through 3087; etc.  The most significant
bit of each octet corresponds to the lowest value VlanIndex
in that octet. If the bit corresponding to a VLAN is set to
'1', then the local system is enabled for sending and
receiving frames on that VLAN; if the bit is set to '0',
then the system is disabled from sending and receiving
frames on that VLAN. The default value is zero length
string.

To avoid conflicts between overlapping partial updates by
multiple managers, i.e., updates which modify only a portion
of an instance of this object (e.g., enable/disable a single
VLAN on the trunk port), any SNMP Set operation accessing an
instance of this object should also write the value of
vlanTrunkPortSetSerialNo."
	::= { vlanTrunkPortEntry 19 }


vtpVlansPruningEligible2k OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(0..128))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A string of octets containing one bit per VLAN for VLANS
with VlanIndex values of 1024 through 2047 in the management
domain on this trunk port.  The first octet corresponds to
VLANs with VlanIndex values of 1024 through 1031; the second
octet to VLANs 1032 through 1039; etc.  The most significant
bit of each octet corresponds to the lowest value VlanIndex
in that octet.

If the bit corresponding to a VLAN is set to '1', then the
local system is permitted to prune that VLAN on this trunk
port; if the bit is set to '0', then the system must not
prune that VLAN on this trunk port.
The default value is zero length string.

To avoid conflicts between overlapping partial updates by
multiple managers, i.e., updates which modify only a portion
of an instance of this object (e.g., enable/disable a single
VLAN on the trunk port), any SNMP Set operation accessing an
instance of this object should also write the value of
vlanTrunkPortSetSerialNo."
	::= { vlanTrunkPortEntry 20 }


vtpVlansPruningEligible3k OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(0..128))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A string of octets containing one bit per VLAN for VLANS
with VlanIndex values of 2048 through 3071 in the management
domain on this trunk port.  The first octet corresponds to
VLANs with VlanIndex values of 2048 through 2055; the second
octet to VLANs 2056 through 2063; etc.  The most significant
bit of each octet corresponds to the lowest value VlanIndex
in that octet.

If the bit corresponding to a VLAN is set to '1', then the
local system is permitted to prune that VLAN on this trunk
port; if the bit is set to '0', then the system must not
prune that VLAN on this trunk port.
The default value is zero length string.

To avoid conflicts between overlapping partial updates by
multiple managers, i.e., updates which modify only a portion
of an instance of this object (e.g., enable/disable a single
VLAN on the trunk port), any SNMP Set operation accessing an
instance of this object should also write the value of
vlanTrunkPortSetSerialNo."
	::= { vlanTrunkPortEntry 21 }


vtpVlansPruningEligible4k OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(0..128))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A string of octets containing one bit per VLAN for VLANS
with VlanIndex values of 3072 through 4095 in the management
domain on this trunk port.  The first octet corresponds to
VLANs with VlanIndex values of 3072 through 3079; the second
octet to VLANs 3080 through 3087; etc.  The most significant
bit of each octet corresponds to the lowest value VlanIndex
in that octet.

If the bit corresponding to a VLAN is set to '1', then the
local system is permitted to prune that VLAN on this trunk
port; if the bit is set to '0', then the system must not
prune that VLAN on this trunk port.
The default value is zero length string.

To avoid conflicts between overlapping partial updates by
multiple managers, i.e., updates which modify only a portion
of an instance of this object (e.g., enable/disable a single
VLAN on the trunk port), any SNMP Set operation accessing an
instance of this object should also write the value of
vlanTrunkPortSetSerialNo."
	::= { vlanTrunkPortEntry 22 }


vlanTrunkPortVlansXmitJoined2k OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(0..128))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A string of octets containing one bit per VLAN for VLANS
with VlanIndex values of 1024 through 2047 in the management
domain on this trunk port.  The first octet corresponds to
VLANs with VlanIndex values of 1024 through 1031; the second
octet to VLANs 1032 through 1039; etc.  The most significant
bit of each octet corresponds to the lowest value VlanIndex
in that octet.

If the bit corresponding to a VLAN is set to '1', then this
VLAN is presently being forwarded on this trunk port, i.e.,
it is not pruned; if the bit is set to '0', then this VLAN
is presently not being forwarded on this trunk port, either
because it is pruned or for some other reason."
	::= { vlanTrunkPortEntry 23 }


vlanTrunkPortVlansXmitJoined3k OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(0..128))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A string of octets containing one bit per VLAN for VLANS
with VlanIndex values of 2048 through 3071 in the management
domain on this trunk port.  The first octet corresponds to
VLANs with VlanIndex values of 2048 through 2055; the second
octet to VLANs 2056 through 2063; etc.  The most significant
bit of each octet corresponds to the lowest value VlanIndex
in that octet.

If the bit corresponding to a VLAN is set to '1', then this
VLAN is presently being forwarded on this trunk port, i.e.,
it is not pruned; if the bit is set to '0', then this VLAN
is presently not being forwarded on this trunk port, either
because it is pruned or for some other reason."
	::= { vlanTrunkPortEntry 24 }


vlanTrunkPortVlansXmitJoined4k OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(0..128))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A string of octets containing one bit per VLAN for VLANS
with VlanIndex values of 3072 through 4095 in the management
domain on this trunk port.  The first octet corresponds to
VLANs with VlanIndex values of 3072 through 3079; the second
octet to VLANs 3080 through 3087; etc.  The most significant
bit of each octet corresponds to the lowest value VlanIndex
in that octet.

If the bit corresponding to a VLAN is set to '1', then this
VLAN is presently being forwarded on this trunk port, i.e.,
it is not pruned; if the bit is set to '0', then this VLAN
is presently not being forwarded on this trunk port, either
because it is pruned or for some other reason."
	::= { vlanTrunkPortEntry 25 }


vlanTrunkPortVlansRcvJoined2k OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(0..128))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A string of octets containing one bit per VLAN for VLANS
with VlanIndex values of 1024 through 2047 in the management
domain on this trunk port.  The first octet corresponds to
VLANs with VlanIndex values of 1024 through 1031; the second
octet to VLANs 1032 through 1039; etc.  The most significant
bit of each octet corresponds to the lowest value VlanIndex
in that octet.

If the bit corresponding to a VLAN is set to '1', then the
local switch is currently sending joins for this VLAN on
this trunk port, i.e., it is asking to receive frames for
this VLAN; if the bit is set to '0', then the local switch
is not currently sending joins for this VLAN on this trunk
port."
	::= { vlanTrunkPortEntry 26 }


vlanTrunkPortVlansRcvJoined3k OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(0..128))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A string of octets containing one bit per VLAN for VLANS
with VlanIndex values of 2048 through 3071 in the management
domain on this trunk port.  The first octet corresponds to
VLANs with VlanIndex values of 2048 through 2055; the second
octet to VLANs 2056 through 2063; etc.  The most significant
bit of each octet corresponds to the lowest value VlanIndex
in that octet.

If the bit corresponding to a VLAN is set to '1', then the
local switch is currently sending joins for this VLAN on
this trunk port, i.e., it is asking to receive frames for
this VLAN; if the bit is set to '0', then the local switch
is not currently sending joins for this VLAN on this trunk
port."
	::= { vlanTrunkPortEntry 27 }


vlanTrunkPortVlansRcvJoined4k OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(0..128))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A string of octets containing one bit per VLAN for VLANS
with VlanIndex values of 3072 through 4095 in the management
domain on this trunk port.  The first octet corresponds to
VLANs with VlanIndex values of 3072 through 3079; the second
octet to VLANs 3080 through 3087; etc.  The most significant
bit of each octet corresponds to the lowest value VlanIndex
in that octet.

If the bit corresponding to a VLAN is set to '1', then the
local switch is currently sending joins for this VLAN on
this trunk port, i.e., it is asking to receive frames for
this VLAN; if the bit is set to '0', then the local switch
is not currently sending joins for this VLAN on this trunk
port."
	::= { vlanTrunkPortEntry 28 }


vlanTrunkPortDot1qTunnel OBJECT-TYPE
	SYNTAX INTEGER {
	trunk(1),
	access(2),
	disabled(3)
	}
	ACCESS read-only
	STATUS optional
	DESCRIPTION "Indicates dot1qtunnel mode of the port.

If the portDot1qTunnel  is set to 'trunk' mode, the port's
vlanTrunkPortDynamicState will be changed to 'onNoNegotiate'
and the vlanTrunkPortEncapsulationType will be set to
'dot1Q'. These values cannot be changed unless dot1q tunnel
is disabled on this port.

If the portDot1qTunnel mode is set to 'access' mode, the
port's vlanTrunkPortDynamicState will be set to 'off'.And
the value of vlanTrunkPortDynamicState cannot be changed
unless dot1q tunnel is disabled on this port. 1Q packets
received on this access port will remain.

Setting the port to dot1q tunnel 'disabled' mode causes the
dot1q tunnel feature to be disabled on this port.  This
object can't be set to 'trunk' or 'access' mode, when
vlanTrunkPortsDot1qTag  object is set to 'false'.

This object has been deprecated and is replaced by the
object 'cltcDot1qTunnelMode' in the
CISCO-L2-TUNNEL-CONFIG-MIB"
	::= { vlanTrunkPortEntry 29 }


vlanTrunkPortSetSerialNo OBJECT-TYPE
	SYNTAX TestAndIncr
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "An advisory lock used to allow several cooperating SNMPv2
managers to coordinate their use of the SNMPv2 set operation
acting upon any instance of vlanTrunkPortVlansEnabled."
	::= { vlanTrunkPorts 2 }


vlanTrunkPortsDot1qTag OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS optional
	DESCRIPTION "An indication of whether the tagging on all VLANs including
native VLAN for all 802.1q trunks is enabled.

If this object has a value of true(1) then all VLANs
including native VLAN are tagged.  If the value is false(2)
then all VLANs excluding native VLAN are tagged.

This object has been deprecated and is replaced by the
object 'cltcDot1qAllTaggedEnabled' in the
CISCO-L2-TUNNEL-CONFIG-MIB"
	::= { vlanTrunkPorts 3 }


vtpDiscover OBJECT IDENTIFIER ::= { vtpMIBObjects 7 }

vtpDiscoverTable OBJECT-TYPE
	SYNTAX SEQUENCE OF VtpDiscoverEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This table contains information related to the discovery 
of the VTP members in the designated management
domain. This table is not instantiated when 
managementDomainVersionInUse is version1(1), version2(3)
or none(3). "
	::= { vtpDiscover 1 }


vtpDiscoverEntry OBJECT-TYPE
	SYNTAX VtpDiscoverEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Information related to the discovery of the 
VTP members in one management domain."
	INDEX { managementDomainIndex  }

	::= { vtpDiscoverTable 1 }

vtpDiscoverEntry ::=
	SEQUENCE {
		vtpDiscoverAction INTEGER,
		vtpDiscoverStatus INTEGER,
		vtpLastDiscoverTime TimeStamp
		}

vtpDiscoverAction OBJECT-TYPE
	SYNTAX INTEGER {
	discover(1),
	noOperation(2),
	purgeResult(3)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "When this object is set to discover(1), all the
entries in vtpDiscoverResultTable for the
corresponding management domain will be removed 
and the local device will begin to discover all
VTP members in the management domain. Upon the
successful completion of discovery, the discovered
result will be stored in the vtpDiscoverResultTable.

If vtpDiscoverStatus is inProgress(1), setting 
vtpDiscoverAction to discover(1) will fail. 

When this object is set to purgeResult(3), 
all the entries of vtpDiscoverResultTable for 
the corresponding management domain will be
removed from vtpDiscoverResultTable.

When this object is set to noOperation(2), no
action will be taken. When read, this object
always returns noOperation(2)."
	::= { vtpDiscoverEntry 1 }


vtpDiscoverStatus OBJECT-TYPE
	SYNTAX INTEGER {
	inProgress(1),
	succeeded(2),
	resourceUnavailable(3),
	someOtherError(4)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The current status of VTP discovery. 

inProgress - a discovery is in progress;

succeeded - the discovery was completed successfully
(this value is also used when 
no discover has been invoked since the
last time the local system restarted);

resourceUnavailable - the discovery failed because
the required allocation of a resource is
presently unavailable.

someOtherError - 'the discovery failed due to a
reason no listed."
	::= { vtpDiscoverEntry 2 }


vtpLastDiscoverTime OBJECT-TYPE
	SYNTAX TimeStamp
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The value of sysUpTime at which the last discovery 
was completed.

A value of zero indicates that no discovery has been
invoked since last time the local system restarted. "
	::= { vtpDiscoverEntry 3 }


vtpDiscoverResultTable OBJECT-TYPE
	SYNTAX SEQUENCE OF VtpDiscoverResultEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The table containing information of discovered VTP members
in the management domain in which the local system is
participating. This table is not instantiated when 
managementDomainVersionInUse is version1(1), version2(2) or
none(3). "
	::= { vtpDiscover 2 }


vtpDiscoverResultEntry OBJECT-TYPE
	SYNTAX VtpDiscoverResultEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A conceptual row is created for each VTP member which
is found through successful discovery."
	INDEX { managementDomainIndex , vtpDiscoverResultIndex }

	::= { vtpDiscoverResultTable 1 }

vtpDiscoverResultEntry ::=
	SEQUENCE {
		vtpDiscoverResultIndex Unsigned32,
		vtpDiscoverResultDatabaseName SnmpAdminString,
		vtpDiscoverResultConflicting TruthValue,
		vtpDiscoverResultDeviceId SnmpAdminString,
		vtpDiscoverResultPrimaryServer SnmpAdminString,
		vtpDiscoverResultRevNumber Gauge32,
		vtpDiscoverResultSystemName SnmpAdminString
		}

vtpDiscoverResultIndex OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A value assigned by the system which identifies
a VTP member and the associated database in the 
management domain."
	::= { vtpDiscoverResultEntry 1 }


vtpDiscoverResultDatabaseName OBJECT-TYPE
	SYNTAX SnmpAdminString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The database name associated with the 
discovered VTP member."
	::= { vtpDiscoverResultEntry 2 }


vtpDiscoverResultConflicting OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Indicates whether this VTP member contains 
conflicting information.

true(1) indicates that this member has conflicting 
information of the database type in the management domain.

false(2) indicates that there is no conflicting information
of the database type in the management domain."
	::= { vtpDiscoverResultEntry 3 }


vtpDiscoverResultDeviceId OBJECT-TYPE
	SYNTAX SnmpAdminString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The unique identifier of the device for this VTP member."
	::= { vtpDiscoverResultEntry 4 }


vtpDiscoverResultPrimaryServer OBJECT-TYPE
	SYNTAX SnmpAdminString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The unique identifier of the primary server for this VTP 
member and the associated database type.

There are two different VTP servers, the primary server
and the secondary server.  When a local device is
configured as a server for a certain database type,
it becomes secondary server by default. 
Primary server is an operational role under which a
server can initiate or change the VTP configuration of the
database type.

If this VTP member itself is the primary server, the   
value of this object is the same as the value of 
vtpDiscoverResultDeviceId of the instance."
	::= { vtpDiscoverResultEntry 5 }


vtpDiscoverResultRevNumber OBJECT-TYPE
	SYNTAX Gauge
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The current configuration revision number as known by the
VTP member. When the database type is unknown for
the VTP member, this value is 0."
	::= { vtpDiscoverResultEntry 6 }


vtpDiscoverResultSystemName OBJECT-TYPE
	SYNTAX SnmpAdminString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "sysName of the VTP member."
	::= { vtpDiscoverResultEntry 7 }


vtpDatabase OBJECT IDENTIFIER ::= { vtpMIBObjects 8 }

vtpDatabaseTable OBJECT-TYPE
	SYNTAX SEQUENCE OF VtpDatabaseEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This table contains information of the VTP 
databases. It is not instantiated when
managementDomainVersionInUse is version1(1), 
version2(3) or none(3)."
	::= { vtpDatabase 1 }


vtpDatabaseEntry OBJECT-TYPE
	SYNTAX VtpDatabaseEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Information about the status of the VTP database
in the domain.  Each VTP database type known to the
local device type has an entry in this table.
An entry is also created for unknown database which is
notified through VTP advertisements from other VTP
servers."
	INDEX { managementDomainIndex , vtpDatabaseIndex }

	::= { vtpDatabaseTable 1 }

vtpDatabaseEntry ::=
	SEQUENCE {
		vtpDatabaseIndex Unsigned32,
		vtpDatabaseName SnmpAdminString,
		vtpDatabaseLocalMode INTEGER,
		vtpDatabaseRevNumber Gauge32,
		vtpDatabasePrimaryServer TruthValue,
		vtpDatabasePrimaryServerId SnmpAdminString,
		vtpDatabaseTakeOverPrimary TruthValue,
		vtpDatabaseTakeOverPassword SnmpAdminString
		}

vtpDatabaseIndex OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A value assigned by the system which uniquely identifies
a VTP database in the local system."
	::= { vtpDatabaseEntry 1 }


vtpDatabaseName OBJECT-TYPE
	SYNTAX SnmpAdminString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The name of the database."
	::= { vtpDatabaseEntry 2 }


vtpDatabaseLocalMode OBJECT-TYPE
	SYNTAX INTEGER {
	client(1),
	server(2),
	transparent(3),
	off(4)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The local VTP mode for a particular database type
in this administrative domain.

- 'client' indicates that the local system is acting
as a VTP client of the database type.

- 'server' indicates that the local system is acting
as a VTP server of the database type.

- 'transparent' indicates that the local system does
not generate or listen to VTP messages of this 
database type, but forwards
messages. This mode can also be set by the device
itself when the size of database is too large for it
to hold in DRAM.

- 'off' indicates that the local system does not
generate, listen to or forward any VTP messages
of this database type.

The default mode is 'client' for the database type 
known to the local device and 'transparent' for the
unknown database type. "
	::= { vtpDatabaseEntry 3 }


vtpDatabaseRevNumber OBJECT-TYPE
	SYNTAX Gauge
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The current configuration revision number as known by the
local device for this VTP 3 database type in the management
domain.  This value is updated (if necessary) whenever a 
VTP advertisement for the database type is received 
or generated. When the database type is unknown to the 
local device or no VTP advertisement for the database
type is received or generated, its value is 0."
	::= { vtpDatabaseEntry 4 }


vtpDatabasePrimaryServer OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "There are two kinds of VTP version 3 servers for a certain
database type - the primary server and the secondary server.
When a local device is configured as a server for a certain
database type, it becomes secondary server by default.
Primary server is an operational role under which a
server can initiate or change the VTP configuration of the
database type.

A true(1) value indicates that the local device is the 
primary server of the database type in the management
domain. A false(2) value indicates that the local device
is not the primary server, or the database type is unknown
to the local device."
	::= { vtpDatabaseEntry 5 }


vtpDatabasePrimaryServerId OBJECT-TYPE
	SYNTAX SnmpAdminString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The unique identifier of the primary server in the 
management domain for the database type. 

If no primary server is discovered for the database
type, the object has a value of zero length string."
	::= { vtpDatabaseEntry 6 }


vtpDatabaseTakeOverPrimary OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "There are two kinds of VTP version 3 servers for a certain
database type - the primary server and the secondary server.
When a local device is configured as a server for a certain
database type, it becomes secondary server by default.
Primary server is an operational role under which a
server can initiate or change the VTP configuration of the
database type.

Setting this object to a true(1) value will advertise the
configuration of this database type to the whole domain.

In order to successfully setting this object to true(1),
the value of vtpDatabaseLocalMode must be server(2). Besides
that, when the VTP password is hidden from the configuration
file, the password (vtpDatabaseTakeOverPassword) which 
matches  the secret key (vtpAuthSecretKey) must be provided
in the same data packet. 

When read, the object always returns false(2)."
	::= { vtpDatabaseEntry 7 }


vtpDatabaseTakeOverPassword OBJECT-TYPE
	SYNTAX SnmpAdminString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "When read, this object always returns the value of a 
zero-length octet string.

In the case that the VTP password is hidden from the 
configuration and the local device intends
to take over the whole domain, this object must be 
set to the matching password with the secret key 
(vtpAuthSecretKey) in the same data packet as which 
the vtpDatabaseTakeOverPrimary is in. In all the 
other situations, setting a valid value to this object 
has no impact on the system."
	::= { vtpDatabaseEntry 8 }


vtpAuthentication OBJECT IDENTIFIER ::= { vtpMIBObjects 9 }

vtpAuthenticationTable OBJECT-TYPE
	SYNTAX SEQUENCE OF VtpAuthEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The table contains the authentication information of VTP
in which the local system participates.

The security mechanism of VTP relies on a secret key
that is used to alter the MD5 digest of the packets
transmitted on the wire.  The secret value is
created from a password that may be saved in plain text
in the configuration or hidden from the configuration.

The device creating or modifying the VTP configuration
signs it using the MD5 digest generated from the secret
key before advertising it. Other devices in the domain
receive this configuration use the same secret key
to accept it if correctly signed or drop it otherwise.

The user has the option to hide the password from the
configuration. Once the password is hidden, the secret
key generated from the password is shown in the 
configuration instead, and there is no other way to 
show the password in plain text again but clearing 
it or resetting it. 

In an un-trusted area, the password on a device can 
be configured without being unveiled. After that,
it has to be provided again by setting the same 
value to vtpDatabaseTakeOverPassword if the user 
wants to take over the whole VTP management domain
of the database type.

When managementDomainVersionInUse is version3(4), the 
authentication mechanism is common to all VTP
database type."
	::= { vtpAuthentication 1 }


vtpAuthEntry OBJECT-TYPE
	SYNTAX VtpAuthEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Information about the status of the VTP
authentication information in one domain."
	INDEX { managementDomainIndex  }

	::= { vtpAuthenticationTable 1 }

vtpAuthEntry ::=
	SEQUENCE {
		vtpAuthPassword SnmpAdminString,
		vtpAuthPasswordType INTEGER,
		vtpAuthSecretKey OCTET STRING
		}

vtpAuthPassword OBJECT-TYPE
	SYNTAX SnmpAdminString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "By default, this object has a value of a zero-length
character string and is considered to be not
configured.

The device uses the password to generate the 
secret key. It can be stored in the configuration in 
plain text or hidden from the configuration. If a VTP 
server intends to modify the database's configuration
in the domain but the password was hidden from the
configuration, the same password
(vtpDatabaseTakeOverPassword) as the hidden one
has to be provided.

When this object is set alone, vtpAuthPasswordType is
set to plaintext(1) automatically by the system.
Setting this object to a zero length character string
resets the password to its default value and the
password is considered as not configured.

This object is not allowed to be set at the same time
when  vtpAuthSecretKey is set.

When the vtpAuthPasswordType is hidden(2), this object 
will return a zero-length character string when read."
	::= { vtpAuthEntry 1 }


vtpAuthPasswordType OBJECT-TYPE
	SYNTAX INTEGER {
	plaintext(1),
	hidden(2)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "By default this object has the value as plaintext(1) 
and the VTP password is stored in the configuration
file in plain text.

Setting this object to hidden(2) will hide the
password from the configuration.

Once this object is set to hidden(2), it cannot
be set to plaintext(1) alone. However, it may
be set to plaintext(1) at the same time the
password is set."
	::= { vtpAuthEntry 2 }


vtpAuthSecretKey OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(0|16))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The device creating or modifying the VTP configuration
signs it using the MD5 digest generated from the secret
key before advertising it. Other devices in the domain
receiving this configuration use the same secret key
to accept it if it was correctly signed or drop it 
otherwise.

By default, the object has the value as a zero-length
string and this value is read only. It is set 
to this value automatically when the password 
(vtpAuthPassword) is set to a zero-length octet string.

The secret key can be either generated using
the password or configured by the user. Once
the secret key is configured by the user, it is
stored as a hexadecimal string in the device's
configuration and the password is considered to be
the secret key's matching password and hidden
from the configuration automatically.

This object is not allowed to be set at the same
time when vtpAuthPassword is set.

The secret key is overwritten by a newly generated
secret key when the password is re-configured."
	::= { vtpAuthEntry 3 }


vtpNotifications OBJECT IDENTIFIER ::= { ciscoVtpMIB 2 }

vtpNotificationsPrefix OBJECT IDENTIFIER ::= { vtpNotifications 0 }

vtpNotificationsObjects OBJECT IDENTIFIER ::= { vtpNotifications 1 }

vtpVlanPortLocalSegment OBJECT-TYPE
	SYNTAX INTEGER (0..65535)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The ring (segment) number in use on a 802.5 ring.  For
bridges supporting RFC 1525, this value is the same as given
by dot1dSrPortLocalSegment for the bridge port attached to
that ring.  When tokenRing VLANs are in use, each 'trNet'
VLAN can/does have a different instance of
dot1dSrPortLocalSegment for each physical port.  Note that
access to the particuler instance of dot1dSrPortLocalSegment
requires knowledge of how the agent supports the multiple
'contexts' required to implement RFC 1525 for multiple
VLANs; also note that the assignment of ifIndex values may
be different in different 'contexts'."
	::= { vtpNotificationsObjects 1 }


vtpMIBConformance OBJECT IDENTIFIER ::= { ciscoVtpMIB 3 }

vtpMIBCompliances OBJECT IDENTIFIER ::= { vtpMIBConformance 1 }

vtpMIBGroups OBJECT IDENTIFIER ::= { vtpMIBConformance 2 }

vtpBasicGroup OBJECT IDENTIFIER ::= { vtpMIBGroups 1 }

vtpVlanInfoGroup OBJECT IDENTIFIER ::= { vtpMIBGroups 13 }

vtpVlanInfoEditGroup OBJECT IDENTIFIER ::= { vtpMIBGroups 14 }

vtpStatsGroup OBJECT IDENTIFIER ::= { vtpMIBGroups 4 }

vtpTrunkPortGroup OBJECT IDENTIFIER ::= { vtpMIBGroups 5 }

vtpTrunkPortGroup2 OBJECT IDENTIFIER ::= { vtpMIBGroups 11 }

vtpTrunkPortGroup3 OBJECT IDENTIFIER ::= { vtpMIBGroups 15 }

vtpTrunkPruningGroup OBJECT IDENTIFIER ::= { vtpMIBGroups 7 }

vtpTrunkPruningGroup2 OBJECT IDENTIFIER ::= { vtpMIBGroups 10 }

vtpVersion2BasicGroup OBJECT IDENTIFIER ::= { vtpMIBGroups 12 }

vtpConfigNotificationsGroup OBJECT IDENTIFIER ::= { vtpMIBGroups 6 }

vtp4kVlanGroup OBJECT IDENTIFIER ::= { vtpMIBGroups 16 }

vtpDot1qTunnelGroup OBJECT IDENTIFIER ::= { vtpMIBGroups 17 }

vtpVlanIfIndexGroup OBJECT IDENTIFIER ::= { vtpMIBGroups 18 }

vtpVlanInfoEditGroup2 OBJECT IDENTIFIER ::= { vtpMIBGroups 19 }

vtp4kVlanGroupRev1 OBJECT IDENTIFIER ::= { vtpMIBGroups 20 }

vtpNotificationObjectsGroup OBJECT IDENTIFIER ::= { vtpMIBGroups 21 }

vtpDot1qTunnelGroup2 OBJECT IDENTIFIER ::= { vtpMIBGroups 22 }

vtpConfigNotificationsGroup2 OBJECT IDENTIFIER ::= { vtpMIBGroups 23 }

vtpVlanNotifEnabledGroup OBJECT IDENTIFIER ::= { vtpMIBGroups 24 }

vtpConfigNotificationsGroup3 OBJECT IDENTIFIER ::= { vtpMIBGroups 25 }

vtpConfigNotificationsGroup4 OBJECT IDENTIFIER ::= { vtpMIBGroups 26 }

vtpDiscoverGroup OBJECT IDENTIFIER ::= { vtpMIBGroups 27 }

vtpDatabaseGroup OBJECT IDENTIFIER ::= { vtpMIBGroups 28 }

vtpAuthGroup OBJECT IDENTIFIER ::= { vtpMIBGroups 29 }

vtpConfigNotificationsGroupRev1 OBJECT IDENTIFIER ::= { vtpMIBGroups 30 }

vtpConfigNotificationsGroup5 OBJECT IDENTIFIER ::= { vtpMIBGroups 31 }

vtpInternalVlanGrp OBJECT IDENTIFIER ::= { vtpMIBGroups 32 }

vtpConfigRevNumberError TRAP-TYPE
	ENTERPRISE vtpNotifications
	VARIABLES { managementDomainConfigRevNumber }
DESCRIPTION "A configuration revision number error notification
signifies that a device has incremented its
vtpConfigRevNumberErrors counter.

Generation of this notification is suppressed if the
vtpNotificationsEnabled has the value 'false'.

The device must throttle the generation of consecutive
vtpConfigRevNumberError notifications so that there is at
least a five-second gap between notification of this type.
When notification are throttled, they are dropped, not
queued for sending at a future time.  (Note that
'generating' a notification means sending to all configured
recipients.)"
	::= 1


vtpConfigDigestError TRAP-TYPE
	ENTERPRISE vtpNotifications
	VARIABLES { managementDomainConfigRevNumber }
DESCRIPTION "A configuration digest error notification signifies that a
device has incremented its vtpConfigDigestErrors counter.

Generation of this notification is suppressed if the
vtpNotificationsEnabled has the value 'false'.

The device must throttle the generation of consecutive
vtpConfigDigestError notifications so that there is at least
a five-second gap between notification of this type.  When
notification are throttled, they are dropped, not queued for
sending at a future time.  (Note that 'generating' a
notification means sending to all configured recipients.)"
	::= 2


vtpServerDisabled TRAP-TYPE
	ENTERPRISE vtpNotifications
	VARIABLES { managementDomainConfigRevNumber, vtpMaxVlanStorage }
DESCRIPTION "A VTP Server disabled notification is generated when the
local system is no longer able to function as a VTP Server
because the number of defined VLANs is greater than
vtpMaxVlanStorage.

Generation of this notification is suppressed if the
vtpNotificationsEnabled has the value 'false'."
	::= 3


vtpMtuTooBig TRAP-TYPE
	ENTERPRISE vtpNotifications
	VARIABLES { vlanTrunkPortManagementDomain, vtpVlanState }
DESCRIPTION "A VTP MTU tooBig notification is generated when a VLAN's
MTU size is larger than can be supported either:

- by one or more of its trunk ports:
the included vtpVlanState has the value
'mtuTooBigForTrunk' and the included
vlanTrunkPortManagementDomain is for the first (or only)
trunk port,
or

- by the device itself:
vtpVlanState has the value 'mtuTooBigForDevice' and any
instance of vlanTrunkPortManagementDomain is included.

Devices which have no trunk ports do not send vtpMtuTooBig
notifications.

Generation of this notification is suppressed if the
vtpNotificationsEnabled has the value 'false'."
	::= 4


vtpVersionOneDeviceDetected TRAP-TYPE
	ENTERPRISE vtpNotifications
	VARIABLES { vlanTrunkPortManagementDomain }
DESCRIPTION "A VTP version one device detected notification is
generated by a device when:

a) a management domain has been put into version 2 mode
(as accessed by managementDomainVersionInUse).
b) 15 minutes has passed since a).
c) a version 1 PDU is detected on a trunk on the device
that is in that management domain which has a lower
revision number than the current configuration."
	::= 6


vlanTrunkPortDynamicStatusChange TRAP-TYPE
	ENTERPRISE vtpNotifications
	VARIABLES { vlanTrunkPortDynamicStatus }
DESCRIPTION "A vlanTrunkPortDynamicStatusChange notification is
generated by a device when the value of
vlanTrunkPortDynamicStatus object has been changed."
	::= 7


vtpLocalModeChanged TRAP-TYPE
	ENTERPRISE vtpNotifications
	VARIABLES { managementDomainLocalMode }
DESCRIPTION "A vtpLocalModeChanged notification is generated 
by a device when the value of the object 
managementDomainLocalMode is changed."
	::= 8


vtpVersionInUseChanged TRAP-TYPE
	ENTERPRISE vtpNotifications
	VARIABLES { managementDomainVersionInUse }
DESCRIPTION "A vtpVersionInUseChanged notification is  
generated by a device when the value of the  
object managementDomainVersionInUse is 
changed."
	::= 9


vtpVlanCreated TRAP-TYPE
	ENTERPRISE vtpNotifications
	VARIABLES { vtpVlanName }
DESCRIPTION "A vtpVlanCreated notification is generated by a 
device when a VLAN is created. "
	::= 10


vtpVlanDeleted TRAP-TYPE
	ENTERPRISE vtpNotifications
	VARIABLES { vtpVlanName }
DESCRIPTION "A vtpVlanDeleted notification is generated by a
device when a VLAN is deleted. "
	::= 11


vtpVlanRingNumberConflict TRAP-TYPE
	ENTERPRISE vtpNotifications
	VARIABLES { vtpVlanRingNumber, ifIndex, vtpVlanPortLocalSegment }
DESCRIPTION "A VTP ring number configuration conflict notification is
generated if, and only at the time when, a device learns of
a conflict between:

a) the ring number (vtpVlanPortLocalSegment) being used on a
token ring segment attached to the port identified by
ifIndex, and

b) the VTP-obtained ring number (vtpVlanRingNumber) for the
VLAN identified by vtpVlanIndex.

When such a conflict occurs, the bridge port is put into an
administrative down position until the conflict is resolved
through local/network management intervention.

This notification is only applicable to VLANs of type
'tokenRing'."
	::= 12


END

