draft-ietf-rtgwg-rlfa-node-protection-09.txt   draft-ietf-rtgwg-rlfa-node-protection-10.txt 
Routing Area Working Group P. Sarkar, Ed. Routing Area Working Group P. Sarkar, Ed.
Internet-Draft Individual Contributor Internet-Draft Individual Contributor
Intended status: Standards Track S. Hegde Intended status: Standards Track S. Hegde
Expires: June 26, 2017 C. Bowers Expires: July 3, 2017 C. Bowers
Juniper Networks, Inc. Juniper Networks, Inc.
H. Gredler H. Gredler
RtBrick, Inc. RtBrick, Inc.
S. Litkowski S. Litkowski
Orange Orange
December 23, 2016 December 30, 2016
Remote-LFA Node Protection and Manageability Remote-LFA Node Protection and Manageability
draft-ietf-rtgwg-rlfa-node-protection-09 draft-ietf-rtgwg-rlfa-node-protection-10
Abstract Abstract
The loop-free alternates computed following the current Remote-LFA The loop-free alternates computed following the current Remote-LFA
specification guarantees only link-protection. The resulting Remote- specification guarantees only link-protection. The resulting Remote-
LFA nexthops (also called PQ-nodes), may not guarantee node- LFA nexthops (also called PQ-nodes), may not guarantee node-
protection for all destinations being protected by it. protection for all destinations being protected by it.
This document describes an extension to the Remote Loop-Free based IP This document describes an extension to the Remote Loop-Free based IP
fast reroute mechanisms described in [RFC7490], that describes fast reroute mechanisms described in [RFC7490], that describes
procedures for determining if a given PQ-node provides node- procedures for determining if a given PQ-node provides node-
protection for a specific destination or not. The document also protection for a specific destination or not. The document also
shows how the same procedure can be utilised for collection of shows how the same procedure can be uitilized for collection of
complete characteristics for alternate paths. Knowledge about the complete characteristics for alternate paths. Knowledge about the
characteristics of all alternate path is precursory to apply operator characteristics of all alternate path is precursory to apply operator
defined policy for eliminating paths not fitting constraints. defined policy for eliminating paths not fitting constraints.
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC2119 [RFC2119]. document are to be interpreted as described in RFC2119 [RFC2119].
skipping to change at page 2, line 10 skipping to change at page 2, line 10
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 http://datatracker.ietf.org/drafts/current/. Drafts is at http://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 June 26, 2017. This Internet-Draft will expire on July 3, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 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
(http://trustee.ietf.org/license-info) in effect on the date of (http://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 50 skipping to change at page 2, line 50
2.2.6.2. Node-Protecting Extended P-Space . . . . . . . . 7 2.2.6.2. Node-Protecting Extended P-Space . . . . . . . . 7
2.2.6.3. Q-Space . . . . . . . . . . . . . . . . . . . . . 8 2.2.6.3. Q-Space . . . . . . . . . . . . . . . . . . . . . 8
2.3. Computing Node-protecting R-LFA Path . . . . . . . . . . 9 2.3. Computing Node-protecting R-LFA Path . . . . . . . . . . 9
2.3.1. Computing Candidate Node-protecting PQ-Nodes for 2.3.1. Computing Candidate Node-protecting PQ-Nodes for
Primary nexthops . . . . . . . . . . . . . . . . . . 9 Primary nexthops . . . . . . . . . . . . . . . . . . 9
2.3.2. Computing node-protecting paths from PQ-nodes to 2.3.2. Computing node-protecting paths from PQ-nodes to
destinations . . . . . . . . . . . . . . . . . . . . 11 destinations . . . . . . . . . . . . . . . . . . . . 11
2.3.3. Computing Node-Protecting R-LFA Paths for 2.3.3. Computing Node-Protecting R-LFA Paths for
Destinations with ECMP primary nexthop nodes . . . . 13 Destinations with ECMP primary nexthop nodes . . . . 13
2.3.4. Limiting extra computational overhead . . . . . . . . 17 2.3.4. Limiting extra computational overhead . . . . . . . . 17
3. Manageabilty of Remote-LFA Alternate Paths . . . . . . . . . 18 3. Manageability of Remote-LFA Alternate Paths . . . . . . . . . 18
3.1. The Problem . . . . . . . . . . . . . . . . . . . . . . . 18 3.1. The Problem . . . . . . . . . . . . . . . . . . . . . . . 18
3.2. The Solution . . . . . . . . . . . . . . . . . . . . . . 18 3.2. The Solution . . . . . . . . . . . . . . . . . . . . . . 18
4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19 4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19
6. Security Considerations . . . . . . . . . . . . . . . . . . . 19 6. Security Considerations . . . . . . . . . . . . . . . . . . . 19
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.1. Normative References . . . . . . . . . . . . . . . . . . 19 7.1. Normative References . . . . . . . . . . . . . . . . . . 19
7.2. Informative References . . . . . . . . . . . . . . . . . 20 7.2. Informative References . . . . . . . . . . . . . . . . . 20
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20
skipping to change at page 5, line 50 skipping to change at page 5, line 50
Table 2: Remote-LFA backup paths via PQ-node R3 Table 2: Remote-LFA backup paths via PQ-node R3
Again a closer look at Table 2 shows that, unlike Table 1, where the Again a closer look at Table 2 shows that, unlike Table 1, where the
single PQ-node R2 provided node-protection for destinations R3 and single PQ-node R2 provided node-protection for destinations R3 and
D2, if we choose R3 as the R-LFA nexthop, it does not provide node- D2, if we choose R3 as the R-LFA nexthop, it does not provide node-
protection for R3 and D2 anymore. If S chooses R3 as the R-LFA protection for R3 and D2 anymore. If S chooses R3 as the R-LFA
nexthop, in the event of the node-failure on primary nexthop E, on nexthop, in the event of the node-failure on primary nexthop E, on
the alternate path from S to R-LFA nexthop R3, one of parallel ECMP the alternate path from S to R-LFA nexthop R3, one of parallel ECMP
path between N and R3 also becomes unavailable. So for a Remote-LFA path between N and R3 also becomes unavailable. So for a Remote-LFA
nexthop to provide node-protection for a given destination, it is nexthop to provide node-protection for a given destination, it is
also mandatory that, the shortest path from S to the chosen PQ-node also mandatory that, the shortest paths from S to the chosen PQ-node
MUST NOT traverse the primary nexthop node. MUST NOT traverse the primary nexthop node.
2.2. Additional Definitions 2.2. Additional Definitions
This document adds and enhances the following definitions extending This document adds and enhances the following definitions extending
the ones mentioned in Remote-LFA [RFC7490] specification. the ones mentioned in Remote-LFA [RFC7490] specification.
2.2.1. Link-Protecting Extended P-Space 2.2.1. Link-Protecting Extended P-Space
The Remote-LFA [RFC7490] specification already defines this. The The Remote-LFA [RFC7490] specification already defines this. The
link-protecting extended P-space for a link S-E being protected is link-protecting extended P-space for a link S-E being protected is
the set of routers that are reachable from one or more direct the set of routers that are reachable from one or more direct
neighbors of S, except primary node E, without traversing the S-E neighbors of S, except primary node E, without traversing the S-E
link on any of the shortest path from the direct neighbor to the link on any of the shortest paths from the direct neighbor to the
router. This MUST exclude any direct neighbor for which there is at router. This MUST exclude any direct neighbor for which there is at
least one ECMP path from the direct neighbor traversing the link(S-E) least one ECMP path from the direct neighbor traversing the link(S-E)
being protected. being protected.
For a cost-based definition for Link-protecting Extended P-Space For a cost-based definition for Link-protecting Extended P-Space
refer to Section 2.2.6.1. refer to Section 2.2.6.1.
2.2.2. Node-Protecting Extended P-Space 2.2.2. Node-Protecting Extended P-Space
The node-protecting extended P-space for a primary nexthop node E The node-protecting extended P-space for a primary nexthop node E
skipping to change at page 6, line 39 skipping to change at page 6, line 39
the node E. This MUST exclude any direct neighbors for which there the node E. This MUST exclude any direct neighbors for which there
is at least one ECMP path from the direct neighbor traversing the is at least one ECMP path from the direct neighbor traversing the
node E being protected. node E being protected.
For a cost-based definition for Node-protecting Extended P-Space For a cost-based definition for Node-protecting Extended P-Space
refer to Section 2.2.6.2. refer to Section 2.2.6.2.
2.2.3. Q-Space 2.2.3. Q-Space
The Remote-LFA [RFC7490] draft already defines this. The Q-space for The Remote-LFA [RFC7490] draft already defines this. The Q-space for
a link S-E being protected is the set of routers that can reach a link S-E being protected is the set of nodes that can reach primary
primary node E, without traversing the S-E link on any of the node E, without traversing the S-E link on any of the shortest paths
shortest path from the node Y to primary nexthop E. This MUST from the node itself to primary nexthop E. This MUST exclude any
exclude any destination for which there is at least one ECMP path node for which there is at least one ECMP path from the node to the
from the node Y to the primary nexthop E traversing the link(S-E) primary nexthop E traversing the link(S-E) being protected.
being protected.
For a cost-based definition for Q-Space refer to Section 2.2.6.3. For a cost-based definition for Q-Space refer to Section 2.2.6.3.
2.2.4. Link-Protecting PQ Space 2.2.4. Link-Protecting PQ Space
A node Y is in link-protecting PQ space w.r.t to the link (S-E) being A node Y is in link-protecting PQ space w.r.t the link (S-E) being
protected, if and only if, Y is present in both link-protecting protected, if and only if, Y is present in both link-protecting
extended P-space and the Q-space for the link being protected. extended P-space and the Q-space for the link being protected.
2.2.5. Candidate Node-Protecting PQ Space 2.2.5. Candidate Node-Protecting PQ Space
A node Y is in candidate node-protecting PQ space w.r.t to the node A node Y is in candidate node-protecting PQ space w.r.t the node (E)
(E) being protected, if and only if, Y is present in both node- being protected, if and only if, Y is present in both node-protecting
protecting extended P-space and the Q-space for the link being extended P-space and the Q-space for the link being protected.
protected.
Please note, that a node Y being in candidate node-protecting PQ- Please note, that a node Y being in candidate node-protecting PQ-
space, does not guarantee that the R-LFA alternate path via the same, space, does not guarantee that the R-LFA alternate path via the same,
in entirety, is unaffected in the event of a node failure of primary in entirety, is unaffected in the event of a node failure of primary
nexthop node E. It only guarantees that the path segment from S to nexthop node E. It only guarantees that the path segment from S to
PQ-node Y is unaffected by the same failure event. The PQ-nodes in PQ-node Y is unaffected by the same failure event. The PQ-nodes in
the candidate node-protecting PQ space may provide node protection the candidate node-protecting PQ space may provide node protection
for only a subset of destinations that are reachable through the for only a subset of destinations that are reachable through the
corresponding primary link. corresponding primary link.
2.2.6. Cost-Based Definitions 2.2.6. Cost-Based Definitions
This section provides cost-based definitions for some of the terms This section provides cost-based definitions for some of the terms
introduced in Section 2.2 of this document. introduced in Section 2.2 of this document.
2.2.6.1. Link-Protecting Extended P-Space 2.2.6.1. Link-Protecting Extended P-Space
Please refer to Section 2.2.1 for a formal definition for Link- Please refer to Section 2.2.1 for a formal definition for Link-
protecting Extended P-Space. protecting Extended P-Space.
A node Y is in link-protecting extended P-space w.r.t to the link A node Y is in link-protecting extended P-space w.r.t the link (S-E)
(S-E) being protected, if and only if, there exists at least one being protected, if and only if, there exists at least one direct
direct neighbor of S, Ni, other than primary nexthop E, that neighbor of S, Ni, other than primary nexthop E, that satisfies the
satisfies the following condition. following condition.
D_opt(Ni,Y) < D_opt(Ni,S) + D_opt(S,Y) D_opt(Ni,Y) < D_opt(Ni,S) + D_opt(S,Y)
Where, Where,
D_opt(A,B) : Distance on most optimum path from A to B. D_opt(A,B) : Distance on most optimum path from A to B.
Ni : A direct neighbor of S other than primary Ni : A direct neighbor of S other than primary
nexthop E. nexthop E.
Y : The node being evaluated for link-protecting Y : The node being evaluated for link-protecting
extended P-Space. extended P-Space.
Figure 3: Link-Protecting Ext-P-Space Condition Figure 3: Link-Protecting Ext-P-Space Condition
2.2.6.2. Node-Protecting Extended P-Space 2.2.6.2. Node-Protecting Extended P-Space
Please refer to Section 2.2.2 for a formal definition for Node- Please refer to Section 2.2.2 for a formal definition for Node-
protecting Extended P-Space. protecting Extended P-Space.
A node Y is in node-protecting extended P-space w.r.t to the node E A node Y is in node-protecting extended P-space w.r.t the node E
being protected, if and only if, there exists at least one direct being protected, if and only if, there exists at least one direct
neighbor of S, Ni, other than primary nexthop E, that satisfies the neighbor of S, Ni, other than primary nexthop E, that satisfies the
following condition. following condition.
D_opt(Ni,Y) < D_opt(Ni,E) + D_opt(E,Y) D_opt(Ni,Y) < D_opt(Ni,E) + D_opt(E,Y)
Where, Where,
D_opt(A,B) : Distance on most optimum path from A to B. D_opt(A,B) : Distance on most optimum path from A to B.
E : The primary nexthop on shortest path from S E : The primary nexthop on shortest path from S
to destination. to destination.
skipping to change at page 8, line 34 skipping to change at page 8, line 34
only guarantees that the R-LFA alternate path segment from S via only guarantees that the R-LFA alternate path segment from S via
direct neighbor Ni to the node Y is not affected in the event of a direct neighbor Ni to the node Y is not affected in the event of a
node failure of E. It does not yet guarantee that the path segment node failure of E. It does not yet guarantee that the path segment
from node Y to the destination is also unaffected by the same failure from node Y to the destination is also unaffected by the same failure
event. event.
2.2.6.3. Q-Space 2.2.6.3. Q-Space
Please refer to Section 2.2.3 for a formal definition for Q-Space. Please refer to Section 2.2.3 for a formal definition for Q-Space.
A node Y is in Q-space w.r.t to the link (S-E) being protected, if A node Y is in Q-space w.r.t the link (S-E) being protected, if and
and only if, the following condition is satisfied. only if, the following condition is satisfied.
D_opt(Y,E) < D_opt(S,E) + D_opt(Y,S) D_opt(Y,E) < D_opt(S,E) + D_opt(Y,S)
Where, Where,
D_opt(A,B) : Distance on most optimum path from A to B. D_opt(A,B) : Distance on most optimum path from A to B.
E : The primary nexthop on shortest path from S E : The primary nexthop on shortest path from S
to destination. to destination.
Y : The node being evaluated for Q-Space. Y : The node being evaluated for Q-Space.
Figure 5: Q-Space Condition Figure 5: Q-Space Condition
skipping to change at page 9, line 18 skipping to change at page 9, line 18
destination is comprised of two path segments as follows. destination is comprised of two path segments as follows.
1. Path segment from the computing router to the PQ-node (Remote-LFA 1. Path segment from the computing router to the PQ-node (Remote-LFA
alternate nexthop), and alternate nexthop), and
2. Path segment from the PQ-node to the destination being protected. 2. Path segment from the PQ-node to the destination being protected.
So to ensure a R-LFA alternate path for a given destination provides So to ensure a R-LFA alternate path for a given destination provides
node-protection we need to ensure that none of the above path node-protection we need to ensure that none of the above path
segments are affected in the event of failure of the primary nexthop segments are affected in the event of failure of the primary nexthop
node. Sections Section 2.3.1 and Section 2.3.2 shows how this can be node. Sections Section 2.3.1 and Section 2.3.2 show how this can be
ensured. ensured.
2.3.1. Computing Candidate Node-protecting PQ-Nodes for Primary 2.3.1. Computing Candidate Node-protecting PQ-Nodes for Primary
nexthops nexthops
To choose a node-protecting R-LFA nexthop for a destination R3, To choose a node-protecting R-LFA nexthop for a destination R3,
router S needs to consider a PQ-node from the candidate node- router S needs to consider a PQ-node from the candidate node-
protecting PQ-space for the primary nexthop E on shortest path from S protecting PQ-space for the primary nexthop E on shortest path from S
to R3. As mentioned in Section 2.2.2, to consider a PQ-node as to R3. As mentioned in Section 2.2.2, to consider a PQ-node as
candidate node-protecting PQ-node, there must be at least one direct candidate node-protecting PQ-node, there must be at least one direct
skipping to change at page 10, line 33 skipping to change at page 10, line 33
Some SPF implementations may also produce a list of links and nodes Some SPF implementations may also produce a list of links and nodes
traversed on the shortest path(s) from a given root to others. In traversed on the shortest path(s) from a given root to others. In
such implementations, router S may have executed a forward SPF with such implementations, router S may have executed a forward SPF with
each of its direct neighbors as the SPF root, executed as part of the each of its direct neighbors as the SPF root, executed as part of the
standard LFA [RFC5286] computations. So S may re-use the list of standard LFA [RFC5286] computations. So S may re-use the list of
links and nodes collected from the same SPF computations, to decide links and nodes collected from the same SPF computations, to decide
whether a node Y is a candidate node-protecting PQ-node or not. A whether a node Y is a candidate node-protecting PQ-node or not. A
node Y shall be considered as a node-protecting PQ-node, if and only node Y shall be considered as a node-protecting PQ-node, if and only
if, there is at least one direct neighbor of S, other than the if, there is at least one direct neighbor of S, other than the
primary nexthop E, for which, the primary nexthop node E does not primary nexthop E, for which, the primary nexthop node E does not
exist on the list of nodes traversed on any of the shortest path(s) exist on the list of nodes traversed on any of the shortest paths
from the direct neighbor to the PQ-node. Table 4 below is an from the direct neighbor to the PQ-node. Table 4 below is an
illustration of the mechanism with the topology in Figure 2. illustration of the mechanism with the topology in Figure 2.
+-----------+-------------------+-----------------+-----------------+ +-----------+-------------------+-----------------+-----------------+
| Candidate | Repair Tunnel | Link-Protection | Node-Protection | | Candidate | Repair Tunnel | Link-Protection | Node-Protection |
| PQ-node | Path(Repairing | | | | PQ-node | Path(Repairing | | |
| | router to PQ- | | | | | router to PQ- | | |
| | node) | | | | | node) | | |
+-----------+-------------------+-----------------+-----------------+ +-----------+-------------------+-----------------+-----------------+
| R2 | S->N->R1->R2 | Yes | Yes | | R2 | S->N->R1->R2 | Yes | Yes |
skipping to change at page 11, line 18 skipping to change at page 11, line 18
nodes for a given directly attached primary link, it shall follow the nodes for a given directly attached primary link, it shall follow the
procedure as proposed in this section, to choose one or more node- procedure as proposed in this section, to choose one or more node-
protecting R-LFA paths, for destinations reachable through the same protecting R-LFA paths, for destinations reachable through the same
primary link in the primary SPF graph. primary link in the primary SPF graph.
To find a node-protecting R-LFA path for a given destination, the To find a node-protecting R-LFA path for a given destination, the
computing router needs to pick a subset of PQ-nodes from the computing router needs to pick a subset of PQ-nodes from the
candidate node-protecting PQ-space for the corresponding primary candidate node-protecting PQ-space for the corresponding primary
nexthop, such that all the path(s) from the PQ-node(s) to the given nexthop, such that all the path(s) from the PQ-node(s) to the given
destination remain unaffected in the event of a node failure of the destination remain unaffected in the event of a node failure of the
primary nexthop node. To determine wether a given PQ-node belongs to primary nexthop node. To determine whether a given PQ-node belongs
such a subset of PQ-nodes, the computing router MUST ensure that none to such a subset of PQ-nodes, the computing router MUST ensure that
of the primary nexthop node are found on any of the shortest paths none of the primary nexthop node are found on any of the shortest
from the PQ-node to the given destination. paths from the PQ-node to the given destination.
This document proposes an additional forward SPF computation for each This document proposes an additional forward SPF computation for each
of the PQ-nodes, to discover all shortest paths from the PQ-nodes to of the PQ-nodes, to discover all shortest paths from the PQ-nodes to
the destination. This will help determine, if a given primary the destination. This will help determine, if a given primary
nexthop node is on the shortest paths from the PQ-node to the given nexthop node is on the shortest paths from the PQ-node to the given
destination or not. To determine if a given candidate node- destination or not. To determine if a given candidate node-
protecting PQ-node provides node-protecting alternate for a given protecting PQ-node provides node-protecting alternate for a given
destination, or not, all the shortest paths from the PQ-node to the destination, or not, all the shortest paths from the PQ-node to the
given destination has to be inspected, to check if the primary given destination has to be inspected, to check if the primary
nexthop node is found on any of these shortest paths. To compute all nexthop node is found on any of these shortest paths. To compute all
skipping to change at page 13, line 43 skipping to change at page 13, line 43
2.3.3. Computing Node-Protecting R-LFA Paths for Destinations with ECMP 2.3.3. Computing Node-Protecting R-LFA Paths for Destinations with ECMP
primary nexthop nodes primary nexthop nodes
In certain scenarios, when one or more destinations maybe reachable In certain scenarios, when one or more destinations maybe reachable
via multiple ECMP (equal-cost-multi-path) nexthop nodes, and only via multiple ECMP (equal-cost-multi-path) nexthop nodes, and only
link-protection is required, there is no need to compute any link-protection is required, there is no need to compute any
alternate paths for such destinations. In the event of failure of alternate paths for such destinations. In the event of failure of
one of the nexthop links, the remaining primary nexthops shall always one of the nexthop links, the remaining primary nexthops shall always
provide link-protection. However, if node-protection is required, provide link-protection. However, if node-protection is required,
the rest of the primary nexthops may not gaurantee node-protection. the rest of the primary nexthops may not guarantee node-protection.
Figure 7 below shows one such example topology. Figure 7 below shows one such example topology.
D1 D1
2 / 2 /
S---x---E1 S---x---E1
/ \ / \ / \ / \
/ x / \ / x / \
/ \ / \ / \ / \
N-------E2 R3--D2 N-------E2 R3--D2
\ 2 / \ 2 /
\ / \ /
\ / \ /
R1-------R2 R1-------R2
2 2
Primary Nexthops: Primary Nexthops:
Destination D1 = [{ S-E1, E1}, {S-E2, E2}] Destination D1 = [{ S-E1, E1}, {S-E2, E2}]
Destination D2 = [{ S-E1, E1}, {S-E2, E2}] Destination D2 = [{ S-E1, E1}, {S-E2, E2}]
Figure 7: Toplogy with multiple ECMP primary nexthops Figure 7: Topology with multiple ECMP primary nexthops
In the above example topology, costs of all links are 1, except the In the above example topology, costs of all links are 1, except the
following links: following links:
Link: S-E1, Cost: 2 Link: S-E1, Cost: 2
Link: N-E2: Cost: 2 Link: N-E2: Cost: 2
Link: R1-R2: Cost: 2 Link: R1-R2: Cost: 2
In the above topology, on computing router S, destinations D1 and D2 In the above topology, on computing router S, destinations D1 and D2
are reachable via two ECMP nexthop nodes E1 and E2. However the are reachable via two ECMP nexthop nodes E1 and E2. However the
primary paths via nexthop node E2 also traverses via the nexthop node primary paths via nexthop node E2 also traverses via the nexthop node
E1. So in the event of node failure of nexthop node E1, both primary E1. So in the event of node failure of nexthop node E1, both primary
paths (via E1 and E2) becomes unavailable. Hence if node-protection paths (via E1 and E2) becomes unavailable. Hence if node-protection
is desired for destinations D1 and D2, alternate paths that does not is desired for destinations D1 and D2, alternate paths that does not
traverse any of the primary nexthop nodes E1 and E2, need to be traverse any of the primary nexthop nodes E1 and E2, need to be
computed. In the above topology the only alternate neighbor N does computed. In the above topology the only alternate neighbor N does
not provide such a LFA alternate path. Hence one (or more) R-LFA not provide such a LFA alternate path. Hence one (or more) R-LFA
node-proecting alternate paths for destinations D1 and D2, needs to node-protecting alternate paths for destinations D1 and D2, needs to
be computed. be computed.
In the above topology, following are the link-protecting PQ-nodes. In the above topology, following are the link-protecting PQ-nodes.
Primary Nexthop: E1, Link-Protecting PQ-Node: { R2 } Primary Nexthop: E1, Link-Protecting PQ-Node: { R2 }
Primary Nexthop: E2, Link-Protecting PQ-Node: { R2 } Primary Nexthop: E2, Link-Protecting PQ-Node: { R2 }
To find one (or more) node-protecting R-LFA paths for destinations D1 To find one (or more) node-protecting R-LFA paths for destinations D1
and D2, one (or more) node-protecting PQ-node(s) needs to be and D2, one (or more) node-protecting PQ-node(s) needs to be
skipping to change at page 15, line 35 skipping to change at page 15, line 35
Table 7: Computing Node-protected PQ-nodes for nexthop E1 and E2 Table 7: Computing Node-protected PQ-nodes for nexthop E1 and E2
In SPF implementations that also produce a list of links and nodes In SPF implementations that also produce a list of links and nodes
traversed on the shortest path(s) from a given root to others, the traversed on the shortest path(s) from a given root to others, the
tunnel-repair paths from the computing router to candidate PQ-node tunnel-repair paths from the computing router to candidate PQ-node
can be examined to ensure that none of the primary nexthop nodes is can be examined to ensure that none of the primary nexthop nodes is
traversed. PQ-nodes that provide one (or more) Tunnel-repair traversed. PQ-nodes that provide one (or more) Tunnel-repair
paths(s) that does not traverse any of the primary nexthop nodes, are paths(s) that does not traverse any of the primary nexthop nodes, are
to be considered as node-protecting PQ-nodes. Table 8 below shows to be considered as node-protecting PQ-nodes. Table 8 below shows
the possible tunnel-repair paths tp PQ-node R2. the possible tunnel-repair paths to PQ-node R2.
+--------------+------------+-------------------+-------------------+ +--------------+------------+-------------------+-------------------+
| Primary-NH | PQ-Node | Tunnel-Repair | Exclude All | | Primary-NH | PQ-Node | Tunnel-Repair | Exclude All |
| (E) | (Y) | Paths | Primary-NH | | (E) | (Y) | Paths | Primary-NH |
+--------------+------------+-------------------+-------------------+ +--------------+------------+-------------------+-------------------+
| E1, E2 | R2 | S==>N==>R1==>R2 | Yes | | E1, E2 | R2 | S==>N==>R1==>R2 | Yes |
+--------------+------------+-------------------+-------------------+ +--------------+------------+-------------------+-------------------+
Table 8: Tunnel-Repair paths to PQ-node R2 Table 8: Tunnel-Repair paths to PQ-node R2
skipping to change at page 16, line 37 skipping to change at page 16, line 37
+----------+----------+-------+--------+--------+--------+----------+ +----------+----------+-------+--------+--------+--------+----------+
Table 9: Finding node-protecting R-LFA path for destinations D1 and Table 9: Finding node-protecting R-LFA path for destinations D1 and
D2 D2
In SPF implementations that also produce a list of links and nodes In SPF implementations that also produce a list of links and nodes
traversed on the shortest path(s) from a given root to others, the traversed on the shortest path(s) from a given root to others, the
R-LFA paths via node-protecting PQ-node to final destination can be R-LFA paths via node-protecting PQ-node to final destination can be
examined to ensure that none of the primary nexthop nodes is examined to ensure that none of the primary nexthop nodes is
traversed. R-LFA path(s) that does not traverse any of the primary traversed. R-LFA path(s) that does not traverse any of the primary
nexthop nodes, gaurantees node-protection in the event of failure of nexthop nodes, guarantees node-protection in the event of failure of
any of the primary nexthop nodes. Table 10 below shows the possible any of the primary nexthop nodes. Table 10 below shows the possible
R-LFA-paths for destinations D1 and D2 via the node-protecting PQ- R-LFA-paths for destinations D1 and D2 via the node-protecting PQ-
node R2. node R2.
+-------------+------------+---------+-----------------+------------+ +-------------+------------+---------+-----------------+------------+
| Destination | Primary-NH | PQ-Node | R-LFA Paths | Exclude | | Destination | Primary-NH | PQ-Node | R-LFA Paths | Exclude |
| (D) | (E) | (Y) | | All | | (D) | (E) | (Y) | | All |
| | | | | Primary-NH | | | | | | Primary-NH |
+-------------+------------+---------+-----------------+------------+ +-------------+------------+---------+-----------------+------------+
| D1 | E1, E2 | R2 | S==>N==>R1==>R2 | No | | D1 | E1, E2 | R2 | S==>N==>R1==>R2 | No |
| | | | -->R3-->E1-->D1 | | | | | | -->R3-->E1-->D1 | |
| | | | | | | | | | | |
| D2 | E1, E2 | R2 | S==>N==>R1==>R2 | Yes | | D2 | E1, E2 | R2 | S==>N==>R1==>R2 | Yes |
| | | | -->R3-->D2 | | | | | | -->R3-->D2 | |
+-------------+------------+---------+-----------------+------------+ +-------------+------------+---------+-----------------+------------+
Table 10: R-LFA paths for destinations D1 and D2 Table 10: R-LFA paths for destinations D1 and D2
From Table 9 and Table 10, in the above example above, the R-LFA path From Table 9 and Table 10, in the example above, the R-LFA path from
from R2 does not meet the node-protecting inequality for destination R2 does not meet the node-protecting inequality for destination D1,
D1, while it does meet the same inequality for destination D2. And while it does meet the same inequality for destination D2. And so,
so, while R2 provides node-protecting R-LFA alternate for D2, it while R2 provides node-protecting R-LFA alternate for D2, it fails to
fails to provide node-protection for destination D1. Finally, while provide node-protection for destination D1. Finally, while it is
it is possible to get a node-protecting R-LFA path for D2, no such possible to get a node-protecting R-LFA path for D2, no such node-
node-protecting R-LFA path can be found for D1. protecting R-LFA path can be found for D1.
2.3.4. Limiting extra computational overhead 2.3.4. Limiting extra computational overhead
In addition to the extra reverse SPF computations suggested by the In addition to the extra reverse SPF computations suggested by the
Remote-LFA [RFC7490] draft (one reverse SPF for each of the directly Remote-LFA [RFC7490] draft (one reverse SPF for each of the directly
connected neighbors), this document proposes a forward SPF connected neighbors), this document proposes a forward SPF
computations for each PQ-node discovered in the network. Since the computations for each PQ-node discovered in the network. Since the
average number of PQ-nodes found in any network is considerably more average number of PQ-nodes found in any network is considerably more
than the number of direct neighbors of the computing router, the than the number of direct neighbors of the computing router, the
proposal of running one forward SPF per PQ-node may add considerably proposal of running one forward SPF per PQ-node may add considerably
to the overall SPF computation time. to the overall SPF computation time.
To limit the computational overhead of the approach proposed, this To limit the computational overhead of the approach proposed, this
document proposes that implementations MUST choose a subset from the document proposes that implementations MUST choose a subset from the
entire set of PQ-nodes computed in the network, with a finite limit entire set of PQ-nodes computed in the network, with a finite limit
on the number of PQ-nodes in the subset. Implementations MUST choose on the number of PQ-nodes in the subset. Implementations MUST choose
a default value for this limit and may provide user with a a default value for this limit and may provide user with a
configuration knob to override the default limit. Implementations configuration knob to override the default limit. Implementations
MUST also evaluate some default preference criteria while considering MUST also evaluate some default preference criteria while considering
a PQ-node in this subset. Finally, implementations MAY also allow a PQ-node in this subset. Finally, implementations MAY also allow
user to override the default preference criteria, by providing a the user to override the default preference criteria, by providing a
policy configuration for the same. policy configuration for the same.
This document proposes that implementations SHOULD use a default This document proposes that implementations SHOULD use a default
preference criteria for PQ-node selection which will put a score on preference criteria for PQ-node selection which will put a score on
each PQ-node, proportional to the number of primary interfaces for each PQ-node, proportional to the number of primary interfaces for
which it provides coverage, its distance from the computing router, which it provides coverage, its distance from the computing router,
and its router-id (or system-id in case of IS-IS). PQ-nodes that and its router-id (or system-id in case of IS-IS). PQ-nodes that
cover more primary interfaces SHOULD be preferred over PQ-nodes that cover more primary interfaces SHOULD be preferred over PQ-nodes that
cover fewer primary interfaces. When two or more PQ-nodes cover the cover fewer primary interfaces. When two or more PQ-nodes cover the
same number of primary interfaces, PQ-nodes which are closer (based same number of primary interfaces, PQ-nodes which are closer (based
on metric) to the computing router SHOULD be preferred over PQ-nodes on metric) to the computing router SHOULD be preferred over PQ-nodes
farther away from it. For PQ-nodes that cover the same number of farther away from it. For PQ-nodes that cover the same number of
primary interfaces and are the same distance from the the computing primary interfaces and are the same distance from the computing
router, the PQ-node with smaller router-id (or system-id in case of router, the PQ-node with smaller router-id (or system-id in case of
IS-IS) SHOULD be preferred. IS-IS) SHOULD be preferred.
Once a subset of PQ-nodes is found, computing router shall run a Once a subset of PQ-nodes is found, computing router shall run a
forward SPF on each of the PQ-nodes in the subset to continue with forward SPF on each of the PQ-nodes in the subset to continue with
procedures proposed in section Section 2.3.2. procedures proposed in Section 2.3.2.
3. Manageabilty of Remote-LFA Alternate Paths 3. Manageability of Remote-LFA Alternate Paths
3.1. The Problem 3.1. The Problem
With the regular Remote-LFA [RFC7490] functionality the computing With the regular Remote-LFA [RFC7490] functionality the computing
router may compute more than one PQ-node as usable Remote-LFA router may compute more than one PQ-node as usable Remote-LFA
alternate nexthops. Additionally an alternate selection policy may alternate nexthops. Additionally an alternate selection policy may
be configured to enable the network operator to choose one of them as be configured to enable the network operator to choose one of them as
the most appropriate Remote-LFA alternate. For such policy-based the most appropriate Remote-LFA alternate. For such policy-based
alternate selection to run, all the relevant path characteristics for alternate selection to run, all the relevant path characteristics for
each the alternate paths (one through each of the PQ-nodes), needs to each the alternate paths (one through each of the PQ-nodes), needs to
be collected. As mentioned before in section Section 2.3 the R-LFA be collected. As mentioned before in Section 2.3 the R-LFA alternate
alternate path through a given PQ-node to a given destination is path through a given PQ-node to a given destination is comprised of
comprised of two path segments. two path segments.
The first path segment (i.e. from the computing router to the PQ- The first path segment (i.e. from the computing router to the PQ-
node) can be calculated from the regular forward SPF done as part of node) can be calculated from the regular forward SPF done as part of
standard and remote LFA computations. However without the mechanism standard and remote LFA computations. However without the mechanism
proposed in section Section 2.3.2 of this document, there is no way proposed in section Section 2.3.2 of this document, there is no way
to determine the path characteristics for the second path segment to determine the path characteristics for the second path segment
(i.e from the PQ-node to the destination). In the absence of the (i.e. from the PQ-node to the destination). In the absence of the
path characteristics for the second path segment, two Remote-LFA path characteristics for the second path segment, two Remote-LFA
alternate path may be equally preferred based on the first path alternate paths may be equally preferred based on the first path
segments characteristics only, although the second path segment segments characteristics only, although the second path segment
attributes may be different. attributes may be different.
3.2. The Solution 3.2. The Solution
The additional forward SPF computation proposed in Section 2.3.2 The additional forward SPF computation proposed in Section 2.3.2
document shall also collect links, nodes and path characteristics document shall also collect links, nodes and path characteristics
along the second path segment. This shall enable collection of along the second path segment. This shall enable collection of
complete path characteristics for a given Remote-LFA alternate path complete path characteristics for a given Remote-LFA alternate path
to a given destination. The complete alternate path characteristics to a given destination. The complete alternate path characteristics
shall then facilitate more accurate alternate path selection while shall then facilitate more accurate alternate path selection while
running the alternate selection policy. running the alternate selection policy.
As already specified in Section 2.3.4 to limit the computational As already specified in Section 2.3.4 to limit the computational
overhead of the approach proposed, forward SPF computations MUST be overhead of the proposed approach, forward SPF computations MUST be
run on a selected subset from the entire set of PQ-nodes computed in run on a selected subset from the entire set of PQ-nodes computed in
the network, with a finite limit on the number of PQ-nodes in the the network, with a finite limit on the number of PQ-nodes in the
subset. The detailed suggestion on how to select this subset is subset. The detailed suggestion on how to select this subset is
specified in the same section. While this limits the number of specified in the same section. While this limits the number of
possible alternate paths provided to the alternate-selection policy, possible alternate paths provided to the alternate-selection policy,
this is needed keep the computational complexity within affordable this is needed to keep the computational complexity within affordable
limits. However if the alternate-selection policy is very limits. However if the alternate-selection policy is very
restrictive this may leave few destinations in the entire toplogy restrictive this may leave few destinations in the entire topology
without protection. Yet this limitation provides a necessary without protection. Yet this limitation provides a necessary
tradeoff between extensive coverage and immense computational tradeoff between extensive coverage and immense computational
overhead. overhead.
4. Acknowledgements 4. Acknowledgements
Many thanks to Bruno Decraene for providing his useful comments. We Many thanks to Bruno Decraene for providing his useful comments. We
would also like to thank Uma Chunduri for reviewing this document and would also like to thank Uma Chunduri for reviewing this document and
providing valuable feedback. Also, many thanks to Harish Raghuveer providing valuable feedback. Also, many thanks to Harish Raghuveer
for his review and comments on the initial versions of this document. for his review and comments on the initial versions of this document.
 End of changes. 33 change blocks. 
56 lines changed or deleted 54 lines changed or added

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