Spanning-Tree UplinkFast

This topic is to discuss the following lesson:

Hi Rene, excelent post.
However, I have some doubts about this topic. I read that using RSTP we have some improvements similar to Uplink and Backbone Fast. So, we don´t have to use this features on RSTP. Is that correct?

This output was taken from a Cat3750: “UplinkFast is enabled but inactive in rapid-pvst mode”
Can you help me with this??

Whatever, your example is fantastic.

Hi Humberto,

A long time ago, Cisco created Uplink Fast and Backbone Fast to “enhance” the old classic spanning-tree version (802.1D) . These two features were proprietary.

RSTP (802.1w) has something similar to Uplink fast and Backbone fast integrated in it so there’s no need to enable Uplink / Backbone fast. This was only nice to use for the old 802.1D version of spanning-tree.

Does this help?


1 Like

Of course.
Thank you very much!!!


Hi. Can you please further clarify the following:

"BPDUs are originated from the root bridge so if we receive BPDUs on an interface the switch knows it can reach the root bridge on this interface. We have to go through the blocking (20 seconds), listening (15 seconds) and learning state (15 seconds) so it takes 50 seconds to end up in the forwarding state.

The good thing is that spanning-tree solves the link failure automatically but it also means that we have a downtime of 30 seconds. If you want you can tune the forward delay timer to speed up this process down to roughly 14 seconds."

In the first part of the article when the link between A and C is severed what is the convergence time, 30 seconds or 50 seconds? I believe you mention that it will automatically switch over to the new root port, and then just wait the listening/learning (30 sec)?

Many thanks,


Many thanks.

Hi Thomas,

I just fixed this, it’s 30 seconds. It has to go through the listening (15) and learning (15) states so it’s 30 seconds in total.


great lessons so far.


i have a question, regarding the original root port that being brought up, once the original root port is up, will it also send a dummy multicast frame to switch A through F0/14? the traffic will still flow on (Fa0/16 of Switch C) because of the mac address table right?

Hi John,

Good question, I think not. We don’t switch back immediately to the “old” root port. Even if we would, interface fa0/17 on SwitchA still has to go through the listening and learning state which takes 30 seconds.

The dummy multicast is required because when the root port fails, we switch to the alternate port immediately.



I have a question regarding timers in a few pplaces I have seen that it can take up to 50 seconds before a port goes to forwarding. But in this case it only took 30 seconds. When does the 50 seconds come into play?



Hi Victor,

It will take 50 seconds if the interface is currently in blocking mode (20 seconds).


If I understand correctly, a non root switch ports can be either in designated mode (forwarding state) or in non-designated mode (blocking state). For a non-designated port it takes 50 seconds to become a designated port so in which scenario a non-designated port becomes a designated port (forwarding state) in 30 seconds.

Also, you mentioned that all ports start in blocking mode, do you mean during boot time?

Part that confuses me is the one where you said that when you plug a PC to a port on a switch it takes for this port 30 seconds to start forwarding (listening plus learning) so in what mode this port was in before plugging PC into it?

Hi Robert,

When you plug in a PC or anything then the interface only has to go through the listening and learning state, this will take 30 seconds in total before the interface is in forwarding mode.

Only a non-designated interface which is currently in blocking mode has to go through the blocking > listening > learning state. This takes 50 seconds in total. Where did you see the “all ports start in blocking mode” sentence? If I posted that somewhere then I’ll have to remove it, that’s confusing :slight_smile:


In the first part of this article you says:
Now we’ll just wait for the magic to happen…

SwitchC#STP: VLAN0001 new root port Fa0/16, cost 38
SwitchC#STP: VLAN0001 Fa0/16 -> listening
SwitchC#STP: VLAN0001 Fa0/16 -> learning
SwitchC#STP: VLAN0001 Fa0/16 -> forwarding

BPDUs are originated from the root bridge so if we receive BPDUs on an interface the switch knows it can reach the root bridge on this interface. We have to go through the listening (15 seconds) and learning state (15 seconds) so it takes 30 seconds to end up in the forwarding state.

In this case, the port f0/16 is in blocking mode but you mentioned that the time is 30s and in the last answer you mentioned 50s, what is the difference?

The difference is the MaxAge timer which is a default of 20 seconds. Only after the MaxAge expires will the listening/learning begin. If you add the maximum possible MaxAge to Listening/Learning, you wind up 50 seconds as the longest it would take.

Thank you for this lesson in Spanning Tree UplinkFast, i wasn’t clear if we could still use uplinkfast when using PVST+ until now.

Hi Abdool,

You are welcome. You can still use it in PVST.

