
-- *****************************************************************
-- Cisco VTP MIB
--
-- February, 1997 Chris Young
--    April, 2003  Wen Xu
--     July, 2003  Wen Xu
--   August, 2003  Wen Xu
-- November, 2003  Wen Xu
-- February, 2004  Wen Xu
--
-- Copyright (c) 1996-2002, 2003, 2004, 2006 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************


CISCO-VTP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    Counter32, IpAddress, Gauge32, Integer32, Unsigned32
        FROM SNMPv2-SMI
    TEXTUAL-CONVENTION,
    RowStatus, DisplayString, DateAndTime, TruthValue, 
    TestAndIncr, TimeStamp
        FROM SNMPv2-TC
    InterfaceIndex, ifIndex, InterfaceIndexOrZero
        FROM IF-MIB
    OwnerString
        FROM RMON-MIB
    ciscoMgmt
        FROM CISCO-SMI
    SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM SNMPv2-CONF;

ciscoVtpMIB MODULE-IDENTITY
    LAST-UPDATED "200602170000Z"
    ORGANIZATION "Cisco Systems, Inc."
    CONTACT-INFO
            "Cisco Systems
             Customer Service

             Postal: 170 W Tasman Drive
             San Jose, CA  95134
             USA

             Tel: +1 800 553-NETS

             E-mail: cs-wbu@cisco.com, 
                     cs-lan-switch-snmp@cisco.com"

    DESCRIPTION
            "The MIB module for entities implementing the VTP
            protocol and Vlan management."
    REVISION    "200602170000Z"
    DESCRIPTION
            "Removed the OwnerString TEXTUAL-CONVENTION and
             imported the same from RMON-MIB."
    REVISION    "200402110000Z"
    DESCRIPTION
            "Added 'dynamicGvrp(4)' for the TC VlanTypeExt."
    REVISION    "200311210000Z"
    DESCRIPTION
            "Add vtpInternalVlanGrp to configure internal 
             VLANs' allocation policy and show the owner 
             application names." 
    REVISION    "200308080000Z"
    DESCRIPTION
            "Split vtpConfigNotificationsGroup into two groups:
             vtpConfigNotificationsGroupRev1 and 
             vtpConfigNotificationsGroup5. Write a new compliance
             statement to list vtpConfigNotificationsGroupRev1 in
             instead of vtpConfigNotificationsGroup in the 
             MANDATORY-GROUPS."
    REVISION    "200307110000Z"
    DESCRIPTION
            "Modify the description of the TC VlanIndex." 
    REVISION    "200304160000Z"
    DESCRIPTION
            "Add support for VTP version 3 features.
             -- Add enumerators and modify the 'DESCRIPTION' of 6 
                existing objects: 
                vtpVersion, managementDomainLocalMode,
                managementDomainConfigRevNumber, 
                managementDomainLastUpdater,
                managementDomainLastChange,  
                managementDomainVersionInUse.
             -- Add 3 new groups: vtpAuthGroup, 
                vtpDiscoverGroup, vtpDatabaseGroup."
    REVISION    "200204100000Z"
    DESCRIPTION
            "-- Add 4 new notifications/traps vtpLocalModeChanged, 
                vtpVersionInUseChanged, vtpVlanCreated and 
                vtpVlanDeleted. 
             -- Add 2 new objects vtpVlanCreatedNotifEnabled and 
                vtpVlanDeletedNotifEnabled to control the
                generation of vtpVlanCreated and vtpVlanDeleted.
             -- Use vtpNotificationsEnabled to control the
                generation of vtpLocalModeChanged and
                vtpVersionInUseChanged by grouping them in a
                new group vtpConfigNotificationsGroup2.  
             -- Deprecate the object vlanTrunkPortsDot1qTag and
                its related group. "
    REVISION    "200202280000Z"
    DESCRIPTION
            "Deprecate the object, vlanTrunkPortDot1qTunnel."
    REVISION    "200108030000Z"
    DESCRIPTION
            "Add a new off(4) mode to managementDomainLocalMode."
    REVISION    "200102260000Z"
    DESCRIPTION
            "Deprecate read-only object vtpVlanEditTypeExt and
             add a new read-create object vtpVlanEditTypeExt2.
             Enable Notification groups."
    REVISION    "200102120000Z"
    DESCRIPTION
            "Added Remote SPAN (RSPAN) VLAN feature, VLAN 
            management features without supporting VTP protocol
            and a new object to handle one-VLAN-editing." 
    REVISION    "200009190000Z"
    DESCRIPTION 
            "Added the mapping from VLAN ID to its corresponding
            ifIndex" 
    REVISION    "200004100000Z"
    DESCRIPTION
            "Added 4k VLAN editing and Dot1qTunnel support"
    REVISION    "200001060000Z"
    DESCRIPTION
            "Added 4k VLAN support"
    REVISION    "9902251130Z"
    DESCRIPTION
            "Added import of NOTIFICATION-GROUP"
    REVISION    "9901051130Z"
    DESCRIPTION
            "Added support for encapsulation type notApplicable"
    REVISION    "9805191130Z"
    DESCRIPTION
            "Added support for encapsulation type negotiation"
    REVISION    "9708081138Z"
    DESCRIPTION
            "Added Backup CRF object"
    REVISION    "9705091130Z"
    DESCRIPTION
            "Added ARE and STE hop counts."
    REVISION    "9702241115Z"
    DESCRIPTION
            "Added support for turning on VTP for Trunk cards."
    REVISION    "9701271730Z"
    DESCRIPTION
            "Added support for version 2 features."
    REVISION    "9609161230Z"
    DESCRIPTION
            "Updated the Token-Ring support."
    REVISION    "9607171230Z"
    DESCRIPTION
            "Updated to include objects in support of VTP pruning."
    REVISION    "9601181820Z"
    DESCRIPTION
            "Initial version of this MIB module."
    ::= { ciscoMgmt 46 }

vtpMIBObjects OBJECT IDENTIFIER ::= { ciscoVtpMIB 1 }

-- Textual Conventions

VlanIndex ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "The VLAN-id of a VLAN on ISL or 802.1q trunks.

             Modification of default parameters is allowed.
             Implementations are allowed to restrict
             the range of VLANs.

             For entities support up to 1024 VLANS.
             VLANs above 1000 are reserved for default VLANs and
             future use. Modification of default parameters is
             allowed. Creation or deletion of VLANs above 1000 is not
             allowed.

             For a new object which needs the vlan-id of a VLAN as
             its SYNTAX, it is suggested to import VlanIndex from
             Q-BRIDGE-MIB instead of importing this TC here in 
             CISCO-VTP-MIB."   
    SYNTAX   Integer32 (0..4095)

ManagementDomainIndex ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "An arbitrary integer-value to uniquely identify a
            management domain on the local system."
    SYNTAX     Integer32 (1..255)

VlanType ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "The type of a VLAN.

            Note that the 'ethernet' type, is used for any ethernet or
            802.3 VLAN, including an ATM Ethernet ELAN; and the
            'tokenRing' ('trCrf') type is used for each VLAN
            representing a single logical 802.5 ring including an ATM
            Token-Ring ELAN.

            The 'trCrf' type is used for token ring VLANs made up of
            (at most) one transparently bridged LAN segment.

            The 'trBrf' type is used for VLANs which represent the
            scope of many 'trCrf' VLANs all connected together via
            source route bridging.  The token ring 'trBrf' can be said
            to represent the bridged broadcast domain."
    SYNTAX     INTEGER {
                   ethernet(1),
                   fddi(2),
                   tokenRing(3), -- also known as trCrf
                   fddiNet(4),
                   trNet(5), -- also known as trBrf
                   deprecated(6)
               }

VlanTypeExt ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "The additional type information of VLAN.
             vtpmanageable(0)    An user defined VLAN which is 
                                 manageable through VTP protocol.
                                 The value of this bit cannot be 
                                 changed.
             internal(1)         An internal VLAN created by the device.
                                 Internal VLANs cannot be created or
                                 deleted. The value of this bit cannot
                                 be changed.
             reserved(2)         A VLAN reserved by the device.
                                 Reserved VLANs cannot be created or
                                 deleted. The value of this bit cannot
                                 be changed.
             rspan(3)            A VLAN created to exclusively carry
                                 the traffic for a Remote Switched
                                 Port Analyzer (RSPAN). This bit can
                                 only be set or cleared during the
                                 VLAN creation. Once the VLAN is
                                 created, the value of this bit cannot
                                 be modified.
             dynamicGvrp(4)      A VLAN dynamically created by GVRP
                                 (GARP VLAN Registration Protocol)
                                 propagation. The value of this bit 
                                 cannot be changed.  
            "
    REFERENCE    "RFC2674."
    SYNTAX     BITS {
                   vtpmanageable(0),
                   internal(1),
                   reserved(2),
                   rspan(3), 
                   dynamicGvrp(4)
               }

