I'm trying to better understand loop guard. From my understanding, loop guard helps to prevent forwarding loops in the case of unidirectional link failure.
Consider 3 switches, A, B, and C. A is root and B and C have root ports connected to A. The port connecting B to C is Designated and the port connecting C to B is non-designated or blocked.
According to STP, if switch C stops receiving BPDUs from switch B, it begins the transition to forwarding, why is this? Wouldn't this cause switch C to now have 2 forwarding paths? One to switch A (Root) and one to switch B, causing a forwarding loop. Why does traditional STP allow a non designated port that stops receiving BPDUs from a designated port to transition into a forwarding state if the root port is still alive?
I also understand that with Loop Guard enabled on the port connecting switch C to B, loop guard transitions the port to an inconsistent state on non-designated ports if it stops receiving BPDUs and reenables the port once it receives BPDUs.