| < draft-psarkar-rtgwg-rlfa-node-protection-03.txt | draft-psarkar-rtgwg-rlfa-node-protection-04.txt > | |||
|---|---|---|---|---|
| Routing Area Working Group P. Sarkar, Ed. | Routing Area Working Group P. Sarkar, Ed. | |||
| Internet-Draft H. Gredler | Internet-Draft H. Gredler | |||
| Intended status: Standards Track S. Hegde | Intended status: Standards Track S. Hegde | |||
| Expires: June 23, 2014 H. Raghuveer | Expires: October 10, 2014 H. Raghuveer | |||
| C. Bowers | C. Bowers | |||
| Juniper Networks, Inc. | Juniper Networks, Inc. | |||
| S. Litkowski | S. Litkowski | |||
| Orange | Orange | |||
| December 20, 2013 | April 08, 2014 | |||
| Remote-LFA Node Protection and Manageability | Remote-LFA Node Protection and Manageability | |||
| draft-psarkar-rtgwg-rlfa-node-protection-03 | draft-psarkar-rtgwg-rlfa-node-protection-04 | |||
| Abstract | Abstract | |||
| The loop-free alternates computed following the current Remote-LFA | The loop-free alternates computed following the current Remote-LFA | |||
| [I-D.ietf-rtgwg-remote-lfa] specification gaurantees only link- | [I-D.ietf-rtgwg-remote-lfa] specification gaurantees only link- | |||
| protection. The resulting Remote-LFA nexthops (also called PQ- | protection. The resulting Remote-LFA nexthops (also called PQ- | |||
| nodes), may not gaurantee node-protection for all destinations being | nodes), may not gaurantee node-protection for all destinations being | |||
| protected by it. | protected by it. | |||
| This document describes procedures for determining if a given PQ-node | This document describes procedures for determining if a given PQ-node | |||
| skipping to change at page 2, line 7 ¶ | skipping to change at page 2, line 7 ¶ | |||
| 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 23, 2014. | This Internet-Draft will expire on October 10, 2014. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2014 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 | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| skipping to change at page 4, line 35 ¶ | skipping to change at page 4, line 35 ¶ | |||
| | R3 | S->E->R3 | R2 | S=>N=>R1=>R2->R3 | | | R3 | S->E->R3 | R2 | S=>N=>R1=>R2->R3 | | |||
| | E | S->E | R2 | S=>N=>R1=>R2->R3->E | | | E | S->E | R2 | S=>N=>R1=>R2->R3->E | | |||
| | D1 | S->E->D1 | R2 | S=>N=>R1=>R2->R3->E->D1 | | | D1 | S->E->D1 | R2 | S=>N=>R1=>R2->R3->E->D1 | | |||
| | D2 | S->E->R3->D2 | R2 | S=>N=>R1=>R2->R3->D2 | | | D2 | S->E->R3->D2 | R2 | S=>N=>R1=>R2->R3->D2 | | |||
| +-------------+--------------+---------+-------------------------+ | +-------------+--------------+---------+-------------------------+ | |||
| Table 1: Remote-LFA backup paths via PQ-node R2 | Table 1: Remote-LFA backup paths via PQ-node R2 | |||
| A closer look at Table 1 shows that, while the PQ-node R2 provides | A closer look at Table 1 shows that, while the PQ-node R2 provides | |||
| link-protection for all the destinations, it does not provide node- | link-protection for all the destinations, it does not provide node- | |||
| protection for destinations E and F. In the event of the node-failure | protection for destinations E and D1. In the event of the node- | |||
| on primary nexthop E, the alternate path from Remote-LFA nexthop R2 | failure on primary nexthop E, the alternate path from Remote-LFA | |||
| to E and D1 also becomes unavailable. So for a Remote-LFA nexthop to | nexthop R2 to E and D1 also becomes unavailable. So for a Remote-LFA | |||
| provide node-protection for a given destination, it is mandatory | nexthop to provide node-protection for a given destination, it is | |||
| that, the shortest path from the given PQ-node to the given | mandatory that, the shortest path from the given PQ-node to the given | |||
| destination MUST not traverse the primary nexthop. | destination MUST not traverse the primary nexthop. | |||
| In another extension of the topology in Figure 1 let us consider an | In another extension of the topology in Figure 1 let us consider an | |||
| additional link between N and E. | additional link between N and E. | |||
| D1 | D1 | |||
| / | / | |||
| S-x-E | S-x-E | |||
| / / \ | / / \ | |||
| N---+ R3--D2 | N---+ R3--D2 | |||
| skipping to change at page 5, line 35 ¶ | skipping to change at page 5, line 35 ¶ | |||
| | R3 | S->E->R3 | R3 | S=>N=>E=>R3 | | | R3 | S->E->R3 | R3 | S=>N=>E=>R3 | | |||
| | E | S->E | R3 | S=>N=>E=>R3->E | | | E | S->E | R3 | S=>N=>E=>R3->E | | |||
| | D1 | S->E->D1 | R3 | S=>N=>E=>R3->E->D1 | | | D1 | S->E->D1 | R3 | S=>N=>E=>R3->E->D1 | | |||
| | D2 | S->E->D1 | R3 | S=>N=>E=>R3->D2 | | | D2 | S->E->D1 | R3 | S=>N=>E=>R3->D2 | | |||
| +-------------+--------------+---------+------------------------+ | +-------------+--------------+---------+------------------------+ | |||
| 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 | |||
| G, if we choose R3 as the R-LFA nexthop, it does not provide node- | D1, if we choose R3 as the R-LFA nexthop, it does not provide node- | |||
| protection for R3 and D1 anymore. If S chooses R3 as the R-LFA | protection for R3 and D1 anymore. If S chooses R3 as the R-LFA | |||
| nexthop, in the event of the node-failure on primary nexthop E, the | nexthop, in the event of the node-failure on primary nexthop E, the | |||
| alternate path from S to R-LFA nexthop R3 also becomes unavailable. | alternate path from S to R-LFA nexthop R3 also becomes unavailable. | |||
| So for a Remote-LFA nexthop to provide node-protection for a given | So for a Remote-LFA nexthop to provide node-protection for a given | |||
| destination, it is also mandatory that, the shortest path from S to | destination, it is also mandatory that, the shortest path from S to | |||
| the chosen PQ-node MUST not traverse the primary nexthop node. | the chosen PQ-node MUST not traverse the primary nexthop node. | |||
| 2.2. Few Additional Definitions | 2.2. Few Additional Definitions | |||
| This document adds and enhances the following definitions extending | This document adds and enhances the following definitions extending | |||
| skipping to change at page 6, line 15 ¶ | skipping to change at page 6, line 15 ¶ | |||
| S-E link on any of the shortest path from the direct neighbor to the | S-E link on any of the shortest path from the direct neighbor to the | |||
| router. This MUST exclude any direct neighbor for which there is | router. This MUST exclude any direct neighbor for which there is | |||
| atleast one ECMP path from the direct neighbor traversing the | atleast one ECMP path from the direct neighbor traversing the | |||
| link(S-E) being protected. | link(S-E) being protected. | |||
| 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 to the link | |||
| (S-E) being protected, if and only if, there exists atleast one | (S-E) being protected, if and only if, there exists atleast one | |||
| direct neighbor of S, Ni, other than primary nexthop E, that | direct neighbor of S, Ni, other than primary nexthop E, that | |||
| satisfies the following condition. | satisfies the following condition. | |||
| D_opt(Ni,Y) < D_opt(Ni,S) + D_opt(S,E) + D_opt(E,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. | |||
| E : The primary nexthop on shortest path from S | ||||
| to destination. | ||||
| 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.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 7, line 20 ¶ | skipping to change at page 7, line 20 ¶ | |||
| to destination. | to destination. | |||
| 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 node-protecting | Y : The node being evaluated for node-protecting | |||
| extended P-Space. | extended P-Space. | |||
| Figure 4: Node-Protecting Ext-P-Space Condition | Figure 4: Node-Protecting Ext-P-Space Condition | |||
| It must be noted that a node Y satisfying the condition in Figure 4 | It must be noted that a node Y satisfying the condition in Figure 4 | |||
| above only guarantees that the R-LFA alternate path segment from S | above only guarantees that the R-LFA alternate path segment from S | |||
| via direct neighbor Ni to the PQ-node Y is not affected in the event | via direct neighbor Ni to the node Y is not affected in the event of | |||
| of a node failure of E. It does not yet guarantee that the path | a node failure of E. It does not yet guarantee that the path segment | |||
| segment from PQ-node Y to the destination is also unaffected by the | from node Y to the destination is also unaffected by the same failure | |||
| same failure event. | event. | |||
| 2.2.3. Q-Space | 2.2.3. Q-Space | |||
| The Remote-LFA [I-D.ietf-rtgwg-remote-lfa] draft already defines | The Remote-LFA [I-D.ietf-rtgwg-remote-lfa] draft already defines | |||
| this. The Q-space for a link S-E being protected is the set of | this. The Q-space for a link S-E being protected is the set of | |||
| routers that can reach primary node E, without traversing the S-E | routers that can reach primary node E, without traversing the S-E | |||
| link on any of the shortest path from the node Y to primary nexthop | link on any of the shortest path from the node Y to primary nexthop | |||
| E. This MUST exclude any destination for which there is atleast one | E. This MUST exclude any destination for which there is atleast one | |||
| ECMP path from the node Y to the primary nexthop E traversing the | ECMP path from the node Y to the primary nexthop E traversing the | |||
| link(S-E) being protected. | link(S-E) being protected. | |||
| skipping to change at page 9, line 7 ¶ | skipping to change at page 9, line 7 ¶ | |||
| 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 atleast one direct | candidate node-protecting PQ-node, there must be atleast one direct | |||
| neighbor Ni of S, such that all shortest paths from Ni to the PQ-node | neighbor Ni of S, such that all shortest paths from Ni to the PQ-node | |||
| does not traverse primary nexthop node E. | does not traverse primary nexthop node E. | |||
| Implementations should run the inequality in Section 2.2.2 Figure 4 | Implementations should run the inequality in Section 2.2.2 Figure 4 | |||
| for all direct neighbor, other than primary nexthop node E, to | for all direct neighbor, other than primary nexthop node E, to | |||
| determine whether a PQ-node Y is also a candidate node-protecting PQ- | determine whether a node Y is a candidate node-protecting PQ-node. | |||
| node. All of the metrics needed by this inequality would have been | All of the metrics needed by this inequality would have been already | |||
| already collected from the forward SPFs rooted at each of direct | collected from the forward SPFs rooted at each of direct neighbor S, | |||
| neighbor S, computed as part of standard LFA [RFC5286] | computed as part of standard LFA [RFC5286] implementation. With | |||
| implementation. With reference to the topology in Figure 2, Table 3 | reference to the topology in Figure 2, Table 3 below shows how the | |||
| below shows how the above condition can be used to determine the | above condition can be used to determine the candidate node- | |||
| candidate node-protecting PQ-space for S-E link (primary nexthop E) | protecting PQ-space for S-E link (primary nexthop E) | |||
| +----------+----------+----------+-----------+----------+-----------+ | +------------+----------+----------+----------+---------+-----------+ | |||
| | PQ-node | Direct | D_opt | D_opt | D_opt | Condition | | | Candidate | Direct | D_opt | D_opt | D_opt | Condition | | |||
| | (Y) | Nbr (Ni) | (Ni,Y) | (Ni,E) | (E,Y) | Met | | | PQ-node | Nbr (Ni) | (Ni,Y) | (Ni,E) | (E,Y) | Met | | |||
| +----------+----------+----------+-----------+----------+-----------+ | | (Y) | | | | | | | |||
| | R2 | N | 2 (N,R2) | 1 (N,E) | 2 (E,R2) | Yes | | +------------+----------+----------+----------+---------+-----------+ | |||
| | R3 | N | 2 (N,R3) | 1 (N,E) | 1 (E,R3) | No | | | R2 | N | 2 (N,R2) | 1 (N,E) | 2 | Yes | | |||
| +----------+----------+----------+-----------+----------+-----------+ | | | | | | (E,R2) | | | |||
| | R3 | N | 2 (N,R3) | 1 (N,E) | 1 | No | | ||||
| | | | | | (E,R3) | | | ||||
| +------------+----------+----------+----------+---------+-----------+ | ||||
| Table 3: Node-protection evaluation for R-LFA repair tunnel to PQ- | Table 3: Node-protection evaluation for R-LFA repair tunnel to PQ- | |||
| node | node | |||
| As seen in the above Table 3 , R3 does not meet the node-protecting | As seen in the above Table 3 , R3 does not meet the node-protecting | |||
| extended-p-space inequality And so, while R2 is in candidate node- | extended-p-space inequality And so, while R2 is in candidate node- | |||
| protecting PQ space, R3 is not. | protecting PQ space, R3 is not. | |||
| 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 it's direct neighbors as the SPF root, executed as part of | each of it's direct neighbors as the SPF root, executed as part of | |||
| the standard LFA [RFC5286] computations. So S may re-use the list of | the 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 PQ-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 | |||
| PQ-node Y shall be considered as a node-protecting, if and only if, | node Y shall be considered as a node-protecting PQ-node, if and only | |||
| there is atleast one direct neighbor of S, other than the primary | if, there is atleast one direct neighbor of S, other than the primary | |||
| nexthop E, for which, the primary nexthop node E does not exist on | 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) from the | the list of nodes traversed on any of the shortest path(s) from the | |||
| direct neighbor to the PQ-node. Table 4 below is an illustration of | direct neighbor to the PQ-node. Table 4 below is an illustration of | |||
| the mechanism with the topology in Figure 2. | the mechanism with the topology in Figure 2. | |||
| +---------+---------------------+-----------------+-----------------+ | +-----------+-------------------+-----------------+-----------------+ | |||
| | PQ-node | Repair Tunnel | Link-Protection | Node-Protection | | | Candidate | Repair Tunnel | Link-Protection | Node-Protection | | |||
| | | Path(Repairing | | | | | PQ-node | Path(Repairing | | | | |||
| | | router to PQ-node) | | | | | | router to PQ- | | | | |||
| +---------+---------------------+-----------------+-----------------+ | | | node) | | | | |||
| | R2 | S->N->R1->R2 | Yes | Yes | | +-----------+-------------------+-----------------+-----------------+ | |||
| | R2 | S->E->R3->R2 | No | No | | | R2 | S->N->R1->R2 | Yes | Yes | | |||
| | R3 | S->N->E->R3 | Yes | No | | | R2 | S->E->R3->R2 | No | No | | |||
| +---------+---------------------+-----------------+-----------------+ | | R3 | S->N->E->R3 | Yes | No | | |||
| +-----------+-------------------+-----------------+-----------------+ | ||||
| Table 4: Protection of Remote-LFA tunnel to the PQ-node | Table 4: Protection of Remote-LFA tunnel to the PQ-node | |||
| As seen in the above Table 4 while R2 is candidate node-protecting | As seen in the above Table 4 while R2 is candidate node-protecting | |||
| Remote-LFA nexthop for R3 and G, it is not so for E and F, since the | Remote-LFA nexthop for R3 and D2, it is not so for E and D1, since | |||
| primary nexthop E is in the shortest path from R2 to E and F. | the primary nexthop E is in the shortest path from R2 to E and F. | |||
| 2.3.2. Computing node-protecting paths from PQ-nodes to destinations | 2.3.2. Computing node-protecting paths from PQ-nodes to destinations | |||
| Once a computing router finds all the candidate node-protecting PQ- | Once a computing router finds all the candidate node-protecting PQ- | |||
| 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 in proposed in this section, to choose one or more node- | procedure in 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 | |||
| skipping to change at page 10, line 43 ¶ | skipping to change at page 10, line 44 ¶ | |||
| destination remain unaffected in the event of a node failure of | destination remain unaffected in the event of a node failure of | |||
| primary nexthop node. To ensure this, the computing router will need | primary nexthop node. To ensure this, the computing router will need | |||
| to ensure that, the primary nexthop node should not be on any of the | to ensure that, the primary nexthop node should not be on any of the | |||
| shortest paths from the PQ-node to the given destination. | shortest 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. The additional forward SPF computation for each PQ- | the destination. The additional forward SPF computation for each PQ- | |||
| node, shall help determine, if a given primary nexthop node is on the | node, shall help determine, if a given primary nexthop node is on the | |||
| shortest paths from the PQ-node to the given destination or not. To | shortest paths from the PQ-node to the given destination or not. To | |||
| determine if a given PQ-node provides node-protecting alternate for a | determine if a given candidate node-protecting PQ-node provides node- | |||
| given destination, the primary nexthop node should not be on any of | protecting alternate for a given destination, the primary nexthop | |||
| the shortest paths from the PQ-node to the given destination. After | node should not be on any of the shortest paths from the PQ-node to | |||
| running the forward SPF on a PQ-node (from the node-protecting PQ- | the given destination. On running the forward SPF on a candidate | |||
| space) the computing router shall run the inequality in Figure 6 | node-protecting PQ-node the computing router shall run the inequality | |||
| below. PQ-nodes that does not qualify the condition for a given | in Figure 6 below. PQ-nodes that does not qualify the condition for | |||
| destination, does not gaurantee node-protection for the path segment | a given destination, does not gaurantee node-protection for the path | |||
| from the PQ-node to the given destination. | segment from the PQ-node to the given destination. | |||
| D_opt(Y,D) < D_opt(Y,E) + Distance_opt(E,D) | D_opt(Y,D) < D_opt(Y,E) + Distance_opt(E,D) | |||
| 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. | |||
| D : The destination node. | D : The destination node. | |||
| 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-protecting PQ-node being evaluated | Y : The node-protecting PQ-node being evaluated | |||
| End of changes. 16 change blocks. | ||||
| 54 lines changed or deleted | 56 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/ | ||||