--
-- VTP status
--

vtpStatus   OBJECT IDENTIFIER ::= { vtpMIBObjects 1 }

vtpVersion OBJECT-TYPE
    SYNTAX     INTEGER { one(1), two(2), none(3), three(4) }
    MAX-ACCESS read-only
    STATUS     current
    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     Integer32 (-1..1023)
    MAX-ACCESS read-only
    STATUS     current
    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
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "An indication of whether the notifications/traps defined by
            the vtpConfigNotificationsGroup and 
            vtpConfigNotificationsGroup2 are enabled."
    ::= { vtpStatus 3 }

vtpVlanCreatedNotifEnabled OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    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
    MAX-ACCESS read-write
    STATUS     current
    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 }

--
-- VTP Management Domains
--

vlanManagementDomains   OBJECT IDENTIFIER ::= { vtpMIBObjects 2 }

managementDomainTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ManagementDomainEntry
    MAX-ACCESS not-accessible
    STATUS     current
    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
    MAX-ACCESS not-accessible
    STATUS     current
    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     ManagementDomainIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An arbitrary value to uniquely identify the management
            domain on the local system."
    ::= { managementDomainEntry 1 }

managementDomainName OBJECT-TYPE
    SYNTAX     DisplayString (SIZE (0..32))
    MAX-ACCESS read-create
    STATUS     current
    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) }
    MAX-ACCESS read-create
    STATUS     current
    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     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    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
    MAX-ACCESS read-only
    STATUS     current
    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
    MAX-ACCESS read-only
    STATUS     current
    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
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The status of this conceptual row."
    ::= { managementDomainEntry 7 }

managementDomainTftpServer OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-create
    STATUS     current
    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
    MAX-ACCESS read-create
    STATUS     current
    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) }
    MAX-ACCESS read-create
    STATUS     current
    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) }
    MAX-ACCESS read-create
    STATUS     current
    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 }

--
-- VLAN information
--

vlanInfo   OBJECT IDENTIFIER ::= { vtpMIBObjects 3 }

-- Global information on current VLANs
--
-- This information is maintained by VTP Clients and VTP Servers

vtpVlanTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF VtpVlanEntry
    MAX-ACCESS not-accessible
    STATUS     current
    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
    MAX-ACCESS not-accessible
    STATUS     current
    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     VlanIndex
    MAX-ACCESS not-accessible
    STATUS     current
    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) }
    MAX-ACCESS read-only
    STATUS     current
    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     VlanType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The type of this VLAN."
    ::= { vtpVlanEntry 3 }

vtpVlanName OBJECT-TYPE
    SYNTAX     DisplayString (SIZE (1..32))
    MAX-ACCESS read-only
    STATUS     current
    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     Integer32 (1500..18190)
    MAX-ACCESS read-only
    STATUS     current
    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))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of the 802.10 SAID field for this VLAN."
    ::= { vtpVlanEntry 6 }

vtpVlanRingNumber OBJECT-TYPE
    SYNTAX     Integer32 (0..4095)
    MAX-ACCESS read-only
    STATUS     current
    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     Integer32 (0..15)
    MAX-ACCESS read-only
    STATUS     current
    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) }
     MAX-ACCESS read-only
     STATUS     current
     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     VlanIndex
    MAX-ACCESS read-only
    STATUS     current
    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     VlanIndex
    MAX-ACCESS read-only
    STATUS     current
    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     VlanIndex
    MAX-ACCESS read-only
    STATUS     current
    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) }
    MAX-ACCESS read-only
    STATUS     current
    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     Integer32 (1..13)
    MAX-ACCESS read-only
    STATUS     current
    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     Integer32 (1..13)
    MAX-ACCESS read-only
    STATUS     current
    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
    MAX-ACCESS read-only
    STATUS     current
    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     VlanTypeExt
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The additional type information of this VLAN."
    ::= { vtpVlanEntry 17 }

vtpVlanIfIndex OBJECT-TYPE
    SYNTAX        InterfaceIndexOrZero
    MAX-ACCESS    read-only
    STATUS        current
    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) }
    MAX-ACCESS read-write
    STATUS     current
    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
    MAX-ACCESS not-accessible
    STATUS     current
    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
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "Information about one current internal 
             VLAN."
    INDEX      { managementDomainIndex, vtpVlanIndex }
    ::= { vtpInternalVlanTable 1 }

VtpInternalVlanEntry ::= SEQUENCE {
    vtpInternalVlanOwner       SnmpAdminString
}

vtpInternalVlanOwner OBJECT-TYPE
    SYNTAX     SnmpAdminString 
    MAX-ACCESS read-only
    STATUS     current
    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 }

-- Modification of Global VLAN Information
--
-- To change the global information on current VLANs, including
-- creating, modifying or deleting them,
--   . the current VLAN information is copied to the "Edit buffer",
--   . the information in the Edit buffer is modified as appropriate,
--   . an 'apply' is invoked to attempt to instanciate the modified
--     contents of the Edit Buffer as the new global VLAN information.
--
-- Only one manager can edit the Edit Buffer at a time.  So, a
-- request to copy the current VLAN information into the Edit Buffer
-- must fail if the Edit Buffer is already in use (i.e., is not empty).
-- Thus, concurrent attempts by multiple managers to gain use of the
-- Edit Buffer are resolved according to whichever of them succeeds
-- in performing a successful copy.  An OwnerString object provides
-- information on which manager currently has access.
--
-- Ownership of the Edit Buffer terminates when a NMS explicitly
-- releases it, or when a deadman-timer expires.  The deadman-timer
-- has a fixed expiry interval of 5 minutes.  The deadman-timer is
-- automatically started on a successful copy operation.  The
-- restartTimer operation allows an NMS to restart the deadman-timer
-- if it wishes to retain ownership of the Edit Buffer for longer
-- than 5 minutes.  The deadman-timer ceases when the apply operation
-- is invoked, and is restarted when the apply operation terminates.
-- Restarting the deadman-timer after termination of the apply
-- operation allows the results of the apply operation to be retained
-- until the requesting manager has retrieved them, but for only a
-- limited amount of time.
--
-- When managementDomainVersionInUse is version1(1) or version2(2),
-- the local device with managementDomainLocalMode as server(2) 
-- could change the global VLAN configuration by editing the VLAN 
-- information in the edit buffer and then apply it. However,
-- when managementDomainVersionInUse is in version3(4), there  
-- are two different VTP servers, the primary server and the
-- secondary server. The global VLAN configuration could only
-- be changed by a primary server for VLAN database. The 
-- secondary server may still do the 'copy' operation and edit
-- the VLAN information in the edit buffer. But in order to make
-- a possibly successful 'apply' operation, the local device must 
-- be a VLAN database primary server. Otherwise, the 'apply' will 
-- fail and vtpVlanApplyStatus will be set to the error status 
-- 'notPrimaryServer'.

vlanEdit   OBJECT IDENTIFIER ::= { vtpMIBObjects 4 }

vtpEditControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF VtpEditControlEntry
    MAX-ACCESS not-accessible
    STATUS     current
    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
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "Control information for editing the VLANs in one management
            domain."
    AUGMENTS  { managementDomainEntry }
    ::= { 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)
                       }
    MAX-ACCESS read-create
    STATUS     current
    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)
                       }
    MAX-ACCESS read-only
    STATUS     current
    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
    MAX-ACCESS read-create
    STATUS     current
    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     Gauge32
    MAX-ACCESS read-create
    STATUS     current
    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     VlanIndex
    MAX-ACCESS read-only
    STATUS     current
    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
    MAX-ACCESS not-accessible
    STATUS     current
    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
    MAX-ACCESS not-accessible
    STATUS     current
    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     VlanIndex
    MAX-ACCESS not-accessible
    STATUS     current
    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)
               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The state which this VLAN would have."
    DEFVAL     { operational }
    ::= { vtpVlanEditEntry 2 }

vtpVlanEditType OBJECT-TYPE
    SYNTAX     VlanType
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The type which this VLAN would have.
            An implementation may restrict access to this object."
    DEFVAL     { ethernet }
    ::= { vtpVlanEditEntry 3 }

