<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com)
     by Daniel M Kohn (private) -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
]>
<rfc category="std" docName="draft-ietf-pce-stateful-pce-lsp-scheduling-20"
     ipr="trust200902">
  <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

  <?rfc toc="yes" ?>

  <?rfc symrefs="yes" ?>

  <?rfc sortrefs="yes"?>

  <?rfc iprnotified="no" ?>

  <?rfc strict="yes" ?>

  <front>
    <title abbrev="LSP Scheduling">PCEP Extensions for LSP scheduling with
    stateful PCE</title>

    <author fullname="Huaimo Chen " initials="H." role="editor" surname="Chen">
      <organization>Futurewei</organization>

      <address>
        <postal>
          <street/>

          <city>Boston</city>

          <region>MA</region>

          <code/>

          <country>USA</country>
        </postal>

        <email>huaimo.chen@futurewei.com</email>
      </address>
    </author>

    <author fullname="Yan Zhuang" initials="Y." role="editor" surname="Zhuang">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>

          <city>Nanjing</city>

          <region>Jiangsu</region>

          <code>210012</code>

          <country>China</country>
        </postal>

        <email>zhuangyan.zhuang@huawei.com</email>
      </address>
    </author>

    <author fullname="Qin Wu" initials="Q." surname="Wu">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>

          <city>Nanjing</city>

          <region>Jiangsu</region>

          <code>210012</code>

          <country>China</country>
        </postal>

        <email>bill.wu@huawei.com</email>
      </address>
    </author>

<!--
    <author fullname="Dhruv Dhody" initials="D." surname="Dhody" role="editor">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>Divyashree Techno Park, Whitefield</street>

          <city>Bangalore</city>

          <region>Karnataka</region>

          <code>560066</code>

          <country>India</country>
        </postal>

        <email>dhruv.ietf@gmail.com</email>
      </address>
    </author>
