rfc9855v1.txt   rfc9855.txt 
skipping to change at line 427 skipping to change at line 427
need for any coordination or message exchange between the PLR and any need for any coordination or message exchange between the PLR and any
other router in the network. other router in the network.
The TI-LFA repair path is found by intersecting P(S,X) and Q(D,X) 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- 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) 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. when these nodes are not adjacent along the post-convergence path.
The TI-LFA repair list is expressed generally as (Node-SID(P), EP(P, The TI-LFA repair list is expressed generally as (Node-SID(P), EP(P,
Q)). Q)).
S ------- N1 ----------- D S --------- N1 --------- D
*\ | \ | *\ | \ |
* \ | \ | * \ | \ |
* \ | \ | * \ | \ |
* N2-----R1****R2 *** R3 * N2----- R1***R2 *** R3
* * * *
N3 ********* N3 **********
***** : link with high metric (1k) ***** : link with high metric (1k)
----- : link with metric 1 ----- : link with metric 1
Figure 1: Sample Topology with TI-LFA Figure 1: Sample Topology with TI-LFA
As an example, in Figure 1, the focus is on the TI-LFA backup from S As an example, in Figure 1, the focus is on the TI-LFA backup from S
to D, considering the failure of node N1. to D, considering the failure of node N1.
* First, P(S, N1) is computed and results in [N3, N2, R1]. * First, P(S, N1) is computed and results in [N3, N2, R1].
skipping to change at line 500 skipping to change at line 500
When a node P is in P(S,X) and a node Q is in Q(D,x), and both are on 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 repair the post-convergence path and are adjacent to each other, the repair
list is made of two segments: a node segment to P (to be processed list is made of two segments: a node segment to P (to be processed
first), followed by an adjacency segment from P to Q. first), followed by an adjacency segment from P to Q.
This is comparable to a post-convergence DLFA (LFA with directed This is comparable to a post-convergence DLFA (LFA with directed
forwarding) repair tunnel. forwarding) repair tunnel.
5.4. Connecting Distant P and Q Nodes Along Post-Convergence Paths 5.4. Connecting Distant P and Q Nodes Along Post-Convergence Paths
In some cases, there is no adjacent P and Q node along the post- In some cases, there is no adjacent P and Q node along the
convergence path. As mentioned in Section 3, a list of adjacency post-convergence path. As mentioned in Section 3, a list of
SIDs can be used to encode the path between P and Q. However, the adjacency SIDs can be used to encode the path between P and Q.
PLR can perform additional computations to compute a list of segments However, the PLR can perform additional computations to compute a
that represent a loop-free path from P to Q. How these computations shorter list of segments that represent a loop-free path from P to Q.
are done is out of scope of this document and is left to How these computations are done is out of scope of this document and
implementation. is left to implementation.
6. Building TI-LFA Repair Lists for SR Segments 6. Building TI-LFA Repair Lists for SR Segments
The following sections describe how to build the repair lists using The following sections describe how to build the repair lists using
the terminology defined in [RFC8402]. The procedures described in the terminology defined in [RFC8402]. The procedures described in
this section are equally applicable to both the Segment Routing over this section are equally applicable to both the Segment Routing over
MPLS (SR-MPLS) and the Segment Routing over IPv6 (SRv6) dataplane, MPLS (SR-MPLS) and the Segment Routing over IPv6 (SRv6) dataplane,
while the dataplane-specific considerations are described in while the dataplane-specific considerations are described in
Section 7. Section 7.
skipping to change at line 611 skipping to change at line 611
7.1. MPLS Dataplane Considerations 7.1. MPLS Dataplane Considerations
The MPLS dataplane for Segment Routing (SR) is described in The MPLS dataplane for Segment Routing (SR) is described in
[RFC8660]. [RFC8660].
The following dataplane behaviors apply when creating a repair list The following dataplane behaviors apply when creating a repair list
using an MPLS dataplane: using an MPLS dataplane:
1. If the active segment is a node segment that has been signaled 1. If the active segment is a node segment that has been signaled
with penultimate hop popping, and the repair list ends with an with penultimate hop popping, and the repair list ends with an
adjacency segment terminating on a node that advertised the adjacency segment terminating on the penultimate node of the
"NEXT" operation [RFC8402] of the active segment, then the active active segment, then the active segment MUST be popped before
segment MUST be popped before pushing the repair list. pushing the repair list.
2. If the active segment is a node segment, but the other conditions 2. If the active segment is a node segment, but the other conditions
in 1. are not met, the active segment MUST be popped and then in 1. are not met, the active segment MUST be popped and then
pushed again with a label value computed according to the Segment pushed again with a label value computed according to the Segment
Routing Global Block (SRGB) of Q, where Q is the endpoint of the Routing Global Block (SRGB) of Q, where Q is the endpoint of the
repair list. Finally, the repair list MUST be pushed. repair list. Finally, the repair list MUST be pushed.
7.2. SRv6 Dataplane Considerations 7.2. SRv6 Dataplane Considerations
SRv6 dataplane and programming instructions are described SRv6 dataplane and programming instructions are described
skipping to change at line 880 skipping to change at line 880
and PE4, when the link L fails, depending on the convergence speed of and PE4, when the link L fails, depending on the convergence speed of
the nodes, X may reroute its forwarding entries to the remote PEs the nodes, X may reroute its forwarding entries to the remote PEs
onto X-H or X-D; however, in a similar timeframe, PE1 will also onto X-H or X-D; however, in a similar timeframe, PE1 will also
reroute a subset of its traffic (the subset destined to PE2) out of reroute a subset of its traffic (the subset destined to PE2) out of
its nominal path, reducing the quantity of traffic received by X. its nominal path, reducing the quantity of traffic received by X.
The capacity planning rule presented previously has the drawback of The capacity planning rule presented previously has the drawback of
oversizing the network; however, it allows for preventing any oversizing the network; however, it allows for preventing any
transient congestion (for example, when X reroutes traffic before PE1 transient congestion (for example, when X reroutes traffic before PE1
does). does).
H --- I --- J H --- I --- J *
| | \ | | *
PE4 | | PE3 PE4 | | PE3
\ | (L) | / \ | (L) | *
A --- X --- B --- G * A --- X --- B --- G *
/ | | \ * | | *
PE1 | | PE2 PE1 | | PE2
\ | | / * | | *
C --- D --- E --- F * C --- D --- E --- F *
Figure 3 Figure 3
Based on this assumption, in order to facilitate the operation of FRR Based on this assumption, in order to facilitate the operation of FRR
and limit the implementation of local FRR policies, traffic can be and limit the implementation of local FRR policies, traffic can be
steered by the PLR onto its expected post-convergence path during the steered by the PLR onto its expected post-convergence path during the
FRR phase. In our example, when link L fails, X switches the traffic FRR phase. In our example, when link L fails, X switches the traffic
destined to PE3 and PE2 on the post-convergence paths. This is destined to PE3 and PE2 on the post-convergence paths. This is
perfectly in line with the capacity planning rule that was presented perfectly in line with the capacity planning rule that was presented
before and also in line with the fact that X may converge before PE1 before and also in line with the fact that X may converge before PE1
skipping to change at line 929 skipping to change at line 929
that happened is different from the failure FRR was protecting that happened is different from the failure FRR was protecting
against. As an example, if the operator has implemented a protection against. As an example, if the operator has implemented a protection
against a node failure, the expected post-convergence path used against a node failure, the expected post-convergence path used
during FRR will be the one considering that the node has failed. during FRR will be the one considering that the node has failed.
However, even if a single link is failing or a set of links is However, even if a single link is failing or a set of links is
failing (instead of the full node), the node-protecting post- failing (instead of the full node), the node-protecting post-
convergence path will be used. The consequence is that the path used convergence path will be used. The consequence is that the path used
during FRR is not optimal with respect to the failure that has during FRR is not optimal with respect to the failure that has
actually occurred. actually occurred.
Another consideration to take into account is as follows: While using Another consideration to take into account is as follows: while using
the expected post-convergence path for SR traffic using node segments the expected post-convergence path for SR traffic using node segments
only (for instance, PE to PE traffic using the shortest path) has only (for instance, PE to PE traffic using the shortest path) has
some advantages, these advantages reduce when SR policies [RFC9256] some advantages, these advantages reduce when SR policies [RFC9256]
are involved. A segment list used in an SR policy is computed to are involved. A segment list used in an SR policy is computed to
obey a set of path constraints defined locally at the head-end or obey a set of path constraints defined locally at the head-end or
centrally in a controller. TI-LFA cannot be aware of such path centrally in a controller. TI-LFA cannot be aware of such path
constraints, and there is no reason to expect the TI-LFA backup path constraints, and there is no reason to expect the TI-LFA backup path
protecting one segment in that segment list to obey those protecting one segment in that segment list to obey those
constraints. When SR policies are used and the operator wants to constraints. When SR policies are used and the operator wants to
have a backup path that still follows the policy requirements, this have a backup path that still follows the policy requirements, this
skipping to change at line 961 skipping to change at line 961
This section presents an analysis performed on real service provider This section presents an analysis performed on real service provider
and large enterprise network topologies. The objective of the and large enterprise network topologies. The objective of the
analysis is to assess the number of SIDs required in an explicit path analysis is to assess the number of SIDs required in an explicit path
when the mechanisms described in this document are used to protect when the mechanisms described in this document are used to protect
against the failure scenarios within the scope of this document. The against the failure scenarios within the scope of this document. The
number of segments described in this section are applicable to number of segments described in this section are applicable to
instantiating SR over the MPLS forwarding plane. instantiating SR over the MPLS forwarding plane.
The measurement below indicates that, for link and local SRLG The measurement below indicates that, for link and local SRLG
protection, a 1-SID repair path delivers more than 99% coverage. For protection, a repair path of 1 SID or less delivers more than 99%
node protection, a 2-SID repair path yields 99% coverage. coverage. For node protection, a repair path of 2 SIDs or less
yields 99% coverage.
Table 1 below lists the characteristics of the networks used in our Table 1 below lists the characteristics of the networks used in our
measurements. The number of links refers to the number of measurements. The number of links refers to the number of
"bidirectional" links (not directed edges of the graph). The "bidirectional" links (not directed edges of the graph). The
measurements are carried out as follows: measurements are carried out as follows:
* For each network, the algorithms described in this document are * For each network, the algorithms described in this document are
applied to protect all prefixes against link, node, and local SRLG applied to protect all prefixes against link, node, and local SRLG
failure. failure.
* For each prefix, the number of SIDs used by the repair path is * For each prefix, the number of SIDs used by the repair path is
recorded. recorded.
* The percentage of number of SIDs are listed in Tables 2, 3, 4, 5, * The percentage of number of SIDs are listed in Tables 2, 3, 4, 5,
6, and 7. 6, and 7.
The measurements listed in the tables indicate that for link and
local SRLG protection, a 1-SID repair path is sufficient to protect
more than 99% of the prefix in almost all cases. For node
protection, 2-SID repair paths yield 99% coverage.
+=========+=======+=======+====================+============+ +=========+=======+=======+====================+============+
| Network | Nodes | Links | Node-to-Link Ratio | SRLG Info? | | Network | Nodes | Links | Node-to-Link Ratio | SRLG Info? |
+=========+=======+=======+====================+============+ +=========+=======+=======+====================+============+
| T1 | 408 | 665 | 1.63 | Yes | | T1 | 408 | 665 | 1.63 | Yes |
+---------+-------+-------+--------------------+------------+ +---------+-------+-------+--------------------+------------+
| T2 | 587 | 1083 | 1.84 | No | | T2 | 587 | 1083 | 1.84 | No |
+---------+-------+-------+--------------------+------------+ +---------+-------+-------+--------------------+------------+
| T3 | 93 | 401 | 4.31 | Yes | | T3 | 93 | 401 | 4.31 | Yes |
+---------+-------+-------+--------------------+------------+ +---------+-------+-------+--------------------+------------+
| T4 | 247 | 393 | 1.59 | Yes | | T4 | 247 | 393 | 1.59 | Yes |
skipping to change at line 1055 skipping to change at line 1051
| T7 | 98.9% | 1.1% | 0.0% | 0.0% | | T7 | 98.9% | 1.1% | 0.0% | 0.0% |
+---------+--------+-------+--------+--------+ +---------+--------+-------+--------+--------+
| T8 | 94.1% | 5.9% | 0.0% | 0.0% | | T8 | 94.1% | 5.9% | 0.0% | 0.0% |
+---------+--------+-------+--------+--------+ +---------+--------+-------+--------+--------+
| T9 | 98.9% | 1.0% | 0.0% | 0.0% | | T9 | 98.9% | 1.0% | 0.0% | 0.0% |
+---------+--------+-------+--------+--------+ +---------+--------+-------+--------+--------+
Table 2: Link Protection (Repair Size Table 2: Link Protection (Repair Size
Distribution) Distribution)
+=========+========+========+========+========+ +=========+========+=======+========+========+
| Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | | Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs |
+=========+========+========+========+========+ +=========+========+=======+========+========+
| T1 | 74.2% | 99.5% | 99.9% | 100.0% | | T1 | 74.2% | 99.5% | 99.9% | 100% |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
| T2 | 81.1% | 99.8% | 100.0% | 100.0% | | T2 | 81.1% | 99.8% | 100% | 100% |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
| T3 | 95.9% | 99.9% | 100.0% | 100.0% | | T3 | 95.9% | 99.9% | 100% | 100% |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
| T4 | 62.5% | 98.2% | 100.0% | 100.0% | | T4 | 62.5% | 98.2% | 100% | 100% |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
| T5 | 85.7% | 100.0% | 100.0% | 100.0% | | T5 | 85.7% | 100% | 100% | 100% |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
| T6 | 81.2% | 99.9% | 100.0% | 100.0% | | T6 | 81.2% | 99.9% | 100% | 100% |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
| T7 | 98.8% | 100.0% | 100.0% | 100.0% | | T7 | 98.8% | 100% | 100% | 100% |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
| T8 | 94.1% | 100.0% | 100.0% | 100.0% | | T8 | 94.1% | 100% | 100% | 100% |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
| T9 | 98.9% | 100.0% | 100.0% | 100.0% | | T9 | 98.9% | 100% | 100% | 100% |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
Table 3: Link Protection (Repair Size Table 3: Link Protection (Repair Size
Cumulative Distribution) Cumulative Distribution)
Tables 4 and 5 summarize the measurements on the number of SIDs Tables 4 and 5 summarize the measurements on the number of SIDs
needed for local SRLG protection. needed for local SRLG protection.
+=========+========+=======+========+========+ +=========+========+=======+========+========+
| Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | | Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs |
+=========+========+=======+========+========+ +=========+========+=======+========+========+
| T1 | 74.2% | 25.3% | 0.5% | 0.0% | | T1 | 74.2% | 25.3% | 0.5% | 0.0% |
+---------+--------+-------+--------+--------+ +---------+--------+-------+--------+--------+
| T2 | No SRLG information | | T2 | No SRLG information |
skipping to change at line 1108 skipping to change at line 1104
| T7 | No SRLG information | | T7 | No SRLG information |
+---------+--------+-------+--------+--------+ +---------+--------+-------+--------+--------+
| T8 | 85.2% | 14.8% | 0.0% | 0.0% | | T8 | 85.2% | 14.8% | 0.0% | 0.0% |
+---------+--------+-------+--------+--------+ +---------+--------+-------+--------+--------+
| T9 | 98.9% | 1.1% | 0.0% | 0.0% | | T9 | 98.9% | 1.1% | 0.0% | 0.0% |
+---------+--------+-------+--------+--------+ +---------+--------+-------+--------+--------+
Table 4: Local SRLG Protection (Repair Table 4: Local SRLG Protection (Repair
Size Distribution) Size Distribution)
+=========+========+========+========+========+ +=========+========+=======+========+========+
| Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | | Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs |
+=========+========+========+========+========+ +=========+========+=======+========+========+
| T1 | 74.2% | 99.5% | 99.9% | 100.0% | | T1 | 74.2% | 99.5% | 99.9% | 100% |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
| T2 | No SRLG information | | T2 | No SRLG information |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
| T3 | 93.6% | 99.9% | 100.0% | 0.0% | | T3 | 93.6% | 99.9% | 100% | 0.0% |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
| T4 | 62.5% | 98.2% | 100.0% | 100.0% | | T4 | 62.5% | 98.2% | 100% | 100% |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
| T5 | 83.1% | 100.0% | 100.0% | 100.0% | | T5 | 83.1% | 100% | 100% | 100% |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
| T6 | No SRLG information | | T6 | No SRLG information |
+---------+-----------------------------------+ +---------+----------------------------------+
| T7 | No SRLG information | | T7 | No SRLG information |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
| T8 | 85.2% | 100.0% | 100.0% | 100.0% | | T8 | 85.2% | 100% | 100% | 100% |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
| T9 | 98.9% | 100.0% | 100.0% | 100.0% | | T9 | 98.9% | 100% | 100% | 100% |
+---------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+
Table 5: Local SRLG Protection (Repair Size Table 5: Local SRLG Protection (Repair
Cumulative Distribution) Size Cumulative Distribution)
The remaining two tables summarize the measurements on the number of The remaining two tables summarize the measurements on the number of
SIDs needed for node protection. SIDs needed for node protection.
+=========+========+=======+========+========+========+ +=========+========+=======+========+========+========+
| Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | 4 SIDs | | Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | 4 SIDs |
+=========+========+=======+========+========+========+ +=========+========+=======+========+========+========+
| T1 | 49.8% | 47.9% | 2.1% | 0.1% | 0.0% | | T1 | 49.8% | 47.9% | 2.1% | 0.1% | 0.0% |
+---------+--------+-------+--------+--------+--------+ +---------+--------+-------+--------+--------+--------+
| T2 | 36.5% | 59.6% | 3.6% | 0.2% | 0.0% | | T2 | 36.5% | 59.6% | 3.6% | 0.2% | 0.0% |
skipping to change at line 1160 skipping to change at line 1156
+---------+--------+-------+--------+--------+--------+ +---------+--------+-------+--------+--------+--------+
| T7 | 66.1% | 32.8% | 1.1% | 0.0% | 0.0% | | T7 | 66.1% | 32.8% | 1.1% | 0.0% | 0.0% |
+---------+--------+-------+--------+--------+--------+ +---------+--------+-------+--------+--------+--------+
| T8 | 59.7% | 40.2% | 0.0% | 0.0% | 0.0% | | T8 | 59.7% | 40.2% | 0.0% | 0.0% | 0.0% |
+---------+--------+-------+--------+--------+--------+ +---------+--------+-------+--------+--------+--------+
| T9 | 98.9% | 1.0% | 0.0% | 0.0% | 0.0% | | T9 | 98.9% | 1.0% | 0.0% | 0.0% | 0.0% |
+---------+--------+-------+--------+--------+--------+ +---------+--------+-------+--------+--------+--------+
Table 6: Node Protection (Repair Size Distribution) Table 6: Node Protection (Repair Size Distribution)
+=========+========+========+========+========+========+ +=========+========+=======+========+========+========+
| Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | 4 SIDs | | Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | 4 SIDs |
+=========+========+========+========+========+========+ +=========+========+=======+========+========+========+
| T1 | 49.7% | 97.6% | 99.8% | 99.9% | 100.0% | | T1 | 49.7% | 97.6% | 99.8% | 99.9% | 100% |
+---------+--------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+--------+
| T2 | 36.5% | 96.1% | 99.7% | 99.9% | 100.0% | | T2 | 36.5% | 96.1% | 99.7% | 99.9% | 100% |
+---------+--------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+--------+
| T3 | 73.3% | 98.9% | 99.9% | 100.0% | 100.0% | | T3 | 73.3% | 98.9% | 99.9% | 100% | 100% |
+---------+--------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+--------+
| T4 | 36.1% | 93.4% | 99.8% | 99.9% | 100.0% | | T4 | 36.1% | 93.4% | 99.8% | 99.9% | 100% |
+---------+--------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+--------+
| T5 | 73.2% | 100.0% | 100.0% | 100.0% | 100.0% | | T5 | 73.2% | 100% | 100% | 100% | 100% |
+---------+--------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+--------+
| T6 | 78.4% | 99.7% | 100.0% | 100.0% | 100.0% | | T6 | 78.4% | 99.7% | 100% | 100% | 100% |
+---------+--------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+--------+
| T7 | 66.1% | 98.9% | 100.0% | 100.0% | 100.0% | | T7 | 66.1% | 98.9% | 100% | 100% | 100% |
+---------+--------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+--------+
| T8 | 59.7% | 100.0% | 100.0% | 100.0% | 100.0% | | T8 | 59.7% | 100% | 100% | 100% | 100% |
+---------+--------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+--------+
| T9 | 98.9% | 100.0% | 100.0% | 100.0% | 100.0% | | T9 | 98.9% | 100% | 100% | 100% | 100% |
+---------+--------+--------+--------+--------+--------+ +---------+--------+-------+--------+--------+--------+
Table 7: Node Protection (Repair Size Cumulative Table 7: Node Protection (Repair Size Cumulative
Distribution) Distribution)
Acknowledgments Acknowledgments
The authors would like to thank Les Ginsberg, Stewart Bryant, The authors would like to thank Les Ginsberg, Stewart Bryant,
Alexander Vainsthein, Chris Bowers, Shraddha Hedge, Wes Hardaker, Alexander Vainsthein, Chris Bowers, Shraddha Hedge, Wes Hardaker,
Gunter Van de Velde, and John Scudder for their valuable comments. Gunter Van de Velde, and John Scudder for their valuable comments.
Contributors Contributors
In addition to the authors listed on the front page, the following In addition to the authors listed on the front page, the following
 End of changes. 13 change blocks. 
103 lines changed or deleted 99 lines changed or added

This html diff was produced by rfcdiff 1.48.