vtpVlanEditName OBJECT-TYPE
    SYNTAX     DisplayString (SIZE (1..32))
    MAX-ACCESS read-create
    STATUS     current
    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     Integer32 (1500..18190)
    MAX-ACCESS read-create
    STATUS     current
    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."
    DEFVAL     { 1500 }
    ::= { vtpVlanEditEntry 5 }

vtpVlanEditDot10Said OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (4))
    MAX-ACCESS read-create
    STATUS     current
    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     Integer32 (0..4095)
    MAX-ACCESS read-create
    STATUS     current
    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     Integer32 (0..15)
    MAX-ACCESS read-create
    STATUS     current
    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) }
     MAX-ACCESS read-create
     STATUS     current
     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     VlanIndex
    MAX-ACCESS read-create
    STATUS     current
    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
    MAX-ACCESS read-create
    STATUS     current
    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     VlanIndex
    MAX-ACCESS read-create
    STATUS     current
    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."
    DEFVAL     { 0 }
    ::= { vtpVlanEditEntry 12 }

vtpVlanEditTranslationalVlan2 OBJECT-TYPE
    SYNTAX     VlanIndex
    MAX-ACCESS read-create
    STATUS     current
    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."
    DEFVAL     { 0 }
    ::= { vtpVlanEditEntry 13 }

vtpVlanEditBridgeType OBJECT-TYPE
    SYNTAX     INTEGER { srt(1), srb(2) }
    MAX-ACCESS read-create
    STATUS     current
    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     Integer32 (1..13)
    MAX-ACCESS read-create
    STATUS     current
    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     Integer32 (1..13)
    MAX-ACCESS read-create
    STATUS     current
    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
    MAX-ACCESS read-create
    STATUS     current
    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     VlanTypeExt
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The additional type information of this VLAN."
    ::= { vtpVlanEditEntry 18 }

vtpVlanEditTypeExt2 OBJECT-TYPE
    SYNTAX     VlanTypeExt
    MAX-ACCESS read-create
    STATUS     current
    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 }

--
-- VTP Statistics
--

vtpStats      OBJECT IDENTIFIER ::= { vtpMIBObjects 5 }

vtpStatsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF VtpStatsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A table of VTP statistics."
    ::= { vtpStats 1 }

vtpStatsEntry OBJECT-TYPE
    SYNTAX     VtpStatsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "VTP statistics for one management domain."
    AUGMENTS  { managementDomainEntry }
    ::= { vtpStatsTable 1 }

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

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

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

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

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

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

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

vtpConfigRevNumberErrors  OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    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     Counter32
    MAX-ACCESS read-only
    STATUS     current
    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 }

-- Trunk Ports

vlanTrunkPorts   OBJECT IDENTIFIER ::= { vtpMIBObjects 6 }

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

vlanTrunkPortEntry OBJECT-TYPE
    SYNTAX     VlanTrunkPortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    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
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The value of ifIndex for the interface corresponding to
            this trunk port."
    ::= { vlanTrunkPortEntry 1 }

vlanTrunkPortManagementDomain OBJECT-TYPE
    SYNTAX     ManagementDomainIndex
    MAX-ACCESS read-create
    STATUS     current
    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) }
    MAX-ACCESS read-create
    STATUS     current
    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))
    MAX-ACCESS read-create
    STATUS     current
    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     VlanIndex
    MAX-ACCESS read-create
    STATUS     current
    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
    MAX-ACCESS read-create
    STATUS     current
    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     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of VTP Join messages received on this trunk
            port."
    ::= { vlanTrunkPortEntry 7 }

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

vlanTrunkPortOldAdverts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    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))
    MAX-ACCESS read-create
    STATUS     current
    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))
    MAX-ACCESS read-only
    STATUS     current
    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))
    MAX-ACCESS read-only
    STATUS     current
    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) }
    MAX-ACCESS read-create
    STATUS     current
    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) }
    MAX-ACCESS read-only
    STATUS     current
    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
    MAX-ACCESS read-create
    STATUS     current
    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) }
    MAX-ACCESS read-only
    STATUS     current
    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))
    MAX-ACCESS read-create
    STATUS     current
    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))
    MAX-ACCESS read-create
    STATUS     current
    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))
    MAX-ACCESS read-create
    STATUS     current
    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))
    MAX-ACCESS read-create
    STATUS     current
    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))
    MAX-ACCESS read-create
    STATUS     current
    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))
    MAX-ACCESS read-create
    STATUS     current
    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))
    MAX-ACCESS read-only
    STATUS     current
    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))
    MAX-ACCESS read-only
    STATUS     current
    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))
    MAX-ACCESS read-only
    STATUS     current
    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))
    MAX-ACCESS read-only
    STATUS     current
    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))
    MAX-ACCESS read-only
    STATUS     current
    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))
    MAX-ACCESS read-only
    STATUS     current
    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) }
    MAX-ACCESS  read-create
    STATUS      deprecated
    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"
    DEFVAL { disabled }
    ::= { vlanTrunkPortEntry 29 }

vlanTrunkPortSetSerialNo OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    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
    MAX-ACCESS read-write
    STATUS     deprecated
    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"
    DEFVAL     { false }
    ::= { vlanTrunkPorts 3 }


vtpDiscover OBJECT IDENTIFIER ::= { vtpMIBObjects 7 }

vtpDiscoverTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF VtpDiscoverEntry
    MAX-ACCESS not-accessible
    STATUS     current
    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
    MAX-ACCESS not-accessible
    STATUS     current
    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)
                          }
    MAX-ACCESS    read-write
    STATUS        current
    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)
                       }
    MAX-ACCESS read-only
    STATUS     current
    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
    MAX-ACCESS read-only
    STATUS     current
    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
    MAX-ACCESS not-accessible
    STATUS     current
    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
    MAX-ACCESS not-accessible
    STATUS     current
    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     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    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 (SIZE(0..64))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The database name associated with the 
            discovered VTP member." 
    ::= { vtpDiscoverResultEntry 2 }

vtpDiscoverResultConflicting OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    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 (SIZE(0..64))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The unique identifier of the device for this VTP member."
    ::= { vtpDiscoverResultEntry 4 }

vtpDiscoverResultPrimaryServer OBJECT-TYPE
    SYNTAX     SnmpAdminString (SIZE(0..64))
    MAX-ACCESS read-only
    STATUS     current
    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     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    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 (SIZE(0..64))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "sysName of the VTP member."
    ::= { vtpDiscoverResultEntry 7 } 

vtpDatabase OBJECT IDENTIFIER ::= { vtpMIBObjects 8 }

vtpDatabaseTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF VtpDatabaseEntry
    MAX-ACCESS not-accessible
    STATUS     current
    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
    MAX-ACCESS not-accessible
    STATUS     current
    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     Unsigned32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A value assigned by the system which uniquely identifies
            a VTP database in the local system."
    ::= { vtpDatabaseEntry 1 }

vtpDatabaseName OBJECT-TYPE
    SYNTAX     SnmpAdminString (SIZE(0..64))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The name of the database."
    ::= { vtpDatabaseEntry 2 }

vtpDatabaseLocalMode OBJECT-TYPE
    SYNTAX INTEGER { client(1),
                     server(2),
                     transparent(3),
                     off(4) 
                   }
    MAX-ACCESS read-write
    STATUS     current
    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     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    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
    MAX-ACCESS read-only
    STATUS     current
    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 (SIZE(0..64))
    MAX-ACCESS read-only
    STATUS     current
    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
    MAX-ACCESS read-write
    STATUS     current
    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 (SIZE (0..64))
    MAX-ACCESS read-write
    STATUS     current
    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
    MAX-ACCESS not-accessible
    STATUS     current
    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
    MAX-ACCESS not-accessible
    STATUS     current
    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 (SIZE (0..64))
    MAX-ACCESS read-write
    STATUS     current
    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)
                       }

    MAX-ACCESS read-write
    STATUS     current
    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))
    MAX-ACCESS read-write
    STATUS     current
    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 }
    
-- VTP notifications

vtpNotifications   OBJECT IDENTIFIER ::= { ciscoVtpMIB 2 }
vtpNotificationsPrefix
                   OBJECT IDENTIFIER ::= { vtpNotifications 0 }
vtpNotificationsObjects
                   OBJECT IDENTIFIER ::= { vtpNotifications 1 }

vtpConfigRevNumberError NOTIFICATION-TYPE
    OBJECTS     { managementDomainConfigRevNumber }
    STATUS      current
    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.)"
    ::= { vtpNotificationsPrefix 1 }

