draft-ietf-teas-p2mp-loose-path-reopt-09.txt | rfc8149.txt | |||
---|---|---|---|---|
TEAS Working Group T. Saad, Ed. | Internet Engineering Task Force (IETF) T. Saad, Ed. | |||
Internet-Draft R. Gandhi, Ed. | Request for Comments: 8149 R. Gandhi, Ed. | |||
Intended status: Standards Track Z. Ali | Category: Standards Track Z. Ali | |||
Expires: August 6, 2017 Cisco Systems, Inc. | ISSN: 2070-1721 Cisco Systems, Inc. | |||
R. Venator | R. Venator | |||
Defense Information Systems Agency | Defense Information Systems Agency | |||
Y. Kamite | Y. Kamite | |||
NTT Communications Corporation | NTT Communications Corporation | |||
February 2, 2017 | April 2017 | |||
RSVP Extensions For Re-optimization of Loosely Routed | RSVP Extensions for Reoptimization of Loosely Routed | |||
Point-to-Multipoint Traffic Engineering Label Switched Paths (LSPs) | Point-to-Multipoint Traffic Engineering Label Switched Paths (LSPs) | |||
draft-ietf-teas-p2mp-loose-path-reopt-09 | ||||
Abstract | Abstract | |||
Re-optimization of a Point-to-Multipoint (P2MP) Traffic Engineered | The reoptimization of a Point-to-Multipoint (P2MP) Traffic | |||
(TE) Label Switched Path (LSP) may be triggered based on the need to | Engineering (TE) Label Switched Path (LSP) may be triggered based on | |||
re-optimize an individual source-to-leaf (S2L) sub-LSP or a set of | the need to reoptimize an individual source-to-leaf (S2L) sub-LSP or | |||
S2L sub-LSPs, both using Sub-Group-Based Re-optimization method, or | a set of S2L sub-LSPs, both using the Sub-Group-based reoptimization | |||
the entire P2MP-TE LSP tree using the Make-Before-Break (MBB) method. | method, or the entire P2MP-TE LSP tree using the Make-Before-Break | |||
This document discusses the application of the existing mechanisms | (MBB) method. This document discusses the application of the | |||
for path re-optimization of loosely routed Point-to-Point (P2P) TE | existing mechanisms for path reoptimization of loosely routed Point- | |||
LSPs to the P2MP-TE LSPs, identifies issues in doing so and defines | to-Point (P2P) TE LSPs to the P2MP-TE LSPs, identifies issues in | |||
procedures to address them. When re-optimizing a large number of S2L | doing so, and defines procedures to address them. When reoptimizing | |||
sub-LSPs in a tree using the Sub-Group-Based Re-optimization method, | a large number of S2L sub-LSPs in a tree using the Sub-Group-based | |||
the S2L sub-LSP descriptor list may need to be semantically | reoptimization method, the S2L sub-LSP descriptor list may need to be | |||
fragmented. This document defines the notion of a fragment | semantically fragmented. This document defines the notion of a | |||
identifier to help recipient nodes unambiguously reconstruct the | fragment identifier to help recipient nodes unambiguously reconstruct | |||
fragmented S2L sub-LSP descriptor list. | the fragmented S2L sub-LSP descriptor list. | |||
Status of this Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | This document is a product of the Internet Engineering Task Force | |||
Task Force (IETF). Note that other groups may also distribute | (IETF). It represents the consensus of the IETF community. It has | |||
working documents as Internet-Drafts. The list of current Internet- | received public review and has been approved for publication by the | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | Information about the current status of this document, any errata, | |||
and may be updated, replaced, or obsoleted by other documents at any | and how to provide feedback on it may be obtained at | |||
time. It is inappropriate to use Internet-Drafts as reference | http://www.rfc-editor.org/info/rfc8149. | |||
material or to cite them other than as "work in progress." | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 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 | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction ....................................................3 | |||
2. Conventions Used in This Document . . . . . . . . . . . . . . 4 | 2. Conventions Used in This Document ...............................4 | |||
2.1. Key Word Definitions . . . . . . . . . . . . . . . . . . . 4 | 2.1. Key Word Definitions .......................................4 | |||
2.2. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 5 | 2.2. Abbreviations ..............................................4 | |||
2.3. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 | 2.3. Terminology ................................................4 | |||
3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Overview ........................................................5 | |||
3.1. Loosely Routed Inter-domain P2MP-TE LSP Tree . . . . . . . 6 | 3.1. Loosely Routed Inter-domain P2MP-TE LSP Tree ...............5 | |||
3.2. Existing Mechanism For Tree-Based P2MP-TE LSP | 3.2. Existing Mechanism for Tree-Based P2MP-TE LSP | |||
Re-optimization . . . . . . . . . . . . . . . . . . . . . 6 | Reoptimization .............................................6 | |||
3.3. Existing Mechanism For Sub-Group-Based P2MP-TE LSP | 3.3. Existing Mechanism for Sub-Group-Based P2MP-TE LSP | |||
Re-optimization . . . . . . . . . . . . . . . . . . . . . 7 | Reoptimization .............................................7 | |||
4. Signaling Extensions For Loosely Routed P2MP-TE LSP | 4. Signaling Extensions for Loosely Routed P2MP-TE LSP | |||
Re-optimization . . . . . . . . . . . . . . . . . . . . . . . 8 | Reoptimization ..................................................8 | |||
4.1. Tree-Based Re-optimization . . . . . . . . . . . . . . . . 8 | 4.1. Tree-Based Reoptimization ..................................8 | |||
4.2. Sub-Group-Based Re-optimization Using Fragment | 4.2. Sub-Group-Based Reoptimization Using Fragment Identifier ...9 | |||
Identifier . . . . . . . . . . . . . . . . . . . . . . . . 9 | 5. Message and Object Definitions .................................11 | |||
5. Message and Object Definitions . . . . . . . . . . . . . . . . 11 | 5.1. "P2MP-TE Tree Re-evaluation Request" Flag .................11 | |||
5.1. P2MP-TE Tree Re-evaluation Request Flag . . . . . . . . . 11 | 5.2. "Preferable P2MP-TE Tree Exists" Path Error Sub-code ......11 | |||
5.2. Preferable P2MP-TE Tree Exists Path Error Sub-code . . . . 11 | 5.3. Fragment Identifier for S2L Sub-LSP Descriptor ............11 | |||
5.3. Fragment Identifier For S2L sub-LSP Descriptor . . . . . . 11 | 6. Compatibility ..................................................12 | |||
6. Compatibility . . . . . . . . . . . . . . . . . . . . . . . . 12 | 7. IANA Considerations ............................................13 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | 7.1. "P2MP-TE Tree Re-evaluation Request" Flag .................13 | |||
7.1. P2MP-TE Tree Re-evaluation Request Flag . . . . . . . . . 13 | 7.2. "Preferable P2MP-TE Tree Exists" Path Error Sub-code ......13 | |||
7.2. Preferable P2MP-TE Tree Exists Path Error Sub-code . . . . 13 | 7.3. Fragment Identifier for S2L Sub-LSP Descriptor ............14 | |||
7.3. Fragment Identifier For S2L sub-LSP Descriptor . . . . . . 14 | 8. Security Considerations ........................................14 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | 9. References .....................................................15 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 9.1. Normative References ......................................15 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . . 16 | 9.2. Informative References ....................................16 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . . 16 | Acknowledgments ...................................................16 | |||
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 17 | Authors' Addresses ................................................17 | |||
Author's Addresses . . . . . . . . . . . . . . . . . . . . . . . . 17 | ||||
1. Introduction | 1. Introduction | |||
This document defines Resource Reservation Protocol - Traffic | This document defines Resource Reservation Protocol - Traffic | |||
Engineering (RSVP-TE) [RFC2205] [RFC3209] signaling extensions for | Engineering (RSVP-TE) [RFC2205] [RFC3209] signaling extensions for | |||
re-optimizing loosely routed Point-to-Multipoint (P2MP) Traffic | reoptimizing loosely routed Point-to-Multipoint (P2MP) Traffic | |||
Engineered (TE) Label Switched Paths (LSPs) [RFC4875] in a | Engineering (TE) Label Switched Paths (LSPs) [RFC4875] in a | |||
Multi-Protocol Label Switching (MPLS) or Generalized MPLS (GMPLS) | Multiprotocol Label Switching (MPLS) or Generalized MPLS (GMPLS) | |||
[RFC3473] network. | [RFC3473] network. | |||
A P2MP-TE LSP is comprised of one or more source-to-leaf (S2L) | A P2MP-TE LSP is comprised of one or more source-to-leaf (S2L) | |||
sub-LSPs. A loosely routed P2MP-TE S2L sub-LSP is defined as one | sub-LSPs. A loosely routed P2MP-TE S2L sub-LSP is defined as one | |||
whose path does not contain the full explicit route identifying each | whose path does not contain the full explicit route identifying each | |||
node along the path to the egress node at the time of its signaling | node along the path to the egress node at the time of its signaling | |||
by the ingress node. Such an S2L sub-LSP is signaled with no | by the ingress node. Such an S2L sub-LSP is signaled with no | |||
Explicit Route Object (ERO) [RFC3209], or with an ERO that contains | Explicit Route Object (ERO) [RFC3209], with an ERO that contains at | |||
at least one loose next-hop, or with an ERO that contains an abstract | least one "loose next hop", or with an ERO that contains an abstract | |||
node which identifies more than one node. This is often the case | node that identifies more than one node. This is often the case with | |||
with inter-domain P2MP-TE LSPs where Path Computation Element (PCE) | inter-domain P2MP-TE LSPs where a Path Computation Element (PCE) is | |||
is not used [RFC5440]. | not used [RFC5440]. | |||
As per [RFC4875], an ingress node may re-optimize the entire P2MP-TE | As per [RFC4875], an ingress node may reoptimize the entire P2MP-TE | |||
LSP tree by re-signaling all its S2L sub-LSP(s) using the | LSP tree by re-signaling all its S2L sub-LSPs using the | |||
Make-Before-Break (MBB) method or may re-optimize individual S2L sub- | Make-Before-Break (MBB) method, or it may reoptimize an individual | |||
LSP or a set of S2L sub-LSPs i.e. individual destination or a set of | S2L sub-LSP or a set of S2L sub-LSPs, i.e., an individual destination | |||
destinations, both using the Sub-Group-Based Re-optimization method. | or a set of destinations, both using the Sub-Group-based | |||
reoptimization method. | ||||
[RFC4736] defines RSVP signaling procedure for re-optimizing the | [RFC4736] defines an RSVP signaling procedure for reoptimizing the | |||
path(s) of loosely routed Point-to-Point (P2P) TE LSP(s). Those | path(s) of loosely routed Point-to-Point (P2P) TE LSP(s). The | |||
mechanisms include a method for the ingress node to trigger a new | mechanisms listed in [RFC4736] include a method for the ingress node | |||
path re-evaluation request and a method for the mid-point node to | to trigger a new path re-evaluation request and a method for the | |||
notify availability of a preferred path. This document discusses the | midpoint node to send a notification regarding the availability of a | |||
application of those mechanisms to the re-optimization of loosely | preferred path. This document discusses the application of those | |||
routed P2MP-TE LSPs, identifies issues in doing so and defines | mechanisms to the reoptimization of loosely routed P2MP-TE LSPs, | |||
procedures to address them. | identifies issues in doing so, and defines procedures to address | |||
them. | ||||
For re-optimizing a group of S2L sub-LSPs in a tree using the Sub- | For reoptimizing a group of S2L sub-LSPs in a tree using the | |||
Group-Based Re-optimization method, an S2L sub-LSP descriptor list | Sub-Group-based reoptimization method, an S2L sub-LSP descriptor list | |||
can be used to signal one or more S2L sub-LSPs in an RSVP message. | can be used to signal one or more S2L sub-LSPs in an RSVP message. | |||
This RSVP message may need to be semantically fragmented when large | This RSVP message may need to be semantically fragmented when a large | |||
number of S2L sub-LSPs are added to the descriptor list. This | number of S2L sub-LSPs are added to the descriptor list. This | |||
document defines the notion of a fragment identifier to help | document defines the notion of a fragment identifier to help | |||
recipient nodes unambiguously reconstruct the fragmented S2L sub-LSP | recipient nodes unambiguously reconstruct the fragmented S2L sub-LSP | |||
descriptor list. | descriptor list. | |||
2. Conventions Used in This Document | 2. Conventions Used in This Document | |||
2.1. Key Word Definitions | 2.1. Key Word Definitions | |||
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]. | document are to be interpreted as described in [RFC2119]. | |||
2.2. Abbreviations | 2.2. Abbreviations | |||
ABR: Area Border Router. | ABR: Area Border Router. | |||
AS: Autonomous System. | ||||
ERO: Explicit Route Object. | ERO: Explicit Route Object. | |||
LSR: Label Switching Router. | LSP: Label Switched Path. | |||
S2L sub-LSP: Source-to-leaf sub Label Switched Path. | LSR: Label Switching Router. | |||
TE LSP: Traffic Engineering Label Switched Path. | RRO: Record Route Object. | |||
TE LSP ingress: Head-end/source node of the TE LSP. | S2L sub-LSP: Source-to-leaf sub-LSP. | |||
TE LSP egress: Tail-end/destination node of the TE LSP. | TE LSP: Traffic Engineering LSP. | |||
2.3. Terminology | 2.3. Terminology | |||
The reader is assumed to be familiar with the terminology in | This document defines the following terms: | |||
[RFC4736] and [RFC4875]. | ||||
o Ingress node: Head-end / source node of the TE LSP. | ||||
o Egress node: Tail-end / destination node of the TE LSP. | ||||
It is assumed that the reader is also familiar with the terminology | ||||
in [RFC4736] and [RFC4875]. | ||||
3. Overview | 3. Overview | |||
[RFC4736] defines RSVP signaling extensions for re-optimizing loosely | [RFC4736] defines RSVP signaling extensions for reoptimizing loosely | |||
routed P2P TE LSPs as follows: | routed P2P TE LSPs as follows: | |||
o A mid-point LSR that expands loose next-hop(s) sends a solicited | o A midpoint LSR that expands loose next hop(s) sends a solicited or | |||
or unsolicited PathErr with the Notify error code 25 (as defined | unsolicited PathErr with Notify error code 25 (as defined in | |||
in [RFC3209]) with sub-code 6 to indicate "Preferable Path Exists" | [RFC3209]), with sub-code 6 to indicate "Preferable Path Exists" | |||
to the ingress node. | to the ingress node. | |||
o An ingress node triggers a path re-evaluation request at all | o An ingress node triggers a path re-evaluation request at all | |||
mid-point LSR(s) that expands loose next-hop(s) by setting the | midpoint LSRs that expand loose next hop(s) by setting the "Path | |||
"Path Re-evaluation Request" flag (0x20) in SESSION_ATTRIBUTES | Re-evaluation Request" flag (0x20) in the SESSION_ATTRIBUTES | |||
Object in the Path message. | object in the Path message. | |||
o The ingress node upon receiving this PathErr with the Notify error | o The ingress node, upon receiving this PathErr with the Notify | |||
code either solicited or unsolicited initiates re-optimization of | error code (either solicited or unsolicited), initiates the | |||
the LSP using the MBB method with a different LSP-ID. | reoptimization of the LSP, using the MBB method with a different | |||
LSP-ID. | ||||
The following sections discuss the issues that may arise when | The following sections discuss the issues that may arise when | |||
applying the mechanisms defined in [RFC4736] for re-optimizing | applying the mechanisms defined in [RFC4736] for reoptimizing loosely | |||
loosely routed P2MP-TE LSPs. | routed P2MP-TE LSPs. | |||
3.1. Loosely Routed Inter-domain P2MP-TE LSP Tree | 3.1. Loosely Routed Inter-domain P2MP-TE LSP Tree | |||
An example of a loosely routed inter-domain P2MP-TE LSP tree is shown | An example of a loosely routed inter-domain P2MP-TE LSP tree is shown | |||
in Figure 1. In this example, the P2MP-TE LSP tree consists of 3 S2L | in Figure 1. In this example, the P2MP-TE LSP tree consists of three | |||
sub-LSPs, to destinations (i.e. leafs) R10, R11 and R12 from the | S2L sub-LSPs, to destinations (i.e., leafs) R10, R11, and R12 from | |||
ingress node (i.e. source) R1. Nodes R2 and R5 are branch nodes and | the ingress node (i.e., source) R1. Nodes R2 and R5 are branch | |||
nodes ABR3, ABR4, ABR7, ABR8 and ABR9 are area border routers. For | nodes, and nodes ABR3, ABR4, ABR7, ABR8, and ABR9 are ABRs. For the | |||
the S2L sub-LSP to destination R10, nodes ABR3, ABR7 and R10 are | S2L sub-LSP to destination R10, nodes ABR3, ABR7, and R10 are defined | |||
defined as loose next-hops. For the S2L sub-LSP to destination R11, | as loose next hops. For the S2L sub-LSP to destination R11, nodes | |||
nodes ABR3, ABR8 and R11 are defined as loose next-hops. For the S2L | ABR3, ABR8, and R11 are defined as loose next hops. For the S2L | |||
sub-LSP to destination R12, nodes ABR4, ABR9 and R12 are defined as | sub-LSP to destination R12, nodes ABR4, ABR9, and R12 are defined as | |||
loose next-hops. | loose next hops. | |||
<--area1--><--area0--><-area2-> | <--area1--><--area0--><-area2-> | |||
ABR7---R10 | ABR7---R10 | |||
/ | / | |||
/ | / | |||
ABR3---R5 | ABR3---R5 | |||
/ \ | / \ | |||
/ \ | / \ | |||
R1---R2 ABR8---R11 | R1---R2 ABR8---R11 | |||
\ | \ | |||
\ | \ | |||
ABR4---R6 | ABR4---R6 | |||
\ | \ | |||
\ | \ | |||
ABR9---R12 | ABR9---R12 | |||
Figure 1: An Example of Loosely Routed Inter-domain P2MP-TE LSP Tree | Figure 1: Example of Loosely Routed Inter-domain P2MP-TE LSP Tree | |||
3.2. Existing Mechanism For Tree-Based P2MP-TE LSP Re-optimization | 3.2. Existing Mechanism for Tree-Based P2MP-TE LSP Reoptimization | |||
Mechanisms defined in [RFC4736] can be easily applied to trigger the | The mechanisms defined in [RFC4736] can be easily applied to trigger | |||
re-optimization of individual or group of S2L sub-LSP(s). However, | the reoptimization of an individual S2L sub-LSP or a group of S2L | |||
to apply these [RFC4736] mechanisms for triggering the | sub-LSPs. However, to apply those mechanisms for triggering the | |||
re-optimization of a P2MP-TE LSP tree, an ingress node needs to send | reoptimization of a P2MP-TE LSP tree, an ingress node needs to send | |||
path re-evaluation requests on all (typically 100s of) S2L sub-LSPs | path re-evaluation requests on all (typically hundreds) of the | |||
and the mid-point LSR needs to send PathErrs with the Notify error | S2L sub-LSPs, and the midpoint LSR needs to send PathErrs with the | |||
code for all S2L sub-LSPs. Such mechanisms may lead to the following | Notify error code for all S2L sub-LSPs. Such mechanisms may lead to | |||
issues: | the following issues: | |||
o A mid-point LSR that expands loose next-hop(s) may have to | o A midpoint LSR that expands loose next hop(s) may have to | |||
accumulate the received path re-evaluation request(s) for all S2L | accumulate the received path re-evaluation request(s) for all S2L | |||
sub-LSPs (e.g. by using a wait timer) and interpret them as a | sub-LSPs (e.g., by using a wait timer) and interpret them as a | |||
re-optimization request for the whole P2MP-TE LSP tree. | reoptimization request for the whole P2MP-TE LSP tree. Otherwise, | |||
Otherwise, a mid-point LSR may prematurely notify "Preferable Path | a midpoint LSR may prematurely send a "Preferable Path Exists" | |||
Exists" for one or a sub-set of S2L sub-LSPs. | notification for one S2L sub-LSP or a subset of S2L sub-LSPs. | |||
o Similarly, the ingress node may have to heuristically determine | o Similarly, the ingress node may have to heuristically determine | |||
when to perform P2MP-TE LSP tree re-optimization and when to | when to perform P2MP-TE LSP tree reoptimization and when to | |||
perform S2L sub-LSP re-optimization. For example, an | perform S2L sub-LSP reoptimization. For example, an | |||
implementation may choose to delay re-optimization long enough to | implementation may choose to delay reoptimization long enough to | |||
allow all PathErr(s) to be received. Such timer-based procedures | allow all PathErrs to be received. Such timer-based procedures | |||
may produce undesired results. | may produce undesired results. | |||
o The ingress node that receives (un)solicited PathErr(s) with the | o The ingress node that receives (un)solicited PathErr(s) with the | |||
Notify error code for individual S2L sub-LSP(s), may prematurely | Notify error code for one or more individual S2L sub-LSPs may | |||
start re-optimizing the sub-set of S2L sub-LSPs. However, as | prematurely start reoptimizing the subset of S2L sub-LSPs. | |||
mentioned in [RFC4875] Section 14.2, such sub-group based re- | However, as mentioned in [RFC4875], Section 14.2, such a | |||
optimization procedure may result in data duplication that can be | Sub-Group-based reoptimization procedure may result in data | |||
avoided if the entire P2MP-TE LSP tree is re-optimized using the | duplication that can be avoided if the entire P2MP-TE LSP tree is | |||
Make-Before-Break method with a different LSP-ID, especially if | reoptimized using the MBB method with a different LSP-ID, | |||
the ingress node eventually receives PathErrs with the Notify | especially if the ingress node eventually receives PathErrs with | |||
error code for all S2L sub-LSPs of the P2MP-TE LSP tree. | the Notify error code for all S2L sub-LSPs of the P2MP-TE | |||
LSP tree. | ||||
In order to address above mentioned issues and to align | In order to address the above-mentioned issues and to align the | |||
re-optimization of P2MP-TE LSP with P2P LSP [RFC4736], there is a | reoptimization of P2MP-TE LSPs with P2P LSPs [RFC4736], a mechanism | |||
need for a mechanism to trigger re-optimization of the LSP tree by | is needed to trigger the reoptimization of the LSP tree by | |||
re-signaling all S2L sub-LSPs with a different LSP-ID. To meet this | re-signaling all S2L sub-LSPs with a different LSP-ID. To meet this | |||
requirement, this document defines RSVP-TE signaling extensions for | requirement, this document defines RSVP-TE signaling extensions for | |||
the ingress node to trigger the re-evaluation of the P2MP LSP tree on | the ingress node to trigger the re-evaluation of the P2MP LSP tree on | |||
every hop that has a next-hop defined as a loose or abstract hop for | every hop that has a next hop defined as a loose or abstract hop for | |||
one or more S2L sub-LSP path, and a mid-point LSR to signal to the | one or more S2L sub-LSP paths, and a midpoint LSR to signal to the | |||
ingress node that a preferable LSP tree exists (compared to the | ingress node that a preferable LSP tree exists (compared to the | |||
current path) or that the whole P2MP-TE LSP must be re-optimized | current path) or that the whole P2MP-TE LSP must be reoptimized | |||
(because of maintenance required on the TE LSP path) (see Section | (because of maintenance required on the TE LSP path) (see | |||
4.1). | Section 4.1). | |||
3.3. Existing Mechanism For Sub-Group-Based P2MP-TE LSP Re-optimization | ||||
Applying the procedures discussed in RFC4736 in conjunction with the | 3.3. Existing Mechanism for Sub-Group-Based P2MP-TE LSP Reoptimization | |||
Sub-Group-Based Re-Optimization procedures ([RFC4875], Section 14.2), | ||||
an ingress node MAY trigger path re-evaluation requests for a set of | ||||
S2L sub-LSPs in a single Path message using S2L sub-LSP descriptor | ||||
list. Similarly, a mid-point LSR may send a PathErr with the Notify | ||||
error code 25 and sub-code 6 containing a list of S2L sub-LSPs | ||||
transiting through the LSR using an S2L sub-LSP descriptor list to | ||||
notify the ingress node. This method can be used for re-optimizing a | ||||
sub-group of S2L sub-LSPs within an LSP tree using the same LSP-ID. | ||||
This method can alleviate the scale issue associated with sending | Applying the procedures discussed in [RFC4736] in conjunction with | |||
RSVP messages for individual S2L sub-LSPs. However, this procedure | the Sub-Group-based reoptimization procedures ([RFC4875], | |||
can lead to the following issues when used to re-optimize the LSP | Section 14.2), an ingress node MAY trigger path re-evaluation | |||
tree: | requests for a set of S2L sub-LSPs in a single Path message using an | |||
S2L sub-LSP descriptor list. Similarly, a midpoint LSR may send a | ||||
PathErr with Notify error code 25 and sub-code 6 ("Preferable Path | ||||
Exists") containing a list of S2L sub-LSPs transiting through the LSR | ||||
using an S2L sub-LSP descriptor list to notify the ingress node. | ||||
This method can be used for reoptimizing a sub-group of S2L sub-LSPs | ||||
within an LSP tree using the same LSP-ID. This method can alleviate | ||||
the scaling issue associated with sending RSVP messages for | ||||
individual S2L sub-LSPs. However, this procedure can lead to the | ||||
following issues when used to reoptimize the LSP tree: | ||||
o Path message that is intended to carry the path re-evaluation | o A Path message that is intended to carry the path re-evaluation | |||
request as defined in [RFC4736] with a full list of S2L sub-LSPs | request as defined in [RFC4736] with a full list of S2L sub-LSPs | |||
in S2L sub-LSPs descriptor list will be decomposed at branching | in an S2L sub-LSP descriptor list will be decomposed at branching | |||
LSRs, and only a subset of the S2L sub-LSPs that are routed over | LSRs, and only a subset of the S2L sub-LSPs that are routed over | |||
the same next-hop will be added in the descriptor list of the Path | the same next hop will be added in the descriptor list of the Path | |||
message propagated to downstream mid-point LSRs. Consequently, | message propagated to downstream midpoint LSRs. Consequently, | |||
when a preferable path exists at such mid-point LSRs, the PathErr | when a preferable path exists at such midpoint LSRs, the PathErr | |||
with the Notify error code can only include the sub-set of S2L | with the Notify error code can only include the subset of S2L | |||
sub-LSPs traversing the LSR. In this case, at the ingress node | sub-LSPs traversing the LSR. In this case, at the ingress node | |||
there is no way to distinguish which mode of re-optimization to | there is no way to distinguish which mode of reoptimization to | |||
invoke, i.e. sub-group based re-optimization using the same LSP-ID | invoke, i.e., Sub-Group-based reoptimization using the same LSP-ID | |||
or tree based re-optimization using a different LSP-ID. | or tree-based reoptimization using a different LSP-ID. | |||
o An LSR may semantically fragment a large RSVP message (when a | o An LSR may semantically fragment a large RSVP message (when a | |||
combined message may not be large enough to fit all S2L sub-LSPs). | combined message may not be large enough to fit all S2L sub-LSPs). | |||
In this case, the ingress node may receive multiple PathErrs with | In this case, the ingress node may receive multiple PathErrs with | |||
sub-sets of S2L sub-LSPs in each (due to either the combined Path | subsets of S2L sub-LSPs in each (due to either the combined Path | |||
message getting fragmented or the combined PathErr message getting | message getting fragmented or the combined PathErr message getting | |||
fragmented) and would require additional logic to determine how to | fragmented) and would require additional logic to determine how to | |||
re-optimize the LSP tree (for example, waiting for some time to | reoptimize the LSP tree (for example, waiting for some time to | |||
aggregate all possible PathErr messages before taking an action). | aggregate all possible PathErr messages before taking an action). | |||
When fragmented, RSVP messages may arrive out of order, and the | When fragmented, RSVP messages may arrive out of order, and the | |||
receiver has no way of knowing the beginning and end of the S2L | receiver has no way of knowing the beginning and end of the S2L | |||
sub-LSP list. | sub-LSP list. | |||
In order to address the above mentioned issues caused by RSVP message | In order to address the above-mentioned issues caused by semantic | |||
semantic fragmentation, this document defines new fragment identifier | fragmentation of an RSVP message, this document defines a new | |||
object for the S2L sub-LSP descriptor list when combining large | fragment identifier object for the S2L sub-LSP descriptor list when | |||
number of S2L sub-LSPs in an RSVP message (see Section 4.2). | combining a large number of S2L sub-LSPs in an RSVP message (see | |||
Section 4.2). | ||||
4. Signaling Extensions For Loosely Routed P2MP-TE LSP Re-optimization | 4. Signaling Extensions for Loosely Routed P2MP-TE LSP Reoptimization | |||
4.1. Tree-Based Re-optimization | 4.1. Tree-Based Reoptimization | |||
To evaluate a P2MP-TE LSP tree on mid-point LSRs that expand loose | To evaluate a P2MP-TE LSP tree on midpoint LSRs that expand loose | |||
next-hop(s), an ingress node MAY send a Path message with "P2MP-TE | next hop(s), an ingress node MAY send a Path message with the | |||
Tree Re-evaluation Request (value TBA1)" defined in this document. | "P2MP-TE Tree Re-evaluation Request" flag set (bit number 14 in the | |||
The ingress node selects one of the S2L sub-LSPs of the P2MP-TE LSP | Attribute Flags TLV) as defined in this document. The ingress node | |||
tree transiting a mid-point LSR to trigger the re-evaluation request. | selects one of the S2L sub-LSPs of the P2MP-TE LSP tree transiting a | |||
The ingress node MAY send a re-evaluation request to each border LSR | midpoint LSR to trigger the re-evaluation request. The ingress node | |||
on the path of the LSP tree. | MAY send a re-evaluation request to each border LSR on the path of | |||
the LSP tree. | ||||
A mid-point LSR that expands loose next-hop(s) for one or more S2L | A midpoint LSR that expands loose next hop(s) for one or more S2L | |||
sub-LSP path(s) does the following upon receiving a Path message with | sub-LSP paths does the following upon receiving a Path message with | |||
the "P2MP-TE Tree Re-evaluation Request" flag set: | the "P2MP-TE Tree Re-evaluation Request" flag set: | |||
o The mid-point LSR MUST check for a preferable P2MP-TE LSP tree by | o The midpoint LSR MUST check for a preferable P2MP-TE LSP tree by | |||
re-evaluating all S2L sub-LSP(s) that are expanded paths of the | re-evaluating all S2L sub-LSPs that are expanded paths of the | |||
loose next-hops of the P2MP-TE LSP. | loose next hops of the P2MP-TE LSP. | |||
o If a preferable P2MP-TE LSP tree is found, the mid-point LSR MUST | o If a preferable P2MP-TE LSP tree is found, the midpoint LSR MUST | |||
send an RSVP PathErr with the Notify error code 25 defined in | send to the ingress node an RSVP PathErr with Notify error code 25 | |||
[RFC3209] and sub-code "Preferable P2MP-TE Tree Exists (value | [RFC3209] and sub-code 13 ("Preferable P2MP-TE Tree Exists)" as | |||
TBA2)" defined in this document to the ingress node. The mid- | defined in this document. The midpoint LSR, in turn, SHOULD NOT | |||
point LSR, in turn, SHOULD NOT propagate the "P2MP-TE Tree Re- | propagate the "P2MP-TE Tree Re-evaluation Request" flag in the | |||
evaluation Request" flag in the subsequent RSVP Path messages sent | subsequent RSVP Path messages sent downstream for the re-evaluated | |||
downstream for the re-evaluated P2MP-TE LSP. | P2MP-TE LSP. | |||
o If no preferable tree for P2MP-TE LSP can be found, the mid-point | o If no preferable tree for P2MP-TE LSPs can be found, the midpoint | |||
LSR that expands loose next-hop(s) for one or more S2L sub-LSP | LSR that expands loose next hop(s) for one or more S2L sub-LSP | |||
path(s) MUST propagate the request downstream by setting the | paths MUST propagate the request downstream by setting the | |||
"P2MP-TE Tree Re-evaluation Request" flag in the LSP_ATTRIBUTES | "P2MP-TE Tree Re-evaluation Request" flag in the LSP_ATTRIBUTES | |||
Object of the RSVP Path message. | object of the RSVP Path message. | |||
A mid-point LSR MAY send an unsolicited PathErr with the Notify error | A midpoint LSR MAY send an unsolicited PathErr with the Notify error | |||
code and sub-code "Preferable P2MP-TE Tree Exists" to the ingress | code and the "Preferable P2MP-TE Tree Exists" sub-code to the ingress | |||
node to notify of a preferred P2MP-TE LSP tree when it determines it | node to notify the ingress node of a preferred P2MP-TE LSP tree when | |||
exists. In this case, the mid-point LSR that expands loose next- | it determines that it exists. In this case, the midpoint LSR that | |||
hop(s) for one or more S2L sub-LSP path(s) selects one of the S2L | expands loose next hop(s) for one or more S2L sub-LSP paths selects | |||
sub-LSP(s) of the P2MP-TE LSP tree to send this PathErr message to | one of the S2L sub-LSPs of the P2MP-TE LSP tree to send this PathErr | |||
the ingress node. The mid-point LSR SHOULD consider how frequently | message to the ingress node. The midpoint LSR SHOULD consider how | |||
it chooses to send such a PathErr - considering both that a PathErr | frequently it chooses to send such a PathErr, considering that both | |||
may be lost on its transit to the ingress node and that the ingress | (1) a PathErr may be lost during its transit to the ingress node and | |||
node may choose not to re-optimize the LSP when such a PathErr is | (2) the ingress node may choose not to reoptimize the LSP when such a | |||
received. | PathErr is received. | |||
The sending of an RSVP PathErr with the Notify error code and | The sending of an RSVP PathErr with the Notify error code and the | |||
"Preferable P2MP-TE Tree Exists" sub-code to the ingress node | "Preferable P2MP-TE Tree Exists" sub-code to the ingress node | |||
notifies the ingress node of the existence of a preferable P2MP-TE | notifies the ingress node of the existence of a preferable P2MP-TE | |||
LSP tree and upon receiving this PathErr, the ingress node SHOULD | LSP tree, and upon receiving this PathErr, the ingress node SHOULD | |||
trigger re-optimization of the LSP using the MBB method with a | trigger the reoptimization of the LSP, using the MBB method with a | |||
different LSP-ID. | different LSP-ID. | |||
4.2. Sub-Group-Based Re-optimization Using Fragment Identifier | 4.2. Sub-Group-Based Reoptimization Using Fragment Identifier | |||
It might be preferable, as per [RFC4875], to re-optimize the entire | It might be preferable, as per [RFC4875], to reoptimize the entire | |||
P2MP-TE LSP by re-signaling all of its S2L sub-LSP(s) (Section 14.1, | P2MP-TE LSP by re-signaling all of its S2L sub-LSPs (Section 14.1 | |||
"Make-before-Break") or to re-optimize individual or group of S2L | ("Make-before-Break") in [RFC4875]) or to reoptimize an individual | |||
sub-LSP(s) i.e. individual or group of destination(s) (Section 14.2 | S2L sub-LSP or a group of S2L sub-LSPs, i.e., an individual | |||
"Sub-Group-Based Re-Optimization" in [RFC4875]), both using the same | destination or a group of destinations (Section 14.2 | |||
LSP-ID. For loosely routed S2L sub-LSPs, this can be achieved by | ("Sub-Group-Based Re-Optimization") in [RFC4875]), both using the | |||
using the procedures defined in [RFC4736] to re-optimize one or more | same LSP-ID. For loosely routed S2L sub-LSPs, this can be achieved | |||
S2L sub-LSP(s) of the P2MP-TE LSP. | by using the procedures defined in [RFC4736] to reoptimize one or | |||
more S2L sub-LSPs of the P2MP-TE LSP. | ||||
An ingress node may trigger path re-evaluation requests using the | An ingress node may trigger path re-evaluation requests using the | |||
procedures defined in [RFC4736] for a set of S2L sub-LSPs by | procedures defined in [RFC4736] for a set of S2L sub-LSPs by | |||
combining multiple Path messages using an S2L sub-LSP descriptor list | combining multiple Path messages using an S2L sub-LSP descriptor list | |||
[RFC4875]. An S2L sub-LSP descriptor list is created using a series | [RFC4875]. An S2L sub-LSP descriptor list is created using a series | |||
of S2L_SUB_LSP Objects as defined in [RFC4875]. Similarly, a mid- | of S2L_SUB_LSP objects as defined in [RFC4875]. Similarly, a | |||
point LSR may send a PathErr with the Notify error code (value 25) | midpoint LSR may send a PathErr with Notify error code 25 and | |||
and "Preferable Path Exists" (sub-code 6) containing a list of S2L | sub-code 6 ("Preferable Path Exists") containing a list of S2L | |||
sub-LSPs transiting through the LSR using an S2L sub-LSP descriptor | sub-LSPs transiting through the LSR using an S2L sub-LSP descriptor | |||
list to notify the ingress node of preferable paths available. | list to notify the ingress node of preferable paths available. | |||
As per [RFC4875] (Section 5.2.3, "Transit Fragmentation of Path State | The S2L_SUB_LSP_FRAG object defined in this document is optional, | |||
Information"), when a Path message is not large enough to fit all S2L | with the following exceptions: | |||
sub-LSPs in the descriptor list, an LSR may semantically fragment the | ||||
message. In this case, the LSR MUST add the S2L_SUB_LSP_FRAG Object | ||||
defined in this document in the S2L sub-LSP descriptor to be able to | ||||
rebuild the list from the received fragments that may arrive out of | ||||
order. | ||||
The S2L_SUB_LSP_FRAG Object defined in this document is optional. | o As per [RFC4875], Section 5.2.3 ("Transit Fragmentation of Path | |||
However, a node MUST add the S2L_SUB_LSP_FRAG Object for each | State Information"), when a Path message is not large enough to | |||
fragment in S2L sub-LSP descriptor when the RSVP message needs to be | fit all S2L sub-LSPs in the descriptor list, an LSR may | |||
fragmented. | semantically fragment the message. In this case, the LSR MUST add | |||
the S2L_SUB_LSP_FRAG object defined in this document for each | ||||
fragment in the S2L sub-LSP descriptor to be able to rebuild the | ||||
list from the received fragments that may arrive out of order. | ||||
A mid-point LSR SHOULD wait to accumulate all S2L sub-LSPs before | o In any other situation where an RSVP message needs to be | |||
attempting to re-evaluate preferable path when a Path message for | fragmented, an LSR MUST add the S2L_SUB_LSP_FRAG object for each | |||
"Path Re-evaluation Request" is received with S2L_SUB_LSP_FRAG | fragment in the S2L sub-LSP descriptor. | |||
Object. If a mid-point LSR does not receive all fragments of the | ||||
Path message (for example, when fragments are lost) within a | A midpoint LSR SHOULD wait to accumulate all S2L sub-LSPs before | |||
configurable time interval, it SHOULD trigger re-evaluation of all | attempting to re-evaluate a preferable path when a Path message for | |||
S2L sub-LSPs of the P2MP-TE LSP transiting on the node. A mid-point | "Path Re-evaluation Request" is received with the S2L_SUB_LSP_FRAG | |||
LSR MUST receive at least one fragment of the Path message to trigger | object. If a midpoint LSR does not receive all fragments of the Path | |||
this behaviour. | message (for example, when fragments are lost) within a configurable | |||
time interval, it SHOULD trigger the re-evaluation of all S2L | ||||
sub-LSPs of the P2MP-TE LSP transiting on the node. A midpoint LSR | ||||
MUST receive at least one fragment of the Path message to trigger | ||||
this behavior. | ||||
An ingress node SHOULD wait to accumulate all S2L sub-LSPs before | An ingress node SHOULD wait to accumulate all S2L sub-LSPs before | |||
attempting to trigger re-optimization when a PathErr with Notify | attempting to trigger reoptimization when a PathErr with the Notify | |||
error code and "Preferable Path Exists" sub-code is received with a | error code and the "Preferable Path Exists" sub-code is received with | |||
S2L_SUB_LSP_FRAG Object. If an ingress node does not receive all | an S2L_SUB_LSP_FRAG object. If an ingress node does not receive all | |||
fragments of the PathErr message (for example, when fragments are | fragments of the PathErr message (for example, when fragments are | |||
lost) within a configurable time interval, it SHOULD trigger re- | lost) within a configurable time interval, it SHOULD trigger the | |||
optimization of all S2L sub-LSPs of the P2MP-TE LSP transiting on the | reoptimization of all S2L sub-LSPs of the P2MP-TE LSP transiting on | |||
mid-point node that had sent the PathErr message. An ingress node | the midpoint node that had sent the PathErr message. An ingress node | |||
MUST receive at least one fragment of the PathErr message to trigger | MUST receive at least one fragment of the PathErr message to trigger | |||
this behaviour. | this behavior. | |||
The S2L_SUB_LSP_FRAG Object defined in this document has a wider | The S2L_SUB_LSP_FRAG object defined in this document has a wider | |||
applicability in addition to the P2MP-TE LSP re-optimization. It can | applicability in addition to the P2MP-TE LSP reoptimization. It can | |||
also be used (in Path and Resv messages) to setup a new P2MP-TE LSP, | also be used (in Path and Resv messages) to set up a new P2MP-TE LSP | |||
send other PathErr messages as well as Path Tear and Resv Tear | and to send other PathErr messages as well as Path Tear and Resv Tear | |||
messages for a set of S2L sub-LSPs. This is outside the scope of | messages for a set of S2L sub-LSPs. This is outside the scope of | |||
this document. | this document. | |||
5. Message and Object Definitions | 5. Message and Object Definitions | |||
5.1. P2MP-TE Tree Re-evaluation Request Flag | 5.1. "P2MP-TE Tree Re-evaluation Request" Flag | |||
In order to trigger a tree re-evaluation request, a new flag is | In order to trigger a tree re-evaluation request, a new flag in the | |||
defined in Attributes Flags TLV of the LSP_ATTRIBUTES Object | Attribute Flags TLV of the LSP_ATTRIBUTES object [RFC5420] is defined | |||
[RFC5420] as follows: | by this document: | |||
Bit Number (TBA1, to be assigned by IANA): P2MP-TE Tree | Bit Number 14: "P2MP-TE Tree Re-evaluation Request" flag | |||
Re-evaluation Request flag | ||||
The "P2MP-TE Tree Re-evaluation Request" flag is meaningful in a Path | The "P2MP-TE Tree Re-evaluation Request" flag is meaningful in a Path | |||
message of a P2MP-TE S2L sub-LSP and is inserted by the ingress node | message of a P2MP-TE S2L sub-LSP and is inserted by the ingress node | |||
using the message format defined in [RFC6510]. | using the message format defined in [RFC6510]. | |||
5.2. Preferable P2MP-TE Tree Exists Path Error Sub-code | 5.2. "Preferable P2MP-TE Tree Exists" Path Error Sub-code | |||
In order to indicate to an ingress node that a preferable P2MP-TE LSP | In order to indicate to an ingress node that a preferable P2MP-TE LSP | |||
tree exists, the following new sub-code for PathErr with Notify error | tree exists, the following new sub-code for PathErr messages with | |||
code 25 [RFC3209] is defined: | Notify error code 25 [RFC3209] is defined by this document: | |||
Sub-code (TBA2, to be assigned by IANA): Preferable P2MP-TE Tree | Sub-code 13: "Preferable P2MP-TE Tree Exists" sub-code | |||
Exists sub-code | ||||
When a preferable path for P2MP-TE LSP tree exists, the mid-point LSR | When a preferable path for a P2MP-TE LSP tree exists, the midpoint | |||
sends a solicited or unsolicited "Preferable P2MP-TE Tree Exists" | LSR sends a solicited or unsolicited "Preferable P2MP-TE Tree Exists" | |||
sub-code with PathErr with Notify error code 25 to the ingress node | sub-code with a PathErr message with Notify error code 25 to the | |||
of the P2MP-TE LSP. | ingress node of the P2MP-TE LSP. | |||
5.3. Fragment Identifier For S2L sub-LSP Descriptor | 5.3. Fragment Identifier for S2L Sub-LSP Descriptor | |||
The S2L_SUB_LSP Object [RFC4875] identifies a particular S2L sub-LSP | The S2L_SUB_LSP object [RFC4875] identifies a particular S2L sub-LSP | |||
belonging to the P2MP-TE LSP. An S2L sub-LSP descriptor list is | belonging to the P2MP-TE LSP. An S2L sub-LSP descriptor list is | |||
created using a series of S2L_SUB_LSP Objects as defined in | created using a series of S2L_SUB_LSP objects as defined in | |||
[RFC4875]. The RSVP message may need to be semantically fragmented | [RFC4875]. The RSVP message may need to be semantically fragmented | |||
[RFC4875] due to large number of S2L sub-LSPs added in the descriptor | [RFC4875] due to a large number of S2L sub-LSPs added in the | |||
list, and such fragments may be received our of order. To be able to | descriptor list, and such fragments may be received out of order. To | |||
rebuild the fragmented S2L sub-LSP descriptor list correctly, the | be able to rebuild the fragmented S2L sub-LSP descriptor list | |||
following Object is defined to identify the fragments. | correctly, the following object is defined to identify the fragments: | |||
S2L_SUB_LSP_FRAG: Class-Num TBA3 by IANA | ||||
+---------------+---------------+---------------+---------------+ | S2L_SUB_LSP_FRAG: Class Number 204 | |||
| Length (8 bytes) | Class-Num TBA3| C-Type 1 | | ||||
+---------------+---------------+---------------+---------------+ | ||||
| Fragment ID | Fragments Tot | Fragment Num | | ||||
+---------------+---------------+---------------+---------------+ | ||||
0 1 2 3 | ||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Length (8 bytes) | Class Num 204 | C-Type 1 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Fragment ID | Fragments Tot.| Fragment Num. | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Fragment ID: 16-bit integer in the range of 1 to 65535. | Fragment ID: 16-bit integer in the range of 1 to 65535. | |||
This value is incremented for each new RSVP message that needs to | This value is incremented for each new RSVP message that needs to | |||
be semantically fragmented. The fragment ID is reset to 1 when it | be semantically fragmented. The fragment ID is reset to 1 when it | |||
reaches the maximum value of 65535. The scope of the fragment ID | reaches the maximum value of 65535. The scope of the fragment ID | |||
is limited to the RSVP message type (e.g. Path) carrying the | is limited to the RSVP message type (e.g., Path) carrying the | |||
fragment. In other words, fragment IDs do not have any | fragment. In other words, fragment IDs do not have any | |||
correlation between different RSVP message types (e.g. Path and | correlation between different RSVP message types (e.g., Path and | |||
PathErr). The receiver does not check to ensure if the | PathErr). The receiver does not check to ensure that the | |||
consecutive new RSVP messages (e.g. Path messages) are received | consecutive new RSVP messages (e.g., Path messages) are received | |||
with fragment IDs incremented by 1. | with fragment IDs incremented by 1. | |||
Fragments Total: 8-bit integer in the range of 1 to 255. | Fragments Total: 8-bit integer in the range of 1 to 255. | |||
This value indicates the number of fragments sent for the given | This value indicates the number of fragments sent for the given | |||
RSVP message. This value MUST be the same in all fragmented RSVP | RSVP message. This value MUST be the same in all fragmented RSVP | |||
messages with a common Fragment ID. | messages with a common fragment ID. | |||
Fragment Number: 8-bit integer in the range of 1 to 255. | Fragment Number: 8-bit integer in the range of 1 to 255. | |||
This value indicates the position of this fragment in the given | This value indicates the position of this fragment in the given | |||
RSVP message. | RSVP message. | |||
The format of an S2L sub-LSP descriptor message is as follows: | The format of an S2L sub-LSP descriptor message is as follows: | |||
<S2L sub-LSP descriptor> ::= | <S2L sub-LSP descriptor> ::= | |||
[ <S2L_SUB_LSP_FRAG> ] | [ <S2L_SUB_LSP_FRAG> ] | |||
<S2L_SUB_LSP> | <S2L_SUB_LSP> | |||
[ <P2MP SECONDARY_EXPLICIT_ROUTE> ] | [ <P2MP SECONDARY_EXPLICIT_ROUTE> ] | |||
The S2L_SUB_LSP_FRAG Object is added before adding the S2L_SUB_LSP | The S2L_SUB_LSP_FRAG object is added before adding the S2L_SUB_LSP | |||
Object in the semantically fragmented RSVP message. | object in the semantically fragmented RSVP message. | |||
6. Compatibility | 6. Compatibility | |||
The LSP_ATTRIBUTES Object has been defined in [RFC5420] and its | ||||
The LSP_ATTRIBUTES object has been defined in [RFC5420] and its | ||||
message formats in [RFC6510] with class numbers in the form 11bbbbbb, | message formats in [RFC6510] with class numbers in the form 11bbbbbb, | |||
which ensures compatibility with non-supporting nodes. Per | which ensures compatibility with non-supporting nodes. Per | |||
[RFC2205], nodes not supporting this extension will ignore the new | [RFC2205], nodes not supporting this extension will ignore the new | |||
flag defined for this Object in this document but forward it without | flag defined for this object in this document and will forward it | |||
modification. | without modification. | |||
The S2L_SUB_LSP_FRAG Object has been defined with class numbers in | The S2L_SUB_LSP_FRAG object has been defined with class numbers in | |||
the form 11bbbbbb, which ensures compatibility with non-supporting | the form 11bbbbbb, which ensures compatibility with non-supporting | |||
nodes. Per [RFC2205], nodes not supporting this Object will ignore | nodes. Per [RFC2205], nodes not supporting this object will ignore | |||
the Object but forward it without modification. | the object and will forward it without modification. | |||
7. IANA Considerations | 7. IANA Considerations | |||
IANA is requested to administer assignment of new values for | IANA has performed the actions described below. | |||
namespace defined in this document and summarized in this section. | ||||
7.1. P2MP-TE Tree Re-evaluation Request Flag | ||||
IANA maintains a name space for RSVP-TE TE parameters "Resource | ||||
Reservation Protocol-Traffic Engineering (RSVP-TE) Parameters" (see | ||||
http://www.iana.org/assignments/rsvp-te-parameters). From the | ||||
registries in this name space "Attribute Flags", allocation of new | ||||
flag is requested (Section 5.1). | ||||
The following new flag is defined for the Attributes Flags TLV in the | ||||
LSP_ATTRIBUTES Object [RFC5420]. The numeric value is to be assigned | ||||
by IANA. | ||||
o P2MP-TE Tree Re-evaluation Request Flag: | 7.1. "P2MP-TE Tree Re-evaluation Request" Flag | |||
+--------+---------------+---------+---------+---------+-----------+ | IANA maintains the "Resource Reservation Protocol-Traffic Engineering | |||
| Bit No | Attribute | Carried | Carried | Carried | Reference | | (RSVP-TE) Parameters" registry (see | |||
| | Flag Name | in Path | in Resv | in RRO | | | <http://www.iana.org/assignments/rsvp-te-parameters>). Per | |||
| | | | | or ERO | | | Section 5.1 of this document, IANA has registered a new flag in the | |||
+--------+---------------+---------+---------+---------+-----------+ | "Attribute Flags" registry. This new flag is defined for the | |||
| TBA1 by| P2MP-TE Tree | Yes | No | No | This | | Attribute Flags TLV in the LSP_ATTRIBUTES object [RFC5420]. | |||
| IANA | Re-evaluation | | | | document | | ||||
+--------+---------------+---------+---------+---------+-----------+ | ||||
7.2. Preferable P2MP-TE Tree Exists Path Error Sub-code | +-----+---------------+----------+----------+-----+-----+-----------+ | |||
| Bit | Name | Attribute| Attribute| RRO | ERO | Reference | | ||||
| No | | Flags | Flags | | | | | ||||
| | | Path | Resv | | | | | ||||
+-----+---------------+----------+----------+-----+-----+-----------+ | ||||
| | P2MP-TE Tree | Yes | No | No | No | This | | ||||
| 14 | Re-evaluation | | | | | document | | ||||
| | Request | | | | | | | ||||
+-----+---------------+----------+----------+-----+-----+-----------+ | ||||
IANA maintains a name space for RSVP protocol parameters "Resource | 7.2. "Preferable P2MP-TE Tree Exists" Path Error Sub-code | |||
Reservation Protocol (RSVP) Parameters" (see | ||||
http://www.iana.org/assignments/rsvp-parameters). From the | ||||
sub-registry "Sub-Codes - 25 Notify Error" in registry "Error Codes | ||||
and Globally-Defined Error Value Sub-Codes", allocation of a new | ||||
error code is requested (Section 5.2). | ||||
As defined in [RFC3209], the Error Code 25 in the ERROR SPEC Object | IANA maintains the "Resource Reservation Protocol (RSVP) Parameters" | |||
corresponds to PathErr with Notify error. This document adds a new | registry (see <http://www.iana.org/assignments/rsvp-parameters>). | |||
sub-code for this PathErr as follows: | Per Section 5.2 of this document, IANA has registered a new error | |||
code in the "Sub-Codes - 25 Notify Error" sub-registry of the "Error | ||||
Codes and Globally-Defined Error Value Sub-Codes" registry. | ||||
o Preferable P2MP-TE Tree Exists sub-code: | As defined in [RFC3209], error code 25 in the ERROR_SPEC object | |||
corresponds to a PathErr with the Notify error. This document adds a | ||||
new "Preferable P2MP-TE Tree Exists" sub-code for this PathErr as | ||||
follows: | ||||
+----------+--------------------+---------+---------+-----------+ | +----------+--------------------+---------+---------+-----------+ | |||
| Sub-code | Sub-code | PathErr | PathErr | Reference | | | Value | Description | PathErr | PathErr | Reference | | |||
| value | Description | Code | Name | | | | | | Code | Name | | | |||
+----------+--------------------+---------+---------+-----------+ | +----------+--------------------+---------+---------+-----------+ | |||
| TBA2 by | Preferable P2MP-TE | 25 | Notify | This | | | 13 | Preferable P2MP-TE | 25 | Notify | This | | |||
| IANA | Tree Exists | | Error | document | | | | Tree Exists | | Error | document | | |||
+----------+--------------------+---------+---------+-----------+ | +----------+--------------------+---------+---------+-----------+ | |||
7.3. Fragment Identifier For S2L sub-LSP Descriptor | 7.3. Fragment Identifier for S2L Sub-LSP Descriptor | |||
IANA maintains a name space for RSVP protocol parameters "Resource | IANA maintains the "Resource Reservation Protocol (RSVP) Parameters" | |||
Reservation Protocol (RSVP) Parameters" (see | registry (see <http://www.iana.org/assignments/rsvp-parameters>). | |||
http://www.iana.org/assignments/rsvp-parameters). From the registry | Per Section 5.3 of this document, IANA has registered a new class | |||
"Class Names, Class Numbers, and Class Types", allocation of new | number in the "Class Names, Class Numbers, and Class Types" registry. | |||
Class-Num is requested (Section 5.3). | ||||
o S2L_SUB_LSP_FRAG Object: | +-----------------+---------------------------+-----------------+ | |||
| Class Number | Class Name | Reference | | ||||
+-----------------+---------------------------+-----------------+ | ||||
| 204 | S2L_SUB_LSP_FRAG | This document | | ||||
+-----------------+---------------------------+-----------------+ | ||||
IANA has also created the "Class Types or C-Types - 204 | ||||
S2L_SUB_LSP_FRAG" registry and populated it as follows: | ||||
+-----------------+---------------------------+-----------------+ | +-----------------+---------------------------+-----------------+ | |||
| Class-Num value | Description | Reference | | | Value | Description | Reference | | |||
+-----------------+---------------------------+-----------------+ | +-----------------+---------------------------+-----------------+ | |||
| TBA3 by IANA | S2L_SUB_LSP_FRAG | This document | | | 1 | S2L_SUB_LSP_FRAG | This document | | |||
+-----------------+---------------------------+-----------------+ | +-----------------+---------------------------+-----------------+ | |||
8. Security Considerations | 8. Security Considerations | |||
This document defines RSVP-TE signaling extensions to allow an | This document defines RSVP-TE signaling extensions to allow an | |||
ingress node of a P2MP-TE LSP to request the re-evaluation of the LSP | ingress node of a P2MP-TE LSP to request the re-evaluation of the LSP | |||
tree downstream of a node, and for a mid-point LSR to notify the | tree downstream of a node and to allow a midpoint LSR to notify the | |||
ingress node of the existence of a preferable tree by sending a | ingress node of the existence of a preferable tree by sending a | |||
PathErr. As per [RFC4736], in the case of a P2MP-TE LSP S2L sub-LSP | PathErr message. As per [RFC4736], in the case of a P2MP-TE LSP S2L | |||
spanning multiple domains, it may be desirable for a mid-point LSR to | sub-LSP spanning multiple domains, it may be desirable for a midpoint | |||
modify the RSVP PathErr message defined in this document to preserve | LSR to modify the RSVP PathErr message to preserve confidentiality | |||
confidentiality across domains. | across domains. | |||
This document also defines fragment identifier for the S2L sub-LSP | This document also defines a fragment identifier for the S2L sub-LSP | |||
descriptor when combining large number of S2L sub-LSPs in an RSVP | descriptor when combining a large number of S2L sub-LSPs in an RSVP | |||
message and the message needs to be semantically fragmented. The | message and the message needs to be semantically fragmented. The | |||
introduction of the fragment identifier, by itself, introduces no | introduction of the fragment identifier, by itself, introduces no | |||
additional information to signaling. For a general discussion on | additional information to signaling. For a general discussion on | |||
MPLS and GMPLS related security issues, see the MPLS/GMPLS security | security issues related to MPLS and GMPLS, see the MPLS/GMPLS | |||
framework [RFC5920]. | security framework [RFC5920]. | |||
9. References | 9. References | |||
9.1. Normative References | 9.1. Normative References | |||
[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, March 1997. | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | ||||
<http://www.rfc-editor.org/info/rfc2119>. | ||||
[RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. | [RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. | |||
Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 | Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 | |||
Functional Specification", RFC 2205, September 1997. | Functional Specification", RFC 2205, DOI 10.17487/RFC2205, | |||
September 1997, <http://www.rfc-editor.org/info/rfc2205>. | ||||
[RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., | [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., | |||
and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP | and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP | |||
Tunnels", RFC 3209, December 2001. | Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, | |||
<http://www.rfc-editor.org/info/rfc3209>. | ||||
[RFC4736] Vasseur, JP., Ikejiri, Y. and Zhang, R, "Reoptimization of | [RFC4736] Vasseur, JP., Ed., Ikejiri, Y., and R. Zhang, | |||
Multiprotocol Label Switching (MPLS) Traffic Engineering | "Reoptimization of Multiprotocol Label Switching (MPLS) | |||
(TE) Loosely Routed Label Switched Path (LSP)", RFC 4736, | Traffic Engineering (TE) Loosely Routed Label Switched | |||
November 2006. | Path (LSP)", RFC 4736, DOI 10.17487/RFC4736, | |||
November 2006, <http://www.rfc-editor.org/info/rfc4736>. | ||||
[RFC4875] Aggarwal, R., Papadimitriou, D., and S. Yasukawa, | [RFC4875] Aggarwal, R., Ed., Papadimitriou, D., Ed., and S. | |||
"Extensions to Resource Reservation Protocol Traffic | Yasukawa, Ed., "Extensions to Resource Reservation | |||
Engineering (RSVP-TE) for Point-to-Multipoint TE Label | Protocol - Traffic Engineering (RSVP-TE) for | |||
Switched Paths (LSPs)", RFC 4875, May 2007. | Point-to-Multipoint TE Label Switched Paths (LSPs)", | |||
RFC 4875, DOI 10.17487/RFC4875, May 2007, | ||||
<http://www.rfc-editor.org/info/rfc4875>. | ||||
[RFC5420] Farrel, A., Papadimitriou, D., Vasseur, JP., and Ayyangar, | [RFC5420] Farrel, A., Ed., Papadimitriou, D., Vasseur, JP., and A. | |||
A., "Encoding of Attributes for MPLS LSP Establishment | Ayyangarps, "Encoding of Attributes for MPLS LSP | |||
Using Resource Reservation Protocol Traffic Engineering | Establishment Using Resource Reservation Protocol Traffic | |||
(RSVP-TE)", RFC 5420, February 2009. | Engineering (RSVP-TE)", RFC 5420, DOI 10.17487/RFC5420, | |||
February 2009, <http://www.rfc-editor.org/info/rfc5420>. | ||||
9.2. Informative References | 9.2. Informative References | |||
[RFC3473] Berger, L., "Generalized Multi-Protocol Label Switching | [RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label | |||
(GMPLS) Signaling Resource ReserVation Protocol-Traffic | Switching (GMPLS) Signaling Resource ReserVation | |||
Engineering (RSVP-TE) Extensions", RFC 3473, January 2003. | Protocol-Traffic Engineering (RSVP-TE) Extensions", | |||
RFC 3473, DOI 10.17487/RFC3473, January 2003, | ||||
<http://www.rfc-editor.org/info/rfc3473>. | ||||
[RFC5440] Vasseur, JP., Ed., and JL. Le Roux, Ed., "Path Computation | [RFC5440] Vasseur, JP., Ed., and JL. Le Roux, Ed., "Path Computation | |||
Element (PCE) Communication Protocol (PCEP)", RFC 5440, | Element (PCE) Communication Protocol (PCEP)", RFC 5440, | |||
March 2009. | DOI 10.17487/RFC5440, March 2009, | |||
<http://www.rfc-editor.org/info/rfc5440>. | ||||
[RFC5920] Fang, L., "Security Framework for MPLS and GMPLS | [RFC5920] Fang, L., Ed., "Security Framework for MPLS and GMPLS | |||
Networks", RFC 5920, July 2010. | Networks", RFC 5920, DOI 10.17487/RFC5920, July 2010, | |||
<http://www.rfc-editor.org/info/rfc5920>. | ||||
[RFC6510] Berger, L. and G. Swallow, "Resource Reservation Protocol | [RFC6510] Berger, L. and G. Swallow, "Resource Reservation Protocol | |||
(RSVP) Message Formats for Label Switched Path (LSP) | (RSVP) Message Formats for Label Switched Path (LSP) | |||
Attributes Objects", RFC 6510, February 2012. | Attributes Objects", RFC 6510, DOI 10.17487/RFC6510, | |||
February 2012, <http://www.rfc-editor.org/info/rfc6510>. | ||||
Acknowledgments | Acknowledgments | |||
The authors would like to thank Loa Andersson, Sriganesh Kini, Curtis | The authors would like to thank Loa Andersson, Sriganesh Kini, Curtis | |||
Villamizar, Dimitri Papadimitriou, Nobo Akiya, Vishnu Pavan Beeram | Villamizar, Dimitri Papadimitriou, Nobo Akiya, Vishnu Pavan Beeram, | |||
and Joel M. Halpern for reviewing this document and providing many | and Joel M. Halpern for reviewing this document and providing many | |||
useful comments and suggestions. The authors would also like to | useful comments and suggestions. The authors would also like to | |||
thank Ling Zeng with Cisco Systems for implementing mechanisms | thank Ling Zeng with Cisco Systems for implementing the mechanisms | |||
defined in this document. A special thanks to Adrian Farrel for his | defined in this document. A special thanks to Adrian Farrel for his | |||
thorough review of this document. | thorough review of this document. | |||
Author's Addresses | Authors' Addresses | |||
Tarek Saad (editor) | Tarek Saad (editor) | |||
Cisco Systems | Cisco Systems, Inc. | |||
EMail: tsaad@cisco.com | Email: tsaad@cisco.com | |||
Rakesh Gandhi (editor) | Rakesh Gandhi (editor) | |||
Cisco Systems | Cisco Systems, Inc. | |||
EMail: rgandhi@cisco.com | Email: rgandhi@cisco.com | |||
Zafar Ali | Zafar Ali | |||
Cisco Systems | Cisco Systems, Inc. | |||
EMail: zali@cisco.com | Email: zali@cisco.com | |||
Robert H. Venator | Robert H. Venator | |||
Defense Information Systems Agency | Defense Information Systems Agency | |||
EMail: robert.h.venator.civ@mail.mil | Email: robert.h.venator.civ@mail.mil | |||
Yuji Kamite | Yuji Kamite | |||
NTT Communications Corporation | NTT Communications Corporation | |||
EMail: y.kamite@ntt.com | Email: y.kamite@ntt.com | |||
End of changes. 130 change blocks. | ||||
397 lines changed or deleted | 419 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/ |