-->
    <author fullname="Daniele Ceccarelli" initials="D." surname="Ceccarelli">
      <organization>Ericsson</organization>

      <address>
        <postal>
          <street>Via A. Negrone 1/A</street>

          <city>Genova - Sestri Ponente</city>

          <country>Italy</country>
        </postal>

        <email>daniele.ceccarelli@ericsson.com</email>
      </address>
    </author>

    <date year="2020"/>

    <area>Routing Area</area>

    <workgroup>PCE Working Group</workgroup>

    <keyword>RFC</keyword>

    <keyword>Request for Comments</keyword>

    <keyword>I-D</keyword>

    <keyword>Internet-Draft</keyword>

    <keyword>Path Computation Element</keyword>

    <abstract>
      <t>This document defines a set of extensions needed to the stateful
      Path Computation Element (PCE) communication Protocol (PCEP), so as to
      enable Labeled Switched Path (LSP) scheduling for path computation and
      LSP setup/deletion based on the actual network resource usage 
      and the duration
      of a traffic service in a centralized network environment as stated in
      RFC 8413.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>The Path Computation Element Protocol (PCEP) defined in <xref target="RFC5440"/> is
      used between a Path Computation Element (PCE) and a Path Computation
      Client (PCC) (or other PCE) to enable path computation of Multi-protocol
      Label Switching (MPLS) Traffic Engineering Label Switched Paths (TE
      LSPs).</t>

      <t><xref target="RFC8231"/> describes a set of extensions to PCEP to provide stateful
   control.  A stateful PCE has access to not only the information
   carried by the network's Interior Gateway Protocol (IGP) but also the
   set of active paths and their reserved resources for its
   computations.  The additional state allows the PCE to compute
   constrained paths while considering individual LSPs and their
   interactions. </t>

      <t>Traditionally, the usage and allocation of network resources,
      especially bandwidth, can be supported by a Network Management System (NMS)
      operation such as path pre-establishment. However, this does not provide
      efficient usage of network resources. The established paths reserve the
      resources forever, which can not be used by other services even 
      when they are not used
      for transporting any service. <xref target="RFC8413"/> then
      provides a framework that describes and discusses the problem, and
      defines an appropriate architecture for the scheduled reservation of TE
      resources.</t>

      <t>
      The scheduled reservation of TE resources allows network operators to
      reserve resources in advance according to the agreements with their
      customers, and allows them to transmit data about scheduling such as
      a specified start time and duration, for example for a scheduled bulk
      data replication between data centers. It enables the
      activation of bandwidth usage at the time the service is really being used
      while letting other services use it when this service is not using it.

      The requirement of
      scheduled LSP provision is mentioned in <xref target="RFC8231"/>
      and <xref target="RFC7399"/>. 
      A solution for providing more efficient network resource usage
      for traffic engineering is desired. Also, for
      deterministic networks <xref target="I-D.ietf-detnet-architecture"/>, 
      the scheduled LSP or temporal LSP can provide a better network
      resource usage for guaranteed links. This idea can also be applied in
      segment routing <xref target="RFC8402"/>
      to schedule the network resources over the whole network
      in a centralized manner as well.</t>

      <t>With this in mind, this document defines a set of extensions needed
      to PCEP used for stateful PCEs
      so as to enable LSP scheduling for path computation
      and LSP setup/deletion based on the actual network resource usage
      duration of a traffic service. A scheduled LSP is characterized by a
      starting time and a duration. When the end of the LSP life is reached,
      it is deleted to free up the resources for other LSPs (scheduled or
      not).</t>
    </section>

    <section title="Conventions used in this document">
      <t>
      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 <xref
      target="RFC2119"></xref> <xref
      target="RFC8174"></xref> when, and only when, they
      appear in all capitals, as shown here.
    </t>

      <section title="Terminology">
        <t>The following terminologies are re-used from existing PCE
        documents.<list style="symbols">
            <t>Active Stateful PCE <xref target="RFC8231"/>;</t>

            <t>Passive Stateful PCE <xref target="RFC8231"/>;</t>

            <t>Delegation <xref target="RFC8231"/>;</t>

            <t>PCE-Initiated LSP <xref target="RFC8281"/>;</t>

            <t>PCC <xref target="RFC5440"/>, <xref target="RFC8231"/>;</t>

            <t>PCE <xref target="RFC5440"/>, <xref target="RFC8231"/>;</t>

            <t>TE LSP <xref target="RFC5440"/>, <xref target="RFC8231"/>;</t>

            <t>TED <xref target="RFC5440"/>, <xref target="RFC8231"/>;</t>

            <t>LSP-DB <xref target="RFC8231"/>;</t>
          </list>In addition, this document defines the following
        terminologies.<list style="hanging">
            <t hangText="Scheduled TE LSP (or Scheduled LSP for short):">
            an LSP with the scheduling
            attributes, that carries traffic flow demand at a starting time and
            lasts for a certain duration (or from a starting time to an ending time,
            where the ending time is the starting time plus the duration). 
            A scheduled LSP is also called a temporal LSP.
            The PCE operates path computation per
            LSP availability for the required time and duration.</t>

            <t hangText="Scheduled LSP-DB:">a database of scheduled LSPs.</t>

            <t hangText="Scheduled TED:">Traffic engineering database with the
            awareness of scheduled resources for TE. This database is
            generated by the PCE from the information in TED and scheduled LSP-DB
            and allows knowing, at any time, the amount of available
            resources (does not include failures in the future).</t>

            <t hangText="Starting time (start-time):">This value indicates when
            the scheduled LSP is used and the corresponding LSP must be setup
            and active. In other time (i.e., before the starting time or after
            the starting time plus Duration), the LSP can be inactive to
            include the possibility of the resources being used by other
            services.</t>

            <t hangText="Duration:">This value indicates the time duration that
            the LSP is undertaken by a traffic flow and the corresponding LSP
            must be setup and active. At the end of which, the LSP is torn down
            and removed from the database.</t>
          </list></t>
      </section>
    </section>

    <section title="Motivation and Objectives">
      <t>A stateful PCE <xref target="RFC8231"/> can support better efficiency 
      by using LSP scheduling
      described in the use case of <xref target="RFC8051"/>. 
      This requires the PCE to
      maintain the scheduled LSPs and their associated resource usage, e.g.
      bandwidth for Packet-switched network, as well as have the ability to
      trigger signaling for the LSP setup/tear-down at the correct time.</t>

      <t>Note that existing configuration tools can be used for LSP
      scheduling, but as highlighted in section 3.1.3 of <xref target="RFC8231"/> 
      as well as discussions in
      <xref target="RFC8413"/>, doing this as a part of PCEP in a
      centralized manner, has obvious advantages.</t>

      <t>This document provides a set of extensions to PCEP to enable LSP
      scheduling for LSP creation/deletion under the stateful control of a
      PCE and according to traffic service requests from customers, so as
      to improve the usage of network resources.</t>
    </section>

    <section title="Procedures and Mechanisms">
      <section title="LSP Scheduling Overview" anchor="LSPSchedulingOverview">
        <t>The LSP scheduling allows PCEs and PCCs to provide scheduled LSP
        for customers' traffic services at its actual usage time, so as to
        improve the network resource efficient utilization.</t>

        <t>For stateful PCE supporting LSP scheduling, there are two types of
        LSP databases used in this document. One is the LSP-DB defined in PCEP
        <xref target="RFC8231"/>, while the other is the scheduled LSP database (SLSP-DB, see
        section 6). The SLSP-DB records scheduled LSPs and is used in conjunction with 
        the TED and LSP-DB. Note that the two types of LSP
        databases can be implemented in one physical database or two different
        databases. This is an implementation matter and this document does not state any preference.</t>

        <t>Furthermore, a scheduled TED can be generated from the scheduled
        LSP-DB, LSP-DB and TED to indicate the network links and nodes with
        resource availability information for now and future. The scheduled
        TED should be maintained by all PCEs within the network
        environment.</t>

        <!--<t>In case of implementing PCC-initiated scheduled LSPs, a PCC can
        request a path computation with LSP information of its scheduling
        parameters, including the starting time and the duration. Upon
        receiving the request with the scheduled LSP delegation, a stateful
        PCE SHALL check the scheduled TED for the network resource
        availability on network nodes and computes a path for the LSP with the
        scheduling information.</t>-->

        <t>In case of implementing PCC-initiated scheduled LSPs, before a PCC delegates a scheduled LSP, it MAY
        use the PCReq/PCRep messages to learn the path for the scheduled LSP. 
        A PCC MUST delegate a scheduled LSP with information of its scheduling
        parameters, including the starting time and the duration using PCRpt message. 
        Since the LSP is not yet signaled, at the time of delegation the LSP would be in down state. 
        Upon
        receiving the delegation of the scheduled LSP, a stateful
        PCE SHALL check the scheduled TED for the network resource
        availability on network nodes and compute a path for the LSP with the
        scheduling information and update to the PCC as per the active stateful 
        PCE techniques <xref target="RFC8231"/>.</t>        

        <t>Note that the active stateful PCE can update to the PCC with the path for the
        scheduled LSP at any time. However, the
        PCC should not signal the LSP over the path on receiving these
        messages since the path is not active yet; PCC signals the LSP at the starting
        time.</t>

        <!--<t>For a multiple PCE environment, in order to coordinate the
        scheduling request of the LSP path over the network, the PCE needs to
        send a request message with the path information as well as the
        scheduled resource for the scheduled LSP to other PCEs within the
        network, so as to coordinate with their scheduled LSP-DBs and
        scheduled TEDs. Once other PCEs receive the request message with the
        scheduled LSPs information, if not conflicting with their scheduled
        LSP-DBs, they reply to the requesting PCE with a response message
        carrying the scheduled LSP and update their scheduled LSP-DBs and
        scheduled TEDs. After the requesting PCE confirms with all PCEs, the
        PCE SHALL add the scheduled LSP into its scheduled LSP Database and
        update its scheduled TED.</t>-->

        <t>For a multiple PCE environment, a PCE MUST 
   synchronize to other PCEs within the network, so as
   to keep their scheduling information synchronized.  
   There are many ways that this could be achieved: 
   one such mechanism is described in <xref target="I-D.litkowski-pce-state-sync"/>. 
   Which way is used to achieve this is out of scope for this document.

          The scheduled TED can be determined from the synchronized SLSP-DB. 
          The PCE with delegation for the scheduled LSP would report the scheduled LSP to other PCEs, any future 
          update to the scheduled LSP is also updated to other PCEs. This way the state of all scheduled LSPs 
          are synchronized among the PCEs. <xref target="RFC7399"/> discusses some synchronization issues and considerations, 
          that are also applicable to the scheduled databases. </t>

        <t>The scheduled LSP can also be initiated by PCE itself. In
        case of implementing PCE-initiated scheduled LSP, the stateful PCE
        shall check the network resource availability for the traffic and
        computes a path for the scheduled LSP and initiate a scheduled LSP 
        at the PCC and synchronize the scheduled LSP to
        other PCEs. Note that, the PCC could be notified immediately or at the 
        starting time of the scheduled LSP based on the local policy. For the 
        former SCHED-LSP-ATTRIBUTE TLV (see <xref target="SCHED-LSP-ATTRIBUTE"/>) 
        MUST be included in the message where as for 
        the latter SCHED-LSP-ATTRIBUTE TLV SHOULD NOT be included. 
        Either way the synchronization to other PCEs should be done
        when the scheduled LSP is created.</t>

        <t>In both modes, for activation of scheduled LSPs, the PCC could 
          initiate the setup of scheduled LSP at the start time by itself or wait for the PCE
          to update the PCC to initiate the setup of LSP. Similarly on  
          scheduled usage expires, the PCC could initiate the removal by itself or wait for 
          the PCE to request the removal of the LSP. This is based on the Flag 
          set in SCHED-LSP-ATTRIBUTE TLV. </t> 



          <!--the stateful PCE
        can send a path computation LSP Initiate (PCInitiate message) with LSP
        information at its starting time to the PCC for signaling the LSP over
        the network nodes as defined in <xref target="RFC8281"/>.
        Also, in the PCC-initiated mode, with scheduling information ,the PCC
        can activate the LSP itself by triggering over the path at its
        starting time as well. When the scheduling usage expires, active
        stateful PCE SHALL remove the LSP from the network , as well as notify
        other PCEs to delete the scheduled LSP from the scheduled LSP
        database.</t>-->
      </section>

      <section title="Support of LSP Scheduling">
        <section title="LSP Scheduling">
          <t>For a scheduled LSP, a user configures it with an arbitrary
          scheduling duration from time Ta to time Tb, which may be
          represented as [Ta, Tb].</t>

          <t>When an LSP is configured with arbitrary scheduling duration [Ta,
          Tb], a path satisfying the constraints for the LSP in the scheduling
          duration is computed and the LSP along the path is set up to carry
          traffic from time Ta to time Tb.</t>
        </section>

        <section title="Periodical LSP Scheduling">
          <t>In addition to LSP Scheduling at an arbitrary time period, there
          are also periodical LSP Scheduling.</t>

          <t>A periodical LSP Scheduling means an LSP has multiple time intervals
          and the LSP is set up to carry traffic in every time
          interval. It has a scheduling duration such as [Ta, Tb], a number of
          repeats such as 10 (repeats 10 times), and a repeat cycle/time
          interval such as a week (repeats every week). The scheduling
          interval: "[Ta, Tb] repeats n times with repeat cycle C" represents
          n+1 scheduling intervals as follows:<figure>
              <artwork>[Ta, Tb], [Ta+C, Tb+C], [Ta+2C, Tb+2C], ..., [Ta+nC, Tb+nC]</artwork>
            </figure></t>

          <t>When an LSP is configured with a scheduling interval such as
          "[Ta, Tb] repeats 10 times with a repeat cycle a week" (representing
          11 scheduling intervals), a path satisfying the constraints for the
          LSP in every interval represented by the
          periodical scheduling interval is computed once. And then the LSP along the
          path is set up to carry traffic in each of the scheduling
          intervals. If there is no path satisfying the constraints 
          for some of the intervals, the LSP will not be set up at all.
          It SHOULD generate a PCEP Error (PCErr) with 
          Error-type = 29 (Path computation failure) and 
          Error-value = TBD7 (Constraints could not be met for some intervals).
          </t>

          <section title="Elastic Time LSP Scheduling">
            <t>In addition to the basic LSP scheduling at an arbitrary time
            period, another option is elastic time intervals, which is
            represented as within -P and Q, where P and Q is an amount of time
            such as 300 seconds. P is called elastic range lower bound and Q
            is called elastic range upper bound.</t>

            <t>For a simple time interval such as [Ta, Tb] with an elastic
            range, elastic time interval: "[Ta, Tb] within -P and Q" means a
            time period from (Ta+X) to (Tb+X), where -P &lt;= X &lt;= Q. Note
            that both Ta and Tb are shifted by the same 'X'.</t>

            <t>When an LSP is configured with elastic time interval "[Ta, Tb]
            within -P and Q", a path is computed such that the path satisfies
            the constraints for the LSP in the time period from (Ta+Xv) to
            (Tb+Xv) and |Xv| is the minimum value for Xv from -P to Q. That is,
            [Ta+Xv, Tb+Xv] is the time interval closest to time interval
            [Ta, Tb] within the elastic range. The LSP along the path is set
            up to carry traffic in the time period from (Ta+Xv) to (Tb+Xv).</t>

            <t>Similarly, for a recurrent time interval with an elastic range,
            elastic time interval: "[Ta, Tb] repeats n times with repeat cycle
            C within -P and Q" represents n+1 simple elastic time intervals as
            follows:<figure>
                <artwork>[Ta+X0, Tb+X0], [Ta+C+X1, Tb+C+X1], ..., [Ta+nC+Xn, Tb+nC+Xn]
      where -P &lt;= Xi &lt;= Q, i = 0, 1, 2, ..., n. </artwork>
              </figure></t>

            <t>If a user wants to keep the same repeat cycle between any two
            adjacent time intervals, elastic time interval: "[Ta, Tb] repeats
            n times with repeat cycle C within -P and Q SYNC" may be used,
            which represents n+1 simple elastic time intervals as
            follows:<figure>
                <artwork>[Ta+X, Tb+X], [Ta+C+X, Tb+C+X], ..., [Ta+nC+X, Tb+nC+X] 
     where -P &lt;= X &lt;= Q. </artwork>
              </figure></t>
          </section>

          <section title="Grace Periods">
            <t>Besides the stated time scheduling, a user may want to have
            some grace periods (short for graceful time periods) 
            for each or some of the time intervals for
            the LSP. Two grace periods may be configured for a time
            interval. One is the grace period before the time interval,
            called grace-before, which extends the lifetime of the LSP for
            grace-before (such as 30 seconds) before the time interval. The
            other is the one after the time interval, called grace-after,
            which extends the lifetime of the LSP for grace-after (such as 60
            seconds) after the time interval.</t>

            <t>When an LSP is configured with a simple time interval such as
            [Ta, Tb] with grace periods such as grace-before GB and
            grace-after GA, a path is computed such that the path satisfies
            the constraints for the LSP in the time period from Ta to Tb. The
            LSP along the path is set up to carry traffic in the time period
            from (Ta-GB) to (Tb+GA). During grace periods from (Ta-GB) to
            Ta and from Tb to (Tb+GA), the LSP is up to carry traffic (maybe
            in best effort).</t>
          </section>
        </section>

        
      </section>

      <section title="Scheduled LSP creation">
        <t>In order to realize PCC-Initiated scheduled LSPs in a centralized
        network environment, a PCC has to separate the setup of an LSP into two
        steps. The first step is to request/delegate and get an LSP but not signal it
        over the network. The second step is to signal the scheduled LSP over
        the LSRs (Label Switching Router) at its starting time.</t>

        <t>For PCC-Initiated scheduled LSPs, a PCC can delegate the scheduled LSP by sending a path computation
        report (PCRpt) message by including its demanded
        resources with the scheduling information to a stateful
        PCE. Note the PCC MAY use the PCReq/PCRep with scheduling information before delegating.</t>

        <t>Upon receiving the delegation via PCRpt message, the stateful PCE
        computes the path for the scheduled LSP per its starting time and
        duration based on the network resource availability stored in
        scheduled TED (see <xref target="LSPSchedulingOverview"/>).</t>

        <!--<t>If a resultant path is found, the stateful PCE will send a PCRpt
        message with the path information as well as the scheduled resource
        information for the scheduled LSP to other PCEs within the network if
        there is any, so as to keep their scheduling information
        synchronized.</t>

        <t>Once other PCEs receive the PCRpt message with the scheduled LSP,
        if not conflicts with their scheduled LSP-DBs, they will update their
        scheduled LSP-DBs and scheduled TEDs. After the requesting PCE
        confirms with all PCEs, the PCE SHALL add the scheduled LSP into its
        scheduled LSP-DB and update its scheduled TED. If conflicts happen or
        no path available is found, the requesting PCE SHALL return a PCRep
        message with NO PATH back to the PCC. Otherwise, the stateful PCE will
        send a PCRep message with the path information back to the PCC as
        confirmation.</t>-->

        <t>The stateful PCE will send a PCUpd
        message with the scheduled path information as well as the scheduled resource
        information for the scheduled LSP to the PCC. The PCE SHOULD add the scheduled LSP into its
        scheduled LSP-DB and update its scheduled TED.</t> 

        <t>For PCE-Initiated Scheduled LSP, the stateful PCE can compute a
        path for the scheduled LSP per requests from network management
        systems automatically based on the network resource availability in
        the scheduled TED, send a PCInitiate message with the
        path information back to the PCC. Based on the local policy, the PCInitiate message
        could be sent immediately to ask PCC to create a scheduled LSP (as per this document) or the PCInitiate message
        could be sent at the start time to the PCC to create a normal LSP (as per <xref target="RFC8281"/>). 
      </t>

        <t>For both PCC-Initiated and PCE-Initiated Scheduled LSPs:<list style="symbols">
            <t>The stateful PCE is required to update its local scheduled LSP-DB
            and scheduled TED with the scheduled LSP. Besides, it shall
            send a PCRpt message with the scheduled LSP to other PCEs within
            the network, so as to achieve the scheduling traffic engineering
            information synchronization.</t>

            <t>Upon receiving the PCUpd message or PCInitiate message for the scheduled
            LSP from PCEs with a found path, the PCC knows that it is a
            scheduled path for the LSP and does not trigger signaling for the LSP
            setup on LSRs immediately.</t>

            <t>The stateful PCE can update the Scheduled LSP
            parameters on any network events using the PCUpd message to PCC. These
            changes are also synchronized to other PCEs.</t>

            <t>Based on the configuration (and the C flag in scheduled TLVs), when it is time (i.e., at the start time) for the LSP to be set
            up, either the PCC triggers the LSP to be signaled or the delegated PCE sends a PCUpd message to the head
            end LSR providing the updated path to be signaled (with A flag set to indicate LSP activation).</t>
          </list></t>


        </section>
        <section title="Scheduled LSP Modifications">
        <t>After a scheduled LSP is configured, a user may change its
        parameters including the requested time as well as the bandwidth.</t>

        <t>In PCC-Initiated case, the PCC can send a PCRpt message for the
        scheduled LSP with updated parameters as well as scheduled information
        included in the SCHED-LSP-ATTRIBUTE TLV (see <xref target="SCHED-LSP-ATTRIBUTE"/>) or
        SCHED-PD-LSP-ATTRIBUTE TLV (see <xref target="SCHED-PD-LSP-ATTRIBUTE"/>) 
        carried in the LSP Object. The PCE would
        take the updated resources and schedule into considerations and 
        update the new path for the scheduled LSP to the PCC as well as
        synchronize to other PCEs in the network. In case path cannot be 
        set based on new requirements, the previous LSP will not be impacted 
        and the same should be conveyed by the
        use of empty ERO in the PCEP messages.</t>

        <t>In PCE-Initiated case, the Stateful PCE would recompute the path based on 
         updated parameters as well as scheduled information. In case it has 
         already conveyed to the PCC this information by sending a PCInitiate 
         message, it should update the path and other scheduling and resource 
         information by sending a PCUpd message.</t>

         <!-- original:
            After a scheduled LSP is configured, a user may change its parameters
   including the requested time as well as the bandwidth.

   In PCC-Initiated case, the PCC can send a PCRpt message for the
   scheduled LSP with updated bandwidth as well as scheduled information
   included in the SCHED-LSP-ATTRIBUTE TLV (see section 4.3.4.1) or
   SCHED-PD-LSP-ATTRIBUTE TLV carried in the LSP Object.  The PCE should
   calculate the updated resources and synchronized with other PCEs.  If
   the updates can be satisfied, PCE shall return a PCUpd message to PCC
   as described in section 4.3.3.  If the requested updates cannot be
   met, PCE shall return a PCUpd message with the original reserved
   attributes carried in the LSP Object.

   The stateful PCE can update the Scheduled LSP parameters to other
   PCEs via PCRpt message and the requested PCC via PCUpd message at any
   time based on any network events including SCHED-LSP-ATTRIBUTE TLV or
   SCHED-PD-LSP-ATTRIBUTE TLV in the LSP Object body.-->

      </section>

      <section title="Scheduled LSP activation and deletion">
        <t>In PCC-Initiated case, based on the configuration (and the C flag in scheduled TLVs), when it is time (i.e., at the start time) for the LSP to be set
            up, either the PCC triggers the LSP to be signaled or the delegated PCE sends a PCUpd message to the head
            end LSR providing the updated path to be signaled (with A flag set to indicate LSP activation). 
            The PCC would report the status of the active LSP as per the procedures in <xref target="RFC8231"/> and at this time the LSP MUST be considered as part of the LSP-DB. 
            The A flag MUST be set in the scheduled TLVs to indicate that the LSP is active now. After the scheduled duration expires, based on the C flag, the PCC triggers the 
            LSP deletion on itself or the delegated PCE sends a PCUpd message to the PCC to delete the LSP as per the procedures in <xref target="RFC8231"/>. 
            </t>