vtpConfigDigestError NOTIFICATION-TYPE
    OBJECTS     { managementDomainConfigRevNumber }
    STATUS      current
    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.)"
    ::= { vtpNotificationsPrefix 2 }

vtpServerDisabled NOTIFICATION-TYPE
    OBJECTS     { managementDomainConfigRevNumber, vtpMaxVlanStorage }
    STATUS      current
    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'."
    ::= { vtpNotificationsPrefix 3 }

vtpMtuTooBig NOTIFICATION-TYPE
    OBJECTS     { vlanTrunkPortManagementDomain, vtpVlanState }
    STATUS      current
    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'."
    ::= { vtpNotificationsPrefix 4 }

vtpVersionOneDeviceDetected NOTIFICATION-TYPE
    OBJECTS     { vlanTrunkPortManagementDomain }
    STATUS      current
    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."
    ::= { vtpNotificationsPrefix 6 }

vlanTrunkPortDynamicStatusChange  NOTIFICATION-TYPE
    OBJECTS         {vlanTrunkPortDynamicStatus}
    STATUS          current
    DESCRIPTION
            "A vlanTrunkPortDynamicStatusChange notification is
            generated by a device when the value of
            vlanTrunkPortDynamicStatus object has been changed."
    ::= { vtpNotificationsPrefix 7 }

vtpLocalModeChanged NOTIFICATION-TYPE
    OBJECTS         {managementDomainLocalMode}
    STATUS          current
    DESCRIPTION
            "A vtpLocalModeChanged notification is generated 
            by a device when the value of the object 
            managementDomainLocalMode is changed." 
    ::= { vtpNotificationsPrefix 8 }

vtpVersionInUseChanged NOTIFICATION-TYPE
    OBJECTS         {managementDomainVersionInUse}
    STATUS          current
    DESCRIPTION
            "A vtpVersionInUseChanged notification is  
            generated by a device when the value of the  
            object managementDomainVersionInUse is 
            changed."
    ::= { vtpNotificationsPrefix 9 }


vtpVlanCreated  NOTIFICATION-TYPE
    OBJECTS         {vtpVlanName}
    STATUS          current
    DESCRIPTION
            "A vtpVlanCreated notification is generated by a 
            device when a VLAN is created. "
    ::= { vtpNotificationsPrefix 10 }

vtpVlanDeleted  NOTIFICATION-TYPE
    OBJECTS         {vtpVlanName}
    STATUS          current
    DESCRIPTION
            "A vtpVlanDeleted notification is generated by a
            device when a VLAN is deleted. "
    ::= { vtpNotificationsPrefix 11 }

vtpVlanRingNumberConflict NOTIFICATION-TYPE
    OBJECTS     { vtpVlanRingNumber,
                  ifIndex, vtpVlanPortLocalSegment }
    STATUS      current
    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'."
    ::= { vtpNotificationsPrefix 12 }

vtpVlanPortLocalSegment OBJECT-TYPE
    SYNTAX     Integer32 (0..65535)
    MAX-ACCESS accessible-for-notify
    STATUS     current
    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 }

-- Conformance Information

vtpMIBConformance
               OBJECT IDENTIFIER ::= { ciscoVtpMIB 3 }

vtpMIBCompliances
               OBJECT IDENTIFIER ::= { vtpMIBConformance 1 }
vtpMIBGroups   OBJECT IDENTIFIER ::= { vtpMIBConformance 2 }

-- compliance statements

vtpMIBCompliance MODULE-COMPLIANCE
    STATUS  deprecated
    DESCRIPTION
            "The compliance statement for VTP implementations."
    MODULE  -- this module
        MANDATORY-GROUPS { vtpBasicGroup,
                           vtpVlanInfoGroup,
--                         vtpConfigNotificationsGroup,
                           vtpStatsGroup,
                           vtpTrunkPortGroup
                         }

        OBJECT       managementDomainRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortManagementDomain
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortEncapsulationType
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortNativeVlan
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        GROUP        vtpVlanInfoEditGroup
        DESCRIPTION
            "This group must be implemented by VTP Servers.
            VTP Clients need not implement these objects, and
            must not allow VLANs to be created, modified, or
            destroyed using these objects."

    ::= { vtpMIBCompliances 1 }

vtpMIBCompliance2 MODULE-COMPLIANCE
    STATUS  deprecated
    DESCRIPTION
            "The compliance statement for VTP implementations."
    MODULE  -- this module
        MANDATORY-GROUPS { vtpBasicGroup,
                           vtpVlanInfoGroup,
--                         vtpConfigNotificationsGroup,
                           vtpStatsGroup,
                           vtpTrunkPortGroup
                         }

        OBJECT       managementDomainRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortManagementDomain
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortEncapsulationType
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortNativeVlan
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        GROUP        vtpVlanInfoEditGroup
        DESCRIPTION
            "This group must be implemented by VTP Servers.
            VTP Clients need not implement these objects, and
            must not allow VLANs to be created, modified, or
            destroyed using these objects."

        GROUP        vtp4kVlanGroup
        DESCRIPTION
            "This group must be implemented by the VTP Servers
            which support the range of VlanIndex between 1024
            and 4095."
    ::= { vtpMIBCompliances 2 }

vtpMIBCompliance3 MODULE-COMPLIANCE
    STATUS  deprecated 
    DESCRIPTION
            "The compliance statement for VTP implementations."
    MODULE  -- this module
        MANDATORY-GROUPS { vtpBasicGroup,
                           vtpVlanInfoGroup,
--                         vtpConfigNotificationsGroup,
                           vtpStatsGroup,
                           vtpTrunkPortGroup
                         }

        OBJECT       managementDomainRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortManagementDomain
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortEncapsulationType
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortNativeVlan
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        GROUP        vtpVlanInfoEditGroup
        DESCRIPTION
            "This group must be implemented by VTP Servers.
            VTP Clients need not implement these objects, and
            must not allow VLANs to be created, modified, or
            destroyed using these objects."

        GROUP        vtp4kVlanGroup
        DESCRIPTION
            "This group must be implemented by the VTP Servers
            which support the range of VlanIndex between 1024
            and 4095."

        GROUP        vtpDot1qTunnelGroup
        DESCRIPTION
             "This group is mandatory for all the ports which
              implement dot1qtunnel feature."

        OBJECT       vlanTrunkPortDot1qTunnel
        MIN-ACCESS   read-only
        DESCRIPTION
               "This object is read-only for interface which doesn't
                support dot1q tunnel feature."

    ::= { vtpMIBCompliances 3 }

vtpMIBCompliance4 MODULE-COMPLIANCE
    STATUS  deprecated
    DESCRIPTION
            "The compliance statement for VTP implementations."
    MODULE  -- this module
        MANDATORY-GROUPS { vtpBasicGroup,
                           vtpVlanInfoGroup,
--                         vtpConfigNotificationsGroup,
                           vtpStatsGroup,
                           vtpTrunkPortGroup
                         }

        OBJECT       managementDomainRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortManagementDomain
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortEncapsulationType
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortNativeVlan
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        GROUP        vtpVlanInfoEditGroup
        DESCRIPTION
            "This group must be implemented by VTP Servers.
            VTP Clients need not implement these objects, and
            must not allow VLANs to be created, modified, or
            destroyed using these objects."

        GROUP        vtp4kVlanGroup
        DESCRIPTION
            "This group must be implemented by the VTP Servers
            which support the range of VlanIndex between 1024
            and 4095."

        GROUP        vtpDot1qTunnelGroup
        DESCRIPTION
             "This group is mandatory for all the ports which
              implement dot1qtunnel feature."

        OBJECT       vlanTrunkPortDot1qTunnel
        MIN-ACCESS   read-only
        DESCRIPTION
               "This object is read-only for interface which doesn't
                support dot1q tunnel feature."

        GROUP        vtpVlanIfIndexGroup
        DESCRIPTION
             "This group is an optional group containing
             objects providing information about the mapping
             of VLAN ID to its corresponding IfIndex." 

    ::= { vtpMIBCompliances 4 }

vtpMIBCompliance5 MODULE-COMPLIANCE
    STATUS  deprecated
    DESCRIPTION
            "The compliance statement for VTP implementations."
    MODULE  -- this module
        MANDATORY-GROUPS { vtpBasicGroup,
                           vtpVlanInfoGroup,
--                         vtpConfigNotificationsGroup,
                           vtpStatsGroup,
                           vtpTrunkPortGroup,
                           vtpVersion2BasicGroup
                         }

        OBJECT       managementDomainRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       managementDomainName
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion 
                     is none(3)." 

        OBJECT       managementDomainLocalMode
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion 
                     is none(3)."

        OBJECT       managementDomainTftpServer
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion 
                     is none(3)."

        OBJECT       managementDomainTftpPathname
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion 
                     is none(3)."

        OBJECT       managementDomainVersionInUse
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion
                     is none(3)." 

        OBJECT       vlanTrunkPortManagementDomain
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortEncapsulationType
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortNativeVlan
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        GROUP        vtpVlanInfoEditGroup
        DESCRIPTION
            "This group must be implemented by VTP Servers.
            VTP Clients need not implement these objects, and
            must not allow VLANs to be created, modified, or
            destroyed using these objects."

        GROUP        vtp4kVlanGroup
        DESCRIPTION
            "This group must be implemented by the VTP Servers
            which support the range of VlanIndex between 1024
            and 4095."

        GROUP        vtpDot1qTunnelGroup
        DESCRIPTION
             "This group is mandatory for all the ports which
              implement dot1qtunnel feature."

        OBJECT       vlanTrunkPortDot1qTunnel
        MIN-ACCESS   read-only
        DESCRIPTION
               "This object is read-only for interface which doesn't
                support dot1q tunnel feature."

        GROUP        vtpVlanIfIndexGroup
        DESCRIPTION
             "This group is an optional group containing
             objects providing information about the mapping
             of VLAN ID to its corresponding IfIndex." 
        
        GROUP        vtpVlanInfoEditGroup2 
        DESCRIPTION
            "This group is mandatory for devices which only support
            one VLAN editing for each 'apply' operation."

    ::= { vtpMIBCompliances 5 }
    
vtpMIBCompliance6 MODULE-COMPLIANCE
    STATUS  deprecated
    DESCRIPTION
            "The compliance statement for VTP implementations."
    MODULE  -- this module
        MANDATORY-GROUPS { vtpBasicGroup,
                           vtpVlanInfoGroup,
                           vtpConfigNotificationsGroup,
                           vtpStatsGroup,
                           vtpTrunkPortGroup,
                           vtpVersion2BasicGroup,
                           vtpNotificationObjectsGroup
                         }

        OBJECT       managementDomainRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       managementDomainName
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion 
                     is none(3)." 

        OBJECT       managementDomainLocalMode
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion 
                     is none(3)."

        OBJECT       managementDomainTftpServer
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion 
                     is none(3)."

        OBJECT       managementDomainTftpPathname
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion 
                     is none(3)."

        OBJECT       managementDomainVersionInUse
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion
                     is none(3)." 

        OBJECT       vlanTrunkPortManagementDomain
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortEncapsulationType
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortNativeVlan
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        GROUP        vtpVlanInfoEditGroup
        DESCRIPTION
            "This group must be implemented by VTP Servers.
            VTP Clients need not implement these objects, and
            must not allow VLANs to be created, modified, or
            destroyed using these objects."

        GROUP        vtp4kVlanGroupRev1
        DESCRIPTION
            "This group must be implemented by the VTP Servers
            which support the range of VlanIndex between 1024
            and 4095."

        OBJECT       vtpVlanEditTypeExt2
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        GROUP        vtpDot1qTunnelGroup
        DESCRIPTION
             "This group is mandatory for all the ports which
              implement dot1qtunnel feature."

        OBJECT       vlanTrunkPortDot1qTunnel
        MIN-ACCESS   read-only
        DESCRIPTION
               "This object is read-only for interface which doesn't
                support dot1q tunnel feature."

        GROUP        vtpVlanIfIndexGroup
        DESCRIPTION
             "This group is an optional group containing
             objects providing information about the mapping
             of VLAN ID to its corresponding IfIndex." 
        
        GROUP        vtpVlanInfoEditGroup2 
        DESCRIPTION
            "This group is mandatory for devices which only support
            one VLAN editing for each 'apply' operation."

    ::= { vtpMIBCompliances 6 }

vtpMIBCompliance7 MODULE-COMPLIANCE
    STATUS  deprecated
    DESCRIPTION
            "The compliance statement for VTP implementations."
    MODULE  -- this module
        MANDATORY-GROUPS { vtpBasicGroup,
                           vtpVlanInfoGroup,
                           vtpConfigNotificationsGroup,
                           vtpStatsGroup,
                           vtpTrunkPortGroup,
                           vtpVersion2BasicGroup,
                           vtpNotificationObjectsGroup
                         }

        OBJECT       managementDomainRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       managementDomainName
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion 
                     is none(3)." 

        OBJECT       managementDomainLocalMode
        SYNTAX       INTEGER { client(1), server(2), transparent(3) }
                                         -- subset of VTP local mode
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion 
                     is none(3). Write access for transparent(3)
                     is not required."

        OBJECT       managementDomainTftpServer
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion 
                     is none(3)."

        OBJECT       managementDomainTftpPathname
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion 
                     is none(3)."

        OBJECT       managementDomainVersionInUse
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion
                     is none(3)." 

        OBJECT       vlanTrunkPortManagementDomain
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortEncapsulationType
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortNativeVlan
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        GROUP        vtpVlanInfoEditGroup
        DESCRIPTION
            "This group must be implemented by VTP Servers.
            VTP Clients need not implement these objects, and
            must not allow VLANs to be created, modified, or
            destroyed using these objects."

        GROUP        vtp4kVlanGroupRev1
        DESCRIPTION
            "This group must be implemented by the VTP Servers
            which support the range of VlanIndex between 1024
            and 4095."

        OBJECT       vtpVlanEditTypeExt2
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        GROUP        vtpDot1qTunnelGroup
        DESCRIPTION
             "This group is mandatory for all the ports which
              implement dot1qtunnel feature."

        OBJECT       vlanTrunkPortDot1qTunnel
        MIN-ACCESS   read-only
        DESCRIPTION
               "This object is read-only for interface which doesn't
                support dot1q tunnel feature."

        GROUP        vtpVlanIfIndexGroup
        DESCRIPTION
             "This group is an optional group containing
             objects providing information about the mapping
             of VLAN ID to its corresponding IfIndex." 
        
        GROUP        vtpVlanInfoEditGroup2 
        DESCRIPTION
            "This group is mandatory for devices which only support
            one VLAN editing for each 'apply' operation."

    ::= { vtpMIBCompliances 7 }

vtpMIBCompliance8 MODULE-COMPLIANCE
    STATUS  deprecated
    DESCRIPTION
            "The compliance statement for VTP implementations."
    MODULE  -- this module
        MANDATORY-GROUPS { vtpBasicGroup,
                           vtpVlanInfoGroup,
                           vtpConfigNotificationsGroup,
                           vtpStatsGroup,
                           vtpTrunkPortGroup,
                           vtpVersion2BasicGroup,
                           vtpNotificationObjectsGroup
                         }

        OBJECT       managementDomainRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       managementDomainName
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion 
                     is none(3)." 

        OBJECT       managementDomainLocalMode
        SYNTAX       INTEGER { client(1), server(2), transparent(3) }
                                         -- subset of VTP local mode
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion 
                     is none(3). Write access for transparent(3)
                     is not required."

        OBJECT       managementDomainTftpServer
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion 
                     is none(3)."

        OBJECT       managementDomainTftpPathname
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion 
                     is none(3)."

        OBJECT       managementDomainVersionInUse
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion
                     is none(3)." 

        OBJECT       vlanTrunkPortManagementDomain
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortEncapsulationType
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortNativeVlan
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        GROUP        vtpVlanInfoEditGroup
        DESCRIPTION
            "This group must be implemented by VTP Servers.
            VTP Clients need not implement these objects, and
            must not allow VLANs to be created, modified, or
            destroyed using these objects."

        GROUP        vtp4kVlanGroupRev1
        DESCRIPTION
            "This group must be implemented by the VTP Servers
            which support the range of VlanIndex between 1024
            and 4095."

        OBJECT       vtpVlanEditTypeExt2
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        GROUP        vtpDot1qTunnelGroup2
        DESCRIPTION
             "This group is mandatory for all the ports which
              implement dot1qtunnel feature."

        GROUP        vtpVlanIfIndexGroup
        DESCRIPTION
             "This group is an optional group containing
             objects providing information about the mapping
             of VLAN ID to its corresponding IfIndex." 
        
        GROUP        vtpVlanInfoEditGroup2 
        DESCRIPTION
            "This group is mandatory for devices which only support
            one VLAN editing for each 'apply' operation."

    ::= { vtpMIBCompliances 8 }