There’s no need to use this in Rapid-PVST though. Rapid-PVST has similar mechanisms for backbonefast and uploadfast included “out of the box”.


Dear Rene,

Refference to OSCAR and Andrew :

I have seen in GNS3 when I shutdown the Root port of Switch C then Alternate port doesn’t wait 20 sec. After press the shut command it start for Listening , Learning and Forwarding . It should wait 20 sec then start for Listening…Forwarding, right ??

Interface                                   Designated
Name                 Port ID Prio Cost  Sts Cost  Bridge ID            Port ID
-------------------- ------- ---- ----- --- ----- -------------------- -------
FastEthernet1/9      128.50   128    19 BLK    19  8192 cc02.210c.0000 128.55
FastEthernet1/12     128.53   128    19 FWD     0  4096 cc01.2128.0000 128.45

ESW3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
ESW3(config)#inter fa1/12
*Mar  1 05:13:24.994: STP: VLAN1 Fa1/12 -> blocking
*Mar  1 05:13:24.994: STP: VLAN1 new root port Fa1/9, cost 38
*Mar  1 05:13:25.070: STP: VLAN1 Fa1/9 -> listening
*Mar  1 05:13:25.570: %DTP-5-NONTRUNKPORTON: Port Fa1/12 has become non-trunk
*Mar  1 05:13:26.862: %LINK-5-CHANGED: Interface FastEthernet1/12, changed state to administratively down
*Mar  1 05:13:26.994: STP: VLAN1 sent Topology Change Notice on Fa1/9
*Mar  1 05:13:27.862: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/12, changed state to down
*Mar  1 05:13:40.086: STP: VLAN1 Fa1/9 -> learning
*Mar  1 05:13:55.106: STP: VLAN1 Fa1/9 -> forwarding

Just Press the shut , Its start for Listening …Forwarding .Please give us some clarification on it .Many Thanks :slight_smile:

I configured a similar setup and made sure that my switches were running RSTP. On my Switch #2, it has a Root port of Gig1/2 and an Alternate port of 2/3 (see output below)

  Spanning tree enabled protocol rstp
  Root ID    Priority    4098
             Address     fa16.3ece.73b4
             Cost        4
             Port        7 (GigabitEthernet1/2)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32770  (priority 32768 sys-id-ext 2)
             Address     fa16.3ed6.e764
             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               Desg FWD 4         128.2    P2p Edge 
Gi0/2               Desg FWD 4         128.3    P2p Edge 
Gi0/3               Desg FWD 4         128.4    P2p Edge 
Gi1/1               Desg FWD 4         128.6    P2p Edge 
Gi1/2               Root FWD 4         128.7    P2p 
Gi1/3               Desg FWD 4         128.8    P2p Edge 
Gi2/1               Desg FWD 4         128.10   P2p Edge 
Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------

Gi2/2               Desg FWD 4         128.11   P2p Edge 
Gi2/3               Altn BLK 4         128.12   P2p 

Next, I shut down my root port (gig1/2), and almost instantly, the Alternate port transitioned to Root (about 1 millisecond from the output below)

SW2(config)#int gig1/2
*May  9 16:27:14.476: RSTP(2): updt roles, root port Gi1/2 going down
*May  9 16:27:14.477: RSTP(2): Gi2/3 is now root port

First thing I will say about your setup is that I have found it very difficult to get Switching based labs to work correctly in GNS3. What you are seeing above is from VIRL. Nonetheless, there are a few things to look for in your environment to make sure your setup is correct.

show spanning-tree

  1. Make sure the protocol is listed as RSTP

  2. Make sure the Type for ports connecting switches is listed as “P2p” and not “Shared” or “Shrd”
    In order for RSTP to work correctly, however, all connections between switches must be configured as full duplex. This is sometimes an issue for GNS3 or VIRL, since the emulation tends to make them not actually operate that way. If an interface is viewed as Shared by RSTP, it will fall back to operating in the old Spanning-Tree mode where a Alternate port will not exist.

  3. Make sure that what you believe to be an alternate port is actually shown as being “Altn BLK”

Dear Andrew,

Yes, After shut the Root Port the Alternate port(Blocking) instantly start for Listening …Forwarding in STP But it should wait 20 sec first then Listening …Forwarding right ??


When a Root port goes down there is no delay in an Alternate going to a Forwarding state–this is what makes an Alternate port different from a regular port that is in a discarding state. In my previous output, there was a 1 millisecond delay (and this was for the Forwarding state).

Remember, an Alternate port only exists in Rapid Spanning Tree. Rapid Spanning Tree does NOT rely on the 20 second default Max Age timer like in regular spanning-tree, nor is there any such state as “Listening.”