<t>In PCE-Initiated case, based on the local policy, if the scheduled LSP is already conveyed to the PCC at the time of creation, the handling of LSP activation and deletion
  is handled in the same way as PCC-Initiated case as per the setting of C flag. Otherwise, the PCE would send the PCInitiate message 
        at the start time to the PCC to create a normal LSP without the scheduled TLVs and remove the LSP after the duration expires as per <xref target="RFC8281"/>.</t>           
<!--
            <t>Additionally, the scheduled databases SHALL be updated and synchronization to other PCEs MUST be done as per <xref target="I-D.litkowski-pce-state-sync"/>.</t>
-->
        <!--<t>In PCC-Initiated LSP scheduling, the PCC itself MAY activate the
        scheduled LSP at the starting time. Alternatively, in PCE-Initiated
        case, the stateful PCE MAY activate the scheduled LSP at its scheduled
        time by sending a PCInitiated message. </t>

        <t>After the scheduled duration expires, the PCE shall send a PCUpd
        message with R flag set to the PCC to delete the LSP over the path, as
        well as to other PCEs to remove the scheduled LSP in the databases.
        Additionally, it shall update its scheduled LSP-DB and scheduled
        TED.</t>

        <t>Note that, the stateful PCE can update the Scheduled LSP parameters
        at any time based on any network events using the PCUpd message
        including SCHED-LSP-ATTRIBUTE TLV in the LSP Object body.</t>-->
      </section>
    </section>
        <section title="PCEP Objects and TLVs">
          <section title="Stateful PCE Capability TLV">
          <t>After a PCEP session has been established, a
          PCC and a PCE indicates its ability to support LSP scheduling during
          the PCEP session establishment phase. For a multiple-PCE
          environment, the PCEs should also establish PCEP session and
          indicate its ability to support LSP scheduling among PCEP peers. The
          Open Object in the Open message contains the STATEFUL-PCE-CAPABILITY
          TLV defined in <xref target="RFC8231"/>. Note that the 
          STATEFUL-PCE-CAPABILITY TLV is defined in <xref target="RFC8231"/> and
          updated in <xref target="RFC8281"/> and <xref target="RFC8232"/>". 
          In this document, we define a new
          flag bit B (SCHED-LSP-CAPABLITY) flag for the 
          STATEFUL-PCE-CAPABILITY TLV to indicate the support of LSP scheduling and
          another flag bit PD (PD-LSP-CAPABLITY) to indicate the support of
          LSP periodical scheduling.</t>

          <t><list style="hanging">
              <t hangText="B (LSP-SCHEDULING-CAPABILITY - 1 bit) [Bit Position - TBD3]:">If set to 1
              by a PCC, the B Flag indicates that the PCC allows LSP
              scheduling; if set to 1 by a PCE, the B Flag indicates that the
              PCE is capable of LSP scheduling. The B bit MUST be set by both
              PCEP peers in order to support LSP scheduling for path
              computation.</t>

              <t hangText="PD (PD-LSP-CAPABLITY - 1 bit): [Bit Position - TBD4]">
              If set to 1 by a
              PCC, the PD Flag indicates that the PCC allows LSP scheduling
              periodically; if set to 1 by a PCE, the PD Flag indicates that
              the PCE is capable of periodical LSP scheduling. The PD bit MUST
              be set by both PCEP peers in order to support periodical LSP
              scheduling for path computation. 
              Setting PD bit requires setting B bit as specified in 5.2.2.
              Without setting B which indicates basic capability of LSP scheduling, 
              the advanced capability indicated by Setting PD bit 
              (capability of periodical LSP scheduling) could not be achieved.</t>
            </list></t>
        </section>
        <section title="LSP Object">
          <t>The LSP object is defined in <xref target="RFC8231"/>. This document adds an
          optional SCHED-LSP-ATTRIBUTE TLV for normal LSP scheduling and an
          optional SCHED-PD-LSP-ATTRIBUTE TLV for periodical LSP
          scheduling.</t>

          <t>The presence of SCHED-LSP-ATTRIBUTE TLV in the LSP object
          indicates that this LSP is requesting scheduled parameters while the
          SCHED-PD-LSP-ATTRIBUTE TLV indicates that this scheduled LSP is
          periodical. The scheduled LSP attribute TLV MUST be present in LSP
          Object for each scheduled LSP carried in the PCEP messages. For periodical LSPs, the
          SCHED-PD-LSP-ATTRIBUTE TLV can be used in LSP Object for each periodic scheduled LSP carried in the PCEP messages.</t>

          <t>Only one of these TLV SHOULD be present in the LSP object. In case more than one scheduling TLV is found, the first instance is processed and others ignored.</t>

          <section title="SCHED-LSP-ATTRIBUTE TLV" anchor="SCHED-LSP-ATTRIBUTE">
            <t>The SCHED-LSP-ATTRIBUTE TLV MAY be included as an optional TLV
            within the LSP object for LSP scheduling for the requesting
            traffic service.</t>

            <t>This TLV MUST NOT be included unless both PCEP peers have set the B
            (LSP-SCHEDULING-CAPABILITY bit) in STATEFUL-PCE-CAPABILITY TLV
            carried in the Open message.</t>

            <t>The format of the SCHED-LSP-ATTRIBUTE TLV is shown in Figure 1.</t>

            <figure anchor="sched-lsp-attr-tlv" 
                 title="SCHED-LSP-ATTRIBUTE TLV">
              <artwork>
 0                   1                   2                   3
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Type (TBD1)       |          Length               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags |R|C|A|G|               Reserved (0)                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Start-Time                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Duration                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   GrB / Elastic-Lower-Bound   |   GrA / Elastic-Upper-Bound   | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ </artwork>
            </figure>

            <t>The type of the TLV is [TBD1] and the TLV has a fixed length of
            20 octets.</t>

            <t>The fields in the format are:<list style="hanging">
                <t hangText="Flags (8 bits):">Following flags are
                  defined in this document 
                  <list style="hanging">
                <t hangText="R (1 bit):">
                Set to 1 to indicate the 
                Start-Time is a relative time, which is the number of seconds from the
                current time. 
                It is necessary to synchronize the clocks of the PCEs and PCCs
                when relative time is used. 
                When the transmission delay from a PCE or PCC to another PCE or PCC 
                is too big such as greater than 1 second, the scheduling interval
                represented is not accurate if the delay is not considered.
                
                Set to 0 to indicate that the 32-bit Start-Time is an
                absolute time, which is the number of seconds since the epoch.
                The epoch is 1 January 1970 at 00:00 UTC.
                It wraps around every 2^32 seconds, which is roughly
                136 years. The next wraparound will occur in the year 2106.
                After the wraparound, the value of the 32-bit Start-Time is
                the number of seconds from the time of wraparound because
                the Start-Time is always a future time.
                Before the wraparound and 
                within a constant RANGE-START-TIME to reach the wraparound, 
                if the time at which the LSP is to be
                activated is after the wraparound, the time is represented by 
                the number of seconds from the time of wraparound in
                the 32-bit Start-Time. 
                RANGE-START-TIME = 2*365*86400 seconds (about 2 years).
