idnits 2.17.1 draft-ietf-pce-pce-initiated-lsp-11.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 (October 5, 2017) is 2388 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) No issues found here. Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 PCE Working Group E. Crabbe 3 Internet-Draft Individual Contributor 4 Intended status: Standards Track I. Minei 5 Expires: April 8, 2018 Google, Inc. 6 S. Sivabalan 7 Cisco Systems, Inc. 8 R. Varga 9 Pantheon Technologies SRO 10 October 5, 2017 12 PCEP Extensions for PCE-initiated LSP Setup in a Stateful PCE Model 13 draft-ietf-pce-pce-initiated-lsp-11 15 Abstract 17 The Path Computation Element Communication Protocol (PCEP) provides 18 mechanisms for Path Computation Elements (PCEs) to perform path 19 computations in response to Path Computation Clients (PCCs) requests. 21 The extensions for stateful PCE provide active control of 22 Multiprotocol Label Switching (MPLS) Traffic Engineering Label 23 Switched Paths (TE LSP) via PCEP, for a model where the PCC delegates 24 control over one or more locally configured LSPs to the PCE. This 25 document describes the creation and deletion of PCE-initiated LSPs 26 under the stateful PCE model. 28 Requirements Language 30 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 31 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 32 document are to be interpreted as described in [RFC2119]. 34 Status of This Memo 36 This Internet-Draft is submitted in full conformance with the 37 provisions of BCP 78 and BCP 79. 39 Internet-Drafts are working documents of the Internet Engineering 40 Task Force (IETF). Note that other groups may also distribute 41 working documents as Internet-Drafts. The list of current Internet- 42 Drafts is at http://datatracker.ietf.org/drafts/current/. 44 Internet-Drafts are draft documents valid for a maximum of six months 45 and may be updated, replaced, or obsoleted by other documents at any 46 time. It is inappropriate to use Internet-Drafts as reference 47 material or to cite them other than as "work in progress." 48 This Internet-Draft will expire on April 8, 2018. 50 Copyright Notice 52 Copyright (c) 2017 IETF Trust and the persons identified as the 53 document authors. All rights reserved. 55 This document is subject to BCP 78 and the IETF Trust's Legal 56 Provisions Relating to IETF Documents 57 (http://trustee.ietf.org/license-info) in effect on the date of 58 publication of this document. Please review these documents 59 carefully, as they describe your rights and restrictions with respect 60 to this document. Code Components extracted from this document must 61 include Simplified BSD License text as described in Section 4.e of 62 the Trust Legal Provisions and are provided without warranty as 63 described in the Simplified BSD License. 65 Table of Contents 67 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 68 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 69 3. Architectural Overview . . . . . . . . . . . . . . . . . . . 4 70 3.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . 4 71 3.2. Operation Overview . . . . . . . . . . . . . . . . . . . 5 72 4. Support of PCE-initiated LSPs . . . . . . . . . . . . . . . . 6 73 4.1. STATEFUL-PCE-CAPABILITY TLV . . . . . . . . . . . . . . . 6 74 5. PCE-initiated LSP Instantiation and Deletion . . . . . . . . 7 75 5.1. The LSP Initiate Request . . . . . . . . . . . . . . . . 7 76 5.2. The R flag in the SRP Object . . . . . . . . . . . . . . 8 77 5.3. LSP Instantiation . . . . . . . . . . . . . . . . . . . . 9 78 5.3.1. The Create Flag . . . . . . . . . . . . . . . . . . . 11 79 5.3.2. The SPEAKER-ENTITY-ID TLV . . . . . . . . . . . . . . 11 80 5.4. LSP Deletion . . . . . . . . . . . . . . . . . . . . . . 12 81 6. LSP Delegation and Cleanup . . . . . . . . . . . . . . . . . 12 82 7. LSP State Synchronization . . . . . . . . . . . . . . . . . . 13 83 8. Implementation Status . . . . . . . . . . . . . . . . . . . . 14 84 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 85 9.1. PCEP Messages . . . . . . . . . . . . . . . . . . . . . . 14 86 9.2. LSP Object . . . . . . . . . . . . . . . . . . . . . . . 15 87 9.3. SRP object . . . . . . . . . . . . . . . . . . . . . . . 15 88 9.4. STATEFUL-PCE-CAPABILITY TLV . . . . . . . . . . . . . . . 15 89 9.5. PCEP-Error Object . . . . . . . . . . . . . . . . . . . . 15 90 10. Security Considerations . . . . . . . . . . . . . . . . . . . 16 91 10.1. Malicious PCE . . . . . . . . . . . . . . . . . . . . . 16 92 10.2. Malicious PCC . . . . . . . . . . . . . . . . . . . . . 17 93 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 94 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 95 12.1. Normative References . . . . . . . . . . . . . . . . . . 17 96 12.2. Informative References . . . . . . . . . . . . . . . . . 18 97 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 99 1. Introduction 101 [RFC5440] describes the Path Computation Element Communication 102 Protocol (PCEP). PCEP defines the communication between a Path 103 Computation Client (PCC) and a Path Computation Element (PCE), or 104 between PCE and PCE, enabling computation of Multiprotocol Label 105 Switching (MPLS) for Traffic Engineering Label Switched Path (TE LSP) 106 characteristics. 108 [RFC8231] specifies a set of extensions to PCEP to enable stateful 109 control of TE LSPs between and across PCEP sessions in compliance 110 with [RFC4657]. It includes 112 o mechanisms to effect LSP state synchronization between PCCs and 113 PCEs 114 o delegation of control of LSPs to PCEs 115 o PCE control of timing and sequence of path computations within and 116 across PCEP sessions 118 It focuses on a model where LSPs are configured on the PCC and 119 control over them is delegated to the PCE. 121 This document describes the setup, maintenance and teardown of PCE- 122 initiated LSPs under the stateful PCE model, without the need for 123 local configuration on the PCC, thus allowing for a dynamic network 124 that is centrally controlled and deployed. 126 2. Terminology 128 This document uses the following terms defined in [RFC5440]: PCC, 129 PCE, PCEP Peer. 131 This document uses the following terms defined in [RFC8051]: Stateful 132 PCE, Delegation. 134 This document uses the following terms defined in [RFC8231]: 135 Redelegation Timeout Interval, State Timeout Interval, LSP State 136 Report, LSP Update Request. 138 The following terms are defined in this document: 140 PCE-initiated LSP: LSP that is instantiated as a result of a request 141 from the PCE. 143 The message formats in this document are specified using Routing 144 Backus-Naur Form (RBNF) encoding as specified in [RFC5511]. 146 3. Architectural Overview 148 3.1. Motivation 150 [RFC8231] provides active control over LSPs that are locally 151 configured on the PCC. This model relies on the Label Edge Router 152 (LER) taking an active role in delegating locally configured LSPs to 153 the PCE, and is well suited in environments where the LSP placement 154 is fairly static. However, in environments where the LSP placement 155 needs to change in response to application demands, it is useful to 156 support dynamic creation and tear down of LSPs. The ability for a 157 PCE to trigger the creation of LSPs on demand can be seamlessly 158 integrated into a controller-based network architecture, where 159 intelligence in the controller can determine when and where to set up 160 paths. 162 A possible use case is a software-defined network, where applications 163 request network resources and paths from the network infrastructure. 164 For example, an application can request a path with certain 165 constraints between two LSRs by contacting the PCE. The PCE can 166 compute a path satisfying the constraints, and instruct the head end 167 LSR to instantiate and signal it. When the path is no longer 168 required by the application, the PCE can request its teardown. 170 Another use case is dynamically adjusting aggregate bandwidth between 171 two points in the network using multiple LSPs. This functionality is 172 very similar to auto-bandwidth, but allows for providing the desired 173 capacity through multiple LSPs. This approach overcomes two of the 174 limitations auto-bandwidth can experience: 1) growing the capacity 175 between the endpoints beyond the capacity of individual links in the 176 path and 2) achieving good bin-packing through use of several small 177 LSPs instead of a single large one. The number of LSPs varies based 178 on the demand, and LSPs are created and deleted dynamically to 179 satisfy the bandwidth requirements. 181 Another use case is demand engineering, where a PCE with visibility 182 into both the network state and the demand matrix can anticipate and 183 optimize how traffic is distributed across the infrastructure. Such 184 optimizations may require creating new paths across the 185 infrastructure. 187 3.2. Operation Overview 189 This document defines the new I flag in the STATEFUL-PCE-CAPABILITY 190 TLV to indicate that the sender supports PCE-initiated LSPs (see 191 details in Section 4.1). A PCC or PCE sets this flag in the Open 192 message during the PCEP Initialization Phase to indicate that it 193 supports the procedures of this document. 195 This document defines a new PCEP message, the LSP Initiate Request 196 (PCInitiate) message, which a PCE can send to a PCC to request the 197 initiaton or deletion of an LSP. The decision when to instantiate or 198 delete a PCE-initiated LSP is out of the scope of this document. 200 The PCE sends a PCInitiate message to the PCC to request the 201 initiation of an LSP. The PCC creates the LSP using the attributes 202 communicated by the PCE and local values for any unspecified 203 parameters. The PCC generates an LSP State Report (PCRpt) for the 204 LSP, carrying a newly assigned PLSP-ID for the LSP and delegating the 205 LSP to the PCE via the Delegate flag in the LSP object. 207 The PCE can update the attributes of the LSP by sending subsequent 208 PCUpd messages. Subsequent LSP State Report (PCRpt) and LSP Update 209 Request (PCUpd) messages that the PCC and PCE, respectively, send for 210 the LSP will carry the PCC-assigned PLSP-ID, which uniquely 211 identifies the LSP. See details in Section 5.3. 213 The PCE sends a PCInitiate message to the PCC to request the deletion 214 of an LSP. To indicate a delete operation, this document defines the 215 new R flag in the SRP object in the PCInitiate message, as described 216 in Section 5.2. As a result of the deletion request, the PCC removes 217 the LSP and sends a PCRpt for the removed state. See details in 218 Section 5.4. 220 Figure 1 illustrates these message exchanges. 222 +-+-+ +-+-+ 223 |PCC| |PCE| 224 +-+-+ +-+-+ 225 | | 226 |<--PCInitiate-------------------| (Initiate LSP) 227 | | 228 |---PCRpt, PLSP_ID=1, D=1------->| (Confirm initiation) 229 | . | 230 | . | 231 | | 232 |<--PCUpd, PLSP_ID=1-------------| (Update LSP) 233 | | 234 |---PCRpt, PLSP_ID=1, D=1------->| (Confirm update) 235 | . | 236 | . | 237 | | 238 |<--PCInitiate, PLSP_ID=1, R=1---| (Delete LSP) 239 | | 240 |---PCRpt, PLSP_ID=1, R=1------->| (Confirm delete) 242 Figure 1: PCE-Initiated LSP lifecycle 244 4. Support of PCE-initiated LSPs 246 A PCEP speaker indicates its ability to support PCE-initiated LSPs 247 during the PCEP Initialization phase, as follows. When the PCEP 248 session is created, it sends an Open message with an OPEN object that 249 contains the STATEFUL-PCE-CAPABILITY TLV, defined in [RFC8231]. A 250 new flag, the I (LSP-INSTANTIATION-CAPABILITY) flag, is introduced to 251 this TLV to indicate support for instantiation of PCE-initiated LSPs. 252 A PCE can initiate LSPs only for PCCs that advertised this 253 capability. A PCC will follow the procedures described in this 254 document only on sessions where the PCE advertised the I flag. 256 4.1. STATEFUL-PCE-CAPABILITY TLV 258 The format of the STATEFUL-PCE-CAPABILITY TLV is defined in [RFC8231] 259 and included here for easy reference with the addition of the new I 260 flag. 262 0 1 2 3 263 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 264 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 265 | Type | Length=4 | 266 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 267 | Flags |I|S|U| 268 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+ 270 Figure 2: STATEFUL-PCE-CAPABILITY TLV format 272 A new flag is defined to indicate the sender's support for LSP 273 instantiation by a PCE: 275 I (LSP-INSTANTIATION-CAPABILITY - 1 bit): If set to 1 by a PCC, the 276 I Flag indicates that the PCC allows instantiation of an LSP by a 277 PCE. If set to 1 by a PCE, the I flag indicates that the PCE 278 supports instantiating LSPs. The LSP-INSTANTIATION-CAPABILITY 279 flag must be set by both PCC and PCE in order to enable PCE- 280 initiated LSP instantiation. 282 5. PCE-initiated LSP Instantiation and Deletion 284 To initiate an LSP, a PCE sends a PCInitiate message to a PCC. The 285 message format, objects and TLVs are discussed separately below for 286 the creation and the deletion cases. 288 5.1. The LSP Initiate Request 290 An LSP Initiate Request (PCInitiate) message is a PCEP message sent 291 by a PCE to a PCC to trigger LSP instantiation or deletion. The 292 Message-Type field of the PCEP common header for the PCInitiate 293 message is set to 12. The PCInitiate message MUST include the SRP 294 and the LSP objects, and MAY contain other objects, as discussed 295 later in this section. 297 The format of a PCInitiate message is as follows: 299 ::= 300 301 Where: 302 is defined in [RFC5440] 304 ::= 305 [] 307 ::= (| 308 ) 310 ::= 311 312 [] 313 314 [] 316 ::= 317 319 Where: 320 is defined in [RFC5440] and extended by 321 PCEP extensions. 323 The LSP object is defined in [RFC8231]. The END-POINTS and ERO 324 objects are defined in [RFC5440]. 326 The SRP object is defined in [RFC8231]. The SRP Object contains an 327 SRP-ID-number which is unique within a PCEP session. The PCE 328 increments the last-used SRP-ID-number before it sends each 329 PCInitiate message. The PCC MUST echo the value of the SRP-ID-number 330 in PCErr and PCRpt messages that it sends as a result of the 331 PCInitiate to allow the PCE to correlate them with the corresponding 332 PCInitiate message. 334 5.2. The R flag in the SRP Object 336 The format of the SRP object is is defined in [RFC8231] and included 337 here for easy reference with the addition of the new R flag. 339 0 1 2 3 340 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 341 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 342 | Flags |R| 343 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 344 | SRP-ID-number | 345 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 346 | | 347 // Optional TLVs // 348 | | 349 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 351 Figure 3: The SRP Object format 353 A new flag is defined to indicate a delete operation initiated by the 354 PCE: 356 R (LSP-REMOVE - 1 bit): If set to 0, it indicates a request to 357 create an LSP. If set to 1, it indicates a request to remove an 358 LSP. 360 5.3. LSP Instantiation 362 The LSP is instantiated by sending a PCInitiate message. The LSP is 363 set up using RSVP-TE. Extensions for other setup methods are outside 364 the scope of this draft. 366 The PCInitiate message, when used to instantiate an LSP, MUST contain 367 an LSP object with the reserved PLSP-ID 0. The LSP Object MUST 368 include the SYMBOLIC-PATH-NAME TLV, which is used to correlate 369 between the PCC-assigned PLSP-ID and the LSP. 371 The PCInitiate message, when used to instantiate an LSP, MUST contain 372 an Explicit Route Object (ERO) for the LSP. 374 For an instantiation request of an RSVP-signaled LSP, the destination 375 address may be needed. The PCC MAY determine it from a provided 376 object (e.g., ERO) or a local decision. Alternatively, the END- 377 POINTS object MAY be included to explicitly convey the destination 378 addresses to be used in the RSVP-TE signaling. The source address 379 MUST either be specified or left for the PCC to choose by setting it 380 to "0.0.0.0" (if the destination is an IPv4 address) or "::" (if the 381 destination is an IPv6 address). 383 The PCE MAY include various attributes as per [RFC5440]. The PCC 384 MUST use these values in the LSP instantiation, and local values for 385 unspecified parameters. After the LSP setup, the PCC MUST send a 386 PCRpt to the PCE, reflecting these values. The SRP object in the 387 PCRpt message MUST echo the value of the PCInitiate message that 388 triggered the setup. LSPs that were instantiated as a result of a 389 PCInitiate message MUST have the Create flag (Section 5.3.1) set in 390 the LSP object. 392 If the PCC receives a PCInitiate message with a non-zero PLSP-ID and 393 the R flag in the SRP object set to zero, then it MUST send a PCErr 394 message with Error-type=19 (Invalid Operation) and Error-value=8 395 (Non-zero PLSP-ID in the PCInitiate message). 397 If the PCC receives a PCInitiate message without an ERO and the R 398 flag in the SRP object set to zero, then it MUST send a PCErr message 399 with Error-type=6 (Mandatory Object missing) and Error-value=9 (ERO 400 Object missing). 402 If the PCC receives a PCInitiate message without a SYMBOLIC-PATH-NAME 403 TLV, then it MUST send a PCErr message with Error-type=10 (Invalid 404 object) and Error-value=8 (SYMBOLIC-PATH-NAME TLV missing). 406 The PCE MUST NOT provide a symbolic path name that conflicts with the 407 symbolic path name of any existing LSP in the PCC. (Existing LSPs 408 may be either statically configured, or initiated by another PCE). 409 If there is a conflict with the symbolic path name of an existing 410 LSP, the PCC MUST send a PCErr message with Error-type=23 (Bad 411 Parameter value) and Error-value=1 (SYMBOLIC-PATH-NAME in use). The 412 only exception to this rule is for LSPs for which the State Timeout 413 Interval timer is running (see Section 6). 415 If the PCC determines that the LSP parameters proposed in the 416 PCInitiate message are unacceptable, it MUST send a PCErr message 417 with Error-type=24 (PCE instantiation error) and Error-value=1 418 (Unacceptable instantiation parameters). If the PCC encounters an 419 internal error during the processing of the PCInitiate message, it 420 MUST send a PCErr message with Error-type=24 (PCE instantiation 421 error) and Error-value=2 (Internal error). 423 A PCC MUST relay to the PCE errors it encounters in the setup of PCE- 424 initiated LSP by sending a PCErr message with Error-type=24 (PCE 425 instantiation error) and Error-value=3 (Signaling error). The PCErr 426 message MUST echo the SRP-ID-number of the PCInitiate message. The 427 PCEP-ERROR object SHOULD include the RSVP_ERROR_SPEC TLV (if an RSVP 428 ERROR_SPEC object was returned to the PCC by a downstream node). 429 After the LSP is set up, errors in RSVP signaling are reported in 430 PCRpt messages, as described in [RFC8231]. 432 On successful completion of the LSP instantiation, the PCC MUST send 433 a PCRpt message. The LSP object message MUST contain a non-zero 434 PLSP-ID that uniquely identifies the LSP within this PCC, and MUST 435 have the Create flag (Section 5.3.1) and Delegate flag set. The SRP 436 object MUST contain an SRP-ID-number that echoes the value from the 437 PCInitiate message that triggered the setup. The PCRpt MUST include 438 the attributes that the PCC used to instantiate the LSP. 440 A PCC SHOULD be able to place a limit on either the number of LSPs or 441 the percentage of resources that are allocated to honor PCE-initiated 442 LSP requests. As soon as that limit is reached, the PCC MUST send a 443 PCErr message with Error-type=19 (Invalid Operation) and Error- 444 value=6 (PCE-initiated LSP limit reached) and is free to drop any 445 incoming PCInitiate messages without additional processing. 447 Similarly, the PCE SHOULD be able to place a limit on either the 448 number of PCInitiate messages pending for a particular PCC, or on the 449 time it waits for a response (positive or negative) to a PCInitiate 450 message from a PCC and MAY take further action (such as closing the 451 session or removing all its LSPs) if this limit is reached. 453 5.3.1. The Create Flag 455 The LSP object is defined in [RFC8231] and included here for easy 456 reference with the addition of the new C flag. 458 0 1 2 3 459 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 460 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 461 | PLSP-ID |Flags |C| O |A|R|S|D| 462 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 463 // TLVs // 464 | | 465 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 467 Figure 4: The LSP Object format 469 A new flag, the Create (C) flag is introduced. On a PCRpt message, 470 the C Flag set to 1 indicates that this LSP was created via a 471 PCInitiate message. The C Flag MUST be set to 1 on each PCRpt 472 message for the duration of existence of the LSP. The Create flag 473 allows PCEs to be aware of which LSPs were PCE-initiated (a state 474 that would otherwise only be known by the PCC and the PCE that 475 initiated them). 477 5.3.2. The SPEAKER-ENTITY-ID TLV 479 The optional SPEAKER-ENTITY-ID TLV defined in [RFC8232] MAY be 480 included in the LSP object in a PCRpt message, as an optional TLV for 481 LSPs for which the C flag is 1. The SPEAKER-ENTITY-ID TLV identifies 482 the PCE which initiated the creation of the LSP on all PCEP sessions, 483 a state that would otherwise only be known by the PCC and the PCE 484 that initiated the LSP. If the TLV appears in a PCRpt for an LSP for 485 which the C flag is 0, the LSP MUST be ignored and the PCE MUST send 486 a PCErr message with Error-type=23 ("Bad parameter value") and Error- 487 value=2 ("Speaker identity included for an LSP that is not PCE- 488 initiated"). 490 5.4. LSP Deletion 492 A PCE can initiate the removal of a PCE-initiated LSP by sending a 493 PCInitiate message with an LSP object carrying the PLSP-ID of the LSP 494 to be removed and an SRP object with the R flag set (see 495 Section 5.2). A PLSP-ID of zero removes all LSPs with the C flag set 496 to 1 (in their LSP object) that are delegated to the PCE. 498 If the PLSP-ID is unknown, the PCC MUST send a PCErr message with 499 Error-type=19 ("Invalid operation") and Error-value=3 ("Unknown PLSP- 500 ID") ([RFC8231]). 502 If the PLSP-ID specified in the PCInitiate message is not delegated 503 to the PCE, the PCC MUST send a PCErr message with Error-type=19 504 ("Invalid operation") and Error-value=1 ("LSP is not delegated") 505 ([RFC8231]). 507 If the PLSP-ID specified in the PCInitiate message was not created by 508 a PCE, the PCC MUST send a PCErr message with Error-type=19 ("Invalid 509 operation") and Error-value=9 ("LSP is not PCE-initiated"). 511 Following the removal of the LSP, the PCC MUST send a PCRpt as 512 described in [RFC8231]. The SRP object in the PCRpt MUST include the 513 SRP-ID-number from the PCInitiate message that triggered the removal. 514 The R flag in the SRP object MUST be set. 516 6. LSP Delegation and Cleanup 518 The PCC MUST delegate PCE-initiated LSPs to the PCE upon 519 instantiation. The PCC MUST set the delegation bit to 1 in the PCRpt 520 that includes the assigned PLSP-ID. 522 The PCC MUST NOT revoke the delegation for a PCE-initiated LSP on an 523 active PCEP session. Therefore, all PCRpt messages from the PCC to 524 the PCE that owns the delegation MUST have the delegation bit set to 525 1. If the PCE that owns the delegation receives a PCRpt message with 526 the delegation bit set to 0 then it MUST send a PCErr message with 527 Error-type=19 ("Invalid Operation") and Error-value=7 ("Delegation 528 for PCE-initiated LSP cannot be revoked"). The PCE MAY further react 529 by closing the session. 531 Control over a PCE-initiated LSP can revert to the PCC in two ways. 532 A PCE MAY return a delegation to the PCC to allow for LSP transfer 533 between PCEs. Alternatively, the PCC gains control of an LSP if the 534 PCEP session that it was delegated on fails and the Redelegation 535 Timeout Interval timer expires. In both cases, the LSP becomes an 536 orphan until the expiration of the State Timeout Interval timer 537 ([RFC8231]). 539 The PCC MAY attempt to redelegate an orphaned LSP by following the 540 procedures of [RFC8231]. Alternatively, if the orphaned LSP was PCE- 541 initiated, then a PCE MAY obtain control over it, as follows. 543 A PCE (either the original or one of its backups) sends a PCInitiate 544 message, including just the SRP and LSP objects, and carrying the 545 PLSP-ID of the LSP it wants to take control of. If the PCC receives 546 a PCInitiate message with a PLSP-ID pointing to an orphaned PCE- 547 initiated LSP, then it MUST redelegate that LSP to the PCE. Any 548 other non-zero PLSP-ID MUST result in the generation of a PCErr 549 message using the rules described in Section 5.4. The State Timeout 550 Interval timer for the LSP is stopped upon the redelegation. After 551 obtaining control of the LSP, the PCE may remove it using the 552 procedures described in this document. 554 The State Timeout Interval timer ensures that a PCE crash does not 555 result in automatic and immediate disruption for the services using 556 PCE-initiated LSPs. PCE-initiated LSPs are not removed immediately 557 upon PCE failure. Instead, they are cleaned up on the expiration of 558 this timer. This allows for network cleanup without manual 559 intervention. The PCC MUST support removal of PCE-initiated LSPs as 560 one of the behaviors applied on expiration of the State Timeout 561 Interval timer. The behavior MUST be picked based on local policy, 562 and can result either in LSP removal, or in reverting to operator- 563 defined default parameters. 565 7. LSP State Synchronization 567 LSP State Synchronization procedures are described in section 5.4 of 568 [RFC8231]. During State Synchronization, a PCC reports the state of 569 its LSPs to the PCE using PCRpt messages, setting the SYNC flag in 570 the LSP Object. For PCE-initiated LSPs, the PCC MUST also set the 571 Create Flag in the LSP Object and MAY include the SPEAKER-ENTITY-ID 572 TLV identifying the PCE that requested the LSP creation. At the end 573 of state synchronization, the PCE SHOULD send a PCInitiate message to 574 initiate any missing LSPs and/or remove any LSPs that are not wanted. 575 Under some circumstances, depending on the deployment, it might be 576 preferable for a PCE not to send this PCInitiate immediately, or at 577 all. For example, the PCC may be a slow device, or the operator 578 might prefer not to disrupt active flows. 580 8. Implementation Status 582 This section to be removed by the RFC editor. 584 This section records the status of known implementations of the 585 protocol defined by this specification at the time of posting of this 586 Internet-Draft, and is based on a proposal described in [RFC7942]. 587 The description of implementations in this section is intended to 588 assist the IETF in its decision processes in progressing drafts to 589 RFCs. Please note that the listing of any individual implementation 590 here does not imply endorsement by the IETF. Furthermore, no effort 591 has been spent to verify the information presented here that was 592 supplied by IETF contributors. This is not intended as, and must not 593 be construed to be, a catalog of available implementations or their 594 features. Readers are advised to note that other implementations may 595 exist. 597 According to RFC 7942, "this will allow reviewers and working groups 598 to assign due consideration to documents that have the benefit of 599 running code, which may serve as evidence of valuable experimentation 600 and feedback that have made the implemented protocols more mature. 601 It is up to the individual working groups to use this information as 602 they see fit". 604 Two vendors are implementing the extensions described in this draft 605 and have included the functionality in releases that will be shipping 606 in the near future. An additional entity is working on implementing 607 these extensions in the scope of research projects. 609 9. IANA Considerations 611 This document requests IANA actions to allocate code points for the 612 protocol elements defined in this document. 614 9.1. PCEP Messages 616 IANA is requested to confirm the early allocation of the following 617 new message type within the "PCEP Messages" sub-registry of the PCEP 618 Numbers registry, and to update the reference in the registry to 619 point to this document, when it is an RFC: 621 Value Meaning Reference 622 12 LSP Initiate Request This document 624 Note to IANA: The early allocation was done for a message called 625 "Initiate". This name has changed to "LSP Initiate Request" as 626 above. 628 9.2. LSP Object 630 [RFC8231] defines the LSP Object and requests that IANA creates a 631 registry to manage the value of the LSP Object's Flag field. IANA is 632 requested to allocate a new bit in the LSP Object Flag Field 633 registry, as follows: 635 Bit Description Reference 637 4 Create This document 639 9.3. SRP object 641 This document requests that a new sub-registry, named "SRP Object 642 Flag Field", is created within the "Path Computation Element Protocol 643 (PCEP) Numbers" registry to manage the Flag field of the SRP object. 644 New values are to be assigned by Standards Action [RFC8126]. Each 645 bit should be tracked with the following qualities: bit number 646 (counting from bit 0 as the most significant bit), description and 647 defining RFC. 649 The following values are defined in this document: 651 Bit Description Reference 653 31 LSP-Remove This document 655 9.4. STATEFUL-PCE-CAPABILITY TLV 657 [RFC8231] defines the STATEFUL-PCE-CAPABILITY TLV and requests that 658 IANA creates a registry to manage the value of the STATEFUL-PCE- 659 CAPABILITY TLV's Flag field. IANA is requested to allocate a new bit 660 in the STATEFUL-PCE-CAPABILITY TLV Flag Field registry, as follows: 662 Bit Description Reference 664 29 I (LSP-INSTANTIATION- This document 665 CAPABILITY) 667 9.5. PCEP-Error Object 669 IANA is requested to confirm the early allocation of the following 670 new error types and error values within the "PCEP-ERROR Object Error 671 Types and Values" sub-registry of the PCEP Numbers registry, and to 672 update the reference in the registry to point to this document, when 673 it is an RFC: 675 Error-Type Meaning 676 10 Invalid Object 678 Error-value=8: SYMBOLIC-PATH-NAME TLV missing 679 19 Invalid operation 681 Error-value=6: PCE-initiated LSP limit reached 682 Error-value=7: Delegation for PCE-initiated LSP cannot 683 be revoked 684 Error-value=8: Non-zero PLSP-ID in PCInitiate message 685 Error-value=9: LSP is not PCE-initiated 686 Error-value=10: PCE-initiated operation-frequency limit 687 reached 688 23 Bad parameter value 690 Error-value=1: SYMBOLIC-PATH-NAME in use 691 Error-value=2: Speaker identity included for an LSP 692 that is not PCE-initiated 693 24 LSP instantiation error 695 Error-value=1: Unacceptable instantiation parameters 696 Error-value=2: Internal error 697 Error-value=3: Signaling error 699 10. Security Considerations 701 The security considerations described in [RFC8231] apply to the 702 extensions described in this document. Additional considerations 703 related to a malicious PCE are introduced. 705 10.1. Malicious PCE 707 The LSP instantiation mechanism described in this document allows a 708 PCE to generate state on the PCC and throughout the network. As a 709 result, it introduces a new attack vector: an attacker may flood the 710 PCC with LSP instantiation requests and consume network and LSR 711 resources, either by spoofing messages or by compromising the PCE 712 itself. 714 A PCC can protect itself from such an attack by imposing a limit on 715 either the number of LSPs or the percentage of resources that are 716 allocated to honor PCE-initiated LSP requests. As soon as that limit 717 is reached, the PCC MUST send a PCErr message with Error-type=19 718 ("Invalid Operation") and Error-value=6 ("PCE-initiated LSP limit 719 reached") and is free to drop any incoming PCInitiate messages for 720 LSP instantiation without additional processing. 722 Rapid flaps triggered by the PCE can also be an attack vector. A PCC 723 can protect itself from such an attack by imposing a limit on the 724 number of flaps per unit of time that it allows a PCE to generate. 725 As soon as that limit is reached, a PCC MUST send a PCErr message 726 with Error-type=19 ("Invalid Operation") and Error-value=10 ("PCE- 727 initiated operation frequency reached") and is free to treat the 728 session as having reached the limit in terms of resources allocated 729 to honor PCE-initiated LSP requests, either permanently or for a 730 locally-defined cool-off period. 732 10.2. Malicious PCC 734 The LSP instantiation mechanism described in this document requires 735 the PCE to keep state for LSPs that it instantiates and relies on the 736 PCC responding (with either a state report or an error message) to 737 requests for LSP instantiation. A malicious PCC or one that reached 738 the limit of the number of PCE-initiated LSPs, can ignore PCE 739 requests and consume PCE resources. A PCE can protect itself by 740 imposing a limit on the number of requests pending, or by setting a 741 timeout and it MAY take further action such as closing the session or 742 removing all the LSPs it initiated. 744 11. Acknowledgements 746 We would like to thank Jan Medved, Ambrose Kwong, Ramon Casellas, 747 Cyril Margaria, Dhruv Dhody, Raveendra Trovi and Jon Hardwick for 748 their contributions to this document. 750 12. References 752 12.1. Normative References 754 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 755 Requirement Levels", BCP 14, RFC 2119, 756 DOI 10.17487/RFC2119, March 1997, . 759 [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation 760 Element (PCE) Communication Protocol (PCEP)", RFC 5440, 761 DOI 10.17487/RFC5440, March 2009, . 764 [RFC5511] Farrel, A., "Routing Backus-Naur Form (RBNF): A Syntax 765 Used to Form Encoding Rules in Various Routing Protocol 766 Specifications", RFC 5511, DOI 10.17487/RFC5511, April 767 2009, . 769 [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path 770 Computation Element Communication Protocol (PCEP) 771 Extensions for Stateful PCE", RFC 8231, 772 DOI 10.17487/RFC8231, September 2017, . 775 [RFC8232] Crabbe, E., Minei, I., Medved, J., Varga, R., Zhang, X., 776 and D. Dhody, "Optimizations of Label Switched Path State 777 Synchronization Procedures for a Stateful PCE", RFC 8232, 778 DOI 10.17487/RFC8232, September 2017, . 781 12.2. Informative References 783 [RFC4657] Ash, J., Ed. and J. Le Roux, Ed., "Path Computation 784 Element (PCE) Communication Protocol Generic 785 Requirements", RFC 4657, DOI 10.17487/RFC4657, September 786 2006, . 788 [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running 789 Code: The Implementation Status Section", BCP 205, 790 RFC 7942, DOI 10.17487/RFC7942, July 2016, 791 . 793 [RFC8051] Zhang, X., Ed. and I. Minei, Ed., "Applicability of a 794 Stateful Path Computation Element (PCE)", RFC 8051, 795 DOI 10.17487/RFC8051, January 2017, . 798 [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for 799 Writing an IANA Considerations Section in RFCs", BCP 26, 800 RFC 8126, DOI 10.17487/RFC8126, June 2017, 801 . 803 Authors' Addresses 805 Edward Crabbe 806 Individual Contributor 808 Email: edward.crabbe@gmail.com 809 Ina Minei 810 Google, Inc. 811 1600 Amphitheatre Parkway 812 Mountain View, CA 94043 813 US 815 Email: inaminei@google.com 817 Siva Sivabalan 818 Cisco Systems, Inc. 819 170 West Tasman Dr. 820 San Jose, CA 95134 821 US 823 Email: msiva@cisco.com 825 Robert Varga 826 Pantheon Technologies SRO 827 Mlynske Nivy 56 828 Bratislava 821 05 829 Slovakia 831 Email: robert.varga@pantheon.tech