idnits 2.17.1 draft-ietf-pce-association-diversity-06.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (February 3, 2019) is 1909 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-10) exists of draft-ietf-pce-association-group-07 -- Obsolete informational reference (is this intentional?): RFC 7525 (Obsoleted by RFC 9325) Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 PCE Working Group S. Litkowski 3 Internet-Draft Orange 4 Intended status: Standards Track S. Sivabalan 5 Expires: August 7, 2019 Cisco Systems, Inc. 6 C. Barth 7 Juniper Networks 8 M. Negi 9 Huawei Technologies 10 February 3, 2019 12 Path Computation Element communication Protocol (PCEP) extension for 13 signaling LSP diversity constraint 14 draft-ietf-pce-association-diversity-06 16 Abstract 18 This document introduces a simple mechanism to associate a group of 19 Label Switched Paths (LSPs) via an extension to the Path Computation 20 Element (PCE) Communication Protocol (PCEP) with the purpose of 21 computing diverse paths for those LSPs. The proposed extension 22 allows a Path Computation Client (PCC) to advertise to a PCE that a 23 particular LSP belongs to a disjoint-group, thus the PCE knows that 24 LSPs in the same group needs to be disjoint from each other. 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at https://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on August 7, 2019. 43 Copyright Notice 45 Copyright (c) 2019 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (https://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 61 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 62 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 63 3. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 4 64 4. Protocol extension . . . . . . . . . . . . . . . . . . . . . 7 65 4.1. Association group . . . . . . . . . . . . . . . . . . . . 7 66 4.2. Disjoint TLVs . . . . . . . . . . . . . . . . . . . . . . 9 67 4.3. Disjointness objective functions . . . . . . . . . . . . 10 68 4.4. P-flag considerations . . . . . . . . . . . . . . . . . . 12 69 4.5. Disjointness computation issues . . . . . . . . . . . . . 14 70 5. Security Considerations . . . . . . . . . . . . . . . . . . . 15 71 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 72 6.1. Association object Type Indicators . . . . . . . . . . . 16 73 6.2. PCEP TLVs . . . . . . . . . . . . . . . . . . . . . . . . 16 74 6.3. Objective Functions . . . . . . . . . . . . . . . . . . . 16 75 6.4. NO-PATH-VECTOR bit Flags . . . . . . . . . . . . . . . . 17 76 6.5. PCEP-ERROR codes . . . . . . . . . . . . . . . . . . . . 17 77 7. Manageability Considerations . . . . . . . . . . . . . . . . 17 78 7.1. Control of Function and Policy . . . . . . . . . . . . . 17 79 7.2. Information and Data Models . . . . . . . . . . . . . . . 17 80 7.3. Liveness Detection and Monitoring . . . . . . . . . . . . 17 81 7.4. Verify Correct Operations . . . . . . . . . . . . . . . . 18 82 7.5. Requirements On Other Protocols . . . . . . . . . . . . . 18 83 7.6. Impact On Network Operations . . . . . . . . . . . . . . 18 84 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 85 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 86 9.1. Normative References . . . . . . . . . . . . . . . . . . 18 87 9.2. Informative References . . . . . . . . . . . . . . . . . 19 88 Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 21 89 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 91 1. Introduction 93 [RFC5440] describes the Path Computation Element communication 94 Protocol (PCEP) which enables the communication between a Path 95 Computation Client (PCC) and a Path Control Element (PCE), or between 96 two PCEs based on the PCE architecture [RFC4655]. 98 PCEP Extensions for Stateful PCE Model [RFC8231] describes a set of 99 extensions to PCEP to enable active control of MPLS-TE and GMPLS 100 tunnels. [RFC8281] describes the setup and teardown of PCE-initiated 101 LSPs under the active stateful PCE model, without the need for local 102 configuration on the PCC, thus allowing for a dynamic network. 104 [I-D.ietf-pce-association-group] introduces a generic mechanism to 105 create a grouping of LSPs which can then be used to define 106 associations between a set of LSPs and a set of attributes (such as 107 configuration parameters or behaviors) and is equally applicable to 108 the active and passive modes of a stateful PCE [RFC8231] or a 109 stateless PCE [RFC5440]. 111 This document specifies a PCEP extension to signal that a particular 112 group of LSPs should use diverse paths including the requested type 113 of diversity. A PCC can use this extension to signal to a PCE that a 114 particular LSP belongs to a disjoint-group. When a PCE receives LSP 115 states belonging to the same disjoint-group from some PCCs, the PCE 116 should ensure that the LSPs within the group are disjoint from each 117 other. 119 1.1. Requirements Language 121 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 122 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 123 "OPTIONAL" in this document are to be interpreted as described in BCP 124 14 [RFC2119] [RFC8174] when, and only when, they appear in all 125 capitals, as shown here. 127 2. Terminology 129 The following terminology is used in this document. 131 LSR: Label Switch Router. 133 MPLS: Multiprotocol Label Switching. 135 PCC: Path Computation Client. Any client application requesting a 136 path computation to be performed by a Path Computation Element. 138 PCE: Path Computation Element. An entity (component, application, 139 or network node) that is capable of computing a network path or 140 route based on a network graph and applying computational 141 constraints. 143 PCEP: Path Computation Element Communication Protocol. 145 SRLG: Shared Risk Link Group. 147 3. Motivation 149 Path diversity is a very common use case in today's IP/MPLS networks 150 especially for layer 2 transport over MPLS. A customer may request 151 that the operator provide two end-to-end disjoint paths across the 152 IP/MPLS core. The customer may use those paths as primary/backup or 153 active/active. 155 Different level of disjointness may be offered: 157 o Link disjointness: the paths of the associated LSPs should transit 158 different links (but may use common nodes or different links that 159 may have some shared fate). 161 o Node disjointness: the paths of the associated LSPs should transit 162 different nodes (but may use different links that may have some 163 shared fate). 165 o SRLG disjointness: the paths of the associated LSPs should transit 166 different links that do not share fate (but may use common transit 167 nodes). 169 o Node+SRLG disjointness: the paths of the associated LSPs should 170 transit different links that do not have any common shared fate 171 and should transit different nodes. 173 The associated LSPs may originate from the same or from different 174 head-end(s) and may terminate at the same or different tail-end(s). 176 _________________________________________ 177 / \ 178 / +------+ \ 179 | | PCE | | 180 | +------+ | 181 | | 182 | ***********************> | 183 | +------+ 10 +------+ | 184 CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 185 | +------+ | | +------+ | 186 | | | | 187 | | | | 188 | +------+ | | +------+ | 189 CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 190 | +------+ ***********************> +------+ | 191 | | 192 \ / 193 \_________________________________________/ 195 Figure 1 - Disjoint paths with different head-ends and tail-ends 197 In the figure above, consider that the customer wants to have two 198 disjoint paths between CE1/CE2 and CE3/CE4. From an IP/MPLS network 199 point view, in this example, the CEs are connected to different PEs 200 to maximize their disjointness. When LSPs originate from different 201 head-ends, distributed computation of diverse paths can be difficult. 202 Whereas, computation via a centralized PCE ensures path disjointness 203 correctness and simplicity. 205 [RFC5440] defines a mechanism for the synchronization of a set of 206 path computation requests by using the SVEC (Synchronization VECtor) 207 object, that specifies the list of synchronized requests that can 208 either be dependent or independent. The SVEC object identify the 209 relationship between the set of path computation requests, identified 210 by 'Request-ID-number' in RP (Request Parameters) object. [RFC6007] 211 further clarified the use of the SVEC list for synchronized path 212 computations when computing dependent requests as well as described a 213 number of usage scenarios for SVEC lists within single-domain and 214 multi-domain environments. 216 The SVEC object includes a Flags field that indicates the potential 217 dependency between the set of path computation request in a similar 218 way as the Flags field in the TLVs defined in this document. The 219 path computation request in the PCReq message MAY use both SVEC 220 object to identify the related path computation request as well as to 221 identify the diversity association group. The PCE MUST try to find a 222 path that meets both the constraints. It is possible that the 223 diversity set in the association group is different from the one in 224 SVEC object, this might be true for the same LSP as well. The PCE 225 would consider both the objects as per the processing rules and aim 226 to find a path that meets both these constraints. In case no such 227 path is possible (or the constraints are incompatible), the PCE MUST 228 send a path computation reply (PCRep) with NO-PATH object indicating 229 path computation failure as per [RFC5440]. 231 The PCEP extension for stateful PCE [RFC8231] defined new PCEP 232 messages - PCRpt, PCUpd and PCInitiate [RFC8281]. These messages 233 uses PLSP-ID in the LSP object for identification. Moreover to allow 234 diversity between LSPs originating from different PCCs, the generic 235 mechanism to create a grouping of LSPs is described in 236 [I-D.ietf-pce-association-group] (that is equally applicable to the 237 active and passive modes of a stateful PCE). 239 Using PCEP, the PCC could indicate that the disjoint path computation 240 is required, such indication should include disjointness parameters 241 such as the type of disjointness, the disjoint group identifiers, and 242 any customization parameters according to the configured local 243 policy. As mentioned previously, the extension described in 244 [I-D.ietf-pce-association-group] is well suited to associate a set of 245 LSPs with a particular disjoint-group. 247 The management of the disjoint group-ids will be a key point for the 248 operator as the Association ID field is limited to 65535. The local 249 configuration of IPv4/IPv6 association source, or Global Association 250 Source/Extended Association ID should allow to overcome this 251 limitation as described in [I-D.ietf-pce-association-group]. When a 252 PCC or PCE initiates all the LSPs in a particular disjoint-group, it 253 can set the IPv4/IPv6 association source as one of its own IP 254 address. When disjoint LSPs are initiated from different head-ends, 255 association source could be the PCE address or any other unique value 256 to identify the disjoint association group. 258 Initiate Disjoint LSPs 259 | 260 | PCReq/PCRpt 261 V {Disjoint-group Y} 262 +-----+ ----------------> +-----+ 263 _ _ _ _ _ _| PCE | | | PCE | 264 | +-----+ | ----------> +-----+ 265 | PCInitiate | | PCReq/PCRpt 266 |{Disjoint-group X} | | {Disjoint-group Y} 267 | | | 268 | .-----. | | .-----. 269 | ( ) | +----+ ( ) 270 | .--( )--. | |PE 1|--.--( )--. 271 V ( ) | +----+ ( ) 272 +---+ ( ) | ( ) 273 |PCC|----( (G)MPLS network ) +----+ ( (G)MPLS network ) 274 +---+ ( ) |PE 3|-----( ) 275 Disjoint-group X ) +----+ ( ) 276 '--( )--' '--( )--' 277 ( ) ( ) 278 '-----' '-----' 280 Case 1: Disjointness initiated by Case 2: Disjointness initiated by 281 PCE and enforced by PCC PCC and enforced by PCE 283 Figure 2 - Sample use-cases for carrying disjoint-group over PCEP 284 session 286 Using the disjoint-group within a PCEP messages may have two purpose: 288 o Information: in case the PCE is performing the path computation, 289 it may communicate to the PCC the disjoint parameters. 291 o Configuration: in case the PCC are configured with disjoint 292 requirements, these are communicated to the PCE. 294 4. Protocol extension 296 4.1. Association group 298 As per [I-D.ietf-pce-association-group], LSPs are associated with 299 other LSPs with which they interact by adding them to a common 300 association group. The Association parameters, as described in 301 [I-D.ietf-pce-association-group] as the combination of the mandatory 302 fields Association type, Association ID and Association Source in the 303 ASSOCIATION object, that uniquely identify the association group, 304 uniquely identify the disjoint group. If the optional TLVs - Global 305 Association Source or Extended Association ID are included, then they 306 are included in combination with mandatory fields to uniquely 307 identifying the association group. This document defines a new 308 Association type, based on the generic Association object - 310 o Association type = TBD1 ("Disjointness Association Type") for 311 Disjoint Association Group (DAG). 313 [I-D.ietf-pce-association-group] specify the mechanism for the 314 capability advertisement of the association types supported by a PCEP 315 speaker by defining a ASSOC-Type-List TLV to be carried within an 316 OPEN object. This capability exchange for the association type 317 described in this document (i.e. Disjointness Association Type) MUST 318 be done before using the disjointness association. Thus the PCEP 319 speaker MUST include the Disjointness Association Type (TBD1) in the 320 ASSOC-Type-List TLV before using the disjoint association group (DAG) 321 in the PCEP messages. 323 This association type is considered to be both dynamic and operator- 324 configured in nature. The association group could be created by the 325 operator manually on the PCEP peers and the LSPs belonging to this 326 associations is conveyed via PCEP messages to the PCEP peer; or the 327 association group could be created dynamically by the PCEP speaker 328 and both the association group information and the LSPs belonging to 329 the association group is conveyed to the PCEP peer. The Operator- 330 configured Association Range MUST be set for this association-type to 331 mark a range of association identifiers that are used for operator- 332 configured associations to avoid any association identifier clash 333 within the scope of the association source. (Refer 334 [I-D.ietf-pce-association-group].) 336 A disjoint group can have two or more LSPs. But a PCE may be limited 337 in how many LSPs it can take into account when computing 338 disjointness. If a PCE receives more LSPs in the group than it can 339 handle in its computation algorithm, it SHOULD apply disjointness 340 computation to only a subset of LSPs in the group. The subset of 341 disjoint LSPs will be decided by PCE as a local matter. 343 Local polices on the PCC or PCE MAY define the computational behavior 344 for the other LSPs in the group. For example, the PCE may provide no 345 path, a shortest path, or a constrained path based on relaxing 346 disjointness, etc. 348 Associating a particular LSP to multiple disjoint groups is 349 authorized from a protocol perspective, however there is no insurance 350 that the PCE will be able to compute properly the multi-disjointness 351 constraint. 353 4.2. Disjoint TLVs 355 The disjoint group MUST carry the following TLV: 357 o DISJOINTNESS-CONFIGURATION-TLV: Used to communicate some 358 disjointness configuration parameters. 360 In addition, the disjoint group MAY carry the following TLV: 362 o DISJOINTNESS-STATUS-TLV: Used to communicate the status of the 363 computed disjointness. This is applicable for messages from PCE 364 to PCC (PCUpd, PCInitiate or PCRep message). 366 o VENDOR-INFORMATION-TLV: Used to communicate arbitrary vendor 367 specific behavioral information, described in [RFC7470]. 369 The DISJOINTNESS-CONFIGURATION-TLV is shown in the following figure: 371 0 1 2 3 372 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 373 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 374 | Type = TBD2 | Length | 375 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 376 | Flags |T|P|S|N|L| 377 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 379 Type: TBD2. 381 Length: Fixed value of 4 bytes. 383 Flags: 385 * L (Link diverse) bit: when set, this indicates that the 386 computed paths within the disjoint group MUST NOT have any link 387 in common. 389 * N (Node diverse) bit: when set, this indicates that the 390 computed paths within the disjoint group MUST NOT have any node 391 in common. 393 * S (SRLG diverse) bit: when set, this indicates that the 394 computed paths within the disjoint group MUST NOT share any 395 SRLG (Shared Risk Link Group). 397 * P (Shortest path) bit: when set, this indicates that the 398 computed path of the LSP SHOULD satisfies all constraints and 399 objective functions first without considering the diversity 400 constraint. This means that an LSP with P flag set should be 401 placed as if the disjointness constraint has not been 402 configured, while the other LSP in the association with P flag 403 unset should be placed by taking into account the disjointness 404 constraint. Setting P flag changes the relationship between 405 LSPs to a unidirectional relationship (LSP 1 with P=0 depends 406 of LSP 2 with P=1, but LSP 2 with P=1 does not depend of LSP 1 407 with P=0). 409 * T (Strict disjointness) bit: when set, if disjoint paths cannot 410 be found, PCE should return no path for LSPs that could not be 411 be disjoint. When unset, PCE is allowed to relax disjointness 412 by using either applying a requested objective function or any 413 other behavior if no objective function is requested (e.g.: 414 using a lower disjoint type (link instead of node) or relaxing 415 disjointness constraint at all). 417 If a PCEP speaker receives a disjoint-group without DISJOINTNESS- 418 CONFIGURATION-TLV, it SHOULD reply with a PCErr Error-type=6 419 (Mandatory Object missing) and Error-value=TBD7 (DISJOINTNESS- 420 CONFIGURATION-TLV missing). 422 The DISJOINTNESS-STATUS-TLV uses the same format as the DISJOINTNESS- 423 CONFIGURATION-TLV with a different type TBD3 (in TLV): 425 Any new flag defined for the DISJOINTNESS-CONFIGURATION-TLV is be 426 automatically applicable to the DISJOINTNESS-STATUS-TLV. 428 4.3. Disjointness objective functions 430 An objective function (OF) MAY be applied to the disjointness 431 computation to drive the PCE computation behavior. In this case, the 432 OF-List TLV (defined in ([RFC5541]) is used as an optional TLV in the 433 Association Group Object. The PCEP OF-List TLV allow multiple OF- 434 Codes inside the TLV, a sender SHOULD include a single OF-Code in the 435 OF-List TLV when included in the Association Group, and the receiver 436 MUST consider the first OF-code only and ignore others if included. 438 To minimize the common shared resources (Node, Link or SRLG) between 439 a set of paths during path computation three new OF codes are 440 proposed: 442 MSL 444 * Name: Minimize the number of shared (common) Links. 446 * Objective Function Code: TBD4 447 * Description: Find a set of paths such that it passes through the 448 least number of shared (common) links. 450 MSS 452 * Name: Minimize the number of shared (common) SRLGs. 454 * Objective Function Code: TBD5 456 * Description: Find a set of paths such that it passes through the 457 least number of shared (common) SRLGs. 459 MSN 461 * Name: Minimize the number of shared (common) Nodes. 463 * Objective Function Code: TBD6 465 * Description: Find a set of paths such that it passes through the 466 least number of shared (common) nodes. 468 [RFC5440] uses SVEC diversity flag for node, link or SRLG to describe 469 the potential disjointness between the set of path computation 470 requests used in PCEP protocol. 472 This document defines three new OF codes to maximize diversity as 473 much as possible, in other words, minimize the common shared 474 resources (Node,Link or SRLG) between a set of paths. 476 It may be interesting to note that the diversity flags in the SVEC 477 object and OF for diversity can be used together. Some example of 478 usage are listed below - 480 o SVEC object with node-diverse bit=1 - ensure full node-diversity. 482 o SVEC object with node-diverse bit=1 and OF=MSS - full node diverse 483 with as much as SRLG-diversity as possible. 485 o SVEC object with domain-diverse bit=1;link diverse bit=1 and 486 OF=MSS - full domain and node diverse path with as much as SRLG- 487 diversity as possible. 489 o SVEC object with node-diverse bit=1 and OF=MSN - ensure full node- 490 diversity. 492 4.4. P-flag considerations 494 As mentioned in Section 4.2, the P-flag (when set) indicates that the 495 computed path of the LSP SHOULD satisfies all constraints and 496 objective functions first without considering the diversity 497 constraint. This could be required in some primary/backup scenarios 498 where the primary path should use the more optimal path available 499 (taking into account the other constraints). When disjointness is 500 computed, it is important for the algorithm to know that it should 501 try to optimize the path of one or more LSPs in the disjoint group 502 (for instance the primary path) while other paths are allowed to be 503 longer (compared to a similar path without the disjointness 504 constraint). Without such a hint, the disjointness algorithm may set 505 a path for all LSPs that may not completely fulfill the customer 506 requirement. 508 _________________________________________ 509 / \ 510 / +------+ \ 511 | | PCE | | 512 | +------+ | 513 | | 514 | | 515 | +------+ 10 +------+ | 516 CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 517 | +------+ | | +------+ | 518 | | | | 519 | | | | 520 | +------+ | | +------+ | 521 CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 522 | +------+ \ | / +------+ | 523 | \ | 10 / | 524 \ +-- R5 --------- R6 / 525 \_________________________________________/ 527 Figure 3 529 In the figure above, a customer has two dual homed sites (CE1/CE3 and 530 CE2/CE4). Consider, this customer wants two disjoint paths between 531 the two sites. Due to physical meshing, the customer wants to use 532 CE1 and CE2 as primary ( and CE3 and CE4 are hosted in a remote site 533 for redundancy purpose). 535 Without any hint (constraint) provided, the PCE may compute the two 536 disjoint LSPs together, leading to PE1->PE2 using a path 537 PE1->R1->R2->PE2 and PE3->PE4 using PE3->R3->R4->PE4. In this case, 538 even if the disjointness constraint is fulfilled, the path from PE1 539 to PE2 does not use the best optimal path available in the network 540 (RTD may be higher): the customer requirement is thus not completely 541 fulfilled. 543 The usage of the P-Flag allows the PCE to know that a particular LSP 544 should be tied to the best path as if the disjointness constraint was 545 not requested. 547 In our example, if the P-Flag is set to the LSP PE1->PE2, the PCE 548 should use the path PE1->R1->R3->R4->R2->PE2 for this LSP, while the 549 other LSP should be disjoint from this path. The second LSP will be 550 placed on PE3->R5->R6->PE4 as it is allowed to be longer. 552 Driving the PCE disjointness computation may be done in other ways by 553 for instance setting a metric boundary reflecting an RTD boundary. 554 Other constraints may also be used. 556 The P-Flag allows a simple expression that the disjointness 557 constraint should not make the LSP worst. 559 Any constraint added to a path disjointness computation may reduce 560 the chance to find suitable paths. The usage of the P-flag, as any 561 other constraint, may prevent to find a disjoint path. In the 562 example above, if we consider that the router R5 is down, if PE1->PE2 563 has the P-flag set, there is no room available to place PE3->PE4 (the 564 disjointness constraint cannot be fulfilled). If PE->PE2 has the 565 P-flag unset, the algorithm may be able to place PE1->PE2 on R1->R2 566 link leaving a room for PE3->PE4 using the R3->R4 link. When using 567 P-flag or any additional constraint on top of the disjointness 568 constraint, the user should be aware that there is less chance to 569 fulfill the disjointness constraint. 571 Multiple LSPs in the same disjoint group may have the P-flag set. In 572 such a case, those LSPs may not be disjoint from each other but will 573 be disjoint from others LSPs in the group that have the P-flag unset. 575 _________________________________________ 576 / \ 577 / +------+ \ 578 | | PCE | | 579 | +------+ | 580 | | 581 | | 582 | +------+ 10 +------+ | 583 CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 584 | +------+ | \ | +------+ | 585 | | \2 | | 586 | | \ | | 587 | +------+ | \ | +------+ | 588 CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 589 | +------+ +------+ | 590 | | 591 \ / 592 \_________________________________________/ 594 Figure 4 596 In the figure above, we still consider the same previous 597 requirements, so PE1->PE2 LSP should be optimized (P-flag set) while 598 PE3->PE4 should be disjoint and may use a longer path. 600 Regarding PE1->PE2, there are two paths that are satisfying the 601 constraints (ECMP): PE1->R1->R4->R2->PE2 (path 1) and 602 PE1->R1->R3->R4->R2->PE2 (path 2). An implementation may choose one 603 of the paths or even use both (using both may happen in case Segment 604 Routing TE is used, allowing ECMP). 606 If the implementation elects only one path, there is a chance that 607 picking up one path may prevent disjointness. In our example, if 608 path 2 is used for PE1->PE2, there is no room left for PE3->PE4 while 609 if path 1 is used, PE3->PE4 can be placed on R3->R4 link. 611 When P-flag is set for an LSP and when ECMPs are available, an 612 implementation MAY select a path that allows disjointness. 614 4.5. Disjointness computation issues 616 There may be some cases where the PCE is not able to provide a set of 617 disjoint paths for one or more LSPs in the association. 619 When the T-bit is set (Strict disjointness requested), if 620 disjointness cannot be ensured for one or more LSPs, the PCE SHOULD 621 reply with a PCUpd message containing an empty ERO. In addition to 622 the empty ERO Object, the PCE MAY add the NO-PATH-VECTOR TLV 623 ([RFC5440]) in the LSP Object. 625 This document adds new bits in the NO-PATH-VECTOR TLV: 627 bit "TBD7": when set, the PCE indicates that it could not find a 628 disjoint path for this LSP. 630 bit "TBD8": when set, the PCE indicates that it does not support 631 the requested disjointness computation. 633 When the T-bit is unset, the PCE is allowed to reduce the required 634 level of disjointness. The actual level of disjointness computed by 635 the PCE can be reported through the DISJOINTNESS-STATUS-TLV by 636 setting the appropriate flags in the TLV. While the DISJOINTNESS- 637 CONFIGURATION-TLV defines the expected level of disjointness required 638 by configuration, the DISJOINTNESS-STATUS-TLV defines the actual 639 level of disjointness computed. 641 There are some cases where the PCE may need to completely relax the 642 disjointness constraint in order to provide a path to all the LSPs 643 that are part of the association. A mechanism that allows the PCE to 644 fully relax a constraint is considered by the authors as more global 645 to PCEP rather than linked to the disjointness use case. As a 646 consequence, it is considered as out of scope of the document. 648 All LSPs in a particular disjoint group MUST use the same combination 649 of T,S,N,L flags in the DISJOINTNESS-CONFIGURATION-TLV. If a PCE 650 receives PCRpt messages for LSPs belonging to the same disjoint group 651 but having an inconsistent combination of T,S,N,L flags, the PCE 652 SHOULD NOT try to compute disjointness path and SHOULD reply a PCErr 653 with Error-type 26 (Association Error) and Error-Value 6 (Association 654 information mismatch) to all PCCs involved in the disjoint group. 656 5. Security Considerations 658 This document defines one new type for association, which do not add 659 any new security concerns beyond those discussed in [RFC5440], 660 [RFC8231] and [I-D.ietf-pce-association-group] in itself. 662 As stated in [I-D.ietf-pce-association-group], much of the 663 information carried in the Disjointness Association object, as per 664 this document is not extra sensitive. It often reflects information 665 that can also be derived from the LSP Database, but association 666 provides a much easier grouping of related LSPs and messages. The 667 disjointness association could provides an adversary with the 668 opportunity to eavesdrop on the relationship between the LSPs. Thus 669 securing the PCEP session using Transport Layer Security (TLS) 671 [RFC8253], as per the recommendations and best current practices in 672 [RFC7525], is RECOMMENDED. 674 6. IANA Considerations 676 6.1. Association object Type Indicators 678 This document defines the following new association type originally 679 defined in [I-D.ietf-pce-association-group]. 681 Value Name Reference 683 TBD1 Disjoint-group 684 Association Type [This I.D.] 686 6.2. PCEP TLVs 688 This document defines the following new PCEP TLVs: 690 Value Name Reference 692 TBD2 DISJOINTNESS-CONFIGURATION-TLV [This I.D.] 693 TBD3 DISJOINTNESS-STATUS-TLV [This I.D.] 695 IANA is requested to manage the space of flags carried in the 696 DISJOINTNESS-CONFIGURATION-TLV defined in this document, numbering 697 them from 0 as the least significant bit. 699 New bit numbers may be allocated in future. 701 IANA is requested to allocate the following bit numbers in the 702 DISJOINTNESS-CONFIGURATION-TLV flag space: 704 Bit Number Name Reference 705 0 Link disjointness [This I.D.] 706 1 Node disjointness [This I.D.] 707 2 SRLG disjointness [This I.D.] 708 3 Shortest-path [This I.D.] 709 4 Strict disjointness [This I.D.] 711 6.3. Objective Functions 713 three new Objective Functions have been defined. IANA has made the 714 following allocations from the PCEP "Objective Function" sub- 715 registry: 717 Value Description Reference 718 TBD4 MSL [This I.D.] 719 TBD5 MSN [This I.D.] 720 TBD6 MSS [This I.D.] 722 6.4. NO-PATH-VECTOR bit Flags 724 This documents defines new bits for the NO-PATH-VECTOR TLV in the 725 "NO-PATH-VECTOR TLV Flag Field" sub-registry of the "Path Computation 726 Element Protocol (PCEP) Numbers" registry: 728 Bit Number Name Reference 729 TBD7 Disjoint path not found [This I.D.] 731 TBD8 Requested disjointness [This I.D.] 732 computation not supported 734 6.5. PCEP-ERROR codes 736 IANA is requested to allocate new Error Types and Error Values within 737 the " PCEP-ERROR Object Error Types and Values" sub-registry of the 738 PCEP Numbers registry, as follows: 740 Error-Type Meaning 741 6 Mandatory Object missing 742 Error-value=TBD7: DISJOINTNESS-CONFIGURATION 743 TLV missing 745 7. Manageability Considerations 747 7.1. Control of Function and Policy 749 An operator MUST be allowed to configure the disjointness 750 associations and parameters at PCEP peers and associate it with the 751 LSPs. 753 7.2. Information and Data Models 755 [RFC7420] describes the PCEP MIB, there are no new MIB Objects for 756 this document. 758 7.3. Liveness Detection and Monitoring 760 Mechanisms defined in this document do not imply any new liveness 761 detection and monitoring requirements in addition to those already 762 listed in [RFC5440]. 764 7.4. Verify Correct Operations 766 Mechanisms defined in this document do not imply any new operation 767 verification requirements in addition to those already listed in 768 [RFC5440]. 770 7.5. Requirements On Other Protocols 772 Mechanisms defined in this document do not imply any new requirements 773 on other protocols. 775 7.6. Impact On Network Operations 777 Mechanisms defined in this document do not have any impact on network 778 operations in addition to those already listed in [RFC5440]. 780 8. Acknowledgments 782 A special thanks to author of [I-D.ietf-pce-association-group], this 783 document borrow some of the text from it. Authors would also like to 784 thank Adrian Farrel for his useful comments. 786 9. References 788 9.1. Normative References 790 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 791 Requirement Levels", BCP 14, RFC 2119, 792 DOI 10.17487/RFC2119, March 1997, 793 . 795 [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation 796 Element (PCE) Communication Protocol (PCEP)", RFC 5440, 797 DOI 10.17487/RFC5440, March 2009, 798 . 800 [RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of 801 Objective Functions in the Path Computation Element 802 Communication Protocol (PCEP)", RFC 5541, 803 DOI 10.17487/RFC5541, June 2009, 804 . 806 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 807 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 808 May 2017, . 810 [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path 811 Computation Element Communication Protocol (PCEP) 812 Extensions for Stateful PCE", RFC 8231, 813 DOI 10.17487/RFC8231, September 2017, 814 . 816 [I-D.ietf-pce-association-group] 817 Minei, I., Crabbe, E., Sivabalan, S., Ananthakrishnan, H., 818 Dhody, D., and Y. Tanaka, "PCEP Extensions for 819 Establishing Relationships Between Sets of LSPs", draft- 820 ietf-pce-association-group-07 (work in progress), December 821 2018. 823 9.2. Informative References 825 [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation 826 Element (PCE)-Based Architecture", RFC 4655, 827 DOI 10.17487/RFC4655, August 2006, 828 . 830 [RFC6007] Nishioka, I. and D. King, "Use of the Synchronization 831 VECtor (SVEC) List for Synchronized Dependent Path 832 Computations", RFC 6007, DOI 10.17487/RFC6007, September 833 2010, . 835 [RFC7470] Zhang, F. and A. Farrel, "Conveying Vendor-Specific 836 Constraints in the Path Computation Element Communication 837 Protocol", RFC 7470, DOI 10.17487/RFC7470, March 2015, 838 . 840 [RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J. 841 Hardwick, "Path Computation Element Communication Protocol 842 (PCEP) Management Information Base (MIB) Module", 843 RFC 7420, DOI 10.17487/RFC7420, December 2014, 844 . 846 [RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, 847 "Recommendations for Secure Use of Transport Layer 848 Security (TLS) and Datagram Transport Layer Security 849 (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May 850 2015, . 852 [RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody, 853 "PCEPS: Usage of TLS to Provide a Secure Transport for the 854 Path Computation Element Communication Protocol (PCEP)", 855 RFC 8253, DOI 10.17487/RFC8253, October 2017, 856 . 858 [RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path 859 Computation Element Communication Protocol (PCEP) 860 Extensions for PCE-Initiated LSP Setup in a Stateful PCE 861 Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, 862 . 864 Appendix A. Contributor Addresses 866 Dhruv Dhody 867 Huawei Technologies 868 Divyashree Techno Park, Whitefield 869 Bangalore, Karnataka 560066 870 India 872 EMail: dhruv.ietf@gmail.com 874 Authors' Addresses 876 Stephane Litkowski 877 Orange 879 EMail: stephane.litkowski@orange.com 881 Siva Sivabalan 882 Cisco Systems, Inc. 883 2000 Innovation Drive 884 Kanata, Ontario K2K 3E8 885 Canada 887 EMail: msiva@cisco.com 889 Colby Barth 890 Juniper Networks 892 EMail: cbarth@juniper.net 894 Mahendra Singh Negi 895 Huawei Technologies 896 Divyashree Techno Park, Whitefield 897 Bangalore, Karnataka 560066 898 India 900 EMail: mahendrasingh@huawei.com