<!--
                If the value of the Start-Time is greater than a constant 
                MAX-AWAY-TIME to reach the time of the next wraparound and
                within the range of start time limit RANGE-START-TIME, 
                it represents the time before the wraparound, 
                where MAX-AWAY-TIME = 100 seconds, 
                RANGE-START-TIME = 2*365*86400 seconds. 
-->
                <vspace blankLines="1"/></t>

                <t hangText="C (1 bit):">Set to 1 to indicate the 
                PCC is responsible to setup and remove the scheduled LSP based on the 
                Start-Time and duration. <vspace blankLines="1"/></t>
                
                <t hangText="A (1 bit):">Set to 1 to indicate the 
                scheduled LSP has been activated and should be considered
                as part of LSP-DB (instead of Scheduled LSP-DB). <vspace blankLines="1"/></t>

                <t hangText="G (1 bit):">Set to 1 to indicate the 
                Grace period is included; 
                set to 0 indicate the elastic range is included. <vspace blankLines="1"/></t>

              </list></t>

                <t hangText="Reserved (24 bits):">This field MUST be set to
                zero on transmission and MUST be ignored on receipt. <vspace
                blankLines="1"/></t>

                <t hangText="Start-Time (32 bits):">This value in seconds,
                indicates when the scheduled LSP is used to carry traffic and
                the corresponding LSP must be setup and activated. 
                Value of 0 MUST NOT be used in Start-Time. 
                Note that the transmission delay SHOULD be considered when R=1 
                and the value of Start-Time is small. 
                <vspace blankLines="1"/></t>

                <t hangText="Duration (32 bits):">The value in seconds,
                indicates the duration that the LSP is undertaken by a traffic
                flow and the corresponding LSP must be up to carry traffic. At
                the expiry of this duration, the LSP is torn down and deleted.
                Value of 0 MUST NOT be used in Duration since it does not make
                any sense. 
                The value of Duration SHOULD be greater than a constant 
                MINIMUM-DURATION seconds, where MINIMUM-DURATION is 5.
                <vspace blankLines="1"/></t>
              </list></t>

            <t>The Start-Time indicates a time 
            at or before which the scheduled LSP must be set up. The
            value of the Start-Time represents the number of seconds since
            the epoch when R bit is set to 0. 
            When R bit is
            set to 1, it represents the number of seconds from the current
            time.</t>

            <t>In addition, it contains an non zero grace-before and
            grace-after if grace periods are configured. It includes an non
            zero elastic range lower bound and upper bound if there is an
            elastic range configured.  
            A TLV can configure a non-zero grace period or elastic range, 
            but it MUST NOT provide both for an LSP. 
              <list style="symbols">
                <t>GrB (Grace-Before -16 bits): The grace period time
                length in seconds before the starting time.</t>

                <t>GrA (Grace-After -16 bits): The grace period time length
                in seconds after time interval [starting time, starting time +
                duration].</t>

                <t>Elastic-Lower-Bound (16 bits): The maximum amount of time
                in seconds that time interval can shift to lower/left.</t>

                <t>Elastic-Upper-Bound (16 bits): The maximum amount of time
                in seconds that time interval can shift to upper/right.</t>
              </list></t>
          </section>

          <section title="SCHED-PD-LSP-ATTRIBUTE TLV" anchor="SCHED-PD-LSP-ATTRIBUTE">
            <t>The periodical LSP is a special case of LSP scheduling. The
            traffic service happens in a series of repeated time intervals.
            The SCHED-PD-LSP-ATTRIBUTE TLV can be included as an optional TLV
            within the LSP object for this periodical LSP scheduling.</t>

            <t>This TLV MUST NOT be included unless both PCEP peers have set the B
            (LSP-SCHEDULING-CAPABILITY bit) and PD (PD-LSP-CAPABLITY bit) in
            STATEFUL-PCE-CAPABILITY TLV carried in open message.</t>

            <t>The format of the SCHED-PD-LSP-ATTRIBUTE TLV is shown in Figure 2.
           <figure anchor="sched-pd-lsp-attr-tlv" 
                 title="SCHED-PD-LSP-ATTRIBUTE TLV">
                <artwork>      
 0                   1                   2                   3
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Type (TBD2)        |         Length                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Flags  |R|C|A| Opt   |           NR          |  Reserved (0) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Start-Time                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Duration                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Repeat-time-length                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   GrB / Elastic-Lower-Bound   |   GrA / Elastic-Upper-Bound   | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
              </figure></t>

            <t>The type of the TLV is [TBD2] and the TLV has a fixed length of
            24 octets. The description, format and meaning of the Flags (R, C and A bit), 
            Start-Time, Duration, GrB, GrA, Elastic-Lower-Bound and Elastic-Upper-Bound 
            fields remains same as SCHED-LSP-ATTRIBUTE TLV.</t>

            <t>The following fields are new :<list style="hanging">

                <!--<t hangText="Start-Time (32 bits):">This value in seconds,
                indicates the time when the scheduled LSP is used to carry
                traffic and the corresponding LSP must be setup and
                activated.</t>

                <t hangText="Duration (32 bits):">This value in seconds,
                indicates the duration that the LSP is undertaken by a traffic
                flow and the corresponding LSP must be up to carry
                traffic.</t>

                <t hangText="R (1 bit):">Set to 1 to indicate the the
                Start-Time is a relative time, which is relative to the
                current time; set to 0 to indicate the the Start-Time is an
                absolute time.</t>-->


                <t hangText="Opt: (4 bits)">Indicates options to
                repeat. A new registry "Opt" under SCHED-PD-LSP-ATTRIBUTE 
                is created. When a PCE receives a TLV with a Opt value 
                not defined, it does not compute any path for the LSP. 
                It generates a PCEP Error (PCErr) with a PCEP-ERROR object
                having Error-type = 4 (Not supported object) and 
                Error-value = 4 (Unsupported parameter). 
                <list>
                    <t>Options = 1: repeat every day;</t>

                    <t>Options = 2: repeat every week;</t>

                    <t>Options = 3: repeat every month;</t>

                    <t>Options = 4: repeat every year;</t>

                    <t>Options = 5: repeat every Repeat-time-length.</t>
                  </list></t>
                <t hangText="NR: (12 bits)">The number of repeats.
                In each of repeats, LSP carries traffic. </t> 

                
                <t hangText="Reserved (8 bits):">This field MUST be set to
                zero on transmission and MUST be ignored on receipt. <vspace
                blankLines="1"/></t>
                

                <t hangText="Repeat-time-length: (32 bits)">The time in
                seconds between the start-time of one repetition and 
                the start-time of the next repetition.
                </t></list></t>


          </section>
        </section>
      </section>

      
    
    <section title="The PCEP Messages">
    <section title="The PCRpt Message">
      <t>Path Computation State Report (PCRpt) is a PCEP message sent by a PCC
      to a PCE to report the status of one or more LSPs as per <xref target="RFC8231"/>.  Each LSP State
      Report in a PCRpt message contains the actual LSP's path,
      bandwidth, operational and administrative status, etc.  An LSP
      Status Report carried on a PCRpt message is also used in
      delegation or revocation of control of an LSP to/from a PCE.  In case of 
      scheduled LSP, the scheduled TLVs MUST be carried in the LSP
      object and the ERO conveys the intended path for the scheduled LSP. The scheduled LSP 
      MUST be delegated to a PCE. This message is also 
      used to synchronize the scheduled LSPs to other PCE as described in <xref target="RFC8231"/></t>
        </section>
        <section title="The PCUpd Message">
          <t>Path Computation Update Request (PCUpd) is a PCEP message sent by a
      PCE to a PCC to update LSP parameters, on one or more LSPs as per <xref target="RFC8231"/>. Each
      LSP Update Request on a PCUpd message contains all LSP
      parameters that a PCE wishes to be set for a given LSP. In case of 
      scheduled LSP, the scheduled TLVs MUST be carried in the LSP
      object and the ERO conveys the intended path for the scheduled LSP. In case
      no path can be found, an empty ERO is used. The A bit is used in PCUpd message to indicate the activation of the scheduled LSP in 
      case the PCE is responsible for the activation (as per the C bit).</t>
