idnits 2.17.1 draft-ietf-pce-association-diversity-04.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 (June 20, 2018) is 2136 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: 'TBD2' is mentioned on line 372, but not defined == Outdated reference: A later version (-10) exists of draft-ietf-pce-association-group-06 Summary: 0 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). 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: December 22, 2018 Cisco Systems, Inc. 6 C. Barth 7 Juniper Networks 8 D. Dhody 9 Huawei 10 June 20, 2018 12 Path Computation Element communication Protocol extension for signaling 13 LSP diversity constraint 14 draft-ietf-pce-association-diversity-04 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 December 22, 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. 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 . . . . . . . . . . . . . . . . . . . . . 15 72 6.1. Association object Type Indicators . . . . . . . . . . . 15 73 6.2. PCEP TLVs . . . . . . . . . . . . . . . . . . . . . . . . 16 74 6.3. Objective Functions . . . . . . . . . . . . . . . . . . . 16 75 6.4. NO-PATH-VECTOR bit Flags . . . . . . . . . . . . . . . . 16 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 . . . . . . . . . . . . . . . . 17 82 7.5. Requirements On Other Protocols . . . . . . . . . . . . . 17 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 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 90 1. Introduction 92 [RFC5440] describes the Path Computation Element communication 93 Protocol (PCEP) which enables the communication between a Path 94 Computation Client (PCC) and a Path Control Element (PCE), or between 95 two PCEs based on the PCE architecture [RFC4655]. 97 PCEP Extensions for Stateful PCE Model [RFC8231] describes a set of 98 extensions to PCEP to enable active control of MPLS-TE and GMPLS 99 tunnels. [RFC8281] describes the setup and teardown of PCE-initiated 100 LSPs under the active stateful PCE model, without the need for local 101 configuration on the PCC, thus allowing for a dynamic network. 103 [I-D.ietf-pce-association-group] introduces a generic mechanism to 104 create a grouping of LSPs which can then be used to define 105 associations between a set of LSPs and a set of attributes (such as 106 configuration parameters or behaviors) and is equally applicable to 107 the active and passive modes of a stateful PCE [RFC8231] or a 108 stateless PCE [RFC5440]. 110 This document specifies a PCEP extension to signal that a particular 111 group of LSPs should use diverse paths including the requested type 112 of diversity. A PCC can use this extension to signal to a PCE the 113 belonging of a particular LSP to a disjoint-group. When a PCE 114 receives LSP states belonging to the same disjoint-group from some 115 PCCs, the PCE should ensure that the LSPs within the group are 116 disjoint from each other. 118 1.1. Requirements Language 120 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 121 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 122 "OPTIONAL" in this document are to be interpreted as described in BCP 123 14 [RFC2119] [RFC8174] when, and only when, they appear in all 124 capitals, as shown here. 126 2. Terminology 128 The following terminology is used in this document. 130 LSR: Label Switch Router. 132 MPLS: Multiprotocol Label Switching. 134 PCC: Path Computation Client. Any client application requesting a 135 path computation to be performed by a Path Computation Element. 137 PCE: Path Computation Element. An entity (component, application, 138 or network node) that is capable of computing a network path or 139 route based on a network graph and applying computational 140 constraints. 142 PCEP: Path Computation Element Communication Protocol. 144 SRLG: Shared Risk Link Group. 146 3. Motivation 148 Path diversity is a very common use case in today's IP/MPLS networks 149 especially for layer 2 transport over MPLS. A customer may request 150 that the operator provide two end-to-end disjoint paths across the 151 IP/MPLS core. The customer may use those paths as primary/backup or 152 active/active. 154 Different level of disjointness may be offered: 156 o Link disjointness: the paths of the associated LSPs should transit 157 different links (but may use common nodes or different links that 158 may have some shared fate). 160 o Node disjointness: the paths of the associated LSPs should transit 161 different nodes (but may use different links that may have some 162 shared fate). 164 o SRLG disjointness: the paths of the associated LSPs should transit 165 different links that do not share fate (but may use common transit 166 nodes). 168 o Node+SRLG disjointness: the paths of the associated LSPs should 169 transit different links that do not have any common shared fate 170 and should transit different nodes. 172 The associated LSPs may originate from the same or from different 173 head-end(s) and may terminate at the same or different tail-end(s). 175 _________________________________________ 176 / \ 177 / +------+ \ 178 | | PCE | | 179 | +------+ | 180 | | 181 | ***********************> | 182 | +------+ 10 +------+ | 183 CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 184 | +------+ | | +------+ | 185 | | | | 186 | | | | 187 | +------+ | | +------+ | 188 CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 189 | +------+ ***********************> +------+ | 190 | | 191 \ / 192 \_________________________________________/ 194 Figure 1 - Disjoint paths with different head-ends and tail-ends 196 In the figure above, consider that the customer wants to have two 197 disjoint paths between CE1/CE2 and CE3/CE4. From an IP/MPLS network 198 point view, in this example, the CEs are connected to different PEs 199 to maximize their disjointness. When LSPs originate from different 200 head-ends, distributed computation of diverse paths can be difficult. 201 Whereas, computation via a centralized PCE ensures path disjointness 202 correctness and simplicity. 204 [RFC5440] defines a mechanism for the synchronization of a set of 205 path computation requests by using the SVEC (Synchronization VECtor) 206 object, that specifies the list of synchronized requests that can 207 either be dependent or independent. The SVEC object identify the 208 relationship between the set of path computation requests, identified 209 by 'Request-ID-number' in RP (Request Parameters) object. [RFC6007] 210 further clarified the use of the SVEC list for synchronized path 211 computations when computing dependent requests as well as described a 212 number of usage scenarios for SVEC lists within single-domain and 213 multi-domain environments. 215 The SVEC object includes a Flags field that indicates the potential 216 dependency between the set of path computation request in a similar 217 way as the Flags field in the TLVs defined in this document. The 218 path computation request in the PCReq message MAY use both SVEC 219 object to identify the related path computation request as well as to 220 identify the diversity association group. The PCE MUST try to find a 221 path that meets both the constraints. It is possible that the 222 diversity set in the association group is different from the one in 223 SVEC object, this might be true for the same LSP as well. The PCE 224 would consider both the objects as per the processing rules and aim 225 to find a path that meets both these constraints. In case no such 226 path is possible (or the constraints are incompatible), the PCE MUST 227 send a path computation reply (PCRep) with NO-PATH object indicating 228 path computation failure as per [RFC5440]. 230 The PCEP extension for stateful PCE [RFC8231] defined new PCEP 231 messages - PCRpt, PCUpd and PCInitiate [RFC8281]. These messages 232 uses PLSP-ID in the LSP object for identification. Moreover to allow 233 diversity between LSPs originating from different PCCs, the generic 234 mechanism to create a grouping of LSPs is described in 235 [I-D.ietf-pce-association-group] (that is equally applicable to the 236 active and passive modes of a stateful PCE). 238 Using PCEP, the PCC could indicate that the disjoint path computation 239 is required, such indication should include disjointness parameters 240 such as the type of disjointness, the disjoint group identifiers, and 241 any customization parameters according to the configured local 242 policy. As mentioned previously, the extension described in 243 [I-D.ietf-pce-association-group] is well suited to associate a set of 244 LSPs with a particular disjoint-group. 246 The management of the disjoint group-ids will be a key point for the 247 operator as the Association ID field is limited to 65535. The local 248 configuration of IPv4/IPv6 association source, or Global Association 249 Source/Extended Association ID should allow to overcome this 250 limitation as described in [I-D.ietf-pce-association-group]. When a 251 PCC or PCE initiates all the LSPs in a particular disjoint-group, it 252 can set the IPv4/IPv6 association source as one of its own IP 253 address. When disjoint LSPs are initiated from different head-ends, 254 association source could be the PCE address or any other unique value 255 to identify the disjoint association group. 257 Initiate Disjoint LSPs 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 '--( )--' '--( )--' 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 PCEP messages may have two purpose: 287 o Information: in case the PCE is performing the path computation, 288 it may communicate to the PCC the disjoint parameters. 290 o Configuration: in case the PCC are configured with disjoint 291 requirements, these are communicated to the PCE. 293 4. Protocol extension 295 4.1. Association group 297 As per [I-D.ietf-pce-association-group], LSPs are associated with 298 other LSPs with which they interact by adding them to a common 299 association group. The Association parameters, as described in 300 [I-D.ietf-pce-association-group] as the combination of the mandatory 301 fields Association type, Association ID and Association Source in the 302 ASSOCIATION object, that uniquely identify the association group, 303 uniquely identify the disjoint group. If the optional TLVs - Global 304 Association Source or Extended Association ID are included, then they 305 are included in combination with mandatory fields to uniquely 306 identifying the association group. This document defines a new 307 Association type, based on the generic Association object - 309 o Association type = TBD1 ("Disjointness Association Type"). 311 [I-D.ietf-pce-association-group] specify the mechanism for the 312 capability advertisement of the association types supported by a PCEP 313 speaker by defining a ASSOC-Type-List TLV to be carried within an 314 OPEN object. This capability exchange for the association type 315 described in this document (i.e. Disjointness Association Type) MUST 316 be done before using the disjointness association. Thus the PCEP 317 speaker MUST include the Disjointness Association Type (TBD1) in the 318 ASSOC-Type-List TLV before using the disjoint association group in 319 the PCEP messages. 321 This association type is considered to be both dynamic and operator- 322 configured in nature. The association group could be created by the 323 operator manually on the PCEP peers and the LSPs belonging to this 324 associations is conveyed via PCEP messages to the PCEP peer; or the 325 association group could be created dynamically by the PCEP speaker 326 and both the association group information and the LSPs belonging to 327 the association group is conveyed to the PCEP peer. The Operator- 328 configured Association Range MUST be set for this association-type to 329 mark a range of association identifiers that are used for operator- 330 configured associations to avoid any association identifier clash 331 within the scope of the association source. (Refer 332 [I-D.ietf-pce-association-group].) 334 A disjoint group can have two or more LSPs. But a PCE may be limited 335 in how many LSPs it can take into account when computing 336 disjointness. If a PCE receives more LSPs in the group than it can 337 handle in its computation algorithm, it SHOULD apply disjointness 338 computation to only a subset of LSPs in the group. The subset of 339 disjoint LSPs will be decided by PCE as a local matter. 341 Local polices on the PCC or PCE MAY define the computational behavior 342 for the other LSPs in the group. For example, the PCE may provide no 343 path, a shortest path, or a constrained path based on relaxing 344 disjointness, etc. 346 Associating a particular LSP to multiple disjoint groups is 347 authorized from a protocol perspective, however there is no insurance 348 that the PCE will be able to compute properly the multi-disjointness 349 constraint. 351 4.2. Disjoint TLVs 353 The disjoint group MUST carry the following TLV: 355 o DISJOINTNESS-CONFIGURATION-TLV: Used to communicate some 356 disjointness configuration parameters. 358 In addition, the disjoint group MAY carry the following TLV: 360 o DISJOINTNESS-STATUS-TLV: Used to communicate the status of the 361 computed disjointness. This is applicable for messages from PCE 362 to PCC (PCUpd, PCInitiate or PCRep message). 364 o VENDOR-INFORMATION-TLV: Used to communicate arbitrary vendor 365 specific behavioral information, described in [RFC7470]. 367 The DISJOINTNESS-CONFIGURATION-TLV is shown in the following figure: 369 0 1 2 3 370 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 371 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 372 | Type = [TBD2] | Length | 373 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 374 | Flags |T|P|S|N|L| 375 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 377 Type: TBD2. 379 Length: Fixed value of 4 bytes. 381 Flags: 383 * L (Link diverse) bit: when set, this indicates that the 384 computed paths within the disjoint group MUST NOT have any link 385 in common. 387 * N (Node diverse) bit: when set, this indicates that the 388 computed paths within the disjoint group MUST NOT have any node 389 in common. 391 * S (SRLG diverse) bit: when set, this indicates that the 392 computed paths within the disjoint group MUST NOT share any 393 SRLG (Shared Risk Link Group). 395 * P (Shortest path) bit: when set, this indicates that the 396 computed path of the LSP SHOULD satisfies all constraints and 397 objective functions first without considering the diversity 398 constraint. This means that an LSP with P flag set should be 399 placed as if the disjointness constraint has not been 400 configured, while the other LSP in the association with P flag 401 unset should be placed by taking into account the disjointness 402 constraint. Setting P flag changes the relationship between 403 LSPs to a unidirectional relationship (LSP 1 with P=0 depends 404 of LSP 2 with P=1, but LSP 2 with P=1 does not depend of LSP 1 405 with P=0). 407 * T (Strict disjointness) bit: when set, if disjoint paths cannot 408 be found, PCE should return no path for LSPs that could not be 409 be disjoint. When unset, PCE is allowed to relax disjointness 410 by using either applying a requested objective function or any 411 other behavior if no objective function is requested (e.g.: 412 using a lower disjoint type (link instead of node) or relaxing 413 disjointness constraint at all). 415 If a PCEP speaker receives a disjoint-group without DISJOINTNESS- 416 CONFIGURATION-TLV, it SHOULD reply with a PCErr Error-type=6 417 (Mandatory Object missing) and Error-value=TBD7 (DISJOINTNESS- 418 CONFIGURATION-TLV missing). 420 The DISJOINTNESS-STATUS-TLV uses the same format as the DISJOINTNESS- 421 CONFIGURATION-TLV with a different type TBD3 (in TLV): 423 Any new flag defined for the DISJOINTNESS-CONFIGURATION-TLV is be 424 automatically applicable to the DISJOINTNESS-STATUS-TLV. 426 4.3. Disjointness objective functions 428 An objective function (OF) MAY be applied to the disjointness 429 computation to drive the PCE computation behavior. In this case, the 430 OF-List TLV (defined in ([RFC5541]) is used as an optional TLV in the 431 Association Group Object. The PCEP OF-List TLV allow multiple OF- 432 Codes inside the TLV, a sender SHOULD include a single OF-Code in the 433 OF-List TLV when included in the Association Group, and the receiver 434 MUST consider the first OF-code only and ignore others if included. 436 To minimize the common shared resources (Node, Link or SRLG) between 437 a set of paths during path computation three new OF codes are 438 proposed: 440 MSL 442 * Name: Minimize the number of shared (common) Links. 444 * Objective Function Code: TBD4 445 * Description: Find a set of paths such that it passes through the 446 least number of shared (common) links. 448 MSS 450 * Name: Minimize the number of shared (common) SRLGs. 452 * Objective Function Code: TBD5 454 * Description: Find a set of paths such that it passes through the 455 least number of shared (common) SRLGs. 457 MSN 459 * Name: Minimize the number of shared (common) Nodes. 461 * Objective Function Code: TBD6 463 * Description: Find a set of paths such that it passes through the 464 least number of shared (common) nodes. 466 [RFC5440] uses SVEC diversity flag for node, link or SRLG to describe 467 the potential disjointness between the set of path computation 468 requests used in PCEP protocol. 470 This document defines three new OF codes to maximize diversity as 471 much as possible, in other words, minimize the common shared 472 resources (Node,Link or SRLG) between a set of paths. 474 It may be interesting to note that the diversity flags in the SVEC 475 object and OF for diversity can be used together. Some example of 476 usage are listed below - 478 o SVEC object with node-diverse bit=1 - ensure full node-diversity. 480 o SVEC object with node-diverse bit=1 and OF=MSS - full node diverse 481 with as much as SRLG-diversity as possible. 483 o SVEC object with domain-diverse bit=1;link diverse bit=1 and 484 OF=MSS - full domain and node diverse path with as much as SRLG- 485 diversity as possible. 487 o SVEC object with node-diverse bit=1 and OF=MSN - ensure full node- 488 diversity. 490 4.4. P-flag considerations 492 As mentioned in Section 4.2, the P-flag (when set) indicates that the 493 computed path of the LSP SHOULD satisfies all constraints and 494 objective functions first without considering the diversity 495 constraint. This could be required in some primary/backup scenarios 496 where the primary path should use the more optimal path available 497 (taking into account the other constraints). When disjointness is 498 computed, it is important for the algorithm to know that it should 499 try to optimize the path of one or more LSPs in the disjoint group 500 (for instance the primary path) while other paths are allowed to be 501 longer (compared to a similar path without the disjointness 502 constraint). Without such a hint, the disjointness algorithm may set 503 a path for all LSPs that may not completely fulfill the customer 504 requirement. 506 _________________________________________ 507 / \ 508 / +------+ \ 509 | | PCE | | 510 | +------+ | 511 | | 512 | | 513 | +------+ 10 +------+ | 514 CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 515 | +------+ | | +------+ | 516 | | | | 517 | | | | 518 | +------+ | | +------+ | 519 CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 520 | +------+ \ | / +------+ | 521 | \ | 10 / | 522 \ +-- R5 --------- R6 / 523 \_________________________________________/ 525 Figure 3 527 In the figure above, a customer has two dual homed sites (CE1/CE3 and 528 CE2/CE4). Consider, this customer wants two disjoint paths between 529 the two sites. Due to physical meshing, the customer wants to use 530 CE1 and CE2 as primary ( and CE3 and CE4 are hosted in a remote site 531 for redundancy purpose). 533 Without any hint (constraint) provided, the PCE may compute the two 534 disjoint LSPs together, leading to PE1->PE2 using a path 535 PE1->R1->R2->PE2 and PE3->PE4 using PE3->R3->R4->PE4. In this case, 536 even if the disjointness constraint is fulfilled, the path from PE1 537 to PE2 does not use the best optimal path available in the network 538 (RTD may be higher): the customer requirement is thus not completely 539 fulfilled. 541 The usage of the P-Flag allows the PCE to know that a particular LSP 542 should be tied to the best path as if the disjointness constraint was 543 not requested. 545 In our example, if the P-Flag is set to the LSP PE1->PE2, the PCE 546 should use the path PE1->R1->R3->R4->R2->PE2 for this LSP, while the 547 other LSP should be disjoint from this path. The second LSP will be 548 placed on PE3->R5->R6->PE4 as it is allowed to be longer. 550 Driving the PCE disjointness computation may be done in other ways by 551 for instance setting a metric boundary reflecting an RTD boundary. 552 Other constraints may also be used. 554 The P-Flag allows a simple expression that the disjointness 555 constraint should not make the LSP worst. 557 Any constraint added to a path disjointness computation may reduce 558 the chance to find suitable paths. The usage of the P-flag, as any 559 other constraint, may prevent to find a disjoint path. In the 560 example above, if we consider that the router R5 is down, if PE1->PE2 561 has the P-flag set, there is no room available to place PE3->PE4 (the 562 disjointness constraint cannot be fulfilled). If PE->PE2 has the 563 P-flag unset, the algorithm may be able to place PE1->PE2 on R1->R2 564 link leaving a room for PE3->PE4 using the R3->R4 link. When using 565 P-flag or any additional constraint on top of the disjointness 566 constraint, the user should be aware that there is less chance to 567 fulfill the disjointness constraint. 569 Multiple LSPs in the same disjoint group may have the P-flag set. In 570 such a case, those LSPs may not be disjoint from each other but will 571 be disjoint from others LSPs in the group that have the P-flag unset. 573 _________________________________________ 574 / \ 575 / +------+ \ 576 | | PCE | | 577 | +------+ | 578 | | 579 | | 580 | +------+ 10 +------+ | 581 CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 582 | +------+ | \ | +------+ | 583 | | \2 | | 584 | | \ | | 585 | +------+ | \ | +------+ | 586 CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 587 | +------+ +------+ | 588 | | 589 \ / 590 \_________________________________________/ 592 Figure 4 594 In the figure above, we still consider the same previous 595 requirements, so PE1->PE2 LSP should be optimized (P-flag set) while 596 PE3->PE4 should be disjoint and may use a longer path. 598 Regarding PE1->PE2, there are two paths that are satisfying the 599 constraints (ECMP): PE1->R1->R4->R2->PE2 (path 1) and 600 PE1->R1->R3->R4->R2->PE2 (path 2). An implementation may choose one 601 of the paths or even use both (using both may happen in case Segment 602 Routing TE is used, allowing ECMP). 604 If the implementation elects only one path, there is a chance that 605 picking up one path may prevent disjointness. In our example, if 606 path 2 is used for PE1->PE2, there is no room left for PE3->PE4 while 607 if path 1 is used, PE3->PE4 can be placed on R3->R4 link. 609 When P-flag is set for an LSP and when ECMPs are available, an 610 implementation MAY select a path that allows disjointness. 612 4.5. Disjointness computation issues 614 There may be some cases where the PCE is not able to provide a set of 615 disjoint paths for one or more LSPs in the association. 617 When the T-bit is set (Strict disjointness requested), if 618 disjointness cannot be ensured for one or more LSPs, the PCE SHOULD 619 reply with a PCUpd message containing an empty ERO. In addition to 620 the empty ERO Object, the PCE MAY add the NO-PATH-VECTOR TLV 621 ([RFC5440]) in the LSP Object. 623 This document adds new bits in the NO-PATH-VECTOR TLV: 625 bit "TBD7": when set, the PCE indicates that it could not find a 626 disjoint path for this LSP. 628 bit "TBD8": when set, the PCE indicates that it does not support 629 the requested disjointness computation. 631 When the T-bit is unset, the PCE is allowed to reduce the required 632 level of disjointness. The actual level of disjointness computed by 633 the PCE can be reported through the DISJOINTNESS-STATUS-TLV by 634 setting the appropriate flags in the TLV. While the DISJOINTNESS- 635 CONFIGURATION-TLV defines the expected level of disjointness required 636 by configuration, the DISJOINTNESS-STATUS-TLV defines the actual 637 level of disjointness computed. 639 There are some cases where the PCE may need to completely relax the 640 disjointness constraint in order to provide a path to all the LSPs 641 that are part of the association. A mechanism that allows the PCE to 642 fully relax a constraint is considered by the authors as more global 643 to PCEP rather than linked to the disjointness use case. As a 644 consequence, it is considered as out of scope of the document. 646 All LSPs in a particular disjoint group MUST use the same combination 647 of T,S,N,L flags in the DISJOINTNESS-CONFIGURATION-TLV. If a PCE 648 receives PCRpt messages for LSPs belonging to the same disjoint group 649 but having an inconsistent combination of T,S,N,L flags, the PCE 650 SHOULD NOT try to compute disjointness path and SHOULD reply a PCErr 651 with Error-type 26 (Association Error) and Error-Value 6 (Association 652 information mismatch) to all PCCs involved in the disjoint group. 654 5. Security Considerations 656 This document defines one new type for association, which do not add 657 any new security concerns beyond those discussed in [RFC5440], 658 [RFC8231] and [I-D.ietf-pce-association-group] in itself. 660 6. IANA Considerations 662 6.1. Association object Type Indicators 664 This document defines the following new association type originally 665 defined in [I-D.ietf-pce-association-group]. 667 Value Name Reference 669 TBD1 Disjoint-group 670 Association Type [This I.D.] 672 6.2. PCEP TLVs 674 This document defines the following new PCEP TLVs: 676 Value Name Reference 678 TBD2 DISJOINTNESS-CONFIGURATION-TLV [This I.D.] 679 TBD3 DISJOINTNESS-STATUS-TLV [This I.D.] 681 IANA is requested to manage the space of flags carried in the 682 DISJOINTNESS-CONFIGURATION-TLV defined in this document, numbering 683 them from 0 as the least significant bit. 685 New bit numbers may be allocated in future. 687 IANA is requested to allocate the following bit numbers in the 688 DISJOINTNESS-CONFIGURATION-TLV flag space: 690 Bit Number Name Reference 691 0 Link disjointness [This I.D.] 692 1 Node disjointness [This I.D.] 693 2 SRLG disjointness [This I.D.] 694 3 Shortest-path [This I.D.] 695 4 Strict disjointness [This I.D.] 697 6.3. Objective Functions 699 three new Objective Functions have been defined. IANA has made the 700 following allocations from the PCEP "Objective Function" sub- 701 registry: 703 Value Description Reference 704 TBD4 MSL [This I.D.] 705 TBD5 MSN [This I.D.] 706 TBD6 MSS [This I.D.] 708 6.4. NO-PATH-VECTOR bit Flags 710 This documents defines new bits for the NO-PATH-VECTOR TLV in the 711 "NO-PATH-VECTOR TLV Flag Field" sub-registry of the "Path Computation 712 Element Protocol (PCEP) Numbers" registry: 714 Bit Number Name Reference 715 TBD7 Disjoint path not found [This I.D.] 717 TBD8 Requested disjointness [This I.D.] 718 computation not supported 720 6.5. PCEP-ERROR codes 722 IANA is requested to allocate new Error Types and Error Values within 723 the " PCEP-ERROR Object Error Types and Values" sub-registry of the 724 PCEP Numbers registry, as follows: 726 Error-Type Meaning 727 6 Mandatory Object missing 728 Error-value=TBD7: DISJOINTNESS-CONFIGURATION 729 TLV missing 731 7. Manageability Considerations 733 7.1. Control of Function and Policy 735 An operator MUST be allowed to configure the disjointness 736 associations and parameters at PCEP peers and associate it with the 737 LSPs. 739 7.2. Information and Data Models 741 [RFC7420] describes the PCEP MIB, there are no new MIB Objects for 742 this document. 744 7.3. Liveness Detection and Monitoring 746 Mechanisms defined in this document do not imply any new liveness 747 detection and monitoring requirements in addition to those already 748 listed in [RFC5440]. 750 7.4. Verify Correct Operations 752 Mechanisms defined in this document do not imply any new operation 753 verification requirements in addition to those already listed in 754 [RFC5440]. 756 7.5. Requirements On Other Protocols 758 Mechanisms defined in this document do not imply any new requirements 759 on other protocols. 761 7.6. Impact On Network Operations 763 Mechanisms defined in this document do not have any impact on network 764 operations in addition to those already listed in [RFC5440]. 766 8. Acknowledgments 768 A special thanks to author of [I-D.ietf-pce-association-group], this 769 document borrow some of the text from it. Authors would also like to 770 thank Adrian Farrel for his useful comments. 772 9. References 774 9.1. Normative References 776 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 777 Requirement Levels", BCP 14, RFC 2119, 778 DOI 10.17487/RFC2119, March 1997, 779 . 781 [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation 782 Element (PCE) Communication Protocol (PCEP)", RFC 5440, 783 DOI 10.17487/RFC5440, March 2009, 784 . 786 [RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of 787 Objective Functions in the Path Computation Element 788 Communication Protocol (PCEP)", RFC 5541, 789 DOI 10.17487/RFC5541, June 2009, 790 . 792 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 793 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 794 May 2017, . 796 [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path 797 Computation Element Communication Protocol (PCEP) 798 Extensions for Stateful PCE", RFC 8231, 799 DOI 10.17487/RFC8231, September 2017, 800 . 802 [I-D.ietf-pce-association-group] 803 Minei, I., Crabbe, E., Sivabalan, S., Ananthakrishnan, H., 804 Dhody, D., and Y. Tanaka, "PCEP Extensions for 805 Establishing Relationships Between Sets of LSPs", draft- 806 ietf-pce-association-group-06 (work in progress), June 807 2018. 809 9.2. Informative References 811 [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation 812 Element (PCE)-Based Architecture", RFC 4655, 813 DOI 10.17487/RFC4655, August 2006, 814 . 816 [RFC6007] Nishioka, I. and D. King, "Use of the Synchronization 817 VECtor (SVEC) List for Synchronized Dependent Path 818 Computations", RFC 6007, DOI 10.17487/RFC6007, September 819 2010, . 821 [RFC7470] Zhang, F. and A. Farrel, "Conveying Vendor-Specific 822 Constraints in the Path Computation Element Communication 823 Protocol", RFC 7470, DOI 10.17487/RFC7470, March 2015, 824 . 826 [RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J. 827 Hardwick, "Path Computation Element Communication Protocol 828 (PCEP) Management Information Base (MIB) Module", 829 RFC 7420, DOI 10.17487/RFC7420, December 2014, 830 . 832 [RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path 833 Computation Element Communication Protocol (PCEP) 834 Extensions for PCE-Initiated LSP Setup in a Stateful PCE 835 Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, 836 . 838 Authors' Addresses 840 Stephane Litkowski 841 Orange 843 EMail: stephane.litkowski@orange.com 845 Siva Sivabalan 846 Cisco Systems, Inc. 847 2000 Innovation Drive 848 Kanata, Ontario K2K 3E8 849 Canada 851 EMail: msiva@cisco.com 852 Colby Barth 853 Juniper Networks 855 EMail: cbarth@juniper.net 857 Dhruv Dhody 858 Huawei 860 EMail: dhruv.dhody@huawei.com