< draft-ietf-pce-association-diversity-08.txt   draft-ietf-pce-association-diversity-09.txt >
PCE Working Group S. Litkowski PCE Working Group S. Litkowski
Internet-Draft Orange Internet-Draft Orange
Intended status: Standards Track S. Sivabalan Intended status: Standards Track S. Sivabalan
Expires: January 5, 2020 Cisco Systems, Inc. Expires: February 17, 2020 Cisco Systems, Inc.
C. Barth C. Barth
Juniper Networks Juniper Networks
M. Negi M. Negi
Huawei Technologies Huawei Technologies
July 4, 2019 August 16, 2019
Path Computation Element Communication Protocol (PCEP) Extension for LSP Path Computation Element Communication Protocol (PCEP) Extension for LSP
Diversity Constraint Signaling Diversity Constraint Signaling
draft-ietf-pce-association-diversity-08 draft-ietf-pce-association-diversity-09
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 (PCE) communication Protocol (PCEP) with the purpose of
computing diverse paths for those LSPs. The proposed extension computing diverse paths for those LSPs. The proposed extension
allows a Path Computation Client (PCC) to advertise to a PCE that a allows a Path Computation Client (PCC) to advertise to a PCE that a
particular LSP belongs to a disjoint-group, thus the PCE knows that particular LSP belongs to a disjoint-group, thus the PCE knows that
the LSPs in the same group need to be disjoint from each other. the LSPs in the same group need to be disjoint from each other.
skipping to change at page 1, line 42 skipping to change at page 1, line 42
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 5, 2020. This Internet-Draft will expire on February 17, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 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
skipping to change at page 2, line 21 skipping to change at page 2, line 21
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 . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Protocol Extension . . . . . . . . . . . . . . . . . . . . . 7 4. Applicability . . . . . . . . . . . . . . . . . . . . . . . . 4
4.1. Association Group . . . . . . . . . . . . . . . . . . . . 7 5. Protocol Extension . . . . . . . . . . . . . . . . . . . . . 7
4.2. Disjoint TLVs . . . . . . . . . . . . . . . . . . . . . . 8 5.1. Association Group . . . . . . . . . . . . . . . . . . . . 7
4.3. Relationship to SVEC . . . . . . . . . . . . . . . . . . 10 5.2. Disjoint TLVs . . . . . . . . . . . . . . . . . . . . . . 8
4.4. Disjointness Objective functions . . . . . . . . . . . . 10 5.3. Relationship to SVEC . . . . . . . . . . . . . . . . . . 10
4.5. P Flag Considerations . . . . . . . . . . . . . . . . . . 12 5.4. Disjointness Objective functions . . . . . . . . . . . . 10
4.6. Disjointness Computation Issues . . . . . . . . . . . . . 15 5.5. P Flag Considerations . . . . . . . . . . . . . . . . . . 12
5. Security Considerations . . . . . . . . . . . . . . . . . . . 16 5.6. Disjointness Computation Issues . . . . . . . . . . . . . 15
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 6. Security Considerations . . . . . . . . . . . . . . . . . . . 16
6.1. Association Type . . . . . . . . . . . . . . . . . . . . 16 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
6.2. PCEP TLVs . . . . . . . . . . . . . . . . . . . . . . . . 16 7.1. Association Type . . . . . . . . . . . . . . . . . . . . 16
6.3. Objective Functions . . . . . . . . . . . . . . . . . . . 17 7.2. PCEP TLVs . . . . . . . . . . . . . . . . . . . . . . . . 17
6.4. NO-PATH-VECTOR Bit Flags . . . . . . . . . . . . . . . . 18 7.3. Objective Functions . . . . . . . . . . . . . . . . . . . 18
6.5. PCEP-ERROR Codes . . . . . . . . . . . . . . . . . . . . 18 7.4. NO-PATH-VECTOR Bit Flags . . . . . . . . . . . . . . . . 18
7. Manageability Considerations . . . . . . . . . . . . . . . . 18 7.5. PCEP-ERROR Codes . . . . . . . . . . . . . . . . . . . . 18
7.1. Control of Function and Policy . . . . . . . . . . . . . 18 8. Manageability Considerations . . . . . . . . . . . . . . . . 19
7.2. Information and Data Models . . . . . . . . . . . . . . . 19 8.1. Control of Function and Policy . . . . . . . . . . . . . 19
7.3. Liveness Detection and Monitoring . . . . . . . . . . . . 19 8.2. Information and Data Models . . . . . . . . . . . . . . . 19
7.4. Verify Correct Operations . . . . . . . . . . . . . . . . 19 8.3. Liveness Detection and Monitoring . . . . . . . . . . . . 19
7.5. Requirements On Other Protocols . . . . . . . . . . . . . 19 8.4. Verify Correct Operations . . . . . . . . . . . . . . . . 19
7.6. Impact On Network Operations . . . . . . . . . . . . . . 19 8.5. Requirements On Other Protocols . . . . . . . . . . . . . 20
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 19 8.6. Impact On Network Operations . . . . . . . . . . . . . . 20
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 20
9.1. Normative References . . . . . . . . . . . . . . . . . . 20 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.2. Informative References . . . . . . . . . . . . . . . . . 20 10.1. Normative References . . . . . . . . . . . . . . . . . . 20
Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 22 10.2. Informative References . . . . . . . . . . . . . . . . . 21
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 23
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23
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 PCEP Extensions for Stateful PCE Model [RFC8231] describes a set of
extensions to PCEP to enable active control of MPLS-TE and GMPLS extensions to PCEP to enable active control of MPLS-TE and GMPLS
skipping to change at page 5, line 5 skipping to change at page 4, line 43
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 o 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 from different
head-end(s) and may terminate at the same or different tail-end(s). head-end(s) and may terminate at the same or different tail-end(s).
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 34 skipping to change at page 5, line 33
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 between CE1/CE2 and CE3/CE4. From an IP/MPLS two disjoint paths between CE1/CE2 and CE3/CE4. From an IP/MPLS
network point view, in this example, the CEs are connected to network point view, in this example, the CEs are connected to
different PEs to maximize their disjointness. When LSPs originate different PEs to maximize their disjointness. When LSPs originate
from different head-ends, distributed computation of diverse paths from different head-ends, distributed computation of diverse paths
can be difficult, whereas, computation via a centralized PCE ensures can be difficult, whereas, computation via a centralized PCE ensures
path disjointness, correctness and simplicity. path disjointness, correctness and simplicity.
Section 4.3 describes the relationship between the disjoint Section 5.3 describes the relationship between the disjoint
association group and Synchronization VECtor (SVEC) object. association group 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 PLSP-ID in the LSP object for identification. Moreover
to allow diversity between LSPs originating from different PCCs, the to allow diversity between LSPs originating from different PCCs, the
generic mechanism to create a grouping of LSPs is described in generic mechanism to create a grouping of LSPs is described in
[I-D.ietf-pce-association-group] (that is equally applicable to the [I-D.ietf-pce-association-group] (that is equally applicable to the
active and passive modes of a stateful PCE). active and passive modes of a stateful PCE).
skipping to change at page 7, line 11 skipping to change at page 7, line 11
session session
Using the disjoint-group within a PCEP messages may have two purpose: Using the disjoint-group within a PCEP messages may have two purpose:
o Configuration: Used to communicate the configured disjoint o 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 o Status: Used to communicate the status of the computed
disjointness. disjointness.
4. Protocol Extension 5. Protocol Extension
4.1. Association Group 5.1. Association Group
As per [I-D.ietf-pce-association-group], LSPs are associated with As per [I-D.ietf-pce-association-group], LSPs are associated with
other LSPs with which they interact by adding them to a common other LSPs with which they interact by adding them to a common
association group. The Association parameters, as described in association group. The Association parameters, as described in
[I-D.ietf-pce-association-group] as the combination of the mandatory [I-D.ietf-pce-association-group] as the combination of the mandatory
fields Association type, Association ID and Association Source in the fields Association type, Association ID and Association Source in the
ASSOCIATION object, that uniquely identify the association group ASSOCIATION object, that uniquely identify the association group
belonging to this association. If the optional TLVs - Global belonging to this association. If the optional TLVs - Global
Association Source or Extended Association ID - are included, then Association Source or Extended Association ID - are included, then
they are included in combination with mandatory fields to uniquely they are included in combination with mandatory fields to uniquely
skipping to change at page 8, line 20 skipping to change at page 8, line 20
polices MAY define the computational behavior for the other LSPs in polices MAY define the computational behavior for the other LSPs in
the group. For example, the PCE may provide no path, a shortest the group. For example, the PCE may provide no path, a shortest
path, or a constrained path based on relaxing disjointness, etc. The path, or a constrained path based on relaxing disjointness, etc. The
disjoint status is informed to the PCC. disjoint status is informed to the PCC.
Associating a particular LSP to multiple disjoint groups is Associating a particular LSP to multiple disjoint groups is
authorized from a protocol perspective, however there is no assurance authorized from a protocol perspective, however there is no assurance
that the PCE will be able to compute properly the multi-disjointness that the PCE will be able to compute properly the multi-disjointness
constraint. constraint.
4.2. Disjoint TLVs 5.2. Disjoint TLVs
The disjoint group MUST carry the following TLV: The disjoint group MUST carry the following TLV:
o DISJOINTNESS-CONFIGURATION-TLV: Used to communicate some o DISJOINTNESS-CONFIGURATION-TLV: Used to communicate some
disjointness configuration parameters. disjointness configuration parameters.
In addition, the disjoint group MAY carry the following TLV: In addition, the disjoint group MAY carry the following TLV:
o DISJOINTNESS-STATUS-TLV: Used to communicate the status of the o DISJOINTNESS-STATUS-TLV: Used to communicate the status of the
computed disjointness. This is applicable for messages from PCE computed disjointness. This is applicable for messages from PCE
to PCC (PCUpd, PCInitiate or PCRep message). to PCC (PCUpd, PCInitiate or PCRep message).
o VENDOR-INFORMATION-TLV: Used to communicate arbitrary vendor- o 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 o OF-List TLV: Used to communicate the disjointness objective
function. See Section 4.4. function. See Section 5.4.
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 = TBD2 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags |T|P|S|N|L| | Flags |T|P|S|N|L|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 9, line 38 skipping to change at page 9, line 38
2 with P=1, but LSP 2 with P=1 does not depend of LSP 1 with 2 with P=1, but LSP 2 with P=1 does not depend of LSP 1 with
P=0). Multiple LSPs in the same disjoint group may have the P P=0). Multiple LSPs in the same disjoint group may have the P
flag set. In such a case, those LSPs may not be disjoint from flag set. In such a case, those LSPs may not be disjoint from
each other but will be disjoint from others LSPs in the group each other but will be disjoint from others LSPs in the group
that have the P flag unset. that have the P flag unset.
* T (Strict disjointness) bit: when set, if disjoint paths cannot * T (Strict disjointness) bit: when set, if disjoint paths cannot
be found, PCE SHOULD return no path for LSPs that could not be be found, PCE SHOULD return no path for LSPs that could not be
be disjoint. When unset, the PCE is allowed to relax be disjoint. When unset, the PCE is allowed to relax
disjointness by either applying a requested objective function disjointness by either applying a requested objective function
(cf. Section 4.4 below) or using any other behavior if no (cf. Section 5.4 below) or using any other behavior if no
objective function is requested (e.g. using a lower disjoint objective function is requested (e.g. using a lower disjoint
type (link instead of node) or fully relaxing disjointness type (link instead of node) or fully relaxing disjointness
constraint). constraint). Further see Section 5.6 for details.
* Unassigned bits are considered reserved. They MUST be set to 0 * Unassigned bits are considered reserved. They MUST be set to 0
on transmission and MUST be ignored on receipt. on transmission and MUST be ignored on receipt.
If a PCEP speaker receives a disjoint-group without DISJOINTNESS- If a PCEP speaker receives a disjoint-group without DISJOINTNESS-
CONFIGURATION-TLV, it SHOULD reply with a PCErr Error-type=6 CONFIGURATION-TLV, it SHOULD reply with a PCErr Error-type=6
(Mandatory Object missing) and Error-value=TBD8 (DISJOINTNESS- (Mandatory Object missing) and Error-value=TBD8 (DISJOINTNESS-
CONFIGURATION-TLV 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 TBD3 (in the TLV). The L, N,
and S flags are set based if the computed path meet the disjointness and S flags are set based if the computed path meet the disjointness
criteria. The P flag is set to indicate that the computed path is criteria. The P flag is set to indicate that the computed path is
the shortest and the T flag has no meaning in the DISJOINTNESS- the shortest and the T flag has no meaning in the DISJOINTNESS-
STATUS-TLV and MUST NOT be set while sending and ignored on receipt. STATUS-TLV and MUST NOT be set while sending and ignored on receipt.
Any new flag defined for the DISJOINTNESS-CONFIGURATION-TLV is be Any new flag defined for the DISJOINTNESS-CONFIGURATION-TLV is be
automatically applicable to the DISJOINTNESS-STATUS-TLV. automatically applicable to the DISJOINTNESS-STATUS-TLV.
4.3. Relationship to SVEC 5.3. 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, that specifies
the list of synchronized requests that can either be dependent or the list of synchronized requests that can either be dependent or
independent. The SVEC object identify the relationship between the independent. The SVEC object identify 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 RP (Request Parameters) object. [RFC6007] further clarified the
use of the SVEC list for synchronized path computations when use of the SVEC list for synchronized path computations when
computing dependent requests as well as described a number of usage computing dependent requests as well as described a number of usage
scenarios for SVEC lists within single-domain and multi-domain scenarios for SVEC lists within single-domain and multi-domain
skipping to change at page 10, line 40 skipping to change at page 10, line 40
request as well as the diversity association group. The PCE MUST try request as well as the diversity association group. The PCE MUST try
to find a path that meets both the constraints. It is possible that to find a path that meets both the constraints. It is possible that
the diversity requirement in the association group is different from the diversity requirement in the association group is different from
the one in the SVEC object. The PCE would consider both the objects the one in the SVEC object. The PCE would consider both the objects
as per the processing rules and aim to find a path that meets both of as per the processing rules and aim to find a path that meets both of
these constraints. In case no such path is possible (or the these constraints. In case no such path is possible (or the
constraints are incompatible), the PCE MUST send a path computation constraints are incompatible), the PCE MUST send a path computation
reply (PCRep) with a NO-PATH object indicating path computation reply (PCRep) with a NO-PATH object indicating path computation
failure as per [RFC5440]. failure as per [RFC5440].
4.4. Disjointness Objective functions 5.4. 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 Group Object. Whereas the PCEP OF-List TLV allows
multiple OF-codes inside the TLV, a sender SHOULD include a single multiple OF-codes inside the TLV, a sender SHOULD include a single
OF-code in the OF-List TLV when included in the Association Group, OF-code in the OF-List TLV when included in the Association Group,
and the receiver MUST consider the first OF-code only and ignore and the receiver MUST consider the first OF-code only and ignore
others if included. others if included.
skipping to change at page 12, line 22 skipping to change at page 12, line 22
diversity as possible. diversity as possible.
o SVEC object with node-diverse bit=1 and OF=MSN - ensure full node- o 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.
4.5. P Flag Considerations 5.5. P Flag Considerations
As mentioned in Section 4.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 satisfies all constraints and
objective functions first without considering the diversity objective functions first without considering the diversity
constraint. This could be required in some primary/backup scenarios constraint. This could be required in some primary/backup scenarios
where the primary path should use the more optimal path available where the primary path should use the more optimal path available
(taking into account the other constraints). When disjointness is (taking into account the other constraints). When disjointness is
computed, it is important for the algorithm to know that it should computed, it is important for the algorithm to know that it should
try to optimize the path of one or more LSPs in the disjoint group try to optimize the path of one or more LSPs in the disjoint group
(for instance the primary path) while other paths are allowed to be (for instance the primary path) while other paths are allowed to be
costlier (compared to a similar path without the disjointness costlier (compared to a similar path without the disjointness
constraint). Without such a hint, the disjointness algorithm may set constraint). Without such a hint, the disjointness algorithm may set
skipping to change at page 15, line 15 skipping to change at page 15, line 15
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 disjointness. In our example, if picking up one path may prevent disjointness. In our example, if
path 2 is used for PE1->PE2, there is no room left for PE3->PE4 while 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. 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 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.
4.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 requested), if
disjointness cannot be ensured for one or more LSPs, the PCE MUST disjointness cannot be ensured for one or more LSPs, the PCE MUST
reply to a Path Computation Request (PCReq) with a Path Computation reply to a Path Computation Request (PCReq) with a Path Computation
Reply (PCRep) message containing a NO-PATH object. In case of Reply (PCRep) message containing a NO-PATH object. In case of other
network event leading to an impossible strict disjointness, the PCE PCEP message, the PCE MUST return a PCErr message with Error-Type 26
MUST send a PCUpd message containing an empty ERO to the "Association Error" and Error-Value 7 "Cannot join the association
corresponding PCCs. In addition to the empty ERO Object, the PCE MAY group". Also, in case of network event leading to an impossible
add the NO-PATH-VECTOR TLV ([RFC5440]) in the LSP Object. strict disjointness, the PCE MUST send a PCUpd message containing an
empty ERO to the corresponding PCCs. In addition 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 NO-PATH-VECTOR TLV:
bit "TBD7": when set, the PCE indicates that it could not find a bit "TBD7": 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 "TBD8": when set, the PCE indicates that it does not support
the requested disjointness computation. the requested disjointness computation.
When the T flag is unset, the PCE is allowed to reduce the required When the T flag is unset, the PCE is allowed to relax disjointness by
level of disjointness. The actual level of disjointness computed by either applying a requested objective function (Section 5.4) if
the PCE can be reported through the DISJOINTNESS-STATUS-TLV by specified. Otherwise the PCE is allowed to reduce the required level
setting the appropriate flags in the TLV. While the DISJOINTNESS- of disjointness (as it deems fit). The actual level of disjointness
CONFIGURATION-TLV defines the expected level of disjointness required computed by the PCE can be reported through the DISJOINTNESS-STATUS-
by configuration, the DISJOINTNESS-STATUS-TLV defines the actual TLV by setting the appropriate flags in the TLV. While the
level of disjointness computed. DISJOINTNESS-CONFIGURATION-TLV defines the expected level of
disjointness required by configuration, the DISJOINTNESS-STATUS-TLV
defines the actual level 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. consequence, it is considered as out of scope of the document.
All LSPs in a particular disjoint group MUST use the same combination All LSPs in a particular disjoint group MUST use the same combination
of T, S, N, L flags in the DISJOINTNESS-CONFIGURATION-TLV. If a PCEP of T, S, N, L flags in the DISJOINTNESS-CONFIGURATION-TLV. If a PCEP
peer receives a PCEP messages for LSPs belonging to the same disjoint peer receives a PCEP messages for LSPs belonging to the same disjoint
group but having an inconsistent combination of T, S, N, L flags, the group but having an inconsistent combination of T, S, N, L flags, the
PCEP peer SHOULD NOT try to add the LSPs in disjoint group and SHOULD PCEP peer SHOULD NOT try to add the LSPs in disjoint group and SHOULD
reply with a PCErr with Error-type 26 (Association Error) and Error- reply with a PCErr with Error-type 26 (Association Error) and Error-
Value 6 (Association information mismatch). Value 6 (Association information mismatch).
5. Security Considerations 6. Security Considerations
This document defines one new type for association, which does not This document defines one new type for association, which on itself
add any new security concerns beyond those discussed in [RFC5440], does not add any new security concerns beyond those discussed in
[RFC8231] and [I-D.ietf-pce-association-group] in itself. [RFC5440], [RFC8231] and [I-D.ietf-pce-association-group]. But,
adding of a spurious LSP into the disjointness association group
could lead to re-computation and set-up of all LSPs in the group,
that could be used to overwhelm the PCE and the network.
As stated in [I-D.ietf-pce-association-group], much of the Also, as stated in [I-D.ietf-pce-association-group], much of the
information carried in the Disjointness Association object, as per information carried in the Disjointness Association object, as per
this document is not extra sensitive. It often reflects information this document is not extra sensitive. It often reflects information
that can also be derived from the LSP Database, but association that can also be derived from the LSP Database, but association
provides a much easier grouping of related LSPs and messages. The provides a much easier grouping of related LSPs and messages. The
disjointness association could provide an adversary with the disjointness association could provide an adversary with the
opportunity to eavesdrop on the relationship between the LSPs. Thus opportunity to eavesdrop on the relationship between the LSPs.
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
[RFC7525], is RECOMMENDED. [RFC7525], is RECOMMENDED.
6. IANA Considerations 7. IANA Considerations
6.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 [I-D.ietf-pce-association-group]. IANA is requested to make the
assignment of a new value for the sub-registry "ASSOCIATION Type assignment of a new value for the sub-registry "ASSOCIATION Type
Field" (request to be created in [I-D.ietf-pce-association-group]), Field" (request to be created in [I-D.ietf-pce-association-group]),
as follows: as follows:
+------------------+-----------------------------+-------------+ +------------------+-----------------------------+-------------+
| Association type | Association Name | Reference | | Association type | Association Name | Reference |
+------------------+-----------------------------+-------------+ +------------------+-----------------------------+-------------+
| TBD1 | Disjoint-group Association | [This.I-D] | | TBD1 | Disjoint-group Association | [This.I-D] |
+------------------+-----------------------------+-------------+ +------------------+-----------------------------+-------------+
6.2. PCEP TLVs 7.2. PCEP TLVs
This document defines the following new PCEP TLVs and the IANA is This document defines the following new PCEP TLVs and the IANA is
requested to make the assignment of new values for the existing "PCEP requested to make the assignment of new values for the existing "PCEP
TLV Type Indicators" registry as follows: TLV Type Indicators" registry as follows:
+----------+---------------------------------+-------------+ +----------+---------------------------------+-------------+
| TLV Type | TLV Name | Reference | | TLV Type | TLV Name | Reference |
+----------+---------------------------------+-------------+ +----------+---------------------------------+-------------+
| TBD2 | Disjointness Configuration TLV | [This.I-D] | | TBD2 | Disjointness Configuration TLV | [This.I-D] |
| TBD3 | Disjointness Status TLV | [This.I-D] | | TBD3 | Disjointness Status TLV | [This.I-D] |
skipping to change at page 17, line 37 skipping to change at page 18, line 5
+------------+-------------------------+-------------+ +------------+-------------------------+-------------+
| 31 | L - Link Diverse | [This.I-D] | | 31 | L - Link Diverse | [This.I-D] |
| 30 | N - Node Diverse | [This.I-D] | | 30 | N - Node Diverse | [This.I-D] |
| 29 | S - SRLG Diverse | [This.I-D] | | 29 | S - SRLG Diverse | [This.I-D] |
| 28 | P - Shortest Path | [This.I-D] | | 28 | P - Shortest Path | [This.I-D] |
| 27 | T - Strict Disjointness | [This.I-D] | | 27 | T - Strict Disjointness | [This.I-D] |
+------------+-------------------------+-------------+ +------------+-------------------------+-------------+
Table 1: Disjointness Configuration TLV Table 1: Disjointness Configuration TLV
6.3. Objective Functions 7.3. Objective Functions
Three new Objective Functions have been defined in this document. Three new Objective Functions have been defined in this document.
IANA is requested to make the following allocations from the PCEP IANA is requested to make the following allocations from the PCEP
"Objective Function" sub-registry: "Objective Function" sub-registry:
+------------+----------------------------------------+-------------+ +------------+----------------------------------------+-------------+
| Code Point | Name | Reference | | Code Point | Name | Reference |
+------------+----------------------------------------+-------------+ +------------+----------------------------------------+-------------+
| TBD4 | Minimize the number of shared Links | [This.I-D] | | TBD4 | Minimize the number of shared Links | [This.I-D] |
| | (MSL) | | | | (MSL) | |
| TBD5 | Minimize the number of shared SRLGs | [This.I-D] | | TBD5 | Minimize the number of shared SRLGs | [This.I-D] |
| | (MSS) | | | | (MSS) | |
| TBD6 | Minimize the number of shared Nodes | [This.I-D] | | TBD6 | Minimize the number of shared Nodes | [This.I-D] |
| | (MSN) | | | | (MSN) | |
+------------+----------------------------------------+-------------+ +------------+----------------------------------------+-------------+
6.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 documents defines new bits for the NO-PATH-VECTOR TLV in the
"NO-PATH-VECTOR TLV Flag Field" sub-registry of the "Path Computation "NO-PATH-VECTOR TLV Flag Field" sub-registry of the "Path Computation
Element Protocol (PCEP) Numbers" registry. IANA is requested to make Element Protocol (PCEP) Numbers" registry. IANA is requested to make
the following allocation: the following allocation:
+------------+-----------------------------------------+------------+ +------------+-----------------------------------------+------------+
| Bit Number | Name | Reference | | Bit Number | Name | Reference |
+------------+-----------------------------------------+------------+ +------------+-----------------------------------------+------------+
| TBD7 | Disjoint path not found | [This.I-D] | | TBD7 | Disjoint path not found | [This.I-D] |
| TBD8 | Requested disjoint computation not | [This.I-D] | | TBD8 | Requested disjoint computation not | [This.I-D] |
| | supported | | | | supported | |
+------------+-----------------------------------------+------------+ +------------+-----------------------------------------+------------+
Table 2: NO-PATH-VECTOR TLV Table 2: NO-PATH-VECTOR TLV
6.5. PCEP-ERROR Codes 7.5. PCEP-ERROR Codes
This document defines new Error-Value within existing Error-Type This document defines new Error-Value within existing Error-Type
related to path protection association. IANA is requested to related to path protection association. IANA is requested to
allocate new error values within the "PCEP-ERROR Object Error Types allocate new error values within the "PCEP-ERROR Object Error Types
and Values" sub-registry of the PCEP Numbers registry, as follows: and Values" sub-registry of the PCEP Numbers registry, as follows:
+----------+-------------------------+------------------------------+ +----------+-------------------------+------------------------------+
| Error- | Meaning | Reference | | Error- | Meaning | Reference |
| Type | | | | Type | | |
+----------+-------------------------+------------------------------+ +----------+-------------------------+------------------------------+
skipping to change at page 18, line 45 skipping to change at page 19, line 21
| | Error-value=TBD8: | [This.I-D] | | | Error-value=TBD8: | [This.I-D] |
| | DISJOINTNESS- | | | | DISJOINTNESS- | |
| | CONFIGURATION TLV | | | | CONFIGURATION TLV | |
| | missing | | | | missing | |
| 10 | Reception of an invalid | [RFC5440] | | 10 | Reception of an invalid | [RFC5440] |
| | object | | | | object | |
| | Error-value=TBD9: | [This.I-D] | | | Error-value=TBD9: | [This.I-D] |
| | Incompatible OF code | | | | Incompatible OF code | |
+----------+-------------------------+------------------------------+ +----------+-------------------------+------------------------------+
7. Manageability Considerations 8. Manageability Considerations
7.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 disjointness
association groups and disjoint parameters at the PCEP peers and association groups and disjoint parameters at the PCEP peers and
associate it with the LSPs. The Operator-configured Association associate it with the LSPs. The Operator-configured Association
Range MUST be allowed to be set by the operator. Operator SHOULD be Range MUST be allowed to be set by the operator. Operator SHOULD be
allowed to set the local policies to define various disjoint allowed to set the local policies to define various disjoint
computational behavior at the PCE. computational behavior at the PCE.
7.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. Further associations configured or created dynamically. Further
implementation SHOULD allow to view disjoint associations reported by implementation SHOULD allow to view disjoint associations reported by
each peer, and the current set of LSPs in this association. The PCEP each peer, and the current set of LSPs in this association. The PCEP
YANG module [I-D.ietf-pce-pcep-yang] includes association groups YANG module [I-D.ietf-pce-pcep-yang] includes association groups
information. information.
7.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].
7.4. Verify Correct Operations 8.4. Verify Correct Operations
Mechanisms defined in this document do not imply any new operation Mechanisms defined in this document do not imply any new operation
verification requirements in addition to those already listed in verification requirements in addition to those already listed in
[RFC5440]. [RFC5440].
7.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.
7.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 [RFC5440], Section 8.6 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 disjoint association group. LSPs that can belong to a disjoint association group.
8. Acknowledgments 9. Acknowledgments
A special thanks to authors of [I-D.ietf-pce-association-group], this 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 document borrow some of the text from it. Authors would also like to
thank Adrian Farrel and Julien Meuric for the valuable comments. thank Adrian Farrel and Julien Meuric for the valuable comments.
9. References Thanks to Emmanuel Baccelli for RTGDIR reviews.
9.1. Normative References
10. References
10.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 [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26, Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017, RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>. <https://www.rfc-editor.org/info/rfc8126>.
skipping to change at page 20, line 39 skipping to change at page 21, line 13
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>.
[I-D.ietf-pce-association-group] [I-D.ietf-pce-association-group]
Minei, I., Crabbe, E., Sivabalan, S., Ananthakrishnan, H., Minei, I., Crabbe, E., Sivabalan, S., Ananthakrishnan, H.,
Dhody, D., and Y. Tanaka, "PCEP Extensions for Dhody, D., and Y. Tanaka, "Path Computation Element
Establishing Relationships Between Sets of LSPs", draft- Communication Protocol (PCEP) Extensions for Establishing
ietf-pce-association-group-09 (work in progress), April Relationships Between Sets of Label Switched Paths
2019. (LSPs)", draft-ietf-pce-association-group-10 (work in
progress), August 2019.
9.2. Informative References 10.2. Informative References
[RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation
Element (PCE)-Based Architecture", RFC 4655, 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>.
skipping to change at page 21, line 37 skipping to change at page 22, line 9
[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] [I-D.ietf-pce-pcep-yang]
Dhody, D., Hardwick, J., Beeram, V., and J. Tantsura, "A Dhody, D., Hardwick, J., Beeram, V., and J. Tantsura, "A
YANG Data Model for Path Computation Element YANG Data Model for Path Computation Element
Communications Protocol (PCEP)", draft-ietf-pce-pcep- Communications Protocol (PCEP)", draft-ietf-pce-pcep-
yang-11 (work in progress), March 2019. yang-12 (work in progress), July 2019.
Appendix A. Contributor Addresses Appendix A. Contributor Addresses
Dhruv Dhody Dhruv Dhody
Huawei Technologies Huawei Technologies
Divyashree Techno Park, Whitefield Divyashree Techno Park, Whitefield
Bangalore, Karnataka 560066 Bangalore, Karnataka 560066
India India
EMail: dhruv.ietf@gmail.com EMail: dhruv.ietf@gmail.com
skipping to change at page 22, line 41 skipping to change at page 23, line 41
Juniper Networks Juniper Networks
EMail: cbarth@juniper.net EMail: cbarth@juniper.net
Mahendra Singh Negi Mahendra Singh Negi
Huawei Technologies Huawei Technologies
Divyashree Techno Park, Whitefield Divyashree Techno Park, Whitefield
Bangalore, Karnataka 560066 Bangalore, Karnataka 560066
India India
EMail: mahendrasingh@huawei.com EMail: mahend.ietf@gmail.com
 End of changes. 43 change blocks. 
84 lines changed or deleted 99 lines changed or added

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