vtpMIBCompliance9 MODULE-COMPLIANCE
    STATUS  deprecated -- superseded by vtpMIBCompliance10
    DESCRIPTION
            "The compliance statement for VTP implementations."
    MODULE  -- this module
        MANDATORY-GROUPS { vtpBasicGroup,
                           vtpVlanInfoGroup,
                           vtpConfigNotificationsGroup,
                           vtpStatsGroup,
                           vtpTrunkPortGroup,
                           vtpVersion2BasicGroup,
                           vtpNotificationObjectsGroup
                         }

        OBJECT       managementDomainRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       managementDomainName
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion
                     is none(3)."

        OBJECT       managementDomainLocalMode
        SYNTAX       INTEGER { client(1), server(2), transparent(3) }
                                         -- subset of VTP local mode
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion
                     is none(3). Write access for transparent(3)
                     is not required."

        OBJECT       managementDomainTftpServer
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion
                     is none(3)."

        OBJECT       managementDomainTftpPathname
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion
                     is none(3)."

        OBJECT       managementDomainVersionInUse
        MIN-ACCESS   read-only
        DESCRIPTION  "This object is read-only if vtpVersion
                     is none(3)."

        OBJECT       vlanTrunkPortManagementDomain
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortEncapsulationType
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        OBJECT       vlanTrunkPortNativeVlan
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        GROUP        vtpVlanInfoEditGroup
        DESCRIPTION
            "This group must be implemented by VTP Servers.
            VTP Clients need not implement these objects, and
            must not allow VLANs to be created, modified, or
            destroyed using these objects."

        GROUP        vtp4kVlanGroupRev1
        DESCRIPTION
            "This group must be implemented by the VTP Servers
            which support the range of VlanIndex between 1024
            and 4095."

        OBJECT       vtpVlanEditTypeExt2
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

        GROUP        vtpVlanIfIndexGroup
        DESCRIPTION
             "This group is an optional group containing
             objects providing information about the mapping
             of VLAN ID to its corresponding IfIndex."

        GROUP        vtpVlanInfoEditGroup2
        DESCRIPTION
            "This group is mandatory for devices which only support
            one VLAN editing for each 'apply' operation."

        GROUP        vtpVlanNotifEnabledGroup
        DESCRIPTION
            "This group is mandatory for devices which support the
            notifications/traps in vtpConfigNotificationsGroup3. "
            
    ::= { vtpMIBCompliances 9 }

vtpMIBCompliance10 MODULE-COMPLIANCE
    STATUS  deprecated
    DESCRIPTION
            "The compliance statement for VTP implementations."
    MODULE  -- this module
        MANDATORY-GROUPS { vtpBasicGroup,
                           vtpVlanInfoGroup,
                           vtpConfigNotificationsGroup,
                           vtpStatsGroup,
                           vtpTrunkPortGroup,
                           vtpVersion2BasicGroup,
                           vtpNotificationObjectsGroup
                         }

        OBJECT       managementDomainRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       managementDomainName
        MIN-ACCESS   read-only
        DESCRIPTION  
             "This object is read-only if vtpVersion
             is none(3)."

        OBJECT       managementDomainLocalMode
        SYNTAX       INTEGER { client(1), server(2), transparent(3) }
                                         -- subset of VTP local mode
        MIN-ACCESS   read-only
        DESCRIPTION  
             "This object is read-only if vtpVersion
             is none(3). "

        OBJECT       managementDomainTftpServer
        MIN-ACCESS   read-only
        DESCRIPTION  
             "This object is read-only if vtpVersion
             is none(3)."

        OBJECT       managementDomainTftpPathname
        MIN-ACCESS   read-only
        DESCRIPTION  
             "This object is read-only if vtpVersion
             is none(3)."

        OBJECT       managementDomainVersionInUse
        MIN-ACCESS   read-only
        DESCRIPTION  
             "This object is read-only if vtpVersion
             is none(3)."

        OBJECT       vlanTrunkPortManagementDomain
        MIN-ACCESS   read-only
        DESCRIPTION  
            "Write access is not required."

        OBJECT       vlanTrunkPortEncapsulationType
        MIN-ACCESS   read-only
        DESCRIPTION  
             "Write access is not required."

        OBJECT       vlanTrunkPortNativeVlan
        MIN-ACCESS   read-only
        DESCRIPTION  
             "Write access is not required."

        GROUP        vtpVlanInfoEditGroup
        DESCRIPTION
             "This group must be implemented by VTP Servers.
             VTP Clients need not implement these objects, and
             must not allow VLANs to be created, modified, or
             destroyed using these objects."

        GROUP        vtp4kVlanGroupRev1
        DESCRIPTION
             "This group must be implemented by the VTP Servers
             which support the range of VlanIndex between 1024
             and 4095."

        OBJECT       vtpVlanEditTypeExt2
        MIN-ACCESS   read-only
        DESCRIPTION  
             "Write access is not required."

        GROUP        vtpVlanIfIndexGroup
        DESCRIPTION
             "This group is an optional group containing
             objects providing information about the mapping
             of VLAN ID to its corresponding IfIndex."

        GROUP        vtpVlanInfoEditGroup2
        DESCRIPTION
             "This group is mandatory for devices which only support
             one VLAN editing for each 'apply' operation."

        GROUP        vtpVlanNotifEnabledGroup
        DESCRIPTION
             "This group is mandatory for devices which support the
             notifications/traps in vtpConfigNotificationsGroup3. "

        GROUP   vtpDiscoverGroup
        DESCRIPTION
             "This group is mandatory for devices which support the
             VTP discovery."

        GROUP   vtpDatabaseGroup
        DESCRIPTION
             "This group is mandatory for devices which support the
             VTP distribution of different database types." 

        GROUP   vtpAuthGroup
        DESCRIPTION
             "This group is mandatory for devices which support 
             asymmetric keys authentication mechanism for VTP."
            
    ::= { vtpMIBCompliances 10 }

vtpMIBCompliance11 MODULE-COMPLIANCE
    STATUS  deprecated
    DESCRIPTION
            "The compliance statement for VTP implementations."
    MODULE  -- this module
        MANDATORY-GROUPS { vtpBasicGroup,
                           vtpVlanInfoGroup,
                           vtpConfigNotificationsGroupRev1,
                           vtpStatsGroup,
                           vtpTrunkPortGroup,
                           vtpVersion2BasicGroup,
                           vtpNotificationObjectsGroup
                         }

        OBJECT       managementDomainRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       managementDomainName
        MIN-ACCESS   read-only
        DESCRIPTION  
             "This object is read-only if vtpVersion
             is none(3)."

        OBJECT       managementDomainLocalMode
        SYNTAX       INTEGER { client(1), server(2), transparent(3) }
                                         -- subset of VTP local mode
        MIN-ACCESS   read-only
        DESCRIPTION  
             "This object is read-only if vtpVersion
             is none(3). "

        OBJECT       managementDomainTftpServer
        MIN-ACCESS   read-only
        DESCRIPTION  
             "This object is read-only if vtpVersion
             is none(3)."

        OBJECT       managementDomainTftpPathname
        MIN-ACCESS   read-only
        DESCRIPTION  
             "This object is read-only if vtpVersion
             is none(3)."

        OBJECT       managementDomainVersionInUse
        MIN-ACCESS   read-only
        DESCRIPTION  
             "This object is read-only if vtpVersion
             is none(3)."

        OBJECT       vlanTrunkPortManagementDomain
        MIN-ACCESS   read-only
        DESCRIPTION  
            "Write access is not required."

        OBJECT       vlanTrunkPortEncapsulationType
        MIN-ACCESS   read-only
        DESCRIPTION  
             "Write access is not required."

        OBJECT       vlanTrunkPortNativeVlan
        MIN-ACCESS   read-only
        DESCRIPTION  
             "Write access is not required."

        GROUP        vtpVlanInfoEditGroup
        DESCRIPTION
             "This group must be implemented by VTP Servers.
             VTP Clients need not implement these objects, and
             must not allow VLANs to be created, modified, or
             destroyed using these objects."

        GROUP        vtp4kVlanGroupRev1
        DESCRIPTION
             "This group must be implemented by the VTP Servers
             which support the range of VlanIndex between 1024
             and 4095."

        OBJECT       vtpVlanEditTypeExt2
        MIN-ACCESS   read-only
        DESCRIPTION  
             "Write access is not required."

        GROUP        vtpVlanIfIndexGroup
        DESCRIPTION
             "This group is an optional group containing
             objects providing information about the mapping
             of VLAN ID to its corresponding IfIndex."

        GROUP        vtpVlanInfoEditGroup2
        DESCRIPTION
             "This group is mandatory for devices which only support
             one VLAN editing for each 'apply' operation."

        GROUP        vtpVlanNotifEnabledGroup
        DESCRIPTION
             "This group is mandatory for devices which support the
             notifications/traps in vtpConfigNotificationsGroup3. "

        GROUP   vtpDiscoverGroup
        DESCRIPTION
             "This group is mandatory for devices which support the
             VTP discovery."

        GROUP   vtpDatabaseGroup
        DESCRIPTION
             "This group is mandatory for devices which support the
             VTP distribution of different database types." 

        GROUP   vtpAuthGroup
        DESCRIPTION
             "This group is mandatory for devices which support 
             asymmetric keys authentication mechanism for VTP."
            
    ::= { vtpMIBCompliances 11 }

