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!