idnits 2.17.1 draft-ietf-idr-te-lsp-distribution-10.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 (February 26, 2019) is 1886 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 (-22) exists of draft-ietf-spring-segment-routing-policy-02 ** Obsolete normative reference: RFC 7752 (Obsoleted by RFC 9552) Summary: 1 error (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group S. Previdi 3 Internet-Draft 4 Intended status: Standards Track K. Talaulikar, Ed. 5 Expires: August 30, 2019 Cisco Systems, Inc. 6 J. Dong, Ed. 7 M. Chen 8 Huawei Technologies 9 H. Gredler 10 RtBrick Inc. 11 J. Tantsura 12 Apstra 13 February 26, 2019 15 Distribution of Traffic Engineering (TE) Policies and State using BGP-LS 16 draft-ietf-idr-te-lsp-distribution-10 18 Abstract 20 This document describes a mechanism to collect the Traffic 21 Engineering and Policy information that is locally available in a 22 node and advertise it into BGP Link State (BGP-LS) updates. Such 23 information can be used by external components for path computation, 24 re-optimization, service placement, network visualization, etc. 26 Requirements Language 28 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 29 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 30 "OPTIONAL" in this document are to be interpreted as described in BCP 31 14 [RFC2119] [RFC8174] when, and only when, they appear in all 32 capitals, as shown here. 34 Status of This Memo 36 This Internet-Draft is submitted in full conformance with the 37 provisions of BCP 78 and BCP 79. 39 Internet-Drafts are working documents of the Internet Engineering 40 Task Force (IETF). Note that other groups may also distribute 41 working documents as Internet-Drafts. The list of current Internet- 42 Drafts is at https://datatracker.ietf.org/drafts/current/. 44 Internet-Drafts are draft documents valid for a maximum of six months 45 and may be updated, replaced, or obsoleted by other documents at any 46 time. It is inappropriate to use Internet-Drafts as reference 47 material or to cite them other than as "work in progress." 48 This Internet-Draft will expire on August 30, 2019. 50 Copyright Notice 52 Copyright (c) 2019 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 (https://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. Carrying TE Policy Information in BGP . . . . . . . . . . . . 5 69 3. TE Policy NLRI . . . . . . . . . . . . . . . . . . . . . . . 6 70 4. TE Policy Descriptors . . . . . . . . . . . . . . . . . . . . 7 71 4.1. Tunnel Identifier (Tunnel ID) . . . . . . . . . . . . . . 7 72 4.2. LSP Identifier (LSP ID) . . . . . . . . . . . . . . . . . 7 73 4.3. IPv4/IPv6 Tunnel Head-End Address . . . . . . . . . . . . 8 74 4.4. IPv4/IPv6 Tunnel Tail-End Address . . . . . . . . . . . . 8 75 4.5. SR Policy Candidate Path Descriptor . . . . . . . . . . . 9 76 4.6. Local MPLS Cross Connect . . . . . . . . . . . . . . . . 11 77 4.6.1. MPLS Cross Connect Interface . . . . . . . . . . . . 12 78 4.6.2. MPLS Cross Connect FEC . . . . . . . . . . . . . . . 13 79 5. MPLS-TE Policy State TLV . . . . . . . . . . . . . . . . . . 14 80 5.1. RSVP Objects . . . . . . . . . . . . . . . . . . . . . . 15 81 5.2. PCEP Objects . . . . . . . . . . . . . . . . . . . . . . 16 82 6. SR Policy State TLVs . . . . . . . . . . . . . . . . . . . . 17 83 6.1. SR Binding SID . . . . . . . . . . . . . . . . . . . . . 17 84 6.2. SR Candidate Path State . . . . . . . . . . . . . . . . . 19 85 6.3. SR Candidate Path Name . . . . . . . . . . . . . . . . . 21 86 6.4. SR Candidate Path Constraints . . . . . . . . . . . . . . 21 87 6.4.1. SR Affinity Constraint . . . . . . . . . . . . . . . 23 88 6.4.2. SR SRLG Constraint . . . . . . . . . . . . . . . . . 24 89 6.4.3. SR Bandwidth Constraint . . . . . . . . . . . . . . . 25 90 6.4.4. SR Disjoint Group Constraint . . . . . . . . . . . . 25 91 6.5. SR Segment List . . . . . . . . . . . . . . . . . . . . . 27 92 6.6. SR Segment . . . . . . . . . . . . . . . . . . . . . . . 30 93 6.6.1. Segment Descriptors . . . . . . . . . . . . . . . . . 31 94 6.7. SR Segment List Metric . . . . . . . . . . . . . . . . . 38 95 7. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 40 96 8. Manageability Considerations . . . . . . . . . . . . . . . . 41 97 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 41 98 9.1. BGP-LS NLRI-Types . . . . . . . . . . . . . . . . . . . . 41 99 9.2. BGP-LS Protocol-IDs . . . . . . . . . . . . . . . . . . . 41 100 9.3. BGP-LS TLVs . . . . . . . . . . . . . . . . . . . . . . . 42 101 9.4. BGP-LS SR Policy Protocol Origin . . . . . . . . . . . . 42 102 9.5. BGP-LS TE State Object Origin . . . . . . . . . . . . . . 43 103 9.6. BGP-LS TE State Address Family . . . . . . . . . . . . . 43 104 9.7. BGP-LS SR Segment Descriptors . . . . . . . . . . . . . . 44 105 9.8. BGP-LS Metric Type . . . . . . . . . . . . . . . . . . . 44 106 10. Security Considerations . . . . . . . . . . . . . . . . . . . 45 107 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 45 108 12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 45 109 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 45 110 13.1. Normative References . . . . . . . . . . . . . . . . . . 45 111 13.2. Informative References . . . . . . . . . . . . . . . . . 47 112 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 48 114 1. Introduction 116 In many network environments, traffic engineering (TE) policies are 117 instantiated into various forms: 119 o MPLS Traffic Engineering Label Switched Paths (TE-LSPs). 121 o IP based tunnels (IP in IP, GRE, etc). 123 o Segment Routing (SR) Policies as defined in 124 [I-D.ietf-spring-segment-routing-policy] 126 o Local MPLS cross-connect configuration 128 All this information can be grouped into the same term: TE Policies. 129 In the rest of this document we refer to TE Policies as the set of 130 information related to the various instantiation of polices: MPLS TE 131 LSPs, IP tunnels (IPv4 or IPv6), SR Policies, etc. 133 TE Polices are generally instantiated at the head-end and are based 134 on either local configuration or controller based programming of the 135 node using various APIs and protocols, e.g., PCEP or BGP. 137 In many network environments, the configuration and state of each TE 138 Policy that is available in the network is required by a controller 139 which allows the network operator to optimize several functions and 140 operations through the use of a controller aware of both topology and 141 state information. 143 One example of a controller is the stateful Path Computation Element 144 (PCE) [RFC8231], which could provide benefits in path reoptimization. 145 While some extensions are proposed in Path Computation Element 146 Communication Protocol (PCEP) for the Path Computation Clients (PCCs) 147 to report the LSP states to the PCE, this mechanism may not be 148 applicable in a management-based PCE architecture as specified in 149 section 5.5 of [RFC4655]. As illustrated in the figure below, the 150 PCC is not an LSR in the routing domain, thus the head-end nodes of 151 the TE-LSPs may not implement the PCEP protocol. In this case a 152 general mechanism to collect the TE-LSP states from the ingress LERs 153 is needed. This document proposes an TE Policy state collection 154 mechanism complementary to the mechanism defined in [RFC8231]. 156 ----------- 157 | ----- | 158 Service | | TED |<-+-----------> 159 Request | ----- | TED synchronization 160 | | | | mechanism (for example, 161 v | | | routing protocol) 162 ------------- Request/ | v | 163 | | Response| ----- | 164 | NMS |<--------+> | PCE | | 165 | | | ----- | 166 ------------- ----------- 167 Service | 168 Request | 169 v 170 ---------- Signaling ---------- 171 | Head-End | Protocol | Adjacent | 172 | Node |<---------->| Node | 173 ---------- ---------- 175 Figure 1. Management-Based PCE Usage 177 In networks with composite PCE nodes as specified in section 5.1 of 178 [RFC4655], PCE is implemented on several routers in the network, and 179 the PCCs in the network can use the mechanism described in [RFC8231] 180 to report the TE Policy information to the PCE nodes. An external 181 component may also need to collect the TE Policy information from all 182 the PCEs in the network to obtain a global view of the LSP state in 183 the network. 185 In multi-area or multi-AS scenarios, each area or AS can have a child 186 PCE to collect the TE Policies in its own domain, in addition, a 187 parent PCE needs to collect TE Policy information from multiple child 188 PCEs to obtain a global view of LSPs inside and across the domains 189 involved. 191 In another network scenario, a centralized controller is used for 192 service placement. Obtaining the TE Policy state information is 193 quite important for making appropriate service placement decisions 194 with the purpose to both meet the application's requirements and 195 utilize network resources efficiently. 197 The Network Management System (NMS) may need to provide global 198 visibility of the TE Policies in the network as part of the network 199 visualization function. 201 BGP has been extended to distribute link-state and traffic 202 engineering information to external components [RFC7752]. Using the 203 same protocol to collect Traffic Engineering Policy and state 204 information is desirable for these external components since this 205 avoids introducing multiple protocols for network information 206 collection. This document describes a mechanism to distribute 207 traffic engineering policy information (MPLS, SR, IPv4 and IPv6) to 208 external components using BGP-LS. 210 2. Carrying TE Policy Information in BGP 212 TE Policy information is advertised in BGP UPDATE messages using the 213 MP_REACH_NLRI and MP_UNREACH_NLRI attributes [RFC4760]. The "Link- 214 State NLRI" defined in [RFC7752] is extended to carry the TE Policy 215 information. BGP speakers that wish to exchange TE Policy 216 information MUST use the BGP Multiprotocol Extensions Capability Code 217 (1) to advertise the corresponding (AFI, SAFI) pair, as specified in 218 [RFC4760]. New TLVs carried in the Link_State Attribute defined in 219 [RFC7752] are also defined in order to carry the attributes of a TE 220 Policy in the subsequent sections. 222 The format of "Link-State NLRI" is defined in [RFC7752] as follows: 224 0 1 2 3 225 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 226 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 227 | NLRI Type | Total NLRI Length | 228 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 229 | | 230 // Link-State NLRI (variable) // 231 | | 232 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 234 A new "NLRI Type" is defined for TE Policy Information as following: 236 o NLRI Type: TE Policy NLRI (value TBD see IANA Considerations 237 Section 9.1). 239 The format of this new NLRI type is defined in Section 3 below. 241 3. TE Policy NLRI 243 This document defines the new TE Policy NLRI-Type and its format as 244 shown in the following figure: 246 0 1 2 3 247 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 248 +-+-+-+-+-+-+-+-+ 249 | Protocol-ID | 250 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 251 | Identifier | 252 | (64 bits) | 253 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 254 // Headend (Node Descriptors) // 255 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 256 // TE Policy Descriptors (variable) // 257 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 259 where: 261 o Protocol-ID field specifies the component that owns the TE Policy 262 state in the advertising node. The following new Protocol-IDs are 263 defined (values TBD see IANA Considerations Section 9.2) and apply 264 to the TE Policy NLRI: 266 +-------------+----------------------------------+ 267 | Protocol-ID | NLRI information source protocol | 268 +-------------+----------------------------------+ 269 | TBD | RSVP-TE | 270 | TBD | Segment Routing | 271 +-------------+----------------------------------+ 273 o "Identifier" is an 8 octet value as defined in [RFC7752]. 275 o "Headend" consists of a Node Descriptor defined in [RFC7752]. 277 o "TE Policy Descriptors" consists of one or more of the TLVs listed 278 as below: (values TBD see IANA Considerations Section 9.3): 280 +-----------+----------------------------------+ 281 | Codepoint | Descriptor TLVs | 282 +-----------+----------------------------------+ 283 | TBD | Tunnel ID | 284 | TBD | LSP ID | 285 | TBD | IPv4/6 Tunnel Head-end address | 286 | TBD | IPv4/6 Tunnel Tail-end address | 287 | TBD | SR Policy Candidate Path | 288 | TBD | Local MPLS Cross Connect | 289 +-----------+----------------------------------+ 291 4. TE Policy Descriptors 293 This sections defines the TE Policy Descriptors TLVs which are used 294 to describe the TE Policy being advertised by using the new BGP-LS TE 295 Policy NLRI type defined in Section 3. 297 4.1. Tunnel Identifier (Tunnel ID) 299 The Tunnel Identifier TLV contains the Tunnel ID defined in [RFC3209] 300 and is used for RSVP-TE protocol TE Policies. It has the following 301 format: 303 0 1 2 3 304 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 305 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 306 | Type | Length | 307 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 308 | Tunnel ID | 309 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 311 where: 313 o Type: TBD (see IANA Considerations Section 9.3) 315 o Length: 2 octets. 317 o Tunnel ID: 2 octets as defined in [RFC3209]. 319 4.2. LSP Identifier (LSP ID) 321 The LSP Identifier TLV contains the LSP ID defined in [RFC3209] and 322 is used for RSVP-TE protocol TE Policies. It has the following 323 format: 325 0 1 2 3 326 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 327 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 328 | Type | Length | 329 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 330 | LSP ID | 331 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 333 where: 335 o Type: TBD (see IANA Considerations Section 9.3) 337 o Length: 2 octets. 339 o LSP ID: 2 octets as defined in [RFC3209]. 341 4.3. IPv4/IPv6 Tunnel Head-End Address 343 The IPv4/IPv6 Tunnel Head-End Address TLV contains the Tunnel Head- 344 End Address defined in [RFC3209] and is used for RSVP-TE protocol TE 345 Policies. It has following format: 347 0 1 2 3 348 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 349 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 350 | Type | Length | 351 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 352 // IPv4/IPv6 Tunnel Head-End Address (variable) // 353 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 355 where: 357 o Type: TBD (see IANA Considerations Section 9.3) 359 o Length: 4 or 16 octets. 361 When the IPv4/IPv6 Tunnel Head-end Address TLV contains an IPv4 362 address, its length is 4 (octets). 364 When the IPv4/IPv6 Tunnel Head-end Address TLV contains an IPv6 365 address, its length is 16 (octets). 367 4.4. IPv4/IPv6 Tunnel Tail-End Address 369 The IPv4/IPv6 Tunnel Tail-End Address TLV contains the Tunnel Tail- 370 End Address defined in [RFC3209] and is used for RSVP-TE protocol TE 371 Policies. It has following format: 373 0 1 2 3 374 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 375 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 376 | Type | Length | 377 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 378 // IPv4/IPv6 Tunnel Tail-End Address (variable) // 379 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 381 where: 383 o Type: TBD (see IANA Considerations Section 9.3) 385 o Length: 4 or 16 octets. 387 When the IPv4/IPv6 Tunnel Tail-end Address TLV contains an IPv4 388 address, its length is 4 (octets). 390 When the IPv4/IPv6 Tunnel Tail-end Address TLV contains an IPv6 391 address, its length is 16 (octets). 393 4.5. SR Policy Candidate Path Descriptor 395 The SR Policy Candidate Path Descriptor TLV identifies a Segment 396 Routing Policy candidate path (CP) as defined in 397 [I-D.ietf-spring-segment-routing-policy] and has the following 398 format: 400 0 1 2 3 401 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 402 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 403 | Type | Length | 404 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 405 |Protocol-origin| Flags | RESERVED | 406 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 407 | Endpoint (4 or 16 octets) // 408 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 409 | Policy Color (4 octets) | 410 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 411 | Originator AS Number (4 octets) | 412 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 413 | Originator Address (4 or 16 octets) // 414 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 415 | Discriminator (4 octets) | 416 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 418 where: 420 o Type: TBD (see IANA Considerations Section 9.3) 421 o Length: variable (valid values are 24, 36 or 48 octets) 423 o Protocol-Origin : 1 octet field which identifies the protocol or 424 component which is responsible for the instantiation of this path. 425 Following protocol-origin codepoints are defined in this document. 427 +------------+---------------------------------------------------------+ 428 | Code Point | Protocol Origin | 429 +------------+---------------------------------------------------------+ 430 | 1 | PCEP | 431 | 2 | BGP SR Policy | 432 | 3 | Local (via CLI, Yang model through NETCONF, gRPC, etc.) | 433 +------------+---------------------------------------------------------+ 435 o Flags: 1 octet field with following bit positions defined. Other 436 bits SHOULD be cleared by originator and MUST be ignored by 437 receiver. 439 0 1 2 3 4 5 6 7 440 +-+-+-+-+-+-+-+-+ 441 |E|O| | 442 +-+-+-+-+-+-+-+-+ 444 where: 446 * E-Flag : Indicates the encoding of endpoint as IPv6 address 447 when set and IPv4 address when clear 449 * O-Flag : Indicates the encoding of originator address as IPv6 450 address when set and IPv4 address when clear 452 o Reserved : 2 octets which SHOULD be set to 0 by originator and 453 MUST be ignored by receiver. 455 o Endpoint : 4 or 16 octets (as indicated by the flags) containing 456 the address of the endpoint of the SR Policy 458 o Color : 4 octets that indicates the color of the SR Policy 460 o Originator ASN : 4 octets to carry the 4 byte encoding of the ASN 461 of the originator. Refer [I-D.ietf-spring-segment-routing-policy] 462 Sec 2.4 for details. 464 o Originator Address : 4 or 16 octets (as indicated by the flags) to 465 carry the address of the originator. Refer 466 [I-D.ietf-spring-segment-routing-policy] Sec 2.4 for details. 468 o Discriminator : 4 octets to carry the discrimator of the path. 469 Refer [I-D.ietf-spring-segment-routing-policy] Sec 2.5 for 470 details. 472 4.6. Local MPLS Cross Connect 474 The Local MPLS Cross Connect TLV identifies a local MPLS state in the 475 form of incoming label and interface followed by an outgoing label 476 and interface. Outgoing interface may appear multiple times (for 477 multicast states). It is used with Protocol ID set to "Static 478 Configuration" value 5 as defined in [RFC7752]. 480 The Local MPLS Cross Connect TLV has the following format: 482 0 1 2 3 483 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 484 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 485 | Type | Length | 486 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 487 | Incoming label (4 octets) | 488 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 489 | Outgoing label (4 octets) | 490 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 491 // Sub-TLVs (variable) // 492 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 494 where: 496 o Type: TBD (see IANA Considerations Section 9.3) 498 o Length: variable. 500 o Incoming and Outgoing labels: 4 octets each. 502 o Sub-TLVs: following Sub-TLVs are defined: 504 * Interface Sub-TLV 506 * Forwarding Equivalent Class (FEC) 508 The Local MPLS Cross Connect TLV: 510 MUST have an incoming label. 512 MUST have an outgoing label. 514 MAY contain an Interface Sub-TLV having the I-flag set. 516 MUST contain at least one Interface Sub-TLV having the I-flag 517 unset. 519 MAY contain multiple Interface Sub-TLV having the I-flag unset. 520 This is the case of a multicast MPLS cross connect. 522 MAY contain a FEC Sub-TLV. 524 The following sub-TLVs are defined for the Local MPLS Cross Connect 525 TLV (values TBD see IANA Considerations Section 9.3): 527 +-----------+----------------------------------+ 528 | Codepoint | Descriptor TLV | 529 +-----------+----------------------------------+ 530 | TBD | MPLS Cross Connect Interface | 531 | TBD | MPLS Cross Connect FEC | 532 +-----------+----------------------------------+ 534 These are defined in the following sub-sections. 536 4.6.1. MPLS Cross Connect Interface 538 The MPLS Cross Connect Interface sub-TLV is optional and contains the 539 identifier of the interface (incoming or outgoing) in the form of an 540 IPv4 address or an IPv6 address. 542 The MPLS Cross Connect Interface sub-TLV has the following format: 544 0 1 2 3 545 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 546 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 547 | Type | Length | 548 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 550 +-+-+-+-+-+-+-+-+ 551 | Flags | 552 +-+-+-+-+-+-+-+-+ 554 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 555 | Local Interface Identifier (4 octets) | 556 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 557 // Interface Address (4 or 16 octets) // 558 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 560 where: 562 o Type: TBD (see IANA Considerations Section 9.3) 563 o Length: 9 or 21. 565 o Flags: 1 octet of flags defined as follows: 567 0 1 2 3 4 5 6 7 568 +-+-+-+-+-+-+-+-+ 569 |I| | 570 +-+-+-+-+-+-+-+-+ 572 where: 574 * I-Flag is the Interface flag. When set, the Interface Sub-TLV 575 describes an incoming interface. If the I-flag is not set, 576 then the Interface Sub-TLV describes an outgoing interface. 578 o Local Interface Identifier: a 4 octet identifier. 580 o Interface address: a 4 octet IPv4 address or a 16 octet IPv6 581 address. 583 4.6.2. MPLS Cross Connect FEC 585 The MPLS Cross Connect FEC sub-TLV is optional and contains the FEC 586 associated to the incoming label. 588 The MPLS Cross Connect FEC sub-TLV has the following format: 590 0 1 2 3 591 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 592 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 593 | Type | Length | 594 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 595 | Flags | Masklength | Prefix (variable) // 596 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 597 // Prefix (variable) // 598 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 600 where: 602 o Type: TBD (see IANA Considerations Section 9.3) 604 o Length: variable. 606 o Flags: 1 octet of flags defined as follows: 608 0 1 2 3 4 5 6 7 609 +-+-+-+-+-+-+-+-+ 610 |4| | 611 +-+-+-+-+-+-+-+-+ 613 where: 615 * 4-Flag is the IPv4 flag. When set, the FEC Sub-TLV describes 616 an IPv4 FEC. If the 4-flag is not set, then the FEC Sub-TLV 617 describes an IPv6 FEC. 619 o Mask Length: 1 octet of prefix length. 621 o Prefix: an IPv4 or IPv6 prefix whose mask length is given by the " 622 Mask Length" field padded to an octet boundary. 624 5. MPLS-TE Policy State TLV 626 A new TLV called "MPLS-TE Policy State TLV", is used to describe the 627 characteristics of the MPLS-TE Policy and it is carried in the 628 optional non-transitive BGP Attribute "LINK_STATE Attribute" defined 629 in [RFC7752]. These MPLS-TE Policy characteristics include the 630 characteristics and attributes of the policy, its dataplane, explicit 631 path, Quality of Service (QoS) parameters, route information, the 632 protection mechanisms, etc. 634 The MPLS-TE Policy State TLV has the following format: 636 0 1 2 3 637 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 638 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 639 | Type | Length | 640 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 641 | Object-origin | Address Family| RESERVED | 642 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 644 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 645 // MPLS-TE Policy State Objects (variable) // 646 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 648 where: 650 MPLS-TE Policy State TLV 652 o Type: TBD (see IANA Considerations Section 9.3) 654 o Length: the total length of the MPLS-TE Policy State TLV not 655 including Type and Length fields. 657 o Object-origin: identifies the component (or protocol) from which 658 the contained object originated. This allows for objects defined 659 in different components to be collected while avoiding the 660 possible codepoint collisions among these components. Following 661 object-origin codepoints are defined in this document. 663 +----------+------------------+ 664 | Code | Object | 665 | Point | Origin | 666 +----------+------------------+ 667 | 1 | RSVP-TE | 668 | 2 | PCEP | 669 | 3 | Local/Static | 670 +----------+------------------+ 672 o Address Family: describes the address family used to setup the 673 MPLS-TE policy. The following address family values are defined 674 in this document: 676 +----------+------------------+ 677 | Code | Dataplane | 678 | Point | | 679 +----------+------------------+ 680 | 1 | MPLS-IPv4 | 681 | 2 | MPLS-IPv6 | 682 +----------+------------------+ 684 o RESERVED: 16-bit field. SHOULD be set to 0 on transmission and 685 MUST be ignored on receipt. 687 o TE Policy State Objects: Rather than replicating all these objects 688 in this document, the semantics and encodings of the objects as 689 defined in RSVP-TE and PCEP are reused. 691 The state information is carried in the "MPLS-TE Policy State 692 Objects" with the following format as described in the sub-sections 693 below. 695 5.1. RSVP Objects 697 RSVP-TE objects are encoded in the "MPLS-TE Policy State Objects" 698 field of the MPLS-TE Policy State TLV and consists of MPLS TE LSP 699 objects defined in RSVP-TE [RFC3209] [RFC3473]. Rather than 700 replicating all MPLS TE LSP related objects in this document, the 701 semantics and encodings of the MPLS TE LSP objects are re-used. 702 These MPLS TE LSP objects are carried in the MPLS-TE Policy State 703 TLV. 705 When carrying RSVP-TE objects, the "Object-Origin" field is set to 706 "RSVP-TE". 708 The following RSVP-TE Objects are defined: 710 o SENDER_TSPEC and FLOW_SPEC [RFC2205] 712 o SESSION_ATTRIBUTE [RFC3209] 714 o EXPLICIT_ROUTE Object (ERO) [RFC3209] 716 o ROUTE_RECORD Object (RRO) [RFC3209] 718 o FAST_REROUTE Object [RFC4090] 720 o DETOUR Object [RFC4090] 722 o EXCLUDE_ROUTE Object (XRO) [RFC4874] 724 o SECONDARY_EXPLICIT_ROUTE Object (SERO) [RFC4873] 726 o SECONDARY_RECORD_ROUTE (SRRO) [RFC4873] 728 o LSP_ATTRIBUTES Object [RFC5420] 730 o LSP_REQUIRED_ATTRIBUTES Object [RFC5420] 732 o PROTECTION Object [RFC3473][RFC4872][RFC4873] 734 o ASSOCIATION Object [RFC4872] 736 o PRIMARY_PATH_ROUTE Object [RFC4872] 738 o ADMIN_STATUS Object [RFC3473] 740 o LABEL_REQUEST Object [RFC3209][RFC3473] 742 For the MPLS TE LSP Objects listed above, the corresponding sub- 743 objects are also applicable to this mechanism. Note that this list 744 is not exhaustive, other MPLS TE LSP objects which reflect specific 745 characteristics of the MPLS TE LSP can also be carried in the LSP 746 state TLV. 748 5.2. PCEP Objects 750 PCEP objects are encoded in the "MPLS-TE Policy State Objects" field 751 of the MPLS-TE Policy State TLV and consists of PCEP objects defined 752 in [RFC5440]. Rather than replicating all MPLS TE LSP related 753 objects in this document, the semantics and encodings of the MPLS TE 754 LSP objects are re-used. These MPLS TE LSP objects are carried in 755 the MPLS-TE Policy State TLV. 757 When carrying PCEP objects, the "Object-Origin" field is set to 758 "PCEP". 760 The following PCEP Objects are defined: 762 o METRIC Object [RFC5440] 764 o BANDWIDTH Object [RFC5440] 766 For the MPLS TE LSP Objects listed above, the corresponding sub- 767 objects are also applicable to this mechanism. Note that this list 768 is not exhaustive, other MPLS TE LSP objects which reflect specific 769 characteristics of the MPLS TE LSP can also be carried in the TE 770 Policy State TLV. 772 6. SR Policy State TLVs 774 Segment Routing Policy (SR Policy) architecture is specified in 775 [I-D.ietf-spring-segment-routing-policy]. A SR Policy can comprise 776 of one or more candidate paths (CP) of which at a given time one and 777 only one may be active (i.e. installed in forwarding and usable for 778 steering of traffic). Each CP in turn may have one or more SID-List 779 of which one or more may be active; when multiple are active then 780 traffic is load balanced over them. 782 This section defines the various TLVs which enable the headend to 783 report the state of an SR Policy, its CP(s), SID-List(s) and their 784 status. These TLVs are carried in the optional non-transitive BGP 785 Attribute "LINK_STATE Attribute" defined in [RFC7752] and enable the 786 same consistent form of reporting for SR Policy state irrespective of 787 the Protocol-Origin used to provision the policy. Detailed procedure 788 is described in Section 7 . 790 6.1. SR Binding SID 792 The SR Binding SID (BSID) is an optional TLV that provides the BSID 793 and its attributes for the SR Policy CP. The TLV MAY also optionally 794 contain the Provisioned BSID value for reporting when explicitly 795 provisioned. 797 The TLV has the following format: 799 0 1 2 3 800 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 801 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 802 | Type | Length | 803 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 804 | BSID Flags | RESERVED | 805 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 806 | Binding SID (4 or 16 octets) // 807 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 808 | Provisioned Binding SID (optional, 4 or 16 octets) // 809 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 811 where: 813 o Type: TBD (see IANA Considerations Section 9.3) 815 o Length: variable (valid values are 12, 16, 24 or 40 octets) 817 o BSID Flags: 2 octet field that indicates attribute and status of 818 the Binding SID (BSID) associated with this CP. The following bit 819 positions are defined and the semantics are described in detail in 820 [I-D.ietf-spring-segment-routing-policy]. Other bits SHOULD be 821 cleared by originator and MUST be ignored by receiver. 823 0 1 824 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 825 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 826 |D|B|U|S|L|F| | 827 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 829 where: 831 * D-Flag : Indicates the dataplane for the BSIDs and if they are 832 16 octet SRv6 SID when set and are 4 octet SR/MPLS label value 833 when clear. 835 * B-Flag : Indicates the allocation of the value in the BSID 836 field when set and indicates that BSID is not allocated when 837 clear. 839 * U-Flag : Indicates the provisioned BSID value is unavailable 840 when set. 842 * S-Flag : Indicates the BSID value in use is specified or 843 provisioned value when set and dynamically allocated value when 844 clear. 846 * L-Flag : Indicates the BSID value is from the Segment Routing 847 Local Block (SRLB) of the headend node when set and is from the 848 local label pool when clear 850 * F-Flag : Indicates the BSID value is one allocated from dynamic 851 range due to fallback (e.g. when specified BSID is unavailable) 852 when set. 854 o RESERVED: 2 octets. SHOULD be set to 0 by originator and MUST be 855 ignored by receiver. 857 o Binding SID: It indicates the operational or allocated BSID value 858 for the CP based on the status flags. 860 o Provisioned BSID: Optional field used to report the explicitly 861 provisioned BSID value as indicated by the S-Flag being clear. 863 The BSID fields above are 4 octet carrying the MPLS Label or 16 864 octets carrying the SRv6 SID based on the BSID D-flag. When carrying 865 the MPLS Label, as shown in the figure below, the TC, S and TTL 866 (total of 12 bits) are RESERVED and SHOULD be set to 0 by originator 867 and MUST be ignored by the receiver. 869 0 1 2 3 870 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 871 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 872 | Label | TC |S| TTL | 873 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 875 6.2. SR Candidate Path State 877 The SR Candidate Path (CP) State TLV provides the operational status 878 and attributes of the SR Policy at the CP level. The TLV has the 879 following format: 881 0 1 2 3 882 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 883 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 884 | Type | Length | 885 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 886 | Priority | RESERVED | Flags | 887 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 888 | Preference (4 octets) | 889 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 891 where: 893 o Type: TBD (see IANA Considerations Section 9.3) 895 o Length: 12 octets 897 o Priority : 1 octet value which indicates the priority of the CP. 898 Refer Section 2.12 of [I-D.ietf-spring-segment-routing-policy]. 900 o RESERVED: 1 octet. SHOULD be set to 0 by originator and MUST be 901 ignored by receiver. 903 o Flags: 2 octet field that indicates attribute and status of the 904 CP. The following bit positions are defined and the semantics are 905 described in detail in [I-D.ietf-spring-segment-routing-policy]. 906 Other bits SHOULD be cleared by originator and MUST be ignored by 907 receiver. 909 0 1 910 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 911 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 912 |S|A|B|E|V|O|D|C|I|T| | 913 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 915 where: 917 * S-Flag : Indicates the CP is in administrative shut state when 918 set 920 * A-Flag : Indicates the CP is the active path (i.e. one 921 provisioned in the forwarding plane) for the SR Policy when set 923 * B-Flag : Indicates the CP is the backup path (i.e. one 924 identified for path protection of the active path) for the SR 925 Policy when set 927 * E-Flag : Indicates that the CP has been evaluated for validity 928 (e.g. headend may evaluate CPs based on their preferences) when 929 set 931 * V-Flag : Indicates the CP has at least one valid SID-List when 932 set 934 * O-Flag : Indicates the CP was instantiated by the headend due 935 to an on-demand-nexthop trigger based on local template when 936 set. Refer Section 8.5 of 937 [I-D.ietf-spring-segment-routing-policy]. 939 * D-Flag : Indicates the CP was delegated for computation to a 940 PCE/controller when set 942 * C-Flag : Indicates the CP was provisioned by a PCE/controller 943 when set 945 * I-Flag : Indicates the CP will perform the "drop upon invalid" 946 behavior when no other active path is available for this SR 947 Policy and this path is the one with best preference amongst 948 the available CPs. Refer Section 8.2 of 949 [I-D.ietf-spring-segment-routing-policy]. 951 * T-Flag : Indicates the CP has been marked as eligible for use 952 as Transit Policy on the headend when set. Refer Section 8.3 953 of [I-D.ietf-spring-segment-routing-policy]. 955 o Preference : 4 octet value which indicates the preference of the 956 CP. Refer Section 2.7 of 957 [I-D.ietf-spring-segment-routing-policy]. 959 6.3. SR Candidate Path Name 961 The SR Candidate Path Name TLV is an optional TLV that is used to 962 carry the symbolic name associated with the candidate path. The TLV 963 has the following format: 965 0 1 2 3 966 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 967 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 968 | Type | Length | 969 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 970 | Candidate Path Symbolic Name (variable) // 971 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 973 where: 975 o Type: TBD (see IANA Considerations Section 9.3) 977 o Length: variable 979 o CP Name : Symbolic name for the CP. It is a string of printable 980 ASCII characters without a NULL terminator. 982 6.4. SR Candidate Path Constraints 984 The SR Candidate Path Constraints TLV is an optional TLV that is used 985 to report the constraints associated with the candidate path. The 986 constraints are generally applied to a dynamic candidate path which 987 is computed by the headend. The constraints may also be applied to 988 an explicit path where the headend is expected to validate that the 989 path expresses satisfies the specified constraints and the path is to 990 be invalidated by the headend when the constraints are no longer met 991 (e.g. due to topology changes). 993 The TLV has the following format: 995 0 1 2 3 996 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 997 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 998 | Type | Length | 999 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1000 | Flags | RESERVED | 1001 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1002 | MTID | Algorithm | RESERVED | 1003 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1004 | sub-TLVs (variable) // 1005 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1007 where: 1009 o Type: TBD (see IANA Considerations Section 9.3) 1011 o Length: variable 1013 o Flags: 2 octet field that indicates the constraints that are being 1014 applied to the CP. The following bit positions are defined and 1015 the other bits SHOULD be cleared by originator and MUST be ignored 1016 by receiver. 1018 0 1 1019 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 1020 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1021 |D|P|U|A|T| | 1022 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1024 where: 1026 * D-Flag : Indicates that the CP needs to use SRv6 dataplane when 1027 set and SR/MPLS dataplane when clear 1029 * P-Flag : Indicates that the CP needs to use only protected SIDs 1030 when set 1032 * U-Flag : Indicates that the CP needs to use only unprotected 1033 SIDs when set 1035 * A-Flag : Indicates that the CP needs to use the SIDs belonging 1036 to the specified SR Algorithm only when set 1038 * T-Flag: Indicates that the CP needs to use the SIDs belonging 1039 to the specified topology only when set 1041 o RESERVED: 2 octet. SHOULD be set to 0 by originator and MUST be 1042 ignored by receiver. 1044 o MTID : Indicates the multi-topology identifier of the IGP topology 1045 that is preferred to be used when the path is setup. When the 1046 T-flag is set then the path is strictly useing the specified 1047 topology SIDs only. 1049 o Algorithm : Indicates the algorithm that is preferred to be used 1050 when the path is setup. When the A-flag is set then the path is 1051 strictly using the specified algorithm SIDs only. 1053 o RESERVED: 1 octet. SHOULD be set to 0 by originator and MUST be 1054 ignored by receiver. 1056 o sub-TLVs: optional sub-TLVs MAY be included in this TLV to 1057 describe other constraints. 1059 The following constraint sub-TLVs are defined for the SR CP 1060 Constraints TLV. 1062 6.4.1. SR Affinity Constraint 1064 The SR Affinity Constraint sub-TLV is an optional sub-TLV that is 1065 used to carry the affinity constraints [RFC2702] associated with the 1066 candidate path. The affinity is expressed in terms of Extended Admin 1067 Group (EAG) as defined in [RFC7308]. The TLV has the following 1068 format: 1070 0 1 2 3 1071 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 1072 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1073 | Type | Length | 1074 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1075 | Excl-Any-Size | Incl-Any-Size | Incl-All-Size | RESERVED | 1076 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1077 | Exclude-Any EAG (optional, variable) // 1078 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1079 | Include-Any EAG (optional, variable) // 1080 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1081 | Include-All EAG (optional, variable) // 1082 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1084 where: 1086 o Type: TBD (see IANA Considerations Section 9.3) 1088 o Length: variable, dependent on the size of the Extended Admin 1089 Group. MUST be a multiple of 4 octets. 1091 o Exclude-Any-Size : one octet to indicate the size of Exclude-Any 1092 EAG bitmask size in multiples of 4 octets. (e.g. value 0 1093 indicates the Exclude-Any EAG field is skipped, value 1 indicates 1094 that 4 octets of Exclude-Any EAG is included) 1096 o Include-Any-Size : one octet to indicate the size of Include-Any 1097 EAG bitmask size in multiples of 4 octets. (e.g. value 0 1098 indicates the Include-Any EAG field is skipped, value 1 indicates 1099 that 4 octets of Include-Any EAG is included) 1101 o Include-All-Size : one octet to indicate the size of Include-All 1102 EAG bitmask size in multiples of 4 octets. (e.g. value 0 1103 indicates the Include-All EAG field is skipped, value 1 indicates 1104 that 4 octets of Include-All EAG is included) 1106 o RESERVED: 1 octet. SHOULD be set to 0 by originator and MUST be 1107 ignored by receiver. 1109 o Exclude-Any EAG : the bitmask used to represent the affinities to 1110 be excluded from the path. 1112 o Include-Any EAG : the bitmask used to represent the affinities to 1113 be included in the path. 1115 o Include-All EAG : the bitmask used to represent the all affinities 1116 to be included in the path. 1118 6.4.2. SR SRLG Constraint 1120 The SR SRLG Constraint sub-TLV is an optional sub-TLV that is used to 1121 carry the Shared Risk Link Group (SRLG) values [RFC4202] that are to 1122 be excluded from the candidate path. The TLV has the following 1123 format: 1125 0 1 2 3 1126 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 1127 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1128 | Type | Length | 1129 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1130 | SRLG Values (variable, multiples of 4 octets) // 1131 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1133 where: 1135 o Type: TBD (see IANA Considerations Section 9.3) 1137 o Length: variable, dependent on the number of SRLGs encoded. MUST 1138 be a multiple of 4 octets. 1140 o SRLG Values : One or more SRLG values (each of 4 octets). 1142 6.4.3. SR Bandwidth Constraint 1144 The SR Bandwidth Constraint sub-TLV is an optional sub-TLV that is 1145 used to indicate the desired bandwidth availability that needs to be 1146 ensured for the candidate path. The TLV has the following format: 1148 0 1 2 3 1149 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 1150 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1151 | Type | Length | 1152 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1153 | Bandwidth | 1154 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1156 where: 1158 o Type: TBD (see IANA Considerations Section 9.3) 1160 o Length: 8 octects 1162 o Bandwidth : 4 octets which specify the desired bandwidth in unit 1163 of bytes per second in IEEE floating point format. 1165 6.4.4. SR Disjoint Group Constraint 1167 The SR Disjoint Group Constraint sub-TLV is an optional sub-TLV that 1168 is used to carry the disjointness constraint associated with the 1169 candidate path. The disjointness between two SR Policy Candidate 1170 Paths is expressed by associating them with the same disjoint group 1171 identifier and then specifying the type of disjointness required 1172 between their paths. The computation is expected to achieve the 1173 highest level of disjointness requested and when that is not possible 1174 then fallback to a lesser level progressively based on the levels 1175 indicated. 1177 The TLV has the following format: 1179 0 1 2 3 1180 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 1181 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1182 | Type | Length | 1183 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1184 | Request-Flags | Status-Flags | RESERVED | 1185 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1186 | Disjoint Group Identifier | 1187 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1189 where: 1191 o Type: TBD (see IANA Considerations Section 9.3) 1193 o Length: 12 octets 1195 o Request Flags : one octet to indicate the level of disjointness 1196 requested as specified in the form of flags. The following flags 1197 are defined and the other bits SHOULD be cleared by originator and 1198 MUST be ignored by receiver. 1200 0 1 2 3 4 5 6 7 1201 +-+-+-+-+-+-+-+-+ 1202 |S|N|L|F|I| | 1203 +-+-+-+-+-+-+-+-+ 1205 where: 1207 * S-Flag : Indicates that SRLG disjointness is requested 1209 * N-Flag : Indicates that node disjointness is requested when 1211 * L-Flag : Indicates that link disjointness is requested when 1213 * F-Flag : Indicates that the computation may fallback to a lower 1214 level of disjointness amongst the ones requested when all 1215 cannot be achieved 1217 * I-Flag : Indicates that the computation may fallback to the 1218 default best path (e.g. IGP path) in case of none of the 1219 desired disjointness can be achieved. 1221 o Status Flags : one octet to indicate the level of disjointness 1222 that has been achieved by the computation as specified in the form 1223 of flags. The following flags are defined and the other bits 1224 SHOULD be cleared by originator and MUST be ignored by receiver. 1226 0 1 2 3 4 5 6 7 1227 +-+-+-+-+-+-+-+-+ 1228 |S|N|L|F|I|X| | 1229 +-+-+-+-+-+-+-+-+ 1231 where: 1233 * S-Flag : Indicates that SRLG disjointness is achieved 1235 * N-Flag : Indicates that node disjointness is achieved 1237 * L-Flag : Indicates that link disjointness is achieved 1239 * F-Flag : Indicates that the computation has fallen back to a 1240 lower level of disjointness that requested. 1242 * I-Flag : Indicates that the computation has fallen back to the 1243 best path (e.g. IGP path) and disjointness has not been 1244 achieved 1246 * X-Flag : Indicates that the disjointness constraint could not 1247 be achieved and hence path has been invalidated 1249 o RESERVED: 2 octets. SHOULD be set to 0 by originator and MUST be 1250 ignored by receiver. 1252 o Disjointness Group Identifier : 4 octet value that is the group 1253 identifier for a set of disjoint paths 1255 6.5. SR Segment List 1257 The SR Segment List TLV is used to report the SID-List(s) of a 1258 candidate path. The TLV has following format: 1260 0 1 2 3 1261 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 1262 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1263 | Type | Length | 1264 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1265 | Flags | RESERVED | 1266 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1267 | MTID | Algorithm | RESERVED | 1268 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1269 | Weight (4 octets) | 1270 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1271 | sub-TLVs (variable) // 1272 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1274 where: 1276 o Type: TBD (see IANA Considerations Section 9.3) 1278 o Length: variable 1280 o Flags: 2 octet field that indicates attribute and status of the 1281 SID-List.The following bit positions are defined and the semantics 1282 are described in detail in 1283 [I-D.ietf-spring-segment-routing-policy]. Other bits SHOULD be 1284 cleared by originator and MUST be ignored by receiver. 1286 0 1 1287 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 1288 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1289 |D|E|C|V|R|F|A|T|M| | 1290 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1292 where: 1294 * D-Flag : Indicates the SID-List is comprised of SRv6 SIDs when 1295 set and indicates it is comprised of SR/MPLS labels when clear. 1297 * E-Flag : Indicates that SID-List is an explicit path when set 1298 and indicates dynamic path when clear. 1300 * C-Flag : Indicates that SID-List has been computed for a 1301 dynamic path when set. It is always reported as set for 1302 explicit paths. 1304 * V-Flag : Indicates the SID-List has passed verification or its 1305 verification was not required when set and failed verification 1306 when clear. 1308 * R-Flag : Indicates that the first Segment has been resolved 1309 when set and failed resolution when clear. 1311 * F-Flag : Indicates that the computation for the dynamic path 1312 failed when set and succeeded (or not required in case of 1313 explicit path) when clear 1315 * A-Flag : Indicates that all the SIDs in the SID-List belong to 1316 the specified algorithm when set. 1318 * T-Flag : Indicates that all the SIDs in the SID-List belong to 1319 the specified topology (identified by the multi-topology ID) 1320 when set. 1322 * M-Flag : Indicates that the SID-list has been removed from the 1323 forwarding plane due to fault detection by a monitoring 1324 mechanism (e.g. BFD) when set and indicates no fault detected 1325 or monitoring is not being done when clear. 1327 o RESERVED: 2 octet. SHOULD be set to 0 by originator and MUST be 1328 ignored by receiver. 1330 o MTID : 2 octet that indicates the multi-topology identifier of the 1331 IGP topology to be used when the T-flag is set. 1333 o Algorithm: 1 octet that indicates the algorithm of the SIDs used 1334 in the SID-List when the A-flag is set. 1336 o RESERVED: 1 octet. SHOULD be set to 0 by originator and MUST be 1337 ignored by receiver. 1339 o Weight: 4 octet field that indicates the weight associated with 1340 the SID-List for weighted load-balancing. Refer Section 2.2 and 1341 2.11 of [I-D.ietf-spring-segment-routing-policy]. 1343 o Sub-TLVs : variable and contains the ordered set of Segments and 1344 any other optional attributes associated with the specific SID- 1345 List. 1347 The SR Segment sub-TLV (defined in Section 6.6) MUST be included as 1348 an ordered set of sub-TLVs within the SR Segment List TLV when the 1349 SID-List is not empty. A SID-List may be empty in certain cases 1350 (e.g. for a dynamic path) where the headend has not yet performed the 1351 computation and hence not derived the segments required for the path; 1352 in such cases, the SR Segment List TLV SHOULD NOT include any SR 1353 Segment sub-TLVs. 1355 6.6. SR Segment 1357 The SR Segment sub-TLV describes a single segment in a SID-List. One 1358 or more instances of this sub-TLV in an ordered manner constitute a 1359 SID-List for a SR Policy candidate path. It is a sub-TLV of the SR 1360 Segment List TLV and has following format: 1362 0 1 2 3 1363 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 1364 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1365 | Type | Length | 1366 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1367 | Segment Type | RESERVED | Flags | 1368 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1369 | SID (4 or 16 octets) // 1370 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1371 // Segment Descriptor (variable) // 1372 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1373 // Sub-TLVs (variable) // 1374 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1376 where: 1378 o Type: TBD (see IANA Considerations Section 9.3) 1380 o Length: variable 1382 o Segment Type : 1 octet which indicates the type of segment (refer 1383 Section 6.6.1 for details) 1385 o RESERVED: 1 octet. SHOULD be set to 0 by originator and MUST be 1386 ignored by receiver. 1388 o Flags: 2 octet field that indicates attribute and status of the 1389 Segment and its SID. The following bit positions are defined and 1390 the semantics are described in detail in 1391 [I-D.ietf-spring-segment-routing-policy]. Other bits SHOULD be 1392 cleared by originator and MUST be ignored by receiver. 1394 0 1 1395 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 1396 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1397 |S|E|V|R|A| | 1398 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1400 where: 1402 * S-Flag : Indicates the presence of SID value in the SID field 1403 when set and that no value is indicated when clear. 1405 * E-Flag : Indicates the SID value is explicitly provisioned 1406 value (locally on headend or via controller/PCE) when set and 1407 is a dynamically resolved value by headend when clear 1409 * V-Flag : Indicates the SID has passed verification or did not 1410 require verification when set and failed verification when 1411 clear. 1413 * R-Flag : Indicates the SID has been resolved or did not require 1414 resolution (e.g. because it is not the first SID) when set and 1415 failed resolution when clear. 1417 * A-Flag : Indicates that the Algorithm indicated in the Segment 1418 descriptor is valid when set. When clear, it indicates that 1419 the headend is unable to determine the algorithm of the SID. 1421 o SID : 4 octet carrying the MPLS Label or 16 octets carrying the 1422 SRv6 SID based on the Segment Type. When carrying the MPLS Label, 1423 as shown in the figure below, the TC, S and TTL (total of 12 bits) 1424 are RESERVED and SHOULD be set to 0 by originator and MUST be 1425 ignored by the receiver. 1427 0 1 2 3 1428 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 1429 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1430 | Label | TC |S| TTL | 1431 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1433 o Segment Descriptor : variable size Segment descriptor based on the 1434 type of segment (refer Section 6.6.1 for details) 1436 o Sub-Sub-TLVs : variable and contains any other optional attributes 1437 associated with the specific SID-List. 1439 Currently no Sub-Sub-TLV of the SR Segment sub-TLV is defined. 1441 6.6.1. Segment Descriptors 1443 [I-D.ietf-spring-segment-routing-policy] section 4 defines multiple 1444 types of segments and their description. This section defines the 1445 encoding of the Segment Descriptors for each of those Segment types 1446 to be used in the Segment sub-TLV describes previously in 1447 Section 6.6. 1449 The following types are currently defined (suggested values, to be 1450 assigned by IANA): 1452 +-------+--------------------------------------------------------------+ 1453 | Type | Segment Description | 1454 +-------+--------------------------------------------------------------+ 1455 | 0 | Invalid | 1456 | 1 | SR-MPLS Label | 1457 | 2 | SRv6 SID as IPv6 address | 1458 | 3 | SR-MPLS Prefix SID as IPv4 Node Address | 1459 | 4 | SR-MPLS Prefix SID as IPv6 Node Global Address | 1460 | 5 | SR-MPLS Adjacency SID as IPv4 Node Address & Local | 1461 | | Interface ID | 1462 | 6 | SR-MPLS Adjacency SID as IPv4 Local & Remote Interface | 1463 | | Addresses | 1464 | 7 | SR-MPLS Adjacency SID as pair of IPv6 Global Address & | 1465 | | Interface ID for Local & Remote nodes | 1466 | 8 | SR-MPLS Adjacency SID as pair of IPv6 Global Addresses for | 1467 | | the Local & Remote Interface | 1468 | 9 | SRv6 END SID as IPv6 Node Global Address | 1469 | 10 | SRv6 END.X SID as pair of IPv6 Global Address & Interface ID | 1470 | | for Local & Remote nodes | 1471 | 11 | SRv6 END.X SID as pair of IPv6 Global Addresses for the | 1472 | | Local & Remote Interface | 1473 +-------+--------------------------------------------------------------+ 1475 6.6.1.1. Type 1: SR-MPLS Label 1477 The Segment is SR-MPLS type and is specified simply as the label. 1478 The format of its Segment Descriptor is as follows: 1480 0 1 2 3 1481 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 1482 +-+-+-+-+-+-+-+-+ 1483 | Algorithm | 1484 +-+-+-+-+-+-+-+-+ 1486 Where: 1488 o Algorithm: 1 octet value that indicates the algorithm used for 1489 picking the SID. This is valid only when the A-flag has been set 1490 in the Segment TLV. 1492 6.6.1.2. Type 2: SRv6 SID 1494 The Segment is SRv6 type and is specified simply as the SRv6 SID 1495 address. The format of its Segment Descriptor is as follows: 1497 0 1 2 3 1498 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 1499 +-+-+-+-+-+-+-+-+ 1500 | Algorithm | 1501 +-+-+-+-+-+-+-+-+ 1503 Where: 1505 o Algorithm: 1 octet value that indicates the algorithm used for 1506 picking the SID. This is valid only when the A-flag has been set 1507 in the Segment TLV. 1509 6.6.1.3. Type 3: SR-MPLS Prefix SID for IPv4 1511 The Segment is SR-MPLS Prefix SID type and is specified as an IPv4 1512 node address. The format of its Segment Descriptor is as follows: 1514 0 1 2 3 1515 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 1516 +-+-+-+-+-+-+-+-+ 1517 | Algorithm | 1518 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1519 | IPv4 Node Address (4 octets) | 1520 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1522 Where: 1524 o Algorithm: 1 octet value that indicates the algorithm used for 1525 picking the SID 1527 o IPv4 Node Address: 4 octet value which carries the IPv4 address 1528 associated with the node 1530 6.6.1.4. Type 4: SR-MPLS Prefix SID for IPv6 1532 The Segment is SR-MPLS Prefix SID type and is specified as an IPv6 1533 global address. The format of its Segment Descriptor is as follows: 1535 0 1 2 3 1536 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 1537 +-+-+-+-+-+-+-+-+ 1538 | Algorithm | 1539 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1540 | IPv6 Node Global Address (16 octets) | 1541 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1543 Where: 1545 o Algorithm: 1 octet value that indicates the algorithm used for 1546 picking the SID 1548 o IPv6 Node Global Address: 16 octet value which carries the IPv6 1549 global address associated with the node 1551 6.6.1.5. Type 5: SR-MPLS Adjacency SID for IPv4 with Interface ID 1553 The Segment is SR-MPLS Adjacency SID type and is specified as an IPv4 1554 node address along with the local interface ID on that node. The 1555 format of its Segment Descriptor is as follows: 1557 0 1 2 3 1558 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 1559 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1560 | IPv4 Node Address (4 octets) | 1561 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1562 | Local Interface ID (4 octets) | 1563 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1565 Where: 1567 o IPv4 Node Address: 4 octet value which carries the IPv4 address 1568 associated with the node 1570 o Local Interface ID : 4 octet value which carries the local 1571 interface ID of the node identified by the Node Address 1573 6.6.1.6. Type 6: SR-MPLS Adjacency SID for IPv4 with Interface Address 1575 The Segment is SR-MPLS Adjacency SID type and is specified as a pair 1576 of IPv4 local and remote addresses. The format of its Segment 1577 Descriptor is as follows: 1579 0 1 2 3 1580 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 1581 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1582 | IPv4 Local Address (4 octets) | 1583 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1584 | IPv4 Remote Address (4 octets) | 1585 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1587 Where: 1589 o IPv4 Local Address: 4 octet value which carries the local IPv4 1590 address associated with the node 1592 o IPv4 Remote Address: 4 octet value which carries the remote IPv4 1593 address associated with the node's neighbor. This is optional and 1594 MAY be set to 0 when not used (e.g. when identifying point-to- 1595 point links). 1597 6.6.1.7. Type 7: SR-MPLS Adjacency SID for IPv6 with interface ID 1599 The Segment is SR-MPLS Adjacency SID type and is specified as a pair 1600 of IPv6 global address and interface ID for local and remote nodes. 1601 The format of its Segment Descriptor is as follows: 1603 0 1 2 3 1604 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 1605 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1606 | IPv6 Local Node Global Address (16 octets) | 1607 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1608 | Local Node Interface ID (4 octets) | 1609 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1610 | IPv6 Remote Node Global Address (16 octets) | 1611 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1612 | Remote Node Interface ID (4 octets) | 1613 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1615 Where: 1617 o IPv6 Local Node Global Address: 16 octet value which carries the 1618 IPv6 global address associated with the local node 1620 o Local Node Interface ID : 4 octet value which carries the 1621 interface ID of the local node identified by the Local Node 1622 Address 1624 o IPv6 Remote Node Global Address: 16 octet value which carries the 1625 IPv6 global address associated with the remote node. This is 1626 optional and MAY be set to 0 when not used (e.g. when identifying 1627 point-to-point links). 1629 o Remote Node Interface ID : 4 octet value which carries the 1630 interface ID of the remote node identified by the Remote Node 1631 Address. This is optional and MAY be set to 0 when not used (e.g. 1632 when identifying point-to-point links). 1634 6.6.1.8. Type 8: SR-MPLS Adjacency SID for IPv6 with interface address 1636 The Segment is SR-MPLS Adjacency SID type and is specified as a pair 1637 of IPv6 Global addresses for local and remote interface addresses. 1638 The format of its Segment Descriptor is as follows: 1640 0 1 2 3 1641 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 1642 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1643 | Global IPv6 Local Interface Address (16 octets) | 1644 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1645 | Global IPv6 Remote Interface Address (16 octets) | 1646 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1648 Where: 1650 o IPv6 Local Address: 16 octet value which carries the local IPv6 1651 address associated with the node 1653 o IPv6 Remote Address: 16 octet value which carries the remote IPv6 1654 address associated with the node's neighbor 1656 6.6.1.9. Type 9: SRv6 END SID as IPv6 Node Address 1658 The Segment is SRv6 END SID type and is specified as an IPv6 global 1659 address. The format of its Segment Descriptor is as follows: 1661 0 1 2 3 1662 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 1663 +-+-+-+-+-+-+-+-+ 1664 | Algorithm | 1665 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1666 | IPv6 Node Global Address (16 octets) | 1667 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1669 Where: 1671 o Algorithm: 1 octet value that indicates the algorithm used for 1672 picking the SID 1674 o IPv6 Node Global Address: 16 octet value which carries the IPv6 1675 global address associated with the node 1677 6.6.1.10. Type 10: SRv6 END.X SID as interface ID 1679 The Segment is SRv6 END.X SID type and is specified as a pair of IPv6 1680 global address and interface ID for local and remote nodes. The 1681 format of its Segment Descriptor is as follows: 1683 0 1 2 3 1684 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 1685 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1686 | IPv6 Local Node Global Address (16 octets) | 1687 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1688 | Local Node Interface ID (4 octets) | 1689 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1690 | IPv6 Remote Node Global Address (16 octets) | 1691 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1692 | Remote Node Interface ID (4 octets) | 1693 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1695 Where: 1697 o IPv6 Local Node Global Address: 16 octet value which carries the 1698 IPv6 global address associated with the local node 1700 o Local Node Interface ID : 4 octet value which carries the 1701 interface ID of the local node identified by the Local Node 1702 Address 1704 o IPv6 Remote Node Global Address: 16 octet value which carries the 1705 IPv6 global address associated with the remote node. This is 1706 optional and MAY be set to 0 when not used (e.g. when identifying 1707 point-to-point links). 1709 o Remote Node Interface ID : 4 octet value which carries the 1710 interface ID of the remote node identified by the Remote Node 1711 Address. This is optional and MAY be set to 0 when not used (e.g. 1712 when identifying point-to-point links). 1714 6.6.1.11. Type 11: SRv6 END.X SID as interface address 1716 The Segment is SRv6 END.X SID type and is specified as a pair of IPv6 1717 Global addresses for local and remote interface addresses. The 1718 format of its Segment Descriptor is as follows: 1720 0 1 2 3 1721 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 1722 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1723 | Global IPv6 Local Interface Address (16 octets) | 1724 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1725 | Global IPv6 Remote Interface Address (16 octets) | 1726 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1728 Where: 1730 o IPv6 Local Address: 16 octet value which carries the local IPv6 1731 address associated with the node 1733 o IPv6 Remote Address: 16 octet value which carries the remote IPv6 1734 address associated with the node's neighbor 1736 6.7. SR Segment List Metric 1738 The SR Segment List Metric sub-TLV describes the metric used for 1739 computation of the SID-List. It is used to report the type of metric 1740 used in the computation of a dynamic path either on the headend or 1741 when the path computation is delegated to a PCE/controller. When the 1742 path computation is done on the headend, it is also used to report 1743 the calculated metric for the path. 1745 It is a sub-TLV of the SR Segment List TLV and has following format: 1747 0 1 2 3 1748 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 1749 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1750 | Type | Length | 1751 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1752 | Metric Type | Flags | RESERVED | 1753 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1754 | Metric Margin | 1755 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1756 | Metric Bound | 1757 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1758 | Metric Value | 1759 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1761 where: 1763 o Type: TBD (see IANA Considerations Section 9.3) 1765 o Length: variable 1766 o Metric Type : 1 octet field which identifies the type of metric 1767 used for path computation. Following metric type codepoints are 1768 defined in this document. 1770 +------------+-----------------------------------------+ 1771 | Code Point | Metric Type | 1772 +------------+-----------------------------------------+ 1773 | 0 | IGP Metric | 1774 | 1 | Min Unidirectional Link Delay [RFC7471] | 1775 | 2 | TE Metric [RFC3630] | 1776 +------------+-----------------------------------------+ 1778 o Flags: 1 octet field that indicates the validity of the metric 1779 fields and their semantics. The following bit positions are 1780 defined and the other bits SHOULD be cleared by originator and 1781 MUST be ignored by receiver. 1783 0 1 2 3 4 5 6 7 1784 +-+-+-+-+-+-+-+-+ 1785 |M|A|B|V| | 1786 +-+-+-+-+-+-+-+-+ 1788 where: 1790 * M-Flag : Indicates that the metric margin allowed for path 1791 computation is specified when set 1793 * A-Flag : Indicates that the metric margin is specified as an 1794 absolute value when set and is expressed as a percentage of the 1795 minimum metric when clear. 1797 * B-Flag : Indicates that the metric bound allowed for the path 1798 is specified when set. 1800 * V-Flag : Indicates that the metric value computed is being 1801 reported when set. 1803 o RESERVED: 2 octets. SHOULD be set to 0 by originator and MUST be 1804 ignored by receiver. 1806 o Metric Margin : 4 octets which indicate the metric margin value 1807 when M-flag is set. The metric margin is specified as either an 1808 absolute value or as a percentage of the minimum computed path 1809 metric based on the A-flag. The metric margin loosens the 1810 criteria for minimum metric path calculation up to the specified 1811 metric to accomodate for other factors such as bandwidth 1812 availability, minimal SID stack depth and maximizing of ECMP for 1813 the SR path computed. 1815 o Metric Bound : 4 octects which indicate the maximum metric value 1816 that is allowed when B-flag is set. If the computed path metric 1817 crosses the specified bound value then the path is considered as 1818 invalid. 1820 o Metric Value : 4 octets which indicate the metric value of the 1821 computed path when V-flag is set. This value is available and 1822 reported when the computation is successful and a valid path is 1823 available. 1825 7. Procedures 1827 The BGP-LS advertisements for the TE Policy NLRI are originated by 1828 the headend node for the TE Policies that are instantiated on its 1829 local node. 1831 For MPLS TE LSPs signaled via RSVP-TE, the NLRI descriptor TLVs as 1832 specified in Section 4.1, Section 4.2, Section 4.3 and Section 4.4 1833 are used. Then the TE LSP state is encoded in the BGP-LS Attribute 1834 field as MPLS-TE Policy State TLV as described in Section 5. The 1835 RSVP-TE objects that reflect the state of the LSP are included as 1836 defined in Section 5.1. When the TE LSP is setup with the help of 1837 PCEP signaling then another MPLS-TE Policy State TLV SHOULD be used 1838 to to encode the related PCEP objects corresponding to the LSP as 1839 defined in Section 5.2. 1841 For SR Policies, the NLRI descriptor TLV as specified in Section 4.5 1842 is used. An SR Policy candidate path (CP) may be instantiated on the 1843 headend node via a local configuration, PCEP or BGP SR Policy 1844 signaling and this is indicated via the SR Protocol Origin. Then the 1845 SR Policy Candidate Path's attribute and state is encoded in the BGP- 1846 LS Attribute field as SR Policy State TLVs and sub-TLVs as described 1847 in Section 6. The SR Candidate Path State TLV as defined in 1848 Section 6.2 is included to report the state of the CP. The SR BSID 1849 TLV as defined in Section 6.1 is included to report the BSID of the 1850 CP when one is either provisioned or allocated by the headend. The 1851 constraints for the SR Policy Candidate Path are reported using the 1852 SR Candidate Path Constraints TLV as described in Section 6.4.The SR 1853 Segment List TLV is included for each of the SID-List(s) associated 1854 with the CP. Each SR Segment List TLV in turn includes SR Segment 1855 sub-TLV(s) to report the segment(s) and their status. The SR Segment 1856 List Metric sub-TLV is used to report the metric values and 1857 constraints for the specific SID List. 1859 When the SR Policy CP is setup with the help of PCEP signaling then 1860 another MPLS-TE Policy State TLV MAY be used to to encode the related 1861 PCEP objects corresponding to the LSP as defined in Section 5.2 1862 specifically to report information and status that is not covered by 1863 the defined TLVs under Section 6. In the event of a conflict of 1864 information, the receiver MUST prefer the information originated via 1865 TLVs defined in Section 6 over the PCEP objects reported via the TE 1866 Policy State TLV. 1868 8. Manageability Considerations 1870 The Existing BGP operational and management procedures apply to this 1871 document. No new procedures are defined in this document. The 1872 considerations as specified in [RFC7752] apply to this document. 1874 In general, it is assumed that the TE Policy head-end nodes are 1875 responsible for the distribution of TE Policy state information, 1876 while other nodes, e.g. the nodes in the path of a policy, MAY report 1877 the TE Policy information (if available) when needed. For example, 1878 the border routers in the inter-domain case will also distribute LSP 1879 state information since the ingress node may not have the complete 1880 information for the end-to-end path. 1882 9. IANA Considerations 1884 This document requires new IANA assigned codepoints. 1886 9.1. BGP-LS NLRI-Types 1888 IANA maintains a registry called "Border Gateway Protocol - Link 1889 State (BGP-LS) Parameters" with a sub-registry called "BGP-LS NLRI- 1890 Types". 1892 The following codepoints is suggested (to be assigned by IANA): 1894 +------+----------------------------+---------------+ 1895 | Type | NLRI Type | Reference | 1896 +------+----------------------------+---------------+ 1897 | 5 | TE Policy NLRI type | this document | 1898 +------+----------------------------+---------------+ 1900 9.2. BGP-LS Protocol-IDs 1902 IANA maintains a registry called "Border Gateway Protocol - Link 1903 State (BGP-LS) Parameters" with a sub-registry called "BGP-LS 1904 Protocol-IDs". 1906 The following Protocol-ID codepoints are suggested (to be assigned by 1907 IANA): 1909 +-------------+----------------------------------+---------------+ 1910 | Protocol-ID | NLRI information source protocol | Reference | 1911 +-------------+----------------------------------+---------------+ 1912 | 8 | RSVP-TE | this document | 1913 | 9 | Segment Routing | this document | 1914 +-------------+----------------------------------+---------------+ 1916 9.3. BGP-LS TLVs 1918 IANA maintains a registry called "Border Gateway Protocol - Link 1919 State (BGP-LS) Parameters" with a sub-registry called "Node Anchor, 1920 Link Descriptor and Link Attribute TLVs". 1922 The following TLV codepoints are suggested (to be assigned by IANA): 1924 +----------+----------------------------------------+---------------+ 1925 | TLV Code | Description | Value defined | 1926 | Point | | in | 1927 +----------+----------------------------------------+---------------+ 1928 | TBD | Tunnel ID TLV | this document | 1929 | TBD | LSP ID TLV | this document | 1930 | TBD | IPv4/6 Tunnel Head-end address TLV | this document | 1931 | TBD | IPv4/6 Tunnel Tail-end address TLV | this document | 1932 | TBD | SR Policy CP Descriptor TLV | this document | 1933 | TBD | MPLS Local Cross Connect TLV | this document | 1934 | TBD | MPLS Cross Connect Interface TLV | this document | 1935 | TBD | MPLS Cross Connect FEC TLV | this document | 1936 | TBD | MPLS-TE Policy State TLV | this document | 1937 | TBD | SR BSID TLV | this document | 1938 | TBD | SR CP State TLV | this document | 1939 | TBD | SR CP Name TLV | this document | 1940 | TBD | SR CP Constraints TLV | this document | 1941 | TBD | SR Segment List TLV | this document | 1942 | TBD | SR Segment sub-TLV | this document | 1943 | TBD | SR Segment List Metric sub-TLV | this document | 1944 | TBD | SR Affinity Constraint sub-TLV | this document | 1945 | TBD | SR SRLG Constraint sub-TLV | this document | 1946 | TBD | SR Bandwidth Constraint sub-TLV | this document | 1947 | TBD | SR Disjoint Group Constraint sub-TLV | this document | 1948 +----------+----------------------------------------+---------------+ 1950 9.4. BGP-LS SR Policy Protocol Origin 1952 This document requests IANA to maintain a new sub-registry under 1953 "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new 1954 registry is called "SR Policy Protocol Origin" and contains the 1955 codepoints allocated to the "Protocol Origin" field defined in 1956 Section 4.5. The registry contains the following codepoints 1957 (suggested values, to be assigned by IANA): 1959 +------------+---------------------------------------------------------+ 1960 | Code Point | Protocol Origin | 1961 +------------+---------------------------------------------------------+ 1962 | 1 | PCEP | 1963 | 2 | BGP SR Policy | 1964 | 3 | Local (via CLI, Yang model through NETCONF, gRPC, etc.) | 1965 +------------+---------------------------------------------------------+ 1967 9.5. BGP-LS TE State Object Origin 1969 This document requests IANA to maintain a new sub-registry under 1970 "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new 1971 registry is called "TE State Path Origin" and contains the codepoints 1972 allocated to the "Object Origin" field defined in Section 5. The 1973 registry contains the following codepoints (suggested values, to be 1974 assigned by IANA): 1976 +----------+------------------+ 1977 | Code | Object | 1978 | Point | Origin | 1979 +----------+------------------+ 1980 | 1 | RSVP-TE | 1981 | 2 | PCEP | 1982 | 3 | Local/Static | 1983 +----------+------------------+ 1985 9.6. BGP-LS TE State Address Family 1987 This document requests IANA to maintain a new sub-registry under 1988 "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new 1989 registry is called "TE State Address Family" and contains the 1990 codepoints allocated to the "Address Family" field defined in 1991 Section 5. The registry contains the following codepoints (suggested 1992 values, to be assigned by IANA): 1994 +----------+------------------+ 1995 | Code | Address | 1996 | Point | Family | 1997 +----------+------------------+ 1998 | 1 | MPLS-IPv4 | 1999 | 2 | MPLS-IPv6 | 2000 +----------+------------------+ 2002 9.7. BGP-LS SR Segment Descriptors 2004 This document requests IANA to maintain a new sub-registry under 2005 "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new 2006 registry is called "SR Segment Descriptor Types" and contains the 2007 codepoints allocated to the "Segment Type" field defined in 2008 Section 6.6 and described in Section 6.6.1. The registry contains 2009 the following codepoints (suggested values, to be assigned by IANA): 2011 +-------+--------------------------------------------------------------+ 2012 | Code | Segment Description | 2013 | Point | | 2014 +-------+--------------------------------------------------------------+ 2015 | 0 | Invalid | 2016 | 1 | SR-MPLS Label | 2017 | 2 | SRv6 SID as IPv6 address | 2018 | 3 | SR-MPLS Prefix SID as IPv4 Node Address | 2019 | 4 | SR-MPLS Prefix SID as IPv6 Node Global Address | 2020 | 5 | SR-MPLS Adjacency SID as IPv4 Node Address & Local | 2021 | | Interface ID | 2022 | 6 | SR-MPLS Adjacency SID as IPv4 Local & Remote Interface | 2023 | | Addresses | 2024 | 7 | SR-MPLS Adjacency SID as pair of IPv6 Global Address & | 2025 | | Interface ID for Local & Remote nodes | 2026 | 8 | SR-MPLS Adjacency SID as pair of IPv6 Global Addresses for | 2027 | | the Local & Remote Interface | 2028 | 9 | SRv6 END SID as IPv6 Node Global Address | 2029 | 10 | SRv6 END.X SID as pair of IPv6 Global Address & Interface ID | 2030 | | for Local & Remote nodes | 2031 | 11 | SRv6 END.X SID as pair of IPv6 Global Addresses for the | 2032 | | Local & Remote Interface | 2033 +-------+--------------------------------------------------------------+ 2035 9.8. BGP-LS Metric Type 2037 This document requests IANA to maintain a new sub-registry under 2038 "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new 2039 registry is called "Metric Type" and contains the codepoints 2040 allocated to the "metric type" field defined in Section 6.7. The 2041 registry contains the following codepoints (suggested values, to be 2042 assigned by IANA): 2044 +------------+-----------------------------------------+ 2045 | Code Point | Metric Type | 2046 +------------+-----------------------------------------+ 2047 | 0 | IGP Metric | 2048 | 1 | Min Unidirectional Link Delay [RFC7471] | 2049 | 2 | TE Metric [RFC3630] | 2050 +------------+-----------------------------------------+ 2052 10. Security Considerations 2054 Procedures and protocol extensions defined in this document do not 2055 affect the BGP security model. See [RFC6952] for details. 2057 11. Acknowledgements 2059 The authors would like to thank Dhruv Dhody, Mohammed Abdul Aziz 2060 Khalid, Lou Berger, Acee Lindem, Siva Sivabalan, Arjun Sreekantiah, 2061 and Dhanendra Jain for their review and valuable comments. 2063 12. Contributors 2065 The following people have substantially contributed to the editing of 2066 this document: 2068 Clarence Filsfils 2069 Cisco Systems 2070 Email: cfilsfil@cisco.com 2072 13. References 2074 13.1. Normative References 2076 [I-D.ietf-spring-segment-routing-policy] 2077 Filsfils, C., Sivabalan, S., daniel.voyer@bell.ca, d., 2078 bogdanov@google.com, b., and P. Mattes, "Segment Routing 2079 Policy Architecture", draft-ietf-spring-segment-routing- 2080 policy-02 (work in progress), October 2018. 2082 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2083 Requirement Levels", BCP 14, RFC 2119, 2084 DOI 10.17487/RFC2119, March 1997, 2085 . 2087 [RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. 2088 Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 2089 Functional Specification", RFC 2205, DOI 10.17487/RFC2205, 2090 September 1997, . 2092 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 2093 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 2094 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 2095 . 2097 [RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label 2098 Switching (GMPLS) Signaling Resource ReserVation Protocol- 2099 Traffic Engineering (RSVP-TE) Extensions", RFC 3473, 2100 DOI 10.17487/RFC3473, January 2003, 2101 . 2103 [RFC4090] Pan, P., Ed., Swallow, G., Ed., and A. Atlas, Ed., "Fast 2104 Reroute Extensions to RSVP-TE for LSP Tunnels", RFC 4090, 2105 DOI 10.17487/RFC4090, May 2005, 2106 . 2108 [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, 2109 "Multiprotocol Extensions for BGP-4", RFC 4760, 2110 DOI 10.17487/RFC4760, January 2007, 2111 . 2113 [RFC4872] Lang, J., Ed., Rekhter, Y., Ed., and D. Papadimitriou, 2114 Ed., "RSVP-TE Extensions in Support of End-to-End 2115 Generalized Multi-Protocol Label Switching (GMPLS) 2116 Recovery", RFC 4872, DOI 10.17487/RFC4872, May 2007, 2117 . 2119 [RFC4873] Berger, L., Bryskin, I., Papadimitriou, D., and A. Farrel, 2120 "GMPLS Segment Recovery", RFC 4873, DOI 10.17487/RFC4873, 2121 May 2007, . 2123 [RFC4874] Lee, CY., Farrel, A., and S. De Cnodder, "Exclude Routes - 2124 Extension to Resource ReserVation Protocol-Traffic 2125 Engineering (RSVP-TE)", RFC 4874, DOI 10.17487/RFC4874, 2126 April 2007, . 2128 [RFC5420] Farrel, A., Ed., Papadimitriou, D., Vasseur, JP., and A. 2129 Ayyangarps, "Encoding of Attributes for MPLS LSP 2130 Establishment Using Resource Reservation Protocol Traffic 2131 Engineering (RSVP-TE)", RFC 5420, DOI 10.17487/RFC5420, 2132 February 2009, . 2134 [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation 2135 Element (PCE) Communication Protocol (PCEP)", RFC 5440, 2136 DOI 10.17487/RFC5440, March 2009, 2137 . 2139 [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and 2140 S. Ray, "North-Bound Distribution of Link-State and 2141 Traffic Engineering (TE) Information Using BGP", RFC 7752, 2142 DOI 10.17487/RFC7752, March 2016, 2143 . 2145 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2146 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2147 May 2017, . 2149 13.2. Informative References 2151 [RFC2702] Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M., and J. 2152 McManus, "Requirements for Traffic Engineering Over MPLS", 2153 RFC 2702, DOI 10.17487/RFC2702, September 1999, 2154 . 2156 [RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering 2157 (TE) Extensions to OSPF Version 2", RFC 3630, 2158 DOI 10.17487/RFC3630, September 2003, 2159 . 2161 [RFC4202] Kompella, K., Ed. and Y. Rekhter, Ed., "Routing Extensions 2162 in Support of Generalized Multi-Protocol Label Switching 2163 (GMPLS)", RFC 4202, DOI 10.17487/RFC4202, October 2005, 2164 . 2166 [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation 2167 Element (PCE)-Based Architecture", RFC 4655, 2168 DOI 10.17487/RFC4655, August 2006, 2169 . 2171 [RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of 2172 BGP, LDP, PCEP, and MSDP Issues According to the Keying 2173 and Authentication for Routing Protocols (KARP) Design 2174 Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013, 2175 . 2177 [RFC7308] Osborne, E., "Extended Administrative Groups in MPLS 2178 Traffic Engineering (MPLS-TE)", RFC 7308, 2179 DOI 10.17487/RFC7308, July 2014, 2180 . 2182 [RFC7471] Giacalone, S., Ward, D., Drake, J., Atlas, A., and S. 2183 Previdi, "OSPF Traffic Engineering (TE) Metric 2184 Extensions", RFC 7471, DOI 10.17487/RFC7471, March 2015, 2185 . 2187 [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path 2188 Computation Element Communication Protocol (PCEP) 2189 Extensions for Stateful PCE", RFC 8231, 2190 DOI 10.17487/RFC8231, September 2017, 2191 . 2193 Authors' Addresses 2195 Stefano Previdi 2197 Email: stefano@previdi.net 2199 Ketan Talaulikar (editor) 2200 Cisco Systems, Inc. 2201 India 2203 Email: ketant@cisco.com 2205 Jie Dong (editor) 2206 Huawei Technologies 2207 Huawei Campus, No. 156 Beiqing Rd. 2208 Beijing 100095 2209 China 2211 Email: jie.dong@huawei.com 2213 Mach(Guoyi) Chen 2214 Huawei Technologies 2215 Huawei Campus, No. 156 Beiqing Rd. 2216 Beijing 100095 2217 China 2219 Email: mach.chen@huawei.com 2221 Hannes Gredler 2222 RtBrick Inc. 2224 Email: hannes@rtbrick.com 2226 Jeff Tantsura 2227 Apstra 2229 Email: jefftant.ietf@gmail.com