draft-ietf-pce-association-diversity-15.txt | rfc8800.txt | |||
---|---|---|---|---|
PCE Working Group S. Litkowski | Internet Engineering Task Force (IETF) S. Litkowski | |||
Internet-Draft S. Sivabalan | Request for Comments: 8800 Cisco Systems, Inc. | |||
Intended status: Standards Track Cisco Systems, Inc. | Category: Standards Track S. Sivabalan | |||
Expires: December 23, 2020 C. Barth | ISSN: 2070-1721 Ciena Corporation | |||
C. Barth | ||||
Juniper Networks | Juniper Networks | |||
M. Negi | M. Negi | |||
RtBrick India | RtBrick India | |||
June 21, 2020 | July 2020 | |||
Path Computation Element Communication Protocol (PCEP) Extension for LSP | Path Computation Element Communication Protocol (PCEP) Extension for | |||
Diversity Constraint Signaling | Label Switched Path (LSP) Diversity Constraint Signaling | |||
draft-ietf-pce-association-diversity-15 | ||||
Abstract | Abstract | |||
This document introduces a simple mechanism to associate a group of | This document introduces a simple mechanism to associate a group of | |||
Label Switched Paths (LSPs) via an extension to the Path Computation | Label Switched Paths (LSPs) via an extension to the Path Computation | |||
Element (PCE) communication Protocol (PCEP) with the purpose of | Element Communication Protocol (PCEP) with the purpose of computing | |||
computing diverse (disjointed) paths for those LSPs. The proposed | diverse (disjointed) paths for those LSPs. The proposed extension | |||
extension allows a Path Computation Client (PCC) to advertise to a | allows a Path Computation Client (PCC) to advertise to a Path | |||
PCE that a particular LSP belongs to a particular disjoint-group, | Computation Element (PCE) that a particular LSP belongs to a | |||
thus the PCE knows that the LSPs in the same group need to be | particular Disjoint Association Group; thus, the PCE knows that the | |||
disjoint from each other. | LSPs in the same group need to be disjoint from each other. | |||
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 | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on December 23, 2020. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc8800. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
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 . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology | |||
3. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Motivation | |||
4. Applicability . . . . . . . . . . . . . . . . . . . . . . . . 4 | 4. Applicability | |||
5. Protocol Extension . . . . . . . . . . . . . . . . . . . . . 7 | 5. Protocol Extension | |||
5.1. Association Group . . . . . . . . . . . . . . . . . . . . 7 | 5.1. Association Group | |||
5.2. Disjoint TLVs . . . . . . . . . . . . . . . . . . . . . . 8 | 5.2. Disjoint TLVs | |||
5.3. Disjointness Objective Functions . . . . . . . . . . . . 10 | 5.3. Disjointness Objective Functions | |||
5.4. Relationship to SVEC . . . . . . . . . . . . . . . . . . 12 | 5.4. Relationship to SVEC | |||
5.4.1. SVEC and OF . . . . . . . . . . . . . . . . . . . . . 13 | 5.4.1. SVEC and OF | |||
5.5. P Flag Considerations . . . . . . . . . . . . . . . . . . 13 | 5.5. P Flag Considerations | |||
5.6. Disjointness Computation Issues . . . . . . . . . . . . . 16 | 5.6. Disjointness Computation Issues | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 6. Security Considerations | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 | 7. IANA Considerations | |||
7.1. Association Type . . . . . . . . . . . . . . . . . . . . 18 | 7.1. Association Type | |||
7.2. PCEP TLVs . . . . . . . . . . . . . . . . . . . . . . . . 18 | 7.2. PCEP TLVs | |||
7.3. Objective Functions . . . . . . . . . . . . . . . . . . . 19 | 7.3. Objective Functions | |||
7.4. NO-PATH-VECTOR Bit Flags . . . . . . . . . . . . . . . . 19 | 7.4. NO-PATH-VECTOR Bit Flags | |||
7.5. PCEP-ERROR Codes . . . . . . . . . . . . . . . . . . . . 20 | 7.5. PCEP-ERROR Codes | |||
8. Manageability Considerations . . . . . . . . . . . . . . . . 20 | 8. Manageability Considerations | |||
8.1. Control of Function and Policy . . . . . . . . . . . . . 20 | 8.1. Control of Function and Policy | |||
8.2. Information and Data Models . . . . . . . . . . . . . . . 21 | 8.2. Information and Data Models | |||
8.3. Liveness Detection and Monitoring . . . . . . . . . . . . 21 | 8.3. Liveness Detection and Monitoring | |||
8.4. Verification of Correct Operations . . . . . . . . . . . 21 | 8.4. Verification of Correct Operations | |||
8.5. Requirements on Other Protocols . . . . . . . . . . . . . 21 | 8.5. Requirements on Other Protocols | |||
8.6. Impact on Network Operations . . . . . . . . . . . . . . 21 | 8.6. Impact on Network Operations | |||
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 21 | 9. References | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 | 9.1. Normative References | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 22 | 9.2. Informative References | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 23 | Acknowledgments | |||
Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 24 | Contributors | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
[RFC5440] describes the Path Computation Element communication | [RFC5440] describes the Path Computation Element Communication | |||
Protocol (PCEP) which enables the communication between a Path | Protocol (PCEP), which enables the communication between a Path | |||
Computation Client (PCC) and a Path Control Element (PCE), or between | Computation Client (PCC) and a Path Control Element (PCE) or between | |||
two PCEs based on the PCE architecture [RFC4655]. | two PCEs based on the PCE architecture [RFC4655]. | |||
PCEP Extensions for Stateful PCE Model [RFC8231] describes a set of | The PCEP Extensions for Stateful PCE Model [RFC8231] describes a set | |||
extensions to PCEP to enable active control of MPLS-TE and GMPLS | of extensions to PCEP to enable active control of MPLS-TE and GMPLS | |||
tunnels. [RFC8281] describes the setup and teardown of PCE-initiated | tunnels. [RFC8281] describes the setup and teardown of PCE-initiated | |||
LSPs under the active stateful PCE model, without the need for local | LSPs under the active stateful PCE model, without the need for local | |||
configuration on the PCC, thus allowing for a dynamic network. | configuration on the PCC, thus allowing for a dynamic network. | |||
[I-D.ietf-pce-association-group] introduces a generic mechanism to | [RFC8697] introduces a generic mechanism to create a grouping of LSPs | |||
create a grouping of LSPs in the context of a PCE which can then be | in the context of a PCE that can then be used to define associations | |||
used to define associations between a set of LSPs and a set of | between a set of LSPs and a set of attributes (such as configuration | |||
attributes (such as configuration parameters or behaviors) and is | parameters or behaviors) and is equally applicable to the active and | |||
equally applicable to the active and passive modes of a stateful PCE | passive modes of a stateful PCE [RFC8231] or a stateless PCE | |||
[RFC8231] or a stateless PCE [RFC5440]. | [RFC4655]. | |||
This document specifies a PCEP extension to signal that a set of LSPs | This document specifies a PCEP extension to signal that a set of LSPs | |||
in a particular group should use diverse (disjointed) paths, | in a particular group should use diverse (disjointed) paths, | |||
including the requested type of diversity. Section 3 and Section 4 | including the requested type of diversity. Sections 3 and 4 describe | |||
describe the property and use of a disjoint-group. A PCC can use | the property and use of a Disjoint Association Group. A PCC can use | |||
this extension to signal to a PCE that a particular LSP belongs to a | this extension to signal to a PCE that a particular LSP belongs to a | |||
particular disjoint-group. When a PCE receives LSP states belonging | particular Disjoint Association Group. When a PCE receives LSP | |||
to the same disjoint-group from some PCCs, the PCE should ensure that | states belonging to the same Disjoint Association Group from some | |||
the LSPs within the group are disjoint from each other. | PCCs, the PCE should ensure that the LSPs within the group are | |||
disjoint from each other. | ||||
1.1. Requirements Language | 1.1. 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", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
2. Terminology | 2. Terminology | |||
The following terminology is used in this document. | The following terminology is used in this document. | |||
DAT: Disjoint Association Type. | DAT: Disjoint Association Type | |||
DAG: Disjoint Association Group. | DAG: Disjoint Association Group | |||
MPLS: Multiprotocol Label Switching. | MPLS: Multiprotocol Label Switching | |||
OF: Objective Function. | OF: Objective Function | |||
PCC: Path Computation Client. Any client application requesting a | PCC: Path Computation Client. Any client application requesting | |||
path computation to be performed by a Path Computation Element. | a path computation to be performed by a Path Computation | |||
Element. | ||||
PCE: Path Computation Element. An entity (component, application, | PCE: Path Computation Element. An entity (component, | |||
or network node) that is capable of computing a network path or | application, or network node) that is capable of computing | |||
route based on a network graph and applying computational | a network path or route based on a network graph and | |||
constraints. | applying computational constraints. | |||
PCEP: Path Computation Element communication Protocol. | PCEP: Path Computation Element Communication Protocol | |||
SRLG: Shared Risk Link Group. | PLSP-ID: PCEP-specific identifier for the LSP | |||
SRLG: Shared Risk Link Group | ||||
3. Motivation | 3. Motivation | |||
Path diversity is a very common use case in today's IP/MPLS networks | Path diversity is a very common use case in today's IP/MPLS networks, | |||
especially for layer 2 transport over MPLS. A customer may request | especially for layer 2 transport over MPLS. A customer may request | |||
that the operator provide two end-to-end disjoint paths across the | that the operator provide two end-to-end disjoint paths across the | |||
operator's IP/MPLS core. The customer may use these paths as | operator's IP/MPLS core. The customer may use these paths as | |||
primary/backup or active/active configuration. | primary/backup or active/active configuration. | |||
Different levels of disjointness may be offered: | Different levels of disjointness may be offered: | |||
o Link disjointness: the paths of the associated LSPs should transit | * Link disjointness: the paths of the associated LSPs should transit | |||
different links (but may use common nodes or different links that | different links (but may use common nodes or different links that | |||
may have some shared fate). | may have some shared fate). | |||
o Node disjointness: the paths of the associated LSPs should transit | * Node disjointness: the paths of the associated LSPs should transit | |||
different nodes (but may use different links that may have some | different nodes (but may use different links that may have some | |||
shared fate). | shared fate). | |||
o SRLG disjointness: the paths of the associated LSPs should transit | * SRLG disjointness: the paths of the associated LSPs should transit | |||
different links that do not share fate (but may use common transit | different links that do not share fate (but may use common transit | |||
nodes). | nodes). | |||
o Node+SRLG disjointness: the paths of the associated LSPs should | * Node+SRLG disjointness: the paths of the associated LSPs should | |||
transit different links that do not have any common shared fate | transit different links that do not have any common shared fate | |||
and should transit different nodes. | and should transit different nodes. | |||
The associated LSPs may originate from the same or from different | The associated LSPs may originate from the same or different head | |||
head-end(s) and may terminate at the same or different tail-end(s). | end(s) and may terminate at the same or different tail end(s). | |||
4. Applicability | 4. Applicability | |||
_________________________________________ | _________________________________________ | |||
/ \ | / \ | |||
/ +------+ \ | / +------+ \ | |||
| | PCE | | | | | PCE | | | |||
| +------+ | | | +------+ | | |||
| | | | | | |||
| ***********************> | | | ***********************> | | |||
| +------+ 10 +------+ | | | +------+ 10 +------+ | | |||
CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 | CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 | |||
| +------+ | | +------+ | | | +------+ | | +------+ | | |||
skipping to change at page 5, line 23 ¶ | skipping to change at line 206 ¶ | |||
| +------+ | | +------+ | | | +------+ | | +------+ | | |||
| | | | | | | | | | |||
| | | | | | | | | | |||
| +------+ | | +------+ | | | +------+ | | +------+ | | |||
CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 | CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 | |||
| +------+ ***********************> +------+ | | | +------+ ***********************> +------+ | | |||
| | | | | | |||
\ / | \ / | |||
\_________________________________________/ | \_________________________________________/ | |||
Figure 1 - Disjoint paths with different head-ends and tail-ends | Figure 1: Disjoint Paths with Different Head Ends and Tail Ends | |||
In the figure above, let us consider that the customer wants to have | In the figure above, let us consider that the customer wants to have | |||
two disjoint paths, one between CE1 and CE2 and one between CE3 and | two disjoint paths, one between CE1 and CE2 and one between CE3 and | |||
CE4. From an IP/MPLS network point view, in this example, the CEs | CE4. From an IP/MPLS network point view, in this example, the CEs | |||
are connected to different PEs to maximize their disjointness. When | are connected to different PEs to maximize their disjointness. When | |||
LSPs originate from different head-ends, distributed computation of | LSPs originate from different head ends, distributed computation of | |||
diverse paths can be difficult, whereas, computation via a | diverse paths can be difficult, whereas computation via a centralized | |||
centralized PCE ensures path disjointness, correctness and | PCE ensures path disjointness, correctness, and simplicity. | |||
simplicity. | ||||
Section 5.4 describes the relationship between the Disjoint | Section 5.4 describes the relationship between the Disjoint | |||
Association Group (DAG) and Synchronization VECtor (SVEC) object. | Association Group (DAG) and Synchronization VECtor (SVEC) object. | |||
The PCEP extension for stateful PCE [RFC8231] defined new PCEP | The PCEP extension for stateful PCE [RFC8231] defined new PCEP | |||
messages - Path Computation Report (PCRpt), Path Computation Update | messages -- Path Computation Report (PCRpt), Path Computation Update | |||
(PCUpd) and Path Computation Initiate (PCInitiate) [RFC8281]. These | (PCUpd), and Path Computation Initiate (PCInitiate) [RFC8281]. These | |||
messages use PLSP-ID in the LSP object for identification. Moreover | messages use a PLSP-ID in the LSP object for identification. | |||
to allow diversity between LSPs originating from different PCCs, the | Moreover, to allow diversity between LSPs originating from different | |||
generic mechanism to create a grouping of LSPs is described in | PCCs, the generic mechanism to create a grouping of LSPs that is | |||
[I-D.ietf-pce-association-group] (that is equally applicable to the | equally applicable to the active and passive modes of a stateful PCE | |||
active and passive modes of a stateful PCE). | is described in [RFC8697]. | |||
Using the extension to PCEP defined in this document, the PCC uses | Using the extension to PCEP defined in this document, the PCC uses | |||
the [I-D.ietf-pce-association-group] extension to indicate that a | the extension defined in [RFC8697] to indicate that a group of LSPs | |||
group of LSPs are required to be disjoint; such indication should | are required to be disjoint; such indication should include | |||
include disjointness parameters such as the type of disjointness, the | disjointness parameters like the type of disjointness, the Disjoint | |||
disjoint group identifiers, and any customization parameters | Association Group identifiers, and any customization parameters | |||
according to the configured local policy. | according to the configured local policy. | |||
The management of the disjoint group IDs will be a key point for the | The management of the Disjoint Association Group IDs will be a key | |||
operator as the Association ID field is limited to 65535. The local | point for the operator as the Association ID field is limited to | |||
configuration of IPv4/IPv6 association source, or Global Association | 65535. The local configuration of the IPv4/IPv6 Association Source, | |||
Source/Extended Association ID allows to overcome this limitation as | or Global Association Source/Extended Association ID, can overcome | |||
described in [I-D.ietf-pce-association-group]. When a PCC or PCE | this limitation, as described in [RFC8697]. When a PCC or PCE | |||
initiates all the LSPs in a particular disjoint-group, it can set the | initiates all the LSPs in a particular Disjoint Association Group, it | |||
IPv4/IPv6 association source as one of its own IP address. When | can set the IPv4/IPv6 Association Source as one of its own IP | |||
disjoint LSPs are initiated from different head-ends, the association | address. When disjoint LSPs are initiated from different head ends, | |||
source could be the PCE address or any other unique value to identify | the Association Source could be the PCE address or any other unique | |||
the DAG. | value to identify the DAG. | |||
Initiate Disjoint LSPs | Initiate Disjoint LSPs | |||
| | | | |||
| PCReq/PCRpt | | PCReq/PCRpt | |||
V {DAG Y} | V {DAG Y} | |||
+-----+ ----------------> +-----+ | +-----+ ----------------> +-----+ | |||
_ _ _ _ _ _| PCE | | | PCE | | _ _ _ _ _ _| PCE | | | PCE | | |||
| +-----+ | ----------> +-----+ | | +-----+ | ----------> +-----+ | |||
| PCInitiate | | PCReq/PCRpt | | PCInitiate | | PCReq/PCRpt | |||
|{DAG X} | | {DAG Y} | |{DAG X} | | {DAG Y} | |||
| | | | | | | | |||
| .-----. | | .-----. | | .-----. | | .-----. | |||
| ( ) | +-----+ ( ) | | ( ) | +-----+ ( ) | |||
| .--( )--. | |PCC 2|--.--( )--. | | .--( )--. | |PCC 2|--.--( )--. | |||
V ( ) | +-----+ ( ) | V ( ) | +-----+ ( ) | |||
+---+ ( ) | ( ) | +---+ ( ) | ( ) | |||
|PCC|----( (G)MPLS network ) +-----+ ( (G)MPLS network ) | |PCC|----( (G)MPLS network ) +-----+ ( (G)MPLS network ) | |||
+---+ ( ) |PCC 1|-----( ) | +---+ ( ) |PCC 1|-----( ) | |||
{DAG X} ( ) +-----+ ( ) | {DAG X} ( ) +-----+ ( ) | |||
'--( )--' ( )--' | '--( )--' ( )--' | |||
( ) ( ) | ( ) ( ) | |||
'-----' '-----' | '-----' '-----' | |||
Case 1: Disjointness initiated by Case 2: Disjointness initiated by | Case 1: Disjointness initiated by Case 2: Disjointness initiated by | |||
PCE and enforced by PCC PCC and enforced by PCE | PCE and enforced by PCC PCC and enforced by PCE | |||
Figure 2 - Sample use-cases for carrying disjoint-group over PCEP | Figure 2: Sample Use Cases for Carrying Disjoint Association | |||
session | Group over PCEP Session | |||
Using the disjoint-group within a PCEP messages is used for: | The Disjoint Association Group within a PCEP messages is used for: | |||
o Configuration: Used to communicate the configured disjoint | * Configuration: Used to communicate the configured disjoint | |||
requirement to a PCEP peer. | requirement to a PCEP peer. | |||
o Status: Used to communicate the status of the computed | * Status: Used to communicate the status of the computed | |||
disjointness. | disjointness. | |||
5. Protocol Extension | 5. Protocol Extension | |||
5.1. Association Group | 5.1. Association Group | |||
As per [I-D.ietf-pce-association-group], LSPs are associated with | As per [RFC8697], LSPs are associated with other LSPs with which they | |||
other LSPs with which they interact by adding them to a common | interact by adding them to a common association group. As described | |||
association group. As described in [I-D.ietf-pce-association-group] | in [RFC8697], the association group is uniquely identified by the | |||
the association group is uniquely identified by the combination of | combination of the following fields in the ASSOCIATION object: | |||
these fields in the ASSOCIATION object: Association Type, Association | Association Type, Association ID, Association Source, and (if | |||
ID, Association Source, and (if present) Global Association Source or | present) Global Association Source or Extended Association ID. | |||
Extended Association ID. | ||||
This document defines a new Association type, based on the generic | ||||
Association object: | ||||
o Association type = TBD1 Disjoint Association Type (DAT). | This document defines a new Association type, called "Disjoint | |||
Association" (2), based on the generic ASSOCIATION object. This new | ||||
Association type is also called "DAT", for "Disjoint Association | ||||
Type". | ||||
[I-D.ietf-pce-association-group] specifies the mechanism for the | [RFC8697] specifies the mechanism for the capability advertisement of | |||
capability advertisement of the association types supported by a PCEP | the Association types supported by a PCEP speaker by defining an | |||
speaker by defining a ASSOC-Type-List TLV to be carried within an | ASSOC-Type-List TLV to be carried within an OPEN object. This | |||
OPEN object. This capability exchange for the DAT (TBD1) MUST be | capability exchange for the DAT (2) MUST be done before using the | |||
done before using the disjointness association. Thus the PCEP | disjoint association. Thus, the PCEP speaker MUST include the DAT in | |||
speaker MUST include the DAT in the ASSOC-Type-List TLV and MUST | the ASSOC-Type-List TLV and MUST receive the same from the PCEP peer | |||
receive the same from the PCEP peer before using the Disjoint | before using the Disjoint Association Group (DAG) in PCEP messages. | |||
Association Group (DAG) in PCEP messages. | ||||
This association type is considered to be both dynamic and operator- | This Association type is considered to be both dynamic and operator- | |||
configured in nature. As per [I-D.ietf-pce-association-group], the | configured in nature. As per [RFC8697], the association group could | |||
association group could be created by the operator manually on the | be manually created by the operator on the PCEP peers, and the LSPs | |||
PCEP peers and the LSPs belonging to this associations is conveyed | belonging to this association are conveyed via PCEP messages to the | |||
via PCEP messages to the PCEP peer; or the association group could be | PCEP peer; alternately, the association group could be created | |||
created dynamically by the PCEP speaker and both the association | dynamically by the PCEP speaker, and both the association group | |||
group information and the LSPs belonging to the association group is | information and the LSPs belonging to the association group are | |||
conveyed to the PCEP peer. The Operator-configured Association Range | conveyed to the PCEP peer. The Operator-configured Association Range | |||
MUST be set for this association-type to mark a range of association | MUST be set for this association-type to mark a range of Association | |||
identifiers that are used for operator-configured associations to | Identifiers that are used for operator-configured associations to | |||
avoid any association identifier clash within the scope of the | avoid any Association Identifier clash within the scope of the | |||
association source. (Refer to [I-D.ietf-pce-association-group].) | Association Source. (Refer to [RFC8697].) | |||
A disjoint group can have two or more LSPs, but a PCE may be limited | A Disjoint Association Group can have two or more LSPs, but a PCE may | |||
in the number of LSPs it can take into account when computing | be limited in the number of LSPs it can take into account when | |||
disjointness. If a PCE receives more LSPs in the group than it can | computing disjointness. If a PCE receives more LSPs in the group | |||
handle in its computation algorithm, it SHOULD apply disjointness | than it can handle in its computation algorithm, it SHOULD apply | |||
computation to only a subset of LSPs in the group. The subset of | disjointness computation to only a subset of LSPs in the group. The | |||
disjoint LSPs will be decided by PCE as a local policy. Local | subset of disjoint LSPs will be decided by PCE as a local policy. | |||
polices MAY define the computational behavior for the other LSPs in | Local polices MAY define the computational behavior for the other | |||
the group. For example, the PCE may provide no path, a shortest | LSPs in the group. For example, the PCE may provide no path, a | |||
path, or a constrained path based on relaxing disjointness, etc. The | shortest path, or a constrained path based on relaxing disjointness, | |||
disjoint status of the computed path is informed to the PCC via | etc. The disjoint status of the computed path is informed to the PCC | |||
DISJOINTNESS-STATUS-TLV (see Section 5.2). | via the DISJOINTNESS-STATUS TLV (see Section 5.2). | |||
There are differet types of disjointness identified by the flags (T, | There are different types of disjointness identified by the flags (T, | |||
S, N, L) in the DISJOINTNESS-CONFIGURATION-TLV (see Section 5.2). | S, N, and L) in the DISJOINTNESS-CONFIGURATION TLV (see Section 5.2). | |||
All LSPs in a particular disjoint group MUST use the same combination | All LSPs in a particular Disjoint Association Group MUST use the same | |||
of T, S, N, L flags in the DISJOINTNESS-CONFIGURATION-TLV. If a PCEP | combination of T, S, N, and L flags in the DISJOINTNESS-CONFIGURATION | |||
peer receives a PCEP messages for LSPs belonging to the same disjoint | TLV. If a PCEP peer receives a PCEP message for LSPs belonging to | |||
group but having an inconsistent combination of T, S, N, L flags, the | the same Disjoint Association Group but having an inconsistent | |||
PCEP peer MUST NOT add the LSPs to the disjoint group and MUST reply | combination of T, S, N, and L flags, the PCEP peer MUST NOT add the | |||
with a PCErr with Error-type 26 (Association Error) and Error-Value 6 | LSPs to the Disjoint Association Group and MUST reply with a PCErr | |||
(Association information mismatch). | with Error-Type 26 (Association Error) and Error-value 6 (Association | |||
information mismatch). | ||||
A particular LSP MAY be associated to the multiple disjoint groups, | A particular LSP MAY be associated to multiple Disjoint Association | |||
but in that case, the PCE SHOULD try to consider all the disjoint | Groups, but in that case, the PCE SHOULD try to consider all the | |||
groups during path computation if possible. Otherwise a local policy | Disjoint Association Groups during path computation, if possible. | |||
MAY define the computational behavior. If a PCE does not support | Otherwise, a local policy MAY define the computational behavior. If | |||
such a path computation it MUST NOT add the LSP into the association | a PCE does not support such a path computation, it MUST NOT add the | |||
group and return a PCErr with Error-type 26 (Association Error) and | LSP into the association group and MUST return a PCErr with Error- | |||
Error-Value 7 (Cannot join the association group). | Type 26 (Association Error) and Error-value 7 (Cannot join the | |||
association group). | ||||
5.2. Disjoint TLVs | 5.2. Disjoint TLVs | |||
The disjoint group (ASSOCIATION object with Association type = TBD1 | The Disjoint Association Group (ASSOCIATION object with Association | |||
for DAT) MUST carry the following TLV: | type = 2 for DAT) MUST carry the following TLV: | |||
o DISJOINTNESS-CONFIGURATION-TLV: Used to communicate some | * DISJOINTNESS-CONFIGURATION TLV: Used to communicate some | |||
disjointness configuration parameters. This is applicable for all | disjointness configuration parameters. This is applicable for all | |||
PCEP message that includes DAG. | PCEP messages that include DAG. | |||
In addition, the disjoint group (ASSOCIATION object with Association | In addition, the Disjoint Association Group (ASSOCIATION object with | |||
type = TBD1 for DAT) MAY carry the following TLVs: | Association type = 2 for DAT) MAY carry the following TLVs: | |||
o DISJOINTNESS-STATUS-TLV: Used to communicate the status of the | * DISJOINTNESS-STATUS TLV: Used to communicate the status of the | |||
computed disjointness. This is applicable for messages from a PCE | computed disjointness. This is applicable for messages from a PCE | |||
to a PCC only (i.e. PCUpd, PCInitiate or PCRep message). | to a PCC only (i.e., PCUpd, PCInitiate, or PCRep messages). | |||
o VENDOR-INFORMATION-TLV: Used to communicate arbitrary vendor- | * VENDOR-INFORMATION-TLV: Used to communicate arbitrary vendor- | |||
specific behavioral information, described in [RFC7470]. | specific behavioral information, described in [RFC7470]. | |||
o OF-List TLV: Used to communicate the disjointness objective | * OF-List TLV: Used to communicate the disjointness objective | |||
function. See Section 5.3. | function. See Section 5.3. | |||
The DISJOINTNESS-CONFIGURATION-TLV is shown in the following figure: | The DISJOINTNESS-CONFIGURATION TLV is shown in the following figure: | |||
0 1 2 3 | 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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type = TBD2 | Length | | | Type = 46 | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags |T|P|S|N|L| | | Flags |T|P|S|N|L| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Type: TBD2. | Figure 3: DISJOINTNESS-CONFIGURATION TLV | |||
Length: Fixed value of 4 bytes. | Type: 46 | |||
Flags: | Length: Fixed value of 4 bytes. | |||
* L (Link diverse) bit: when set, this indicates that the | Flags: | |||
computed paths within the disjoint group MUST NOT have any link | ||||
in common. | ||||
* N (Node diverse) bit: when set, this indicates that the | L (Link Diverse) bit: When set, this indicates that the computed | |||
computed paths within the disjoint group MUST NOT have any node | paths within the Disjoint Association Group MUST NOT have any | |||
in common. | link in common. | |||
* S (SRLG diverse) bit: when set, this indicates that the | N (Node Diverse) bit: When set, this indicates that the computed | |||
computed paths within the disjoint group MUST NOT share any | paths within the Disjoint Association Group MUST NOT have any | |||
node in common. | ||||
S (SRLG Diverse) bit: When set, this indicates that the computed | ||||
paths within the Disjoint Association Group MUST NOT share any | ||||
SRLG (Shared Risk Link Group). | SRLG (Shared Risk Link Group). | |||
* P (Shortest path) bit: when set, this indicates that the | P (Shortest Path) bit: When set, this indicates that the computed | |||
computed path of the LSP SHOULD satisfy all the constraints and | path of the LSP SHOULD satisfy all the constraints and | |||
objective functions first without considering the diversity | objective functions first without considering the diversity | |||
constraint, this means that all of the LSPs with P flag set in | constraint. This means that all of the LSPs with P flag set in | |||
the association group are computed first as if the disjointness | the association group are computed first, as if the | |||
constraint has not been configured, and then with those LSPs | disjointness constraint has not been configured; then, with | |||
fixed, the other LSPs with P flag unset in the association | those LSPs fixed, the other LSPs with P flag unset in the | |||
group are computed by taking into account the disjointness | association group are computed by taking into account the | |||
constraint. The role of P flag is further described with | disjointness constraint. The role of P flag is further | |||
examples in Section 5.5. | described with examples in Section 5.5. | |||
* T (Strict disjointness) bit: when set, if disjoint paths cannot | T (Strict Disjointness) bit: When set, if disjoint paths cannot | |||
be found, PCE MUST return no path for LSPs that could not be be | be found, the PCE MUST return no path for LSPs that could not | |||
disjoint. When unset, the PCE is allowed to relax disjointness | be disjoint. When unset, the PCE is allowed to relax | |||
by Section 5.5 either applying a requested objective function | disjointness by either applying a requested objective function | |||
(cf. Section 5.3 below) or using the local policy if no | (cf. Section 5.3) or using the local policy if no objective | |||
objective function is requested (e.g. using a lower disjoint | function is requested (e.g., using a lower disjoint type (link | |||
type (link instead of node) or fully relaxing disjointness | instead of node) or fully relaxing disjointness constraint). | |||
constraint). Further see Section 5.6 for details. | See Section 5.6 for further details. | |||
* Unassigned bits are considered reserved. They MUST be set to 0 | Unassigned bits: Unassigned bits are considered reserved. They | |||
on transmission and MUST be ignored on receipt. | MUST be set to 0 on transmission and MUST be ignored on | |||
receipt. | ||||
If a PCEP speaker receives a disjoint-group (ASSOCIATION object with | If a PCEP speaker receives a Disjoint Association Group (ASSOCIATION | |||
Association type = TBD1 for DAT) without DISJOINTNESS-CONFIGURATION- | object with Association type = 2 for DAT) without the DISJOINTNESS- | |||
TLV, it SHOULD reply with a PCErr Error-type=6 (Mandatory Object | CONFIGURATION TLV, it SHOULD reply with a PCErr Error-Type 6 | |||
missing) and Error-value=TBD10 (DISJOINTNESS-CONFIGURATION-TLV | (Mandatory Object missing) and Error-value 15 (DISJOINTNESS- | |||
missing). | CONFIGURATION TLV missing). | |||
The DISJOINTNESS-STATUS-TLV uses the same format as the DISJOINTNESS- | The DISJOINTNESS-STATUS TLV uses the same format as the DISJOINTNESS- | |||
CONFIGURATION-TLV with a different type TBD3 (in the TLV). The L, N, | CONFIGURATION TLV with a different type 47 (in the TLV). The L, N, | |||
and S flags are set if the respective disjointness criterion was | and S flags are set if the respective disjointness criterion was | |||
requested and the computed paths meet it. The P flag indicates that | requested and the computed paths meet it. The P flag indicates that | |||
the computed path is the shortest path (computed first without taking | the computed path is the shortest path (computed first without taking | |||
disjointness constraints into consideration, but considering other | disjointness constraints into consideration but considering other | |||
constraints). | constraints). | |||
The T flag has no meaning in the DISJOINTNESS-STATUS-TLV and MUST NOT | The T flag has no meaning in the DISJOINTNESS-STATUS TLV and MUST NOT | |||
be set while sending and MUST be ignored on receipt. | be set while sending and MUST be ignored on receipt. | |||
Any document defining a new flag for the DISJOINTNESS-CONFIGURATION- | Any document defining a new flag for the DISJOINTNESS-CONFIGURATION | |||
TLV automatically defines a new flag with the same name and in the | TLV automatically defines a new flag with the same name and in the | |||
same location in DISJOINTNESS-STATUS-TLV; the semantics of the flag | same location in DISJOINTNESS-STATUS TLV; the semantics of the flag | |||
in DISJOINTNESS-STATUS-TLV MUST be specified in the document that | in the DISJOINTNESS-STATUS TLV MUST be specified in the document that | |||
specifies the flag in DISJOINTNESS-CONFIGURATION-TLV. | specifies the flag in the DISJOINTNESS-CONFIGURATION TLV. | |||
5.3. Disjointness Objective Functions | 5.3. Disjointness Objective Functions | |||
An objective function (OF) MAY be applied to the disjointness | An objective function (OF) MAY be applied to the disjointness | |||
computation to drive the PCE computation behavior. In this case, the | computation to drive the PCE computation behavior. In this case, the | |||
OF-List TLV (defined in ([RFC5541]) is used as an optional TLV in the | OF-List TLV (defined in [RFC5541]) is used as an optional TLV in the | |||
Association Group Object. Whereas the PCEP OF-List TLV allows | ASSOCIATION object. Whereas the PCEP OF-List TLV allows multiple OF- | |||
multiple OF-codes inside the TLV, a sender SHOULD include a single | codes inside the TLV, a sender SHOULD include a single OF-code in the | |||
OF-code in the OF-List TLV when included in the Association Group, | OF-List TLV when included in the Association Group, and the receiver | |||
and the receiver MUST consider the first OF-code only and ignore | MUST consider the first OF-code only and ignore others if included. | |||
others if included. | ||||
To minimize the common shared resources (Node, Link or SRLG) between | To minimize the common shared resources (Node, Link, or SRLG) between | |||
a set of paths during path computation three new OF-codes are | a set of paths during path computation, three new OF-codes are | |||
proposed: | defined: | |||
MSL | MSL | |||
* Name: Minimize the number of shared (common) Links. | Name: Minimize the number of Shared (common) Links. | |||
Objective Function Code: 15 | ||||
* Objective Function Code: TBD4 | Description: Find a set of paths such that it passes through the | |||
* Description: Find a set of paths such that it passes through the | least number of shared (common) links. | |||
least number of shared (common) links. | - A network comprises a set of N links {Li, (i=1...N)}. | |||
- A path P passes through K links {Lpi,(i=1...K)}. | ||||
* A network comprises a set of N links {Li, (i=1...N)}. | - A set of paths {P1...Pm} have L links that are common to | |||
more than one path {Lci,(i=1...L)}. | ||||
* A path P passes through K links {Lpi,(i=1...K)}. | - Find a set of paths such that the value of L is minimized. | |||
* A set of paths {P1...Pm} have L links that are common to more | ||||
than one path {Lci,(i=1...L)}. | ||||
* Find a set of paths such that the value of L is minimized. | ||||
MSS | MSS | |||
* Name: Minimize the number of shared (common) SRLGs. | Name: Minimize the number of Shared (common) SRLGs. | |||
Objective Function Code: 16 | ||||
* Objective Function Code: TBD5 | Description: Find a set of paths such that it passes through the | |||
least number of shared (common) SRLGs. | ||||
* Description: Find a set of paths such that it passes through the | - A network comprises a set of N links {Li, (i=1...N)}. | |||
least number of shared (common) SRLGs. | - A path P passes through K links {Lpi,(i=1...K)} belonging to | |||
unique M SRLGs {Spi,(i=1..M)}. | ||||
* A network comprises a set of N links {Li, (i=1...N)}. | - A set of paths {P1...Pm} have L SRLGs that are common to | |||
more than one path {Sci,(i=1...L)}. | ||||
* A path P passes through K links {Lpi,(i=1...K)} belonging to | - Find a set of paths such that the value of L is minimized. | |||
unique M SRLGs {Spi,(i=1..M)}. | ||||
* A set of paths {P1...Pm} have L SRLGs that are common to more | ||||
than one path {Sci,(i=1...L)}. | ||||
* Find a set of paths such that the value of L is minimized. | ||||
MSN | MSN | |||
* Name: Minimize the number of shared (common) Nodes. | Name: Minimize the number of Shared (common) Nodes. | |||
Objective Function Code: 17 | ||||
* Objective Function Code: TBD6 | Description: Find a set of paths such that they pass through the | |||
least number of shared (common) nodes. | ||||
* Description: Find a set of paths such that they pass through the | - A network comprises a set of N nodes {Ni, (i=1...N)}. | |||
least number of shared (common) nodes. | - A path P passes through K nodes {Npi,(i=1...K)}. | |||
- A set of paths {P1...Pm} have L nodes that are common to | ||||
* A network comprises a set of N nodes {Ni, (i=1...N)}. | more than one path {Nci,(i=1...L)}. | |||
- Find a set of paths such that the value of L is minimized. | ||||
* A path P passes through K nodes {Npi,(i=1...K)}. | ||||
* A set of paths {P1...Pm} have L nodes that are common to more | ||||
than one path {Nci,(i=1...L)}. | ||||
* Find a set of paths such that the value of L is minimized. | ||||
If the OF-list TLV is included in the Association Object, the first | If the OF-List TLV is included in the ASSOCIATION object, the first | |||
OF-code inside the OF Object MUST be one of the disjoint OFs defined | OF-code inside the OF object MUST be one of the disjoint OFs defined | |||
in this document. If this condition is not met, the PCEP speaker | in this document. If this condition is not met, the PCEP speaker | |||
MUST respond with a PCErr message with Error-Type=10 (Reception of an | MUST respond with a PCErr message with Error-Type 10 (Reception of an | |||
invalid object) and Error-Value=TBD9 (Incompatible OF code). | invalid object) and Error-value 32 (Incompatible OF code). | |||
5.4. Relationship to SVEC | 5.4. Relationship to SVEC | |||
[RFC5440] defines a mechanism for the synchronization of a set of | [RFC5440] defines a mechanism for the synchronization of a set of | |||
path computation requests by using the SVEC object, that specifies | path computation requests by using the SVEC object, which specifies | |||
the list of synchronized requests that can either be dependent or | the list of synchronized requests that can be either dependent or | |||
independent. The SVEC object identifies the relationship between the | independent. The SVEC object identifies the relationship between the | |||
set of path computation requests, identified by 'Request-ID-number' | set of path computation requests, identified by 'Request-ID-number' | |||
in RP (Request Parameters) object. [RFC6007] further clarified the | in the RP (Request Parameters) object. [RFC6007] further clarifies | |||
use of the SVEC list for synchronized path computations when | the use of the SVEC list for synchronized path computations when | |||
computing dependent requests as well as described a number of usage | computing dependent requests and describes a number of usage | |||
scenarios for SVEC lists within single-domain and multi-domain | scenarios for SVEC lists within single-domain and multi-domain | |||
environments. | environments. | |||
The SVEC object includes a Flags field that indicates the potential | The SVEC object includes a Flags field that indicates the potential | |||
dependency between the set of path computation requests in a similar | dependency between the set of path computation requests in a similar | |||
way as the Flags field in the TLVs defined in this document. The | way as the Flags field in the TLVs defined in this document. The | |||
path computation request in the PCReq message MAY use both the SVEC | path computation request in the Path Computation Request (PCReq) | |||
and ASSOCIATION objects to identify the related path computation | message MAY use both the SVEC and ASSOCIATION objects to identify the | |||
request as well as the DAG. The PCE MUST try to find a path that | related path computation request, as well as the DAG. The PCE MUST | |||
meets both the constraints. It is possible that the diversity | try to find a path that meets both the constraints. It is possible | |||
requirement in the association group is different from the one in the | that the diversity requirement in the association group is different | |||
SVEC object. The PCE MUST consider both the objects (including the | from the one in the SVEC object. The PCE MUST consider both the | |||
flags set inside the objects) as per the processing rules and aim to | objects (including the flags set inside the objects) as per the | |||
find a path that meets both of these constraints. In case no such | processing rules and aim to find a path that meets both of these | |||
path is possible, the PCE MUST send a path computation reply (PCRep) | constraints. In case no such path is possible, the PCE MUST send a | |||
with a NO-PATH object indicating path computation failure as per | Path Computation Reply (PCRep) with a NO-PATH object indicating path | |||
[RFC5440]. It should be noted that the LSPs in the association group | computation failure, as per [RFC5440]. It should be noted that the | |||
can be fully same or partially overlapping with the LSPs grouped by | LSPs in the association group can be fully same or partially | |||
the SVEC object in PCReq message. | overlapping with the LSPs grouped by the SVEC object in PCReq | |||
message. | ||||
Some examples of usage are listed below: | Some examples of usage are listed below: | |||
o PCReq with SVEC object with node-diverse bit=1 (LSP1,LSP2) and DAG | * PCReq with SVEC object with node-diverse bit=1 (LSP1,LSP2) and DAG | |||
with S=1 (LSP1,LSP2) - both node and SRLG diverse path between | with S=1 (LSP1,LSP2) - both node- and SRLG-diverse path between | |||
LSP1, LSP2. | LSP1 and LSP2. | |||
o PCReq with SVEC object with link-diverse bit=1 (LSP1,LSP2) and DAG | * PCReq with SVEC object with link-diverse bit=1 (LSP1,LSP2) and DAG | |||
with L=1 (LSP1,LSP3) - link diverse paths between LSP1 & LSP2, and | with L=1 (LSP1,LSP3) - link-diverse paths between LSP1 and LSP2 | |||
LSP1 & LSP3. If the DAG is part of the stateful database, any | and between LSP1 and LSP3. If the DAG is part of the stateful | |||
future change in LSP3 will have an impact on LSP1. But any future | database, any future change in LSP3 will have an impact on LSP1. | |||
change in LSP2 will have no impact on LSP1, as LSP2 is part of | But any future change in LSP2 will have no impact on LSP1, as LSP2 | |||
SVEC object (which is considered once on receipt of the PCReq | is part of SVEC object (which is considered once on receipt of the | |||
message only). | PCReq message only). | |||
5.4.1. SVEC and OF | 5.4.1. SVEC and OF | |||
This document defines three new OF-codes Section 5.3 to maximize | This document defines three new OF-codes in Section 5.3 to maximize | |||
diversity as much as possible, in other words, new OF-codes allow | diversity as much as possible. In other words, new OF-codes allow | |||
specification of minimization of common shared resources (Node, Link | specification of minimization of common shared resources (Node, Link, | |||
or SRLG) among a set of paths during path computation. | or SRLG) among a set of paths during path computation. | |||
It may be interesting to note that the diversity flags in the SVEC | It may be interesting to note that the diversity flags in the SVEC | |||
object and OF for diversity can be used together. Some examples of | object and OF for diversity can be used together. Some examples of | |||
usage are listed below: | usage are listed below: | |||
o SVEC object with node-diverse bit=1 - ensure full node-diversity. | * SVEC object with node-diverse bit=1 - ensure full node diversity. | |||
o SVEC object with node-diverse bit=1 and OF=MSS - full node diverse | * SVEC object with node-diverse bit=1 and OF=MSS - full node | |||
with as much as SRLG-diversity as possible. | diversity with as much SRLG diversity as possible. | |||
o SVEC object with domain-diverse bit=1;link diverse bit=1 and | * SVEC object with domain-diverse bit=1 [RFC8685]; node-diverse | |||
OF=MSS - full domain and node diverse path with as much as SRLG- | bit=1, and OF=MSS - full domain and node diversity with as much | |||
diversity as possible. | SRLG diversity as possible. | |||
o SVEC object with node-diverse bit=1 and OF=MSN - ensure full node- | * SVEC object with node-diverse bit=1 and OF=MSN - ensure full node | |||
diversity. | diversity. | |||
In the last example above, it is interesting to note that "OF" | In the last example above, it is interesting to note that "OF" | |||
becomes redundant as "SVEC object" ensures full node-diversity, | becomes redundant as "SVEC object" ensures full node diversity; | |||
however this specification does not prohibit redundant constraints | however, this specification does not prohibit redundant constraints | |||
while using "SVEC object" and "OF" together for diversity. | while using "SVEC object" and "OF" together for diversity. | |||
5.5. P Flag Considerations | 5.5. P Flag Considerations | |||
As mentioned in Section 5.2, the P flag (when set) indicates that the | As mentioned in Section 5.2, the P flag (when set) indicates that the | |||
computed path of the LSP SHOULD satisfies all constraints and | computed path of the LSP SHOULD satisfy all constraints and objective | |||
objective functions first without considering the diversity | functions first without considering the diversity constraint. | |||
constraint. | ||||
This means that an LSP with P flag set should be placed first as if | This means that an LSP with the P flag set should be placed first, as | |||
the disjointness constraint has not been configured, while the other | if the disjointness constraint has not been configured, while the | |||
LSPs in the association with P flag unset should be placed by taking | other LSPs in the association with the P flag unset should be placed | |||
into account the disjointness constraint. Setting the P flag changes | by taking into account the disjointness constraint. Setting the P | |||
the relationship between LSPs to a one-sided relationship (LSP 1 with | flag changes the relationship between LSPs to a one-sided | |||
P=0 depends on LSP 2 with P=1, but LSP 2 with P=1 does not depend of | relationship (LSP 1 with P=0 depends on LSP 2 with P=1, but LSP 2 | |||
LSP 1 with P=0). Multiple LSPs in the same disjoint group may have | with P=1 does not depend on LSP 1 with P=0). Multiple LSPs in the | |||
the P flag set. In such a case, those LSPs may not be disjoint from | same Disjoint Association Group may have the P flag set. In such a | |||
each other but will be disjoint from other LSPs in the group that | case, those LSPs may not be disjoint from each other but will be | |||
have the P flag unset. | disjoint from other LSPs in the group that have the P flag unset. | |||
This could be required in some primary/backup scenarios where the | This could be required in some primary/backup scenarios where the | |||
primary path should use the more optimal path available (taking into | primary path should use the more optimal path available (taking into | |||
account the other constraints). When disjointness is computed, it is | account the other constraints). When disjointness is computed, it is | |||
important for the algorithm to know that it should try to optimize | important for the algorithm to know that it should try to optimize | |||
the path of one or more LSPs in the disjoint group (for instance the | the path of one or more LSPs in the Disjoint Association Group (for | |||
primary path) while other paths are allowed to be costlier (compared | instance, the primary path), while other paths are allowed to be | |||
to a similar path without the disjointness constraint). Without such | costlier (compared to a similar path without the disjointness | |||
a hint, the disjointness algorithm may set a path for all LSPs that | constraint). Without such a hint, the disjointness algorithm may set | |||
may not completely fulfill the customer's requirement. | a path for all LSPs that may not completely fulfill the customer's | |||
requirement. | ||||
_________________________________________ | _________________________________________ | |||
/ \ | / \ | |||
/ +------+ \ | / +------+ \ | |||
| | PCE | | | | | PCE | | | |||
| +------+ | | | +------+ | | |||
| | | | | | |||
| | | | | | |||
| +------+ 10 +------+ | | | +------+ 10 +------+ | | |||
CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 | CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 | |||
| +------+ | | +------+ | | | +------+ | | +------+ | | |||
| | | | | | | | | | |||
| | | | | | | | | | |||
| +------+ | | +------+ | | | +------+ | | +------+ | | |||
CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 | CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 | |||
| +------+ \ | / +------+ | | | +------+ \ | / +------+ | | |||
| \ | 10 / | | | \ | 10 / | | |||
\ +-- R5 --------- R6 / | \ +-- R5 --------- R6 / | |||
\_________________________________________/ | \_________________________________________/ | |||
Cost of all the links is 1, unless explicitly marked otherwise. | Figure 4: Example Topology with Six Internal Routers | |||
Figure 3 | Note: In Figure 4, the cost of all the links is 1, unless explicitly | |||
marked otherwise. | ||||
In the figure above, a customer has two dual homed sites (CE1/CE3 and | In the figure above, a customer has two dual-homed sites (CE1/CE3 and | |||
CE2/CE4). Let us consider that this customer wants two link disjoint | CE2/CE4). Let us consider that this customer wants two link disjoint | |||
paths between the two sites. Due to physical meshing, the customer | paths between the two sites. Due to physical meshing, the customer | |||
wants to use CE1 and CE2 as primary (and CE3 and CE4 are hosted in a | wants to use CE1 and CE2 as the primary (and CE3 and CE4 are hosted | |||
remote site for redundancy purpose). | in a remote site for redundancy purpose). | |||
Without any hint (constraint) provided, the PCE may compute the two | Without any hint (constraint) provided, the PCE may compute the two | |||
link disjoint LSPs together, leading to PE1->PE2 using a path | link disjoint LSPs together, leading to PE1->PE2 using path | |||
PE1->R1->R2->PE2 and PE3->PE4 using PE3->R3->R4->PE4. In this case, | PE1->R1->R2->PE2 and PE3->PE4 using PE3->R3->R4->PE4. In this case, | |||
even if the disjointness constraint is fulfilled, the path from PE1 | even if the disjointness constraint is fulfilled, the path from PE1 | |||
to PE2 does not use the best optimal path available in the network | to PE2 does not use the best optimal path available in the network | |||
(path delay may be higher): the customer requirement is thus not | (path delay may be higher); the customer requirement is thus not | |||
completely fulfilled. | completely fulfilled. | |||
The usage of the P flag allows the PCE to know that a particular LSP | The usage of the P flag allows the PCE to know that a particular LSP | |||
should be tied to the best path as if the disjointness constraint was | should be tied to the best path, as if the disjointness constraint | |||
not requested. | was not requested. | |||
In our example, if the P flag is set to the LSP PE1->PE2, the PCE | In our example, if the P flag is set to the LSP PE1->PE2, the PCE | |||
should use the path PE1->R1->R3->R4->R2->PE2 for this LSP, while the | should use the path PE1->R1->R3->R4->R2->PE2 for this LSP, while the | |||
other LSP should be link disjoint from this path. The second LSP | other LSP should be link disjoint from this path. The second LSP | |||
will be placed on PE3->R5->R6->PE4 as it is allowed to be costlier. | will be placed on PE3->R5->R6->PE4, as it is allowed to be costlier. | |||
Driving the PCE disjointness computation may be done in other ways, | Driving the PCE disjointness computation may be done in other ways, | |||
for instance setting a metric boundary reflecting an path delay | for instance, setting a metric boundary reflecting a path delay | |||
boundary. Other constraints may also be used. | boundary. Other constraints may also be used. | |||
The P flag allows to simply express that the disjointness constraint | The P flag allows to simply express that the disjointness constraint | |||
should not make the LSP worst. | should not make the LSP worst. | |||
Any constraint added to a path disjointness computation may reduce | Any constraint added to a path disjointness computation may reduce | |||
the chance to find suitable paths. The usage of the P flag, as any | the chance to find suitable paths. The usage of the P flag, as any | |||
other constraint, may prevent to find a disjoint path. In the | other constraint, may prevent finding a disjoint path. In the | |||
example above, if we consider that the router R5 is down, if PE1->PE2 | example above, if we consider that router R5 is down and if PE1->PE2 | |||
has the P flag set, there is no room available to place PE3->PE4 (the | has the P flag set, there is no room available to place PE3->PE4 (the | |||
link disjointness constraint cannot be fulfilled). If PE1->PE2 has | link disjointness constraint cannot be fulfilled). If PE1->PE2 has | |||
the P flag unset, the algorithm may be able to place PE1->PE2 on | the P flag unset, the algorithm may be able to place PE1->PE2 on the | |||
R1->R2 link leaving a room for PE3->PE4 using the R3->R4 link. When | R1->R2 link leaving room for PE3->PE4 using the R3->R4 link. When | |||
using P flag or any additional constraint on top of the disjointness | using the P flag or any additional constraint on top of the | |||
constraint, the user should be aware that there is less chance to | disjointness constraint, the user should be aware that there is less | |||
fulfill the disjointness constraint. | chance to fulfill the disjointness constraint. | |||
_________________________________________ | _________________________________________ | |||
/ \ | / \ | |||
/ +------+ \ | / +------+ \ | |||
| | PCE | | | | | PCE | | | |||
| +------+ | | | +------+ | | |||
| | | | | | |||
| | | | | | |||
| +------+ 10 +------+ | | | +------+ 10 +------+ | | |||
CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 | CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 | |||
| +------+ | \ | +------+ | | | +------+ | \ | +------+ | | |||
| | \2 | | | | | \2 | | | |||
| | \ | | | | | \ | | | |||
| +------+ | \ | +------+ | | | +------+ | \ | +------+ | | |||
CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 | CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 | |||
| +------+ +------+ | | | +------+ +------+ | | |||
| | | | | | |||
\ / | \ / | |||
\_________________________________________/ | \_________________________________________/ | |||
Cost of all the links is 1, unless explicitly marked otherwise. | Figure 5: Example Topology with Four Internal Routers | |||
Figure 4 | Note: In Figure 5, the cost of all the links is 1, unless explicitly | |||
marked otherwise. | ||||
In the figure above, we still consider the same previous | In the figure above, we still consider the same previous | |||
requirements, so PE1->PE2 LSP should be optimized (P flag set) while | requirements, so PE1->PE2 LSP should be optimized (P flag set), while | |||
PE3->PE4 should be link disjoint and may use a costlier path. | PE3->PE4 should be link disjoint and may use a costlier path. | |||
Regarding PE1->PE2, there are two paths that are satisfying the | Regarding PE1->PE2, there are two paths that are satisfying the | |||
constraints (ECMP): PE1->R1->R4->R2->PE2 (path 1) and | constraints (ECMP): PE1->R1->R4->R2->PE2 (path 1) and | |||
PE1->R1->R3->R4->R2->PE2 (path 2). An implementation may choose one | PE1->R1->R3->R4->R2->PE2 (path 2). An implementation may choose one | |||
of the paths. | of the paths. | |||
If the implementation elects only one path, there is a chance that | If the implementation elects only one path, there is a chance that | |||
picking up one path may prevent link disjointness. In our example, | picking up one path may prevent link disjointness. In our example, | |||
if path 2 is used for PE1->PE2, there is no room left for PE3->PE4 | if path 2 is used for PE1->PE2, there is no room left for PE3->PE4, | |||
while if path 1 is used, PE3->PE4 can be placed on R3->R4 link. | while if path 1 is used, PE3->PE4 can be placed on R3->R4 link. | |||
When P flag is set for an LSP and when ECMPs are available, an | When the P flag is set for an LSP and when ECMPs are available, an | |||
implementation should aim to select a path that allows disjointness. | implementation should aim to select a path that allows disjointness. | |||
5.6. Disjointness Computation Issues | 5.6. Disjointness Computation Issues | |||
There may be some cases where the PCE is not able to provide a set of | There may be some cases where the PCE is not able to provide a set of | |||
disjoint paths for one or more LSPs in the association. | disjoint paths for one or more LSPs in the association. | |||
When the T flag is set (Strict disjointness requested), if | When the T flag is set (Strict disjointness), if disjointness cannot | |||
disjointness cannot be ensured for one or more LSPs, the PCE MUST | be ensured for one or more LSPs, the PCE MUST reply to a PCReq with a | |||
reply to a Path Computation Request (PCReq) with a Path Computation | PCRep message containing a NO-PATH object. In case of a PCRpt | |||
Reply (PCRep) message containing a NO-PATH object. In case of PCRpt | ||||
message, the PCE MUST return a PCErr message with Error-Type 26 | message, the PCE MUST return a PCErr message with Error-Type 26 | |||
"Association Error" and Error-Value 7 "Cannot join the association | (Association Error) and Error-value 7 (Cannot join the association | |||
group". | group). | |||
In case of a network event leading to an impossible strict | In case of a network event leading to an impossible strict | |||
disjointness, the PCE MUST send a PCUpd message containing an empty | disjointness, the PCE MUST send a PCUpd message containing an empty | |||
ERO to the corresponding PCCs. In addition to the empty ERO Object, | Explicit Route Object (ERO) to the corresponding PCCs. In addition | |||
the PCE MAY add the NO-PATH-VECTOR TLV ([RFC5440]) in the LSP Object. | to the empty ERO object, the PCE MAY add the NO-PATH-VECTOR TLV | |||
[RFC5440] in the LSP object. | ||||
This document adds new bits in the NO-PATH-VECTOR TLV: | This document adds new bits in the Flags field of the NO-PATH-VECTOR | |||
TLV: | ||||
bit "TBD7": when set, the PCE indicates that it could not find a | * bit 11: When set, the PCE indicates that it could not find a | |||
disjoint path for this LSP. | disjoint path for this LSP. | |||
bit "TBD8": when set, the PCE indicates that it does not support | * bit 10: When set, the PCE indicates that it does not support the | |||
the requested disjointness computation. | requested disjointness computation. | |||
When the T flag is unset, the PCE is allowed to relax disjointness by | When the T flag is unset, the PCE is allowed to relax disjointness by | |||
applying a requested objective function (Section 5.3) if specified. | applying a requested objective function (Section 5.3) if specified. | |||
Otherwise, if no objective function is specified, the PCE is allowed | Otherwise, if no objective function is specified, the PCE is allowed | |||
to reduce the required level of disjointness as it deems fit. The | to reduce the required level of disjointness as it deems fit. The | |||
actual level of disjointness of the paths computed by the PCE can be | actual level of disjointness of the paths computed by the PCE can be | |||
reported through the DISJOINTNESS-STATUS-TLV by setting the | reported through the DISJOINTNESS-STATUS TLV by setting the | |||
appropriate flags in the TLV. While the DISJOINTNESS-CONFIGURATION- | appropriate flags in the TLV. While the DISJOINTNESS-CONFIGURATION | |||
TLV defines the desired level of disjointness required by | TLV defines the desired level of disjointness required by | |||
configuration, the DISJOINTNESS-STATUS-TLV defines the achieved level | configuration, the DISJOINTNESS-STATUS TLV defines the achieved level | |||
of disjointness computed. | of disjointness computed. | |||
There are some cases where the PCE may need to completely relax the | There are some cases where the PCE may need to completely relax the | |||
disjointness constraint in order to provide a path to all the LSPs | disjointness constraint in order to provide a path to all the LSPs | |||
that are part of the association. A mechanism that allows the PCE to | that are part of the association. A mechanism that allows the PCE to | |||
fully relax a constraint is considered by the authors as more global | fully relax a constraint is considered by the authors as more global | |||
to PCEP rather than linked to the disjointness use case. As a | to PCEP rather than linked to the disjointness use case. As a | |||
consequence, it is considered as out of scope of the document. See | consequence, it is considered out of scope of the document. See | |||
[I-D.dhody-pce-stateful-pce-optional] for a proposed mechanism. | [PCE-OPTIONAL] for a proposed mechanism. | |||
6. Security Considerations | 6. Security Considerations | |||
This document defines one new PCEP association type, which on itself | This document defines one new PCEP Association type, which by itself | |||
does not add any new security concerns beyond those discussed in | does not add any new security concerns beyond those discussed in | |||
[RFC5440], [RFC8231], [RFC7470] and [I-D.ietf-pce-association-group]. | [RFC5440], [RFC8231], [RFC7470], and [RFC8697]. But adding of a | |||
But, adding of a spurious LSP into the disjointness association group | spurious LSP into the Disjoint Association Group could lead to | |||
could lead to re-computation and set-up of all LSPs in the group, | recomputation and setup of all LSPs in the group, which could be used | |||
that could be used to overwhelm the PCE and the network. | to overwhelm the PCE and the network. | |||
A spurious LSP can have flags that are inconsistent with those of the | A spurious LSP can have flags that are inconsistent with those of the | |||
legitimate LSPs of the group and thus cause LSP allocation for the | legitimate LSPs of the group and thus cause LSP allocation for the | |||
legitimate LSPs to fail with an error. Also, certain combinations of | legitimate LSPs to fail with an error. Also, certain combinations of | |||
flags (notably, the 'T' bit) can result in conflicts that cannot be | flags (notably, the 'T' bit) can result in conflicts that cannot be | |||
resolved. | resolved. | |||
Also, as stated in [I-D.ietf-pce-association-group], much of the | Also, as stated in [RFC8697], much of the information carried in the | |||
information carried in the Disjointness Association object reflects | ASSOCIATION object reflects information that can also be derived from | |||
information that can also be derived from the LSP Database, but | the LSP database, but association provides a much easier grouping of | |||
association provides a much easier grouping of related LSPs and | related LSPs and messages. This holds true for the DAT as well; | |||
messages. The disjointness association could provide an adversary | thus, this could provide an adversary with the opportunity to | |||
with the opportunity to eavesdrop on the relationship between the | eavesdrop on the relationship between the LSPs and understand the | |||
LSPs and understand the network topology. | network topology. | |||
Thus securing the PCEP session using Transport Layer Security (TLS) | Thus, securing the PCEP session using Transport Layer Security (TLS) | |||
[RFC8253], as per the recommendations and best current practices in | [RFC8253], as per the recommendations and best current practices in | |||
BCP 195 [RFC7525], is RECOMMENDED. | BCP 195 [RFC7525], is RECOMMENDED. | |||
7. IANA Considerations | 7. IANA Considerations | |||
7.1. Association Type | 7.1. Association Type | |||
This document defines a new Association type, originally described in | This document defines a new Association type, originally described in | |||
[I-D.ietf-pce-association-group]. IANA is requested to make the | [RFC8697]. IANA has assigned the following new value in the | |||
assignment of a new value for the sub-registry "ASSOCIATION Type | "ASSOCIATION Type Field" subregistry [RFC8697] within the "Path | |||
Field" (request to be created in [I-D.ietf-pce-association-group]), | Computation Element Protocol (PCEP) Numbers" registry: | |||
as follows: | ||||
+------------------+---------------------------------+--------------+ | +======+======================+===========+ | |||
| Association type | Association Name | Reference | | | Type | Name | Reference | | |||
+------------------+---------------------------------+--------------+ | +======+======================+===========+ | |||
| TBD1 | Disjointness Association Type | [This.I-D] | | | 2 | Disjoint Association | RFC 8800 | | |||
+------------------+---------------------------------+--------------+ | +------+----------------------+-----------+ | |||
Table 1: ASSOCIATION Type Field | ||||
7.2. PCEP TLVs | 7.2. PCEP TLVs | |||
This document defines the following new PCEP TLVs and the IANA is | This document defines two new PCEP TLVs. IANA has assigned the | |||
requested to make the assignment of new values for the existing "PCEP | following values in the "PCEP TLV Type Indicators" subregistry within | |||
TLV Type Indicators" registry as follows: | the "Path Computation Element Protocol (PCEP) Numbers" registry: | |||
+----------+----------------------------------+--------------+ | +==========+============================+===========+ | |||
| TLV Type | TLV Name | Reference | | | TLV Type | TLV Name | Reference | | |||
+----------+----------------------------------+--------------+ | +==========+============================+===========+ | |||
| TBD2 | Disjointness Configuration TLV | [This.I-D] | | | 46 | DISJOINTNESS-CONFIGURATION | RFC 8800 | | |||
| TBD3 | Disjointness Status TLV | [This.I-D] | | +----------+----------------------------+-----------+ | |||
+----------+----------------------------------+--------------+ | | 47 | DISJOINTNESS-STATUS | RFC 8800 | | |||
+----------+----------------------------+-----------+ | ||||
This document requests that a new sub-registry, named "Disjointness | Table 2: PCEP TLV Type Indicators | |||
Configuration TLV Flag Field", is created within the "Path | ||||
Computation Element Protocol (PCEP) Numbers" registry to manage the | ||||
Flag field in the Disjointness Configuration TLV. New values are to | ||||
be assigned by Standards Action [RFC8126]. Each bit should be | ||||
tracked with the following qualities: | ||||
o Bit number (count from 0 as the most significant bit) | IANA has created a new subregistry, named "DISJOINTNESS-CONFIGURATION | |||
TLV Flag Field", within the "Path Computation Element Protocol (PCEP) | ||||
Numbers" registry to manage the Flags field in the DISJOINTNESS- | ||||
CONFIGURATION TLV. New values are to be assigned by Standards Action | ||||
[RFC8126]. Each bit should be tracked with the following qualities: | ||||
o Flag Name | * Bit number (count from 0 as the most significant bit) | |||
o Reference | * Flag Name | |||
+------------+-------------------------+--------------+ | * Reference | |||
| Bit Number | Name | Reference | | ||||
+------------+-------------------------+--------------+ | ||||
| 31 | L - Link Diverse | [This.I-D] | | ||||
| 30 | N - Node Diverse | [This.I-D] | | ||||
| 29 | S - SRLG Diverse | [This.I-D] | | ||||
| 28 | P - Shortest Path | [This.I-D] | | ||||
| 27 | T - Strict Disjointness | [This.I-D] | | ||||
+------------+-------------------------+--------------+ | ||||
Table 1: Disjointness Configuration TLV | The initial contents of this subregistry are shown below: | |||
+======+=========================+===========+ | ||||
| Bit | Name | Reference | | ||||
+======+=========================+===========+ | ||||
| 31 | L - Link Diverse | RFC 8800 | | ||||
+------+-------------------------+-----------+ | ||||
| 30 | N - Node Diverse | RFC 8800 | | ||||
+------+-------------------------+-----------+ | ||||
| 29 | S - SRLG Diverse | RFC 8800 | | ||||
+------+-------------------------+-----------+ | ||||
| 28 | P - Shortest Path | RFC 8800 | | ||||
+------+-------------------------+-----------+ | ||||
| 27 | T - Strict Disjointness | RFC 8800 | | ||||
+------+-------------------------+-----------+ | ||||
| 0-26 | Unassigned | | | ||||
+------+-------------------------+-----------+ | ||||
Table 3: DISJOINTNESS-CONFIGURATION TLV | ||||
Flag Field | ||||
7.3. Objective Functions | 7.3. Objective Functions | |||
Three new Objective Functions have been defined in this document. | This document defines three new objective functions. IANA has made | |||
IANA is requested to make the following allocations from the PCEP | the following allocations in the "Objective Function" subregistry | |||
"Objective Function" sub-registry: | within the "Path Computation Element Protocol (PCEP) Numbers" | |||
registry: | ||||
+------------+---------------------------------------+--------------+ | +============+=======================+===========+ | |||
| Code Point | Name | Reference | | | Code Point | Name | Reference | | |||
+------------+---------------------------------------+--------------+ | +============+=======================+===========+ | |||
| TBD4 | Minimize the number of shared Links | [This.I-D] | | | 15 | Minimize the number | RFC 8800 | | |||
| | (MSL) | | | | | of Shared Links (MSL) | | | |||
| TBD5 | Minimize the number of shared SRLGs | [This.I-D] | | +------------+-----------------------+-----------+ | |||
| | (MSS) | | | | 16 | Minimize the number | RFC 8800 | | |||
| TBD6 | Minimize the number of shared Nodes | [This.I-D] | | | | of Shared SRLGs (MSS) | | | |||
| | (MSN) | | | +------------+-----------------------+-----------+ | |||
+------------+---------------------------------------+--------------+ | | 17 | Minimize the number | RFC 8800 | | |||
| | of Shared Nodes (MSN) | | | ||||
+------------+-----------------------+-----------+ | ||||
Table 4: Objective Function | ||||
7.4. NO-PATH-VECTOR Bit Flags | 7.4. NO-PATH-VECTOR Bit Flags | |||
This documents defines new bits for the NO-PATH-VECTOR TLV in the | This document defines new bits for the NO-PATH-VECTOR TLV in the "NO- | |||
"NO-PATH-VECTOR TLV Flag Field" sub-registry of the "Path Computation | PATH-VECTOR TLV Flag Field" subregistry of the "Path Computation | |||
Element Protocol (PCEP) Numbers" registry. IANA is requested to make | Element Protocol (PCEP) Numbers" registry. IANA has made the | |||
the following allocation: | following allocations: | |||
+-----------+-----------------------------------------+-------------+ | +============+===========================+===========+ | |||
| Bit | Name | Reference | | | Bit Number | Name | Reference | | |||
| Number | | | | +============+===========================+===========+ | |||
+-----------+-----------------------------------------+-------------+ | | 11 | Disjoint path not found | RFC 8800 | | |||
| TBD7 | Disjoint path not found | [This.I-D] | | +------------+---------------------------+-----------+ | |||
| TBD8 | Requested disjoint computation not | [This.I-D] | | | 10 | Requested disjoint | RFC 8800 | | |||
| | supported | | | | | computation not supported | | | |||
+-----------+-----------------------------------------+-------------+ | +------------+---------------------------+-----------+ | |||
Table 2: NO-PATH-VECTOR TLV | Table 5: NO-PATH-VECTOR TLV Flag Field | |||
7.5. PCEP-ERROR Codes | 7.5. PCEP-ERROR Codes | |||
This document defines new Error-Value within existing Error-Type | This document defines two new Error-values within existing Error- | |||
related to path protection association. IANA is requested to | Types related to disjoint association. IANA has allocated the | |||
allocate new error values within the "PCEP-ERROR Object Error Types | following new Error-values in the "PCEP-ERROR Object Error Types and | |||
and Values" sub-registry of the PCEP Numbers registry, as follows: | Values" subregistry within the "Path Computation Element Protocol | |||
(PCEP) Numbers" registry: | ||||
+----------+-------------------------+------------------------------+ | +============+===========+============================+===========+ | |||
| Error- | Meaning | Reference | | | Error-Type | Meaning | Error-value | Reference | | |||
| Type | | | | +============+===========+============================+===========+ | |||
+----------+-------------------------+------------------------------+ | | 6 | Mandatory | | [RFC5440] | | |||
| 6 | Mandatory Object | [I-D.ietf-pce-association-gr | | | | Object | | | | |||
| | missing | oup] | | | | missing | | | | |||
| | Error-value=TBD10: | [This.I-D] | | +------------+-----------+----------------------------+-----------+ | |||
| | DISJOINTNESS- | | | | | | 15: DISJOINTNESS- | RFC 8800 | | |||
| | CONFIGURATION TLV | | | | | | CONFIGURATION TLV missing | | | |||
| | missing | | | +------------+-----------+----------------------------+-----------+ | |||
| 10 | Reception of an | [RFC5440] | | | 10 | Reception | | [RFC5440] | | |||
| | invalid object | | | | | of an | | | | |||
| | Error-value=TBD9: | [This.I-D] | | | | invalid | | | | |||
| | Incompatible OF code | | | | | object | | | | |||
+----------+-------------------------+------------------------------+ | +------------+-----------+----------------------------+-----------+ | |||
| | | 32: Incompatible OF code | RFC 8800 | | ||||
+------------+-----------+----------------------------+-----------+ | ||||
Table 6: PCEP-ERROR Object Error Types and Values | ||||
8. Manageability Considerations | 8. Manageability Considerations | |||
8.1. Control of Function and Policy | 8.1. Control of Function and Policy | |||
An operator SHOULD be allowed to configure the disjointness | An operator SHOULD be allowed to configure the Disjoint Association | |||
association groups and disjoint parameters at the PCEP peers and | Groups and disjoint parameters at the PCEP peers and associate them | |||
associate it with the LSPs. The Operator-configured Association | with the LSPs. The operator MUST be allowed to set the Operator- | |||
Range MUST be allowed to be set by the operator. The operator SHOULD | configured Association Range. The operator SHOULD be allowed to set | |||
be allowed to set the local policies to define various disjoint | the local policies to define various disjoint computational behavior | |||
computational behavior at the PCE. | at the PCE. | |||
8.2. Information and Data Models | 8.2. Information and Data Models | |||
An implementation SHOULD allow the operator to view the disjoint | An implementation SHOULD allow the operator to view the disjoint | |||
associations configured or created dynamically. Furthermore, | associations configured or created dynamically. Furthermore, | |||
implementations SHOULD allow to view disjoint associations reported | implementations SHOULD allow to view disjoint associations reported | |||
by each peer, and the current set of LSPs in this association. The | by each peer and the current set of LSPs in this association. The | |||
PCEP YANG module [I-D.ietf-pce-pcep-yang] includes association groups | PCEP YANG module [PCEP-YANG] includes association group information. | |||
information. | ||||
8.3. Liveness Detection and Monitoring | 8.3. Liveness Detection and Monitoring | |||
Mechanisms defined in this document do not imply any new liveness | Mechanisms defined in this document do not imply any new liveness | |||
detection and monitoring requirements in addition to those already | detection and monitoring requirements in addition to those already | |||
listed in [RFC5440]. | listed in [RFC5440]. | |||
8.4. Verification of Correct Operations | 8.4. Verification of Correct Operations | |||
Apart from the operation verification requirements already listed in | Apart from the operation verification requirements already listed in | |||
[RFC5440], a PCEP implementation SHOULD provide parameters related to | [RFC5440], a PCEP implementation SHOULD provide parameters related to | |||
disjoint path computation, such as number of DAG, number of disjoint | disjoint path computation, such as number of DAG, number of disjoint | |||
path computation failures etc. A PCEP implementation SHOULD log | path computation failures, etc. A PCEP implementation SHOULD log | |||
failure events (e.g., incompatible Flags). | failure events (e.g., incompatible Flags). | |||
8.5. Requirements on Other Protocols | 8.5. Requirements on Other Protocols | |||
Mechanisms defined in this document do not imply any new requirements | Mechanisms defined in this document do not imply any new requirements | |||
on other protocols. | on other protocols. | |||
8.6. Impact on Network Operations | 8.6. Impact on Network Operations | |||
Mechanisms defined in [RFC5440], Section 8.6 also apply to PCEP | Mechanisms defined in Section 8.6 of [RFC5440] also apply to PCEP | |||
extensions defined in this document. Additionally, a PCEP | extensions defined in this document. Additionally, a PCEP | |||
implementation SHOULD allow a limit to be placed on the number of | implementation SHOULD allow a limit to be placed on the number of | |||
LSPs that can belong to a DAG. | LSPs that can belong to a DAG. | |||
9. Acknowledgments | 9. References | |||
A special thanks to authors of [I-D.ietf-pce-association-group], this | ||||
document borrow some of the text from it. Authors would also like to | ||||
thank Adrian Farrel and Julien Meuric for the valuable comments. | ||||
Thanks to Emmanuel Baccelli for RTGDIR review. | ||||
Thanks to Dale Worley for a detailed GENART review. | ||||
Thanks to Alvaro Retana, Benjamin Kaduk, Suresh Krishnan, Roman | ||||
Danyliw, Alissa Cooper and Eric Vyncke for IESG review. | ||||
10. References | ||||
10.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, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | ||||
Writing an IANA Considerations Section in RFCs", BCP 26, | ||||
RFC 8126, DOI 10.17487/RFC8126, June 2017, | ||||
<https://www.rfc-editor.org/info/rfc8126>. | ||||
[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, | |||
DOI 10.17487/RFC5440, March 2009, | DOI 10.17487/RFC5440, March 2009, | |||
<https://www.rfc-editor.org/info/rfc5440>. | <https://www.rfc-editor.org/info/rfc5440>. | |||
[RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of | [RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of | |||
Objective Functions in the Path Computation Element | Objective Functions in the Path Computation Element | |||
Communication Protocol (PCEP)", RFC 5541, | Communication Protocol (PCEP)", RFC 5541, | |||
DOI 10.17487/RFC5541, June 2009, | DOI 10.17487/RFC5541, June 2009, | |||
<https://www.rfc-editor.org/info/rfc5541>. | <https://www.rfc-editor.org/info/rfc5541>. | |||
[RFC7470] Zhang, F. and A. Farrel, "Conveying Vendor-Specific | [RFC7470] Zhang, F. and A. Farrel, "Conveying Vendor-Specific | |||
Constraints in the Path Computation Element Communication | Constraints in the Path Computation Element Communication | |||
Protocol", RFC 7470, DOI 10.17487/RFC7470, March 2015, | Protocol", RFC 7470, DOI 10.17487/RFC7470, March 2015, | |||
<https://www.rfc-editor.org/info/rfc7470>. | <https://www.rfc-editor.org/info/rfc7470>. | |||
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | ||||
Writing an IANA Considerations Section in RFCs", BCP 26, | ||||
RFC 8126, DOI 10.17487/RFC8126, June 2017, | ||||
<https://www.rfc-editor.org/info/rfc8126>. | ||||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path | [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path | |||
Computation Element Communication Protocol (PCEP) | Computation Element Communication Protocol (PCEP) | |||
Extensions for Stateful PCE", RFC 8231, | Extensions for Stateful PCE", RFC 8231, | |||
DOI 10.17487/RFC8231, September 2017, | DOI 10.17487/RFC8231, September 2017, | |||
<https://www.rfc-editor.org/info/rfc8231>. | <https://www.rfc-editor.org/info/rfc8231>. | |||
[RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody, | [RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody, | |||
"PCEPS: Usage of TLS to Provide a Secure Transport for the | "PCEPS: Usage of TLS to Provide a Secure Transport for the | |||
Path Computation Element Communication Protocol (PCEP)", | Path Computation Element Communication Protocol (PCEP)", | |||
RFC 8253, DOI 10.17487/RFC8253, October 2017, | RFC 8253, DOI 10.17487/RFC8253, October 2017, | |||
<https://www.rfc-editor.org/info/rfc8253>. | <https://www.rfc-editor.org/info/rfc8253>. | |||
[I-D.ietf-pce-association-group] | [RFC8685] Zhang, F., Zhao, Q., Gonzalez de Dios, O., Casellas, R., | |||
Minei, I., Crabbe, E., Sivabalan, S., Ananthakrishnan, H., | and D. King, "Path Computation Element Communication | |||
Protocol (PCEP) Extensions for the Hierarchical Path | ||||
Computation Element (H-PCE) Architecture", RFC 8685, | ||||
DOI 10.17487/RFC8685, December 2019, | ||||
<https://www.rfc-editor.org/info/rfc8685>. | ||||
[RFC8697] Minei, I., Crabbe, E., Sivabalan, S., Ananthakrishnan, H., | ||||
Dhody, D., and Y. Tanaka, "Path Computation Element | Dhody, D., and Y. Tanaka, "Path Computation Element | |||
Communication Protocol (PCEP) Extensions for Establishing | Communication Protocol (PCEP) Extensions for Establishing | |||
Relationships Between Sets of Label Switched Paths | Relationships between Sets of Label Switched Paths | |||
(LSPs)", draft-ietf-pce-association-group-10 (work in | (LSPs)", RFC 8697, DOI 10.17487/RFC8697, January 2020, | |||
progress), August 2019. | <https://www.rfc-editor.org/info/rfc8697>. | |||
10.2. Informative References | 9.2. Informative References | |||
[RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | [PCE-OPTIONAL] | |||
Element (PCE)-Based Architecture", RFC 4655, | Li, C., Zheng, H., and S. Litkowski, "Extension for | |||
Stateful PCE to allow Optional Processing of PCEP | ||||
Objects", Work in Progress, Internet-Draft, draft-dhody- | ||||
pce-stateful-pce-optional-06, 9 July 2020, | ||||
<https://tools.ietf.org/html/draft-dhody-pce-stateful-pce- | ||||
optional-06>. | ||||
[PCEP-YANG] | ||||
Dhody, D., Hardwick, J., Beeram, V., and J. Tantsura, "A | ||||
YANG Data Model for Path Computation Element | ||||
Communications Protocol (PCEP)", Work in Progress, | ||||
Internet-Draft, draft-ietf-pce-pcep-yang-14, 7 July 2020, | ||||
<https://tools.ietf.org/html/draft-ietf-pce-pcep-yang-14>. | ||||
[RFC4655] Farrel, A., Vasseur, J.-P., and J. Ash, "A Path | ||||
Computation Element (PCE)-Based Architecture", RFC 4655, | ||||
DOI 10.17487/RFC4655, August 2006, | DOI 10.17487/RFC4655, August 2006, | |||
<https://www.rfc-editor.org/info/rfc4655>. | <https://www.rfc-editor.org/info/rfc4655>. | |||
[RFC6007] Nishioka, I. and D. King, "Use of the Synchronization | [RFC6007] Nishioka, I. and D. King, "Use of the Synchronization | |||
VECtor (SVEC) List for Synchronized Dependent Path | VECtor (SVEC) List for Synchronized Dependent Path | |||
Computations", RFC 6007, DOI 10.17487/RFC6007, September | Computations", RFC 6007, DOI 10.17487/RFC6007, September | |||
2010, <https://www.rfc-editor.org/info/rfc6007>. | 2010, <https://www.rfc-editor.org/info/rfc6007>. | |||
[RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, | [RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, | |||
"Recommendations for Secure Use of Transport Layer | "Recommendations for Secure Use of Transport Layer | |||
Security (TLS) and Datagram Transport Layer Security | Security (TLS) and Datagram Transport Layer Security | |||
(DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May | (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May | |||
2015, <https://www.rfc-editor.org/info/rfc7525>. | 2015, <https://www.rfc-editor.org/info/rfc7525>. | |||
[RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path | [RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path | |||
Computation Element Communication Protocol (PCEP) | Computation Element Communication Protocol (PCEP) | |||
Extensions for PCE-Initiated LSP Setup in a Stateful PCE | Extensions for PCE-Initiated LSP Setup in a Stateful PCE | |||
Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, | Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, | |||
<https://www.rfc-editor.org/info/rfc8281>. | <https://www.rfc-editor.org/info/rfc8281>. | |||
[I-D.ietf-pce-pcep-yang] | Acknowledgments | |||
Dhody, D., Hardwick, J., Beeram, V., and J. Tantsura, "A | ||||
YANG Data Model for Path Computation Element | ||||
Communications Protocol (PCEP)", draft-ietf-pce-pcep- | ||||
yang-13 (work in progress), October 2019. | ||||
[I-D.dhody-pce-stateful-pce-optional] | A special thanks to the authors of [RFC8697]; this document borrows | |||
Li, C., Zheng, H., and S. Litkowski, "Extension for | some text from it. The authors would also like to thank Adrian | |||
Stateful PCE to allow Optional Processing of PCEP | Farrel and Julien Meuric for the valuable comments. | |||
Objects", draft-dhody-pce-stateful-pce-optional-05 (work | ||||
in progress), January 2020. | ||||
Appendix A. Contributor Addresses | Thanks to Emmanuel Baccelli for the RTGDIR review. | |||
Thanks to Dale Worley for a detailed GENART review. | ||||
Thanks to Alvaro Retana, Benjamin Kaduk, Suresh Krishnan, Roman | ||||
Danyliw, Alissa Cooper, and Éric Vyncke for the IESG review. | ||||
Contributors | ||||
Dhruv Dhody | Dhruv Dhody | |||
Huawei Technologies | Huawei Technologies | |||
Divyashree Techno Park, Whitefield | Divyashree Techno Park, Whitefiled | |||
Bangalore, Karnataka 560066 | Bangalore 560066 | |||
Karnataka | ||||
India | India | |||
EMail: dhruv.ietf@gmail.com | Email: dhruv.ietf@gmail.com | |||
Authors' Addresses | Authors' Addresses | |||
Stephane Litkowski | Stephane Litkowski | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
EMail: slitkows.ietf@gmail.com | Email: slitkows.ietf@gmail.com | |||
Siva Sivabalan | Siva Sivabalan | |||
Cisco Systems, Inc. | Ciena Corporation | |||
2000 Innovation Drive | ||||
Kanata, Ontario K2K 3E8 | ||||
Canada | ||||
EMail: msiva@cisco.com | Email: msiva282@gmail.com | |||
Colby Barth | Colby Barth | |||
Juniper Networks | Juniper Networks | |||
EMail: cbarth@juniper.net | Email: cbarth@juniper.net | |||
Mahendra Singh Negi | Mahendra Singh Negi | |||
RtBrick India | RtBrick India | |||
N-17L, Floor-1, 18th Cross Rd, HSR Layout Sector-3 | N-17L, Floor-1, 18th Cross Rd, HSR Layout Sector-3 | |||
Bangalore, Karnataka 560102 | Bangalore 560102 | |||
Karnataka | ||||
India | India | |||
EMail: mahend.ietf@gmail.com | Email: mahend.ietf@gmail.com | |||
End of changes. 164 change blocks. | ||||
574 lines changed or deleted | 593 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |