PCE Working Group Q. Zhao Internet-Draft Z. Li Intended status: Standards Track D. Dhody Expires: September 5, 2018 S. Karunanithi Huawei Technologies A. Farrel Juniper Networks, Inc C. Zhou Cisco Systems March 4, 2018 PCEP Procedures and Protocol Extensions for Using PCE as a Central Controller (PCECC) of LSPs draft-zhao-pce-pcep-extension-for-pce-controller-07 Abstract In certain networks deployment scenarios, service providers would like to keep all the existing MPLS functionalities in both MPLS and GMPLS while removing the complexity of existing signaling protocols such as LDP and RSVP-TE. PCE has been proposed to be used as a central controller (PCECC) so that LSP can be calculated/setup/ initiated and label forwarding entries are downloaded through a centralized PCE server to each network devices along the path while leveraging the existing PCE technologies as much as possible. This draft specify the procedures and PCEP protocol extensions for using the PCE as the central controller, where LSPs are calculated/setup/initiated and label forwarding entries are downloaded through extending PCEP. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on September 5, 2018. Zhao, et al. Expires September 5, 2018 [Page 1] Internet-Draft PCECC March 2018 Copyright Notice Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Basic PCECC Mode . . . . . . . . . . . . . . . . . . . . . . 5 4. PCEP Requirements . . . . . . . . . . . . . . . . . . . . . . 5 5. Procedures for Using the PCE as the Central Controller (PCECC) . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 5.1. Stateful PCE Model . . . . . . . . . . . . . . . . . . . 6 5.2. New LSP Functions . . . . . . . . . . . . . . . . . . . . 6 5.3. PCECC Capability Advertisement . . . . . . . . . . . . . 7 5.4. LSP Operations . . . . . . . . . . . . . . . . . . . . . 8 5.4.1. Basic PCECC LSP Setup . . . . . . . . . . . . . . . . 8 5.4.2. Label Operations . . . . . . . . . . . . . . . . . . 9 5.4.2.1. Label Download . . . . . . . . . . . . . . . . . 10 5.4.2.2. Label Cleanup . . . . . . . . . . . . . . . . . . 10 5.4.3. PCE Initiated PCECC LSP . . . . . . . . . . . . . . . 11 5.4.4. PCECC LSP Update . . . . . . . . . . . . . . . . . . 12 5.4.5. Session Termination . . . . . . . . . . . . . . . . . 13 5.4.6. LABEL-DB Synchronization . . . . . . . . . . . . . . 14 5.4.6.1. LABEL-DB Synchronization procedure . . . . . . . 14 5.4.7. PCECC LSP State Report . . . . . . . . . . . . . . . 17 6. PCEP messages . . . . . . . . . . . . . . . . . . . . . . . . 17 6.1. Label Operations . . . . . . . . . . . . . . . . . . . . 17 6.1.1. The PCLabelUpd message . . . . . . . . . . . . . . . 17 6.1.2. The PCLabelRpt message . . . . . . . . . . . . . . . 18 6.1.3. The PCInitiate message . . . . . . . . . . . . . . . 20 7. PCEP Objects . . . . . . . . . . . . . . . . . . . . . . . . 20 7.1. OPEN Object . . . . . . . . . . . . . . . . . . . . . . . 20 7.1.1. PCECC Capability sub-TLV . . . . . . . . . . . . . . 20 7.2. PATH-SETUP-TYPE TLV . . . . . . . . . . . . . . . . . . . 21 7.3. Label Object . . . . . . . . . . . . . . . . . . . . . . 21 Zhao, et al. Expires September 5, 2018 [Page 2] Internet-Draft PCECC March 2018 7.3.1. Address TLVs . . . . . . . . . . . . . . . . . . . . 22 7.4. Extension of SRP object . . . . . . . . . . . . . . . . . 23 8. Security Considerations . . . . . . . . . . . . . . . . . . . 23 8.1. Malicious PCE . . . . . . . . . . . . . . . . . . . . . . 23 9. Manageability Considerations . . . . . . . . . . . . . . . . 24 9.1. Control of Function and Policy . . . . . . . . . . . . . 24 9.2. Information and Data Models . . . . . . . . . . . . . . . 24 9.3. Liveness Detection and Monitoring . . . . . . . . . . . . 24 9.4. Verify Correct Operations . . . . . . . . . . . . . . . . 24 9.5. Requirements On Other Protocols . . . . . . . . . . . . . 24 9.6. Impact On Network Operations . . . . . . . . . . . . . . 24 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 10.1. PCLabelUpd-PCLabelRpt message . . . . . . . . . . . . . 25 10.2. PCEP TLV Type Indicators . . . . . . . . . . . . . . . . 25 10.3. New Path Setup Type Registry . . . . . . . . . . . . . . 25 10.4. PCEP Object . . . . . . . . . . . . . . . . . . . . . . 25 10.5. LABEL Object Flag Field . . . . . . . . . . . . . . . . 25 10.6. SRP Object Flag Field . . . . . . . . . . . . . . . . . 26 10.7. PCEP-Error Object . . . . . . . . . . . . . . . . . . . 26 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 27 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 27 12.1. Normative References . . . . . . . . . . . . . . . . . . 27 12.2. Informative References . . . . . . . . . . . . . . . . . 28 Appendix A. Using existing PCEP message . . . . . . . . . . . . 30 Appendix B. Contributor Addresses . . . . . . . . . . . . . . . 31 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 32 1. Introduction In certain network deployment scenarios, service providers would like to have the ability to dynamically adapt to a wide range of customer's requests for the sake of flexible network service delivery, Software-Defined Networks (SDN) has provides additional flexibility in how the network is operated compared to the traditional network. The existing networking ecosystem has become awfully complex and highly demanding in terms of robustness, performance, scalability, flexibility, agility, etc. By migrating to the SDN enabled network from the existing network, service providers and network operators must have a solution which they can evolve easily from the existing network into the SDN enabled network while keeping the network services remain scalable, guarantee robustness and availability etc. Taking the smooth transition between traditional network and the new SDN enabled network into account, especially from a cost impact assessment perspective, using the existing PCE components from the current network to function as the central controller of the SDN Zhao, et al. Expires September 5, 2018 [Page 3] Internet-Draft PCECC March 2018 network is one choice, which not only achieves the goal of having a centralized controller, but also leverage the existing PCE network components. The Path Computation Element communication Protocol (PCEP) provides mechanisms for Path Computation Elements (PCEs) to perform route computations in response to Path Computation Clients (PCCs) requests. PCEP Extensions for PCE-initiated LSP Setup in a Stateful PCE Model [RFC8231] describes a set of extensions to PCEP to enable active control of MPLS-TE and GMPLS tunnels. [RFC8281] describes the setup and tear down of PCE-initiated LSPs under the active stateful PCE model, without the need for local configuration on the PCC, thus allowing for a dynamic MPLS network that is centrally controlled and deployed. [RFC8283] introduces the architecture for PCE as a central controller, examines the motivations and applicability for PCEP as a Southbound Interface (SBI), and introduces the implications for the protocol. [I-D.ietf-teas-pcecc-use-cases] describes the use cases for the PCECC architecture. This draft specify the procedures and PCEP protocol extensions for using the PCE as the central controller and user cases where LSPs are calculated/setup/initiated/downloaded through extending the existing PCE architectures and PCEP. The extension for PCECC in Segment Routing (SR) is specified in a seperate draft [I-D.zhao-pce-pcep-extension-pce-controller-sr]. [Important Note - Note that this document achieves this by defining a new PCEP message. The authors and WG also debated on the use of existing PCEP messages. Section 5 defines the first approach where as Appendix A defines the latter. The authors are open to either of the approach and will follow the direction of the WG.] 1.1. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. Zhao, et al. Expires September 5, 2018 [Page 4] Internet-Draft PCECC March 2018 2. Terminology Terminologies used in this document is same as described in the draft [RFC8283] and [I-D.ietf-teas-pcecc-use-cases]. 3. Basic PCECC Mode In this mode LSPs are provisioned as explicit label instructions at each hop on the end-to-end path. Each router along the path must be told what label forwarding instructions to program and what resources to reserve. The controller uses PCEP to communicate with each router along the path of the end-to-end LSP. Note that the PCE-based controller will take responsibility for managing some part of the MPLS label space for each of the routers that it controls, and may taker wider responsibility for partitioning the label space for each router and allocating different parts for different uses. This is also described in section 3.1.2. of [RFC8283]. For the purpose of this document, it is assumed that label range to be used by a PCE is known and set on both PCEP peers. A future extension MAY add capability to advertise the range via possible PCEP extensions as well. The rest of processing is similar to the existing stateful PCE mechanism. 4. PCEP Requirements Following key requirements associated PCECC should be considered when designing the PCECC based solution: 1. PCEP speaker supporting this draft MUST have the capability to advertise its PCECC capability to its peers. 2. PCEP speaker not supporting this draft MUST be able to reject PCECC related extentions with a reason code that indicates no support for PCECC. 3. PCEP SHOULD provide a means to identify PCECC based LSP in the PCEP messages. 4. PCEP SHOULD provide a means to update (or cleanup) the label- download entry to the PCC. 5. PCEP SHOULD provide a means to synchronize the labels between PCE to PCC in PCEP messages. Zhao, et al. Expires September 5, 2018 [Page 5] Internet-Draft PCECC March 2018 5. Procedures for Using the PCE as the Central Controller (PCECC) 5.1. Stateful PCE Model Active stateful PCE is described in [RFC8231]. PCE as a central controller (PCECC) reuses existing Active stateful PCE mechanism as much as possible to control the LSP. 5.2. New LSP Functions This document defines the following new PCEP messages and extends the existing messages to support PCECC: (PCRpt): a PCEP message described in [RFC8231]. PCRpt message is used to send PCECC LSP Reports. (PCInitiate): a PCEP message described in [RFC8281]. PCInitiate message is used to setup PCE-Initiated LSP based on PCECC mechanism. (PCUpd): a PCEP message described in [RFC8231]. PCUpd message is used to send PCECC LSP Update. (PCLabelUpd): a new PCEP message sent by a PCE to a PCC to download or cleanup the Label entry. The PCLabelUpd message described in Section 6.1.1. (PCLabelRpt): a new PCEP message sent by a PCC to a PCE to report the set of labels for which explicit action is required from PCE to update or cleanup or do nothing for these Label entries. The PCLabelRpt message described in Section 6.1.2. [Editor's Note: This document defines new messages PCLabelUpd and PCLabelRpt. The authors and WG also debated on the use of existing PCEP messages. See Appendix A on how the existing messages can be extended to add this functionality. WG needs to decide the final direction i.e. new specific messages are needed or existing PCEP messages can be extended.] The new LSP functions defined in this document are mapped onto the messages as shown in the following table. Zhao, et al. Expires September 5, 2018 [Page 6] Internet-Draft PCECC March 2018 +----------------------------------------+--------------------------+ | Function | Message | +----------------------------------------+--------------------------+ | PCECC Capability advertisement | Open | | Label entry Update | PCLabelUpd | | | (or PCInitiate) | | Label entry Cleanup | PCLabelUpd | | | (or PCInitiate) | | PCECC Initiated LSP | PCInitiate | | PCECC LSP Update | PCUpd | | PCECC LSP State Report | PCRpt | | PCECC LSP Delegation | PCRpt | | PCECC Label Report | PCLabelRpt | | | (or PCRpt) | +----------------------------------------+--------------------------+ 5.3. PCECC Capability Advertisement During PCEP Initialization Phase, PCEP Speakers (PCE or PCC) advertise their support of PCECC extensions. This document defines a new Path Setup Type (PST) [I-D.ietf-pce-lsp-setup-type] for PCECC, as follows: o PST = TBD: Path is setup via PCECC mode. A PCEP speaker SHOULD indicate its support of the function described in this document by sending a PATH-SETUP-TYPE-CAPABILITY TLV in the OPEN object with this new PST included in the PST list. This document also defines the PCECC Capability sub-TLV Section 7.1.1. PCEP speakers use this sub-TLV to exchange information about their PCECC capability. If a PCEP speaker includes PST=TBD in the PST List of the PATH-SETUP-TYPE-CAPABILITY TLV then it MUST also include the PCECC Capability sub-TLV inside the PATH-SETUP- TYPE-CAPABILITY TLV. The presence of the PST and PCECC Capability sub-TLV in PCC's OPEN Object indicates that the PCC is willing to function as a PCECC client. The presence of the PST and PCECC Capability sub-TLV in PCE's OPEN message indicates that the PCE is interested in function as a PCECC server. The PCEP protocol extensions for PCECC MUST NOT be used if one or both PCEP Speakers have not included the PST or the PCECC Capability Zhao, et al. Expires September 5, 2018 [Page 7] Internet-Draft PCECC March 2018 sub-TLV in their respective OPEN message. If the PCEP Speakers support the extensions of this draft but did not advertise this capability then a PCErr message with Error-Type=19(Invalid Operation) and Error-Value=TBD (Attempted LSP setup/download/label-range reservation if PCECC capability was not advertised) will be generated and the PCEP session will be terminated. A PCC or a PCE MUST include both PCECC-CAPABILITY sub-TLV and STATEFUL-PCE-CAPABILITY TLV ([RFC8231]) in OPEN Object to support the extensions defined in this document. If PCECC-CAPABILITY sub-TLV is advertised and STATEFUL-PCE-CAPABILITY TLV is not advertised in OPEN Object, it SHOULD send a PCErr message with Error-Type=19 (Invalid Operation) and Error-value=TBD (stateful PCE capability was not advertised) and terminate the session. 5.4. LSP Operations The PCEP messages pertaining to PCECC MUST include PATH-SETUP-TYPE TLV [I-D.ietf-pce-lsp-setup-type] in the SRP object to clearly identify the PCECC LSP is intended. 5.4.1. Basic PCECC LSP Setup In order to setup a LSP based on PCECC mechanism, a PCC MUST delegate the LSP by sending a PCRpt message with PST set for PCECC (see Section 7.2) and D (Delegate) flag (see [RFC8231]) set in the LSP object. LSP-IDENTIFIER TLV MUST be included for PCECC LSP, the LSP-ID MAY be generated by the PCE for PCECC LSP, in that case the first PCRpt message of PCECC LSP, LSP-ID of LSP-IDENTIFIER TLV is set to zero. The LSP-ID is further used during label download and this relationship is useful for maintainability reasons. When a PCE receives PCRpt message with D flags and PST Type set, it MAY generates LSP ID; calculates the path and assigns labels along the path; and set up the path by sending PCLabelUpd message to each node along the path of the LSP. [Note: See Appendix A for how we could use PCInitiate message instead.] In response to the delegate PCRpt message, the PCE SHOULD send the PCUpd message with the same PLSP-ID to the Ingress PCC. The PCECC LSPs MUST be delegated to a PCE at all times. LSP deletion operation for PCECC LSP is same as defined in [RFC8231]. If the PCE receives PCRpt message for LSP deletion then it does Label Zhao, et al. Expires September 5, 2018 [Page 8] Internet-Draft PCECC March 2018 cleanup operation as described in Section 5.4.2.2 for the corresponding LSP. The Basic PCECC LSP setup sequence is as shown below using a new message PCLabelUpd. +-------+ +-------+ |PCC | | PCE | |Ingress| +-------+ +------| | | | PCC +-------+ | | Transit| | | +------| | |-- PCRpt,PLSP-ID=1, PST=TBD, D=1---->| PCECC LSP |PCC +--------+ | (LSP ID=0) |(LSPID=1) |Egress | | | | +--------+ | | | | | | | |<------ PCLabelUpd,PLSP-ID=1 -------------------- | Label | | | (LSP ID=1) | download | | | | | |<----- PCLabelUpd,PLSP-ID=1 ------------- | Label | | | (LSP ID=1) | download | | | | | | |<--- PCLabelUpd,PLSP-ID=1 --------- | Label | | | (LSP ID=1) | download | | | | | | |<-- PCUpd,PLSP-ID=1,PST=TBD, D=1-----| PCECC LSP | | | (LSP ID=1) | Update | | | | Figure 2: Using PCLabelUpd For Label Operations The PCECC LSP are considered to be 'up' by default. The Ingress MAY further choose to deploy a data plane check mechanism and report the status back to the PCE via PCRpt message. 5.4.2. Label Operations The new label operations in PCEP can be done via a new PCLabelUpd message and by defining new PCEP Objects for Label operations. Local label range of each PCC can be configured at PCE and PCE. [Note: See Appendix A for how we could use PCInitiate message instead.] Zhao, et al. Expires September 5, 2018 [Page 9] Internet-Draft PCECC March 2018 5.4.2.1. Label Download In order to setup an LSP based on PCECC, the PCE sends a PCLabelUpd message to each node of the LSP to download the Label entry as described in Section 5.4.1. [Note: See Appendix A for how we could use PCInitiate message instead.] The LSP object in PCLabelUpd MUST include the LSP-IDENTIFIER TLV. If a node (PCC) receives a PCLabelUpd message with a Label, out of the range set aside for the PCE, it MUST send a PCErr message with Error-type=TBD (label download failure) and Error-value=TBD (Label out of range) and MUST include the SRP object to specify the error is for the corresponding label update. If a PCC receives a PCLabelUpd message but failed to download the Label entry, it MUST send a PCErr message with Error-type=TBD (label download failure) and Error- value=TBD (label failed to be download)and MUST include the SRP object to specify the error is for the corresponding label update. New PCEP object for LABEL is defined in Section 7.3 to encode the Label operations. 5.4.2.2. Label Cleanup In order to delete an LSP based on PCECC, the PCE sends a PCLabelUpd message to each node along the path of the LSP to cleanup the Label entry. [Note: See Appendix A for how we could use PCInitiate message instead.] If the PCC receives a PCLabelUpd message but does not recognize the label, the PCC MUST generate a PCErr message with Error-Type 19(Invalid operation) and Error-Value=TBD, "Unknown Label" and MUST include the SRP object to specify the error is for the corresponding label cleanup. The R flag in SRP object defined in [RFC8281] specifies the deletion of Label Entry in the new PCLabelUpd message. Zhao, et al. Expires September 5, 2018 [Page 10] Internet-Draft PCECC March 2018 +-------+ +-------+ |PCC | | PCE | |Ingress| +-------+ +------| | | | PCC +-------+ | | Transit| | | +------| | |-- PCRpt,PLSP-ID=1,PST=TBD,D=1,R=1--->| PCECC LSP |PCC +--------+ | (LSP ID=1) | remove |Egress | | | | +--------+ | | | | | | | |<------ PCLabelUpd, PLSP-ID=1 --------------------- | Label | | | (LSP ID=1, R=1) | cleanup | | | | | |<----- PCLabelUpd, PLSP-ID=1 -------------- | Label | | | (LSP ID=1, R=1) | cleanup | | | | | | |<--- PCLabelUpd, PLSP-ID=1 ---------- | Label | | | (LSP ID=1, R=1) | cleanup | | | | 5.4.3. PCE Initiated PCECC LSP The LSP Instantiation operation is same as defined in [RFC8281]. In order to setup a PCE Initiated LSP based on PCECC mechanism, a PCE sends PCInitiate message with Path Setup Type set for PCECC (see Section 7.2) to the Ingress PCC. The Ingress PCC MUST also set D (Delegate) flag (see [RFC8231]) and C (Create) flag (see [RFC8281]) in LSP object of PCRpt message. The PCC responds with first PCRpt message with the status as "GOING-UP" and assigned PLSP-ID. The rest of the PCECC LSP setup operations are same as those described in Section 5.4.1. The LSP deletion operation for PCE Initiated PCECC LSP is same as defined in [RFC8281]. The PCE should further perform Label entry cleanup operation as described in Section 5.4.2.2 for the corresponding LSP. The PCE Initiated PCECC LSP setup sequence is shown below using a new PCLabelUpd message. Zhao, et al. Expires September 5, 2018 [Page 11] Internet-Draft PCECC March 2018 +-------+ +-------+ |PCC | | PCE | |Ingress| +-------+ +------| | | | PCC +-------+ | | Transit| | | +------| | |<--PCInitiate,PLSP-ID=0,PST=TBD,D=1---| PCECC LSP |PCC +--------+ | | Initiate |Egress | | |--- PCRpt,PLSP-ID=2,P=1,D=1,C=1---> | PCECC LSP +--------+ | | (LSP ID=0,GOING-UP) |(LSPID=2 | | | | assigned) |<------ PCLabelUpd, PLSP-ID=2 --------------------- | Label | | | (LSP ID=2) | download | | | | | |<----- PCLabelUpd, PLSP-ID=2 -------------- | Label | | | (LSP ID=2) | download | | | | | | |<--- PCLabelUpd, PLSP-ID=2 ---------- | Label | | | (LSP ID=2) | download | | | | | | |<-- PCUpd, PLSP-ID=2, PST=TBD, D=1--- | PCECC LSP | | | (LSP ID=2) | Update | | | | [Note: See Appendix A for how we could use PCInitiate message instead of PCLabelUpd message.] 5.4.4. PCECC LSP Update In case of a modification of PCECC LSP with a new path, a PCE sends a PCUpd message to the Ingress PCC. When a PCC receives a PCUpd message for an existing LSP, a PCC MUST follow the make-before-break procedure i.e. first download labels for the updated LSP and then switch traffic, before cleaning up the old labels. On successful traffic switch over to the new LSP, PCC sends a PCRpt message to the PCE for the deletion of old LSP. Further the PCE does cleanup operation for the old LSP as described in Section 5.4.2.2. The PCECC LSP Update and make-before-break sequence is shown below using a new PCLabelUpd message. Zhao, et al. Expires September 5, 2018 [Page 12] Internet-Draft PCECC March 2018 +-------+ +-------+ |PCC | | PCE | |Ingress| +-------+ +------| | | | PCC +-------+ | | Transit| | | +------| | | | |PCC +--------+ | | |Egress | | | | +--------+ | | | | | | | Modify LSP |<------ PCLabelUpd, PLSP-ID=1 ------------------- | (LSPID=3 | | | (LSP ID=3) | assigned) | | | | | |<----- PCLabelUpd, PLSP-ID=1------------- | Label | | | (LSP ID=3) | download | | | | | | |<--- PCLabelUpd, PLSP-ID=1 -------- | Label | | | (LSP ID=3) | download | | | | | | |<-- PCUpd, PLSP-ID=1, PST=TBD, D=1-- | PCECC | | | (LSP ID=3) | LSP Update | | | | | | |-- PCRpt,PLSP-ID=1,PST=TBD,D=1,R=1-->| Delete | | | (LSP ID=1) | old LSP | | | | |<------ PCLabelUpd, PLSP-ID=1 ------------------- | Label | | | (LSP ID=1, R=1) | cleanup | | | | | |<----- PCLabelUpd, PLSP-ID=1 ------------ | Label | | | (LSP ID=1, R=1) | cleanup | | | | | | |<--- PCLabelUpd, PLSP-ID=1 -------- | Label | | | (LSP ID=1, R=1) | cleanup The modified PCECC LSP are considered to be 'up' by default. The Ingress MAY further choose to deploy a data plane check mechanism and report the status back to the PCE via PCRpt message. [Note: We could use PCInitiate message instead of PCLabelUpd message, See Appendix A] 5.4.5. Session Termination PCC MUST mark all labels that were previously reported by this PCE as stale on session down. [RFC8231] defines the State Timeout Interval. The labels which are marked stale and provisioned for the Basic PCECC Zhao, et al. Expires September 5, 2018 [Page 13] Internet-Draft PCECC March 2018 LSP on this session MUST be cleaned up at the expiration of the State Timeout Interval. The labels will be retained when the Infinite State Timeout Interval is used. 5.4.6. LABEL-DB Synchronization The purpose of LABEL-DB synchronization is to make sure that the PCE's view of LABEL-DB matches with the PCC's LABEL-DB. The LABEL- DB synchronization MUST be performed from PCE to PCC immediately after the LSP state synchronization. [RFC8231] describes the basic mechanism for LSP state synchronization. [RFC8233] describes the optimizations for LSP state synchronization. LABEL-DB synchronization is a two phase procedure. In first phase, immediately after the LSP state synchronization PCE MUST synchronize its LABEL-DB to PCC. In second phase, PCC MUST report all the stale marked labels to the PCE. [Note: This section currently describe procedure based on new messages, suitable modification can be made if existing message are used instead Appendix A. In the case, some modifications needs to be made to the existing LSP-DB synchronization mechanism to also handle the label synchronization.] 5.4.6.1. LABEL-DB Synchronization procedure During LABEL-DB Synchronization, a PCE first takes a snapshot of the label database for the session, then sends this snapshot to the PCC in a sequence of Label Update message (PCLabelUpd message). Each PCLabelUpd message sent during LABEL-DB Synchronization has the SYNC Flag in the SRP Object(see Section 7.4) set to 1. The end of synchronization marker is a PCLabelUpd message with the SYNC Flag set to 0 for SRP Object and Label equal to a reserved value of 0 in the LABEL object (Section 7.3). If the PCE has no label to synchronize, it will only send the end of synchronization marker. PCC MUST remove the stale marking for the all labels on receipt of corresponding PCLabelUpd message during the LABEL-DB Synchronization phase. The remaining stale marked labels after the LABEL-DB synchronization process MUST be reported to PCE in a sequence of Label Report message (PCLabelRpt message) with the SYNC Flag in the SRP Object(see Section 7.4) set to 1. The end of report synchronization marker is a PCLabelRpt message with the SYNC Flag set to 0 for SRP Object with Label equal to reserved value 0 in the LABEL object ((Section 7.3)). If the PCC has no label Zhao, et al. Expires September 5, 2018 [Page 14] Internet-Draft PCECC March 2018 to report, it will only send the end of report synchronization marker. Either the PCE or the PCC MAY terminate the session using the PCEP session termination procedures during the LABEL-DB synchronization phase. The session reestablishment MUST be re-attempted as per the procedures defined in [RFC5440], including use of a back-off timer. The PCC does not send positive acknowledgments for properly received label database synchronization messages. It MUST respond with a PCErr message with Error-type TBD1 (Label Database Synchronization Error) and Error-value 1 (indicating an error in processing the PCLabelUpd) if it encounters a problem with the Label Update it received from the PCE and it MUST terminate the session. If the PCE encounters a problem which prevents it from completing the label transfer, it MUST send a PCErr message with Error-type TBD1 (Label Database Synchronization Error) and Error-value 2 (indicating an internal PCE Error) to the PCC and terminate the session. PCE MUST respond with a PCErr message with Error-type TBD1 (Label Database Report Synchronization Error) and Error-value 1 (indicating an error in processing the PCLabelRpt) if it encounters a problem with the Label Report it received from the PCC and it MUST terminate the session. The successful LABEL-DB Synchronization sequence is shown below. Zhao, et al. Expires September 5, 2018 [Page 15] Internet-Draft PCECC March 2018 + +-+-+-+- + +-+-+-+- | | | PCC | | PCE | | Transit| | | | Node | +-+-+-+-+- +-+-+-+-+- | | | | | . | | . | | | |------- PCLabelUpd, PLSP-ID=2----->|(Label | (LSP ID=2) | Download | | for LSP's) |------- PCLabelUpd, PLSP-ID=3----->| | (LSP ID=3) | | | |------- PCLabelUpd, PLSP-ID=4----->| | (LSP ID=4) | | . | | . |(Session | | down, mark |------- Session Down---------X | all label's | | Stale of this | . | Session) | . | |<------ Session Re-established---->|(Session up) | . | | . | |<-----PCRpt, SYNC=0----------------| (No LSP to SYNC) | | |----PCLabelUpd,PLSP-ID=2,SYNC=1--->|(LABEL-DB |----PCLabelUpd,PLSP-ID=3,SYNC=1--->| SYNC, unmark | | stale label) |------PCLabelUpd, SYNC=0---------->| | |(End of LABEL-DB | | SYNC) | | |<-----PCLabelRpt,PLSP-ID=4,SYNC=1--|(Report all stale | | Labels of this |<-----PCLabelRpt,SYNC=0------------| Session) | | |------- PCLabelUpd, PLSP-ID=4 ---->|Label Cleanup | (LSP ID=4, R=1) | | | | | Zhao, et al. Expires September 5, 2018 [Page 16] Internet-Draft PCECC March 2018 See [I-D.palle-pce-controller-labeldb-sync] for the optimizations for LABEL-DB synchronization procedure. 5.4.7. PCECC LSP State Report As mentioned before, an Ingress PCC MAY choose to apply any OAM mechanism to check the status of LSP in the Data plane and MAY further send its status in PCRpt message to the PCE. 6. PCEP messages As defined in [RFC5440], a PCEP message consists of a common header followed by a variable-length body made of a set of objects that can be either mandatory or optional. An object is said to be mandatory in a PCEP message when the object must be included for the message to be considered valid. For each PCEP message type, a set of rules is defined that specify the set of objects that the message can carry. An implementation MUST form the PCEP messages using the object ordering specified in this document. LSP-IDENTIFIERS TLV MUST be included in the LSP object for PCECC LSP. 6.1. Label Operations [Editor's Note: This document defines new messages PCLabelUpd and PCLabelRpt. The authors and WG also debated on the use of existing PCEP messages. See Appendix A on how the existing messages can be extended to add this functionality. WG needs to decide the final direction i.e. new specific messages are needed or existing PCEP messages can be extended.] 6.1.1. The PCLabelUpd message A new Label Update Message (also referred to as PCLabelUpd) is a PCEP message sent by a PCE to a PCC to download label or update the label map. The same message is also used to cleanup the Label entry. The Message-Type field of the PCEP common header for the PCLabelUpd message is set to TBD. The format of the PCLabelUpd message is as follows: Zhao, et al. Expires September 5, 2018 [Page 17] Internet-Draft PCECC March 2018 ::= Where: ::= [] ::= Where: ::= ::=