vtpMIBCompliance12 MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for VTP implementations."
    MODULE  -- this module
        MANDATORY-GROUPS { vtpBasicGroup,
                           vtpVlanInfoGroup,
                           vtpConfigNotificationsGroupRev1,
                           vtpStatsGroup,
                           vtpTrunkPortGroup,
                           vtpVersion2BasicGroup,
                           vtpNotificationObjectsGroup
                         }

        OBJECT       managementDomainRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       vlanTrunkPortRowStatus
        SYNTAX       INTEGER { active(1)}   -- subset of RowStatus
        MIN-ACCESS   read-only
        DESCRIPTION
             "Write access is not required, and only one
             of the six enumerated values for the
             RowStatus textual convention need be
             supported, specifically: active(1)."

        OBJECT       managementDomainName
        MIN-ACCESS   read-only
        DESCRIPTION  
             "This object is read-only if vtpVersion
             is none(3)."

        OBJECT       managementDomainLocalMode
        SYNTAX       INTEGER { client(1), server(2), transparent(3) }
                                         -- subset of VTP local mode
        MIN-ACCESS   read-only
        DESCRIPTION  
             "This object is read-only if vtpVersion
             is none(3). "

        OBJECT       managementDomainTftpServer
        MIN-ACCESS   read-only
        DESCRIPTION  
             "This object is read-only if vtpVersion
             is none(3)."

        OBJECT       managementDomainTftpPathname
        MIN-ACCESS   read-only
        DESCRIPTION  
             "This object is read-only if vtpVersion
             is none(3)."

        OBJECT       managementDomainVersionInUse
        MIN-ACCESS   read-only
        DESCRIPTION  
             "This object is read-only if vtpVersion
             is none(3)."

        OBJECT       vlanTrunkPortManagementDomain
        MIN-ACCESS   read-only
        DESCRIPTION  
            "Write access is not required."

        OBJECT       vlanTrunkPortEncapsulationType
        MIN-ACCESS   read-only
        DESCRIPTION  
             "Write access is not required."

        OBJECT       vlanTrunkPortNativeVlan
        MIN-ACCESS   read-only
        DESCRIPTION  
             "Write access is not required."

        GROUP        vtpVlanInfoEditGroup
        DESCRIPTION
             "This group must be implemented by VTP Servers.
             VTP Clients need not implement these objects, and
             must not allow VLANs to be created, modified, or
             destroyed using these objects."

        GROUP        vtp4kVlanGroupRev1
        DESCRIPTION
             "This group must be implemented by the VTP Servers
             which support the range of VlanIndex between 1024
             and 4095."

        OBJECT       vtpVlanEditTypeExt2
        MIN-ACCESS   read-only
        DESCRIPTION  
             "Write access is not required."

        GROUP        vtpVlanIfIndexGroup
        DESCRIPTION
             "This group is an optional group containing
             objects providing information about the mapping
             of VLAN ID to its corresponding IfIndex."

        GROUP        vtpVlanInfoEditGroup2
        DESCRIPTION
             "This group is mandatory for devices which only support
             one VLAN editing for each 'apply' operation."

        GROUP        vtpVlanNotifEnabledGroup
        DESCRIPTION
             "This group is mandatory for devices which support the
             notifications/traps in vtpConfigNotificationsGroup3. "

        GROUP   vtpDiscoverGroup
        DESCRIPTION
             "This group is mandatory for devices which support the
             VTP discovery."

        GROUP   vtpDatabaseGroup
        DESCRIPTION
             "This group is mandatory for devices which support the
             VTP distribution of different database types." 

        GROUP   vtpAuthGroup
        DESCRIPTION
             "This group is mandatory for devices which support 
             asymmetric keys authentication mechanism for VTP."

        GROUP   vtpInternalVlanGrp
        DESCRIPTION
             "Implementation of this group is optional."
            
    ::= { vtpMIBCompliances 12 }

-- units of conformance

vtpBasicGroup OBJECT-GROUP
    OBJECTS { vtpVersion, vtpMaxVlanStorage,
              vtpNotificationsEnabled,
              managementDomainName, managementDomainLocalMode,
              managementDomainConfigRevNumber,
              managementDomainLastUpdater,
              managementDomainLastChange,
              managementDomainTftpServer,
              managementDomainTftpPathname,
              managementDomainRowStatus }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing basic status and control
            of a VTP implementation."
    ::= { vtpMIBGroups 1 }

vtpVlanInfoGroup OBJECT-GROUP
    OBJECTS { vtpVlanState, vtpVlanType, vtpVlanName,
              vtpVlanMtu, vtpVlanDot10Said,
              vtpVlanRingNumber, vtpVlanBridgeNumber,
              vtpVlanStpType, vtpVlanParentVlan,
              vtpVlanTranslationalVlan1,
              vtpVlanTranslationalVlan2,
              vtpVlanBridgeType, vtpVlanAreHopCount,
              vtpVlanSteHopCount, vtpVlanIsCRFBackup }
    STATUS  current
    DESCRIPTION
            "A collection of objects for monitoring VLAN information."
    ::= { vtpMIBGroups 13 }

vtpVlanInfoEditGroup OBJECT-GROUP
    OBJECTS { vtpVlanEditOperation, vtpVlanApplyStatus,
              vtpVlanEditBufferOwner, vtpVlanEditConfigRevNumber,
              vtpVlanEditState, vtpVlanEditType, vtpVlanEditName,
              vtpVlanEditMtu, vtpVlanEditDot10Said,
              vtpVlanEditRingNumber, vtpVlanEditBridgeNumber,
              vtpVlanEditStpType, vtpVlanEditParentVlan,
              vtpVlanEditRowStatus,
              vtpVlanEditTranslationalVlan1,
              vtpVlanEditTranslationalVlan2,
              vtpVlanEditBridgeType, vtpVlanEditAreHopCount,
              vtpVlanEditSteHopCount, vtpVlanEditIsCRFBackup }
    STATUS  current
    DESCRIPTION
            "A collection of objects for editing VLAN information in VTP
            Servers."
    ::= { vtpMIBGroups 14 }

vtpStatsGroup OBJECT-GROUP
    OBJECTS { vtpInSummaryAdverts, vtpInSubsetAdverts,
              vtpInAdvertRequests, vtpOutSummaryAdverts,
              vtpOutSubsetAdverts, vtpOutAdvertRequests,
              vtpConfigRevNumberErrors, vtpConfigDigestErrors }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing VTP statistics."
    ::= { vtpMIBGroups 4 }

vtpTrunkPortGroup OBJECT-GROUP
    OBJECTS { vlanTrunkPortManagementDomain,
              vlanTrunkPortEncapsulationType,
              vlanTrunkPortVlansEnabled,
              vlanTrunkPortNativeVlan,
              vlanTrunkPortRowStatus,
              vlanTrunkPortSetSerialNo }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing information on trunk
            ports."
    ::= { vtpMIBGroups 5 }

vtpTrunkPortGroup2 OBJECT-GROUP
    OBJECTS { vlanTrunkPortDynamicState, vlanTrunkPortDynamicStatus,
              vlanTrunkPortVtpEnabled }
    STATUS  current
    DESCRIPTION
            " Additional functionality added to the
            vlanTrunkPortTable. "
    ::= { vtpMIBGroups 11 }

vtpTrunkPortGroup3 OBJECT-GROUP
    OBJECTS { vlanTrunkPortEncapsulationOperType }
    STATUS  current
    DESCRIPTION
            " Additional functionality added to the
            vlanTrunkPortTable. "
    ::= { vtpMIBGroups 15 }

