idnits 2.17.1 draft-ietf-pce-association-diversity-03.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 : ---------------------------------------------------------------------------- ** There are 10 instances of too long lines in the document, the longest one being 5 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (February 27, 2018) is 2248 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) == Missing Reference: 'RFC6007' is mentioned on line 208, but not defined == Missing Reference: 'TBD2' is mentioned on line 344, but not defined == Missing Reference: 'TBD3' is mentioned on line 393, but not defined ** Downref: Normative reference to an Informational RFC: RFC 4655 == Outdated reference: A later version (-10) exists of draft-ietf-pce-association-group-04 -- Obsolete informational reference (is this intentional?): RFC 7150 (Obsoleted by RFC 7470) Summary: 2 errors (**), 0 flaws (~~), 5 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 31, 2018 Cisco Systems, Inc. 6 C. Barth 7 Juniper Networks 8 D. Dhody 9 Huawei 10 February 27, 2018 12 Path Computation Element communication Protocol extension for signaling 13 LSP diversity constraint 14 draft-ietf-pce-association-diversity-03 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 Communication Protocol (PCEP) with the purpose of computing 21 diverse paths for those LSPs. The proposed extension allows a PCC to 22 advertise to a PCE the belonging of a particular LSP to a disjoint- 23 group, thus the PCE knows that LSPs in the same group must be 24 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 31, 2018. 43 Copyright Notice 45 Copyright (c) 2018 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. Mandatory TLV . . . . . . . . . . . . . . . . . . . . . . 8 67 4.3. Optional TLVs . . . . . . . . . . . . . . . . . . . . . . 10 68 4.4. Disjointness objective functions . . . . . . . . . . . . 10 69 4.5. P-flag considerations . . . . . . . . . . . . . . . . . . 11 70 4.6. Disjointness computation issues . . . . . . . . . . . . . 14 71 5. Security Considerations . . . . . . . . . . . . . . . . . . . 15 72 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 73 6.1. Association object Type Indicators . . . . . . . . . . . 15 74 6.2. PCEP TLVs . . . . . . . . . . . . . . . . . . . . . . . . 15 75 6.3. Objective Functions . . . . . . . . . . . . . . . . . . . 16 76 6.4. NO-PATH-VECTOR bit Flags . . . . . . . . . . . . . . . . 16 77 6.5. PCEP-ERROR codes . . . . . . . . . . . . . . . . . . . . 16 78 7. Manageability Considerations . . . . . . . . . . . . . . . . 16 79 7.1. Control of Function and Policy . . . . . . . . . . . . . 16 80 7.2. Information and Data Models . . . . . . . . . . . . . . . 17 81 7.3. Liveness Detection and Monitoring . . . . . . . . . . . . 17 82 7.4. Verify Correct Operations . . . . . . . . . . . . . . . . 17 83 7.5. Requirements On Other Protocols . . . . . . . . . . . . . 17 84 7.6. Impact On Network Operations . . . . . . . . . . . . . . 17 85 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17 86 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 87 9.1. Normative References . . . . . . . . . . . . . . . . . . 17 88 9.2. Informative References . . . . . . . . . . . . . . . . . 18 89 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 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 behaviours) 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 the 114 belonging of a particular LSP to a disjoint-group. When a PCE 115 receives LSP states belonging to the same disjoint-group from some 116 PCCs, the PCE should ensure that the LSPs within the group are 117 disjoint from each other. 119 1.1. Requirements Language 121 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 122 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 123 document are to be interpreted as described in [RFC2119]. 125 2. Terminology 127 The following terminology is used in this document. 129 LSR: Label Switch Router. 131 MPLS: Multiprotocol Label Switching. 133 PCC: Path Computation Client. Any client application requesting a 134 path computation to be performed by a Path Computation Element. 136 PCE: Path Computation Element. An entity (component, application, 137 or network node) that is capable of computing a network path or 138 route based on a network graph and applying computational 139 constraints. 141 PCEP: Path Computation Element Communication Protocol. 143 SRLG: Shared Risk Link Group. 145 3. Motivation 147 Path diversity is a very common use case today in IP/MPLS networks 148 especially for layer 2 transport over MPLS. A customer may request 149 that the operator provide two end-to-end disjoint paths across the 150 IP/MPLS core. The customer may use those paths as primary/backup or 151 active/active. 153 Different level of disjointness may be offered: 155 o Link disjointness: the paths of the associated LSPs should transit 156 different links (but may use common nodes or different links that 157 may have some shared fate). 159 o Node disjointness: the paths of the associated LSPs should transit 160 different nodes (but may use different links that may have some 161 shared fate). 163 o SRLG disjointness: the paths of the associated LSPs should transit 164 different links that do not share fate (but may use common transit 165 nodes). 167 o Node+SRLG disjointness: the paths of the associated LSPs should 168 transit different links that do not have any common shared fate 169 and should transit different nodes. 171 The associated LSPs may originate from the same or from different 172 head-end(s) and may terminate at the same or different tail-end(s). 174 _________________________________________ 175 / \ 176 / +------+ \ 177 | | PCE | | 178 | +------+ | 179 | | 180 | ***********************> | 181 | +------+ 10 +------+ | 182 CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 183 | +------+ | | +------+ | 184 | | | | 185 | | | | 186 | +------+ | | +------+ | 187 CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 188 | +------+ ***********************> +------+ | 189 | | 190 \ / 191 \_________________________________________/ 193 Figure 1 - Disjoint paths with different head-ends and tail-ends 195 In the figure above, the customer wants to have two disjoint paths 196 between CE1/CE2 and CE3/CE4. From an IP/MPLS network point view, in 197 this example, the CEs are connected to different PEs to maximize 198 their disjointness. When LSPs originate from different head-ends, 199 distributed computation of diverse paths can be difficult. Whereas, 200 computation via a centralized PCE ensures path disjointness 201 correctness and simplicity. 203 [RFC5440] defines a mechanism for the synchronization of a set of 204 path computation requests by using the SVEC (Synchronization VECtor) 205 object, that specifies the list of synchronized requests that can 206 either be dependent or independent. The SVEC object identify the 207 relationship between the set of path computation requests, identified 208 by 'Request-ID-number' in RP (Request Parameters) object. [RFC6007] 209 further clarifies the use of the SVEC list for synchronized path 210 computations when computing dependent requests as well as describes a 211 number of usage scenarios for SVEC lists within single-domain and 212 multi-domain environments. 214 The SVEC object includes a Flags field that indicates the potential 215 dependency between the set of path computation request in a similar 216 way as the Flags field in the TLVs defined in this document. The 217 path computation request (PCReq) message MAY use both SVEC object to 218 identify the related path computation request as well as to identify 219 the diversity association group. The PCE MUST try to find a path 220 that meets both the constraints. It is possible that the diversity 221 set in the association group is different from the one in SVEC 222 object, this might be true for the same LSP as well. The PCE would 223 consider both the objects as per the processing rules and aim to find 224 a path that meets both these constraints. In case no such path is 225 possible (or the constraints are incompatible), the PCE MUST send a 226 path computation reply (PCRep) with NO-PATH object indicating path 227 computation failure as per [RFC5440]. 229 The PCEP extension for stateful PCE [RFC8231] defined new PCEP 230 messages - PCRpt, PCUpd and PCInitiate. These messages uses PLSP-ID 231 in the LSP object for identification. Moreover to allow diversity 232 between LSPs originating from different PCCs, the generic mechanism 233 to create a grouping of LSPs as described in 234 [I-D.ietf-pce-association-group] equally applicable to the active and 235 passive modes of a stateful PCE is better suited. 237 Using PCEP, the PCC MUST indicate that disjoint path computation is 238 required, such indication SHOULD include disjointness parameters such 239 as the type of disjointness, the disjoint group-id, and any 240 customization parameters according to the configured local policy. 241 As mentioned previously, the extension described in 242 [I-D.ietf-pce-association-group] is well suited to associated a set 243 of LSPs with a particular disjoint-group. 245 The management of the disjoint group-ids will be a key point for the 246 operator as the Association ID field is limited to 65535. The local 247 configuration of IPv4/IPv6 association source, or Global Association 248 Source/Extended Association ID should allow to overcome this 249 limitation. For example, when a PCC or PCE initiates all the LSPs in 250 a particular disjoint-group, it can set the IPv4/IPv6 association 251 source can be set to one of its IP address. When disjoint LSPs are 252 initiated from different head-ends, a unique association identifier 253 SHOULD be used for those LSPs: this can be achieved by setting the 254 IPv4/IPv6 source address to a common value (zero value can be used) 255 as well as the Association ID. 257 Initiate & Monitor LSP 258 | 259 | PCReq/PCRpt 260 V {Disjoint-group Y} 261 +-----+ ----------------> +-----+ 262 _ _ _ _ _ _| PCE | | | PCE | 263 | +-----+ | ----------> +-----+ 264 | PCInitiate | | PCReq/PCRpt 265 |{Disjoint-group X} | | {Disjoint-group Y} 266 | | | 267 | .-----. | | .-----. 268 | ( ) | +----+ ( ) 269 | .--( )--. | |PE 1|--.--( )--. 270 V ( ) | +----+ ( ) 271 +---+ ( ) | ( ) 272 |PCC|----( (G)MPLS network ) +----+ ( (G)MPLS network ) 273 +---+ ( ) |PE 3|------( ) 274 Disjoint-group X ) +----+ ( ) 275 {Monitor LSP} '--( )--' '--( )--' 276 ( ) ( ) 277 '-----' '-----' 279 Case 1: Disjointness initiated by Case 2: Disjointness initiated by 280 PCE and enforced by PCC PCC and enforced by PCE 282 Figure 2 - Sample use-cases for carrying disjoint-group over PCEP 283 session 285 Using the disjoint-group within a PCUpd or PCInitiate may have two 286 purposes: 288 o Information: in case the PCE is performing the path computation, 289 it may communicate to the PCC the locally used parameters in the 290 attribute-list of the LSP. 292 o Configuration: in case the PCE is updating the diversity 293 parameters. 295 4. Protocol extension 297 4.1. Association group 299 As per [I-D.ietf-pce-association-group], LSPs are associated with 300 other LSPs with which they interact by adding them to a common 301 association group. The Association ID will be used to identify the 302 disjoint group a set of LSPs belongs to. This document defines a new 303 Association type, based on the generic Association object - 304 o Association type = TBD1 ("Disjointness Association Type"). 306 The association type is considered to be both dynamic and operator- 307 configured. 309 A disjoint group can have two or more LSPs. But a PCE may be limited 310 in how many LSPs it can take into account when computing 311 disjointness. If a PCE receives more LSPs in the group than it can 312 handle in its computation algorithm, it SHOULD apply disjointness 313 computation to only a subset of LSPs in the group. The subset of 314 disjoint LSPs will be decided by the implementation. 316 Local polices on the PCC or PCE MAY define the computational behavior 317 for the other LSPs in the group. For example, the PCE may provide no 318 path, a shortest path, or a constrained path based on relaxing 319 disjointness, etc. 321 Associating a particular LSP to multiple disjoint groups is 322 authorized from a protocol perspective, however there is no insurance 323 that the PCE will be able to compute properly the multi-disjointness 324 constraint. 326 4.2. Mandatory TLV 328 The disjoint group MUST carry the following TLV: 330 o DISJOINTNESS-CONFIGURATION-TLV: Used to communicate some 331 disjointness configuration parameters. 333 In addition, the disjoint group MAY carry the following TLV in a 334 PCUpd or PCRep message: 336 o DISJOINTNESS-STATUS-TLV: Used to communicate the status of the 337 computed disjointness. 339 The DISJOINTNESS-CONFIGURATION-TLV is shown in the following figure: 341 0 1 2 3 342 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 343 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 344 | Type = [TBD2] | Length | 345 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 346 | Flags |T|P|S|N|L| 347 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 349 Flags: 351 * L (Link diverse) bit: when set, this indicates that the 352 computed paths within the disjoint group MUST NOT have any link 353 in common. 355 * N (Node diverse) bit: when set, this indicates that the 356 computed paths within the disjoint group MUST NOT have any node 357 in common. 359 * S (SRLG diverse) bit: when set, this indicates that the 360 computed paths within the disjoint group MUST NOT share any 361 SRLG (Shared Risk Link Group). 363 * P (Shortest path) bit: when set, this indicates that the 364 computed path of the LSP SHOULD satisfies all constraints and 365 objective functions first without considering the diversity 366 constraint. This means that an LSP with P flag set should be 367 placed as if the disjointness constraint has not been 368 configured, while the other LSP in the association with P flag 369 unset should be placed by taking into account the disjointness 370 constraint. Setting P flag changes the relationship between 371 LSPs to a unidirectional relationship (LSP 1 with P=0 depends 372 of LSP 2 with P=1, but LSP 2 with P=1 does not depend of LSP 1 373 with P=0). 375 * T (Strict disjointness) bit: when set, if disjoint paths cannot 376 be found, PCE should return no path for LSPs that could not be 377 be disjoint. When unset, PCE is allowed to relax disjointness 378 by using either applying a requested objective function or any 379 other behavior if no objective function is requested (e.g.: 380 using a lower disjoint type (link instead of node) or relaxing 381 disjointness constraint at all). 383 If a PCEP speaker receives a disjoint-group without DISJOINTNESS- 384 CONFIGURATION-TLV, it SHOULD reply with a PCErr Error-type=6 385 (Mandatory Object missing) and Error-value=TBD7. 387 The DISJOINTNESS-STATUS-TLV uses the same format as the DISJOINTNESS- 388 CONFIGURATION-TLV with a different type: 390 0 1 2 3 391 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 392 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 393 | Type = [TBD3] | Length | 394 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 395 | Flags |T|P|S|N|L| 396 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 398 Any new flag defined for the DISJOINTNESS-CONFIGURATION-TLV MUST be 399 automatically added to the DISJOINTNESS-STATUS-TLV. 401 4.3. Optional TLVs 403 The disjoint group MAY carry some optional TLVs including but not 404 limited to: 406 o VENDOR-INFORMATION-TLV: Used to communicate arbitrary vendor 407 specific behavioral information, described in [RFC7150]. 409 4.4. Disjointness objective functions 411 An objective function MAY be applied to the disjointness computation 412 to drive the PCE computation behavior. In this case, the OF-List TLV 413 (defined in ([RFC5541]) is used as an optional TLV in the Association 414 Group Object. The PCEP OF-List TLV allow multiple OF-Codes inside 415 the TLV, a sender SHOULD include a single OF-Code in the OF-List TLV 416 when included in the Association Group, and the receiver MUST 417 consider the first OF-code only and ignore others if included. 419 To minimize the common shared resources (Node, Link or SRLG) between 420 a set of paths during path computation three new OF codes are 421 proposed: 423 MSL 425 * Name: Minimize the number of shared (common) Links. 427 * Objective Function Code: TBD4 429 * Description: Find a set of paths such that it passes through the 430 least number of shared (common) links. 432 MSS 434 * Name: Minimize the number of shared (common) SRLGs. 436 * Objective Function Code: TBD5 438 * Description: Find a set of paths such that it passes through the 439 least number of shared (common) SRLGs. 441 MSN 443 * Name: Minimize the number of shared (common) Nodes. 445 * Objective Function Code: TBD6 446 * Description: Find a set of paths such that it passes through the 447 least number of shared (common) nodes. 449 [RFC5440] uses SVEC diversity flag for node, link or SRLG to describe 450 the potential disjointness between the set of path computation 451 requests used in PCEP protocol. 453 This document defines three new OF codes to maximize diversity as 454 much as possible, in other words, minimize the common shared 455 resources (Node,Link or SRLG) between a set of paths. 457 It may be interesting to note that the diversity flags in the SVEC 458 object and OF for diversity can be used together. Some example of 459 usage are listed below - 461 o SVEC object with node-diverse bit=1 - ensure full node-diversity. 463 o SVEC object with node-diverse bit=1 and OF=MSS - full node diverse 464 with as much as SRLG-diversity as possible. 466 o SVEC object with domain-diverse bit=1;link diverse bit=1 and 467 OF=MSS - full domain and node diverse path with as much as SRLG- 468 diversity as possible. 470 o SVEC object with node-diverse bit=1 and OF=MSN - ensure full node- 471 diversity. 473 4.5. P-flag considerations 475 As mentioned in Section 4.2, the P-flag (when set) indicates that the 476 computed path of the LSP SHOULD satisfies all constraints and 477 objective functions first without considering the diversity 478 constraint. This could be required in some primary/backup scenarios 479 where the primary path should use the more optimal path available 480 (taking into account the other constraints). When disjointness is 481 computed, it is important for the algorithm to know that it should 482 try to optimize the path of one or more LSPs in the disjoint group 483 (for instance the primary path) while other paths are allowed to be 484 longer (compared to a similar path without the disjointness 485 constraint). Without such a hint, the disjointness algorithm may set 486 a path for all LSPs that may not completely fulfil the customer 487 requirement. 489 _________________________________________ 490 / \ 491 / +------+ \ 492 | | PCE | | 493 | +------+ | 494 | | 495 | | 496 | +------+ 10 +------+ | 497 CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 498 | +------+ | | +------+ | 499 | | | | 500 | | | | 501 | +------+ | | +------+ | 502 CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 503 | +------+ \ | / +------+ | 504 | \ | 10 / | 505 \ +-- R5 --------- R6 / 506 \_________________________________________/ 508 Figure 3 510 In the figure above, a customer has two dual homed sites (CE1/CE3 and 511 CE2/CE4). This customer wants two disjoint paths between the two 512 sites. Due to physical meshings, the customer wants to use CE1 and 513 CE2 as primary (for instance CE3 and CE4 are hosted in a remote site 514 for redundancy purpose compared the customer hosts). 516 Without any hint (constraint) provided, the PCE may compute the two 517 disjoint LSPs as a batch leading to PE1->PE2 using a path 518 PE1->R1->R2->PE2 and PE3->PE4 using PE3->R3->R4->PE4. In this case, 519 even if the disjointness constraint is fulfilled, the path from PE1 520 to PE2 does not use the best optimal path available in the network 521 (RTD may be higher): the customer requirement is thus not completely 522 fulfilled. 524 The usage of the P-Flag allows the PCE to know that a particular LSP 525 should be tied to the best path as if the disjointness constraint was 526 not requested. 528 In our example, if the P-Flag is set to the LSP PE1->PE2, the PCE 529 should use the path PE1->R1->R3->R4->R2->PE2 for this LSP, while the 530 other LSP should be disjoint from this path. The second LSP will be 531 placed on PE3->R5->R6->PE4 as it is allowed to be longer. 533 Driving the PCE disjointness computation may be done in other ways by 534 for instance setting a metric boundary reflecting an RTD boundary. 535 Other constraints may also be used. 537 The P-Flag allows a simple expression that the disjointness 538 constraint should not make the LSP worst. 540 Any constraint added to a path disjointness computation may reduce 541 the chance to find suitable paths. The usage of the P-flag, as any 542 other constraint, may prevent to find a disjoint path. In the 543 example above, if we consider that the router R5 is down, if PE1->PE2 544 has the P-flag set, there is no room available to place PE3->PE4 (the 545 disjointness constraint cannot be fulfilled). If PE->PE2 has the 546 P-flag unset, the algorithm may be able to place PE1->PE2 on R1->R2 547 link leaving a room for PE3->PE4 using the R3->R4 link. When using 548 P-flag or any additional constraint on top of the disjointness 549 constraint, the user should be aware that there is less chance to 550 fulfill the disjointness constraint. 552 Multiple LSPs in the same disjoint group may have the P-flag set. In 553 such a case, those LSPs may not be disjoint from each other but will 554 be disjoint from others LSPs in the group that have the P-flag unset. 556 _________________________________________ 557 / \ 558 / +------+ \ 559 | | PCE | | 560 | +------+ | 561 | | 562 | | 563 | +------+ 10 +------+ | 564 CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 565 | +------+ | \ | +------+ | 566 | | \2 | | 567 | | \ | | 568 | +------+ | \ | +------+ | 569 CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 570 | +------+ +------+ | 571 | | 572 \ / 573 \_________________________________________/ 575 Figure 4 577 In the figure above, we still consider the same previous 578 requirements, so PE1->PE2 LSP should be optimized (P-flag set) while 579 PE3->PE4 should be disjoint and may use a longer path. 581 Regarding PE1->PE2, there are two paths that are satisfying the 582 constraints (ECMP): PE1->R1->R4->R2->PE2 (path 1) and 583 PE1->R1->R3->R4->R2->PE2 (path 2). An implementation may choose one 584 of the paths or even use boths (using both may happen in case Segment 585 Routing TE is used, allowing ECMP). 587 If the implementation elects only one path, there is a chance that 588 picking up one path may prevent disjointness. In our example, if 589 path 2 is used for PE1->PE2, there is no room left for PE3->PE4 while 590 if path 1 is used, PE3->PE4 can be placed on R3->R4 link. 592 When P-flag is set for an LSP and when ECMPs are available, an 593 implementation MAY select a path that allows disjointness. 595 4.6. Disjointness computation issues 597 There may be some cases where the PCE is not able to provide a set of 598 disjoint paths for one or more LSPs in the association. 600 When the T-bit is set (Strict disjointness requested), if 601 disjointness cannot be ensured for one or more LSPs, the PCE SHOULD 602 reply with a PCUpd message containing an empty ERO. In addition to 603 the empty ERO Object, the PCE MAY add the NO-PATH-VECTOR TLV 604 ([RFC5440]) in the LSP Object. 606 This document adds new bits in the NO-PATH-VECTOR TLV: 608 bit "TBD7": when set, the PCE indicates that it could not find a 609 disjoint path for this LSP. 611 bit "TBD8": when set, the PCE indicates that it does not support 612 the requested disjointness computation. 614 When the T-bit is unset, the PCE is allowed to reduce the required 615 level of disjointness. The actual level of disjointness computed by 616 the PCE can be reported through the DISJOINTNESS-STATUS-TLV by 617 setting the appropriate flags in the TLV. While the DISJOINTNESS- 618 CONFIGURATION-TLV defines the expected level of disjointness required 619 by configuration, the DISJOINTNESS-STATUS-TLV defines the actual 620 level of disjointness computed. 622 There are some cases where the PCE may need to completely relax the 623 disjointness constraint in order to provide a path to all the LSPs 624 that are part of the association. A mechanism that allows the PCE to 625 fully relax a constraint is considered by the authors as more global 626 to PCEP rather than linked to the disjointness use case. As a 627 consequence, it is considered as out of scope of the document. 629 All LSPs in a particular disjoint group MUST use the same combination 630 of T,S,N,L flags in the DISJOINTNESS-CONFIGURATION-TLV. If a PCE 631 receives PCRpt messages for LSPs belonging to the same disjoint group 632 but having an inconsistent combination of T,S,N,L flags, the PCE 633 SHOULD NOT try to compute disjointness path and SHOULD reply a PCErr 634 with Error-type 5 (Policy Violation) and Error-Value TBD6 635 (Inconsistent parameters in DISJOINTNESS-CONFIGURATION TLV) to all 636 PCCs involved in the disjoint group. 638 5. Security Considerations 640 This document defines one new type for association, which do not add 641 any new security concerns beyond those discussed in [RFC5440], 642 [RFC8231] and [I-D.ietf-pce-association-group] in itself. 644 6. IANA Considerations 646 6.1. Association object Type Indicators 648 This document defines the following new association type originally 649 defined in [I-D.ietf-pce-association-group]. 651 Value Name Reference 653 TBD1 Disjoint-group 654 Association Type [This I.D.] 656 6.2. PCEP TLVs 658 This document defines the following new PCEP TLVs: 660 Value Name Reference 662 TBD2 DISJOINTNESS-CONFIGURATION-TLV [This I.D.] 663 TBD3 DISJOINTNESS-STATUS-TLV [This I.D.] 665 IANA is requested to manage the space of flags carried in the 666 DISJOINTNESS-CONFIGURATION-TLV defined in this document, numbering 667 them from 0 as the least significant bit. 669 New bit numbers may be allocated in future. 671 IANA is requested to allocate the following bit numbers in the 672 DISJOINTNESS-CONFIGURATION-TLV flag space: 674 Bit Number Name Reference 675 0 Link disjointness [This I.D.] 676 1 Node disjointness [This I.D.] 677 2 SRLG disjointness [This I.D.] 678 3 Shortest-path [This I.D.] 679 4 Strict disjointness [This I.D.] 681 6.3. Objective Functions 683 three new Objective Functions have been defined. IANA has made the 684 following allocations from the PCEP "Objective Function" sub- 685 registry: 687 Value Description Reference 688 TBD4 MSL [This I.D.] 689 TBD5 MSN [This I.D.] 690 TBD6 MSS [This I.D.] 692 6.4. NO-PATH-VECTOR bit Flags 694 This documents defines new bits for the NO-PATH-VECTOR TLV in the 695 "NO-PATH-VECTOR TLV Flag Field" sub-registry of the "Path Computation 696 Element Protocol (PCEP) Numbers" registry: 698 Bit Number Name Reference 699 TBD7 Disjoint path not found [This I.D.] 701 TBD8 Requested disjointness [This I.D.] 702 computation not supported 704 6.5. PCEP-ERROR codes 706 IANA is requested to allocate new Error Types and Error Values within 707 the " PCEP-ERROR Object Error Types and Values" sub-registry of the 708 PCEP Numbers registry, as follows: 710 Error-Type Meaning 711 5 Policy violation 712 Error-value=TBD6: Inconsistent parameters 713 in DISJOINTNESS-CONFIGURATION TLV 715 6 Mandatory Object missing 716 Error-value=TBD7: DISJOINTNESS-CONFIGURATION TLV missing 718 7. Manageability Considerations 720 7.1. Control of Function and Policy 722 An operator MUST be allowed to configure the disjointness 723 associations and parameters at PCEP peers and associate it with the 724 LSPs. 726 7.2. Information and Data Models 728 [RFC7420] describes the PCEP MIB, there are no new MIB Objects for 729 this document. 731 7.3. Liveness Detection and Monitoring 733 Mechanisms defined in this document do not imply any new liveness 734 detection and monitoring requirements in addition to those already 735 listed in [RFC5440]. 737 7.4. Verify Correct Operations 739 Mechanisms defined in this document do not imply any new operation 740 verification requirements in addition to those already listed in 741 [RFC5440]. 743 7.5. Requirements On Other Protocols 745 Mechanisms defined in this document do not imply any new requirements 746 on other protocols. 748 7.6. Impact On Network Operations 750 Mechanisms defined in this document do not have any impact on network 751 operations in addition to those already listed in [RFC5440]. 753 8. Acknowledgments 755 A special thanks to author of [I-D.ietf-pce-association-group], this 756 document borrow some of the text from it. Authors would also like to 757 thank Adrian Farrel for his useful comments. 759 9. References 761 9.1. Normative References 763 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 764 Requirement Levels", BCP 14, RFC 2119, 765 DOI 10.17487/RFC2119, March 1997, 766 . 768 [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation 769 Element (PCE)-Based Architecture", RFC 4655, 770 DOI 10.17487/RFC4655, August 2006, 771 . 773 [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation 774 Element (PCE) Communication Protocol (PCEP)", RFC 5440, 775 DOI 10.17487/RFC5440, March 2009, 776 . 778 [RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of 779 Objective Functions in the Path Computation Element 780 Communication Protocol (PCEP)", RFC 5541, 781 DOI 10.17487/RFC5541, June 2009, 782 . 784 [I-D.ietf-pce-association-group] 785 Minei, I., Crabbe, E., Sivabalan, S., Ananthakrishnan, H., 786 Dhody, D., and Y. Tanaka, "PCEP Extensions for 787 Establishing Relationships Between Sets of LSPs", draft- 788 ietf-pce-association-group-04 (work in progress), August 789 2017. 791 [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path 792 Computation Element Communication Protocol (PCEP) 793 Extensions for Stateful PCE", RFC 8231, 794 DOI 10.17487/RFC8231, September 2017, 795 . 797 9.2. Informative References 799 [RFC7150] Zhang, F. and A. Farrel, "Conveying Vendor-Specific 800 Constraints in the Path Computation Element Communication 801 Protocol", RFC 7150, DOI 10.17487/RFC7150, March 2014, 802 . 804 [RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J. 805 Hardwick, "Path Computation Element Communication Protocol 806 (PCEP) Management Information Base (MIB) Module", 807 RFC 7420, DOI 10.17487/RFC7420, December 2014, 808 . 810 [RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path 811 Computation Element Communication Protocol (PCEP) 812 Extensions for PCE-Initiated LSP Setup in a Stateful PCE 813 Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, 814 . 816 Authors' Addresses 817 Stephane Litkowski 818 Orange 820 EMail: stephane.litkowski@orange.com 822 Siva Sivabalan 823 Cisco Systems, Inc. 824 2000 Innovation Drive 825 Kanata, Ontario K2K 3E8 826 Canada 828 EMail: msiva@cisco.com 830 Colby Barth 831 Juniper Networks 833 EMail: cbarth@juniper.net 835 Dhruv Dhody 836 Huawei 838 EMail: dhruv.dhody@huawei.com