| Internet-Draft | Congestion Avoidance Using Segment Routi | October 2026 |
| He & Deng | Expires 16 April 2027 | [Page] |
This document describes a generic solution of congestion avoidance, which is aimed at providing local link congestion avoidance within the Segment Routing (SR) framework. Based on the concept of Topology Independent Loop-Free Alternate (TI- LFA) Fast Reroute (FRR), the selected shortest path can bypass the congested link while avoiding the formation of micro-loops. The advantage of this solution is that it does not require any protocol extension.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 16 April 2027.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
The emerging services including enhanced Mobile Broadband (eMBB) and Ultra-Reliable Low Latency Communication (uRLLC) have imposed stringent requirements on IP bearer network performance, demanding significantly reduced latency, minimized jitter, and minimal packet loss. However, Frequent network congestion incidents degrade network performance and introduce the uncertainty in service delivery. Seeking uncongested paths for these applications has become indispensable.¶
This document outlines a local congestion avoidance mechanism that leverages Segment Routing (SR) in the event of a congestion occurrence involving a directly connected link. This mechanism is designed for standard link-state Interior Gateway Protocol (IGP) shortest path scenarios. Non-SR mechanisms for local congestion avoidance are beyond the scope of this document. Non-local congestion avoidance is addressed in other documents, such as[I-D.ietf-fann-problem-statement], [I-D.zzhang-rtgwg-router-info] and [I-D.cheng-rtgwg-adaptive-routing-framework].¶
RFC9855 presents Topology Independent Loop-Free Alternate (TI- LFA) Fast Reroute (FRR), which is aimed at providing protection of node and Adjacency segments within the Segment Routing (SR) framework. It describes the capability providing a loop-free backup path that is effective across all network topologies. TI-LFA [RFC9855] paths are activated from the instant the PLR detects a failure in a local link and remain in effect until the IGP convergence at the PLR is fully achieved. Consequently, they are not susceptible to micro-loops that may arise due to variations in the IGP convergence times across different nodes which these paths traverse. This ensures a stable and predictable routing environment, minimizing disruptions typically associated with asynchronous network behavior.¶
For each destination (as specified by the IGP) in the network, TI-LFA pre-installs a backup forwarding entry for each protected destination ready to be activated upon detection of the failure of a link used to reach the destination.¶
Similarly, TI-LFA mechanism is also applicable to the congestion case. TI-LFA paths can be activated from the instant the PLR detects a congestion in a local link and remain in effect until the congestion is fully eliminated. The only difference lies in that in congstion scenarios, IGP convergence does not occur. Therefore, the Forwarding Information Base (FIB) in each router (including local node detecting the congestion) remains unchanged. Upon detection of the congestion recovery of the link, the backup forwarding entry for the specified protected destination can be inactivated, and this link will resume use for the traffic to reach the destination.¶
This document describes a generic solution of congestion avoidance, which is aimed at providing local link congestion avoidance within the Segment Routing (SR) framework. Based on the concept of TI-LFA FRR, the selected shortest path can bypass the congested link while avoiding the formation of micro-loops.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
Abbreviations and Notations used in this document:¶
DLFA: Directed Loop-Free Alternate¶
FRR: Fast Reroute¶
IGP: Interior Gateway Protocol¶
LFA: Loop-Free Alternate¶
LSDB: Link State Database¶
PLR: Point of Local Repair¶
RL: Repair List¶
RLFA: Remote Loop-Free Alternate¶
SID: Segment Identifier¶
SPF: Shortest Path First¶
SR: Segment Routing¶
SRv6: Segment Routing over IPv6¶
TI-LFA: Topology Independent Loop-Free Alternate¶
The main notations used in this document are defined as follows:¶
The PLR is the router that applies fast traffic restoration after detecting failure in a directly attached link, set of links, and/ or node.¶
Similar to [RFC7490], the concept of P-space and Q-space is used for TI-LFA.¶
The P-space P(S, X) of a router S with regard to a protected link X is the set of routers reachable from S using the pre-convergence shortest paths without any of those paths (including equal-cost path splits) transiting through X. A P node is a node that belongs to the P-space.¶
Consider the set of neighbors of a router S and a protected link X. Exclude from that set of neighbors that are reachable from S using X. The extended P-space P'(S, X) of a node S with regard to a protected link X is the union of the P-spaces of the neighbors in that reduced set of neighbors with regard to the protected link X.¶
The Q-space Q(D, X) of a router D with regard to a protected link X is the set of routers from which D can be reached without any path (including equal-cost path splits) transiting through X. A Q node is a node that belongs to the Q-space.¶
EP(P, Q) is an explicit SR path from a node P to a node Q.¶
The Adj-SID(S-F) is the Adjacency segment from node S to node F.¶
The TI-LFA repair path consists of an outgoing interface and a list of segments (a Repair List (RL)) to insert on the SR header in accordance with the data plane used. The RL encodes the explicit path to the destination, which avoids the congested link (corresponds to the protected link). At the same time, the RL is guaranteed to be loop-free.¶
The TI-LFA repair path is found by intersecting P(S, X) and Q(D, X) with the post-convergence path to D and computing the explicit SR- based path EP(P, Q) from a node P in P(S, X) to a node Q in Q(D, X) when these nodes are not adjacent along the post-convergence path. The TI-LFA RL is expressed generally as [Node-SID(P), EP(P, Q)].¶
The post-convergence path in this document designates the shortest path from the source to its destination that can bypass the congested link, as if this link fails. Actually, when a link encounters congestion, IGP convergence does not occur,and the FIB in each router (including local node detecting the congestion) remains unchanged.¶
Take Figure 1 as an example. The target is to find a TI-LFA backup for the traffic from S to D, considering the congested link S-N1.¶
S --------- N1--------- D
|\ |
| \ |
| \ |
| N2----- R1**********R2
| *
N3 **********
***** : link with high metric (100)
----- : link with metric 1
First, P(S, N1) is computed and results in [N3, N2, R1].¶
Then, Q(D, N1) is computed and results in [R2].¶
The expected post-convergence path from S to D considering the congested link S-N1 is: [N2 ->R1 ->R2 ->D] (we are naming it "PCPath" in this example).¶
P(S, N1) intersection with PCPath is [N2, R1]. With R1 being the deeper downstream node in PCPath, it can be assumed to be used as a P node (this is an example, and an implementation could use a different strategy to choose the P node).¶
Q(D, N1) intersection with PCPath is [R2], so R2 is picked as a Q node. An SR-explicit path is then computed from R1 (P node) to R2 (Q node) following PCPath [R1 -> R2]: Adj-SID(R1-R2).¶
As a result, the TI-LFA RL of S for destination D considering the congested link S-N1 is: [Node-SID(R1), Adj-SID(R1-R2)].¶
When a direct neighbor is in P(S, X) and Q(D, x), and the link to that direct neighbor is on the post-convergence path, the outgoing interface is set to that neighbor and the repair segment list is empty.¶
This is comparable to a post-convergence LFA FRR repair [RFC5286].¶
When a remote node R is in P(S, X) and Q(D, X) and on the post- convergence path, the RL is made of a single node segment to R, and the outgoing interface is set to the outgoing interface used to reach R.¶
This is comparable to a post-convergence RLFA repair tunnel [RFC7490].¶
When a node P is in P(S, X) and a node Q is in Q(D, X), and both are on the post-convergence path and are adjacent to each other, the RL is made of two segments: a node segment to P (to be processed first), followed by an Adjacency segment from P to Q.¶
This is comparable to a post-convergence Directed Loop-Free Alternate (DLFA) repair tunnel [I-D.bryant-ipfrr-tunnels].¶
In some cases, there is no adjacent P and Q node along the post-convergence path. A list of Adjacency SIDs can be used to encode the path between P and Q. However, the PLR can perform additional computations to compute a shorter list of segments that represent a loop-free path from P to Q. How these computations are done is out of the scope of this document and is left to implementation.¶
Typically, We only need to provide congestion avoidance backup paths for loss or delay sensitive services. First, the PLR is required to configure TI-LFA based on link protection for the destination prefixes of those protected traffic flows (for VPN services, they can be IP addresses of Egress PEs ). Then the corresponding TI-LFA RLs are automatically generated based on local Link State Database (LSDB) and installed into FIB as backup path.¶
A link congestion event can be quickly detected by the hardware (e.g., ASIC) at milliseconds or even microseconds interval. Though a transient congestion can be detected due to the instantaneous queue size reaching a threshold, it may be a noisy signal of congestion, which should not be used as a typical congestion event. Preferably, a persistent congestion event lasting for at least tens of milliseconds is of value for the protected traffic flows. On the other hand, transient congestion could lead to frequent switchover of the protected traffic between the primary link and backup path, and this will excessively consume the processing resources required for packet encapsulation and decapsulation. Therefore, a persistent congestion can be most likely detected based on the average queue length exceeding a threshold, and used as the trigger for traffic switching. The Exponentially Weighted Moving Average (EWMA) is widely adopted to estimate the average queue length, and is recommended for use in this document. The specific specification of capturing a reliable congestion is out of the scope of this document.¶
Upon detection of a congestion event, the PLR MUST set in FIB the forwarding entries corresponding to the protected destination prefixes at "invalid" state. At the moment, TI-LFA paths can be activated and remain in effect until the forwarding entries get available again. Upon detection of the congestion recovery of the link, the PLR MUST set in FIB the forwarding entries corresponding to the protected destination prefixes at "valid" state. The mechanisms for disabling the forwarding entries in FIB upon detection of congestion and enabling the forwarding entries in FIB upon detection of congestion recovery depend on implementations, and are outside the scope of this document.¶
To prevent frequent switchover of traffic flows between the protected link and backup path, the PLR is required to support a persistent timer before the protected trffic flows are switched to the protected link upon detection of the congestion recovery of the link. The time for the persistent timer should be configurable.¶
An example application of TI-LFA backup path for end-to-end congestion avoidance is shown in Figure 2. It is a commonly deployed topology.¶
S --------- N1--------- D
| | |
| | |
| | |
N2----------R1---------R2
In the above topology, all links have the same metric. The traffic flow with loss or delay-sensitivity from the source (S) to the destination (D) selects the shortest path: [S -> N1 -> D]. To realize end-to-end congestion avoidance, both link S-N1 and link N1-D need to be protected when they encounter congestion.¶
Asuming that link S-N1 is congested, the TI-LFA backup from S to D is computed as follows.¶
The extended P-space P'(S, N1) is computed and results in [N2, R1].¶
Q(D, N1) is computed and results in [R1, R2].¶
So PQ node is R1.¶
As a result, the TI-LFA RL of source S for destination D considering the congested link S-N1 is: Node-SID(R1).¶
The post-convergence path from S to D has two equal cost paths:¶
In SRv6 network, when the protected traffic flow is switched to TI-LFA backup path, the node S serving as the PLR needs to support the H.Encaps behavior, and adds the outer IPv6 header to the original IPv6 packet unmodified (with the exception of IPv6 Hop Limit that is decremented), with the source IPv6 address being the address of the node S (e.g., assigned to its loopback) and the destination IPv6 address being the SID of the node R1. The SID of the node R1 may be End.DT6, End.DT46 or End with USD flavor.¶
Asuming that link N1-D is congested, the TI-LFA backup from N1 to D is computed as follows.¶
An SR-explicit path is then computed from R1 (P node) to R2 (Q node) is: Adj-SID(R1-R2).¶
As a result, the TI-LFA RL of N1 for destination D considering the congested link N1-D is: [Node-SID(R1), Adj-SID(R1-R2)].¶
In SRv6 network, when the protected traffic flow is switched to TI-LFA backup path, the node N1 serving as the PLR needs to support the H.Encaps behavior, and add the outer IPv6 header to the original IPv6 packet unmodified (with the exception of IPv6 Hop Limit that is decremented), with the source IPv6 address being the address of the node N1 (e.g., assigned to its loopback) and the destination IPv6 address being the SID of the node R1. The SID of the node R1 may be End.DX6 or End.X with USD flavor, which has a cross-connect to R2.¶
This document has no IANA actions.¶
The security considerations described in [RFC5286], [RFC7490] and [RFC9855] apply to this document. Similarly, as the solution described in this document is based on SR technology, the reader should be aware of the security considerations related to this technology (see [RFC8402]) and its data plane instantiations (see [RFC8660], [RFC8754], and [RFC8986]).¶
As transient congestion could lead to frequent switchover of the protected traffic between the primary link and backup path, and this will excessively consume the processing resources required for packet encapsulation and decapsulation, impacting forwarding performance. Therefore, cautious measures SHOULD be taken to avoid using instantaneous congestion as a trigger for traffic switchover as much as possible. AT the same time, to prevent frequent switchover of traffic flow between the protected link and backup path, the PLR SHOULD support a persistent timer before the protected trffic flows are switched to the protected link.¶