<!--
      This message is also 
      used to synchronize the scheduled LSPs to other PCE as described in <xref target="I-D.litkowski-pce-state-sync"/>.</t>
-->
          <!--<t>To provide scheduled LSP for TE-LSPs, the stateful PCE SHALL
          compute the path for the scheduled LSP based on network resource
          availability recorded in scheduled TED which is generated from the
          scheduled LSP-DB, LSP-DB and TED.</t>

          <t>If the request can be satisfied and an available path is found,
          the stateful PCE SHALL send a PCUpd Message including the SCHED-
          LSP-ATTRIBUTE TLV or SCHED-PD-LSP-ATTRIBUTE TLV in the LSP Object
          body to the PCC. Note that, the stateful PCE can update the Scheduled
          LSP parameters later as well based on any network events using the
          same PCUpd message.</t>

          <t>If conflicts happen or no path available is found, the requesting
          PCE SHALL return a PCUpd message with empty ERO as described in <xref target="RFC8231"/>.</t>-->

          <!-- removed by dhruv, as this is incorrect
          <t>If no path is found, the stateful PCE sends a PCUpd message with
          the NO Path Object. The definition of the PCUpd message to carry LSP
          objects(see <xref target="RFC8231"/>) is unchanged. </t> -->
        </section>
        <section title="The PCInitiate Message">
          <t>An LSP Initiate Request (PCInitiate) message is a PCEP message sent
          by a PCE to a PCC to trigger LSP instantiation or deletion as per <xref target="RFC8281"/>. 
          In case of scheduled LSP, based on the local policy, PCE MAY convey the scheduled LSP to the PCC by including 
          the scheduled TLVs in the LSP object. Or the PCE would initiate the LSP only at the start time of the
          scheduled LSP as per the <xref target="RFC8281"/> without the use of scheduled TLVs.</t>

        </section>
        <section title="The PCReq message">
          <t>The Path Computation Request (PCReq) message is a PCEP message sent 
            by a PCC to a PCE to request a path computation <xref target="RFC5440"/> and it may 
            contain the LSP object <xref target="RFC8231"/> to identify the LSP for which the path 
            computation is requested. In case of scheduled LSP, the scheduled TLVs 
            MUST be carried in the LSP object in PCReq message to request the 
            path computation based on scheduled TED and LSP-DB. A PCC MAY use
            PCReq message to obtain the scheduled path before delegating the 
            LSP.</t>

          <!--<t>After scheduled LSP capability negotiation, for PCC-Initiated
          mode, a PCC can send a PCReq message including the
          SCHED-LSP-ATTRIBUTE TLV (see section 4.3.4.1) or
          SCHED-PD-LSP-ATTRIBUTE TLV (see section 4.3.4.2) carried in the LSP
          Object (see section 4.3.4) body to indicate the requested LSP
          scheduling parameters for a customer's traffic service with the
          delegation bit set to 1 in LSP Object. The value of requested
          bandwidth is taken via the existing 'Requested Bandwidth with
          BANDWIDTH Object-Type as 1' defined in <xref target="RFC5440"/>.</t>

          <t>Meanwhile, for both modes (PCC-Initiated and PCE-Initiated), the
          delegated PCE shall distribute the scheduling information to other
          PCEs in the environment by sending a PCRpt message with the
          SCHED-LSP-ATTRIBUTE TLV or SCHED-PD-LSP-ATTRIBUTE TLV, as well as
          the Bandwith Object and RRO for the found path.</t>

          <t>The definition of the PCReq message and PCRpt message to carry
          LSP objects (see [I-D.ietf-pce-stateful-pce]) remains
          unchanged.</t>-->
        </section>

        <section title="The PCRep Message">
          <t>The Path Computation Reply (PCRep) message is a PCEP message sent by a PCE to a PCC in reply to a path
      computation request <xref target="RFC5440"/> and it may 
            contain the LSP object <xref target="RFC8231"/> to identify the LSP for which the path 
            is computed.  A PCRep message can contain either a set of
      computed paths if the request can be satisfied, or a negative
      reply if not.  The negative reply may indicate the reason why no
      path could be found. In case of scheduled LSP, the scheduled TLVs 
            MUST be carried in the LSP object in PCRep message to indicate the 
            path computation based on scheduled TED and LSP-DB. A PCC and PCE MAY use
            PCReq and PCRep message to obtain the scheduled path before delegating the 
            LSP.</t>
          <!--<t>To provide scheduled LSP for TE-LSPs, the stateful PCE SHALL
          compute the path for the scheduled LSP carried on PCReq message
          based on network resource availability recorded in scheduled TED
          which is generated from the scheduled LSP-DB and TED and also
          synchronize the scheduling with other PCEs in the environment by
          using PCRpt message with path and resource information for the
          scheduled LSP.</t>

          <t>If no conflict exists, other PCEs SHALL update their scheduled
          LSP-DBs and scheduled TED.</t>

          <t>If the LSP request can be satisfied and an available path is
          found, the stateful PCE SHALL send a PCRep Message including the
          SCHED-LSP-ATTRIBUTE TLV or SCHED-PD-LSP-ATTRIBUTE TLV in the LSP
          Object body, as well as the Bandwith Object and RRO for the found
          path back to the PCC as a successful acknowledge.</t>

          <t>If conflicts happen or no path available is found, the requesting
          PCE SHALL return a PCRep message with NO PATH back to the PCC.</t>-->
        </section>
        <section title="The PCErr Message">
          <t>The Path Computation Error (PCErr) message is a PCEP message as described in <xref target="RFC5440"/> for error reporting. The current document defines new error values
   for several error types to cover failures specific to scheduling and reuse the applicable error types and error values of <xref target="RFC5440"/> and <xref target="RFC8231"/>
   wherever appropriate.</t>
   <t>The PCEP extensions for scheduling MUST NOT be used if one or both
   PCEP speakers have not set the corresponding bits in the STATEFUL-PCE-CAPABILITY TLV in
   their respective OPEN message.  If the PCEP speaker 
   supports the extensions of this specification but did not advertise
   this capability, then upon receipt of LSP object with the scheduled TLV,
   it MUST generate a PCEP Error (PCErr) with Error-type=19 (Invalid
   Operation) and error-value TBD6 (Attempted LSP Scheduling if the
   scheduling capability was not advertised), and it
   SHOULD ignore the TLV. As per Section 7.1 of <xref target="RFC5440"/>, a legacy PCEP implementation that does not understand this specification, would consider the scheduled TLVs as unknown and ignore them.</t>
   <t>If the PCC
   decides that the scheduling parameters proposed in the PCUpd/PCInitiate message are
   unacceptable, it MUST report this error by including the
   LSP-ERROR-CODE TLV (Section 7.3.3) with LSP error-value="Unacceptable
   parameters" in the LSP object (with scheduled TLVs) in the PCRpt message to the PCE.</t>
   <t>The scheduled TLVs MUST be included in the LSP object for the scheduled LSPs, if the TLV is
   missing, the receiving PCEP speaker MUST send a PCErr message with
   Error-type=6 (Mandatory Object missing) and Error-value TBD5 (Scheduled TLV
   missing).</t>
        </section>
      </section>

