idnits 2.17.1 draft-sivabalan-pce-segment-routing-00.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 == Line 288 has weird spacing: '...L' Flag indic...' == Line 294 has weird spacing: '... Type is th...' == Line 298 has weird spacing: '... Length conta...' == Line 306 has weird spacing: '... Flags is us...' == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: An SR-TE path consists of one or more SID(s) where each SID is associated with the identifier that represents the node or adjacency corresponding to the SID. This identifier is referred to as the 'Node or Adjacency Identifie'r (NAI). As described later, a NAI can be represented in various formats (e.g., IPv4 address, IPv6 address, etc). Furthermore, a NAI is used only for troubleshooting purposes, and MUST not be used to replace or modify any fields in a data packet header. An SR-ERO object consists of one or more ERO subobjects described in the following section. == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: The 'L' Flag indicates whether the subobject represents a loose-hop in the explicit route [RFC3209]. If this flag is unset, a PCC MUST not overwrite the SID value present in the SR-ERO subobject. Otherwise, a PCC MAY expand or replace one or more SID value(s) in the received SR-ERO based on its local policy. -- The document date (June 17, 2013) is 3966 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) == Unused Reference: 'RFC5088' is defined on line 599, but no explicit reference was found in the text == Unused Reference: 'RFC5089' is defined on line 603, but no explicit reference was found in the text == Unused Reference: 'RFC4655' is defined on line 639, but no explicit reference was found in the text == Unused Reference: 'RFC5305' is defined on line 646, but no explicit reference was found in the text == Unused Reference: 'RFC5394' is defined on line 649, but no explicit reference was found in the text == Unused Reference: 'RFC5557' is defined on line 653, but no explicit reference was found in the text == Outdated reference: A later version (-03) exists of draft-crabbe-pce-pce-initiated-lsp-00 == Outdated reference: A later version (-11) exists of draft-ietf-pce-pcep-mib-04 == Outdated reference: A later version (-21) exists of draft-ietf-pce-stateful-pce-04 -- No information found for draft-filsfils-previdi-segment-routing - is the name correct? -- Possible downref: Normative reference to a draft: ref. 'SR-ARCH' == Outdated reference: A later version (-02) exists of draft-previdi-filsfils-isis-segment-routing-00 Summary: 0 errors (**), 0 flaws (~~), 17 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group S. Sivabalan 3 Internet-Draft C. Filsfils 4 Intended status: Standards Track J. Medved 5 Expires: December 19, 2013 Cisco Systems, Inc. 6 E. Crabbe 7 Google, Inc. 8 R. Raszuk 9 NTT I3 10 June 17, 2013 12 PCE-Initiated Traffic Engineering Path Setup in Segment Routed Networks 13 draft-sivabalan-pce-segment-routing-00.txt 15 Abstract 17 Segment Routing (SR) enables any head-end node to select any path 18 without relying on a hop-by-hop signaling technique (e.g., LDP or 19 RSVP-TE). It depends only on "segments" that are advertised by Link- 20 State Interior Gateway Protocols (IGPs). A Segment Routed Path can 21 be derived from a variety of mechanisms, including an IGP Shortest 22 Path Tree (SPT), explicit configuration, or a stateful Path 23 Computation Element (PCE). This document specifies extensions to the 24 Path Computation Element Protocol (PCEP) that allow a stateful PCE to 25 signal and instantiate Traffic Engineering paths in SR networks. 27 Requirements Language 29 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 30 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 31 document are to be interpreted as described in [RFC2119]. 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 December 19, 2013. 50 Copyright Notice 52 Copyright (c) 2013 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 . . . . . . . . . . . . . . . . . . . . . . . . . 4 69 3. Overview of PCEP Operation in SR Networks . . . . . . . . . . 4 70 4. SR Capability Negotiation . . . . . . . . . . . . . . . . . . 5 71 4.1. Negotiating SR Capability . . . . . . . . . . . . . . . . 6 72 5. SR-ERO objects . . . . . . . . . . . . . . . . . . . . . . . . 6 73 5.1. The SR-ERO Subobject . . . . . . . . . . . . . . . . . . . 6 74 5.2. NAI Associated with SID . . . . . . . . . . . . . . . . . 8 75 5.3. SR-ERO Processing . . . . . . . . . . . . . . . . . . . . 10 76 6. The SR-RRO Object . . . . . . . . . . . . . . . . . . . . . . 10 77 7. SR Specific PCEP Descriptors . . . . . . . . . . . . . . . . . 11 78 7.1. PCEP Descriptor for PCCreate Message . . . . . . . . . . . 11 79 7.2. PCEP Descriptor for PCRpt Message . . . . . . . . . . . . 11 80 7.3. PCEP Descriptor for PCUpd Message . . . . . . . . . . . . 12 81 8. Backward Compatibility . . . . . . . . . . . . . . . . . . . . 12 82 9. Management Considerations . . . . . . . . . . . . . . . . . . 12 83 9.1. Policy . . . . . . . . . . . . . . . . . . . . . . . . . . 12 84 9.2. The PCEP Data Model . . . . . . . . . . . . . . . . . . . 13 85 10. Security Considerations . . . . . . . . . . . . . . . . . . . 13 86 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 87 12. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 13 88 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13 89 13.1. Normative References . . . . . . . . . . . . . . . . . . . 13 90 13.2. Informative References . . . . . . . . . . . . . . . . . . 15 91 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 15 93 1. Introduction 95 In SR networks, a chosen without relying on hop-by-hop signaling 96 protocols such as LDP or RSVP-TE. Each path is specified as a set of 97 "segments" advertised by link-state routing protocols (IS-IS or 98 OSPF). [SR-ARCH] provides an introduction to SR technology. The 99 corresponding IS-IS extension and OSPF extension are specified 100 repectively in [SR-ISIS] and a document to be published soon. Two 101 types of segments have been defined; nodal and adjacency segments. A 102 nodal segment represents a path to a node, whereas an adjacency 103 segment represents a specific adjacency to a node. A Segment 104 Identifier (SID) is a 32-bit value and can be applied to both IP and 105 MPLS data planes. In the case of the MPLS data plane, an SR path 106 corresponds to an MPLS Label Switching Path (LSP) 108 A Segment Routed path (SR path) can be derived from an IGP Shortest 109 Path Tree (SPT). Segment Routed Traffic Engineering paths (SR-TE 110 paths) may not follow IGP SPT. Such paths may be chosen by a 111 suitable network planning tool and provisioned on the source node of 112 the SR-TE path. 114 [RFC5440] describes Path Computation Element Protocol (PCEP) for 115 communication between a Path Computation Client (PCC) and a Path 116 Control Element (PCE) or between one a pair of PCEs. A PCE computes 117 paths for MPLS Traffic Engineering LSPs (MPLS-TE LSPs) based on 118 various constraints and optimization criteria. 119 [I-D.ietf-pce-stateful-pce] specifies extensions to PCEP that allow a 120 stateful PCE to compute and recommend network paths in compliance 121 with [RFC4657]. Stateful PCEP extensions provide synchronization of 122 LSP state between a PCC and a PCE or between a pair of PCEs, 123 delegation of LSP control, reporting of LSP state from a PCC to a 124 PCE, controlling the setup and path routing of an LSP from a PCE to a 125 PCC. Stateful PCEP extensions are intended for an operational model 126 in which LSPs are configured on the PCC, and control over them is 127 delegated to the PCE. [I-D.crabbe-pce-stateful-pce-mpls-te] builds 128 on [I-D.ietf-pce-stateful-pce] to specify objects and TLVs for 129 MPLS-TE LSPs. Moreover, a mechanism to dynamically instantiate LSPs 130 on a PCC based on the requests from a stateful PCE or a controller 131 using stateful PCE is specified in 132 [I-D.crabbe-pce-pce-initiated-lsp]. Such mechanism is useful in 133 Software Driven Networks (SDN) applications, such as demand 134 engineering, or bandwidth calendaring. 136 It is possible to use a stateful PCE for computing one or more SR-TE 137 paths taking into account various constraints and objective 138 functions. Once a path is chosen, the stateful PCE can instantiate 139 an SR-TE path on the PCC using PCEP extensions specified in 140 [I-D.crabbe-pce-pce-initiated-lsp] along with the SR specific PCEP 141 extensions provided in this document. 143 2. Terminology 145 The following terminologies are used in this document: 147 ERO: Explicit Route Object. 149 IGP: Interior Gateway Protocol. 151 IS-IS: Intermediate System to Intermediate System. 153 LSR: Label Switching Router. 155 NAI: Node or Adjacency Identifier. 157 OSPF: Open Shortest Path First. 159 PCC: Path Computation Client. 161 PCE: Path Computation Element 163 PCEP: Path Computation Element Protocol. 165 RRO: Record Route Object. 167 SR: Segment Routing. 169 SR-ERO: Segment Routed Explicit Route Object. 171 SR Path: Segment Routed Path. 173 SR-RRO: Segment Routed Record Route Object. 175 SR-TE Path: Segment Routed Traffic Engineering Path. 177 3. Overview of PCEP Operation in SR Networks 179 In SR networks, an ingress node of an SR path appends all outgoing 180 packets with an SR header consisting of a list of Segment IDs (SIDs). 181 The header has all necessary information to guide the packets from 182 the ingress node to the egress node of the path, and hence there is 183 no need for any signaling protocol. A SID can represent a nodal 184 segment representing a path to a node or adjacency segment 185 representing path over a specific adjacency. 187 In a PCEP session, path information is carried in the Explicit Route 188 Object (ERO), which consists of a sequence of subobjects. Various 189 types of ERO subobjects have been specified in [RFC3209], [RFC3473], 190 and [RFC3477]. In SR networks, a PCE needs to specify ERO containing 191 SIDs, and a PCC should be capable of processing such ERO. An ERO 192 containing SIDs can be included in the PCEP Create message (PCCreate) 193 defined in [I-D.crabbe-pce-pce-initiated-lsp], as well as in the PCEP 194 Update (PCUpd) and PCEP Report (PCRpt) messages defined in 195 [I-D.ietf-pce-stateful-pce]. 197 When a PCEP session between a PCC and a PCE is established, both PCEP 198 Speakers exchange information to indicate their ability to support 199 SR-specific functionality. A PCEP session can carry EROs of 200 different types. However, an ERO carrying SIDs MUST NOT include any 201 other form of EROs, i.e., all subobjects within an ERO MUST represent 202 SID. Furthermore, if an SR path is established using SR-ERO, 203 subsequent PCEP Update and Report messages for that path MUST NOT 204 contain other ERO types. This document specifies new error codes to 205 handle these errors. Should the need to change the ERO type arise, 206 the SR path must be deleted and re-created using a new ERO type. 208 A PCC can include an RRO object in a PCRpt message. In SR networks, 209 a PCC MAY learn the SR actual path actually taken by data packets and 210 report that path to a PCE. For this purpose, we introduce a new RRO 211 subobject type. However, methods used by a PCC to learn SR-TE paths 212 are outside the scope of this document. 214 In summary, this document specifies a new PCEP capability, a new ERO 215 subobject, a new RRO subobject, and new PCEP error codes. 217 4. SR Capability Negotiation 219 The format of the STATEFUL-PCE-CAPABILITY TLV is shown in the 220 following figure: 222 0 1 2 3 223 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 224 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 225 | Type= TBD | Length=4 | 226 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 227 | Flags |R|I|S|U| 228 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 230 Figure 1: STATEFUL-PCE-CAPABILITY TLV format 232 The type of the TLV is to be defined in [I-D.ietf-pce-stateful-pce]. 233 The TLV length is 4 octets. 235 The value comprises a single field - Flags (32 bits). The U and S 236 flags are defined in [I-D.ietf-pce-stateful-pce]. The I flag is 237 defined in [I-D.crabbe-pce-pce-initiated-lsp]. 239 A new flag - the "R bit" - is used to negotiate the SR capability 240 between a PCE and a PCC. 242 4.1. Negotiating SR Capability 244 By setting the R-bit to 1, a PCEP Speaker indicates that it is SR- 245 capable, i.e., it is able to perform SR related PCEP functions 246 specified in this document. An SR-capable PCEP Speaker must be able 247 to handle EROs containing SIDs (referred to as "SR-EROs" in this 248 document). A PCEP Speaker MAY originate SR-ERO only if both PCEP 249 Speakers in a PCEP session are SR-capable. A pair of SR-capable PCEP 250 Speakers can exchange SR-EROs in PCCreate and PCUpd messages. 251 Similarly, an SR-capable PCEP Speaker must be able to handle RROs 252 containing SIDs (referred to as "SR-RRO" in this document). A pair 253 of PCEP Speakers can exchange SR-RROs in PCRpt message. 255 5. SR-ERO objects 257 An SR-TE path consists of one or more SID(s) where each SID is 258 associated with the identifier that represents the node or adjacency 259 corresponding to the SID. This identifier is referred to as the 260 'Node or Adjacency Identifie'r (NAI). As described later, a NAI can 261 be represented in various formats (e.g., IPv4 address, IPv6 address, 262 etc). Furthermore, a NAI is used only for troubleshooting purposes, 263 and MUST not be used to replace or modify any fields in a data packet 264 header. An SR-ERO object consists of one or more ERO subobjects 265 described in the following section. 267 5.1. The SR-ERO Subobject 269 An SR-ERO subobject consists of a 32-bit header followed by the SID 270 and the NAI associated with the SID. The SID is a 32-bit number. 271 The size of the NAI depends on its respective type, as described in 272 the following sections. 274 0 1 2 3 275 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 276 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 277 |L| Type | Length | ST | Flags |F|S|C|M| 278 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 279 | SID | 280 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 281 // NAI (variable) // 282 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 284 Figure 2: SR-ERO Subobject format 286 The fields in the ERO Subobject are as follows: 288 The 'L' Flag indicates whether the subobject represents a loose-hop 289 in the explicit route [RFC3209]. If this flag is unset, a PCC 290 MUST not overwrite the SID value present in the SR-ERO subobject. 291 Otherwise, a PCC MAY expand or replace one or more SID value(s) in 292 the received SR-ERO based on its local policy. 294 Type is the type of the SR-ERO Subobject. This document defines the 295 SR-ERO Subobject type. A new code point will be requested for the 296 SR-ERO Subobject from IANA. 298 Length contains the total length of the subobject in octets, 299 including the L, Type and Length fields. Length MUST be at least 300 4, and MUST be a multiple of 4. 302 SID Type (ST) indicates the type of information associated with the 303 SID contained in the object body. The SID-Type values are 304 described later in this document. 306 Flags is used to carry any additional information pertaining to SID. 307 Currently, the following flag bits are defined: 309 * M: When this bit is set, the SID value represents an MPLS label 310 stack entry as specified in [RFC5462] where only the label 311 value is specified by the PCE. Other fields (TC, S, and TTL) 312 fields MUST be considered invalid, and PCC MUST set these 313 fields according to its local policy and MPLS forwarding rules. 315 * C: When this bit as well as the M bit are set, then the SID 316 value represents an MPLS label stack entry as specified in 317 [RFC5462], where all the entry's fields (Label, TC, S, and TTL) 318 are specified by the PCE. However, a PCC MAY choose to 319 override TC, S, and TTL values according its local policy and 320 MPLS forwarding rules. 322 * S: When this bit is set, the SID value in the subobject body is 323 null. In this case, the PCC is responsible for choosing the 324 SID value, e.g., by looking up its Traffic Engineering Database 325 (TED) using node/adjacency identifier in the subobject body. 327 * F: When this bit is set, the NAI value in the subobject body is 328 null. 330 SID is the Segment Identifier. 332 NAI contains the NAI associated with the SID. Depending on the 333 value of ST, the NAI can have different format as described in the 334 following section. 336 5.2. NAI Associated with SID 338 This document defines the following NAIs: 340 'IPv4 Node ID' is specified as an IPv4 address. In this case, ST 341 and Length are 1 and 12 respectively. 343 'IPv6 Node ID' is specified as an IPv6 address. In this case, ST 344 and Length are 2 and 20 respectively. 346 'IPv4 Adjacency' is specified as a pair of IPv4 addresses. In this 347 case, ST and Length are 3 and 16 repectively, and the format of 348 the NAI is shown in the following figure: 350 0 1 2 3 351 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 352 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 353 | Local IPv4 address | 354 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 355 | Remote IPv4 address | 356 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 358 Figure 3: NAI for IPv4 Adjacency 360 'IPv6 Adjacency' is specified as a pair of IPv6 addresses. In this 361 case, ST and Length are 4 and 34 respectively, and the format of 362 the NAI is shown in the following figure: 364 0 1 2 3 365 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 366 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 367 // Local IPv6 address (16 bytes) // 368 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 369 // Remote IPv6 address (16 bytes) // 370 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 372 Figure 4: NAI for IPv6 adjacency 374 'Unnumbered Adjacency with IPv4 NodeIDs' is specified as a pair of 375 Node ID / Interface ID tuples. In this case, ST and Length are 5 376 and 24 respectively, and the format of the NAI is shown in the 377 following figure: 379 0 1 2 3 380 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 381 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 382 | Local Node-ID | 383 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 384 | Local Interface ID | 385 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 386 | Remote Node-ID | 387 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 388 | Remote Interface ID | 389 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 391 Figure 5: NAI for Unnumbered adjacency with IPv4 Node IDs 393 We are yet to decide if another SID subobject is required for 394 unnumbered adjacency with 128 bit node ID. 396 5.3. SR-ERO Processing 398 A PCEP Speaker that does not recognize the new ERO subobject in the 399 PCCreate, PCUpd or PCRpt message MUST reject the entire PCEP message 400 and MUST send a PCE error message with Error-Type="Unknown Object" or 401 "Not supported object", defined in [RFC5440]. 403 When the SID represents an MPLS label (i.e. the M bit is set), its 404 value (20 most significant bits) MUST be larger than 15, unless it is 405 special purpose label, such as an Entropy Label Indicator (ELI) or an 406 Entropy Label (EL). If a PCEP Speaker receives a label ERO subobject 407 with an invalid value, it MUST send the PCE error message with Error- 408 Type = "Reception of an invalid object" and Error-Value = "Bad label 409 value". If both M and C bits of an ERO subobject are set, and if a 410 PCEP Speaker finds erroneous setting in one or more of TC, S, and TTL 411 fields, it MUST send a PCE error with Error-Type = "Reception of an 412 invalid object" and Error-Value = "Bad label format". 414 If a PCC receives a stack of SR-ERO subobjects, and the number of 415 stack exceeds the maximum number of SIDs that the PCC can impose on 416 the packet, it MAY send a PCE error with Error-Type = "Reception of 417 an invalid object" and Error-Value = "Unsupported number of Segment 418 ERO subobjects". 420 6. The SR-RRO Object 422 An SR-RRO objects consists of one or more subobject(s), each carrying 423 a SID and the associated NAI. The format of the SR-RRO subobject is 424 the same as the ERO subobject, except for L-flag which does not 425 exists in the SR-RRO Subobject. Also, there are no flags defined for 426 the SR-RRO subobject. 428 0 1 2 3 429 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 430 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 431 | Type | Length | ST | Flags | 432 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 433 | SID | 434 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 435 // NAI (variable) // 436 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 438 Figure 6: SR-RRO Subobject format 440 7. SR Specific PCEP Descriptors 442 As defined in [RFC5440], a PCEP message consists of a common header 443 followed by a variable length body made up of mandatory and/or 444 optional objects. [I-D.ietf-pce-stateful-pce] and 445 [I-D.crabbe-pce-stateful-pce-mpls-te] respectively describe the 446 stateful PCEP descriptors for general state control and MPLS-TE 447 specific state control. Finally, [I-D.crabbe-pce-pce-initiated-lsp] 448 specifies the PCEP descriptors for PCE-based LSP instantiation. This 449 document specifies the SR specific PCEP descriptors. 451 7.1. PCEP Descriptor for PCCreate Message 453 The format of the PCCreate message is as follows: 455 ::= 456 457 Where: 459 ::= 460 [] 462 ::= 463 <----- New subobject 465 The LSP object in the Common Header MUST include the SYMBOLIC-PATH- 466 NAME TLV. 468 7.2. PCEP Descriptor for PCRpt Message 470 The format of the PCRpt message is as follows: 472 ::= 473 474 Where: 476 ::= [] 478 ::= 479 <------- New RRO subobject 480 [] 482 Where: 483 ::=[] 485 For SR-TE paths, the path descriptor is defined as follows: 487 ::= <----- New ERO subobject 489 In the PCRpt message, only the LSP object is considered mandatory. 490 All other objects are optional, and may be included for synchronizing 491 SR-TE path when PCEP session is re-established. 493 7.3. PCEP Descriptor for PCUpd Message 495 The format of a PCUpd message is as follows: 497 ::= 498 499 Where: 501 ::= 502 [] 504 ::= 505 [] 507 Where: 508 ::=[] 510 For SR-TE paths, the path descriptor is defined as follows: 512 ::= <----- New ERO subobject 514 In the PCUpd message, only the LSP object is considered mandatory. 515 All other objects are optional, and may be included for synchronizing 516 SR-TE paths when PCEP session is re-established. 518 8. Backward Compatibility 520 An LSR that does not support the SR PCEP capability negotiation 521 cannot recognize the SR-ERO subobjects. As such, it shall send a 522 PCEP error with Error-Type = 4 (Not supported object) and Error-Value 523 = 2 (Not supported object Type) as per [RFC5440]. 525 9. Management Considerations 527 9.1. Policy 529 PCEP implementation: 531 o Can enable SR-PCEP capability either by default or via explicit 532 configuration. 534 o May generate PCEP error due to unsupported number of SR-ERO 535 subobjects either by default or via explicit configuration. 537 9.2. The PCEP Data Model 539 A PCEP MIB module is defined in [I-D.ietf-pce-pcep-mib] needs be 540 extended to cover additional functionality provided by [RFC5440] and 541 [I-D.crabbe-pce-pce-initiated-lsp]. Such extension will cover the 542 new functionality specified in this document. 544 10. Security Considerations 546 The security considerations described in [RFC5440] and 547 [I-D.crabbe-pce-pce-initiated-lsp] are applicable to this 548 specification. No additional security measure is required. 550 11. IANA Considerations 552 IANA is requested to allocate a ERO subobject type (recommended value 553 = 5) for the SR-ERO subobject. 555 This document also defines new Error-Values for the following new 556 error conditions: 558 Error-Type Meaning 559 10 Reception of an invalid object 560 Error-value=2: Bad label value 561 Error-value=3: Unsupported number of Segment ERO 562 subobjects 564 12. Acknowledgement 566 We like to thank George Swallow for the valuable comments. 568 13. References 570 13.1. Normative References 572 [I-D.crabbe-pce-pce-initiated-lsp] 573 Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "PCEP 574 Extensions for PCE-initiated LSP Setup in a Stateful PCE 575 Model", draft-crabbe-pce-pce-initiated-lsp-00 (work in 576 progress), October 2012. 578 [I-D.crabbe-pce-stateful-pce-mpls-te] 579 Crabbe, E., Medved, J., Minei, I., and R. Varga, "Stateful 580 PCE extensions for MPLS-TE LSPs", 581 draft-crabbe-pce-stateful-pce-mpls-te-01 (work in 582 progress), May 2013. 584 [I-D.ietf-pce-pcep-mib] 585 Koushik, K., Stephan, E., Zhao, Q., King, D., and J. 586 Hardwick, "PCE communication protocol (PCEP) Management 587 Information Base", draft-ietf-pce-pcep-mib-04 (work in 588 progress), February 2013. 590 [I-D.ietf-pce-stateful-pce] 591 Crabbe, E., Medved, J., Minei, I., and R. Varga, "PCEP 592 Extensions for Stateful PCE", 593 draft-ietf-pce-stateful-pce-04 (work in progress), 594 May 2013. 596 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 597 Requirement Levels", BCP 14, RFC 2119, March 1997. 599 [RFC5088] Le Roux, JL., Vasseur, JP., Ikejiri, Y., and R. Zhang, 600 "OSPF Protocol Extensions for Path Computation Element 601 (PCE) Discovery", RFC 5088, January 2008. 603 [RFC5089] Le Roux, JL., Vasseur, JP., Ikejiri, Y., and R. Zhang, 604 "IS-IS Protocol Extensions for Path Computation Element 605 (PCE) Discovery", RFC 5089, January 2008. 607 [RFC5440] Vasseur, JP. and JL. Le Roux, "Path Computation Element 608 (PCE) Communication Protocol (PCEP)", RFC 5440, 609 March 2009. 611 [RFC5462] Andersson, L. and R. Asati, "Multiprotocol Label Switching 612 (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic 613 Class" Field", RFC 5462, February 2009. 615 [SR-ARCH] Filsfils, C., Previdi, S., Bashandy, A., and M. Horneffer, 616 "Segment Routing Architecture", 617 draft-filsfils-previdi-segment-routing-00.txt (work in 618 progress), June 2013. 620 [SR-ISIS] Previdi, S., Filsfils, C., Bashandy, A., and M. Horneffer, 621 "Segment Routing with IS-IS Routing Protocol", 622 draft-previdi-filsfils-isis-segment-routing-00.txt (work 623 in progress), September 2013. 625 13.2. Informative References 627 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 628 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 629 Tunnels", RFC 3209, December 2001. 631 [RFC3473] Berger, L., "Generalized Multi-Protocol Label Switching 632 (GMPLS) Signaling Resource ReserVation Protocol-Traffic 633 Engineering (RSVP-TE) Extensions", RFC 3473, January 2003. 635 [RFC3477] Kompella, K. and Y. Rekhter, "Signalling Unnumbered Links 636 in Resource ReSerVation Protocol - Traffic Engineering 637 (RSVP-TE)", RFC 3477, January 2003. 639 [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation 640 Element (PCE)-Based Architecture", RFC 4655, August 2006. 642 [RFC4657] Ash, J. and J. Le Roux, "Path Computation Element (PCE) 643 Communication Protocol Generic Requirements", RFC 4657, 644 September 2006. 646 [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic 647 Engineering", RFC 5305, October 2008. 649 [RFC5394] Bryskin, I., Papadimitriou, D., Berger, L., and J. Ash, 650 "Policy-Enabled Path Computation Framework", RFC 5394, 651 December 2008. 653 [RFC5557] Lee, Y., Le Roux, JL., King, D., and E. Oki, "Path 654 Computation Element Communication Protocol (PCEP) 655 Requirements and Protocol Extensions in Support of Global 656 Concurrent Optimization", RFC 5557, July 2009. 658 Authors' Addresses 660 Siva Sivabalan 661 Cisco Systems, Inc. 662 2000 Innovation Drive 663 Kanata, Ontario K2K 3E8 664 Canada 666 Email: msiva@cisco.com 667 Clarence Filsfils 668 Cisco Systems, Inc. 669 Pegasus Parc 670 De kleetlaan 6a, DIEGEM BRABANT 1831 671 BELGIUM 673 Email: cfilsfil@cisco.com 675 Jan Medved 676 Cisco Systems, Inc. 677 170 West Tasman Dr. 678 San Jose, CA 95134 679 US 681 Email: jmedved@cisco.com 683 Edward Crabbe 684 Google, Inc. 685 1600 Amphitheatre Parkway 686 Mountain View, CA 94043 687 US 689 Email: edward.crabbe@gmail.com 691 Robert Raszuk 692 NTT I3 693 101 S. Ellsworth Ave 694 San Mateo, CA 94401 695 US 697 Email: robert@raszuk.net