PVST and PVST+ – Per-VLAN Spanning Tree, Root Bridge, and Load Balancing
1. Why PVST? — The Problem with Classic STP
The original IEEE 802.1D Spanning Tree Protocol was designed for a simpler era — one where a network had a single flat Layer 2 domain. It runs a single spanning tree instance for all VLANs. One root bridge is elected for the whole network, and blocked ports are the same regardless of which VLAN's traffic they carry. This creates two significant problems:
Classic STP — single instance, all VLANs:
┌────────────────────────────────────────────────────────────┐
│ Root Bridge │
│ [Switch A] │
│ / \ │
│ [Switch B] [Switch C] │
│ | | │
│ [Switch D]──────[Switch E] ← one link BLOCKED by STP │
│ │
│ Result: ALL VLANs (10, 20, 30) must use the SAME paths. │
│ The blocked link wastes bandwidth for every VLAN. │
└────────────────────────────────────────────────────────────┘
PVST — separate instance per VLAN:
┌────────────────────────────────────────────────────────────┐
│ VLAN 10 instance: Switch A = Root │
│ VLAN 10 path: A→B→D VLAN 10 blocked port: D–E │
│ │
│ VLAN 20 instance: Switch B = Root │
│ VLAN 20 path: B→D→E VLAN 20 blocked port: A–C │
│ │
│ Result: each VLAN uses a DIFFERENT active path. │
│ All physical links carry SOME traffic → true load balance.│
└────────────────────────────────────────────────────────────┘
Related pages: Spanning Tree Protocol (STP) | VLANs | Trunking (802.1Q) | RSTP (Rapid STP) | Frame Forwarding | Switches | Root Bridge Election | PortFast & BPDU Guard | STP Root Bridge Lab | PortFast & BPDU Guard Lab | Rapid STP Lab
2. PVST vs PVST+ — Key Differences
Both PVST and PVST+ run a separate STP instance per VLAN. The critical distinction is trunking support — PVST uses Cisco-proprietary ISL trunks while PVST+ adds support for the industry-standard IEEE 802.1Q trunk, making it interoperable with non-Cisco equipment. PVST+ is the default STP mode on all modern Cisco switches.
| Feature | Classic 802.1D STP | PVST | PVST+ |
|---|---|---|---|
| STP instances | One for all VLANs (CST) | One per VLAN | One per VLAN |
| Trunking protocol | Any (VLAN-unaware) | Cisco ISL only | IEEE 802.1Q (also ISL) |
| Interoperability | Any IEEE 802.1D switch | Cisco-only | Standards-compatible via CST on native VLAN |
| Default on Cisco | No | No (legacy) | Yes — spanning-tree mode pvst |
| Per-VLAN root bridge | No | Yes | Yes |
| Load balancing | No | Yes | Yes |
| BPDU destination MAC | 0180.C200.0000 (IEEE) | 0100.0CCC.CCCD (Cisco) | 0100.0CCC.CCCD (VLAN-tagged) + 0180.C200.0000 (native VLAN) |
| Convergence time | ~30–50 seconds | ~30–50 seconds | ~30–50 seconds |
| Protocol standard | IEEE 802.1D | Cisco proprietary | Cisco proprietary (VLAN-aware 802.1D) |
3. Root Bridge Election — Bridge ID and Priority
In PVST and PVST+, each VLAN independently elects its own root bridge using the same election rules as classic STP — the switch with the lowest Bridge ID wins. The Bridge ID is a combination of priority and MAC address, evaluated per VLAN. See Root Bridge Election for full details.
Bridge ID structure (8 bytes total):
┌──────────────────────────────┬──────────────────────────────┐
│ Priority (2 bytes) │ Switch MAC Address (6 bytes)│
│ = Priority value (4 bits) │ (base MAC — globally unique)│
│ + Extended System ID (VLAN) │ │
│ (12 bits = VLAN number) │ │
└──────────────────────────────┴──────────────────────────────┘
Priority value is configured in multiples of 4096:
Valid values: 0, 4096, 8192, 12288, 16384, 20480, 24576, 28672,
32768 (default), 36864, ..., 61440
Actual Bridge ID priority = configured value + VLAN ID
Example: switch configured priority 32768 for VLAN 10
Actual priority in Bridge ID = 32768 + 10 = 32778
Root bridge election:
1. Compare Bridge ID priority values — LOWEST wins
2. If priorities are equal → LOWEST MAC address wins
To force a switch to become root for VLAN 10:
Set its priority lower than all other switches for that VLAN.
E.g., set to 4096 if all others are at default 32768.
| Priority Value | Use Case | Notes |
|---|---|---|
| 0 | Absolute root (never use in production) | Cannot be lower — guaranteed to win election |
| 4096 | Primary root bridge | Well below default; wins against all default-priority switches |
| 8192 | Secondary (backup) root bridge | Wins if primary (4096) fails |
| 32768 | Default — all Cisco switches ship with this value | Election between default switches decided by lowest MAC |
| 61440 | Explicitly prevent becoming root | Highest configurable value — will never win unless all others are also at max |
Automatic root placement shortcut: Instead of manually setting a specific priority number, Cisco IOS provides a macro command that automatically calculates the optimal priority:
Switch(config)# spanning-tree vlan 10 root primary
! Sets priority to 24576 (or lower if needed to beat current root)
Switch(config)# spanning-tree vlan 10 root secondary
! Sets priority to 28672 (backup root)
4. STP Port Roles
In PVST/PVST+, every switch port is assigned one of the following roles per VLAN. The roles determine how each port participates in the spanning tree.
| Port Role | Location | Function | Per-VLAN? |
|---|---|---|---|
| Root Port (RP) | On every non-root switch — exactly one per switch per VLAN | The port with the best (lowest cost) path back to the root bridge for this VLAN. Always in Forwarding state. | Yes — a port may be Root Port for VLAN 10 and Designated for VLAN 20 |
| Designated Port (DP) | One per network segment — always on the root bridge for every one of its ports | Forwards frames toward downstream switches on this segment; sends BPDUs toward non-root switches. Always in Forwarding state. | Yes |
| Alternate Port | Non-root switch — the backup path to the root | Receives a better BPDU from another switch on the same segment. Blocked state — takes over if the Root Port fails. | Yes |
| Backup Port | Non-root switch — two ports on the same segment | Receives a better BPDU from its own switch. Blocked state — takes over if the Designated Port on the same segment fails. | Yes |
| Disabled | Any | Administratively shutdown or not participating in STP. | Yes |
Three switches, full mesh — VLAN 10, Switch A is root:
[Switch A — Root]
Gi0/1 = Designated (to Switch B)
Gi0/2 = Designated (to Switch C)
| |
[Switch B] [Switch C]
Gi0/1 = Root Port (→A) Gi0/1 = Root Port (→A)
Gi0/2 = Designated (→C) Gi0/2 = Alternate (blocked)
The Gi0/2 link between B and C:
Switch B's port = Designated (it has the better path to root via A)
Switch C's port = Alternate (blocked to prevent a loop)
5. STP Port States
When STP makes a topology decision (port role assigned) the port transitions through states before becoming active. In PVST/PVST+ (classic 802.1D-based), the five states are:
| State | Duration | Forwards Frames? | Learns MACs? | Receives BPDUs? | Description |
|---|---|---|---|---|---|
| Blocking | Up to 20s (Max Age) | No | No | Yes | Port receives BPDUs and determines its role; does not forward any data frames to prevent loops |
| Listening | 15s (Forward Delay) | No | No | Yes | Port participates in root bridge election by sending and processing BPDUs; not yet forwarding or learning |
| Learning | 15s (Forward Delay) | No | Yes | Yes | Port builds the MAC address table from incoming frames without forwarding them; reduces flooding when it transitions to Forwarding |
| Forwarding | Indefinite | Yes | Yes | Yes | Normal operation — port forwards data frames and continues learning MACs; only Root Ports and Designated Ports reach this state |
| Disabled | Indefinite | No | No | No | Port is administratively shut down or not participating in STP |
Port state transition timeline (new link comes up): Port up → Blocking (20s) → Listening (15s) → Learning (15s) → Forwarding Total: up to 50 seconds before a port forwards data! This is why PVST+ convergence is slow and why PortFast exists — PortFast skips Listening and Learning for access ports connected to end devices (never use on switch-to-switch links).
6. Load Balancing with Per-VLAN Root Bridges
The most powerful benefit of PVST/PVST+ over classic STP is the ability to achieve true Layer 2 load balancing by assigning different VLANs different root bridges. With classic STP, all traffic for every VLAN must follow the same spanning tree — redundant links that are blocked for one VLAN are blocked for all. With PVST/PVST+, you can utilise every physical link simultaneously — just for different VLANs.
Network: S1 — S2 — S3 (triangle topology)
VLANs: 10 (Sales), 20 (Engineering), 30 (Management)
Without PVST (classic STP — one root for all):
Root = S1
S1–S2: Forwarding (all VLANs)
S1–S3: Forwarding (all VLANs)
S2–S3: BLOCKED (all VLANs) ← this link is completely wasted
With PVST+ (separate root per VLAN):
VLAN 10: S1 = Root → S1–S2 active, S1–S3 active, S2–S3 BLOCKED
VLAN 20: S2 = Root → S2–S1 active, S2–S3 active, S1–S3 BLOCKED
VLAN 30: S3 = Root → S3–S1 active, S3–S2 active, S1–S2 BLOCKED
All three physical links carry traffic — just for different VLANs.
Bandwidth on every link is utilised → true load balancing.
Configuration:
S1(config)# spanning-tree vlan 10 priority 4096 ! S1 = root for VLAN 10
S2(config)# spanning-tree vlan 20 priority 4096 ! S2 = root for VLAN 20
S3(config)# spanning-tree vlan 30 priority 4096 ! S3 = root for VLAN 30
Also set secondary roots (backup):
S2(config)# spanning-tree vlan 10 priority 8192 ! S2 = backup root for VLAN 10
S3(config)# spanning-tree vlan 20 priority 8192 ! S3 = backup root for VLAN 20
S1(config)# spanning-tree vlan 30 priority 8192 ! S1 = backup root for VLAN 30
7. BPDUs in PVST and PVST+
BPDUs (Bridge Protocol Data Units) are the control frames that STP uses to exchange topology information. PVST/PVST+ BPDUs carry VLAN-specific information so each STP instance can be managed independently.
| STP Variant | BPDU Destination MAC | VLAN Info | Notes |
|---|---|---|---|
| Classic 802.1D STP | 0180.C200.0000 |
None — single instance | IEEE standard multicast address |
| PVST | 0100.0CCC.CCCD |
Yes — VLAN tag in Cisco-proprietary format | Cisco-proprietary; ISL trunks only |
| PVST+ (non-native VLANs) | 0100.0CCC.CCCD |
Yes — VLAN ID in 802.1Q tag | Cisco-proprietary multicast; sent tagged over 802.1Q trunk |
| PVST+ (native VLAN / VLAN 1) | 0180.C200.0000 |
No tag (native VLAN = untagged) | Uses IEEE standard MAC for VLAN 1 — enables interoperability with non-Cisco switches on the native VLAN |
The dual BPDU behaviour of PVST+ for the native VLAN is what enables interoperability with IEEE 802.1D switches: those switches see and process standard BPDUs on the native VLAN as part of the Common Spanning Tree (CST), while Cisco switches also handle the per-VLAN PVST+ BPDUs on tagged VLANs.
8. Cisco IOS Configuration
PVST+ is enabled by default on all Cisco Catalyst switches. No explicit global configuration is needed to use it. Configuration primarily involves setting root bridge priorities and applying STP security features.
Verify Current STP Mode
Switch# show spanning-tree summary
Switch is in pvst mode ← confirms PVST+ is active
Root bridge for: VLAN0010 VLAN0020
Extended system ID is enabled
Portfast Default is disabled
PortFast BPDU Guard Default is disabled
Portfast BPDU Filter Default is disabled
Loopguard Default is disabled
...
Set Root Bridge Priority Per VLAN
! Manual priority (multiples of 4096 only):
Switch(config)# spanning-tree vlan 10 priority 4096
Switch(config)# spanning-tree vlan 20 priority 8192
! Automatic macro (recommended):
Switch(config)# spanning-tree vlan 10 root primary
Switch(config)# spanning-tree vlan 10 root secondary
! View the result:
Switch# show spanning-tree vlan 10
VLAN0010
Spanning tree enabled protocol ieee
Root ID Priority 4106 ← 4096 + VLAN 10 = 4106
Address 0011.2233.4455
This bridge is the root
Bridge ID Priority 4106
Address 0011.2233.4455
...
Set Root Bridge on a Specific Interface (Path Cost)
! Influence root port selection by adjusting port cost (lower = preferred):
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# spanning-tree vlan 10 cost 10
! Or adjust port priority (lower = preferred, in multiples of 32):
Switch(config-if)# spanning-tree vlan 10 port-priority 64
Change STP Mode (PVST+ to Rapid PVST+)
Switch(config)# spanning-tree mode rapid-pvst
! Switches ALL VLANs from PVST+ to Rapid PVST+ simultaneously.
! Rapid PVST+ is backward-compatible with PVST+.
Switch(config)# spanning-tree mode pvst
! Revert to PVST+ (slower convergence)
Configure STP Timers (Advanced)
! Adjust hello, forward-delay, and max-age per VLAN (root bridge only):
Switch(config)# spanning-tree vlan 10 hello-time 2 ! default 2s
Switch(config)# spanning-tree vlan 10 forward-time 15 ! default 15s
Switch(config)# spanning-tree vlan 10 max-age 20 ! default 20s
! Only change timers on the ROOT bridge — all others learn them from BPDUs.
! Incorrect timer changes on non-root switches can cause instability.
See: STP Root Bridge Lab | PortFast & BPDU Guard Lab | 802.1Q Trunk Configuration | VLAN Configuration
9. STP Security Features
PVST/PVST+ networks are vulnerable to several attacks and misconfigurations. Cisco provides three key security features to protect the STP topology.
BPDU Guard
BPDU Guard immediately error-disables (err-disables) a port if it receives a BPDU. It is designed for access ports connected to end devices (PCs, printers, servers) — these should never send BPDUs. If a rogue switch or hub is connected to an access port, it could send BPDUs and potentially win the root bridge election, disrupting the entire network.
! Enable BPDU Guard on a specific interface:
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# spanning-tree bpduguard enable
! Enable BPDU Guard globally on all PortFast-enabled ports:
Switch(config)# spanning-tree portfast bpduguard default
! When triggered: port goes to err-disabled state
%SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU on port GigabitEthernet0/1
with BPDU Guard enabled. Disabling port.
%PM-4-ERR_DISABLE: bpduguard error detected on Gi0/1, putting Gi0/1 in err-disable state
! To recover (fix the cause first, then):
Switch(config-if)# shutdown
Switch(config-if)# no shutdown
! Or configure automatic recovery:
Switch(config)# errdisable recovery cause bpduguard
Switch(config)# errdisable recovery interval 300
Root Guard
Root Guard prevents a port from becoming a root port — effectively preventing any switch connected on that port from becoming the root bridge. If a superior BPDU arrives on a Root Guard-enabled port, the port is placed in a "root-inconsistent" state (blocking) rather than being error-disabled. When the superior BPDUs stop, the port automatically recovers.
! Enable Root Guard on ports facing downstream switches:
Switch(config)# interface GigabitEthernet0/2
Switch(config-if)# spanning-tree guard root
! Apply Root Guard on ports facing the network edge —
! NOT on uplinks toward the legitimate root bridge.
! When triggered:
%SPANTREE-2-ROOTGUARD_BLOCK: Root guard blocking port Gi0/2
on VLAN0010.
! Automatically recovers when superior BPDUs stop arriving —
! no manual intervention needed (unlike BPDU Guard).
PortFast
PortFast allows an access port to skip the Listening and Learning states and go directly to Forwarding when a device connects. Without PortFast, a PC would wait up to 30 seconds before it could communicate — which causes DHCP timeouts, boot failures, and user complaints. Never enable PortFast on a port connected to another switch — it bypasses loop protection.
! Enable PortFast on a specific access port:
Switch(config)# interface GigabitEthernet0/3
Switch(config-if)# spanning-tree portfast
! Enable PortFast globally on all access (non-trunk) ports:
Switch(config)# spanning-tree portfast default
! Port transition with PortFast:
Without PortFast: Link up → Blocking(20s) → Listening(15s) → Learning(15s) → Forwarding
With PortFast: Link up → Forwarding immediately (skips 30s delay)
! PortFast ports still participate in STP — they will transition
! to Blocking if a loop is detected.
BPDU Filter
BPDU Filter prevents BPDUs from being sent or received on a port. It is less commonly used than BPDU Guard because it silently suppresses BPDUs rather than error-disabling the port — this can mask loop conditions. Use with caution.
Switch(config-if)# spanning-tree bpdufilter enable
! Use only on ports where BPDUs are genuinely not needed,
! such as provider-facing ports in Metro Ethernet designs.
| Feature | Triggers On | Action | Recovery | Use On |
|---|---|---|---|---|
| BPDU Guard | Receiving any BPDU | Error-disables the port immediately | Manual (shutdown/no shutdown) or errdisable recovery | Access ports connected to end devices (PCs, servers) |
| Root Guard | Receiving a superior BPDU (potential new root) | Places port in root-inconsistent state (blocking) | Automatic when superior BPDUs stop | Ports facing edge switches that should never become root |
| PortFast | Port link-up | Skips Listening and Learning → immediate Forwarding | N/A (always active on the port) | Access ports connected to end devices only |
See: Port Security Violation Modes | ACLs | PortFast & BPDU Guard Reference
10. PVST+ vs Rapid PVST+ vs MSTP
| Feature | PVST+ | Rapid PVST+ | MSTP (802.1s) |
|---|---|---|---|
| IEEE standard base | 802.1D (classic STP) | 802.1w (RSTP) | 802.1s (MSTP) |
| Convergence time | ~30–50 seconds | ~1–5 seconds | ~1–5 seconds |
| STP instances | One per VLAN | One per VLAN | One per group of VLANs (mapped to MST instances) |
| CPU/memory overhead | High (500 VLANs = 500 instances) | High (same — one per VLAN) | Low (few instances regardless of VLAN count) |
| Load balancing | Yes — different root per VLAN | Yes — different root per VLAN | Yes — different root per MST instance |
| Vendor support | Cisco only | Cisco only | Multi-vendor (IEEE standard) |
| Best for | Small Cisco-only networks with few VLANs | Cisco-only networks needing fast convergence | Large or multi-vendor networks with many VLANs |
| Cisco IOS command | spanning-tree mode pvst |
spanning-tree mode rapid-pvst |
spanning-tree mode mst |
Rapid PVST+ is identical to PVST+ in configuration and operation — all the same priority commands, BPDU Guard, Root Guard, and PortFast syntax work without modification. The only change is the underlying protocol uses 802.1w mechanisms (proposal/agreement handshake between switches) instead of timer-based transitions, reducing convergence from ~50 seconds to ~1–5 seconds. For any new Cisco deployment, Rapid PVST+ is the recommended choice.
See: RSTP / Rapid PVST+ | STP (802.1D)
11. Verification Commands
! Show STP status for all VLANs:
Switch# show spanning-tree
! Show STP for a specific VLAN:
Switch# show spanning-tree vlan 10
VLAN0010
Spanning tree enabled protocol ieee
Root ID Priority 4106 ← root bridge priority
Address aabb.cc00.0100 ← root bridge MAC
Cost 4 ← cost to reach root
Port 1 (GigabitEthernet0/1) ← root port
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32778 (priority 32768 sys-id-ext 10)
Address aabb.cc00.0200
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- ------
Gi0/1 Root FWD 4 128.1 P2p
Gi0/2 Altn BLK 4 128.2 P2p
! Column meanings:
! Role: Root (Root Port), Desg (Designated), Altn (Alternate/blocked)
! Sts: FWD (Forwarding), BLK (Blocking), LRN (Learning), LIS (Listening)
! Cost: Path cost to root; lower = better
! Type: P2p (point-to-point link), Shr (shared/hub), Edge (PortFast)
! Summary of all STP instances:
Switch# show spanning-tree summary
! Detailed per-port STP info (timers, sent/received BPDUs):
Switch# show spanning-tree detail
! Verify BPDU Guard and PortFast status:
Switch# show spanning-tree interface GigabitEthernet0/3 detail
! Check for err-disabled ports:
Switch# show interfaces status err-disabled
Switch# show errdisable recovery
12. Troubleshooting PVST/PVST+
| Symptom | Likely Cause | Diagnostic Steps |
|---|---|---|
| Broadcast storm / network loop | BPDUs filtered by an ACL or misconfigured BPDU Filter; PortFast enabled on a switch-to-switch link | Check CPU utilisation — a storm causes CPU to spike;
show spanning-tree summary to confirm STP
is running; verify no ACL blocks multicast to
0100.0CCC.CCCD |
| Suboptimal traffic path / all traffic through one switch | Root bridge is an unintended switch (e.g., lowest MAC won the election by default) | show spanning-tree vlan <id> —
check "Root ID" section to see which switch is root;
set explicit priorities to control root placement |
| Port stuck in Blocking/Listening/Learning | Root Guard blocking a port receiving superior BPDUs; normal STP convergence still in progress; timer issue | show spanning-tree detail — look for
"root-inconsistent" state indicating Root Guard;
verify timers are not misconfigured on a non-root switch |
| Port in err-disabled state (BPDU Guard triggered) | A switch or device sending BPDUs was connected to an access port protected by BPDU Guard | show interfaces status err-disabled;
remove the rogue device;
shutdown / no shutdown on
the affected interface to restore it |
| Slow convergence after link failure (30–50s delay) | Using PVST+ (802.1D-based) instead of Rapid PVST+ | Verify with show spanning-tree summary;
upgrade to Rapid PVST+:
spanning-tree mode rapid-pvst |
| PVST+ and non-Cisco switch interop issue | Native VLAN mismatch; non-Cisco switch receiving PVST+ BPDUs it does not understand | Verify native VLAN matches on both ends of the trunk; non-Cisco switches will process standard BPDUs (IEEE MAC) on the native VLAN for CST interop |
13. Advantages and Disadvantages
| Advantages of PVST/PVST+ | Disadvantages of PVST/PVST+ |
|---|---|
| Per-VLAN load balancing — all physical links can carry traffic for different VLANs simultaneously | One STP instance per VLAN — in a network with 200 VLANs, 200 separate spanning tree instances are running; high CPU and memory consumption on switches |
| Granular topology control — independently optimise each VLAN's root bridge, path costs, and failover | Slow convergence (~30–50 seconds) when a link fails (unless Rapid PVST+ is used) |
| Enhanced redundancy — a failure in one VLAN's spanning tree does not affect other VLANs | Cisco-proprietary — requires Cisco switches throughout or careful PVST+ native-VLAN interop with non-Cisco devices |
| PVST+ is default — no extra configuration needed to enable per-VLAN STP on Cisco switches | More complex troubleshooting — must verify STP state per VLAN, not just overall; mismatched priorities can cause suboptimal paths on specific VLANs |
| Compatible with Rapid PVST+ — upgrading from PVST+ to Rapid PVST+ requires only a single global command with no other changes | Not scalable for large networks with hundreds of VLANs — MSTP is more appropriate in those environments |
14. Exam Tips & Key Points
- PVST/PVST+ is Cisco-proprietary — not an IEEE standard. PVST uses ISL trunks only; PVST+ adds 802.1Q support. PVST+ is the default on all modern Cisco switches.
- The Bridge ID = Priority + Extended System ID (VLAN) + MAC. Priority must be configured in multiples of 4096. Default priority is 32768. The switch with the lowest Bridge ID wins the root election.
- Know the priority macro commands:
spanning-tree vlan <n> root primarysets priority 24576;root secondarysets 28672. - Know all four port roles: Root Port (one per switch — best path to root), Designated Port (one per segment — forwards toward downstream), Alternate Port (blocked backup for root port), Backup Port (blocked backup for designated port).
- Know all five port states: Blocking → Listening (15s) → Learning (15s) → Forwarding → Disabled. Total time without PortFast: up to 50 seconds.
- BPDU Guard = error-disables access ports that receive BPDUs (protects against rogue switches); Root Guard = blocks ports that receive superior BPDUs (protects root bridge placement); PortFast = skips Listening/Learning on access ports for fast host connectivity. Never use PortFast on switch-to-switch links.
- PVST/PVST+ convergence = ~30–50s. Rapid PVST+ convergence
= ~1–5s. Upgrade with
spanning-tree mode rapid-pvst. - PVST+ BPDUs use MAC
0100.0CCC.CCCDfor tagged VLANs and0180.C200.0000(IEEE standard) for the native VLAN — enabling CST interoperability with non-Cisco switches on the native VLAN. - Load balancing: assign different VLANs different root bridges to utilise all physical links simultaneously. Example: Switch A = root for VLAN 10, Switch B = root for VLAN 20.
- For large or multi-vendor networks use MSTP (802.1s) which groups VLANs into instances, dramatically reducing STP overhead.
15. Summary Reference Table
| Topic | PVST / PVST+ Detail |
|---|---|
| STP instances | One per VLAN — independent root, topology, and blocked ports per VLAN |
| Default on Cisco | Yes — PVST+ is default; enabled automatically |
| Trunk support | PVST: ISL only; PVST+: 802.1Q and ISL |
| Root bridge election | Lowest Bridge ID (priority + VLAN + MAC) per VLAN |
| Default STP priority | 32768; configure in multiples of 4096 |
| Set root (manual) | spanning-tree vlan <n> priority 4096 |
| Set root (macro) | spanning-tree vlan <n> root primary |
| Convergence | ~30–50 seconds (PVST+); ~1–5 seconds (Rapid PVST+) |
| BPDU Guard | spanning-tree bpduguard enable — err-disables port on BPDU receipt |
| Root Guard | spanning-tree guard root — blocks port if superior BPDU received |
| PortFast | spanning-tree portfast — skip Listening/Learning on access ports |
| Verify STP per VLAN | show spanning-tree vlan <n> |
| Upgrade to Rapid PVST+ | spanning-tree mode rapid-pvst |