idnits 2.17.1 draft-alvarez-pce-path-profiles-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 (November 7, 2014) is 3458 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: 'TBA' is mentioned on line 407, but not defined == Outdated reference: A later version (-11) exists of draft-ietf-pce-pce-initiated-lsp-00 == Outdated reference: A later version (-21) exists of draft-ietf-pce-stateful-pce-08 ** Obsolete normative reference: RFC 6006 (Obsoleted by RFC 8306) Summary: 1 error (**), 0 flaws (~~), 4 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force S. Alvarez 3 Internet-Draft S. Sivabalan 4 Intended status: Standards Track Z. Ali 5 Expires: May 11, 2015 Cisco Systems, Inc. 6 L. Tomotaki 7 Verizon 8 V. Lopez 9 Telefonica I+D 10 R. Shakir 11 BT 12 J. Tantsura 13 Ericsson 14 November 7, 2014 16 PCE Path Profiles 17 draft-alvarez-pce-path-profiles-04 19 Abstract 21 This document describes extensions to the Path Computation Element 22 (PCE) Communication Protocol (PCEP) to signal path profile 23 identifiers. A profile represents a list of path parameters or 24 policies that a PCEP peer may invoke on a remote peer using an opaque 25 identifier. When a path computation client (PCC) initiates a path 26 computation request, the PCC can signal profile identifiers to invoke 27 path parameters or policies defined on the PCE which would influence 28 the path computation. Similarly, when a PCE initiates or updates a 29 path, the PCE can signal profile identifiers to invoke path 30 parameters or policies defined on the PCC which would influence the 31 path setup. 33 Status of This Memo 35 This Internet-Draft is submitted in full conformance with the 36 provisions of BCP 78 and BCP 79. 38 Internet-Drafts are working documents of the Internet Engineering 39 Task Force (IETF). Note that other groups may also distribute 40 working documents as Internet-Drafts. The list of current Internet- 41 Drafts is at http://datatracker.ietf.org/drafts/current/. 43 Internet-Drafts are draft documents valid for a maximum of six months 44 and may be updated, replaced, or obsoleted by other documents at any 45 time. It is inappropriate to use Internet-Drafts as reference 46 material or to cite them other than as "work in progress." 48 This Internet-Draft will expire on May 11, 2015. 50 Copyright Notice 52 Copyright (c) 2014 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 . . . . . . . . . . . . . . . . . . . . . . . . 2 68 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 69 2. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 3 70 3. Path Profiles . . . . . . . . . . . . . . . . . . . . . . . . 4 71 4. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 4 72 4.1. Capability Advertisement . . . . . . . . . . . . . . . . 5 73 4.2. PCC-Initiated Paths . . . . . . . . . . . . . . . . . . . 5 74 4.2.1. Point-to-Point Paths . . . . . . . . . . . . . . . . 6 75 4.2.2. Point-to-Multipoint Paths . . . . . . . . . . . . . . 7 76 4.3. PCE-Initiated Paths . . . . . . . . . . . . . . . . . . . 7 77 5. Object Extensions . . . . . . . . . . . . . . . . . . . . . . 9 78 5.1. OPEN Object . . . . . . . . . . . . . . . . . . . . . . . 9 79 5.2. PATH-PROFILE Object . . . . . . . . . . . . . . . . . . . 9 80 6. Error Codes for PATH-PROFILE Object . . . . . . . . . . . . . 11 81 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 82 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 83 9. Security Considerations . . . . . . . . . . . . . . . . . . . 11 84 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 85 10.1. Normative References . . . . . . . . . . . . . . . . . . 11 86 10.2. Informative References . . . . . . . . . . . . . . . . . 12 87 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 89 1. Introduction 91 [RFC4655] specifies an architecture to address path computation 92 requirements in large, multi-domain, multi-region and multi-layer 93 networks. The architecture defines two main functional nodes: a path 94 computation client (PCC) and a path computation element (PCE). It 95 includes considerations for centralized versus distributed 96 computation, synchronization, PCE discovery, PCE load balancing, PCE 97 liveness detection, PCC-PCE and PCE-PCE communication, Traffic 98 Engineering Database (TED) synchronization, stateful versus stateless 99 PCEs, monitoring, policy, confidentiality, and evaluation metrics. 101 [RFC5440] specifies the PCE Protocol (PCEP) for communications 102 between a PCC and a PCE, or between two PCEs. 103 [I-D.ietf-pce-stateful-pce] specifies PCEP extensions for stateful 104 control of LSPs including LSP state synchronization between PCCs and 105 PCEs, delegation of LSP control to PCEs, and PCE control of timing 106 and sequence of path computations within and across PCEP sessions. 107 [I-D.ietf-pce-pce-initiated-lsp] introduces PCEP extensions to allow 108 a stateful PCE to set up, maintain and tear down LSPs without the 109 need for local configuration on the PCC. 111 This document describes PCEP extensions to signal path profile 112 identifiers. A profile represents a list of path parameters or 113 policies that a PCEP peer may invoke on a remote peer using an opaque 114 identifier. The PCE may be stateful or stateless. When a path 115 computation client (PCC) initiates a path computation request, the 116 PCC can signal profile identifiers to invoke path parameters or 117 policies defined on the PCE which would influence the path 118 computation. Similarly, when a PCE initiates or updates a path, the 119 PCE can signal profile identifiers to invoke path parameters or 120 policies defined on the PCC which would influence the path setup. 122 1.1. Requirements Language 124 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 125 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 126 document are to be interpreted as described in RFC 2119 [RFC2119]. 128 2. Motivation 130 PCEP peers may need to specify request-specific parameters and 131 policies without signaling them explicitly. The signaling of one or 132 more path profile identifiers allows peers to make use of opaque 133 identifiers to implicitly communicate such information. An important 134 characteristic of this approach is that the transmitting peer does 135 not need to know the specifics of the profiles and can invoke new 136 functional enhancements on the receiving peer without requiring 137 changes to its implementation. 139 There are multiple reasons why the explicit communication of some 140 parameters and policies may not be possible or desirable. The 141 transmitting peer may not implement the protocol extensions required 142 or such extensions do not exist. The defintion of some parameters 143 and policies may be located on the receiving peer as a matter of 144 operational preference. The parameters and policies may not be 145 directly related to computation or instantiation of the path, but may 146 be related to other functionality associated with the path (e.g. 147 traffic steering, accounting, monitoring, etc). 149 A PCC may use path profiles in numerous scenarios when requesting a 150 path computation. For example, a PCE may be provisioned with a 151 policy profile that enforces path diversity, elaborate dependencies 152 between paths or time-based behaviors. Alternative, a PCE may be 153 provisioned with a set of configuration profiles that define path 154 computation parameters. These policies and configuration parameters 155 can be centrally managed on the PCE and made effective across 156 multiple PCCs. A PCC does not need to know the specifics of the 157 profiles and is able to invoke new PCE functionality without changes 158 to its implementation. 160 Similarly, a PCE may use path profiles in numerous scenarios when 161 initiating or updating a path on a PCC. A PCC may be provisioned 162 with a set of configuration and policy profiles that may be applied 163 to paths. For example, those profiles could specify a policy to 164 steer traffic into the path or configuration parameters related to 165 traffic accounting, event logging, path monitoring, etc. A PCE can 166 invoke these policies and configuration, so the PCC can establish a 167 more completly configured path. A PCE does not need to know the 168 specifics of the profiles and is able to invoke new PCC functionality 169 without changes to its implementation. 171 3. Path Profiles 173 A path profile represents a list of path parameters or policies that 174 a PCEP peer may invoke on a remote peer using a profile identifier. 175 The receiving peer interprets the identifier according to a local 176 path profile definition. The PATH-PROFILE object defined in 177 Section 5.2 can signal one or more profile identifiers. PCEP carries 178 profile identifiers as opaque values. PCEP peers do not exchange the 179 details of a path profile. 181 Regarding policies in particular, the PCE path profile specifications 182 in this document enable a new type of policy realization in the PCE 183 architecture. They define an approach where request-specific 184 policies may be communicated implicitly to achieve some level of 185 coordination of policy between PCEP peers. [RFC4655] defines the 186 current policy realization options and policy types in the PCE 187 architecture. 189 4. Procedures 190 4.1. Capability Advertisement 192 PCEP peers advertise their capability to support path profile 193 identifiers during the session initialization phase. They include 194 the PATH-PROFILE-CAPABILITY TLV defined in Section 5.1 as part of the 195 OPEN object. A PCEP peer can only signal path profile identifiers if 196 both peers advertised this capability. A peer MUST send a PCErr 197 message with Error-Type=4 (Not supported object), Error-value=1 (Not 198 supported object class) and close the session if it receives a 199 message with a path profile identifier, it supports the extensions in 200 this document and both peers did not advertise this capability. 202 4.2. PCC-Initiated Paths 204 A PCC MAY include a PATH-PROFILE object when sending a PCReq message. 205 The PCE uses the path profile identifiers to select path parameters 206 or path policies to fulfill the request. The PCE MUST process the 207 identifiers in the PATH-PROFILE object in the order received. The 208 means by which the PCC learns about a particular path profile 209 identifier and decides to include it in a PCReq message are outside 210 the scope of this document. Similarly, the means by which the PCE 211 selects a set of parameters or policies based on the profile 212 identifier for a specific request are outside the scope of this 213 document. The P flag of the PATH-PROFILE object MUST be set. 215 A PCE may receive a path computation request with one or more 216 unexpected path profile identifiers. The PCE sends a PCErr message 217 with Error-Type=[TBA] (PATH-PROFILE Error), Error-value=1 (Unknown 218 path profile) if the path profile identifier is not known to the PCE. 219 The PCE sends a PCErr message with Error-Type=[TBA] (PATH-PROFILE 220 Error), Error-value=2 (Invalid path profile) if the PCE knows about 221 the path profile identifier, but considers the request invalid. As 222 an example, the profile may be invalid because of the path type, the 223 PCEP session type or the originating PCC. The PCE sends a PCErr 224 message with Error-Type=[TBA] (PATH-PROFILE Error), Error-value=3 225 (Incompatible path profiles) if two or more path profile identifiers 226 are incompatible. That is, they are known and valid, but can not 227 occur simultanously. The PCEP-ERROR object SHOULD include the path 228 profile identifiers that generated the error condition. 230 The PCE will determine whether to consider any additional optional 231 objects included in a PCReq message based on policy. As illustrated 232 in Section 4.2.1 and Section 4.2.2, the PCC MAY include other 233 optional objects along with a PATH-PROFILE object as part of a path 234 computation request. The PCC will use the processing-rule (P) flag 235 in the common object header to signal whether it considers those 236 objects mandatory or optional when the PCE performs path computation. 238 Those objects may overlap with the path parameters that the PCE 239 associates with the path profile identifier. 241 PCE policy may place different kinds of restrictions on PCReq 242 messages that include a PATH-PROFILE object and additional 243 parameters. A PCE MUST send an error message if it receives a 244 request with optional objects signaled as mandatory (P flag = 1) for 245 path computation and PCE policy does not allow such behavior from the 246 originating PCC. In that case, the PCE sends a PCErr message with 247 Error-Type=[TBA] (PATH-PROFILE Error), Error-value=3 (Unexpected 248 mandatory object). If the objects are signaled as optional (P flag = 249 0) for path computation, the PCE will decide based on policy whether 250 to consider them or not. When sending the PCRep message for the 251 request, the PCE will use the ignore (I) flag in the common object 252 header to indicate to the PCC whether an object was ignored. 254 4.2.1. Point-to-Point Paths 256 [RFC5440] defines the basic structure of a PCReq message for point- 257 to-point paths. This documents extends the message format as 258 follows: 260 ::= 261 [] 262 264 where: 266 ::=[] 267 ::=[] 269 ::= 270 271 [] 272 [] 274 where: 276 is the list of optional objects used for path 277 computation as defined initially in [RFC5440] and modified in 278 subsequent PCEP extensions. 280 If present in a PCReq message, the PATH-PROFILE object MUST be the 281 first optional object in the request portion of the message. 283 4.2.2. Point-to-Multipoint Paths 285 [RFC6006] defines the basic structure of a PCReq message for point- 286 to-multipoint paths. This documents extends the message format as 287 follows: 289 ::= 290 292 where: 294 ::= 295 296 [] 297 [] 298 [] 299 [] 300 [] 301 [] 302 [] 304 where: 306 ::= 307 [][] 308 [] 310 ::=[][] 311 ::=[] 313 If present in a PCReq message, the PATH-PROFILE object MUST be the 314 first optional object in the request portion of the message. 316 4.3. PCE-Initiated Paths 318 A PCE MAY include a PATH-PROFILE object when sending a PCInitiate 319 message as defined in [I-D.ietf-pce-pce-initiated-lsp]. The PCC uses 320 the path profile identifiers to select path parameters or path 321 policies to be applied during the instantiation of the path. The PCC 322 MUST process the identifiers in the PATH-PROFILE object in the order 323 received. The means by which the PCE learns about a particular path 324 profile identifier and decides to include it in a PCInitiate message 325 are outside the scope of this document. Similarly, the means by 326 which the PCC selects a set of parameters or policies based on the 327 profile identifier for a specific path are outside the scope of this 328 document. 330 A PCC may receive a path instantiation request with one or more 331 unexpected path profile identifiers. The PCC sends a PCErr message 332 with Error-Type=[TBA] (PATH-PROFILE Error), Error-value=1 (Unknown 333 path profiles) if the path profile identifier is not known to the 334 PCC. The PCC sends a PCErr message with Error-Type=[TBA] (PATH- 335 PROFILE Error), Error-value=2 (Invalid path profiles) if the PCC 336 knows about the path profile identifier, but considers the request 337 invalid. As an example, the profile may be invalid because of the 338 path type, the PCEP session type or the originating PCE. The PCC 339 sends a PCErr message with Error-Type=[TBA] (PATH-PROFILE Error), 340 Error-value=3 (Incompatible path profiles) if two or more path 341 profile identifiers are incompatible. That is, they are known and 342 valid, but can not occur simultanously. The PCEP-ERROR object SHOULD 343 include the path profile identifiers that generated the error 344 condition. 346 [I-D.ietf-pce-pce-initiated-lsp] defines the basic structure of a 347 PCInitiate message. This documents extends the message format as 348 follows: 350 ::= 351 352 Where: 354 ::= 355 [] 357 ::= (| 358 ) 360 ::= 361 362 363 364 [PATH-PROFILE> 365 [] 367 ::= 368 370 where: 372 is defined in [RFC5440] and extended by PCEP 373 extensions. 375 5. Object Extensions 377 5.1. OPEN Object 379 This documents defines a new optional PATH-PROFILE-CAPABILITY TLV in 380 the OPEN object. 382 0 1 2 3 383 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 384 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 385 | Type=[TBA] | Length=4 | 386 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 387 | Reserved | Flags | 388 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 390 PATH-PROFILE-CAPABILITY TLV 392 Figure 1 394 Reserved (16 bits): 395 MUST be set to zero on transmission and ignored on receipt. 397 Flags (16 bits): 398 Unassigned bits are considered reserved. They MUST be set to zero 399 on transmission and ignored on receipt. No flags are currently 400 defined. 402 5.2. PATH-PROFILE Object 404 The PATH-PROFILE object may be carried in PCReq, PCInitiate and PCUpd 405 messages. 407 PATH-PROFILE Object-Class is [TBA]. 409 PATH-PROFILE Object-Type is 1. 411 0 1 2 3 412 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 413 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 414 | | 415 // TLVs // 416 | | 417 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 419 PATH-PROFILE Object 421 Figure 2 423 The PATH-PROFILE object has a variable length and contains one or 424 more PATH-PROFILE-ID TLVs. 426 0 1 2 3 427 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 428 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 429 | Type=[TBD] | Length=10 | 430 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 431 | Reserved | Flags | Path Profile Id | 432 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 433 | Path Profile Id (cont) | Extended Id | 434 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 435 | Extended Id (cont) | 436 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 438 PATH-PROFILE-ID TLV 440 Figure 3 442 Reserved (8 bits): 443 MUST be set to zero on transmission and ignored on receipt. 445 Flags (8 bits): 447 0x01 (X) - Extended Id Flag 449 It indicates to the receiver that an extended 450 identifier associated with Path Profile Id is present. 452 Path Profile Id (32 bits): 453 (non-zero) unsigned path profile identifier. 455 Extended Id (32 bits): 457 Extended identifier associated with Path Profile Id. MUST be set 458 to zero on transmission and ignored on receipt unless the Extended 459 Id flag is set. 461 If more than one PATH-PROFILE object is present, the first one MUST 462 be processed and subsequent objects ignored. 464 6. Error Codes for PATH-PROFILE Object 466 Error-Type Meaning Error-Value 467 PATH-PROFILE Error 1: Unknown path profiles 468 2: Invalid path profiles 469 3: Incompatible path profiles 470 4: Unexpected mandatory object 472 7. Acknowledgements 474 The authors would like to thank Clarence Filsfils for his valuable 475 comments. 477 8. IANA Considerations 479 IANA is requested to assign the following code points. 481 PATH-PROFILE-CAPABILITY TLV 483 PATH-PROFILE Object-Class 485 PATH-PROFILE Object-Type 487 PATH-PROFILE Error-Type 489 9. Security Considerations 491 This document does not introduce new security concerns. The security 492 considerations in [RFC4655], [I-D.ietf-pce-stateful-pce] and 493 [I-D.ietf-pce-pce-initiated-lsp] remain relevant. 495 10. References 497 10.1. Normative References 499 [I-D.ietf-pce-pce-initiated-lsp] 500 Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "PCEP 501 Extensions for PCE-initiated LSP Setup in a Stateful PCE 502 Model", draft-ietf-pce-pce-initiated-lsp-00 (work in 503 progress), December 2013. 505 [I-D.ietf-pce-stateful-pce] 506 Crabbe, E., Medved, J., Minei, I., and R. Varga, "PCEP 507 Extensions for Stateful PCE", draft-ietf-pce-stateful- 508 pce-08 (work in progress), February 2014. 510 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 511 Requirement Levels", BCP 14, RFC 2119, March 1997. 513 [RFC5440] Vasseur, JP. and JL. Le Roux, "Path Computation Element 514 (PCE) Communication Protocol (PCEP)", RFC 5440, March 515 2009. 517 [RFC6006] Zhao, Q., King, D., Verhaeghe, F., Takeda, T., Ali, Z., 518 and J. Meuric, "Extensions to the Path Computation Element 519 Communication Protocol (PCEP) for Point-to-Multipoint 520 Traffic Engineering Label Switched Paths", RFC 6006, 521 September 2010. 523 10.2. Informative References 525 [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation 526 Element (PCE)-Based Architecture", RFC 4655, August 2006. 528 Authors' Addresses 530 Santiago Alvarez 531 Cisco Systems, Inc. 532 170 West Tasman Drive 533 San Jose, CA 95134 534 USA 536 Email: saalvare@cisco.com 538 Siva Sivabalan 539 Cisco Systems, Inc. 540 2000 Innovation Drive 541 Kanata, ON K2K-3E8 542 Canada 544 Email: msiva@cisco.com 545 Zafar Ali 546 Cisco Systems, Inc. 547 2000 Innovation Drive 548 Kanata, ON K2K-3E8 549 Canada 551 Email: zali@cisco.com 553 Luis Tomotaki 554 Verizon 555 400 International 556 Richardson, TX 75081 557 US 559 Email: luis.tomotaki@verizon.com 561 Victor Lopez 562 Telefonica I+D 563 c/ Don Ramon de la Cruz 84 564 Madrid 28006 565 Spain 567 Email: vlopez@tid.es 569 Rob Shakir 570 BT 571 London 572 UK 574 Email: rob.shakir@bt.com 576 Jeff Tantsura 577 Ericsson 578 300 Holger Way 579 San Jose, CA 95134 580 US 582 Email: Jeff.Tantsura@ericsson.com