<section title="Implementation Status" anchor="imps">

  <t>[NOTE TO RFC EDITOR : This whole section and the reference to RFC 7942
      is to be removed before publication as an RFC]</t>

  <t>This section records the status of known implementations of the
     protocol defined by this specification at the time of posting of
     this Internet-Draft, and is based on a proposal described in
     <xref target="RFC7942"/>.  The description of implementations in this section is
     intended to assist the IETF in its decision processes in
     progressing drafts to RFCs.  Please note that the listing of any
     individual implementation here does not imply endorsement by the
     IETF.  Furthermore, no effort has been spent to verify the
     information presented here that was supplied by IETF contributors.
     This is not intended as, and must not be construed to be, a
     catalog of available implementations or their features.  Readers
     are advised to note that other implementations may exist.</t>

  <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working
     groups to assign due consideration to documents that have the
     benefit of running code, which may serve as evidence of valuable
     experimentation and feedback that have made the implemented
     protocols more mature.  It is up to the individual working groups
     to use this information as they see fit".</t>

  <t>At the time of posting the -09 version of this document, there are no known
     implementations of this mechanism.  It is believed that two vendors/organizations are
     considering prototype implementations, but these plans are too vague to
     make any further assertions.</t>

</section> 
   
    <section title="Security Considerations">
      <t>This document defines LSP-SCHEDULING-CAPABILITY TLV and 
      SCHED-LSP-ATTRIBUTE TLV, the security considerations
      discussed in <xref target="RFC5440"/>, <xref target="RFC8231"/>, and <xref target="RFC8281"/> continue to apply. In some deployments
      the scheduling information could provide details about the network
      operations that could be deemed as extra sensitive.  
     Additionally, snooping of PCEP messages
   with such data or using PCEP messages for network reconnaissance may
   give an attacker sensitive information about the operations of the
   network.  
   A single PCEP message can now instruct a PCC to set up and tear down 
   an LSP every second for a number of times. That single message could  
   have a significant effect on the network.  

   Thus, such deployment should employ suitable PCEP security mechanisms 
   like TCP Authentication Option (TCP-AO) <xref target="RFC5925"/> or
   <xref target="RFC8253"/>.  The procedure based on Transport Layer Security (TLS) in
   <xref target="RFC8253"/> is considered a security enhancement and thus is much better
   suited for the sensitive information.

   PCCs may also need to apply some form of rate limit to the processing of 
   scheduled LSPs.</t>
    </section>

    <section title="Manageability Consideration">
      <section title="Control of Function and Policy">
        <t>The LSP-Scheduling feature MUST BE controlled per tunnel by the
        active stateful PCE, the values for parameters like starting time,
        duration SHOULD BE configurable by customer applications and based on
        the local policy at PCE. 
        The suggested default values for starting time and duration are 
        one day in seconds from the current time and one year in seconds 
        respectively. 
        One day has 86,400 seconds. One year has 31,536,000 seconds.</t>

        <t>When configuring the parameters about time, a user SHOULD 
        consider leap-years and leap-seconds.</t>
      </section>

      <section title="Information and Data Models">
        <t> An implementation SHOULD allow the operator to view the capability
   defined in this document.  To serve this purpose, the PCEP YANG
   module <xref target="I-D.ietf-pce-pcep-yang"/> could be extended.</t>
      </section>

      <section title="Liveness Detection and Monitoring">
        <t>Mechanisms defined in this document do not imply any new liveness
        detection and monitoring requirements in addition to those already
        listed in <xref target="RFC5440"/>.</t>
      </section>

      <section title="Verify Correct Operations">
        <t>Mechanisms defined in this document do not imply any new operation
        verification requirements in addition to those already listed in
        <xref target="RFC5440"/>.</t>
      </section>

      <section title="Requirements On Other Protocols">
        <t>Mechanisms defined in this document do not imply any new
        requirements on other protocols.</t>
      </section>

      <section title="Impact On Network Operations">
        <t>Mechanisms defined in this document do not have any impact on
        network operations in addition to those already listed in
        <xref target="RFC5440"/>.</t>
      </section>
    </section>

    <section title="IANA Considerations">
      <section title="PCEP TLV Type Indicators">
        <t>This document defines the following new PCEP TLVs. IANA 
        maintains a sub-registry "PCEP TLV Type Indicators" in the
        "Path Computation Element Protocol (PCEP) Numbers" registry. IANA is requested
        to make the following allocations from this sub-registry. <figure>
            <artwork>Value     Meaning                         Reference
 TBD1 SCHED-LSP-ATTRIBUTE                 This document
 TBD2 SCHED-PD-LSP-ATTRIBUTE              This document</artwork>
          </figure></t>

      <section title="Opt Field in SCHED-PD-LSP-ATTRIBUTE TLV">
