About Segment Routing Microloop Avoidance
Microloops (uLoops) are brief packet loops that occur in the network following a topology change (link down, link up, or metric change events). Microloops are caused by the non-simultaneous convergence of different nodes in the network. If a node converges and sends traffic to a neighbor node that has not converged yet, traffic may be looped between these two nodes, resulting in packet loss, jitter, and out-of-order packets.
A router with the Segment Routing Microloop Avoidance feature detects if microloops are possible following a topology change associated with a remote link event. If a node computes that a microloop could occur on the new topology, the node installs a temporary (based on a RIB update delay timer) microloop-avoidant SR-TE policy path to the destination using a list of segments. After the RIB update delay timer expires, the SR-TE policy is replaced with regular forwarding paths.
Consider the following example topology.
Node1 sends traffic to node 6 (16006) via Node7. Node 7 is configured with TI-LFA to protect traffic to Node6.
If the link between Node7 and Node6 goes down, TI-LFA on Node7 calculates a new path to Node6 (16006). All nodes are notified of the topology change due to the link failure.
However, if a node in this path does not converge fast enough, it would not be aware of the topology change. For example, if Node2 converged before Node3, Node3 would send traffic back to Node2 as the shortest IGP path to Node6. The traffic between Node2 and Node3 creates a microloop.
With microloop avoidance configured on Node1, a post-convergence path is computed and possible microloops on the post-convergence path for any destination are detected.
If microloops are possible on the post-convergence path to Node6, a microloop-avoidant SR-TE policy path is constructed to steer the traffic to Node6 over the post-convergence path (for example, <16005, 24056, 16006>).
Node1 updates the forwarding table and installs the SID-list imposition entries for those destinations with possible microloops, such as Node6. All nodes converge and update their forwarding tables, using SID lists where needed.
After the RIB update delay timer expires, the microloop-avoidant SR-TE policy is replaced with regular forwarding paths; traffic now natively follows the post-convergence path.