<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-zhang-pce-enhanced-detnet-05"
     ipr="trust200902">
  <front>
    <title abbrev="Abbreviated-Title">PCEP for Enhanced DetNet</title>

    <author fullname="Li Zhang" initials="L." surname="Zhang">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <phone/>

        <facsimile/>

        <email>zhangli344@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Xuesong Geng" initials="X." surname="Geng">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <phone/>

        <facsimile/>

        <email>gengxuesong@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Tianran Zhou" initials="T." surname="Zhou">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <phone/>

        <facsimile/>

        <email>zhoutianran@huawei.com</email>

        <uri/>
      </address>
    </author>

    <date day="29" month="June" year="2024"/>

    <abstract>
      <t>PCEP is used to provide a communication between a PCC and a PCE. This
      document defines the extensions to PCEP to support the bounded- latency
      path computation. Specifically, two new objects and three new TLVs are
      defined for the transmission of bounded latency information between PCC
      and PCE to guarantee the bounded latency transmission in control
      plane.</t>
    </abstract>

    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t><xref target="RFC8665"/> provides the overall architecture for
      Deterministic Networking (DetNet), which provides the capability to
      carry specified unicast or multicast data flows with extremely low data
      loss rates and bounded end-to-end latency within a network domain. Based
      on this, [draft-finn-detnet-bounded-latency] proposed a timing model for
      sources, destinations, and DetNet transit nodes. Using the model, it
      provides a methodology to compute end-to-end latency and backlog bounds
      for various queuing methods.</t>

      <t><xref target="RFC5440"/> describes the Path Computation Element
      Protocol (PCEP) for communications between a Path Computation Client
      (PCC) and a Path Computation Element (PCE), or between two PCEs. PCEP
      defines the interaction and data format of path calculation requests and
      path computation replies between PCC and PCE.<xref target="RFC8231">
      </xref> specifies extension to PCEP to enable stateful control of LSPs
      within and across PCEP sessions in compliance with<xref
      target="RFC4657"/>.<xref target="I-D.yzz-detnet-enhanced-data-plane">
      </xref> enhances the DetNet data plane by introducing Bounded Latency
      Information (BLI) which facilitates DetNet transit nodes to guarantee
      the bounded latency transmission in data plane. Based on that,<xref
      target="I-D.geng-spring-sr-enhanced-detnet"/> defines how to leverage
      Segment Routing (SR) and Segment Routing over IPv6 (SRv6) to implement
      bounded latency.</t>

      <t>When a PCE is used to compute paths using PCEP, it is important that
      the PCE understands the bounded latency requirement and the head end of
      the path also need to understands the bounded latency information
      associated with the candidate path.</t>

      <t>This document defines the extensions to PCEP to support the bounded-
      latency path computation. Specifically, two new objects and three new
      TLVs are defined for the transmission of bounded latency information
      between PCC and PCE to guarantee the bounded latency transmission in
      control plane.</t>
    </section>

    <section title="Terminology">
      <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<xref
      target="RFC2119"/>.</t>
    </section>

    <section title="Object Formats">
      <t/>

      <section title="Open Object">
        <t><xref target="RFC5440"/> defines the Open object in open message
        used to specify the PCEP version, Keepalive frequency, DeadTimer, PCEP
        session ID, and other communication parameters. The Open object may
        also contain a set of TLVs used to convey various session
        characteristics.</t>

        <section title="Bounded Latency Capability TLV">
          <t>During the PCEP initialization phase, PCEP speakers SHOULD
          advertise their support of Bounded Latency features, for this reason
          this document defines the Bounded Latency capability TLV.</t>

          <t>A PCEP speaker includes the Bounded Latency capability TLV in the
          Open object to advertise its support for Bounded Latency features.
          The format of the Bounded Latency capability TLV is formatted as
          follows:</t>

          <t><figure>
              <artwork><![CDATA[ 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=4           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Type Flag           |            Reserved           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure>Type: To be assigned by IANA.</t>

          <t>Length: 16 bits value to indicate the length of the value portion
          in bytes.</t>

          <t>Type-Flag: 16 bits of flags to indicate which kind of BLI Type
          the speaker supports. A new registry &ldquo;Bounded Latency Type
          Flags&rdquo; is expected to be created. Table 1 shows the assignment
          of Bounded Latency Type Flags. The speaker sets the defined bit in
          flag to indicate that it supports this Type of BLI. The undefined
          bits MUST be set to zero by the sender and MUST be ignored by the
          receiver.<figure>
              <artwork><![CDATA[+----------------+---------------------------------------+---------------------------------------+
|       Bit      |                BLI Type               |               BLI Format              |
+----------------+---------------------------------------+---------------------------------------+
|        0       |               Reserved                |               Undefined               |
+----------------+---------------------------------------+---------------------------------------+
|        1       |           Time resource ID            |        32-bit unsigned Integer        |
+----------------+---------------------------------------+---------------------------------------+
|        2       |               Priority                |         8-bit unsigned Integer        |
+----------------+---------------------------------------+---------------------------------------+
|        3       |        End-to-end delay budget        |        32-bit unsigned Integer        |
+----------------+---------------------------------------+---------------------------------------+
|        4       |           Local delay budget          |        32-bit unsigned Integer        |
+----------------+---------------------------------------+---------------------------------------+
|        5       |                Reserved               |              Undefined                |
+----------------+---------------------------------------+---------------------------------------+
|        6       |                Reserved               |              Undefined                |
+----------------+---------------------------------------+---------------------------------------+
|        7       |   End-to-end delay variation budget   |       16-bit unsigned Integer         |
+----------------+---------------------------------------+---------------------------------------+
|        8       |      Local delay variation budget     |       16-bit unsigned Integer         |
+----------------+---------------------------------------+---------------------------------------+
|      9-15      |               Undefined               |              Undefined                |
+----------------+---------------------------------------+---------------------------------------+
]]></artwork>
            </figure>Table1: The BLI type and format of each bit flag</t>

          <t/>
        </section>
      </section>

      <section title="RP Object">
        <t>The RP (Request Parameters) object is defined in<xref
        target="RFC5440"/>, used to specify various characteristics of the
        path computation request and MUST be carried within each PCReq and
        PCRep messages. The format of RP object is as follows:</t>

        <t><figure>
            <artwork><![CDATA[ 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Flags                    |O|B|R| Pri |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Request-ID-number                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//                      Optional TLVs                          //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>The detail information about the fields in the RP object is
        defined in section 7.4 of<xref target="RFC5440"/>.</t>

        <t/>

        <section title="BLI Type TLV">
          <t>In order to specify the type and format of the BLI associated
          with candidate path, this document defines a new TLV named BLI type
          TLV. The BLI type TLV is formatted as follow:</t>

          <t><figure>
              <artwork><![CDATA[ 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=4           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    BLI Type   |                   Reserved                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure>Where:</t>

          <t>Type: to be assigned by IANA.</t>

          <t>Length: 16 bits value to indicate the length of the value portion
          in bytes. The value of this field is 4.</t>

          <t>BLI Type: 8 bits value to indicate the type of BLI that PCC
          desires. Table 3 shows the values and their corresponding BLI
          types.</t>

          <t><figure>
              <artwork><![CDATA[+----------------+---------------------------------------+---------------------------------------+
| BLI Type Value |      Bounded Latency Information      |                 Format                |
+----------------+---------------------------------------+---------------------------------------+
|        0       |               Reserved                |                Undefined              |
+----------------+---------------------------------------+---------------------------------------+
|        1       |           Time resource ID            |          32-bit unsigned Integer      |
+----------------+---------------------------------------+---------------------------------------+
|        2       |               Priority                |         8-bit unsigned Integer        |
+----------------+---------------------------------------+---------------------------------------+
|        3       |   End-to-end delay variation budget   |        16-bit unsigned Integer        |
+----------------+---------------------------------------+---------------------------------------+
|        4       |           Local delay budget          |        32-bit unsigned Integer        |
+----------------+---------------------------------------+---------------------------------------+
|        5       |     End-to-end queue delay budget     |        32-bit unsigned Integer        |
+----------------+---------------------------------------+---------------------------------------+
|        6       |        Local queue delay budget       |        32-bit unsigned Integer        |
+----------------+---------------------------------------+---------------------------------------+
]]></artwork>
            </figure>Table2: The BLI type and format of each value</t>

          <t>When PCC needs to request a bounded-latency path, it MUST include
          the BLI Type TLV in the RP object in PCReq message. If a PCC
          includes an BLI Type TLV on a path calculation request, then the PCE
          will reply the specific type of BLI associated with computed
          path.</t>
        </section>
      </section>

      <section title="Traffic Model Object">
        <t>The Traffic Model Object is optional in the PCReq message and used
        to specify the traffic model for the bounded-latency path computation.
        The traffic model object contains a set of fields used to specify the
        traffic features.<xref target="RFC9016"/> defines the traffic
        specification of the DetNet flow, which includes a set of attributes
        to specify how the DetNet Ingress transmits packets for the DetNet
        flow. Based on that, this document proposes the Traffic Model Object
        to describe the DetNet flow for bounded-latency path computation.</t>

        <t>Traffic Model Object-Class is TBD3;</t>

        <t>Traffic Model Object-Type is 1.</t>

        <t>The format of the Traffic Model Object is shown in below:</t>

        <t><figure>
            <artwork><![CDATA[ 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Traffic ID          |            Flags              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     MinPacketsPerInterval     |     MaxPacketsPerInterval     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         MinPayloadSize        |       MaxPayloadSize          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Interval                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         MinBandwidth                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          MaxLatency                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      MaxLatencyVariation                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//                       Optional TLVs                         //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>Where:</t>

        <t>Traffic ID: The only identification of the specify traffic in PCC.
        When the PCC need to request a path computation for a traffic, it MUST
        assign a 16-bit traffic identifier to specify the traffic in
        local.</t>

        <t>Flags: 16 bits of flags. A new registry &ldquo;Traffic Model
        Flags&rdquo; is expected to be created. At the writing time, all flags
        are unused and undefined.</t>

        <t>MinPacketsPerInterval: the minimum number of packets that the
        Ingress will transmit in one Interval.</t>

        <t>MaxPacketsPerInterval: the maximum number of packets that the
        Ingress will transmit in one Interval.</t>

        <t>MinPayloadSize: the minimum payload size that the Ingress will
        transmit.</t>

        <t>MaxPayloadSize: the maximum payload size that the Ingress will
        transmit.</t>

        <t>Interval: the period of time in which the traffic specification is
        specified.</t>

        <t>MinBandwith: the minimum bandwidth that has to be guaranteed for
        the DetNet traffic.</t>

        <t>MaxLatency: the end-to-end maximum latency for a single packet of
        the DetNet traffic.</t>

        <t>MaxLatencyVariation: the difference between the minimum and the
        maximum end-to-end, one-way latency.</t>

        <t>The Traffic Model object body has a variable length and may contain
        TLVs for the additional attributes of the traffic model. At the
        writing time there is no TLV defined for Traffic Mode Object.</t>
      </section>

      <section title="BLI Object">
        <t>In order to support the bounded-latency path computation, a new
        kind of object named BLI object is defined in this document to
        indicate the bounded latency information of a candidate path.</t>

        <t>The BLI object is optionally carried within a PCRep message so as
        to indicate the requirement and resource allocation for the candidate
        path. When a PCC request a bounded-latency path computation and the
        PCE find out a path satisfying the set of constraints, the PCE MUST
        include the BLI object in PCRep message.</t>

        <t>BLI Object-Class is TBD4.</t>

        <t>BLI Object-Type is 1.</t>

        <t>The format of BLI object is as follows:</t>

        <t><figure>
            <artwork><![CDATA[ 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//                       Optional TLVs                         //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>The BLI object body has a variable length and may contain
        TLVs for the different kinds of BLI. This document defines two kinds
        of BLI TLV for different scenarios.</t>

        <section title="BLI List TLV">
          <t>When all of the nodes in the Explicit Route Object (ERO)<xref
          target="RFC5440"/> request different BLI to guarantee bounded
          latency, a BLI list TLV is defined.</t>

          <t>The BLI list sub-TLV is formatted as follows.</t>

          <t><figure>
              <artwork><![CDATA[ 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=TBD5          |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        BLI List [m]                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             ...                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        BLI List [1]                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure>Where:</t>

          <t>Type: to be assigned by IANA.</t>

          <t>Length: 16 bits length value to indicate the length of BLI list
          in octet.</t>

          <t>BLI List [1&hellip; m]: 32 bits length bounded latency
          information, representing the nth BLI in the BLI list.</t>

          <t>The BLI in the BLI List corresponds to the node in the ERO object
          one by one. The length of the BLI List depends on the number of
          nodes in the ERO object.</t>
        </section>

        <section title="Shared BLI TLV">
          <t>When all of the nodes in the ERO indicated by the sub-object list
          request BLI to guarantee bounded latency with the same BLI value,
          the Shared BLI TLV is defined.</t>

          <t>The Shared BLI TLV is defined as follows:</t>

          <t><figure>
              <artwork><![CDATA[ 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=TBD6           |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              BLI                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure>Where:</t>

          <t>Type: to be assigned by IANA.</t>

          <t>Length: 16 bits value to indicate the length of BLI in octet.</t>

          <t>BLI: 32 bits value of Bounded Latency Information to guarantee
          the bounded latency.</t>
        </section>
      </section>
    </section>

    <section title="SR Policy for BLI">
      <t><xref target="I-D.ietf-pce-segment-routing-policy-cp"/> proposes
      extension to PCEP to support association among candidate paths of a
      given SR policy. For the bounded latency path, the additional bounded
      latency information associated with the candidate path SHOULD be carried
      with SR Policy. Therefore, the additional BLI TLV SHOULD be defined to
      indicate the bounded-latency requirement and resources allocation for
      the nodes along the candidate path. For different scenario, different
      BLI TLV need to be carried by SR policy.</t>

      <t>When all of the nodes/adjacencies in the explicit path indicated by
      the segment list request different BLI to guarantee bounded latency, a
      BLI list TLV is need to be carried by SR Policy. The BLI list TLV is
      defined in section 3.4.1.</t>

      <t>When all of the nodes/adjacencies in the explicit path indicated by
      the segment list request BLI to guarantee bounded latency with the same
      BLI value, a Shared BLI TLV is need to be carried by SR Policy. The
      Shared BLI TLV is defined in section 3.4.2.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document defines four new TLVs and two new Object.</t>

      <section title="New TLV Type">
        <t><figure>
            <artwork><![CDATA[+-----------------+---------------------------------+----------------+  
|       Value     |               Name              |     Reference  |
+-----------------+---------------------------------+----------------+
|       TBD1      | Bounded-Latency Capability TLV  | This document  |
+-----------------+---------------------------------+----------------+
|       TBD2      |          BLI Type TLV           | This document  |
+-----------------+---------------------------------+----------------+
|       TBD5      |          BLI list TLV           | This document  |
+-----------------+---------------------------------+----------------+
|       TBD6      |         Shared BLI TLV          | This document  |
+-----------------+---------------------------------+----------------+

]]></artwork>
          </figure></t>
      </section>

      <section title="New Object">
        <t>IANA is requested to make the assignment from the &ldquo;PCEP
        Object&rdquo; sub-registry as follows:</t>

        <t><figure>
            <artwork><![CDATA[+-----------------+---------------------------------+----------------+  
|       Value     |               Name              |     Reference  |
+-----------------+---------------------------------+----------------+
|       TBD3      |        Traffic Model Object     | This document  |
+-----------------+---------------------------------+----------------+
|       TBD4      |           BLI Object            | This document  |
+-----------------+---------------------------------+----------------+
]]></artwork>
          </figure></t>
      </section>
    </section>

    <section title="Security Considerations">
      <t>TBD</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t/>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include='reference.RFC.8665'?>

      <?rfc include='reference.RFC.5440'?>

      <?rfc include='reference.RFC.8231'?>

      <?rfc include='reference.RFC.4657'?>

      <?rfc include='reference.RFC.9016'?>

      <?rfc include='reference.I-D.ietf-pce-segment-routing-policy-cp'?>

      <?rfc include='reference.I-D.yzz-detnet-enhanced-data-plane'?>

      <?rfc include='reference.I-D.geng-spring-sr-enhanced-detnet'?>
    </references>
  </back>
</rfc>