<t>IANA is requested to create and maintain a new
sub-registry named "SCHED-PD-LSP-ATTRIBUTE TLV Opt field" 
within the "Path Computation Element Protocol (PCEP) Numbers" registry.
Initial values for the sub-registry are given below. 

New values are assigned by Standards Action <xref target="RFC8126"/>.</t>
<figure>
  <artwork>  
  Value    Name                              Reference
  -----    ----                              ----------
   0       Reserved 
   1       REPEAT-EVERY-DAY                  This document
   2       REPEAT-EVERY-WEEK                 This document
   3       REPEAT-EVERY-MONTH                This document
   4       REPEAT-EVERY-YEAR                 This document
   5       REPEAT-EVERY-REPEAT-TIME-LENGTH   This document
   6-14    Unassigned
   15      Reserved
  </artwork>
</figure>
       </section>

      <section title="Schedule TLVs Flag Field">
      <t>IANA is requested to create a new sub-registry, 
   named "Schedule TLVs Flag Field",
   within the "Path Computation Element Protocol (PCEP)
   Numbers" registry.
   New values are
   assigned by Standards Action <xref target="RFC8126"/>.  Each bit should be tracked
   with the following qualities:
   <list style="symbols">
   <t>Bit number (counting from bit 0 as the most significant bit)</t>
   <t>Capability description</t>
   <t>Defining RFC</t></list>
   </t>

   <t>The following values are defined in this document:<figure>
            <artwork>
