idnits 2.17.1 draft-dhodylee-pce-pcep-ls-13.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 : ---------------------------------------------------------------------------- == There are 25 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. == There are 5 instances of lines with private range IPv4 addresses in the document. If these are generic example addresses, they should be changed to use any of the ranges defined in RFC 6890 (or successor): 192.0.2.x, 198.51.100.x or 203.0.113.x. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (February 15, 2019) is 1897 days in the past. Is this intentional? Checking references for intended status: Experimental ---------------------------------------------------------------------------- == Missing Reference: 'TBD3' is mentioned on line 523, but not defined == Missing Reference: 'TBD5' is mentioned on line 603, but not defined == Missing Reference: 'TBD6' is mentioned on line 633, but not defined == Missing Reference: 'This I-D' is mentioned on line 1335, but not defined == Unused Reference: 'RFC7810' is defined on line 1564, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-pce-pcep-yang' is defined on line 1668, but no explicit reference was found in the text == Unused Reference: 'ONOS-PCEP' is defined on line 1703, but no explicit reference was found in the text == Unused Reference: 'ONOS-PCEP-GITHUB' is defined on line 1707, but no explicit reference was found in the text ** Obsolete normative reference: RFC 7752 (Obsoleted by RFC 9552) ** Obsolete normative reference: RFC 7810 (Obsoleted by RFC 8570) -- Obsolete informational reference (is this intentional?): RFC 5316 (Obsoleted by RFC 9346) -- Obsolete informational reference (is this intentional?): RFC 7525 (Obsoleted by RFC 9325) == Outdated reference: A later version (-23) exists of draft-ietf-pce-pcep-yang-09 == Outdated reference: A later version (-12) exists of draft-ietf-pce-applicability-actn-08 == Outdated reference: A later version (-13) exists of draft-ietf-pce-pcep-flowspec-02 == Outdated reference: A later version (-01) exists of draft-kondreddy-pce-pcep-ls-sync-optimizations-00 == Outdated reference: A later version (-08) exists of draft-leedhody-pce-vn-association-07 Summary: 2 errors (**), 0 flaws (~~), 16 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 PCE Working Group D. Dhody 3 Internet-Draft Y. Lee 4 Intended status: Experimental Huawei Technologies 5 Expires: August 19, 2019 D. Ceccarelli 6 Ericsson 7 February 15, 2019 9 PCEP Extension for Distribution of Link-State and TE Information. 10 draft-dhodylee-pce-pcep-ls-13 12 Abstract 14 In order to compute and provide optimal paths, Path Computation 15 Elements (PCEs) require an accurate and timely Traffic Engineering 16 Database (TED). Traditionally this TED has been obtained from a link 17 state (LS) routing protocol supporting traffic engineering 18 extensions. 20 This document extends the Path Computation Element Communication 21 Protocol (PCEP) with Link-State and TE Information. 23 Requirements Language 25 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 26 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 27 "OPTIONAL" in this document are to be interpreted as described in BCP 28 14 [RFC2119] [RFC8174] when, and only when, they appear in all 29 capitals, as shown here. 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 August 19, 2019. 48 Copyright Notice 50 Copyright (c) 2019 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 55 (https://trustee.ietf.org/license-info) in effect on the date of 56 publication of this document. Please review these documents 57 carefully, as they describe your rights and restrictions with respect 58 to this document. Code Components extracted from this document must 59 include Simplified BSD License text as described in Section 4.e of 60 the Trust Legal Provisions and are provided without warranty as 61 described in the Simplified BSD License. 63 Table of Contents 65 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 66 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 67 3. Applicability . . . . . . . . . . . . . . . . . . . . . . . . 5 68 4. Requirements for PCEP extension . . . . . . . . . . . . . . . 6 69 5. New Functions to distribute link-state (and TE) via PCEP . . 7 70 6. Overview of Extension to PCEP . . . . . . . . . . . . . . . . 7 71 6.1. New Messages . . . . . . . . . . . . . . . . . . . . . . 7 72 6.2. Capability Advertisement . . . . . . . . . . . . . . . . 8 73 6.3. Initial Link-State (and TE) Synchronization . . . . . . . 8 74 6.3.1. Optimizations for LS Synchronization . . . . . . . . 11 75 6.4. LS Report . . . . . . . . . . . . . . . . . . . . . . . . 11 76 7. Transport . . . . . . . . . . . . . . . . . . . . . . . . . . 11 77 8. PCEP Messages . . . . . . . . . . . . . . . . . . . . . . . . 12 78 8.1. LS Report Message . . . . . . . . . . . . . . . . . . . . 12 79 8.2. The PCErr Message . . . . . . . . . . . . . . . . . . . . 12 80 9. Objects and TLV . . . . . . . . . . . . . . . . . . . . . . . 13 81 9.1. TLV Format . . . . . . . . . . . . . . . . . . . . . . . 13 82 9.2. Open Object . . . . . . . . . . . . . . . . . . . . . . . 13 83 9.2.1. LS Capability TLV . . . . . . . . . . . . . . . . . . 13 84 9.3. LS Object . . . . . . . . . . . . . . . . . . . . . . . . 14 85 9.3.1. Routing Universe TLV . . . . . . . . . . . . . . . . 16 86 9.3.2. Route Distinguisher TLV . . . . . . . . . . . . . . . 17 87 9.3.3. Virtual Network TLV . . . . . . . . . . . . . . . . . 17 88 9.3.4. Local Node Descriptors TLV . . . . . . . . . . . . . 17 89 9.3.5. Remote Node Descriptors TLV . . . . . . . . . . . . . 18 90 9.3.6. Node Descriptors Sub-TLVs . . . . . . . . . . . . . . 19 91 9.3.7. Link Descriptors TLV . . . . . . . . . . . . . . . . 19 92 9.3.8. Prefix Descriptors TLV . . . . . . . . . . . . . . . 21 93 9.3.9. PCEP-LS Attributes . . . . . . . . . . . . . . . . . 21 94 9.3.9.1. Node Attributes TLV . . . . . . . . . . . . . . . 22 95 9.3.9.2. Link Attributes TLV . . . . . . . . . . . . . . . 22 96 9.3.9.3. Prefix Attributes TLV . . . . . . . . . . . . . . 24 97 9.3.10. Removal of an Attribute . . . . . . . . . . . . . . . 25 98 10. Other Considerations . . . . . . . . . . . . . . . . . . . . 25 99 10.1. Inter-AS Links . . . . . . . . . . . . . . . . . . . . . 25 100 11. Security Considerations . . . . . . . . . . . . . . . . . . . 25 101 12. Manageability Considerations . . . . . . . . . . . . . . . . 26 102 12.1. Control of Function and Policy . . . . . . . . . . . . . 26 103 12.2. Information and Data Models . . . . . . . . . . . . . . 26 104 12.3. Liveness Detection and Monitoring . . . . . . . . . . . 27 105 12.4. Verify Correct Operations . . . . . . . . . . . . . . . 27 106 12.5. Requirements On Other Protocols . . . . . . . . . . . . 27 107 12.6. Impact On Network Operations . . . . . . . . . . . . . . 27 108 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 109 13.1. PCEP Messages . . . . . . . . . . . . . . . . . . . . . 27 110 13.2. PCEP Objects . . . . . . . . . . . . . . . . . . . . . . 28 111 13.3. LS Object . . . . . . . . . . . . . . . . . . . . . . . 28 112 13.4. PCEP-Error Object . . . . . . . . . . . . . . . . . . . 29 113 13.5. PCEP TLV Type Indicators . . . . . . . . . . . . . . . . 29 114 13.6. PCEP-LS Sub-TLV Type Indicators . . . . . . . . . . . . 30 115 14. TLV Code Points Summary . . . . . . . . . . . . . . . . . . . 32 116 15. Implementation Status . . . . . . . . . . . . . . . . . . . . 33 117 15.1. Hierarchical Transport PCE controllers . . . . . . . . . 33 118 15.2. ONOS-based Controller (MDSC and PNC) . . . . . . . . . . 33 119 16. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 33 120 17. References . . . . . . . . . . . . . . . . . . . . . . . . . 34 121 17.1. Normative References . . . . . . . . . . . . . . . . . . 34 122 17.2. Informative References . . . . . . . . . . . . . . . . . 35 123 Appendix A. Reusing BGP-LS codepoints . . . . . . . . . . . . . 38 124 Appendix B. Relevant OSPF TLV and sub-TLV . . . . . . . . . . . 38 125 Appendix C. Examples . . . . . . . . . . . . . . . . . . . . . . 39 126 C.1. All Nodes . . . . . . . . . . . . . . . . . . . . . . . . 39 127 C.2. Designated Node . . . . . . . . . . . . . . . . . . . . . 41 128 C.3. Between PCEs . . . . . . . . . . . . . . . . . . . . . . 41 129 Appendix D. Contributor Addresses . . . . . . . . . . . . . . . 43 130 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 43 132 1. Introduction 134 In Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS), 135 a Traffic Engineering Database (TED) is used in computing paths for 136 connection oriented packet services and for circuits. The TED 137 contains all relevant information that a Path Computation Element 138 (PCE) needs to perform its computations. It is important that the 139 TED be complete and accurate each time, the PCE performs a path 140 computation. 142 In MPLS and GMPLS, interior gateway routing protocols (IGPs) have 143 been used to create and maintain a copy of the TED at each node 144 running the IGP. One of the benefits of the PCE architecture 145 [RFC4655] is the use of computationally more sophisticated path 146 computation algorithms and the realization that these may need 147 enhanced processing power not necessarily available at each node 148 participating in an IGP. 150 Section 4.3 of [RFC4655] describes the potential load of the TED on a 151 network node and proposes an architecture where the TED is maintained 152 by the PCE rather than the network nodes. However, it does not 153 describe how a PCE would obtain the information needed to populate 154 its TED. PCE may construct its TED by participating in the IGP 155 ([RFC3630] and [RFC5305] for MPLS-TE; [RFC4203] and [RFC5307] for 156 GMPLS). An alternative is offered by BGP-LS [RFC7752] . 158 [RFC8231] describes a set of extensions to PCEP to provide stateful 159 control. A stateful PCE has access to not only the information 160 carried by the network's Interior Gateway Protocol (IGP), but also 161 the set of active paths and their reserved resources for its 162 computations. PCC can delegate the rights to modify the LSP 163 parameters to an Active Stateful PCE. This requires PCE to quickly 164 be updated on any changes in the Topology and TEDB, so that PCE can 165 meet the need for updating LSPs effectively and in a timely manner. 166 The fastest way for a PCE to be updated on TED changes is via a 167 direct interface with each network node and with incremental update 168 from each network node with only the attribute that is modified. 170 [RFC8281] describes the setup, maintenance and teardown of PCE- 171 initiated LSPs under the stateful PCE model, without the need for 172 local configuration on the PCC, thus allowing for a dynamic network 173 that is centrally controlled and deployed. This model requires 174 timely topology and TED update at the PCE. 176 [RFC5440] describes the specifications for the Path Computation 177 Element Communication Protocol (PCEP). PCEP specifies the 178 communication between a Path Computation Client (PCC) and a Path 179 Computation Element (PCE), or between two PCEs based on the PCE 180 architecture [RFC4655]. 182 This document describes a mechanism by which Link State and TE 183 information can be collected from networks and shared with PCE using 184 the PCEP itself. This is achieved using a new PCEP message format. 185 The mechanism is applicable to physical and virtual links as well as 186 further subjected to various policies. 188 A network node maintains one or more databases for storing link-state 189 and TE information about nodes and links in any given area. Link 190 attributes stored in these databases include: local/remote IP 191 addresses, local/ remote interface identifiers, link metric and TE 192 metric, link bandwidth, reservable bandwidth, per CoS class 193 reservation state, preemption and Shared Risk Link Groups (SRLG). 194 The node's PCEP process can retrieve topology from these databases 195 and distribute it to a PCE, either directly or via another PCEP 196 Speaker, using the encoding specified in this document. 198 Further [RFC6805] describes Hierarchical-PCE architecture, where a 199 parent PCE maintains a domain topology map. To build this domain 200 topology map, the child PCE can carry the border nodes and inter- 201 domain link information to the parent PCE using the mechanism 202 described in this document. Further as described in 203 [I-D.ietf-pce-applicability-actn], the child PCE can also transport 204 abstract Link-State and TE information from child PCE to a Parent PCE 205 using the mechanism described in this document to build an abstract 206 topology at the parent PCE. 208 [RFC8231] describe LSP state synchronization between PCCs and PCEs in 209 case of stateful PCE. This document does not make any change to the 210 LSP state synchronization process. The mechanism described in this 211 document are on top of the existing LSP state synchronization. 213 2. Terminology 215 The terminology is as per [RFC4655] and [RFC5440]. 217 3. Applicability 219 The mechanism specified in this draft is applicable to deployments: 221 o Where there is no IGP or BGP-LS running in the network. 223 o Where there is no IGP or BGP-LS running at the PCE to learn link- 224 state and TE information. 226 o Where there is IGP or BGP-LS running but with a need for a faster 227 and direct TE and link-state population and convergence at the 228 PCE. 230 * A PCE may receive partial information (say basic TE, link- 231 state) from IGP and other information (optical and impairment) 232 from PCEP. 234 * A PCE may receive an incremental update (as opposed to the 235 entire information of the node/link). 237 * A PCE may receive full information from both existing mechanism 238 (IGP or BGP) and PCEP. 240 o Where there is a need for transporting (abstract) Link-State and 241 TE information from child PCE to a Parent PCE in H-PCE [RFC6805]; 242 as well as for Provisioning Network Controller (PNC) to Multi- 243 Domain Service Coordinator (MDSC) in Abstraction and Control of TE 244 Networks (ACTN) [RFC8453]. 246 o Where there is an existing PCEP session between all the nodes and 247 the PCE-based central controller (PCECC) [RFC8283], and the 248 operator would like to use PCEP as a direct south bound interface 249 to the all the nodes in the network. This enables operator to use 250 PCEP as single direct protocol between the controller and all the 251 nodes in the network. In this mode all nodes send the only local 252 information. 254 Based on the local policy and deployment scenario, a PCC chooses to 255 send only local information or both local and remote learned 256 information. 258 How a PCE manages the link-state (and TE) information is 259 implementation specific and thus out of scope of this document. 261 The prefix information in PCEP-LS can also help in determining the 262 domain of the endpoints in H-PCE (and ACTN). Section 4.5 of 263 [RFC6805] describe various mechanism and procedures that might be 264 used, PCEP-LS provides a simple mechanism to exchange this 265 information within PCEP. [RFC8453] defines three types of topology 266 abstraction - (1) Native/White Topology; (2) Black Topology; and (3) 267 Grey Topology. Based on the local policy, the PNC (or child PCE) 268 would share the domain topology to the MDSC (or Parent PCE) based on 269 the abstraction type. The protocol extention defined in this 270 document can carry any type of topology abstraction. 272 4. Requirements for PCEP extension 274 Following key requirements associated with link-state (and TE) 275 distribution are identified for PCEP: 277 1. The PCEP speaker supporting this draft MUST be a mechanism to 278 advertise the Link-State (and TE) distribution capability. 280 2. PCC supporting this draft MUST have the capability to report the 281 link-state (and TE) information to the PCE. This MUST includes 282 self originated information and also allow remote information 283 learned via routing protocols. PCC MUST be capable to do the 284 initial bulk sync at the time of session initialization as well 285 as changes after. 287 3. A PCE MAY learn link-state (and TE) from PCEP as well as from 288 existing mechanism like IGP/BGP-LS. PCEP extension MUST have a 289 mechanism to link the information learned via other means. There 290 MUST NOT be any changes to the existing link-state (and TE) 291 population mechanism via IGP/BGP-LS. PCEP extension SHOULD keep 292 the properties in a protocol (IGP or BGP-LS) neutral way, such 293 that an implementation may not need to know about any OSPF or IS- 294 IS or BGP protocol specifics. 296 4. It SHOULD be possible to encode only the changes in link-state 297 (and TE) properties (after the initial sync) in PCEP messages. 298 This leads to faster convergance. 300 5. The same mechanism should be used for both MPLS TE as well as 301 GMPLS, optical and impairment aware properties. 303 6. The same mechanism should be used for PCE to PCE Link-state (and 304 TE) synchronization. 306 5. New Functions to distribute link-state (and TE) via PCEP 308 Several new functions are required in PCEP to support distribution of 309 link-state (and TE) information. A function can be initiated either 310 from a PCC towards a PCE (C-E) or from a PCE towards a PCC (E-C). 311 The new functions are: 313 o Capability advertisement (E-C,C-E): both the PCC and the PCE MUST 314 announce during PCEP session establishment that they support PCEP 315 extensions for distribution of link-state (and TE) information 316 defined in this document. 318 o Link-State (and TE) synchronization (C-E): after the session 319 between the PCC and a PCE is initialized, the PCE must learn Link- 320 State (and TE) information before it can perform path 321 computations. In case of stateful PCE it is RECOMENDED that this 322 operation be done before LSP state synchronization. 324 o Link-State (and TE) Report (C-E): a PCC sends a LS (and TE) report 325 to a PCE whenever the Link-State and TE information changes. 327 6. Overview of Extension to PCEP 329 6.1. New Messages 331 In this document, we define a new PCEP messages called LS Report 332 (LSRpt), a PCEP message sent by a PCC to a PCE to report link-state 333 (and TE) information. Each LS Report in a LSRpt message can contain 334 the node or link properties. An unique PCEP specific LS identifier 335 (LS-ID) is also carried in the message to identify a node or link and 336 that remains constant for the lifetime of a PCEP session. This 337 identifier on its own is sufficient when no IGP or BGP-LS running in 338 the network for PCE to learn link-state (and TE) information. Incase 339 PCE learns some information from PCEP and some from the existing 340 mechanism, the PCC SHOULD include the mapping of IGP or BGP-LS 341 identifier to map the information populated via PCEP with IGP/BGP-LS. 342 See Section 8.1 for details. 344 6.2. Capability Advertisement 346 During PCEP Initialization Phase, PCEP Speakers (PCE or PCC) 347 advertise their support of LS (and TE) distribution via PCEP 348 extensions. A PCEP Speaker includes the "LS Capability" TLV, 349 described in Section 9.2.1, in the OPEN Object to advertise its 350 support for PCEP-LS extensions. The presence of the LS Capability 351 TLV in PCC's OPEN Object indicates that the PCC is willing to send LS 352 Reports whenever local link-state (and TE) information changes. The 353 presence of the LS Capability TLV in PCE's OPEN message indicates 354 that the PCE is interested in receiving LS Reports whenever local 355 link-state (and TE) information changes. 357 The PCEP extensions for LS (and TE) distribution MUST NOT be used if 358 one or both PCEP Speakers have not included the LS Capability TLV in 359 their respective OPEN message. If the PCE that supports the 360 extensions of this draft but did not advertise this capability, then 361 upon receipt of a LSRpt message from the PCC, it SHOULD generate a 362 PCErr with error-type 19 (Invalid Operation), error-value TBD1 363 (Attempted LS Report if LS capability was not advertised) and it will 364 terminate the PCEP session. 366 The LS reports sent by PCC MAY carry the remote link-state (and TE) 367 information learned via existing means like IGP and BGP-LS only if 368 both PCEP Speakers set the R (remote) Flag in the "LS Capability" TLV 369 to 'Remote Allowed (R Flag = 1)'. If this is not the case and LS 370 reports carry remote link-state (and TE) information, then a PCErr 371 with error-type 19 (Invalid Operation) and error-value TBD1 372 (Attempted LS Report if LS remote capability was not advertised) and 373 it will terminate the PCEP session. 375 6.3. Initial Link-State (and TE) Synchronization 377 The purpose of LS Synchronization is to provide a checkpoint-in- time 378 state replica of a PCC's link-state (and TE) data base in a PCE. 379 State Synchronization is performed immediately after the 380 Initialization phase (see [RFC5440]). In case of stateful PCE 381 ([RFC8231]) it is RECOMENDED that the LS synchronization should be 382 done before LSP state synchronization. 384 During LS Synchronization, a PCC first takes a snapshot of the state 385 of its database, then sends the snapshot to a PCE in a sequence of LS 386 Reports. Each LS Report sent during LS Synchronization has the SYNC 387 Flag in the LS Object set to 1. The end of synchronization marker is 388 a LSRpt message with the SYNC Flag set to 0 for an LS Object with LS- 389 ID equal to the reserved value 0. If the PCC has no link-state to 390 synchronize, it will only send the end of synchronization marker. 392 Either the PCE or the PCC MAY terminate the session using the PCEP 393 session termination procedures during the synchronization phase. If 394 the session is terminated, the PCE MUST clean up state it received 395 from this PCC. The session re-establishment MUST be re-attempted per 396 the procedures defined in [RFC5440], including use of a back-off 397 timer. 399 If the PCC encounters a problem which prevents it from completing the 400 LS synchronization, it MUST send a PCErr message with error-type TBD2 401 (LS Synchronization Error) and error-value 2 (indicating an internal 402 PCC error) to the PCE and terminate the session. 404 The PCE does not send positive acknowledgments for properly received 405 LS synchronization messages. It MUST respond with a PCErr message 406 with error-type TBD2 (LS Synchronization Error) and error-value 1 407 (indicating an error in processing the LSRpt) if it encounters a 408 problem with the LS Report it received from the PCC and it MUST 409 terminate the session. 411 The LS reports can carry local as well as remote link-state (and TE) 412 information depending on the R flag in LS capability TLV. 414 The successful LS Synchronization sequences is shown in Figure 1. 416 +-+-+ +-+-+ 417 |PCC| |PCE| 418 +-+-+ +-+-+ 419 | | 420 |-----LSRpt, SYNC=1----->| (Sync start) 421 | | 422 |-----LSRpt, SYNC=1----->| 423 | . | 424 | . | 425 | . | 426 |-----LSRpt, SYNC=1----->| 427 | . | 428 | . | 429 | . | 430 | | 431 |-----LSRpt, SYNC=0----->| (End of sync marker 432 | | LS Report 433 | | for LS-ID=0) 434 | | (Sync done) 436 Figure 1: Successful LS synchronization 438 The sequence where the PCE fails during the LS Synchronization phase 439 is shown in Figure 2. 441 +-+-+ +-+-+ 442 |PCC| |PCE| 443 +-+-+ +-+-+ 444 | | 445 |-----LSRpt, SYNC=1----->| 446 | | 447 |-----LSRpt, SYNC=1----->| 448 | . | 449 | . | 450 | . | 451 |-----LSRpt, SYNC=1----->| 452 | | 453 |---LSRpt,SYNC=1 | 454 | \ ,-PCErr---| 455 | \ / | 456 | \/ | 457 | /\ | 458 | / `-------->| (Ignored) 459 |<--------` | 461 Figure 2: Failed LS synchronization (PCE failure) 463 The sequence where the PCC fails during the LS Synchronization phase 464 is shown in Figure 3. 466 +-+-+ +-+-+ 467 |PCC| |PCE| 468 +-+-+ +-+-+ 469 | | 470 |-----LSRpt, SYNC=1----->| 471 | | 472 |-----LSRpt, SYNC=1----->| 473 | . | 474 | . | 475 | . | 476 |-------- PCErr--------->| 477 | | 479 Figure 3: Failed LS synchronization (PCC failure) 481 6.3.1. Optimizations for LS Synchronization 483 These optimizations are described in 484 [I-D.kondreddy-pce-pcep-ls-sync-optimizations]. 486 6.4. LS Report 488 The PCC MUST report any changes in the link-state (and TE) 489 information to the PCE by sending a LS Report carried on a LSRpt 490 message to the PCE. Each node and Link would be uniquely identified 491 by a PCEP LS identifier (LS-ID). The LS reports may carry local as 492 well as remote link-state (and TE) information depending on the R 493 flag in LS capability TLV. In case R flag is set, It MAY also 494 include the mapping of IGP or BGP-LS identifier to map the 495 information populated via PCEP with IGP/BGP-LS. 497 More details about LSRpt message are in Section 8.1. 499 7. Transport 501 A permanent PCEP session MUST be established between a PCE and PCC 502 supporting link-state (and TE) distribution via PCEP. In the case of 503 session failure, session re-establishment MUST be re-attempted per 504 the procedures defined in [RFC5440]. 506 8. PCEP Messages 508 As defined in [RFC5440], a PCEP message consists of a common header 509 followed by a variable-length body made of a set of objects that can 510 be either mandatory or optional. An object is said to be mandatory 511 in a PCEP message when the object must be included for the message to 512 be considered valid. For each PCEP message type, a set of rules is 513 defined that specify the set of objects that the message can carry. 514 An implementation MUST form the PCEP messages using the object 515 ordering specified in this document. 517 8.1. LS Report Message 519 A PCEP LS Report message (also referred to as LSRpt message) is a 520 PCEP message sent by a PCC to a PCE to report the link-state (and TE) 521 information. A LSRpt message can carry more than one LS Reports. 522 The Message-Type field of the PCEP common header for the LSRpt 523 message is set to [TBD3]. 525 The format of the LSRpt message is as follows: 527 ::= 528 529 Where: 531 ::= [] 533 The LS object is a mandatory object which carries LS information of a 534 node or a link. Each LS object has an unique LS-ID as described in 535 Section 9.3. If the LS object is missing, the receiving PCE MUST 536 send a PCErr message with Error-type=6 (Mandatory Object missing) and 537 Error-value=[TBD4] (LS object missing). 539 A PCE may choose to implement a limit on the LS information a single 540 PCC can populate. If a LSRpt is received that causes the PCE to 541 exceed this limit, it MUST send a PCErr message with error-type 19 542 (invalid operation) and error-value 4 (indicating resource limit 543 exceeded) in response to the LSRpt message triggering this condition 544 and SHOULD terminate the session. 546 8.2. The PCErr Message 548 If a PCEP speaker has advertised the LS capability on the PCEP 549 session, the PCErr message MAY include the LS object. If the error 550 reported is the result of an LS report, then the LS-ID number MUST be 551 the one from the LSRpt that triggered the error. 553 The format of a PCErr message from [RFC5440] is extended as follows: 555 The format of the PCErr message is as follows: 557 ::= 558 ( [] ) | 559 [] 561 ::=[] 563 ::=[ | ] 564 566 ::=[] 568 ::=[] 570 ::=[] 572 9. Objects and TLV 574 The PCEP objects defined in this document are compliant with the PCEP 575 object format defined in [RFC5440]. The P flag and the I flag of the 576 PCEP objects defined in this document MUST always be set to 0 on 577 transmission and MUST be ignored on receipt since these flags are 578 exclusively related to path computation requests. 580 9.1. TLV Format 582 The TLV and the sub-TLV format (and padding) in this document, is as 583 per section 7.1 of [RFC5440]. 585 9.2. Open Object 587 This document defines a new optional TLV for use in the OPEN Object. 589 9.2.1. LS Capability TLV 591 The LS-CAPABILITY TLV is an optional TLV for use in the OPEN Object 592 for link-state (and TE) distribution via PCEP capability 593 advertisement. Its format is shown in the following figure: 595 0 1 2 3 596 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 597 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 598 | Type=[TBD5] | Length=4 | 599 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 600 | Flags |R| 601 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 603 The type of the TLV is [TBD5] and it has a fixed length of 4 octets. 605 The value comprises a single field - Flags (32 bits): 607 o R (remote allowed - 1 bit): if set to 1 by a PCC, the R Flag 608 indicates that the PCC allows reporting of remote LS information 609 learned via other means like IGP and BGP-LS; if set to 1 by a PCE, 610 the R Flag indicates that the PCE is capable of receiving remote 611 LS information (from the PCC point of view). The R Flag must be 612 advertised by both a PCC and a PCE for LSRpt messages to report 613 remote as well as local LS information on a PCEP session. The 614 TLVs related to IGP/BGP-LS identifier MUST be encoded when both 615 PCEP speakers have the R Flag set. 617 Unassigned bits are considered reserved. They MUST be set to 0 on 618 transmission and MUST be ignored on receipt. 620 Advertisement of the LS capability implies support of local link- 621 state (and TE) distribution, as well as the objects, TLVs and 622 procedures defined in this document. 624 9.3. LS Object 626 The LS (link-state) object MUST be carried within LSRpt messages and 627 MAY be carried within PCErr messages. The LS object contains a set 628 of fields used to specify the target node or link. It also contains 629 a flag indicating to a PCE that the LS synchronization is in 630 progress. The TLVs used with the LS object correlate with the IGP/ 631 BGP-LS encodings. 633 LS Object-Class is [TBD6]. 635 Four Object-Type values are defined for the LS object so far: 637 o LS Node: LS Object-Type is 1. 639 o LS Link: LS Object-Type is 2. 641 o LS IPv4 Topology Prefix: LS Object-Type is 3. 643 o LS IPv6 Topology Prefix: LS Object-Type is 4. 645 The format of all types of LS object is as follows: 647 0 1 2 3 648 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 649 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 650 | Protocol-ID | Flag |R|S| 651 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 652 | LS-ID | 653 | | 654 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 655 // TLVs // 656 | | 657 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 659 Protocol-ID (8-bit): The field provide the source information. The 660 protocol could be an IGP, BGP-LS or an abstraction algorithm. Incase 661 PCC only provides local information of the PCC, it MUST use Protocol- 662 ID as Direct. The following values are defined (some of them are 663 same as [RFC7752]): 665 +-------------+----------------------------------+ 666 | Protocol-ID | Source protocol | 667 +-------------+----------------------------------+ 668 | 1 | IS-IS Level 1 | 669 | 2 | IS-IS Level 2 | 670 | 3 | OSPFv2 | 671 | 4 | Direct | 672 | 5 | Static configuration | 673 | 6 | OSPFv3 | 674 | 7 | BGP | 675 | 8 | PCEP | 676 | 9 | Abstraction | 677 | 10 | Unspecified | 678 +-------------+----------------------------------+ 680 Flags (24-bit): 682 o S (SYNC - 1 bit): the S Flag MUST be set to 1 on each LSRpt sent 683 from a PCC during LS Synchronization. The S Flag MUST be set to 0 684 in other LSRpt messages sent from the PCC. 686 o R (Remove - 1 bit): On LSRpt messages the R Flag indicates that 687 the node/link/prefix has been removed from the PCC and the PCE 688 SHOULD remove from its database. Upon receiving an LS Report with 689 the R Flag set to 1, the PCE SHOULD remove all state for the 690 node/link/prefix identified by the LS Identifiers from its 691 database. 693 LS-ID(64-bit): A PCEP-specific identifier for the node or link or 694 prefix information. A PCC creates an unique LS-ID for each 695 node/link/prefix that is constant for the lifetime of a PCEP session. 696 The PCC will advertise the same LS-ID on all PCEP sessions it 697 maintains at a given times. All subsequent PCEP messages then 698 address the node/link/prefix by the LS-ID. The values of 0 and 699 0xFFFFFFFFFFFFFFFF are reserved. 701 Unassigned bits are considered reserved. They MUST be set to 0 on 702 transmission and MUST be ignored on receipt. 704 TLVs that may be included in the LS Object are described in the 705 following sections. 707 9.3.1. Routing Universe TLV 709 In case of remote link-state (and TE) population when existing IGP/ 710 BGP-LS are also used, OSPF and IS-IS may run multiple routing 711 protocol instances over the same link as described in [RFC7752]. See 712 [RFC8202] and [RFC6549] for more information. These instances define 713 independent "routing universes". The 64-Bit 'Identifier' field is 714 used to identify the "routing universe" where the LS object belongs. 715 The LS objects representing IGP objects (nodes or links or prefix) 716 from the same routing universe MUST have the same 'Identifier' value; 717 LS objects with different 'Identifier' values MUST be considered to 718 be from different routing universes. 720 The format of the optional ROUTING-UNIVERSE TLV is shown in the 721 following figure: 723 0 1 2 3 724 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 725 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 726 | Type=[TBD7] | Length=8 | 727 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 728 | Identifier | 729 | | 730 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 732 Below table lists the 'Identifier' values that are defined as well- 733 known in this draft (same as [RFC7752]). 735 +------------+-----------------------------------+ 736 | Identifier | Routing Universe | 737 +------------+-----------------------------------+ 738 | 0 | Default Layer 3 Routing topology | 739 +------------+-----------------------------------+ 741 If this TLV is not present the default value 0 is assumed. 743 9.3.2. Route Distinguisher TLV 745 To allow identification of VPN link, node and prefix information in 746 PCEP-LS, a Route Distinguisher (RD) [RFC4364] is used. The LS 747 objects from the same VPN MUST have the same RD; LS objects with 748 different RD values MUST be considered to be from different VPNs. 750 The ROUTE-DISTINGUISHER TLV is defined in 751 [I-D.ietf-pce-pcep-flowspec] as a Flow Specification TLVs with a 752 seperate registry. This document also adds the ROUTE-DISTINGUISHER 753 TLV with TBD15 in the PCEP TLV registry to be used inside the LS 754 object. 756 9.3.3. Virtual Network TLV 758 To realize ACTN, the MDSC needs to build an multi-domain topology. 759 This topology is best served, if this is an abstracted view of the 760 underlying network resources of each domain. It is also important to 761 provide a customer view of network slice for each customer. There is 762 a need to control the level of abstraction based on the deployment 763 scenario and business relationship between the controllers. 765 Virtual service coordination function in ACTN incorporates customer 766 service-related knowledge into the virtual network operations in 767 order to seamlessly operate virtual networks while meeting customer's 768 service requirements. [I-D.ietf-teas-actn-requirements] describes 769 various VN operations initiated by a customer/application. In this 770 context, there is a need for associating the abstracted link state 771 and TE topology with a VN "construct" to facilitate VN operations in 772 PCE architecture. 774 VIRTUAL-NETWORK-TLV as per [I-D.leedhody-pce-vn-association] can be 775 included in LS object to identify the link, node and prefix 776 information belongs to a particular VN. 778 9.3.4. Local Node Descriptors TLV 780 As described in [RFC7752], each link is anchored by a pair of Router- 781 IDs that are used by the underlying IGP, namely, 48 Bit ISO System-ID 782 for IS-IS and 32 bit Router-ID for OSPFv2 and OSPFv3. Incase of 783 additional auxiliary Router-IDs used for TE, these MUST also be 784 included in the link attribute TLV (see Section 9.3.9.2). 786 It is desirable that the Router-ID assignments inside the Node 787 Descriptor are globally unique. Some considerations for globally 788 unique Node/Link/Prefix identifiers are described in [RFC7752]. 790 The Local Node Descriptors TLV contains Node Descriptors for the node 791 anchoring the local end of the link. This TLV MUST be included in 792 the LS Report when during a given PCEP session a node/link/prefix is 793 first reported to a PCE. A PCC sends to a PCE the first LS Report 794 either during State Synchronization, or when a new node/link/prefix 795 is learned at the PCC. The value contains one or more Node 796 Descriptor Sub-TLVs, which allows specification of a flexible key for 797 any given node/link/prefix information such that global uniqueness of 798 the node/link/prefix is ensured. 800 This TLV is applicable for all LS Object-Type. 802 0 1 2 3 803 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 804 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 805 | Type=[TBD8] | Length | 806 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 807 | | 808 // Node Descriptor Sub-TLVs (variable) // 809 | | 810 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 812 The value contains one or more Node Descriptor Sub-TLVs defined in 813 Section 9.3.6. 815 9.3.5. Remote Node Descriptors TLV 817 The Remote Node Descriptors contains Node Descriptors for the node 818 anchoring the remote end of the link. This TLV MUST be included in 819 the LS Report when during a given PCEP session a link is first 820 reported to a PCE. A PCC sends to a PCE the first LS Report either 821 during State Synchronization, or when a new link is learned at the 822 PCC. The length of this TLV is variable. The value contains one or 823 more Node Descriptor Sub-TLVs defined in Section 9.3.6. 825 This TLV is applicable for LS Link Object-Type. 827 0 1 2 3 828 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 829 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 830 | Type=[TBD9] | Length | 831 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 832 | | 833 // Node Descriptor Sub-TLVs (variable) // 834 | | 835 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 837 9.3.6. Node Descriptors Sub-TLVs 839 The Node Descriptor Sub-TLV type Type and lengths are listed in the 840 following table: 842 +----------+-------------------+----------+----------------+ 843 | Sub-TLV | Description | Length |Value defined in| 844 +----------+-------------------+----------+----------------+ 845 | 0 | Reserved | - | - | 846 | 1 | Autonomous System | 4 | [RFC7752] | 847 | 2 | BGP-LS Identifier | 4 | / section | 848 | 3 | OSPF Area-ID | 4 | 3.2.1.4 | 849 | 4 | Router-ID | Variable | | 850 +----------+-------------------+----------+----------------+ 852 The sub-TLV values in Node Descriptor TLVs are defined as follows 853 (similar to [RFC7752]): 855 o Autonomous System: opaque value (32 Bit AS Number) 857 o BGP-LS Identifier: opaque value (32 Bit ID). In conjunction with 858 ASN, uniquely identifies the BGP-LS domain as described in 859 [RFC7752]. This sub-TLV is present only if the node implements 860 BGP-LS and the ID is set by the operator. 862 o OSPF Area ID: It is used to identify the 32 Bit area to which the 863 LS object belongs. Area Identifier allows the different LS 864 objects of the same node to be discriminated. 866 o Router ID: opaque value. Usage is described in [RFC7752] as IGP 867 Router ID. In case this is not learned from IGP, it SHOULD 868 contain the unique router ID, such as TE router ID. 870 9.3.7. Link Descriptors TLV 872 The Link Descriptors TLV contains Link Descriptors for each link. 873 This TLV MUST be included in the LS Report when during a given PCEP 874 session a link is first reported to a PCE. A PCC sends to a PCE the 875 first LS Report either during State Synchronization, or when a new 876 link is learned at the PCC. The length of this TLV is variable. The 877 value contains one or more Link Descriptor Sub-TLVs. 879 The 'Link descriptor' TLVs uniquely identify a link among multiple 880 parallel links between a pair of anchor routers similar to [RFC7752]. 882 This TLV is applicable for LS Link Object-Type. 884 0 1 2 3 885 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 886 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 887 | Type=[TBD10] | Length | 888 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 889 | | 890 // Link Descriptor Sub-TLVs (variable) // 891 | | 892 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 894 The Link Descriptor Sub-TLV type and lengths are listed in the 895 following table: 897 +-----------+---------------------+---------------+-----------------+ 898 | Sub-TLV | Description | IS-IS TLV | Value defined | 899 | | | /Sub-TLV | in: | 900 +-----------+---------------------+---------------+-----------------+ 901 | 6 | Link Local/Remote | 22/4 | [RFC5307]/1.1 | 902 | | Identifiers | | | 903 | 7 | IPv4 interface | 22/6 | [RFC5305]/3.2 | 904 | | address | | | 905 | 8 | IPv4 neighbor | 22/8 | [RFC5305]/3.3 | 906 | | address | | | 907 | 9 | IPv6 interface | 22/12 | [RFC6119]/4.2 | 908 | | address | | | 909 | 10 | IPv6 neighbor | 22/13 | [RFC6119]/4.3 | 910 | | address | | | 911 | 5 | Multi-Topology | - | [RFC7752]/ | 912 | | identifier | | 3.2.1.5 | 913 +-----------+---------------------+---------------+-----------------+ 915 The format and semantics of the 'value' fields in most 'Link 916 Descriptor' sub-TLVs correspond to the format and semantics of value 917 fields in IS-IS Extended IS Reachability sub-TLVs, defined in 918 [RFC5305], [RFC5307] and [RFC6119]. Although the encodings for 'Link 919 Descriptor' TLVs were originally defined for IS-IS, the TLVs can 920 carry data sourced either by IS-IS or OSPF or direct. 922 The information about a link present in the LSA/LSP originated by the 923 local node of the link determines the set of sub-TLVs in the Link 924 Descriptor of the link as described in [RFC7752]. 926 9.3.8. Prefix Descriptors TLV 928 The Prefix Descriptors TLV contains Prefix Descriptors uniquely 929 identify an IPv4 or IPv6 Prefix originated by a Node. This TLV MUST 930 be included in the LS Report when during a given PCEP session a 931 prefix is first reported to a PCE. A PCC sends to a PCE the first LS 932 Report either during State Synchronization, or when a new prefix is 933 learned at the PCC. The length of this TLV is variable. 935 This TLV is applicable for LS Prefix Object-Types for both IPv4 and 936 IPv6. 938 0 1 2 3 939 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 940 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 941 | Type=[TBD11] | Length | 942 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 943 | | 944 // Prefix Descriptor Sub-TLVs (variable) // 945 | | 946 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 948 The value contains one or more Prefix Descriptor Sub-TLVs defined 949 below - 951 +--------------+-----------------------+----------+-----------------+ 952 | TLV Code | Description | Length | Value defined | 953 | Point | | | in: | 954 +--------------+-----------------------+----------+-----------------+ 955 | 5 | Multi-Topology | variable | [RFC7752] | 956 | | Identifier | | /3.2.1.5 | 957 | 11 | OSPF Route Type | 1 | [RFC7752] | 958 | | | | /3.2.3.1 | 959 | 12 | IP Reachability | variable | [RFC7752] | 960 | | Information | | /3.2.3.2 | 961 +--------------+-----------------------+----------+-----------------+ 963 9.3.9. PCEP-LS Attributes 964 9.3.9.1. Node Attributes TLV 966 This is an optional attribute that is used to carry node attributes. 967 This TLV is applicable for LS Node Object-Type. 969 0 1 2 3 970 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 971 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 972 | Type=[TBD12] | Length | 973 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 974 | | 975 // Node Attributes Sub-TLVs (variable) // 976 | | 977 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 979 The Node Attributes Sub-TLV type and lengths are listed in the 980 following table: 982 +--------------+-----------------------+----------+-----------------+ 983 | Sub TLV | Description | Length | Value defined | 984 | | | | in: | 985 +--------------+-----------------------+----------+-----------------+ 986 | 5 | Multi-Topology | variable | [RFC7752] | 987 | | Identifier | | /3.2.1.5 | 988 | 13 | Node Flag Bits | 1 | [RFC7752] | 989 | | | | /3.3.1.1 | 990 | 14 | Opaque Node | variable | [RFC7752] | 991 | | Properties | | /3.3.1.5 | 992 | 15 | Node Name | variable | [RFC7752] | 993 | | | | /3.3.1.3 | 994 | 16 | IS-IS Area Identifier | variable | [RFC7752] | 995 | | | | /3.3.1.2 | 996 | 17 | IPv4 Router-ID of | 4 | [RFC5305]/4.3 | 997 | | Local Node | | | 998 | 18 | IPv6 Router-ID of | 16 | [RFC6119]/4.1 | 999 | | Local Node | | | 1000 +--------------+-----------------------+----------+-----------------+ 1002 9.3.9.2. Link Attributes TLV 1004 This TLV is applicable for LS Link Object-Type. The format and 1005 semantics of the 'value' fields in some 'Link Attribute' sub-TLVs 1006 correspond to the format and semantics of value fields in IS-IS 1007 Extended IS Reachability sub-TLVs, defined in [RFC5305], [RFC5307] 1008 and [RFC7752]. Although the encodings for 'Link Attribute' TLVs were 1009 originally defined for IS-IS, the TLVs can carry data sourced either 1010 by IS-IS or OSPF or direct. 1012 0 1 2 3 1013 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 1014 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1015 | Type=[TBD13] | Length | 1016 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1017 | | 1018 // Link Attributes Sub-TLVs (variable) // 1019 | | 1020 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1022 The following 'Link Attribute' sub-TLVs are valid : 1024 +-----------+---------------------+--------------+------------------+ 1025 | Sub-TLV | Description | IS-IS TLV | Defined in: | 1026 | | | /Sub-TLV | | 1027 | | | BGP-LS TLV | | 1028 +-----------+---------------------+--------------+------------------+ 1029 | 17 | IPv4 Router-ID of | 134/--- | [RFC5305]/4.3 | 1030 | | Local Node | | | 1031 | 18 | IPv6 Router-ID of | 140/--- | [RFC6119]/4.1 | 1032 | | Local Node | | | 1033 | 19 | IPv4 Router-ID of | 134/--- | [RFC5305]/4.3 | 1034 | | Remote Node | | | 1035 | 20 | IPv6 Router-ID of | 140/--- | [RFC6119]/4.1 | 1036 | | Remote Node | | | 1037 | 6 | Link Local/Remote | 22/4 | [RFC5307]/1.1 | 1038 | | Identifiers | | | 1039 | 22 | Administrative | 22/3 | [RFC5305]/3.1 | 1040 | | group (color) | | | 1041 | 23 | Maximum link | 22/9 | [RFC5305]/3.3 | 1042 | | bandwidth | | | 1043 | 24 | Max. reservable | 22/10 | [RFC5305]/3.5 | 1044 | | link bandwidth | | | 1045 | 25 | Unreserved | 22/11 | [RFC5305]/3.6 | 1046 | | bandwidth | | | 1047 | 26 | TE Default Metric | 22/18 | [RFC7752] | 1048 | | | | /3.3.2.3 | 1049 | 27 | Link Protection | 22/20 | [RFC5307]/1.2 | 1050 | | Type | | | 1051 | 28 | MPLS Protocol Mask | 1094 | [RFC7752] | 1052 | | | | /3.3.2.2 | 1053 | 29 | IGP Metric | 1095 | [RFC7752] | 1054 | | | | /3.3.2.4 | 1055 | 30 | Shared Risk Link | 1096 | [RFC7752] | 1056 | | Group | | /3.3.2.5 | 1057 | 31 | Opaque link | 1097 | [RFC7752] | 1058 | | attributes | | /3.3.2.6 | 1059 | 32 | Link Name attribute | 1098 | [RFC7752] | 1060 | | | | /3.3.2.7 | 1061 | 33 | Unidirectional | 22/33 | [RFC7810]/4.1 | 1062 | | Link Delay | | | 1063 | 34 | Min/Max | 22/34 | [RFC7810]/4.2 | 1064 | | Unidirectional Link | | | 1065 | | Delay | | | 1066 | 35 | Unidirectional | 22/35 | [RFC7810]/4.3 | 1067 | | Delay Variation | | | 1068 | 36 | Unidirectional | 22/36 | [RFC7810]/4.4 | 1069 | | Link Loss | | | 1070 | 37 | Unidirectional | 22/37 | [RFC7810]/4.5 | 1071 | | Residual Bandwidth | | | 1072 | 38 | Unidirectional | 22/38 | [RFC7810]/4.6 | 1073 | | Available Bandwidth | | | 1074 | 39 | Unidirectional | 22/39 | [RFC7810]/4.7 | 1075 | | Bandwidth | | | 1076 | | Utilization | | | 1077 | 40 | Extended Admin | 22/14 | [RFC7308]/2.1 | 1078 | | Group (EAG) | | | 1079 +-----------+---------------------+--------------+------------------+ 1081 9.3.9.3. Prefix Attributes TLV 1083 This TLV is applicable for LS Prefix Object-Types for both IPv4 and 1084 IPv6. Prefixes are learned from the IGP (IS-IS or OSPF) or BGP 1085 topology with a set of IGP attributes (such as metric, route tags, 1086 etc.). This section describes the different attributes related to 1087 the IPv4/IPv6 prefixes. Prefix Attributes TLVs SHOULD be encoded in 1088 the LS Prefix Object. 1090 0 1 2 3 1091 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 1092 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1093 | Type=[TBD14] | Length | 1094 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1095 | | 1096 // Prefix Attributes Sub-TLVs (variable) // 1097 | | 1098 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1100 The following 'Prefix Attribute' sub-TLVs are valid : 1102 +-----------+---------------------+--------------+------------------+ 1103 | Sub-TLV | Description | BGP-LS TLV | Defined in: | 1104 +-----------+---------------------+--------------+------------------+ 1105 | 41 | IGP Flags | 1152 | [RFC7752] | 1106 | | | | /3.3.3.1 | 1107 | 42 | Route Tag | 1153 | [RFC7752] | 1108 | | | | /3.3.3.2 | 1109 | 43 | Extended Tag | 1154 | [RFC7752] | 1110 | | | | /3.3.3.3 | 1111 | 44 | Prefix Metric | 1155 | [RFC7752] | 1112 | | | | /3.3.3.4 | 1113 | 45 | OSPF Forwarding | 1156 | [RFC7752] | 1114 | | Address | | /3.3.3.5 | 1115 | 46 | Opaque Prefix | 1157 | [RFC7752] | 1116 | | Attribute | | /3.3.3.6 | 1117 +-----------+---------------------+--------------+------------------+ 1119 9.3.10. Removal of an Attribute 1121 One of a key objective of PCEP-LS is to encode and carry only the 1122 impacted attributes of a Node, a Link or a Prefix. To accommodate 1123 this requirement, incase of a removal of an attribute, the sub-TLV 1124 MUST be included with no 'value' field and length=0 to indicate that 1125 the attribute is removed. On receiving a sub-TLV with zero length, 1126 the receiver removes the attribute from the database. 1128 10. Other Considerations 1130 10.1. Inter-AS Links 1132 The main source of LS (and TE) information is the IGP, which is not 1133 active on inter-AS links. In some cases, the IGP may have 1134 information of inter-AS links ([RFC5392], [RFC5316]). In other 1135 cases, an implementation SHOULD provide a means to inject inter-AS 1136 links into PCEP. The exact mechanism used to provision the inter-AS 1137 links is outside the scope of this document. 1139 11. Security Considerations 1141 This document extends PCEP for LS (and TE) distribution including a 1142 new LSRpt message with new object and TLVs. Procedures and protocol 1143 extensions defined in this document do not effect the overall PCEP 1144 security model. See [RFC5440], [RFC8253]. Tampering with the LSRpt 1145 message may have an effect on path computations at PCE. It also 1146 provides adversaries an opportunity to eavesdrop and learn sensitive 1147 information and plan sophisticated attacks on the network 1148 infrastructure. The PCE implementation SHOULD provide mechanisms to 1149 prevent strains created by network flaps and amount of LS (and TE) 1150 information. Thus it is suggested that any mechanism used for 1151 securing the transmission of other PCEP message be applied here as 1152 well. As a general precaution, it is RECOMMENDED that these PCEP 1153 extensions only be activated on authenticated and encrypted sessions 1154 belonging to the same administrative authority. 1156 Further, as stated in [RFC6952], PCEP implementations SHOULD support 1157 the TCP-AO [RFC5925] and not use TCP MD5 because of TCP MD5's known 1158 vulnerabilities and weakness. PCEP also support Transport Layer 1159 Security (TLS) [RFC8253] as per the recommendations and best current 1160 practices in [RFC7525]. 1162 12. Manageability Considerations 1164 All manageability requirements and considerations listed in [RFC5440] 1165 apply to PCEP protocol extensions defined in this document. In 1166 addition, requirements and considerations listed in this section 1167 apply. 1169 12.1. Control of Function and Policy 1171 A PCE or PCC implementation MUST allow configuring the PCEP-LS 1172 capabilities as described in this document. 1174 A PCC implementation SHOULD allow configuration to suggest if remote 1175 information learned via routing protocols should be reported or not. 1177 An implementation SHOULD allow the operator to specify the maximum 1178 number of LS data to be reported. 1180 An implementation SHOULD also allow the operator to create abstracted 1181 topologies that are reported to the peers and create different 1182 abstractions for different peers. 1184 An implementation SHOULD allow the operator to configure a 64-bit 1185 Instance-ID for Routing Universe TLV. 1187 12.2. Information and Data Models 1189 An implementation SHOULD allow the operator to view the LS 1190 capabilities advertised by each peer. To serve this purpose, the 1191 PCEP YANG module [I-D.ietf-pce-pcep-yang]" can be extended to include 1192 advertised capabilities. 1194 An implementation SHOULD also provide the statistics: 1196 o Total number of LSRpt sent/received, as well as per neighbor 1197 o Number of error received for LSRpt, per neighbor 1199 o Total number of locally originated Link-State Information 1201 These statistics should be recorded as absolute counts since system 1202 or session start time. An implementation MAY also enhance this 1203 information by recording peak per-second counts in each case. 1205 An operator SHOULD define an import policy to limit inbound LSRpt to 1206 "drop all LSRpt from a particular peers" as well provide means to 1207 limit inbound LSRpts. 1209 12.3. Liveness Detection and Monitoring 1211 Mechanisms defined in this document do not imply any new liveness 1212 detection and monitoring requirements in addition to those already 1213 listed in [RFC5440]". 1215 12.4. Verify Correct Operations 1217 Mechanisms defined in this document do not imply any new operation 1218 verification requirements in addition to those already listed in 1219 [RFC5440] . 1221 12.5. Requirements On Other Protocols 1223 Mechanisms defined in this document do not imply any new requirements 1224 on other protocols. 1226 12.6. Impact On Network Operations 1228 Mechanisms defined in this document do not have any impact on network 1229 operations in addition to those already listed in [RFC5440]. 1231 13. IANA Considerations 1233 This document requests IANA actions to allocate code points for the 1234 protocol elements defined in this document. 1236 13.1. PCEP Messages 1238 IANA created a registry for PCEP messages. Each PCEP message has a 1239 message type value. This document defines a new PCEP message value. 1241 Value Meaning Reference 1242 TBD3 LSRpt [This I-D] 1244 13.2. PCEP Objects 1246 This document defines the following new PCEP Object-classes and 1247 Object-values: 1249 Object-Class Value Name Reference 1250 TBD6 LS Object [This I-D] 1251 Object-Type=1 1252 (LS Node) 1253 Object-Type=2 1254 (LS Link) 1255 Object-Type=3 1256 (LS IPv4 Prefix) 1257 Object-Type=4 1258 (LS IPv6 Prefix) 1260 13.3. LS Object 1262 This document requests that a new sub-registry, named "LS Object 1263 Protocol-ID Field", is created within the "Path Computation Element 1264 Protocol (PCEP) Numbers" registry to manage the Flag field of the LSP 1265 object. New values are to be assigned by Standards Action [RFC8126]. 1267 Value Meaning Reference 1268 0 Reserved [This I-D] 1269 1 IS-IS Level 1 [This I-D] 1270 2 IS-IS Level 2 [This I-D] 1271 3 OSPFv2 [This I-D] 1272 4 Direct [This I-D] 1273 5 Static configuration [This I-D] 1274 6 OSPFv3 [This I-D] 1275 7 BGP-LS [This I-D] 1276 8 PCEP-LS [This I-D] 1277 9 Abstraction [This I-D] 1278 10 Unspecified [This I-D] 1280 Further, this document also requests that a new sub-registry, named 1281 "LS Object Flag Field", is created within the "Path Computation 1282 Element Protocol (PCEP) Numbers" registry to manage the Flag field of 1283 the LSP object.New values are to be assigned by Standards Action 1284 [RFC8126]. Each bit should be tracked with the following qualities: 1286 o Bit number (counting from bit 0 as the most significant bit) 1288 o Capability description 1290 o Defining RFC 1291 The following values are defined in this document: 1293 Bit Description Reference 1294 0-21 Unassigned 1295 22 R (Remove bit) [This I-D] 1296 23 S (Sync bit) [This I-D] 1298 13.4. PCEP-Error Object 1300 IANA is requested to make the following allocation in the "PCEP-ERROR 1301 Object Error Types and Values" registry. 1303 Error-Type Meaning Reference 1304 6 Mandatory Object missing [RFC5440] 1305 Error-Value=TBD4 [This I-D] 1306 (LS object missing) 1308 19 Invalid Operation [RFC8231] 1309 Error-Value=TBD1 [This I-D] 1310 (Attempted LS Report if LS 1311 remote capability was not 1312 advertised) 1314 TBD2 LS Synchronization Error [This I-D] 1315 Error-Value=1 1316 (An error in processing the 1317 LSRpt) 1318 Error-Value=2 1319 (An internal PCC error) 1321 13.5. PCEP TLV Type Indicators 1323 This document defines the following new PCEP TLVs. 1325 Value Meaning Reference 1326 TBD5 LS-CAPABILITY TLV [This I-D] 1327 TBD7 ROUTING-UNIVERSE TLV [This I-D] 1328 TBD15 ROUTE-DISTINGUISHER TLV [This I-D] 1329 TBD8 Local Node Descriptors TLV [This I-D] 1330 TBD9 Remote Node Descriptors TLV [This I-D] 1331 TBD10 Link Descriptors TLV [This I-D] 1332 TBD11 Prefix Descriptors TLV [This I-D] 1333 TBD12 Node Attributes TLV [This I-D] 1334 TBD13 Link Attributes TLV [This I-D] 1335 TBD14 Prefix Attributes TLV [This I-D] 1337 13.6. PCEP-LS Sub-TLV Type Indicators 1339 This document specifies the PCEP-LS Sub-TLVs. IANA is requested to 1340 create an "PCEP-LS Sub-TLV Types" sub-registry in the "PCEP TLV Type 1341 Indicators" for the sub-TLVs carried in the PCEP-LS TLV (Local and 1342 Remote Node Descriptors TLV, Link Descriptors TLV, Prefix Descriptors 1343 TLV, Node Attributes TLV, Link Attributes TLV and Prefix Attributes 1344 TLV. This document defines the following types: 1346 +-----------+---------------------+---------------+-----------------+ 1347 | Sub-TLV | Description | Ref | Value defined | 1348 | | | Sub-TLV | in: | 1349 +-----------+---------------------+---------------+-----------------+ 1350 | 1 | Autonomous System | 512 | [RFC7752] | 1351 | | | | /3.2.1.4 | 1352 | 2 | BGP-LS Identifier | 513 | [RFC7752] | 1353 | | | | /3.2.1.4 | 1354 | 3 | OSPF Area-ID | 514 | [RFC7752] | 1355 | | | | /3.2.1.4 | 1356 | 4 | Router-ID | 515 | [RFC7752] | 1357 | | | | /3.2.1.4 | 1358 | 5 | Multi-Topology-ID | 263 | [RFC7752] | 1359 | | | | /3.2.1.5 | 1360 | 6 | Link Local/Remote | 22/4 | [RFC5307]/1.1 | 1361 | | Identifiers | | | 1362 | 7 | IPv4 interface | 22/6 | [RFC5305]/3.2 | 1363 | | address | | | 1364 | 8 | IPv4 neighbor | 22/8 | [RFC5305]/3.3 | 1365 | | address | | | 1366 | 9 | IPv6 interface | 22/12 | [RFC6119]/4.2 | 1367 | | address | | | 1368 | 10 | IPv6 neighbor | 22/13 | [RFC6119]/4.3 | 1369 | | address | | | 1370 | 11 | OSPF Route Type | 264 | [RFC7752] | 1371 | | | | /3.2.3.1 | 1372 | 12 | IP Reachability | 265 | [RFC7752] | 1373 | | Information | | /3.2.3.2 | 1374 | 13 | Node Flag Bits | 1024 | [RFC7752] | 1375 | | | | /3.3.1.1 | 1376 | 14 | Opaque Node | 1025 | [RFC7752] | 1377 | | Properties | | /3.3.1.5 | 1378 | 15 | Node Name | 1026 | [RFC7752] | 1379 | | | | /3.3.1.3 | 1380 | 16 | IS-IS Area | 1027 | [RFC7752] | 1381 | | Identifier | | /3.3.1.2 | 1382 | 17 | IPv4 Router-ID of | 134/-- | [RFC5305]/4.3 | 1383 | | Local Node | | | 1384 | 18 | IPv6 Router-ID of | 140/-- | [RFC6119]/4.1 | 1385 | | Local Node | | | 1386 | 19 | IPv4 Router-ID of | 134/-- | [RFC5305]/4.3 | 1387 | | Remote Node | | | 1388 | 20 | IPv6 Router-ID of | 140/-- | [RFC6119]/4.1 | 1389 | | Remote Node | | | 1390 | 22 | Administrative | 22/3 | [RFC5305]/3.1 | 1391 | | group (color) | | | 1392 | 23 | Maximum link | 22/9 | [RFC5305]/3.3 | 1393 | | bandwidth | | | 1394 | 24 | Max. reservable | 22/10 | [RFC5305]/3.5 | 1395 | | link bandwidth | | | 1396 | 25 | Unreserved | 22/11 | [RFC5305]/3.6 | 1397 | | bandwidth | | | 1398 | 26 | TE Default Metric | 22/18 | [RFC7752] | 1399 | | | | /3.3.2.3 | 1400 | 27 | Link Protection | 22/20 | [RFC5307]/1.2 | 1401 | | Type | | | 1402 | 28 | MPLS Protocol Mask | 1094 | [RFC7752] | 1403 | | | | /3.3.2.2 | 1404 | 29 | IGP Metric | 1095 | [RFC7752] | 1405 | | | | /3.3.2.4 | 1406 | 30 | Shared Risk Link | 1096 | [RFC7752] | 1407 | | Group | | /3.3.2.5 | 1408 | 31 | Opaque link | 1097 | [RFC7752] | 1409 | | attributes | | /3.3.2.6 | 1410 | 32 | Link Name attribute | 1098 | [RFC7752] | 1411 | | | | /3.3.2.7 | 1412 | 33 | Unidirectional | 22/33 | [RFC7810]/4.1 | 1413 | | Link Delay | | | 1414 | 34 | Min/Max | 22/34 | [RFC7810]/4.2 | 1415 | | Unidirectional Link | | | 1416 | | Delay | | | 1417 | 35 | Unidirectional | 22/35 | [RFC7810]/4.3 | 1418 | | Delay Variation | | | 1419 | 36 | Unidirectional | 22/36 | [RFC7810]/4.4 | 1420 | | Link Loss | | | 1421 | 37 | Unidirectional | 22/37 | [RFC7810]/4.5 | 1422 | | Residual Bandwidth | | | 1423 | 38 | Unidirectional | 22/38 | [RFC7810]/4.6 | 1424 | | Available Bandwidth | | | 1425 | 39 | Unidirectional | 22/39 | [RFC7810]/4.7 | 1426 | | Bandwidth | | | 1427 | | Utilization | | | 1428 | 40 | Extended Admin | 22/14 | [RFC7308]/2.1 | 1429 | | Group (EAG) | | | 1430 | 41 | IGP Flags | 1152 | [RFC7752] | 1431 | | | | /3.3.3.1 | 1432 | 42 | Route Tag | 1153 | [RFC7752] | 1433 | | | | /3.3.3.2 | 1434 | 43 | Extended Tag | 1154 | [RFC7752] | 1435 | | | | /3.3.3.3 | 1436 | 44 | Prefix Metric | 1155 | [RFC7752] | 1437 | | | | /3.3.3.4 | 1438 | 45 | OSPF Forwarding | 1156 | [RFC7752] | 1439 | | Address | | /3.3.3.5 | 1440 | 46 | Opaque Prefix | 1157 | [RFC7752] | 1441 | | Attribute | | /3.3.3.6 | 1442 +-----------+---------------------+---------------+-----------------+ 1444 New values are to be assigned by Standards Action [RFC8126]. 1446 14. TLV Code Points Summary 1448 This section contains the global table of all TLVs in LS object 1449 defined in this document. 1451 +-----------+---------------------+---------------+-----------------+ 1452 | TLV | Description | Ref TLV | Value defined | 1453 | | | | in: | 1454 +-----------+---------------------+---------------+-----------------+ 1455 | TBD7 | Routing Universe | -- | Sec 9.2.1 | 1456 | TBD15 | Route | -- | Sec 9.2.2 | 1457 | | Distinguisher | | | 1458 | * | Virtual Network | -- | [leedhody-pce- | 1459 | | | | vn-association] | 1460 | TBD8 | Local Node | 256 | [RFC7752] | 1461 | | Descriptors | | /3.2.1.2 | 1462 | TBD9 | Remote Node | 257 | [RFC7752] | 1463 | | Descriptors | | /3.2.1.3 | 1464 | TBD10 | Link Descriptors | -- | Sec 9.2.8 | 1465 | TBD11 | Prefix Descriptors | -- | Sec 9.2.9 | 1466 | TBD12 | Node Attributes | -- | Sec 9.2.10.1 | 1467 | TBD13 | Link Attributes | -- | Sec 9.2.10.2 | 1468 | TBD14 | Prefix Attributes | -- | Sec 9.2.10.3 | 1469 +-----------+---------------------+---------------+-----------------+ 1471 * this TLV is defined in a different PCEP document 1473 TLV Table 1475 Refer Section 13.6 for the table of Sub-TLVs. 1477 15. Implementation Status 1479 The PCEP-LS protocol extension as described in this I-D were 1480 implemented and tested for a variety of applications. Apart from the 1481 below implementation, there exist other experimental implementations 1482 done for optical networks. 1484 15.1. Hierarchical Transport PCE controllers 1486 The PCEP-LS has been implemented as part of IETF97 Hackathon and 1487 Bits-N-Bites demonstration. The use-case demonstrated was DCI use- 1488 case of ACTN architecture in which to show the following scenarios: 1490 - connectivity services on the ACTN based recursive hierarchical 1491 SDN/PCE platform that has the three tier level SDN controllers 1492 (two-tier level MDSC and PNC) on the top of the PTN systems 1493 managed by EMS. 1495 - Integration test of two tier-level MDSC: The SBI of the low 1496 level MDSC is the YANG based Korean national standards and the one 1497 of the high level MDSC the PCEP-LS based ACTN protocols. 1499 - Performance test of three types of SDN controller based recovery 1500 schemes including protection, reactive and proactive restoration. 1501 PCEP-LS protocol was used to demonstrate quick report of failed 1502 network components. 1504 15.2. ONOS-based Controller (MDSC and PNC) 1506 Huawei (PNC, MDSC) and SKT (MDSC) implemented PCEP-LS during 1507 Hackathon and IETF97 Bits-N-Bites demonstration. The demonstration 1508 was ONOS-based ACTN architecture in which to show the following 1509 capabilities: 1511 Both packet PNC and optical PNC (with optical PCEP-LS extension) 1512 implemented PCEP-LS on its SBI and well as its NBI (towards MDSC). 1514 SKT orchestrator (acting as MDSC) also supported PCEP-LS (as well 1515 as RestConf) towards packet and optical PNCs on its SBI. 1517 Further description can be found at and the code at 1518 . 1520 16. Acknowledgments 1522 This document borrows some of the structure and text from the 1523 [RFC7752]. 1525 Thanks to Eric Wu, Venugopal Kondreddy, Mahendra Singh Negi, 1526 Avantika, and Zhengbin Li for the reviews. 1528 Thanks to Ramon Casellas for his comments and suggestions based on 1529 his implementation experience. 1531 17. References 1533 17.1. Normative References 1535 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1536 Requirement Levels", BCP 14, RFC 2119, 1537 DOI 10.17487/RFC2119, March 1997, 1538 . 1540 [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic 1541 Engineering", RFC 5305, DOI 10.17487/RFC5305, October 1542 2008, . 1544 [RFC5307] Kompella, K., Ed. and Y. Rekhter, Ed., "IS-IS Extensions 1545 in Support of Generalized Multi-Protocol Label Switching 1546 (GMPLS)", RFC 5307, DOI 10.17487/RFC5307, October 2008, 1547 . 1549 [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation 1550 Element (PCE) Communication Protocol (PCEP)", RFC 5440, 1551 DOI 10.17487/RFC5440, March 2009, 1552 . 1554 [RFC6119] Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic 1555 Engineering in IS-IS", RFC 6119, DOI 10.17487/RFC6119, 1556 February 2011, . 1558 [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and 1559 S. Ray, "North-Bound Distribution of Link-State and 1560 Traffic Engineering (TE) Information Using BGP", RFC 7752, 1561 DOI 10.17487/RFC7752, March 2016, 1562 . 1564 [RFC7810] Previdi, S., Ed., Giacalone, S., Ward, D., Drake, J., and 1565 Q. Wu, "IS-IS Traffic Engineering (TE) Metric Extensions", 1566 RFC 7810, DOI 10.17487/RFC7810, May 2016, 1567 . 1569 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 1570 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 1571 May 2017, . 1573 17.2. Informative References 1575 [RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering 1576 (TE) Extensions to OSPF Version 2", RFC 3630, 1577 DOI 10.17487/RFC3630, September 2003, 1578 . 1580 [RFC4203] Kompella, K., Ed. and Y. Rekhter, Ed., "OSPF Extensions in 1581 Support of Generalized Multi-Protocol Label Switching 1582 (GMPLS)", RFC 4203, DOI 10.17487/RFC4203, October 2005, 1583 . 1585 [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private 1586 Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February 1587 2006, . 1589 [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation 1590 Element (PCE)-Based Architecture", RFC 4655, 1591 DOI 10.17487/RFC4655, August 2006, 1592 . 1594 [RFC5316] Chen, M., Zhang, R., and X. Duan, "ISIS Extensions in 1595 Support of Inter-Autonomous System (AS) MPLS and GMPLS 1596 Traffic Engineering", RFC 5316, DOI 10.17487/RFC5316, 1597 December 2008, . 1599 [RFC5392] Chen, M., Zhang, R., and X. Duan, "OSPF Extensions in 1600 Support of Inter-Autonomous System (AS) MPLS and GMPLS 1601 Traffic Engineering", RFC 5392, DOI 10.17487/RFC5392, 1602 January 2009, . 1604 [RFC5925] Touch, J., Mankin, A., and R. Bonica, "The TCP 1605 Authentication Option", RFC 5925, DOI 10.17487/RFC5925, 1606 June 2010, . 1608 [RFC6549] Lindem, A., Roy, A., and S. Mirtorabi, "OSPFv2 Multi- 1609 Instance Extensions", RFC 6549, DOI 10.17487/RFC6549, 1610 March 2012, . 1612 [RFC6805] King, D., Ed. and A. Farrel, Ed., "The Application of the 1613 Path Computation Element Architecture to the Determination 1614 of a Sequence of Domains in MPLS and GMPLS", RFC 6805, 1615 DOI 10.17487/RFC6805, November 2012, 1616 . 1618 [RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of 1619 BGP, LDP, PCEP, and MSDP Issues According to the Keying 1620 and Authentication for Routing Protocols (KARP) Design 1621 Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013, 1622 . 1624 [RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, 1625 "Recommendations for Secure Use of Transport Layer 1626 Security (TLS) and Datagram Transport Layer Security 1627 (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May 1628 2015, . 1630 [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for 1631 Writing an IANA Considerations Section in RFCs", BCP 26, 1632 RFC 8126, DOI 10.17487/RFC8126, June 2017, 1633 . 1635 [RFC8202] Ginsberg, L., Previdi, S., and W. Henderickx, "IS-IS 1636 Multi-Instance", RFC 8202, DOI 10.17487/RFC8202, June 1637 2017, . 1639 [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path 1640 Computation Element Communication Protocol (PCEP) 1641 Extensions for Stateful PCE", RFC 8231, 1642 DOI 10.17487/RFC8231, September 2017, 1643 . 1645 [RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody, 1646 "PCEPS: Usage of TLS to Provide a Secure Transport for the 1647 Path Computation Element Communication Protocol (PCEP)", 1648 RFC 8253, DOI 10.17487/RFC8253, October 2017, 1649 . 1651 [RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path 1652 Computation Element Communication Protocol (PCEP) 1653 Extensions for PCE-Initiated LSP Setup in a Stateful PCE 1654 Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, 1655 . 1657 [RFC8283] Farrel, A., Ed., Zhao, Q., Ed., Li, Z., and C. Zhou, "An 1658 Architecture for Use of PCE and the PCE Communication 1659 Protocol (PCEP) in a Network with Central Control", 1660 RFC 8283, DOI 10.17487/RFC8283, December 2017, 1661 . 1663 [RFC8453] Ceccarelli, D., Ed. and Y. Lee, Ed., "Framework for 1664 Abstraction and Control of TE Networks (ACTN)", RFC 8453, 1665 DOI 10.17487/RFC8453, August 2018, 1666 . 1668 [I-D.ietf-pce-pcep-yang] 1669 Dhody, D., Hardwick, J., Beeram, V., and J. Tantsura, "A 1670 YANG Data Model for Path Computation Element 1671 Communications Protocol (PCEP)", draft-ietf-pce-pcep- 1672 yang-09 (work in progress), October 2018. 1674 [I-D.ietf-pce-applicability-actn] 1675 Dhody, D., Lee, Y., and D. Ceccarelli, "Applicability of 1676 Path Computation Element (PCE) for Abstraction and Control 1677 of TE Networks (ACTN)", draft-ietf-pce-applicability- 1678 actn-08 (work in progress), December 2018. 1680 [I-D.ietf-teas-actn-requirements] 1681 Lee, Y., Ceccarelli, D., Miyasaka, T., Shin, J., and K. 1682 Lee, "Requirements for Abstraction and Control of TE 1683 Networks", draft-ietf-teas-actn-requirements-09 (work in 1684 progress), March 2018. 1686 [I-D.ietf-pce-pcep-flowspec] 1687 Dhody, D., Farrel, A., and Z. Li, "PCEP Extension for Flow 1688 Specification", draft-ietf-pce-pcep-flowspec-02 (work in 1689 progress), October 2018. 1691 [I-D.kondreddy-pce-pcep-ls-sync-optimizations] 1692 Kondreddy, V. and M. Negi, "Optimizations of PCEP Link- 1693 State(LS) Synchronization Procedures", draft-kondreddy- 1694 pce-pcep-ls-sync-optimizations-00 (work in progress), 1695 October 2015. 1697 [I-D.leedhody-pce-vn-association] 1698 Lee, Y., Zhang, X., and D. Ceccarelli, "PCEP Extensions 1699 for Establishing Relationships Between Sets of LSPs and 1700 Virtual Networks", draft-leedhody-pce-vn-association-07 1701 (work in progress), February 2019. 1703 [ONOS-PCEP] 1704 "Support for PCEP in ONOS", 1705 . 1707 [ONOS-PCEP-GITHUB] 1708 "Github for PCEP code in ONOS", 1709 . 1712 Appendix A. Reusing BGP-LS codepoints 1714 This document creates a new registry for the PCEP-LS sub-TLVs 1715 (Section 13.6) and define new sub-TLV codepoints. Another approach 1716 could be to use the BGP-LS registry which is already defined for use 1717 in BGP. This is possible because the "BGP-LS Node Descriptor, Link 1718 Descriptor, Prefix Descriptor, and Attribute TLVs" registry marks 1719 0-255 as reserved. Thus the space of the sub-TLV values for the Type 1720 field can be partitioned as shown below - 1722 Range | 1723 ---------------+--------------------------------------------- 1724 0 | Reserved - must not be allocated. 1725 | 1726 1 .. 255 | New PCEP sub-TLV allocated according to the 1727 | registry defined in this document. 1728 | 1729 256 .. 65535 | Per BGP registry defined by [RFC7752]. 1730 | Not to be allocated in this registry. 1732 [Editor's Note - If this approach is agreed by the WG, the document 1733 would be updated with new sub-TLV type values.] 1735 Appendix B. Relevant OSPF TLV and sub-TLV 1737 This section list the relevant TLVs and sub-TLVs defined for OSPF. 1739 +-----------+---------------------+---------------+-----------------+ 1740 | Sub-TLV | Description | OSPF-TE | Value defined | 1741 | | | Sub-TLV | in: | 1742 +-----------+---------------------+---------------+-----------------+ 1743 | 6 | Link Local/Remote | 11 | [RFC4203]/1.1 | 1744 | | Identifiers | | | 1745 | 7 | IPv4 interface | 3 | [RFC3630]/2.5.3 | 1746 | | address | | | 1747 | 8 | IPv4 neighbor | 4 | [RFC3630]/2.5.4 | 1748 | | address | | | 1749 | 9 | IPv6 interface | 19 | [RFC5329]/4.3 | 1750 | | address | | | 1751 | 10 | IPv6 neighbor | 20 | [RFC5329]/4.4 | 1752 | | address | | | 1753 | 17 | IPv4 Router-ID of | 1 | [RFC3630]/2.4.1 | 1754 | | Local Node | | | 1755 | 18 | IPv6 Router-ID of | 3 | [RFC5329]/3 | 1756 | | Local Node | | | 1757 | 19 | IPv4 Router-ID of | 1 | [RFC3630]/2.4.1 | 1758 | | Remote Node | | | 1759 | 20 | IPv6 Router-ID of | 3 | [RFC5329]/3 | 1760 | | Remote Node | | | 1761 | 22 | Administrative | 9 | [RFC3630]/2.5.9 | 1762 | | group (color) | | | 1763 | 23 | Maximum link | 6 | [RFC3630]/2.5.6 | 1764 | | bandwidth | | | 1765 | 24 | Max. reservable | 7 | [RFC3630]/2.5.7 | 1766 | | link bandwidth | | | 1767 | 25 | Unreserved | 8 | [RFC3630]/2.5.8 | 1768 | | bandwidth | | | 1769 | 27 | Link Protection | 14 | [RFC4203]/1.2 | 1770 | | Type | | | 1771 | 30 | Shared Risk Link | 16 | [RFC4203]/1.3 | 1772 | | Group | | | 1773 | 33 | Unidirectional | 27 | [RFC7471]/4.1 | 1774 | | Link Delay | | | 1775 | 34 | Min/Max | 28 | [RFC7471]/4.2 | 1776 | | Unidirectional Link | | | 1777 | | Delay | | | 1778 | 35 | Unidirectional | 29 | [RFC7471]/4.3 | 1779 | | Delay Variation | | | 1780 | 36 | Unidirectional | 30 | [RFC7471]/4.4 | 1781 | | Link Loss | | | 1782 | 37 | Unidirectional | 31 | [RFC7471]/4.5 | 1783 | | Residual Bandwidth | | | 1784 | 38 | Unidirectional | 32 | [RFC7471]/4.6 | 1785 | | Available Bandwidth | | | 1786 | 39 | Unidirectional | 33 | [RFC7471]/4.7 | 1787 | | Bandwidth | | | 1788 | | Utilization | | | 1789 | 40 | Extended Admin | 26 | [RFC7308]/2.1 | 1790 | | Group (EAG) | | | 1791 +-----------+---------------------+---------------+-----------------+ 1793 Appendix C. Examples 1795 These examples are for illustration purposes only to show how the new 1796 PCEP-LS message could be encoded. They are not meant to be an 1797 exhaustive list of all possible use cases and combinations. 1799 C.1. All Nodes 1801 Each node (PCC) in the network chooses to provide its own local node 1802 and link information, and in this way PCE can build the full link 1803 state and TE information. 1805 +--------------------+ +--------------------+ 1806 | | | | 1807 | RTA |10.1.1.1 | RTB | 1808 | 1.1.1.1 |--------------------| 2.2.2.2 | 1809 | Area 0 | 10.1.1.2| Area 0 | 1810 | | | | 1811 +--------------------+ +--------------------+ 1812 RTA 1813 --- 1814 LS Node 1815 TLV - Local Node Descriptors 1816 Sub-TLV - 3: OSPF Area-ID: 0.0.0.0 1817 Sub-TLV - 4: Router-ID: 1.1.1.1 1818 TLV - Node Attributes TLV 1819 Sub-TLV(s) 1821 LS Link 1822 TLV - Local Node Descriptors 1823 Sub-TLV - 3: OSPF Area-ID: 0.0.0.0 1824 Sub-TLV - 4: Router-ID: 1.1.1.1 1825 TLV - Remote Node Descriptors 1826 Sub-TLV - 3: OSPF Area-ID: 0.0.0.0 1827 Sub-TLV - 4: Router-ID: 2.2.2.2 1828 TLV - Link Descriptors 1829 Sub-TLV - 7: IPv4 interface: 10.1.1.1 1830 Sub-TLV - 8: IPv4 neighbor: 10.1.1.2 1831 TLV - Link Attributes TLV 1832 Sub-TLV(s) 1834 RTB 1835 --- 1836 LS Node 1837 TLV - Local Node Descriptors 1838 Sub-TLV - 3: OSPF Area-ID: 0.0.0.0 1839 Sub-TLV - 4: Router-ID: 2.2.2.2 1840 TLV - Node Attributes TLV 1841 Sub-TLV(s) 1843 LS Link 1844 TLV - Local Node Descriptors 1845 Sub-TLV - 3: OSPF Area-ID: 0.0.0.0 1846 Sub-TLV - 4: Router-ID: 2.2.2.2 1847 TLV - Remote Node Descriptors 1848 Sub-TLV - 3: OSPF Area-ID: 0.0.0.0 1849 Sub-TLV - 4: Router-ID: 1.1.1.1 1850 TLV - Link Descriptors 1851 Sub-TLV - 7: IPv4 interface: 10.1.1.2 1852 Sub-TLV - 8: IPv4 neighbor: 10.1.1.1 1853 TLV - Link Attributes TLV 1854 Sub-TLV(s) 1856 C.2. Designated Node 1858 A designated node(s) in the network will provide its own local node 1859 as well as all learned remote information, and in this way PCE can 1860 build the full link state and TE information. 1862 As described in Appendix C.1, the same LS Node and Link objects will 1863 be generated with a difference that it would be a designated router 1864 say RTA that generate all this information. 1866 C.3. Between PCEs 1868 As per Hierarchical-PCE [RFC6805], Parent PCE builds an abstract 1869 domain topology map with each domain as an abstract node and inter- 1870 domain links as an abstract link. Each child PCE may provide this 1871 information to the parent PCE. Considering the example in figure 1 1872 of [RFC6805], following LS object will be generated: 1874 PCE1 1875 ---- 1876 LS Node 1877 TLV - Local Node Descriptors 1878 Sub-TLV - 1: Autonomous System: 100 (Domain 1) 1879 Sub-TLV - 4: Router-ID: 11.11.11.11 (abstract) 1881 LS Link 1882 TLV - Local Node Descriptors 1883 Sub-TLV - 1: Autonomous System: 100 1884 Sub-TLV - 4: Router-ID: 11.11.11.11 (abstract) 1885 TLV - Remote Node Descriptors 1886 Sub-TLV - 1: Autonomous System: 200 (Domain 2) 1887 Sub-TLV - 4: Router-ID: 22.22.22.22 (abstract) 1888 TLV - Link Descriptors 1889 Sub-TLV - 7: IPv4 interface: 11.1.1.1 1890 Sub-TLV - 8: IPv4 neighbor: 11.1.1.2 1891 TLV - Link Attributes TLV 1892 Sub-TLV(s) 1894 LS Link 1895 TLV - Local Node Descriptors 1896 Sub-TLV - 1: Autonomous System: 100 1897 Sub-TLV - 4: Router-ID: 11.11.11.11 (abstract) 1898 TLV - Remote Node Descriptors 1899 Sub-TLV - 1: Autonomous System: 200 1900 Sub-TLV - 4: Router-ID: 22.22.22.22 (abstract) 1901 TLV - Link Descriptors 1902 Sub-TLV - 7: IPv4 interface: 12.1.1.1 1903 Sub-TLV - 8: IPv4 neighbor: 12.1.1.2 1904 TLV - Link Attributes TLV 1905 Sub-TLV(s) 1907 LS Link 1908 TLV - Local Node Descriptors 1909 Sub-TLV - 1: Autonomous System: 100 1910 Sub-TLV - 4: Router-ID: 11.11.11.11 (abstract) 1911 TLV - Remote Node Descriptors 1912 Sub-TLV - 1: Autonomous System: 400 (Domain 4) 1913 Sub-TLV - 4: Router-ID: 44.44.44.44 (abstract) 1914 TLV - Link Descriptors 1915 Sub-TLV - 7: IPv4 interface: 13.1.1.1 1916 Sub-TLV - 8: IPv4 neighbor: 13.1.1.2 1917 TLV - Link Attributes TLV 1918 Sub-TLV(s) 1920 * similar information will be generated by other PCE 1921 to help form the abstract domain topology. 1923 Further the exact border nodes and abstract internal path between the 1924 border nodes may also be transported to the Parent PCE to enable ACTN 1925 as described in [I-D.ietf-pce-applicability-actn] using the similar 1926 LS node and link objects encodings. 1928 Appendix D. Contributor Addresses 1930 Udayasree Palle 1931 Huawei Technologies 1932 Divyashree Techno Park, Whitefield 1933 Bangalore, Karnataka 560066 1934 India 1936 EMail: udayasreereddy@gmail.com 1938 Sergio Belotti 1939 Alcatel-Lucent 1940 Italy 1942 EMail: sergio.belotti@alcatel-lucent.com 1944 Satish Karunanithi 1945 Huawei Technologies 1946 Divyashree Techno Park, Whitefield 1947 Bangalore, Karnataka 560066 1948 India 1950 Email: satishk@huawei.com 1952 Cheng Li 1953 Huawei Technologies 1954 Huawei Campus, No. 156 Beiqing Rd. 1955 Beijing 100095 1956 China 1958 Email: chengli13@huawei.com 1960 Authors' Addresses 1962 Dhruv Dhody 1963 Huawei Technologies 1964 Divyashree Techno Park, Whitefield 1965 Bangalore, Karnataka 560066 1966 India 1968 EMail: dhruv.ietf@gmail.com 1969 Young Lee 1970 Huawei Technologies 1971 5340 Legacy Drive, Building 3 1972 Plano, TX 75023 1973 USA 1975 EMail: leeyoung@huawei.com 1977 Daniele Ceccarelli 1978 Ericsson 1979 Torshamnsgatan,48 1980 Stockholm 1981 Sweden 1983 EMail: daniele.ceccarelli@ericsson.com