idnits 2.17.00 (12 Aug 2021) /tmp/idnits2246/draft-ietf-pce-binding-label-sid-14.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 document date (2 March 2022) is 80 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) == Outdated reference: A later version (-13) exists of draft-ietf-pce-segment-routing-ipv6-11 == Outdated reference: A later version (-22) exists of draft-ietf-spring-segment-routing-policy-18 == Outdated reference: A later version (-11) exists of draft-li-pce-controlled-id-space-10 Summary: 0 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 PCE Working Group S. Sivabalan 3 Internet-Draft Ciena Corporation 4 Intended status: Standards Track C. Filsfils 5 Expires: 3 September 2022 Cisco Systems, Inc. 6 J. Tantsura 7 Microsoft Corporation 8 S. Previdi 9 C. Li, Ed. 10 Huawei Technologies 11 2 March 2022 13 Carrying Binding Label/Segment Identifier (SID) in PCE-based Networks. 14 draft-ietf-pce-binding-label-sid-14 16 Abstract 18 In order to provide greater scalability, network confidentiality, and 19 service independence, Segment Routing (SR) utilizes a Binding Segment 20 Identifier (SID) (called BSID) as described in RFC 8402. It is 21 possible to associate a BSID to an RSVP-TE-signaled Traffic 22 Engineering Label Switched Path or an SR Traffic Engineering path. 23 The BSID can be used by an upstream node for steering traffic into 24 the appropriate TE path to enforce SR policies. This document 25 specifies the concept of binding value, which can be either an MPLS 26 label or Segment Identifier. It further specifies an extension to 27 Path Computation Element (PCE) communication Protocol(PCEP) for 28 reporting the binding value by a Path Computation Client (PCC) to the 29 PCE to support PCE-based Traffic Engineering policies. 31 Status of This Memo 33 This Internet-Draft is submitted in full conformance with the 34 provisions of BCP 78 and BCP 79. 36 Internet-Drafts are working documents of the Internet Engineering 37 Task Force (IETF). Note that other groups may also distribute 38 working documents as Internet-Drafts. The list of current Internet- 39 Drafts is at https://datatracker.ietf.org/drafts/current/. 41 Internet-Drafts are draft documents valid for a maximum of six months 42 and may be updated, replaced, or obsoleted by other documents at any 43 time. It is inappropriate to use Internet-Drafts as reference 44 material or to cite them other than as "work in progress." 46 This Internet-Draft will expire on 3 September 2022. 48 Copyright Notice 50 Copyright (c) 2022 IETF Trust and the persons identified as the 51 document authors. All rights reserved. 53 This document is subject to BCP 78 and the IETF Trust's Legal 54 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 55 license-info) in effect on the date of publication of this document. 56 Please review these documents carefully, as they describe your rights 57 and restrictions with respect to this document. Code Components 58 extracted from this document must include Revised BSD License text as 59 described in Section 4.e of the Trust Legal Provisions and are 60 provided without warranty as described in the Revised BSD License. 62 Table of Contents 64 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 65 1.1. Motivation and Example . . . . . . . . . . . . . . . . . 4 66 1.2. Summary of the Extension . . . . . . . . . . . . . . . . 5 67 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 5 68 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 69 4. Path Binding TLV . . . . . . . . . . . . . . . . . . . . . . 6 70 4.1. SRv6 Endpoint Behavior and SID Structure . . . . . . . . 8 71 5. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 10 72 6. Binding SID in SR-ERO . . . . . . . . . . . . . . . . . . . . 12 73 7. Binding SID in SRv6-ERO . . . . . . . . . . . . . . . . . . . 12 74 8. PCE Allocation of Binding label/SID . . . . . . . . . . . . . 12 75 9. Implementation Status . . . . . . . . . . . . . . . . . . . . 14 76 9.1. Huawei . . . . . . . . . . . . . . . . . . . . . . . . . 15 77 9.2. Cisco . . . . . . . . . . . . . . . . . . . . . . . . . . 15 78 10. Security Considerations . . . . . . . . . . . . . . . . . . . 16 79 11. Manageability Considerations . . . . . . . . . . . . . . . . 16 80 11.1. Control of Function and Policy . . . . . . . . . . . . . 17 81 11.2. Information and Data Models . . . . . . . . . . . . . . 17 82 11.3. Liveness Detection and Monitoring . . . . . . . . . . . 17 83 11.4. Verify Correct Operations . . . . . . . . . . . . . . . 17 84 11.5. Requirements On Other Protocols . . . . . . . . . . . . 17 85 11.6. Impact On Network Operations . . . . . . . . . . . . . . 17 86 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 87 12.1. PCEP TLV Type Indicators . . . . . . . . . . . . . . . . 17 88 12.1.1. TE-PATH-BINDING TLV . . . . . . . . . . . . . . . . 18 89 12.2. LSP Object . . . . . . . . . . . . . . . . . . . . . . . 19 90 12.3. PCEP Error Type and Value . . . . . . . . . . . . . . . 19 91 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 92 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 93 14.1. Normative References . . . . . . . . . . . . . . . . . . 20 94 14.2. Informative References . . . . . . . . . . . . . . . . . 22 95 Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 24 96 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 98 1. Introduction 100 A Path Computation Element (PCE) can compute Traffic Engineering 101 paths (TE paths) through a network where those paths are subject to 102 various constraints. Currently, TE paths are set up using either the 103 RSVP-TE signaling protocol or Segment Routing (SR). We refer to such 104 paths as RSVP-TE paths and SR-TE paths respectively in this document. 106 As per [RFC8402] SR allows a head-end node to steer a packet flow 107 along a given path via a Segment Routing Policy (SR Policy). As per 108 [I-D.ietf-spring-segment-routing-policy], an SR Policy is a framework 109 that enables the instantiation of an ordered list of segments on a 110 node for implementing a source routing policy with a specific intent 111 for traffic steering from that node. 113 As described in [RFC8402], a Binding Segment Identifier (BSID) is 114 bound to a Segment Routing (SR) Policy, instantiation of which may 115 involve a list of Segment Identifiers (SIDs). Any packets received 116 with an active segment equal to a BSID are steered onto the bound SR 117 Policy. A BSID may be either a local (SR Local Block (SRLB)) or a 118 global (SR Global Block (SRGB)) SID. As per Section 6.4 of 119 [I-D.ietf-spring-segment-routing-policy] a BSID can also be 120 associated with any type of interface or tunnel to enable the use of 121 a non-SR interface or tunnel as a segment in a SID list. In this 122 document, the term 'binding label/SID' is used to generalize the 123 allocation of binding value for both SR and non-SR paths. 125 [RFC5440] describes the PCEP for communication between a Path 126 Computation Client (PCC) and a PCE or between a pair of PCEs as per 127 [RFC4655]. [RFC8231] specifies extensions to PCEP that allow a PCC 128 to delegate its Label Switched Paths (LSPs) to a stateful PCE. A 129 stateful PCE can then update the state of LSPs delegated to it. 130 [RFC8281] specifies a mechanism allowing a PCE to dynamically 131 instantiate an LSP on a PCC by sending the path and characteristics. 132 This document specifies an extension to PCEP to manage the binding of 133 label/SID that can be applied to SR, RSVP-TE, and other path setup 134 types. 136 [RFC8664] provides a mechanism for a PCE (acting as a network 137 controller) to instantiate SR-TE paths (candidate paths) for an SR 138 Policy onto a head-end node (acting as a PCC) using PCEP. For more 139 information on the SR Policy Architecture, see 140 [I-D.ietf-spring-segment-routing-policy]. 142 1.1. Motivation and Example 144 A binding label/SID has local significance to the ingress node of the 145 corresponding TE path. When a stateful PCE is deployed for setting 146 up TE paths, a binding label/SID reported from the PCC to the 147 stateful PCE is useful for the purpose of enforcing end-to-end TE/SR 148 policy. A sample Data Center (DC) and IP/MPLS WAN use-case is 149 illustrated in Figure 1 with a multi-domain PCE. In the IP/MPLS WAN, 150 an SR-TE LSP is set up using the PCE. The list of SIDs of the SR-TE 151 LSP is {A, B, C, D}. The gateway node 1 (which is the PCC) allocates 152 a binding SID X and reports it to the PCE. In the MPLS DC network, 153 an end-to-end SR-TE LSP is established. In order for the access node 154 to steer the traffic towards Node-1 and over the SR-TE path in WAN, 155 the PCE passes the SID stack {Y, X} where Y is the node SID of the 156 gateway node-1 to the access node and X is the BSID. In the absence 157 of the BSID X, the PCE would need to pass the SID stack {Y, A, B, C, 158 D} to the access node. This example also illustrates the additional 159 benefit of using the binding label/SID to reduce the number of SIDs 160 imposed by the access nodes with a limited forwarding capacity. 162 SID stack 163 {Y, X} +--------------+ 164 | Multi-domain | 165 _ _ _ _ _ _ _ _ _ _ _ _ _ _| PCE | 166 | +--------------+ 167 | ^ 168 | | Binding 169 | .-----. | SID (X) .-----. 170 | ( ) | ( ) 171 V .--( )--. | .--( )--. 172 +------+ ( ) +-------+ ( ) +-------+ 173 |Access|_( MPLS DC Network )_|Gateway|_( IP/MPLS WAN )_|Gateway| 174 | Node | ( ==============> ) |Node-1 | ( ================> ) |Node-2 | 175 +------+ ( SR-TE path ) +-------+ ( SR-TE path ) +-------+ 176 '--( )--' Node '--( )--' 177 ( ) SID of ( ) 178 '-----' Node-1 '-----' 179 is Y SIDs for SR-TE LSP: 180 {A, B, C, D} 182 Figure 1: A Sample Use-case of Binding SID 184 Using the extension defined in this document, a PCC could report to 185 the stateful PCE the binding label/SID it allocated via a Path 186 Computation LSP State Report (PCRpt) message. It is also possible 187 for a stateful PCE to request a PCC to allocate a specific binding 188 label/SID by sending a Path Computation LSP Update Request (PCUpd) 189 message. If the PCC can successfully allocate the specified binding 190 value, it reports the binding value to the PCE. Otherwise, the PCC 191 sends an error message to the PCE indicating the cause of the 192 failure. A local policy or configuration at the PCC SHOULD dictate 193 if the binding label/SID needs to be assigned. 195 1.2. Summary of the Extension 197 To implement the needed changes to PCEP, in this document, we 198 introduce a new OPTIONAL TLV that a PCC can use in order to report 199 the binding label/SID associated with a TE LSP, or a PCE to request a 200 PCC to allocate any or a specific binding label/SID value. This TLV 201 is intended for TE LSPs established using RSVP-TE, SR-TE, or any 202 other future method. In the case of SR-TE LSPs, the TLV can carry a 203 binding label (for SR-TE path with MPLS data-plane) or a binding IPv6 204 SID (e.g., IPv6 address for SR-TE paths with IPv6 data-plane). 205 Throughout this document, the term "binding value" means either an 206 MPLS label or a SID. 208 As another way to use the extension specified in this document, to 209 support the PCE-based central controller [RFC8283] operation where 210 the PCE would take responsibility for managing some part of the MPLS 211 label space for each of the routers that it controls, the PCE could 212 directly make the binding label/SID allocation and inform the PCC. 213 See Section 8 for details. 215 In addition to specifying a new TLV, this document specifies how and 216 when a PCC and PCE can use this TLV, how they can allocate a binding 217 label/SID, and associated error handling. 219 2. Requirements Language 221 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 222 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 223 "OPTIONAL" in this document are to be interpreted as described in BCP 224 14 [RFC2119] [RFC8174] when, and only when, they appear in all 225 capitals, as shown here. 227 3. Terminology 229 The following terminologies are used in this document: 231 BSID: Binding Segment Identifier. 233 binding label/SID: a generic term used for the binding segment for 234 both SR and non-SR paths. 236 binding value: a generic term used for the binding segment as it can 237 be encoded in various formats (as per the binding type(BT)). 239 LSP: Label Switched Path. 241 PCC: Path Computation Client. 243 PCEP: Path Computation Element communication Protocol. 245 RSVP-TE: Resource ReserVation Protocol-Traffic Engineering. 247 SID: Segment Identifier. 249 SR: Segment Routing. 251 4. Path Binding TLV 253 The new optional TLV called "TE-PATH-BINDING TLV" (whose format is 254 shown in Figure 2) is defined to carry the binding label/SID for a TE 255 path. This TLV is associated with the LSP object specified in 256 [RFC8231]. This TLV can also be carried in the PCEP-ERROR object 257 [RFC5440] in case of error. Multiple instances of TE-PATH-BINDING 258 TLVs MAY be present in the LSP and PCEP-ERROR object. The type of 259 this TLV is 55 (early allocated by IANA). The length is variable. 261 [Note to RFC Editor: Please remove "(early allocated by IANA)" before 262 publication] 264 0 1 2 3 265 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 266 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 267 | Type = 55 | Length | 268 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 269 | BT | Flags | Reserved | 270 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 271 ~ Binding Value (variable length) ~ 272 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 274 Figure 2: TE-PATH-BINDING TLV 276 TE-PATH-BINDING TLV is a generic TLV such that it is able to carry 277 binding label/SID (i.e. MPLS label or SRv6 SID). It is formatted 278 according to the rules specified in [RFC5440]. The value portion of 279 the TLV comprises: 281 Binding Type (BT): A one-octet field that identifies the type of 282 binding included in the TLV. This document specifies the following 283 BT values: 285 * BT = 0: The binding value is a 20-bit MPLS label value. The TLV 286 is padded to 4-bytes alignment. The Length MUST be set to 7 (the 287 padding is not included in the length, as per [RFC5440] 288 Section 7.1) and the first 20 bits are used to encode the MPLS 289 label value. 291 * BT = 1: The binding value is a 32-bit MPLS label stack entry as 292 per [RFC3032] with Label, TC [RFC5462], S, and TTL values encoded. 293 Note that the receiver MAY choose to override TC, S, and TTL 294 values according to its local policy. The Length MUST be set to 295 8. 297 * BT = 2: The binding value is an SRv6 SID with the format of a 298 16-octet IPv6 address, representing the binding SID for SRv6. The 299 Length MUST be set to 20. 301 * BT = 3: The binding value is a 24 octet field, defined in 302 Section 4.1, that contains the SRv6 SID as well as its Behavior 303 and Structure. The Length MUST be set to 28. 305 Section 12.1.1 defines the IANA registry used to maintain all these 306 binding types as well as any future ones. Note that multiple TE- 307 PATH-BINDING TLVs with same or different Binding Types MAY be present 308 for the same LSP. A PCEP speaker could allocate multiple TE-PATH- 309 BINDING TLVs (of the same BT), and use different binding values in 310 different domains or use-cases based on a local policy. 312 Flags: 1 octet of flags. The following flag is defined in the new 313 registry "TE-PATH-BINDING TLV Flag field" as described in 314 Section 12.1.1: 316 0 1 2 3 4 5 6 7 317 +-+-+-+-+-+-+-+-+ 318 |R| | 319 +-+-+-+-+-+-+-+-+ 321 Figure 3: Flags 323 where: 325 * R (Removal - 1 bit): When set, the requesting PCEP peer requires 326 the removal of the binding value for the LSP. When unset, the 327 PCEP peer indicates that the binding value is added or retained 328 for the LSP. This flag is used in the PCRpt and PCUpd messages. 329 It is ignored in other PCEP messages. 331 * The unassigned flags MUST be set to 0 while sending and ignored on 332 receipt. 334 Reserved: MUST be set to 0 while sending and ignored on receipt. 336 Binding Value: A variable-length field, padded with trailing zeros to 337 a 4-octet boundary. When the BT is 0, the 20 bits represent the MPLS 338 label. When the BT is 1, the 32 bits represent the MPLS label stack 339 entry as per [RFC3032]. When the BT is 2, the 128 bits represent the 340 SRv6 SID. When the BT is 3, the Binding Value also contains the SRv6 341 Endpoint Behavior and SID Structure, defined in Section 4.1. In this 342 document, the TE-PATH-BINDING TLV is considered to be empty if no 343 Binding Value is present. Note that the length of the TLV would be 4 344 in such a case. 346 4.1. SRv6 Endpoint Behavior and SID Structure 348 This section specifies the format of the Binding Value in the TE- 349 PATH-BINDING TLV when the BT is set to 3 for the SRv6 Binding SIDs 350 [RFC8986]. The format is shown in Figure 4. 352 0 1 2 3 353 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 354 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 355 | | 356 | SRv6 Binding SID (16 octets) | 357 | | 358 | | 359 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 360 | Reserved | Endpoint Behavior | 361 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 362 | LB Length | LN Length | Fun. Length | Arg. Length | 363 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 365 Figure 4: SRv6 Endpoint Behavior and SID Structure 367 The Binding Value consists of: 369 * SRv6 Binding SID: 16 octets. The 128-bit IPv6 address, 370 representing the binding SID for SRv6. 372 * Reserved: 2 octets. It MUST be set to 0 on transmit and ignored 373 on receipt. 375 * Endpoint Behavior: 2 octets. The Endpoint Behavior code point for 376 this SRv6 SID as per the IANA subregistry called "SRv6 Endpoint 377 Behaviors", created by [RFC8986]. When the field is set with the 378 value 0, the endpoint behavior is considered unknown. 380 * [RFC8986] defines an SRv6 SID as consisting of LOC:FUNCT:ARG, 381 where a locator (LOC) is encoded in the L most significant bits of 382 the SID, followed by F bits of function (FUNCT) and A bits of 383 arguments (ARG). A locator may be represented as B:N where B is 384 the SRv6 SID locator block (IPv6 prefix allocated for SRv6 SIDs by 385 the operator) and N is the identifier of the parent node 386 instantiating the SID called locator node. The following fields 387 are used to advertise the length of each individual part of the 388 SRv6 SID as defined in : 390 - LB Length: 1 octet. SRv6 SID Locator Block length in bits. 392 - LN Length: 1 octet. SRv6 SID Locator Node length in bits. 394 - Function Length: 1 octet. SRv6 SID Function length in bits. 396 - Argument Length: 1 octet. SRv6 SID Arguments length in bits. 398 The total of the locator block, locator node, function, and argument 399 lengths MUST be lower or equal to 128 bits. If this condition is not 400 met, the corresponding TE-PATH-BINDING TLV MUST be considered as an 401 error. Also, if the Endpoint Behavior is found to be unknown or 402 inconsistent, it is considered an error. A PCErr message with Error- 403 Type = 10 ("Reception of an invalid object") and Error-Value = 37 404 ("Invalid SRv6 SID Structure") MUST be sent. 406 The SRv6 SID Structure could be used by the PCE for ease of 407 operations and monitoring. For example, this information could be 408 used for validation of SRv6 SIDs being instantiated in the network 409 and checked for conformance to the SRv6 SID allocation scheme chosen 410 by the operator as described in Section 3.2 of [RFC8986]. In the 411 future, PCE could also be used for verification and the automation 412 for securing the SRv6 domain by provisioning filtering rules at SR 413 domain boundaries as described in Section 5 of [RFC8754]. The 414 details of these potential applications are outside the scope of this 415 document. 417 5. Operation 419 The binding value is usually allocated by the PCC and reported to a 420 PCE via a PCRpt message (see Section 8 where PCE does the 421 allocation). If a PCE does not recognize the TE-PATH-BINDING TLV, it 422 would ignore the TLV in accordance with [RFC5440]. If a PCE 423 recognizes the TLV but does not support the TLV, it MUST send a PCErr 424 with Error-Type = 2 (Capability not supported). 426 Multiple TE-PATH-BINDING TLVs are allowed to be present in the same 427 LSP object. This signifies the presence of multiple binding SIDs for 428 the given LSP. In the case of multiple TE-PATH-BINDING TLVs, the 429 existing instances of TE-PATH-BINDING TLVs MAY be included in the LSP 430 object. In case of an error condition, the whole message is rejected 431 and the resulting PCErr message MAY include the offending TE-PATH- 432 BINDING TLV in the PCEP-ERROR object. 434 If a PCE recognizes an invalid binding value (e.g., label value from 435 the reserved MPLS label space), it MUST send a PCErr message with 436 Error-Type = 10 ("Reception of an invalid object") and Error Value = 437 2 ("Bad label value") as specified in [RFC8664]. 439 For SRv6 BSIDs, it is RECOMMENDED to always explicitly specify the 440 SRv6 Endpoint Behavior and SID Structure in the TE-PATH-BINDING TLV 441 by setting the BT (Binding Type) to 3. This can enable the sender to 442 have control of the SRv6 Endpoint Behavior and SID Structure. A 443 sender MAY choose to set the BT to 2, in which case the receiving 444 implementation chooses how to interpret the SRv6 Endpoint Behavior 445 and SID Structure according to local policy. 447 If a PCC wishes to withdraw a previously reported binding value, it 448 MUST send a PCRpt message with the specific TE-PATH-BINDING TLV with 449 R flag set to 1. If a PCC wishes to modify a previously reported 450 binding, it MUST withdraw the former binding value (with R flag set 451 in the former TE-PATH-BINDING TLV) and include a new TE-PATH-BINDING 452 TLV containing the new binding value. Note that other instances of 453 TE-PATH-BINDING TLVs that are unchanged MAY also be included. If the 454 unchanged instances are not included, they will remain associated 455 with the LSP. 457 If a PCE requires a PCC to allocate a (or several) specific binding 458 value(s), it may do so by sending a PCUpd or PCInitiate message 459 containing a TE-PATH-BINDING TLV(s). If the value(s) can be 460 successfully allocated, the PCC reports the binding value(s) to the 461 PCE. If the PCC considers the binding value specified by the PCE 462 invalid, it MUST send a PCErr message with Error-Type = TBD2 463 ("Binding label/SID failure") and Error Value = TBD3 ("Invalid SID"). 464 If the binding value is valid, but the PCC is unable to allocate the 465 binding value, it MUST send a PCErr message with Error-Type = TBD2 466 ("Binding label/SID failure") and Error Value = TBD4 ("Unable to 467 allocate the specified binding value"). Note that, in case of an 468 error, the PCC rejects the PCUpd or PCInitiate message in its 469 entirety and can include the offending TE-PATH-BINDING TLV in the 470 PCEP-ERROR object. 472 If a PCE wishes to request the withdrawal of a previously reported 473 binding value, it MUST send a PCUpd message with the specific TE- 474 PATH-BINDING TLV with R flag set to 1. If a PCE wishes to modify a 475 previously requested binding value, it MUST request the withdrawal of 476 the former binding value (with R flag set in the former TE-PATH- 477 BINDING TLV) and include a new TE-PATH-BINDING TLV containing the new 478 binding value. If a PCC receives a PCUpd message with TE-PATH- 479 BINDING TLV where the R flag is set to 1, but either the binding 480 value is missing (empty TE-PATH-BINDING TLV) or the binding value is 481 incorrect, it MUST send a PCErr message with Error-Type = TBD2 482 ("Binding label/SID failure") and Error Value = TBD6 ("Unable to 483 remove the binding value"). 485 In some cases, a stateful PCE may want to request that the PCC 486 allocate a binding value of the PCC's own choosing. It instructs the 487 PCC by sending a PCUpd message containing an empty TE-PATH-BINDING 488 TLV, i.e., no binding value is specified (bringing the Length field 489 of the TLV to 4). A PCE can also request a PCC to allocate a binding 490 value at the time of initiation by sending a PCInitiate message with 491 an empty TE-PATH-BINDING TLV. Only one such instance of empty TE- 492 PATH-BINDING TLV, per BT, SHOULD be included in the LSP object and 493 others ignored on receipt. If the PCC is unable to allocate a new 494 binding value as per the specified BT, it MUST send a PCErr message 495 with Error-Type = TBD2 ("Binding label/SID failure") and Error-Value 496 = TBD5 ("Unable to allocate a new binding label/SID"). 498 As previously noted, if a message contains an invalid TE-PATH-BINDING 499 TLV that leads to an error condition, the whole message is rejected 500 including any other valid instances of TE-PATH-BINDING TLVs, if any. 501 The resulting error message MAY include the offending TE-PATH-BINDING 502 TLV in the PCEP-ERROR object. 504 If a PCC receives a TE-PATH-BINDING TLV in any message other than 505 PCUpd or PCInitiate, it MUST close the corresponding PCEP session 506 with the reason "Reception of a malformed PCEP message" (according to 507 [RFC5440]). Similarly, if a PCE receives a TE-PATH-BINDING TLV in 508 any message other than a PCRpt or if the TE-PATH-BINDING TLV is 509 associated with any object other than an LSP or PCEP-ERROR object, 510 the PCE MUST close the corresponding PCEP session with the reason 511 "Reception of a malformed PCEP message" (according to [RFC5440]). 513 If a TE-PATH-BINDING TLV is absent in the PCRpt message and no 514 binding values were reported before, the PCE MUST assume that the 515 corresponding LSP does not have any binding. Similarly, if TE-PATH- 516 BINDING TLV is absent in the PCUpd message and no binding values were 517 reported before, the PCC's local policy dictates how the binding 518 allocations are made for a given LSP. 520 Note that some binding types have similar information but different 521 binding value formats. For example, BT=(2 or 3) is used for the SRv6 522 SID and BT=(0 or 1) is used for the MPLS Label. In case a PCEP 523 speaker receives multiple TE-PATH-BINDING TLVs with the same SRv6 SID 524 or MPLS Label but different BT values, it MUST send a PCErr message 525 with Error-Type = TBD2 ("Binding label/SID failure") and Error-Value 526 = TBD7 ("Inconsistent binding types"). 528 6. Binding SID in SR-ERO 530 In PCEP messages, LSP route information is carried in the Explicit 531 Route Object (ERO), which consists of a sequence of subobjects. 532 [RFC8664] defines the "SR-ERO subobject" capable of carrying a SID as 533 well as the identity of the node/adjacency (NAI) represented by the 534 SID. The NAI Type (NT) field indicates the type and format of the 535 NAI contained in the SR-ERO. In case of binding SID, the NAI MUST 536 NOT be included and NT MUST be set to zero. [RFC8664] Section 5.2.1 537 specifies bit settings and error handling in the case when NT=0. 539 7. Binding SID in SRv6-ERO 541 [I-D.ietf-pce-segment-routing-ipv6] defines the "SRv6-ERO subobject" 542 for an SRv6 SID. Similarly to SR-ERO (Section 6), the NAI MUST NOT 543 be included and the NT MUST be set to zero. [RFC8664] Section 5.2.1 544 specifies bit settings and error handling in the case when NT=0. 546 8. PCE Allocation of Binding label/SID 548 Section 5 already includes the scenario where a PCE requires a PCC to 549 allocate a specified binding value by sending a PCUpd or PCInitiate 550 message containing a TE-PATH-BINDING TLV. This section specifies an 551 OPTIONAL feature for the PCE to allocate the binding label/SID of its 552 own accord in the case where the PCE also controls the label space of 553 the PCC and can make the label allocation on its own as described in 554 [RFC8283]. Note that the act of requesting a specific binding value 555 (Section 5) is different from the act of allocating a binding label/ 556 SID as described in this section. 558 [RFC8283] introduces the architecture for PCE as a central controller 559 as an extension of the architecture described in [RFC4655] and 560 assumes the continued use of PCEP as the protocol used between PCE 561 and PCC. [RFC9050] specifies the procedures and PCEP extensions for 562 using the PCE as the central controller. It assumes that the 563 exclusive label range to be used by a PCE is known and set on both 564 PCEP peers. A future extension could add the capability to advertise 565 this range via a possible PCEP extension as well (see 566 [I-D.li-pce-controlled-id-space]). 568 When PCECC operations are supported as per [RFC9050], the binding 569 label/SID MAY also be allocated by the PCE itself. Both peers need 570 to exchange the PCECC capability as described in [RFC9050] before the 571 PCE can allocate the binding label/SID on its own. 573 A new P flag in the LSP object [RFC8231] is introduced to indicate 574 that the allocation needs to be made by the PCE. Note that the P 575 flag could be used for other types of allocations (such as path 576 segments [I-D.ietf-pce-sr-path-segment]) in future. 578 * P (PCE-allocation): If the bit is set to 1, it indicates that the 579 PCC requests PCE to make allocations for this LSP. The TE-PATH- 580 BINDING TLV in the LSP object identifies that the allocation is 581 for a binding label/SID. A PCC MUST set this bit to 1 and include 582 a TE-PATH-BINDING TLV in the LSP object if it wishes to request 583 for allocation of binding label/SID by the PCE in the PCEP 584 message. A PCE MUST also set this bit to 1 and include a TE-PATH- 585 BINDING TLV to indicate that the binding label/SID is allocated by 586 PCE and encoded in the PCEP message towards the PCC. Further, if 587 the binding label/SID is allocated by the PCC, the PCE MUST set 588 this bit to 0 and follow the procedure described in Section 5. 590 Note that - 592 * A PCE could allocate the binding label/SID of its own accord for a 593 PCE-initiated or delegated LSP, and inform the PCC in the 594 PCInitiate message or PCUpd message by setting P=1 and including 595 TE-PATH-BINDING TLV in the LSP object. 597 * To let the PCC allocate the binding label/SID, a PCE MUST set P=0 598 and include an empty TE-PATH-BINDING TLV ( i.e., no binding value 599 is specified) in the LSP object in PCInitiate/PCUpd message. 601 * To request that the PCE allocate the binding label/SID, a PCC MUST 602 set P=1, D=1, and include an empty TE-PATH-BINDING TLV in PCRpt 603 message. The PCE will attempt to allocate it and respond to the 604 PCC with PCUpd message including the allocated binding label/SID 605 in the TE-PATH-BINDING TLV and P=1, D=1 in the LSP object. If the 606 PCE is unable to allocate, it MUST send a PCErr message with 607 Error-Type = TBD2 ("Binding label/SID failure") and Error-Value = 608 TBD5 ("Unable to allocate a new binding label/SID"). 610 * If one or both speakers (PCE and PCC) have not indicated support 611 and willingness to use the PCEP extensions for the PCECC as per 612 [RFC9050] and a PCEP peer receives P=1 in the LSP object, it MUST: 614 - send a PCErr message with Error-Type=19 (Invalid Operation) and 615 Error-value=16 (Attempted PCECC operations when PCECC 616 capability was not advertised) and 618 - terminate the PCEP session. 620 * A legacy PCEP speaker that does not recognize the P flag in the 621 LSP object would ignore it in accordance with [RFC8231]. 623 It is assumed that the label range to be used by a PCE is known and 624 set on both PCEP peers. The exact mechanism is out of the scope of 625 [RFC9050] or this document. Note that the specific BSID could be 626 from the PCE-controlled or the PCC-controlled label space. The PCE 627 can directly allocate the label from the PCE-controlled label space 628 using P=1 as described above, whereas the PCE can request the 629 allocation of a specific BSID from the PCC-controlled label space 630 with P=0 as described in Section 5. 632 Note that, the P-Flag in the LSP object SHOULD NOT be set to 1 633 without the presence of TE-PATH-BINDING TLV or any other future TLV 634 defined for PCE allocation. On receipt of such an LSP object, the 635 P-Flag is ignored. The presence of TE-PATH-BINDING TLV with P=1 636 indicates the allocation is for the binding label/SID. In the 637 future, some other TLV (such as one defined in 638 [I-D.ietf-pce-sr-path-segment]) could also be used alongside P=1 to 639 indicate allocation of a different attribute. A future document 640 should not attempt to assign semantics to P=1 without limiting its 641 scope that both PCEP peers could agree on. 643 9. Implementation Status 645 [Note to the RFC Editor - remove this section before publication, as 646 well as remove the reference to RFC 7942.] 647 This section records the status of known implementations of the 648 protocol defined by this specification at the time of posting of this 649 Internet-Draft, and is based on a proposal described in [RFC7942]. 650 The description of implementations in this section is intended to 651 assist the IETF in its decision processes in progressing drafts to 652 RFCs. Please note that the listing of any individual implementation 653 here does not imply endorsement by the IETF. Furthermore, no effort 654 has been spent to verify the information presented here that was 655 supplied by IETF contributors. This is not intended as, and must not 656 be construed to be, a catalog of available implementations or their 657 features. Readers are advised to note that other implementations may 658 exist. 660 According to [RFC7942], "this will allow reviewers and working groups 661 to assign due consideration to documents that have the benefit of 662 running code, which may serve as evidence of valuable experimentation 663 and feedback that have made the implemented protocols more mature. 664 It is up to the individual working groups to use this information as 665 they see fit". 667 9.1. Huawei 669 * Organization: Huawei 671 * Implementation: Huawei's Router and Controller 673 * Description: An experimental code-point is used and will be 674 modified to the value allocated in this document. 676 * Maturity Level: Production 678 * Coverage: Full 680 * Contact: c.l@huawei.com 682 9.2. Cisco 684 * Organization: Cisco Systems 686 * Implementation: Head-end and controller. 688 * Description: An experimental code-point is used and will be 689 modified to the value allocated in this document. 691 * Maturity Level: Production 693 * Coverage: Full 694 * Contact: mkoldych@cisco.com 696 10. Security Considerations 698 The security considerations described in [RFC5440], [RFC8231], 699 [RFC8281], [RFC8664], and [RFC9050] are applicable to this 700 specification. No additional security measure is required. 702 As described in [RFC8402] and [RFC8664], SR intrinsically involves an 703 entity (whether head-end or a central network controller) controlling 704 and instantiating paths in the network without the involvement of 705 (other) nodes along those paths. Binding SIDs are in effect 706 shorthand aliases for longer path representations, and the alias 707 expansion is in principle known only by the node that acts on it. In 708 this document, the expansion of the alias is shared between PCC and 709 PCE, and rogue actions by either PCC or PCE could result in shifting 710 or misdirecting traffic in ways that are hard for other nodes to 711 detect. In particular, when a PCE propagates paths of the form {A, 712 B, BSID} to other entities, the BSID values are opaque, and a rogue 713 PCE can substitute a BSID from a different LSP in such paths to move 714 traffic without the recipient of the path knowing the ultimate 715 destination. 717 The case of BT=3 provides additional opportunities for malfeasance, 718 as it purports to convey information about internal SRv6 SID 719 structure. There is no mechanism defined to validate this internal 720 structure information, and mischaracterizing the division of bits 721 into locator block, locator node, function, and argument can result 722 in different interpretation of the bits by PCC and PCE. Most 723 notably, shifting bits into or out of the "argument" is a direct 724 vector for affecting processing, but other attacks are also possible. 726 Thus, as per [RFC8231], it is RECOMMENDED that these PCEP extensions 727 only be activated on authenticated and encrypted sessions across PCEs 728 and PCCs belonging to the same administrative authority, using 729 Transport Layer Security (TLS) [RFC8253], as per the recommendations 730 and best current practices in BCP195 [RFC7525] (unless explicitly set 731 aside in [RFC8253]). 733 11. Manageability Considerations 735 All manageability requirements and considerations listed in 736 [RFC5440], [RFC8231], and [RFC8664] apply to PCEP protocol extensions 737 defined in this document. In addition, requirements and 738 considerations listed in this section apply. 740 11.1. Control of Function and Policy 742 A PCC implementation SHOULD allow the operator to configure the 743 policy the PCC needs to apply when allocating the binding label/SID. 745 If BT is set to 2, the operator needs to have local policy set to 746 decide the SID structure and the SRv6 Endpoint Behavior of the BSID. 748 11.2. Information and Data Models 750 The PCEP YANG module [I-D.ietf-pce-pcep-yang] will be extended to 751 include policy configuration for binding label/SID allocation. 753 11.3. Liveness Detection and Monitoring 755 The mechanisms defined in this document do not imply any new liveness 756 detection and monitoring requirements in addition to those already 757 listed in [RFC5440]. 759 11.4. Verify Correct Operations 761 The mechanisms defined in this document do not imply any new 762 operation verification requirements in addition to those already 763 listed in [RFC5440], [RFC8231], and [RFC8664]. 765 11.5. Requirements On Other Protocols 767 The mechanisms defined in this document do not imply any new 768 requirements on other protocols. 770 11.6. Impact On Network Operations 772 The mechanisms defined in [RFC5440], [RFC8231], and [RFC8664] also 773 apply to the PCEP extensions defined in this document. 775 12. IANA Considerations 777 IANA maintains the "Path Computation Element Protocol (PCEP) Numbers" 778 registry. This document requests IANA actions to allocate code 779 points for the protocol elements defined in this document. 781 12.1. PCEP TLV Type Indicators 783 This document defines a new PCEP TLV; IANA is requested to confirm 784 the following early allocations from the "PCEP TLV Type Indicators" 785 subregistry of the PCEP Numbers registry, as follows: 787 +=======+=================+===============+ 788 | Value | Description | Reference | 789 +=======+=================+===============+ 790 +-------+-----------------+---------------+ 791 | 55 | TE-PATH-BINDING | This document | 792 +-------+-----------------+---------------+ 794 Table 1 796 12.1.1. TE-PATH-BINDING TLV 798 IANA is requested to create a new subregistry "TE-PATH-BINDING TLV BT 799 field" to manage the value of the Binding Type field in the TE-PATH- 800 BINDING TLV. Initial values for the subregistry are given below. 801 New values are assigned by Standards Action [RFC8126]. 803 +=======+======================================+===============+ 804 | Value | Description | Reference | 805 +=======+======================================+===============+ 806 +-------+--------------------------------------+---------------+ 807 | 0 | MPLS Label | This document | 808 +-------+--------------------------------------+---------------+ 809 | 1 | MPLS Label Stack Entry | This document | 810 +-------+--------------------------------------+---------------+ 811 | 2 | SRv6 SID | This document | 812 +-------+--------------------------------------+---------------+ 813 | 3 | SRv6 SID with Behavior and Structure | This document | 814 +-------+--------------------------------------+---------------+ 815 | 4-255 | Unassigned | This document | 816 +-------+--------------------------------------+---------------+ 818 Table 2 820 IANA is requested to create a new subregistry "TE-PATH-BINDING TLV 821 Flag field" to manage the Flag field in the TE-PATH-BINDING TLV. New 822 values are to be assigned by Standards Action [RFC8126]. Each bit 823 should be tracked with the following qualities: 825 * Bit number (count from 0 as the most significant bit) 827 * Description 829 * Reference 830 +=====+=============+===============+ 831 | Bit | Description | Reference | 832 +=====+=============+===============+ 833 +-----+-------------+---------------+ 834 | 0 | R (Removal) | This document | 835 +-----+-------------+---------------+ 836 | 1-7 | Unassigned | This document | 837 +-----+-------------+---------------+ 839 Table 3 841 12.2. LSP Object 843 IANA is requested to confirm the early allocation for a new code- 844 point in the "LSP Object Flag Field" sub-registry for the new P flag 845 as follows: 847 +=====+================+===============+ 848 | Bit | Description | Reference | 849 +=====+================+===============+ 850 +-----+----------------+---------------+ 851 | 0 | PCE-allocation | This document | 852 +-----+----------------+---------------+ 854 Table 4 856 12.3. PCEP Error Type and Value 858 This document defines a new Error-type and associated Error-Values 859 for the PCErr message. IANA is requested to allocate new error-type 860 and error-values within the "PCEP-ERROR Object Error Types and 861 Values" subregistry of the PCEP Numbers registry, as follows: 863 +============+================+========================+===========+ 864 | Error-Type | Meaning | Error-value | Reference | 865 +============+================+========================+===========+ 866 +------------+----------------+------------------------+-----------+ 867 | TBD2 | Binding label/ | 0: Unassigned | This | 868 | | SID failure | | document | 869 +------------+----------------+------------------------+-----------+ 870 | | | TBD3: Invalid SID | This | 871 | | | | document | 872 +------------+----------------+------------------------+-----------+ 873 | | | TBD4: Unable to | This | 874 | | | allocate the specified | document | 875 | | | binding value | | 876 +------------+----------------+------------------------+-----------+ 877 | | | TBD5: Unable to | This | 878 | | | allocate a new binding | document | 879 | | | label/SID | | 880 +------------+----------------+------------------------+-----------+ 881 | | | TBD6: Unable to remove | This | 882 | | | the binding value | document | 883 +------------+----------------+------------------------+-----------+ 884 | | | TBD7: Inconsistent | This | 885 | | | binding types | document | 886 +------------+----------------+------------------------+-----------+ 888 Table 5 890 13. Acknowledgements 892 We would like to thank Milos Fabian, Mrinmoy Das, Andrew Stone, Tom 893 Petch, Aijun Wang, Olivier Dugeon, and Adrian Farrel for their 894 valuable comments. 896 Thanks to Julien Meuric for shepherding. Thanks to John Scudder for 897 the AD review. 899 Thanks to Theresa Enghardt for the GENART review. 901 Thanks to Martin Vigoureux, Benjamin Kaduk, Eric Vyncke, Lars Eggert, 902 Murray Kucherawy, and Erik Kline for the IESG reviews. 904 14. References 906 14.1. Normative References 908 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 909 Requirement Levels", BCP 14, RFC 2119, 910 DOI 10.17487/RFC2119, March 1997, 911 . 913 [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., 914 Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack 915 Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, 916 . 918 [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation 919 Element (PCE) Communication Protocol (PCEP)", RFC 5440, 920 DOI 10.17487/RFC5440, March 2009, 921 . 923 [RFC5462] Andersson, L. and R. Asati, "Multiprotocol Label Switching 924 (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic 925 Class" Field", RFC 5462, DOI 10.17487/RFC5462, February 926 2009, . 928 [RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, 929 "Recommendations for Secure Use of Transport Layer 930 Security (TLS) and Datagram Transport Layer Security 931 (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May 932 2015, . 934 [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running 935 Code: The Implementation Status Section", BCP 205, 936 RFC 7942, DOI 10.17487/RFC7942, July 2016, 937 . 939 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 940 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 941 May 2017, . 943 [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path 944 Computation Element Communication Protocol (PCEP) 945 Extensions for Stateful PCE", RFC 8231, 946 DOI 10.17487/RFC8231, September 2017, 947 . 949 [RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody, 950 "PCEPS: Usage of TLS to Provide a Secure Transport for the 951 Path Computation Element Communication Protocol (PCEP)", 952 RFC 8253, DOI 10.17487/RFC8253, October 2017, 953 . 955 [RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path 956 Computation Element Communication Protocol (PCEP) 957 Extensions for PCE-Initiated LSP Setup in a Stateful PCE 958 Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, 959 . 961 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 962 Decraene, B., Litkowski, S., and R. Shakir, "Segment 963 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 964 July 2018, . 966 [RFC8664] Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., 967 and J. Hardwick, "Path Computation Element Communication 968 Protocol (PCEP) Extensions for Segment Routing", RFC 8664, 969 DOI 10.17487/RFC8664, December 2019, 970 . 972 [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for 973 Writing an IANA Considerations Section in RFCs", BCP 26, 974 RFC 8126, DOI 10.17487/RFC8126, June 2017, 975 . 977 [RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, 978 D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 979 (SRv6) Network Programming", RFC 8986, 980 DOI 10.17487/RFC8986, February 2021, 981 . 983 [RFC9050] Li, Z., Peng, S., Negi, M., Zhao, Q., and C. Zhou, "Path 984 Computation Element Communication Protocol (PCEP) 985 Procedures and Extensions for Using the PCE as a Central 986 Controller (PCECC) of LSPs", RFC 9050, 987 DOI 10.17487/RFC9050, July 2021, 988 . 990 [I-D.ietf-pce-segment-routing-ipv6] 991 Li, C., Negi, M., Sivabalan, S., Koldychev, M., 992 Kaladharan, P., and Y. Zhu, "PCEP Extensions for Segment 993 Routing leveraging the IPv6 data plane", Work in Progress, 994 Internet-Draft, draft-ietf-pce-segment-routing-ipv6-11, 10 995 January 2022, . 998 14.2. Informative References 1000 [RFC4655] Farrel, A., Vasseur, J.-P., and J. Ash, "A Path 1001 Computation Element (PCE)-Based Architecture", RFC 4655, 1002 DOI 10.17487/RFC4655, August 2006, 1003 . 1005 [RFC8283] Farrel, A., Ed., Zhao, Q., Ed., Li, Z., and C. Zhou, "An 1006 Architecture for Use of PCE and the PCE Communication 1007 Protocol (PCEP) in a Network with Central Control", 1008 RFC 8283, DOI 10.17487/RFC8283, December 2017, 1009 . 1011 [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., 1012 Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header 1013 (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, 1014 . 1016 [I-D.ietf-spring-segment-routing-policy] 1017 Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and 1018 P. Mattes, "Segment Routing Policy Architecture", Work in 1019 Progress, Internet-Draft, draft-ietf-spring-segment- 1020 routing-policy-18, 17 February 2022, 1021 . 1024 [I-D.ietf-pce-pcep-yang] 1025 Dhody, D., Hardwick, J., Beeram, V. P., and J. Tantsura, 1026 "A YANG Data Model for Path Computation Element 1027 Communications Protocol (PCEP)", Work in Progress, 1028 Internet-Draft, draft-ietf-pce-pcep-yang-18, 25 January 1029 2022, . 1032 [I-D.li-pce-controlled-id-space] 1033 Li, C., Chen, M., Wang, A., Cheng, W., and C. Zhou, "PCE 1034 Controlled ID Space", Work in Progress, Internet-Draft, 1035 draft-li-pce-controlled-id-space-10, 24 February 2022, 1036 . 1039 [I-D.ietf-pce-sr-path-segment] 1040 Li, C., Chen, M., Cheng, W., Gandhi, R., and Q. Xiong, 1041 "Path Computation Element Communication Protocol (PCEP) 1042 Extension for Path Segment in Segment Routing (SR)", Work 1043 in Progress, Internet-Draft, draft-ietf-pce-sr-path- 1044 segment-05, 13 February 2022, 1045 . 1048 Appendix A. Contributor Addresses 1050 Jonathan Hardwick 1051 Metaswitch Networks 1052 33 Genotin Road 1053 Enfield 1054 United Kingdom 1056 EMail: Jonathan.Hardwick@metaswitch.com 1058 Dhruv Dhody 1059 Huawei Technologies 1060 Divyashree Techno Park, Whitefield 1061 Bangalore, Karnataka 560066 1062 India 1064 EMail: dhruv.ietf@gmail.com 1066 Mahendra Singh Negi 1067 RtBrick India 1068 N-17L, Floor-1, 18th Cross Rd, HSR Layout Sector-3 1069 Bangalore, Karnataka 560102 1070 India 1072 EMail: mahend.ietf@gmail.com 1074 Mike Koldychev 1075 Cisco Systems, Inc. 1076 2000 Innovation Drive 1077 Kanata, Ontario K2K 3E8 1078 Canada 1080 Email: mkoldych@cisco.com 1082 Zafar Ali 1083 Cisco Systems, Inc. 1085 Email: zali@cisco.com 1087 Authors' Addresses 1089 Siva Sivabalan 1090 Ciena Corporation 1091 Email: msiva282@gmail.com 1092 Clarence Filsfils 1093 Cisco Systems, Inc. 1094 Pegasus Parc 1095 BRABANT 1831 De kleetlaan 6a 1096 Belgium 1097 Email: cfilsfil@cisco.com 1099 Jeff Tantsura 1100 Microsoft Corporation 1101 Email: jefftant.ietf@gmail.com 1103 Stefano Previdi 1104 Huawei Technologies 1105 Email: stefano@previdi.net 1107 Cheng Li (editor) 1108 Huawei Technologies 1109 Huawei Campus, No. 156 Beiqing Rd. 1110 Beijing 1111 100095 1112 China 1113 Email: c.l@huawei.com