draft-ietf-rtgwg-segment-routing-ti-lfa-06.txt   draft-ietf-rtgwg-segment-routing-ti-lfa-07.txt 
Network Working Group S. Litkowski Network Working Group S. Litkowski
Internet-Draft Cisco Systems Internet-Draft Cisco Systems
Intended status: Standards Track A. Bashandy Intended status: Standards Track A. Bashandy
Expires: August 5, 2021 Individual Expires: December 31, 2021 Individual
C. Filsfils C. Filsfils
Cisco Systems Cisco Systems
P. Francois P. Francois
INSA Lyon INSA Lyon
B. Decraene B. Decraene
Orange Orange
D. Voyer D. Voyer
Bell Canada Bell Canada
February 1, 2021 June 29, 2021
Topology Independent Fast Reroute using Segment Routing Topology Independent Fast Reroute using Segment Routing
draft-ietf-rtgwg-segment-routing-ti-lfa-06 draft-ietf-rtgwg-segment-routing-ti-lfa-07
Abstract Abstract
This document presents Topology Independent Loop-free Alternate Fast This document presents Topology Independent Loop-free Alternate Fast
Re-route (TI-LFA), aimed at providing protection of node and Re-route (TI-LFA), aimed at providing protection of node and
adjacency segments within the Segment Routing (SR) framework. This adjacency segments within the Segment Routing (SR) framework. This
Fast Re-route (FRR) behavior builds on proven IP-FRR concepts being Fast Re-route (FRR) behavior builds on proven IP-FRR concepts being
LFAs, remote LFAs (RLFA), and remote LFAs with directed forwarding LFAs, remote LFAs (RLFA), and remote LFAs with directed forwarding
(DLFA). It extends these concepts to provide guaranteed coverage in (DLFA). It extends these concepts to provide guaranteed coverage in
any IGP network. A key aspect of TI-LFA is the FRR path selection any IGP network. A key aspect of TI-LFA is the FRR path selection
skipping to change at page 1, line 48 skipping to change at page 1, line 48
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 5, 2021. This Internet-Draft will expire on December 31, 2021.
Copyright Notice Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 45 skipping to change at page 2, line 45
5. TI-LFA Repair path . . . . . . . . . . . . . . . . . . . . . 10 5. TI-LFA Repair path . . . . . . . . . . . . . . . . . . . . . 10
5.1. FRR path using a direct neighbor . . . . . . . . . . . . 10 5.1. FRR path using a direct neighbor . . . . . . . . . . . . 10
5.2. FRR path using a PQ node . . . . . . . . . . . . . . . . 11 5.2. FRR path using a PQ node . . . . . . . . . . . . . . . . 11
5.3. FRR path using a P node and Q node that are adjacent . . 11 5.3. FRR path using a P node and Q node that are adjacent . . 11
5.4. Connecting distant P and Q nodes along post-convergence 5.4. Connecting distant P and Q nodes along post-convergence
paths . . . . . . . . . . . . . . . . . . . . . . . . . . 11 paths . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6. Building TI-LFA repair lists . . . . . . . . . . . . . . . . 11 6. Building TI-LFA repair lists . . . . . . . . . . . . . . . . 11
6.1. Link protection . . . . . . . . . . . . . . . . . . . . . 11 6.1. Link protection . . . . . . . . . . . . . . . . . . . . . 11
6.1.1. The active segment is a node segment . . . . . . . . 11 6.1.1. The active segment is a node segment . . . . . . . . 11
6.1.2. The active segment is an adjacency segment . . . . . 12 6.1.2. The active segment is an adjacency segment . . . . . 12
6.2. Protecting SR policy midpoints against node failure . . . 13 6.2. Dataplane specific considerations . . . . . . . . . . . . 13
6.2.1. Protecting {F, T, D} or {S->F, T, D} . . . . . . . . 13 6.2.1. MPLS dataplane considerations . . . . . . . . . . . . 13
6.2.2. Protecting {F, F->T, D} or {S->F, F->T, D} . . . . . 14 6.2.2. SRv6 dataplane considerations . . . . . . . . . . . . 13
6.3. Dataplane specific considerations . . . . . . . . . . . . 15 7. TI-LFA and SR algorithms . . . . . . . . . . . . . . . . . . 14
6.3.1. MPLS dataplane considerations . . . . . . . . . . . . 15 8. Usage of Adjacency segments in the repair list . . . . . . . 14
6.3.2. SRv6 dataplane considerations . . . . . . . . . . . . 15 9. Measurements on Real Networks . . . . . . . . . . . . . . . . 15
7. TI-LFA and SR algorithms . . . . . . . . . . . . . . . . . . 16 10. Security Considerations . . . . . . . . . . . . . . . . . . . 20
8. Usage of Adjacency segments in the repair list . . . . . . . 16 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20
9. Measurements on Real Networks . . . . . . . . . . . . . . . . 17 12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 20
10. Security Considerations . . . . . . . . . . . . . . . . . . . 22 13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 20
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 20
12. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 22 14.1. Normative References . . . . . . . . . . . . . . . . . . 21
13. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 22 14.2. Informative References . . . . . . . . . . . . . . . . . 21
14. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 22 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22
15. References . . . . . . . . . . . . . . . . . . . . . . . . . 22
15.1. Normative References . . . . . . . . . . . . . . . . . . 23
15.2. Informative References . . . . . . . . . . . . . . . . . 23
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24
1. Acronyms 1. Acronyms
o DLFA: Remote LFA with Directed forwarding. o DLFA: Remote LFA with Directed forwarding.
o FRR: Fast Re-route. o FRR: Fast Re-route.
o IGP: Interior Gateway Protocol. o IGP: Interior Gateway Protocol.
o LFA: Loop-Free Alternate. o LFA: Loop-Free Alternate.
skipping to change at page 3, line 43 skipping to change at page 3, line 39
o SID: Segment Identifier. o SID: Segment Identifier.
o SLA: Service Level Agreement. o SLA: Service Level Agreement.
o SPF: Shortest Path First. o SPF: Shortest Path First.
o SPT: Shortest Path Tree. o SPT: Shortest Path Tree.
o SR: Segment Routing. o SR: Segment Routing.
o SRGB: Segment Routing Global Block.
o SRLG: Shared Risk Link Group. o SRLG: Shared Risk Link Group.
o TI-LFA: Topology Independant LFA. o TI-LFA: Topology Independant LFA.
2. Introduction 2. Introduction
Segment Routing aims at supporting services with tight SLA guarantees Segment Routing aims at supporting services with tight SLA guarantees
[RFC8402]. By relying on SR this document provides a local repair [RFC8402]. By relying on SR this document provides a local repair
mechanism for standard IGP shortest path capable of restoring end-to- mechanism for standard IGP shortest path capable of restoring end-to-
end connectivity in the case of a sudden directly connected failure end connectivity in the case of a sudden directly connected failure
skipping to change at page 10, line 50 skipping to change at page 10, line 50
Most often, the TI-LFA repair list has a simpler form, as described Most often, the TI-LFA repair list has a simpler form, as described
in the following sections. Section 9 provides statistics for the in the following sections. Section 9 provides statistics for the
number of SIDs in the explicit path to protect against various number of SIDs in the explicit path to protect against various
failures. failures.
5.1. FRR path using a direct neighbor 5.1. FRR path using a direct neighbor
When a direct neighbor is in P(S,X) and Q(D,x) and on the post- When a direct neighbor is in P(S,X) and Q(D,x) and on the post-
convergence path, the outgoing interface is set to that neighbor and convergence path, the outgoing interface is set to that neighbor and
the repair segment list MUST be empty. the repair segment list SHOULD be empty.
This is comparable to a post-convergence LFA FRR repair. This is comparable to a post-convergence LFA FRR repair.
5.2. FRR path using a PQ node 5.2. FRR path using a PQ node
When a remote node R is in P(S,X) and Q(D,x) and on the post- When a remote node R is in P(S,X) and Q(D,x) and on the post-
convergence path, the repair list MUST be made of a single node convergence path, the repair list MUST be made of a single node
segment to R and the outgoing interface MUST be set to the outgoing segment to R and the outgoing interface SHOULD be set to the outgoing
interface used to reach R. interface used to reach R.
This is comparable to a post-convergence RLFA repair tunnel. This is comparable to a post-convergence RLFA repair tunnel.
5.3. FRR path using a P node and Q node that are adjacent 5.3. FRR path using a P node and Q node that are adjacent
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 both are adjacent to each other, the the post-convergence path and both are adjacent to each other, the
repair list MUST be made of two segments: A node segment to P (to be repair list SHOULD be made of two segments: A node segment to P (to
processed first), followed by an adjacency segment from P to Q. be processed first), followed by an adjacency segment from P to Q.
This is comparable to a post-convergence DLFA repair tunnel. This is comparable to a post-convergence DLFA 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 post-
convergence path. However, the PLR can perform additional convergence path. However, the PLR can perform additional
computations to compute a list of segments that represent a loop-free computations to compute a list of segments that represent a loop-free
path from P to Q. How these computations are done is out of scope of path from P to Q. How these computations are done is out of scope of
this document. this document.
6. Building TI-LFA repair lists 6. Building TI-LFA repair lists
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
Section 6.1 and Section 6.2 are equally applicable to both SR-MPLS Section 6.1 are equally applicable to both SR-MPLS and SRv6
and SRv6 dataplane, while the dataplane-specific considerations are dataplane, while the dataplane-specific considerations are described
described in Section 6.3. in Section 6.2.
6.1. Link protection 6.1. Link protection
In this section, we explain how a protecting router S processes the In this section, we explain how a protecting router S processes the
active segment of a packet upon the failure of its primary outgoing active segment of a packet upon the failure of its primary outgoing
interface for the packet, S-F. interface for the packet, S-F.
6.1.1. The active segment is a node segment 6.1.1. The active segment is a node segment
The active segment MUST be kept on the SR header unchanged and the The active segment MUST be kept on the SR header unchanged and the
repair list MUST be inserted at the head of the list. The active repair list MUST be added. The active segment becomes the first
segment becomes the first segment of the inserted repair list. segment of the repair list. The way the repair list is added depends
on the dataplane used (see Section 6.2).
6.1.2. The active segment is an adjacency segment 6.1.2. The active segment is an adjacency segment
We define hereafter the FRR behavior applied by S for any packet We define hereafter the FRR behavior applied by S for any packet
received with an active adjacency segment S-F for which protection received with an active adjacency segment S-F for which protection
was enabled. As protection has been enabled for the segment S-F and was enabled. As protection has been enabled for the segment S-F and
signalled in the IGP, any SR policy using this segment knows that it signalled in the IGP, any SR policy using this segment knows that it
may be transiently rerouted out of S-F in case of S-F failure. may be transiently rerouted out of S-F in case of S-F failure.
The simplest approach for link protection of an adjacency segment S-F The simplest approach for link protection of an adjacency segment S-F
skipping to change at page 13, line 5 skipping to change at page 13, line 5
two "PUSH" operations. If the repair list, while avoiding S-F, two "PUSH" operations. If the repair list, while avoiding S-F,
terminates on F, S only pushes the repair list. Otherwise, S pushes terminates on F, S only pushes the repair list. Otherwise, S pushes
a node segment of F, followed by push of the repair list.. For a node segment of F, followed by push of the repair list.. For
details on the "NEXT" and "PUSH" operations, refer to [RFC8402]. details on the "NEXT" and "PUSH" operations, refer to [RFC8402].
Upon failure of S-F, a packet reaching S with a segment list matching Upon failure of S-F, a packet reaching S with a segment list matching
[adj(S-F),adj(F-M),...] will thus leave S with a segment list [adj(S-F),adj(F-M),...] will thus leave S with a segment list
matching [RL(F),node(F),adj(F-M)], where RL(F) is the repair path for matching [RL(F),node(F),adj(F-M)], where RL(F) is the repair path for
destination F. destination F.
In Section 6.2.2, we describe the TI-LFA behavior of PLR S when node
protection is applied and the two first segments are Adjacency
Segments.
6.1.2.2. Protecting [Adjacency, Node] segment lists 6.1.2.2. Protecting [Adjacency, Node] segment lists
If the next segment in the stack is a node segment, say for node T, If the next segment in the stack is a node segment, say for node T,
the segment list on the packet matches [adj(S-F),node(T),...]. the segment list on the packet matches [adj(S-F),node(T),...].
In this case, S MUST apply a "NEXT" operation on the Adjacency In this case, S MUST apply a "NEXT" operation on the Adjacency
segment related to S-F, followed by a "PUSH" of a repair list segment related to S-F, followed by a "PUSH" of a repair list
redirecting the traffic to a node Q, whose path to node segment T is redirecting the traffic to a node Q, whose path to node segment T is
not affected by the failure. not affected by the failure.
Upon failure of S-F, packets reaching S with a segment list matching Upon failure of S-F, packets reaching S with a segment list matching
[adj(S-F), node(T), ...], would leave S with a segment list matching [adj(S-F), node(T), ...], would leave S with a segment list matching
[RL(Q),node(T), ...]. Note that this second behavior is the one [RL(Q),node(T), ...].
followed for node protection, as described in Section 6.2.1.
6.2. Protecting SR policy midpoints against node failure
In this section, we describe the behavior of a node S configured to
interpret the failure of link S->F as the node failure of F, in the
specific case where the active segment of the packet received by S is
a Prefix SID of F represented as "F"), or an Adjacency SID for the
link S-F (represented as "S->F").
The description below is intended to specify the forwarding behavior
required for node protection. The description should not be
interpreted as limiting the possible implementations of this
forwarding behavior. An implementation complies with the description
below as long as the externally visible forwarding behavior produced
by the implementation is the same as that described below.
6.2.1. Protecting {F, T, D} or {S->F, T, D}
This section describes the protection behavior of S when all of the
following conditions are true:
1. the active segment is a prefix SID for a neighbor F, or an
adjacency segment S->F
2. the primary interface used to forward the packet failed
3. the segment following the active segment is a prefix SID (for
node T)
4. node protection is active for that interface.
In such a case, the PLR should:
1. apply a NEXT operation; the segment F or S->F is removed
2. Confirm that the next segment is in the SRGB of F, meaning that
the next segment is a prefix segment, e.g. for node T
3. Retrieve the segment ID of T (as per the SRGB of F)
4. Apply a NEXT operation followed by a PUSH operation of T's
segment based on the SRGB of node S.
5. Look up T's segment (based on the updated label value) and
forward accordingly.
6.2.2. Protecting {F, F->T, D} or {S->F, F->T, D}
This section describes the protection behavior of S when all of the
following conditions are true:
1. the active segment is a prefix SID for a neighbor F, or an
adjacency segment S->F
2. the primary interface used to forward the packet failed
3. the segment following the active segment is an adjacency SID (F-
>T)
4. node protection is active for that interface.
In such a case, the PLR should:
1. Apply a NEXT operation; the segment F or S->F is removed
2. Confirm that the next segment is an adjacency SID of F, say F->T
3. Retrieve the node segment ID associated to T (as per the set of
Adjacency Segments of F)
4. Apply a NEXT operation on the next segment followed by a PUSH of
T's segment based on the SRGB of the node S.
5. Look up T's segment (based on the updated label value) and
forward accordingly.
It is noteworthy to mention that node "S" in the procedures described
in Sections 5.3.1 and 5.3.2 can always determine whether the segment
after popping the top segment is an adjacency SID or a prefix-SID of
the next-hop "F" as follows:
1. In a link state environment, the node "S" knows the SRGB and the
adj-SIDs of the neighboring node "F"
2. If the new segment after popping the top segment is within the
SRGB or the adj-SIDs of "F", then node "S" is certain that the
failure of node "F" is a midpoint failure and hence node "S"
applies the procedures specified in Sections 5.3.1 or 5.3.2,
respectively.
3. Otherwise the failure is not a midpoint failure and hence the 6.2. Dataplane specific considerations
node "S" may apply other protection techniques that are beyond
the scope of this document or simply drop the packet and wait for
normal protocol convergence.
6.3. Dataplane specific considerations 6.2.1. MPLS dataplane considerations
6.3.1. MPLS dataplane considerations MPLS dataplane for Segment Routing is described in [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 the tail-end of the active adjacency segment terminating on the tail-end of the active
segment, then the active segment MUST be popped before pushing segment, then the active segment MUST be popped before pushing
the repair list. 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 then pushed in 1. are not met, the active segment MUST be popped then pushed
again with a label value computed according to the SRGB of Q, again with a label value computed according to the SRGB of Q,
where Q is the endpoint of the repair list. Finally, the repair where Q is the endpoint of the repair list. Finally, the repair
list MUST be pushed. list MUST be pushed.
6.3.2. SRv6 dataplane considerations 6.2.2. SRv6 dataplane considerations
SRv6 dataplane and programming instructions are described
respectively in [RFC8754] and [RFC8986].
The TI-LFA path computation algorithm is the same as in the SR-MPLS The TI-LFA path computation algorithm is the same as in the SR-MPLS
dataplane. Note however that the Adjacency SIDs are typically dataplane. Note however that the Adjacency SIDs are typically
globally routed. In such case, there is no need for a preceding globally routed. In such case, there is no need for a preceding
Prefix SID and the resulting repair list is likely shorter. Prefix SID and the resulting repair list is likely shorter.
If the traffic is protected at a Transit Node, then an SRv6 SID list If the traffic is protected at a Transit Node, then an SRv6 SID list
is added on the packet to apply the repair list. is added on the packet to apply the repair list. The addition of the
repair list follows the headend behaviors as specified in section 5
of [RFC8986].
If the traffic is protected at an SR Segment Endpoint Node, first the If the traffic is protected at an SR Segment Endpoint Node, first the
Segment Endpoint packet processing is executed. Then the packet is Segment Endpoint packet processing is executed. Then the packet is
protected as if its were a transit packet. protected as if its were a transit packet.
7. TI-LFA and SR algorithms 7. TI-LFA and SR algorithms
SR allows an operator to bind an algorithm to a prefix SID (as SR allows an operator to bind an algorithm to a prefix SID (as
defined in [RFC8402]. The algorithm value dictates how the path to defined in [RFC8402]. The algorithm value dictates how the path to
the prefix is computed. The SR default algorithm is known has the the prefix is computed. The SR default algorithm is known has the
skipping to change at page 17, line 23 skipping to change at page 15, line 23
In Figure 3, all the metrics are equal to 1 except In Figure 3, all the metrics are equal to 1 except
R2-R7,R7-R8,R8-R4,R7-R9 which have a metric of 1000. Considering R2 R2-R7,R7-R8,R8-R4,R7-R9 which have a metric of 1000. Considering R2
as a PLR to protect against the failure of node R3 for the traffic as a PLR to protect against the failure of node R3 for the traffic
S->D, the repair list computed by R2 will be [adj(R7-R8),adj(R8-R4)] S->D, the repair list computed by R2 will be [adj(R7-R8),adj(R8-R4)]
and the outgoing interface will be to R7. If R3 fails, R2 pushes the and the outgoing interface will be to R7. If R3 fails, R2 pushes the
repair list onto the incoming packet to D. During the FRR, if R7-R8 repair list onto the incoming packet to D. During the FRR, if R7-R8
fails and if TI-LFA has picked a protected adjacency segment for fails and if TI-LFA has picked a protected adjacency segment for
adj(R7-R8), R7 will push an additional repair list onto the packet adj(R7-R8), R7 will push an additional repair list onto the packet
following the procedures defined in Section 6. following the procedures defined in Section 6.
To avoid the possibility of this double FRR, an implementation of TI- To avoid the possibility of this double FRR activation, an
LFA MAY pick only non protected adjacency segments when building the implementation of TI-LFA MAY pick only non protected adjacency
repair list. segments when building the repair list.
9. Measurements on Real Networks 9. Measurements on Real Networks
This section presents measurements performed on real service provider This section presents measurements performed on real service provider
and large enterprise networks. The objective of the measurements is and large enterprise networks. The objective of the measurements is
to assess the number of SIDs required in an explicit path when the to assess the number of SIDs required in an explicit path when the
mechanisms described in this document are used to protect against the mechanisms described in this document are used to protect against the
failure scenarios within the scope of this document. The number of failure scenarios within the scope of this document. The number of
segments described in this section are applicable to instantiating segments described in this section are applicable to instantiating
segment routing over the MPLS forwarding plane. segment routing over the MPLS forwarding plane.
skipping to change at page 19, line 13 skipping to change at page 17, line 13
the result. Also we treat the node-SID+adj-SID and node-SID + the result. Also we treat the node-SID+adj-SID and node-SID +
node-SID the same because they do not differ from the data plane node-SID the same because they do not differ from the data plane
point of view. point of view.
Table 2A and 2B below summarize the measurements on the number of Table 2A and 2B below summarize the measurements on the number of
SIDs needed for link protection SIDs needed for link protection
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | | Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T1 | 74.227% | 25.256% | 0.517% | 0.001% | | T1 | 74.3% | 25.3% | 0.5% | 0.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T2 | 81.097% | 18.738% | 0.165% | 0.0% | | T2 | 81.1% | 18.7% | 0.2% | 0.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T3 | 95.878% | 4.067% | 0.056% | 0.0% | | T3 | 95.9% | 4.1% | 0.1% | 0.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T4 | 62.547% | 35.666% | 1.788% | 0.0% | | T4 | 62.5% | 35.7% | 1.8% | 0.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T5 | 85.733% | 14.267% | 0.0% | 0.0% | | T5 | 85.7% | 14.3% | 0.0% | 0.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T6 | 81.252% | 18.714% | 0.033% | 0.0% | | T6 | 81.2% | 18.7% | 0.0% | 0.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T7 | 98,857% | 1.143% | 0.0% | 0.0% | | T7 | 98.9% | 1.1% | 0.0% | 0.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T8 | 94,118% | 5.882% | 0.0% | 0.0% | | T8 | 94.1% | 5.9% | 0.0% | 0.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T9 | 98.950% | 1.050% | 0.0% | 0.0% | | T9 | 98.9% | 1.0% | 0.0% | 0.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
Table 2A: Link protection (repair size distribution) Table 2A: Link protection (repair size distribution)
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | | Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T1 | 74.227% | 99.482% | 99.999% | 100.0% | | T1 | 74.2% | 99.5% | 99.9% | 100.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T2 | 81.097% | 99.835% | 100.0% | 100.0% | | T2 | 81.1% | 99.8% | 100.0% | 100.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T3 | 95.878% | 99.944% | 100.0% | 100.0% | | T3 | 95.9% | 99.9% | 100.0% | 100.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T4 | 62.547% | 98.212% | 100.0% | 100.0% | | T4 | 62.5% | 98.2% | 100.0% | 100.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T5 | 85.733% | 100.000% | 100.0% | 100.0% | | T5 | 85.7% | 100.0% | 100.0% | 100.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T6 | 81.252% | 99.967% | 100.0% | 100.0% | | T6 | 81.2% | 99.9% | 100.0% | 100.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T7 | 98,857% | 100.000% | 100.0% | 100.0% | | T7 | 98,8% | 100.0% | 100.0% | 100.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T8 | 94,118% | 100.000% | 100.0% | 100.0% | | T8 | 94,1% | 100.0% | 100.0% | 100.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T9 | 98,950% | 100.000% | 100.0% | 100.0% | | T9 | 98,9% | 100.0% | 100.0% | 100.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
Table 2B: Link protection repair size cumulative distribution Table 2B: Link protection repair size cumulative distribution
Table 3A and 3B summarize the measurements on the number of SIDs Table 3A and 3B 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.177% | 25.306% | 0.517% | 0.001% | | T1 | 74.2% | 25.3% | 0.5% | 0.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T2 | No SRLG Information | | T2 | No SRLG Information |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T3 | 93.650% | 6.301% | 0.049% | 0.0% | | T3 | 93.6% | 6.3% | 0.0% | 0.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T4 | 62,547% | 35.666% | 1.788% | 0.0% | | T4 | 62.5% | 35.6% | 1.8% | 0.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T5 | 83.139% | 16.861% | 0.0% | 0.0% | | T5 | 83.1% | 16.8% | 0.0% | 0.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T6 | No SRLG Information | | T6 | No SRLG Information |
+-------------+---------------------------------------------------+ +-------------+---------------------------------------------------+
| T7 | No SRLG Information | | T7 | No SRLG Information |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T8 | 85.185% | 14.815% | 0.0% | 0.0% | | T8 | 85.2% | 14.8% | 0.0% | 0.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T9 | 98,940% | 1.060% | 0.0% | 0.0% | | T9 | 98,9% | 1.1% | 0.0% | 0.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
Table 3A: Local SRLG protection repair size distribution Table 3A: Local SRLG protection repair size distribution
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | | Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T1 | 74.177% | 99.482% | 99.999% | 100.001% | | T1 | 74.2% | 99.5% | 99.9% | 100.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T2 | No SRLG Information | | T2 | No SRLG Information |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T3 | 93.650% | 99.951% | 100.000% | 0.0% | | T3 | 93.6% | 99.9% | 100.0% | 0.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T4 | 62,547% | 98.212% | 100.000% | 100.0% | | T4 | 62.5% | 98.2% | 100.0% | 100.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T5 | 83.139% | 100.000% | 100.0% | 100.0% | | T5 | 83.1% | 100.0% | 100.0% | 100.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T6 | No SRLG Information | | T6 | No SRLG Information |
+-------------+---------------------------------------------------+ +-------------+---------------------------------------------------+
| T7 | No SRLG Information | | T7 | No SRLG Information |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T8 | 85.185% | 100,000% | 100.000% | 100.0% | | T8 | 85.2% | 100.0% | 100.0% | 100.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
| T9 | 98,940% | 100,000% | 100.000% | 100.0% | | T9 | 98.9% | 100.0% | 100.0% | 100.0% |
+-------------+------------+------------+------------+------------+ +-------------+------------+------------+------------+------------+
Table 3B: Local SRLG protection repair size Cumulative distribution Table 3B: Local SRLG protection repair 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.771% | 47.902% | 2.156% | 0.148% | 0.023% | | T1 | 49.8% | 47.9% | 2.1% | 0.1% | 0.0% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
| T2 | 36,528% | 59.625% | 3.628% | 0.194% | 0.025% | | T2 | 36,5% | 59.6% | 3.6% | 0.2% | 0.0% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
| T3 | 73,287% | 25,574% | 1,128% | 0.010% | 0% | | T3 | 73.3% | 25.6% | 1.1% | 0.0% | 0.0% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
| T4 | 36.112% | 57.350% | 6.329% | 0.199% | 0.010% | | T4 | 36.1% | 57.3% | 6.3% | 0.2% | 0.0% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
| T5 | 73.185% | 26.815% | 0% | 0% | 0% | | T5 | 73.2% | 26.8% | 0% | 0% | 0% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
| T6 | 78.362% | 21.320% | 0.318% | 0% | 0% | | T6 | 78.3% | 21.3% | 0.3% | 0% | 0% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
| T7 | 66.106% | 32.813% | 1.082% | 0% | 0% | | T7 | 66.1% | 32.8% | 1.1% | 0% | 0% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
| T8 | 59.712% | 40.288% | 0% | 0% | 0% | | T8 | 59.7% | 40.2% | 0% | 0% | 0% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
| T9 | 98.950% | 1.050% | 0% | 0% | 0% | | T9 | 98.9% | 1.0% | 0% | 0% | 0% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
Table 4A: Node protection (repair size distribution) Table 4A: 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.771% | 97.673% | 99.829% | 99.977% | 100% | | T1 | 49.7% | 97.6% | 99.8% | 99.9% | 100% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
| T2 | 36,528% | 96.153% | 99.781% | 99.975% | 100% | | T2 | 36.5% | 96.1% | 99.7% | 99.9% | 100% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
| T3 | 73,287% | 98.862% | 99.990% |100.0% | 100% | | T3 | 73.3% | 98.9% | 99.9% | 100.0% | 100% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
| T4 | 36.112% | 93.461% | 99.791% | 99.990% | 100% | | T4 | 36.1% | 93.4% | 99.8% | 99.9% | 100% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
| T5 | 73.185% | 100.0% | 100.0% |100.0% | 100% | | T5 | 73.2% | 100.0% | 100.0% | 100.0% | 100% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
| T6 | 78.362% | 99.682% | 100.0% |100.0% | 100% | | T6 | 78.4% | 99.7% | 100.0% | 100.0% | 100% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
| T7 | 66.106% | 98,918% | 100.0% |100.0% | 100% | | T7 | 66.1% | 98.9% | 100.0% | 100.0% | 100% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
| T8 | 59.712% | 100.0% | 100.0% |100.0% | 100% | | T8 | 59.7% | 100.0% | 100.0% | 100.0% | 100% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
| T9 | 98.950% | 100.0% | 100.0% |100.0% | 100% | | T9 | 98.9% | 100.0% | 100.0% | 100.0% | 100% |
+---------+----------+----------+----------+----------+----------+ +---------+----------+----------+----------+----------+----------+
Table 4B: Node protection (repair size cumulative distribution) Table 4B: Node protection (repair size cumulative distribution)
10. Security Considerations 10. Security Considerations
The techniques described in this document are internal The techniques described in this document are internal
functionalities to a router that result in the ability to guarantee functionalities to a router that result in the ability to guarantee
an upper bound on the time taken to restore traffic flow upon the an upper bound on the time taken to restore traffic flow upon the
failure of a directly connected link or node. As these techniques failure of a directly connected link or node. As these techniques
steer traffic to the post-convergence path as quickly as possible, steer traffic to the post-convergence path as quickly as possible,
this serves to minimize the disruption associated with a local this serves to minimize the disruption associated with a local
failure which can be seen as a modest security enhancement. The failure which can be seen as a modest security enhancement. The
protection mechanisms does not protect external destinations, but protection mechanisms does not protect external destinations, but
rather provides quick restoration for destination that are internal rather provides quick restoration for destination that are internal
to a routing domain. to a routing domain.
Security considerations described in [RFC5286] and [RFC7490] apply to
this document. Similarly, as the solution described in the document
is based on Segment Routing technology, reader should be aware of the
security considerations related to this technology ([RFC8402]) and
its dataplane instantiations ([RFC8660], [RFC8754] and [RFC8986]).
However, this document does not introduce additional security
concern.
11. IANA Considerations 11. IANA Considerations
No requirements for IANA No requirements for IANA
12. Conclusions 12. Contributors
This document proposes a mechanism that is able to pre-calculate a
backup path for every primary path so as to be able to protect
against the failure of a directly connected link, node, or SRLG. The
mechanism is able to calculate the backup path irrespective of the
topology as long as the topology is sufficiently redundant.
13. 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
co-authors have also contributed to this document: co-authors have also contributed to this document:
Francois Clad, Cisco Systems Francois Clad, Cisco Systems
Pablo Camarillo, Cisco Systems Pablo Camarillo, Cisco Systems
14. Acknowledgments 13. Acknowledgments
We would like to thank Les Ginsberg, Stewart Bryant, Alexander We would like to thank Les Ginsberg, Stewart Bryant, Alexander
Vainsthein, Chris Bowers, Shraddha Hedge for their valuable comments. Vainsthein, Chris Bowers, Shraddha Hedge for their valuable comments.
15. References 14. References
15.1. Normative References 14.1. Normative References
[I-D.ietf-spring-srv6-network-programming]
Filsfils, C., Camarillo, P., Leddy, J., Voyer, D.,
Matsushima, S., and Z. Li, "SRv6 Network Programming",
draft-ietf-spring-srv6-network-programming-28 (work in
progress), December 2020.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC7916] Litkowski, S., Ed., Decraene, B., Filsfils, C., Raza, K., [RFC7916] Litkowski, S., Ed., Decraene, B., Filsfils, C., Raza, K.,
Horneffer, M., and P. Sarkar, "Operational Management of Horneffer, M., and P. Sarkar, "Operational Management of
Loop-Free Alternates", RFC 7916, DOI 10.17487/RFC7916, Loop-Free Alternates", RFC 7916, DOI 10.17487/RFC7916,
July 2016, <https://www.rfc-editor.org/info/rfc7916>. July 2016, <https://www.rfc-editor.org/info/rfc7916>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
Decraene, B., Litkowski, S., and R. Shakir, "Segment Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
July 2018, <https://www.rfc-editor.org/info/rfc8402>. July 2018, <https://www.rfc-editor.org/info/rfc8402>.
15.2. Informative References [RFC8660] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S.,
Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing with the MPLS Data Plane", RFC 8660,
DOI 10.17487/RFC8660, December 2019,
<https://www.rfc-editor.org/info/rfc8660>.
[RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J.,
Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header
(SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020,
<https://www.rfc-editor.org/info/rfc8754>.
[RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer,
D., Matsushima, S., and Z. Li, "Segment Routing over IPv6
(SRv6) Network Programming", RFC 8986,
DOI 10.17487/RFC8986, February 2021,
<https://www.rfc-editor.org/info/rfc8986>.
14.2. Informative References
[I-D.bashandy-rtgwg-segment-routing-uloop] [I-D.bashandy-rtgwg-segment-routing-uloop]
Bashandy, A., Filsfils, C., Litkowski, S., Decraene, B., Bashandy, A., Filsfils, C., Litkowski, S., Decraene, B.,
Francois, P., and P. Psenak, "Loop avoidance using Segment Francois, P., and P. Psenak, "Loop avoidance using Segment
Routing", draft-bashandy-rtgwg-segment-routing-uloop-10 Routing", draft-bashandy-rtgwg-segment-routing-uloop-10
(work in progress), December 2020. (work in progress), December 2020.
[I-D.ietf-lsr-flex-algo] [I-D.ietf-lsr-flex-algo]
Psenak, P., Hegde, S., Filsfils, C., Talaulikar, K., and Psenak, P., Hegde, S., Filsfils, C., Talaulikar, K., and
A. Gulko, "IGP Flexible Algorithm", draft-ietf-lsr-flex- A. Gulko, "IGP Flexible Algorithm", draft-ietf-lsr-flex-
algo-13 (work in progress), October 2020. algo-15 (work in progress), April 2021.
[I-D.ietf-spring-segment-routing-policy] [I-D.ietf-spring-segment-routing-policy]
Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and
P. Mattes, "Segment Routing Policy Architecture", draft- P. Mattes, "Segment Routing Policy Architecture", draft-
ietf-spring-segment-routing-policy-09 (work in progress), ietf-spring-segment-routing-policy-11 (work in progress),
November 2020. April 2021.
[RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for
IP Fast Reroute: Loop-Free Alternates", RFC 5286, IP Fast Reroute: Loop-Free Alternates", RFC 5286,
DOI 10.17487/RFC5286, September 2008, DOI 10.17487/RFC5286, September 2008,
<https://www.rfc-editor.org/info/rfc5286>. <https://www.rfc-editor.org/info/rfc5286>.
[RFC5714] Shand, M. and S. Bryant, "IP Fast Reroute Framework", [RFC5714] Shand, M. and S. Bryant, "IP Fast Reroute Framework",
RFC 5714, DOI 10.17487/RFC5714, January 2010, RFC 5714, DOI 10.17487/RFC5714, January 2010,
<https://www.rfc-editor.org/info/rfc5714>. <https://www.rfc-editor.org/info/rfc5714>.
 End of changes. 74 change blocks. 
207 lines changed or deleted 125 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/