vtpTrunkPruningGroup OBJECT-GROUP
    OBJECTS { vlanTrunkPortInJoins, vlanTrunkPortOutJoins,
              vlanTrunkPortOldAdverts,
              vlanTrunkPortVlansPruningEligible,
              vlanTrunkPortVlansXmitJoined,
              vlanTrunkPortVlansRcvJoined }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing information on VLAN
            pruning."
    ::= { vtpMIBGroups 7 }

vtpTrunkPruningGroup2 OBJECT-GROUP
    OBJECTS { managementDomainPruningState }
    STATUS  current
    DESCRIPTION
            "A collection of object providing information on whether
            VLAN pruning is enabled."
    ::= { vtpMIBGroups 10 }

vtpVersion2BasicGroup OBJECT-GROUP
    OBJECTS { managementDomainVersionInUse }
    STATUS  current
    DESCRIPTION
            " The object required to indicate the version of VTP in
            use by a management domain."
    ::= { vtpMIBGroups 12 }

 vtpConfigNotificationsGroup NOTIFICATION-GROUP
     NOTIFICATIONS { vtpConfigDigestError,
                     vtpConfigRevNumberError,
                     vtpServerDisabled,
                     vtpMtuTooBig,
                     vtpVersionOneDeviceDetected,
                     vlanTrunkPortDynamicStatusChange }
     STATUS        deprecated
     DESCRIPTION
             "The notifications which a VTP implementation is
             required to implement."
     ::= { vtpMIBGroups 6 }

vtp4kVlanGroup OBJECT-GROUP
    OBJECTS { vtpVlanTypeExt,
              vtpVlanEditTypeExt,
              vlanTrunkPortVlansEnabled2k,
              vlanTrunkPortVlansEnabled3k,
              vlanTrunkPortVlansEnabled4k,
              vtpVlansPruningEligible2k,
              vtpVlansPruningEligible3k,
              vtpVlansPruningEligible4k,
              vlanTrunkPortVlansXmitJoined2k,
              vlanTrunkPortVlansXmitJoined3k,
              vlanTrunkPortVlansXmitJoined4k,
              vlanTrunkPortVlansRcvJoined2k,
              vlanTrunkPortVlansRcvJoined3k,
              vlanTrunkPortVlansRcvJoined4k }
    STATUS  deprecated
    DESCRIPTION
            "A collection of objects providing information
            for VLANS with VlanIndex from 1024 to 4095."
    ::= { vtpMIBGroups 16 }

vtpDot1qTunnelGroup OBJECT-GROUP
    OBJECTS { vlanTrunkPortsDot1qTag,
              vlanTrunkPortDot1qTunnel}
    STATUS  deprecated
    DESCRIPTION
            "A collection of objects providing information
             for dot1qtunnel feature."
    ::= { vtpMIBGroups 17 }

vtpVlanIfIndexGroup OBJECT-GROUP
    OBJECTS { vtpVlanIfIndex }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing information
             for mapping of VLAN ID to its corresponding
             ifIndex."
    ::= { vtpMIBGroups 18 }

vtpVlanInfoEditGroup2 OBJECT-GROUP
    OBJECTS { vtpVlanEditModifiedVlan }
    STATUS  current
    DESCRIPTION
            "A collection of objects for editing VLAN information when 
            only one VLAN is allowed to be edited for each 'apply'
            operation."
    ::= { vtpMIBGroups 19 }

vtp4kVlanGroupRev1 OBJECT-GROUP
    OBJECTS { vtpVlanTypeExt,
              vtpVlanEditTypeExt2,
              vlanTrunkPortVlansEnabled2k,
              vlanTrunkPortVlansEnabled3k,
              vlanTrunkPortVlansEnabled4k,
              vtpVlansPruningEligible2k,
              vtpVlansPruningEligible3k,
              vtpVlansPruningEligible4k,
              vlanTrunkPortVlansXmitJoined2k,
              vlanTrunkPortVlansXmitJoined3k,
              vlanTrunkPortVlansXmitJoined4k,
              vlanTrunkPortVlansRcvJoined2k,
              vlanTrunkPortVlansRcvJoined3k,
              vlanTrunkPortVlansRcvJoined4k }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing information
            for VLANS with VlanIndex from 1024 to 4095."
    ::= { vtpMIBGroups 20 }

vtpNotificationObjectsGroup OBJECT-GROUP
    OBJECTS { vtpVlanPortLocalSegment }
    STATUS  current
    DESCRIPTION
            "A collection of objects included in VTP notifications."
    ::= { vtpMIBGroups 21 }

vtpDot1qTunnelGroup2 OBJECT-GROUP
    OBJECTS { vlanTrunkPortsDot1qTag }
    STATUS  deprecated
    DESCRIPTION
            "A collection of objects providing information
             for dot1qtunnel feature."
    ::= { vtpMIBGroups 22 }

vtpConfigNotificationsGroup2 NOTIFICATION-GROUP
     NOTIFICATIONS{  vtpLocalModeChanged,
                     vtpVersionInUseChanged }
     STATUS        current
     DESCRIPTION
             "The notifications which a VTP implementation is
             required to implement."
     ::= { vtpMIBGroups 23 }

vtpVlanNotifEnabledGroup OBJECT-GROUP
    OBJECTS { vtpVlanCreatedNotifEnabled,
              vtpVlanDeletedNotifEnabled }
    STATUS  current
    DESCRIPTION
            "A collection of objects to indicate whether a
            certain group of notifications are enabled. "
    ::= { vtpMIBGroups 24 }

vtpConfigNotificationsGroup3 NOTIFICATION-GROUP
     NOTIFICATIONS { vtpVlanCreated,
                     vtpVlanDeleted }
     STATUS        current
     DESCRIPTION
             "The notifications implemented by a device which 
             supports these features. "
     ::= { vtpMIBGroups 25 }

vtpConfigNotificationsGroup4 NOTIFICATION-GROUP
     NOTIFICATIONS { vtpVlanRingNumberConflict }
     STATUS        current
     DESCRIPTION
             "The notifications implemented by a device which
             supports these features. "
     ::= { vtpMIBGroups 26 }

vtpDiscoverGroup OBJECT-GROUP
    OBJECTS { vtpDiscoverAction,
              vtpDiscoverStatus,
              vtpLastDiscoverTime,
              vtpDiscoverResultIndex,
              vtpDiscoverResultDatabaseName,
              vtpDiscoverResultConflicting,
              vtpDiscoverResultDeviceId,
              vtpDiscoverResultPrimaryServer,
              vtpDiscoverResultRevNumber,
              vtpDiscoverResultSystemName }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing information of 
            VTP discovery."
    ::= { vtpMIBGroups 27 }

vtpDatabaseGroup OBJECT-GROUP
   OBJECTS {  vtpDatabaseName,
              vtpDatabaseLocalMode,
              vtpDatabaseRevNumber,
              vtpDatabasePrimaryServer,
              vtpDatabasePrimaryServerId,
              vtpDatabaseTakeOverPrimary,
              vtpDatabaseTakeOverPassword }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing information of
            VTP databases. " 
    ::= { vtpMIBGroups 28 }

vtpAuthGroup OBJECT-GROUP
    OBJECTS { vtpAuthPassword,
              vtpAuthPasswordType,
              vtpAuthSecretKey }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing information of
            VTP authentication mechanism. "
    ::= { vtpMIBGroups 29 }

vtpConfigNotificationsGroupRev1 NOTIFICATION-GROUP
     NOTIFICATIONS { vtpConfigDigestError,
                     vtpConfigRevNumberError,
                     vtpVersionOneDeviceDetected,
                     vlanTrunkPortDynamicStatusChange }
     STATUS        current
     DESCRIPTION
             "The notifications which a VTP implementation is
             required to implement."
     ::= { vtpMIBGroups 30 }

vtpConfigNotificationsGroup5 NOTIFICATION-GROUP
     NOTIFICATIONS { vtpServerDisabled,
                     vtpMtuTooBig }
     STATUS        current
     DESCRIPTION
             "The additional notifications that may be 
             related to a VTP implementation."
     ::= { vtpMIBGroups 31 }

vtpInternalVlanGrp OBJECT-GROUP
    OBJECTS { vtpInternalVlanAllocPolicy,
              vtpInternalVlanOwner
              }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing information of
            internal VLANs. "
    ::= { vtpMIBGroups 32 } 

END


 
