| rfc9855v3.txt | rfc9855.txt | |||
|---|---|---|---|---|
| skipping to change at line 13 ¶ | skipping to change at line 13 ¶ | |||
| Request for Comments: 9855 HPE | Request for Comments: 9855 HPE | |||
| Category: Standards Track S. Litkowski | Category: Standards Track S. Litkowski | |||
| ISSN: 2070-1721 C. Filsfils | ISSN: 2070-1721 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 | |||
| September 2025 | October 2025 | |||
| Topology Independent Fast Reroute Using Segment Routing | Topology Independent Fast Reroute Using Segment Routing | |||
| Abstract | Abstract | |||
| This document presents Topology Independent Loop-Free Alternate (TI- | This document presents Topology Independent Loop-Free Alternate (TI- | |||
| LFA) Fast Reroute (FRR), which is aimed at providing protection of | LFA) Fast Reroute (FRR), which is aimed at providing protection of | |||
| node and Adjacency segments within the Segment Routing (SR) | node and Adjacency segments within the Segment Routing (SR) | |||
| framework. This FRR behavior builds on proven IP FRR concepts being | framework. This FRR behavior builds on proven IP FRR concepts being | |||
| LFAs, Remote LFAs (RLFAs), and Directed Loop-Free Alternates (DLFAs). | LFAs, Remote LFAs (RLFAs), and Directed Loop-Free Alternates (DLFAs). | |||
| skipping to change at line 535 ¶ | skipping to change at line 535 ¶ | |||
| This section defines the FRR behavior applied by S for any packet | This section defines 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. Since protection has been enabled for the segment S-F | was enabled. Since protection has been enabled for the segment S-F | |||
| and signaled in the IGP (for instance, using protocol extensions from | and signaled in the IGP (for instance, using protocol extensions from | |||
| [RFC8667] and [RFC8665]), a calculator of any SR policy utilizing | [RFC8667] and [RFC8665]), a calculator of any SR policy utilizing | |||
| this segment is aware that it may be transiently rerouted out of S-F | this segment is aware that it may be transiently rerouted out of S-F | |||
| in the event of an S-F failure. | in the event of an 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 | |||
| is to create a RL that will carry the traffic to F. To do so, one or | is to create an RL that will carry the traffic to F. To do so, one | |||
| more "PUSH" operations are performed. If the RL, while avoiding S-F, | or more "PUSH" operations are performed. If the RL, while avoiding | |||
| terminates on F, S only pushes segments of the RL. Otherwise, S | S-F, terminates on F, S only pushes segments of the RL. Otherwise, S | |||
| pushes a node segment of F, followed by the segments of the RL. For | pushes a node segment of F, followed by the segments of the RL. For | |||
| details on the "NEXT" and "PUSH" operations, refer to [RFC8402]. | details on the "NEXT" and "PUSH" operations, refer to [RFC8402]. | |||
| This method, which merges back the traffic at the remote end of the | This method, which merges back the traffic at the remote end of the | |||
| Adjacency segment, has the advantage of keeping as much traffic as | Adjacency segment, has the advantage of keeping as much traffic as | |||
| possible on the pre-failure path. When SR policies are involved and | possible on the pre-failure path. When SR policies are involved and | |||
| strict compliance with the policy is required, an end-to-end | strict compliance with the policy is required, an end-to-end | |||
| protection (beyond the scope of this document) should be preferred | protection (beyond the scope of this document) should be preferred | |||
| over the local repair mechanism described above. | over the local repair mechanism described above. | |||
| skipping to change at line 583 ¶ | skipping to change at line 583 ¶ | |||
| [adj-sid(S-F), adj-sid(F-M), ...] will thus leave S with a segment | [adj-sid(S-F), adj-sid(F-M), ...] will thus leave S with a segment | |||
| list matching [RL(F), node(F), adj-sid(F-M), ...], where RL(F) is the | list matching [RL(F), node(F), adj-sid(F-M), ...], where RL(F) is the | |||
| RL for destination F. | RL for destination F. | |||
| 6.2.2. Protecting [Adjacency, Node] Segment Lists | 6.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-sid(S-F), node(T), ...]. | the segment list on the packet matches [adj-sid(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 RL redirecting the | segment related to S-F, followed by a "PUSH" of an RL redirecting the | |||
| traffic to a node Q, whose path to node segment T is not affected by | traffic to a node Q, whose path to node segment T is not affected by | |||
| the failure. | 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-sid(S-F), node(T), ...] would leave S with a segment list | [adj-sid(S-F), node(T), ...] would leave S with a segment list | |||
| matching [RL(Q), node(T), ...]. | matching [RL(Q), node(T), ...]. | |||
| 7. Data Plane-Specific Considerations | 7. Data Plane-Specific Considerations | |||
| 7.1. MPLS Data Plane Considerations | 7.1. MPLS Data Plane Considerations | |||
| The MPLS data plane for SR is described in [RFC8660]. | The MPLS data plane for SR is described in [RFC8660]. | |||
| The following data plane behaviors apply when creating a RL using an | The following data plane behaviors apply when creating an RL using an | |||
| MPLS data plane: | MPLS data plane: | |||
| 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 RL ends with an Adjacency | with penultimate hop popping, and the RL ends with an Adjacency | |||
| segment terminating on the penultimate node of the active | segment terminating on the penultimate node of the active | |||
| segment, then the active segment MUST be popped before pushing | segment, then the active segment MUST be popped before pushing | |||
| the RL. | the RL. | |||
| 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 | |||
| End of changes. 4 change blocks. | ||||
| 6 lines changed or deleted | 6 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||