Bit    Description                                    Reference
0-3    Unassigned
4      R-bit                                          This document
5      C-bit                                          This document
6      A-bit                                          This document
7      G-bit                                          This document</artwork>
          </figure></t>
    </section>
      </section>

      <section title="STATEFUL-PCE-CAPABILITY TLV Flag field">
        <t>This document defines new bits in the Flags field in the 
          STATEFUL-PCE-CAPABILITY TLV in the OPEN object. IANA 
        maintains a sub-registry "STATEFUL-PCE-CAPABILITY TLV Flag Field" in the
        "Path Computation Element Protocol (PCEP) Numbers" registry. IANA is requested
        to make the following allocations from this sub-registry.</t> 

        <t>The following values are defined in this document:<figure>
            <artwork>Bit    Description                                 Reference
 TBD3   LSP-SCHEDULING-CAPABILITY (B-bit)          This document
 TBD4   PD-LSP-CAPABLITY (PD-bit)                  This document</artwork>
          </figure></t>

      </section>

    <section title="PCEP-Error Object">
      <t>IANA is requested to allocate the following new error types to the existing error values 
   within the "PCEP-ERROR Object Error Types and Values" subregistry of
   the "Path Computation Element Protocol (PCEP) Numbers" registry:<figure><artwork>
   Error-Type  Meaning
      6        Mandatory Object missing

                Error-value
                TBD5:  Scheduled TLV missing

      19       Invalid Operation

                Error-value
                TBD6: Attempted LSP Scheduling if the scheduling
                      capability was not advertised

      29       Path computation failure

                Error-value
                TBD7: Constraints could not be met for some intervals
</artwork></figure>
 </t>

    </section>
  </section>

    <section title="Acknowledgments">
      <t>The authors of this document would also like to thank Rafal
      Szarecki, Adrian Farrel, Cyril Margaria for the review and comments.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.5440'?>
      
      <?rfc include="reference.RFC.8126"?>
      <?rfc include="reference.RFC.8174"?>
      <?rfc include="reference.RFC.8231"?>
      <?rfc include="reference.RFC.8232"?>

      <!--<?rfc include="reference.I-D.ietf-pce-stateful-sync-optimizations"?>-->

      <?rfc include="reference.RFC.8281"?>

      <!--<?rfc include="reference.I-D.ietf-pce-stateful-pce-auto-bandwidth"?>-->

      
    </references>

    <!-- Normative -->

    <references title="Informative References">
      
      

      <!--<?rfc include='reference.RFC.5226'?>-->

      <?rfc include='reference.RFC.5925'?>
      
      <?rfc include='reference.RFC.7399'?>
      <?rfc include='reference.RFC.7942'?>
      <!--<?rfc include='reference.RFC.7420'?>-->
      <?rfc include="reference.RFC.8051"?>
      <?rfc include="reference.RFC.8253"?>
      <?rfc include="reference.RFC.8402"?>
      <?rfc include="reference.RFC.8413"?>
      <?rfc include="reference.I-D.ietf-pce-pcep-yang"?>
      <?rfc include="reference.I-D.ietf-detnet-architecture"?> 
      <?rfc include="reference.I-D.litkowski-pce-state-sync"?>      
    </references>

<!--
    <section title="Scheduled LSP information synchronization">
      <t>As for a stateful PCE, it maintains a database of LSPs (LSP-DB) that
      are active in the network, so as to reveal the available network
      resources and place new LSPs more cleverly.</t>

      <t>With the scheduled LSPs, they are not activated while creation, but
      should be considered when operating future path computation. Hence, a
      scheduled LSP Database (SLSP-DB) is suggested to maintain all scheduled
      LSP information.</t>

      <t>The information of SLSP-DB MUST be shared and synchronized among all
      PCEs within the centralized network by using PCRpt and PCUpd message with
      scheduled LSP information as per the mechanism described in <xref target="I-D.litkowski-pce-state-sync"/>. </t>

      <t>The PCE should generate and maintain
      a scheduled TED based on LSP-DB, scheduled LSP-DB and TED, which is used
      to indicate the network resource availability on network nodes for LSP
      path computation.</t>
    </section>
-->
    <section title="Contributors Addresses">
      <figure>
        <artwork>   Dhruv Dhody
   Huawei
   Divyashree Techno Park, Whitefield
   Bangalore, Karnataka  560066
   India

   Email: dhruv.ietf@gmail.com

   Xufeng Liu
   Ericsson
   USA
   Email: xliu@kuatrotech.com

   Mehmet Toy
   Verizon
   USA
   Email: mehmet.toy@verizon.com

   Vic Liu
   China Mobile
   No.32 Xuanwumen West Street, Xicheng District
   Beijing,   100053
   China
   Email: liu.cmri@gmail.com

   Lei Liu
   Fujitsu
   USA
   Email: lliu@us.fujitsu.com

   Khuzema Pithewan
   Infinera
   Email: kpithewan@infinera.com

   Zitao Wang
   Huawei
   101 Software Avenue, Yuhua District
   Nanjing, Jiangsu  210012
   China

   Email: wangzitao@huawei.com

   Xian Zhang
   Huawei Technologies
   Research Area F3-1B,
   Huawei Industrial Base,
   Shenzhen, 518129, China

   Email: zhang.xian@huawei.com</artwork>
      </figure>
    </section>

    <!-- Informative -->
  </back>
</rfc>
