Per VLAN Spanning Tree (PVST)

Hi Rene,

Is there any difference on port roles on PVST and PVST+ ? thanks

Hello Chamara

PVST is a Cisco proprietary version of STP that operates with Cisco ISL trunking. This is not compatible with the IEEE802.1Q tagging. PVST+ is an enhancement that is compatible with the 802.1Q standard.

Now having said that, PVST is a protocol that is no longer used in modern Cisco switches. Indeed it must be at least a decade since real PVST has been included in Cisco devices. Now, this is confusing, because the command spanning-tree mode pvst seems to indicate that we are using PVST and not PVST+. However, this command actually enables PVST+.

To be honest, I am not certain of the port roles on PVST were the same as those on PVST+ simply because I’ve never used it. I would assume that they are the same, because as an enhancement to PVST, PVST+ simply supports the 802.1Q trunking protocol, so the rest of the mechanisms would reasonably have remained the same.

Even doing a search on online Cisco documentation to find out is difficult, because today the term PVST is often used to refer to PVST+, so there is no way to distinguish between the two. In addition, documentation referring to the original PVST is difficult to find since most of it has been retired.

I hope this has been helpful!


I flow the reason for the use of PVST and how to identify RP,D,B for the each vlan. If I have all switches in the same VTP domain is there a way to have VTP suppress passing VLAN 10 to C or do I just have A as the server, B as a client and C set to transparent.

I tried using switchport trunk allowed vlan except 10 on C’s trunk links but VTP passes the VLAN to C.

Just wondering if there is another way other than changing C to transparent mode.


Hello Donald

There is no way to prevent VTP from sending information about specific VLANs to other switches. In other words, there’s no way to directly filter which VLANs are shared and which are not. VTP will automatically take the VLANs on the VTP server and share them with all VTP clients in the same domain. The only way to achieve it is to use the transparent switch you suggest in your post.

However, remember that if you have VTP pruning enabled, it will “prune” VLANs on the trunks that connect to switches that are not using those particular VLANs. What does that mean? Well, take a look at this topology:

Now imagine that the link between the switches is a trunk, and both VLANs 1 and 50 are allowed on that trunk. Now imagine that H1 and H2 are connected to access ports on VLAN 50, and SW1 has no access ports on VLAN1. Therefore, even if SW2 has some host on VLAN 1, no traffic belonging to VLAN 1 should ever traverse the trunk. If it does, it will simply be dropped, since there are no hosts on VLAN 1 on SW1.

That means that VTP should prune VLAN 1 on the trunk. What does that look like?

SW2#show interface fa0/14 trunk 
Port        Mode             Encapsulation  Status        Native vlan
Fa0/14      on               802.1q         trunking      1
Port        Vlans allowed on trunk
Fa0/14      1-4094
Port        Vlans allowed and active in management domain
Fa0/14      1,50
Port        Vlans in spanning tree forwarding state and not pruned
Fa0/14      50

You can see that VLANs 1 and 50 are allowed, but only VLAN 50 is not pruned. Therefore VLAN 1 is pruned.

So what is my point? Well, even if VTP shares all existing VLANs with all other switches, those VLANs exist as entities in the VLAN database, BUT, VTP pruning will eliminate any unnecessary VLANs from transmitting over a trunk.

For more info about the above configuration take a look at this lesson:

For more info about VTP and pruning take a look at this Cisco documentation:

I hope this has been helpful!


Hi Rene, Still, I have seen in some documents that it is possible to have different STP modes per VLAN. Please clarify on this

Hello Sathish

In Cisco switches, it is indeed possible to run different STP instances for different VLANs. This is known as Per-VLAN Spanning Tree Plus (PVST+). This type of STP allows you to have a separate spanning tree for each VLAN, which means you can optimize the path that your traffic takes on a per-VLAN basis.

However, it’s important to note that you cannot run different types of STP (RPVST+, MST, or traditional STP) concurrently on different VLANs on the same switch. The STP mode you choose applies to the entire switch.

So, if you see a document stating you can run different STP modes per VLAN, it might be referring to running separate instances of the same STP mode for each VLAN (PVST+), or different STP modes running on different switches, yet being compatible with one another, such as MST and PVST+. However, you will never see different STP modes for each VLAN on the same switch.

Can you share the documentation you have read this in so that we can clarify further?

I hope this has been helpful!


1 Like

Hello @lagapidis

i don’t see any VLAN identifier field in the BPDU header, then how do the switches know to run STA for each VLAN?.

Hello Sathish

Indeed, BPDUs don’t include the VLAN ID in their headers. However, when using PVST, switches know to run STP for each individual VLAN. In other words, each VLAN runs its own separate instance of STP. This is possible because BPDUs are sent inside VLAN-tagged frames. The VLAN ID is included in the Ethernet frame, not in the BPDU itself. So, when a switch receives a BPDU, it can tell which VLAN it pertains to by looking at the VLAN ID in the Ethernet frame.

I hope this has been helpful!