<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
<!ENTITY nbsp    "&#160;">
<!ENTITY zwsp   "&#8203;">
<!ENTITY nbhy   "&#8209;">
<!ENTITY wj     "&#8288;">

<!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC4655 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4655.xml">
<!ENTITY RFC5357 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5357.xml">
<!ENTITY RFC5440 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5440.xml">
<!ENTITY RFC5925 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5925.xml">
<!ENTITY RFC6374 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6374.xml">
<!ENTITY RFC7420 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7420.xml">
<!ENTITY RFC7470 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7470.xml">
<!ENTITY RFC7471 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7471.xml">
<!ENTITY RFC7823 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7823.xml">
<!ENTITY RFC8126 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8231 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8231.xml">
<!ENTITY RFC8233 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8233.xml">
<!ENTITY RFC8253 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8253.xml">
<!ENTITY RFC8281 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8281.xml">
<!ENTITY RFC8408 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8408.xml">
<!ENTITY RFC8570 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8570.xml">
<!ENTITY RFC8571 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8571.xml">
<!ENTITY RFC8664 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8664.xml">
<!ENTITY RFC8733 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8733.xml">
<!ENTITY RFC8762 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8762.xml">
<!ENTITY RFC9603 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9603.xml">
<!ENTITY RFC9779 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9779.xml">
<!ENTITY RFC9826 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9826.xml">
<!ENTITY I-D.ietf-pce-multipath SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pce-multipath.xml">
<!ENTITY I-D.ietf-spring-stamp-srpm-srv6 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-spring-stamp-srpm-srv6.xml">
<!ENTITY I-D.ietf-spring-stamp-srpm-mpls SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-spring-stamp-srpm-mpls.xml">
<!ENTITY ieee-float PUBLIC '' "http://xml.resource.org/public/rfc/bibxml2/reference.IEEE.754.1985.xml">

]>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" docName="draft-gandhi-pce-pm-11" category="std" ipr="trust200902" obsoletes="" consensus="true" updates="" xml:lang="en" symRefs="true" sortRefs="true" tocInclude="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <!-- Generated by id2xml 1.5.2 on 2025-10-30T16:44:01Z -->
    <front>
    <title abbrev="PCEP for LSP Performance Measurement">PCEP Extensions for Performance Measurements for SR-TE and MPLS-TE LSPs with Stateful PCE</title>
    <seriesInfo name="Internet-Draft" value="draft-gandhi-pce-pm-11"/>

    <author initials="R." surname="Gandhi" fullname="Rakesh Gandhi">
      <organization>Cisco Systems, Inc.</organization>
    <address>
    <postal><street>Canada</street>
    </postal>
        <email>rgandhi@cisco.com</email>
    </address>
    </author>

    <author initials="B." surname="Wen" fullname="Bin Wen">
      <organization>Comcast</organization>
      <address>
        <email>Bin_Wen@cable.comcast.com</email>
      </address>
    </author>

    <author initials="C." surname="Barth" fullname="Colby Barth">
      <organization>HPE</organization>
      <address>
        <email>jonathan.barth@hpe.com</email>
      </address>
    </author>

    <author initials="D." surname="Dhody" fullname="Dhruv Dhody">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>India</street>
        </postal>
        <email>dhruv.ietf@gmail.com</email>
      </address>
    </author>

    <date year="2026"/>
    <workgroup>PCE Working Group</workgroup>
    <abstract>

   <t>
   In certain networks, network performance data such as packet loss,
   delay, and delay variation, as well as bandwidth utilization, 
   are critical measures for Traffic Engineering (TE).  These data
   provide operators with the characteristics of their networks for the 
   performance evaluation required to ensure the Service-Level
   Agreements (SLAs). 
   </t>

   <t>
   The Path Computation Element Communication Protocol (PCEP) provides
   mechanisms for Path Computation Elements (PCEs) to perform path
   computations in response to Path Computation Clients' (PCCs') requests.
   The Stateful PCE extensions allow stateful control of 
   Traffic Engineering LSPs for Segment Routing (SR) and RSVP using PCEP.
   </t>

   <t>
   This document describes PCEP extensions for enabling and reporting 
   end-to-end performance measurements and liveness detection for both PCE-Initiated and PCC-Initiated LSPs 
   for SR-TE over MPLS and IPv6 data planes and MPLS-TE to an Active Stateful PCE.
   </t>

    </abstract>
  </front>
  <middle>

    <section anchor="sect-1" numbered="true" toc="default">
      <name>Introduction</name>
   <t>
   <xref target="RFC5440" format="default"/> describes the Path Computation Element Protocol (PCEP) as a
   communication mechanism between a Path Computation Client (PCC) and a
   Path Computation Element (PCE), or between PCE and PCE, that enables
   computation of Traffic Engineering Label Switched Paths (TE LSPs).</t>

   <t>
   <xref target="RFC8231" format="default"/> specifies extensions to PCEP to enable stateful
   control of an LSP.  It describes two modes of operation - Passive
   Stateful PCE and Active Stateful PCE.  Further, <xref target="RFC8281" format="default"/> 
   describes the setup, maintenance, and teardown of PCE-Initiated
   LSPs for the Stateful PCE model.  In this document, the focus is on
   the Active Stateful PCE where the LSPs are controlled by the PCE, for
   both PCE-Initiated and PCC-Initiated LSPs.</t>

   <t>
   PCEP Extensions for Segment Routing (SR) <xref target="RFC8664" format="default"/> specifies extensions to
   the Path Computation Element Protocol (PCEP) that allow a stateful
   PCE to compute and initiate Traffic Engineering (TE) paths, as well
   as a PCC to request a path subject to certain constraints and
   optimization criteria for Segment Routing. <xref target="RFC9603" format="default"/> 
   extends PCEP for Segment Routing for the IPv6 data plane. 
   </t>

   <t>
   In certain networks, such as financial information networks, network
   performance data such as packet loss, delay and delay variation,
   and bandwidth utilization are critical measures for traffic
   engineering.  The protocol extensions have been defined to advertise
   link performance metrics; see <xref target="RFC7471" format="default"/>, 
   <xref target="RFC8570" format="default"/>, <xref target="RFC7823" format="default"/> and
   <xref target="RFC8571" format="default"/>.  These data provide operators with the
   characteristics of their networks for performance evaluation that is
   required to ensure the Service-Level Agreements (SLAs).</t>

   <t>
   <xref target="RFC8233" format="default"/> defines the PCEP extensions for LSP path
   computation using packet loss, delay, and delay variation as path
   selection metrics.  Such path computations use link metrics for
   packet loss and delay and do not provide end-to-end metrics of the TE
   LSPs.  The end-to-end metrics of an LSP may be very different from 
   the path computation results due to many factors, such as queuing,
   etc.  There is a need to monitor whether the traffic sent
   over the established LSPs exceeds the requested metric
   bounds such as end-to-end delay and loss.  The Stateful PCE may need
   to take some action (such as tearing down or re-optimizing the LSP) when
   the performance requirement is not met.
   <xref target="RFC8762" format="default"/> defines protocol extensions needed for measuring 
   packet loss, delay, and delay variation and can be used for end-to-end performance measurement of an LSP.
   </t>

   <t>
   This document describes PCEP extensions for enabling and reporting 
   end-to-end performance measurements (PM) such as packet loss, delay, delay variation,
   bandwidth utilization, as well as liveness detection for both PCE-Initiated and PCC-Initiated LSPs 
   for SR-TE over MPLS and IPv6 data planes and MPLS-TE using RSVP to an Active Stateful PCE.
   </t>

   <t>
   Note that the specification of the use of the reported
   packet loss, delay, delay variation, bandwidth utilization
   measurements, and liveness detection by a Stateful PCE is outside the scope of this document.</t>



      <section anchor="sect-1.2" numbered="true" toc="default">
          <name>Auto-bandwidth Considerations</name>
        <t>
   The auto-bandwidth feature allows a head-end LSR PCC to automatically
   adjust the LSP bandwidth reservation based on the traffic demand of an 
   LSP.  Auto-bandwidth requested bandwidth computation can be
   implemented on a PCC or a Stateful PCE.</t>

        <t>
   <xref target="RFC8733" format="default"/> describes the PCEP extensions for 
   auto-bandwidth, where the requested bandwidth for the LSP is computed by
   the PCC and reported to the Stateful PCE.  There is a benefit in
   pushing the responsibility for deciding when auto-bandwidth  
   adjustments are needed to the PCC as this distributes the load of
   monitoring the bandwidth utilization of the LSPs down to the PCCs and
   frees up the PCE for path computations.  In addition, it reduces the
   load on PCEP communications for reporting the bandwidth utilization
   of the LSP.</t>

   <t>
   However, exactly when to adjust an LSP bandwidth could be better left
   to a Stateful PCE.  That is, a PCE could be flexible in its
   interpretation of thresholds enabling it to trigger auto-bandwidth  
   adjustment early if it believes there is a good reason (for example,
   performing a set of parallel path recomputations) or late (for example,
   when it knows that an adjustment would be disruptive to the network).
   When the auto-bandwidth computation is delegated to the PCC, the PCC
   cannot see the impact on other LSPs in the network, and the PCE
   cannot tell whether the request to adjust the LSP bandwidth is
   critical or not.  The bandwidth utilization reporting defined in this
   document can be used by the PCE to do computations to determine
   whether auto-bandwidth adjustments are needed or desirable before
   performing the path computations.
        </t>

      </section>
    </section>

    <section anchor="sect-2" numbered="true" toc="default">
      <name>Conventions Used in This Document</name>
      <section anchor="sect-2.1" numbered="true" toc="default">
        <name>Requirements Language</name>

        <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" format="default"/> <xref target="RFC8174" format="default"/>
   when, and only when, they appear in all capitals, as shown here.
   </t>

      </section>

      <section anchor="sect-2.2" numbered="true" toc="default">
        <name>Terminology</name>

      <t>The reader is assumed to be familiar with the
      terminology defined in <xref target="RFC5440"/>, <xref target="RFC8231"/>, <xref target="RFC8281"/>, 
      <xref target="RFC8408"/>, and <xref target="RFC7471" format="default"/>.</t>

      <t>
      Label Switched Path (LSP):
      </t>
      <t>
      Note that the base PCEP specification <xref target="RFC4655"/> originally defined the use of the PCE architecture for MPLS and GMPLS networks
      with Label Switched Paths (LSPs) instantiated using the RSVP-TE signaling protocol. Over time, support for additional path setup types, such as
      the SR-TE Path Setup Type <xref target="RFC8664"/> and the SRv6 Path Setup Type <xref target="RFC9603"/>, have been introduced. 
      As specified in <xref target="RFC9603"/>,  the term "LSP"
      used in the PCEP specifications would be equivalent to an SRv6 path
      (represented as a list of SRv6 segments) in the context of supporting
      SRv6 in PCEP using the SRv6 Path Setup Type.
      </t>

      </section>

      <section anchor="sect-2.3" numbered="true" toc="default">
        <name>Measurement Units</name>
        <t>
   The measurement unit for the delay value is defined in <xref target="RFC7471" format="default"/>, Section 4.1.5.</t>
        <t>
   The measurement unit for the loss value is defined in <xref target="RFC7471" format="default"/>, Section 4.4.5.</t>
        <t>
   The utilized bandwidth <xref target="RFC7471" format="default"/> is encoded in IEEE floating-point
   format in bytes per second as described in <xref target="IEEE.754.1985" format="default"/>.</t>
        <t>
   All average values are calculated as rolling averages.</t>
      </section>
    </section>

    <section anchor="sect-3" numbered="true" toc="default">
      <name>Overview of the PCEP Extensions</name>
      <t>
   The high-level overview of the PCEP extensions defined in this
   document for requesting and reporting end-to-end performance
   measurements, bandwidth utilization, and liveness detection of 
   the LSPs for SR-TE over MPLS and IPv6 data planes as well as MPLS-TE using RSVP is shown in 
   <xref target="ure-overview-of-pcep-extensions"/>. </t>

      <figure anchor="ure-overview-of-pcep-extensions">
        <name>Overview of the PCEP Extensions</name>
        <artwork name="" type="" align="left" alt=""><![CDATA[
                        ---------
                       |         |
                       | Stateful|
                       |   PCE   |
                       |         |
                        ---------
                          |    ^
  MEASUREMENT CAPABILITY  |    |  MEASUREMENT CAPABILITY
                          |    |
  MEASUREMENT ATTRIBUTES  |    |  MEASUREMENT ATTRIBUTES
                          |    |  (For delegated LSPs)
                          |    |
                          |    |  MEASUREMENT REPORTS
                          v    |     (Optional)
                        ---------
                       |         |
                       |   PCC   |
                       |         |
                        ---------
]]></artwork>
      </figure>

   <t>
   The following list provides the high-level overview of the PCEP extensions defined in this document:
   </t>

      <ul spacing="normal">

        <li>
          <t>The Stateful PCE and PCC (head-end of the LSP) advertise the
          capability of their support for the delay, loss, and bandwidth-utilization 
          measurements and liveness detection in the PCEP Open message (in the OPEN Object).</t>
        </li>

        <li>
          <t>The Stateful PCE enables measurement of a feature and sends
          or updates the attributes of the feature using the
          LSPA object to the PCC in PCInitiate and PCUpd messages, respectively.</t>
        </li>

        <li>
          <t>The PCC reports the measured metrics of the feature to the Stateful
          PCE at the end of the specified interval or when measured
          values cross a specified threshold.  Periodic
          reporting can be used by the PCE to monitor the LSP metrics, 
          whereas a threshold can be used to trigger an immediate
          action by the PCE on the LSP.</t>
        </li>

        <li>
          <t>The optional periodic reporting of the measurements may be
          disabled to avoid processing load on the PCE and only an upper bound threshold is used to detect an anomaly, which when
          exceeded, a local or PCE-set action may be taken on the PCC.</t>
        </li>

        <li>
          <t>The PCE and PCC notify each other of their entering and clearing
          the overwhelmed state when operating under high LSP scale.</t>
        </li>

      </ul>

      <section anchor="sect-3.1" numbered="true" toc="default">
        <name>Report Thresholds</name>
        <t>
   When explicitly configured, a report threshold (absolute or percentage)
   parameter is used to
   trigger an immediate reporting of the delay and loss metrics and
   bandwidth utilization, bypassing the periodic report interval.  A threshold is
   used to detect a sudden change in the performance measurement metric
   of an LSP.  In order to detect that a measured value has crossed
   the threshold, the measured (delay/loss) metric is compared with the
   previously reported value.  If the change (increase or decrease) in the
   value is above the threshold (absolute or percentage),  
   the measurement from the current interval is reported immediately.  
   </t>

        <t>
   All thresholds in this document could be represented in both absolute
   values and percentages, and could be used together.  This is provided
   to accommodate the cases where the metric values may become very
   large or very small over time.  For example, an operator may use the
   percentage threshold to handle small to large metric values and
   absolute values to handle very large metric values.  The metrics are
   reported when either one of the two thresholds, the absolute or
   the percentage, is crossed.</t>

        <t>
   When using the percentage threshold, if the metric changes rapidly at
   very low values, it may trigger frequent reporting due to the
   crossing of the percentage threshold.  This can lead to unnecessary
   scale issues in the network.  This is suppressed by setting the
   minimum-threshold parameter along with the percentage threshold.  The
   metric value is only reported if the value crosses both the
   percentage threshold and the minimum-threshold parameters.</t>

   <t>
   The metrics are still
   reported at the end of the report interval even if they were reported
   due to the threshold crossing.  
   Refer to <xref target="RFC7471" format="default"/>, <xref target="sect-5" format="default"/>,
   for additional considerations.</t>

      </section>

    </section>
    <section anchor="sect-4" numbered="true" toc="default">
      <name>Sub-TLVs for Measurement Attributes</name>
      <t>
    This section specifies the generic sub-TLVs that provide various
    configurable parameters for reporting measurements to a Stateful PCE.
    These sub-TLVs are carried in various measurement attributes TLVs
    defined in this document.
      </t>

      <t>
   The following sub-TLVs are defined:</t>

      <artwork name="" type="" align="left" alt=""><![CDATA[
 Type   Length   Name
 -------------------------------------------------------
 1      4        Measurement-Enable sub-TLV
 2      4        Transmit-Interval sub-TLV
 3      8        Measurement-Protocol sub-TLV
 4      4        Measurement-Interval sub-TLV
 5      8        Report-Threshold sub-TLV
 6      8        Report-Threshold-Percentage sub-TLV
 7      4        Report-Interval sub-TLV
 8      8        Report-Upper-Bound sub-TLV
]]></artwork>

      <t>
   The Measurement-Enable sub-TLV MUST be added to the LSPA Object when
   the measurement feature is enabled for the LSP.  All other sub-TLVs
   are optional and any unrecognized sub-TLV MUST be silently ignored.
   If a sub-TLV of the same type appears more than once, only the first
   occurrence is processed and all others MUST be ignored.  If sub-TLVs
   are not present, the default values based on the local policy are
   assumed.</t>

      <section anchor="sect-4.1" numbered="true" toc="default">
        <name>Measurement-Enable sub-TLV</name>
        <t>
   The Measurement-Enable sub-TLV specifies that the given measurement
   feature is enabled. The format of this sub-TLV is shown in <xref target="ure-sub-tlv-format"/>.</t>

      <figure anchor="ure-sub-tlv-format">
        <name>Measurement-Enable sub-TLV Format</name>
        <artwork name="" type="" align="left" alt=""><![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=1              |           Length=4            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                             Flags                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>

        <t>
   The Type is 1, Length is 4 bytes, and the value comprises flags
   (32 bits) for enabling various measurement features.</t>
        <t>
   Unassigned flags are considered reserved, they MUST be set to 0 when
   sent and MUST be ignored when received.
   The flags define various performance measurement types in this document.</t>

      </section>
      
      <section anchor="sect-4.7" numbered="true" toc="default">
        <name>Transmit-Interval sub-TLV</name>
        <t>
   The Transmit-Interval sub-TLV specifies a time interval in milliseconds
   for the test packet transmission. The format of this sub-TLV is shown in <xref target="ure-transmit-sub-tlv-format"/>.</t>

      <figure anchor="ure-transmit-sub-tlv-format">
        <name>Transmit-Interval sub-TLV Format</name>
        <artwork name="" type="" align="left" alt=""><![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=2              |           Length=4            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                       Transmit-Interval                       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
               ]]></artwork>
      </figure>

        <t>
   The Type is 2, Length is 4 bytes, and the value comprises a 4-byte
   time interval, the valid range is from 1 to 604800, in milliseconds. The
   default value is 1 second.  The Transmit-Interval MUST NOT be
   greater than the Measurement-Interval and the Report-Interval.</t>
      </section>

     <section anchor="sect-4.8" numbered="true" toc="default">
        <name>Measurement-Protocol sub-TLV</name>
        <t>
   The Measurement-Protocol sub-TLV specifies that the given measurement
   protocol type and mode are enabled. The format of this sub-TLV is shown in <xref target="ure-protocol-sub-tlv-format"/>.</t>

      <figure anchor="ure-protocol-sub-tlv-format">
        <name> Measurement-Protocol sub-TLV Format</name>
        <artwork name="" type="" align="left" alt=""><![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=3              |           Length=8            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                    Measurement-Protocol                       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                    Measurement-Mode                           |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              ]]></artwork>
      </figure>

        <t>
   The Type is 3, Length is 8 bytes, and the value comprises   
   the protocol type and mode for performance measurement.</t>

   <t>
   Measurement protocol type value can be set to: 
   (1) STAMP protocol <xref target="RFC8762" format="default"/>,
   or (2) TWAMP protocol <xref target="RFC5357" format="default"/>, 
   or (3) MPLS-PM protocol <xref target="RFC6374" format="default"/>.
   </t>

   <t>
   Measurement mode can be set to: (1) one-way, or (2) two-way, or (3) loopback. 
   </t>

   <t>The performance measurement procedures using STAMP defined in <xref target="I-D.ietf-spring-stamp-srpm-srv6"/> 
   and <xref target="I-D.ietf-spring-stamp-srpm-mpls"/> can be used for SR LSPs for the IPv6 and MPLS data planes, respectively.
   Similarly, the performance measurement procedures using MPLS-PM defined in <xref target="RFC9779" format="default"/>
   can be used for MPLS LSPs.
   </t>

      </section>

      <section anchor="sect-4.2" numbered="true" toc="default">
        <name>Measurement-Interval sub-TLV</name>
        <t>
   The Measurement-Interval sub-TLV specifies a time interval in seconds
   for the measurement. The format of this sub-TLV is shown in <xref target="ure-measurement-interval-sub-tlv-format"/>.</t>

      <figure anchor="ure-measurement-interval-sub-tlv-format">
        <name> Measurement-Interval sub-TLV Format</name>
        <artwork name="" type="" align="left" alt=""><![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=4              |           Length=4            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                    Measurement-Interval                       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              ]]></artwork>
      </figure>

        <t>
   The Type is 4, Length is 4 bytes, and the value comprises a 4-byte
   time interval, the valid range is from 1 to 604800, in seconds.  The
   default value is 300 seconds.  The Measurement-Interval MUST NOT be
   greater than the Report-Interval.</t>
      </section>

      <section anchor="sect-4.3" numbered="true" toc="default">
        <name>Report-Threshold sub-TLV</name>
        <t>
   The Report-Threshold sub-TLV specifies the threshold value used to
   trigger an immediate reporting of the measurements bypassing the
   report-interval. The format of this sub-TLV is shown in <xref target="ure-threshold-sub-tlv-format"/>.</t>

      <figure anchor="ure-threshold-sub-tlv-format">
        <name> Report-Threshold sub-TLV Format</name>
        <artwork name="" type="" align="left" alt=""><![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=5              |           Length=4            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                         Report-Threshold                      |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              ]]></artwork>
      </figure>

        <t>
   The Type is 5, Length is 8 bytes, and the value comprises:
    </t>

     <ul spacing="normal">
          <li>
    <t>
    Report-Threshold:  32-bit absolute threshold value.
    By default, report-threshold is not set and threshold check based
    reporting is disabled.</t>
          </li>

      </ul>

      </section>

      <section anchor="sect-4.4" numbered="true" toc="default">
        <name>Report-Threshold-Percentage sub-TLV</name>
        <t>
   The Report-Threshold-Percentage sub-TLV specifies the threshold value
   used to trigger an immediate reporting of the measurements bypassing
   the report-interval. The format of this sub-TLV is shown in <xref target="ure-percentage-threshold-sub-tlv-format"/>.</t>

      <figure anchor="ure-percentage-threshold-sub-tlv-format">
        <name>Report-Threshold-Percentage sub-TLV Format</name>
        <artwork name="" type="" align="left" alt=""><![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=6              |           Length=8            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  Percentage |          RESERVED                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                        Minimum-Threshold                      |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
      </figure>

     <t>
     The Type is 6, Length is 8 bytes, and the value comprises:
     </t>

        <ul spacing="normal">
          <li>
            <t>Percentage: 7-bit threshold value, encoded in percentage as an integer from 1 to 100.</t>
            <t>By default, report-threshold-percentage is not set and threshold check based reporting is disabled.</t>
          </li>
          <li>
            <t>RESERVED: It MUST be set to zero when sent and MUST be ignored when received.</t>
          </li>
          <li>
            <t>Minimum-Threshold: The 32-bit absolute Minimum-Threshold value.
      The increase or decrease should be at least or above this value.</t>
          </li>
        </ul>
      </section>

      <section anchor="sect-4.5" numbered="true" toc="default">
        <name>Report-Interval sub-TLV</name>
        <t>
   The Report-Interval sub-TLV specifies the time interval in seconds
   when measured values are to be reported. The format of this sub-TLV is shown in <xref target="ure-report-interval-sub-tlv-format"/>.</t>

      <figure anchor="ure-report-interval-sub-tlv-format">
        <name>Report-Interval sub-TLV Format</name>
        <artwork name="" type="" align="left" alt=""><![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=7              |           Length=4            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                         Report-Interval                       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              ]]></artwork>
      </figure>

        <t>
   The Type is 7, Length is 4 bytes, and the value comprises a 4-byte
   time interval, the valid range is from 0 to 604800, in seconds.  The
   default value is 3600 seconds.  The value 0 is used to disable the
   periodic reporting of the measurements.</t>
      </section>

      <section anchor="sect-4.6" numbered="true" toc="default">
        <name>Report-Upper-Bound sub-TLV</name>
        <t>
   The Report-Upper-Bound sub-TLV specifies the upper bound value and lower bound value used
   to trigger an immediate reporting of the measurements when crossed.
   This may also result in the PCC taking an immediate local action on the LSP.
   The format of this sub-TLV is shown in <xref target="ure-report-upper-bound-sub-tlv-format"/>.</t>

    <t>
   Anomaly flag is set to true in the reported measurement when the upper bound threshold is crossed in the up direction 
   and set to false in the reported measurement when the lower bound threshold is crossed in the down direction.
    </t>

      <figure anchor="ure-report-upper-bound-sub-tlv-format">
        <name>Report-Upper-Bound sub-TLV Format</name>
        <artwork name="" type="" align="left" alt=""><![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=8              |           Length=8            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                       Report-Upper-Bound                      |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                       Report-Lower-Bound                      |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
               ]]></artwork>
      </figure>

    <t>
    The Type is 8, Length is 8 bytes, and the value comprises:
    </t>

    <ul spacing="normal">

          <li>
            <t>Report-Upper-Bound: 32-bit absolute value.</t>
            <t>By default, upper bound is not set.</t>
          </li>

          <li>
            <t>Report-Lower-Bound: 32-bit absolute value.</t>
            <t>By default, lower bound is not set. The lower bound value MUST be less than the upper bound value.</t>
          </li>

        </ul>
      </section>

    </section>
    <section anchor="sect-5" numbered="true" toc="default">
      <name>PCEP Extensions for Delay Measurement</name>
      <section anchor="sect-5.1" numbered="true" toc="default">
        <name>Delay Measurement Capability Advertisement</name>

        <t>
   During the PCEP Initialization phase, PCEP Speakers (PCE or PCC)
   advertise their support for DELAY-MEASUREMENT.  A PCEP Speaker (PCE or
   PCC) includes the DELAY-MEASUREMENT-CAPABILITY TLV in the OPEN
   Object to advertise its support for PCEP Delay-Measurement
   extensions.  The presence of the DELAY-MEASUREMENT-CAPABILITY TLV in
   the OPEN Object (in the Open message) indicates that the Delay
   Measurement capability is supported as described in this document.
   Additional procedures are defined as follows:</t>
        <ul spacing="normal">
          <li>
            <t>The PCEP protocol extensions for Delay Measurement MUST NOT be
      used if one or both PCEP Speakers have not included the DELAY-MEASUREMENT-CAPABILITY TLV in their respective Open message.</t>
          </li>

          <li>
            <t>If a PCEP speaker supports the extensions of this document
      but did not advertise this capability, then upon receipt of the DELAY-MEASUREMENT-ATTRIBUTES TLV in the LSPA object, it SHOULD generate a
      PCErr with error-type 19 (Invalid Operation), error-value TBD21
      (Delay-Measurement capability was not advertised) and terminate the PCEP session.</t>
          </li>

          <li>
            <t>Similarly, the PCEP speaker SHOULD generate error-value TBD23
      (Two-Way Measurement capability was not advertised), 
      TBD24 (One-Way Measurement capability was not advertised)
      and TBD25 (Loopback Measurement capability was not advertised)
      upon receipt of the DELAY-MEASUREMENT-ATTRIBUTES TLV in the LSPA object
      with Two-Way, One-Way, and Loopback request, respectively, when it did not advertise this capability.</t>
          </li>

          <li>
            <t>If a PCEP speaker supports the extensions of this document
      but did not advertise this capability, then upon receipt of the DELAY-MEASUREMENT object, it SHOULD generate a PCErr with error-type 19
      (Invalid Operation), error-value TBD21 (Delay-Measurement
      capability was not advertised) and terminate the PCEP session.</t>
      </li>

        </ul>
        <section anchor="sect-5.1.1" numbered="true" toc="default">
          <name>DELAY-MEASUREMENT-CAPABILITY TLV</name>
          <t>
   The DELAY-MEASUREMENT-CAPABILITY TLV is an optional TLV for use in
   the OPEN Object for Delay Measurement via PCEP capability
   advertisement.  The format of this TLV is shown in <xref target="ure-delay-measurement-cap-tlv-format"/>.</t>

      <figure anchor="ure-delay-measurement-cap-tlv-format">
        <name>DELAY-MEASUREMENT-CAPABILITY TLV Format </name>
          <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |       PCEP TLV Type=TBD1      |           Length=4            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                             Flags                       |L|T|O|
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
               ]]></artwork>
      </figure>

    <t>
    The Type of the TLV is TBD1 and it has a fixed length of 4 bytes.
    </t>
    <t>
    The value comprises a single field - Flags (32 bits):
    </t>
    <ul spacing="normal">
            <li>
              <t>O (One-way Delay Metric - 1 bit): if set to 1 by a PCC, the O
      Flag indicates that the PCC allows reporting of one-way delay
      metric information; if set to 1 by a PCE, the O Flag
      indicates that the PCE is capable of receiving one-way delay
      metric information from the PCC.</t>
            </li>

            <li>
              <t>T (Two-way Delay Metric - 1 bit): if set to 1 by a PCC, the T
      Flag indicates that the PCC allows reporting of two-way delay
      metric information; if set to 1 by a PCE, the T Flag
      indicates that the PCE is capable of receiving two-way delay
      metric information from the PCC. </t>
            </li>

        <li>
              <t>L (Loopback Delay Metric - 1 bit): if set to 1 by a PCC, the L
      Flag indicates that the PCC allows reporting of loopback delay
      metric information; if set to 1 by a PCE, the L Flag
      indicates that the PCE is capable of receiving loopback delay
      metric information from the PCC. </t>
            </li>

          </ul>
          <t>
   Unassigned bits are considered reserved.  They MUST be set to 0 when
   sent and MUST be ignored when received.</t>
          <t>
   Advertisement of the DELAY-MEASUREMENT-CAPABILITY TLV implies support
   for delay measurement, as well as the objects, TLVs and procedures
   defined in this document.  Either the O, T or L flag MUST be set to 1 in the TLV.</t>
        </section>
      </section>

      <section anchor="sect-5.2" numbered="true" toc="default">
        <name>DELAY-MEASUREMENT-ATTRIBUTES TLV</name>
        <t>
   The DELAY-MEASUREMENT-ATTRIBUTES TLV provides the configurable
   parameters of the delay measurement feature.</t>

        <t>
   The format of the DELAY-MEASUREMENT-ATTRIBUTES TLV is shown in 
   <xref target="ure-delay-measurement-attr-tlv-format"/>.</t>

      <figure anchor="ure-delay-measurement-attr-tlv-format">
        <name>DELAY-MEASUREMENT-ATTRIBUTES TLV Format </name>
        <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |       PCEP TLV Type=TBD5      |           Length              |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
 //                           sub-TLVs                          //
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
               ]]></artwork>
      </figure>

<t>
PCEP TLV Type is defined as follows:
</t>

<artwork name="" type="" align="left" alt=""><![CDATA[
 Type      Name
 ----------------------------------------------------------
 TBD5      DELAY-MEASUREMENT-ATTRIBUTES
]]></artwork>

        <t>
   Length: The Length field defines the length of the value portion in
   bytes, as per <xref target="RFC5440" format="default"/>.</t>
        <t>
   Value: Comprises of one or more sub-TLVs as described in Section 4 of
   this document.</t>

   <t>
   The following sub-sections describe the parameters that are
   currently defined to be carried within this TLV. Any other parameters 
   not defined for this TLV MUST be ignored.</t>

        <section anchor="sect-5.2.1" numbered="true" toc="default">
          <name>Delay Measurement Enable</name>
          <t>
   The Measurement-Enable sub-TLV specifies the delay metric mode
   enabled using the following flags:</t>

          <artwork name="" type="" align="left" alt=""><![CDATA[
 Bit     Description
 ----------------------------------------------------------------
 31      One-Way Delay Metric Enabled
 30      Two-Way Delay Metric Enabled
 29      Loopback Delay Metric Enabled
]]></artwork>

        </section>

     <section anchor="sect-5.2.2.1" numbered="true" toc="default">
        <name>Delay Measurement Protocol</name>
        <t>
   The Measurement-Protocol sub-TLV specifies that the given  
   protocol type and mode are enabled for delay measurement.</t>
        </section>

     <section anchor="sect-5.2.2.2" numbered="true" toc="default">
        <name>Delay Measurement Transmit Interval</name>
        <t>
   The Transmit-Interval sub-TLV specifies a time interval in milliseconds
   for the delay measurement test packet transmission.</t>
      </section>

        <section anchor="sect-5.2.2" numbered="true" toc="default">
          <name>Delay Measurement Interval</name>
          <t>
   The Measurement-Interval sub-TLV specifies a time interval in seconds
   for the delay metrics computation for the LSP.</t>
        </section>

        <section anchor="sect-5.2.3" numbered="true" toc="default">
          <name>Delay Measurement Report Threshold</name>
          <t>
   The Report-Threshold sub-TLV specifies the threshold value used to
   trigger an immediate reporting of the delay metrics bypassing
   the report-interval.</t>
          <ul spacing="normal">
            <li>
              <t>Report-Threshold: Delay in microseconds, encoded as a 24-bit
      integer, as defined in <xref target="RFC7471" format="default"/>.</t>
            </li>
          </ul>
          <t>
   The same report-threshold is used for all delay metric values.</t>
        </section>
        <section anchor="sect-5.2.4" numbered="true" toc="default">
          <name>Delay Measurement Report Threshold Percentage</name>
          <t>
   The Report-Threshold-Percentage sub-TLV specifies the threshold value
   used to trigger an immediate reporting of the metrics bypassing
   the report-interval.</t>
          <t>
   The same report-threshold-percentage is used for all delay metric 
   values.</t>
        </section>
        <section anchor="sect-5.2.5" numbered="true" toc="default">
          <name>Delay Measurement Report Interval</name>
          <t>
   The Report-Interval sub-TLV specifies the time interval in seconds
   when measured delay values are to be reported.</t>
        </section>

        <section anchor="sect-5.2.6" numbered="true" toc="default">
          <name>Delay Measurement Upper Bound and Lower Bound</name>
          <t>
   The Report-Upper-Bound sub-TLV specifies the upper bound and lower bound delay values in
   microseconds, and is used to trigger an immediate reporting of the
   delay values when crossed.  This may also result in the PCC taking an
   immediate local action on the LSP.</t>
        </section>
      </section>

      <section anchor="sect-5.3" numbered="true" toc="default">
        <name>DELAY-MEASUREMENT Object For Reporting</name>
        <t>
   The DELAY-MEASUREMENT Object with Object-Class (Value TBD9) is
   defined in this document to report the delay measurement of an LSP. The format of this Object is shown in
   <xref target="ure-delay-measurement-obj-tlv-format"/>.</t>

        <t>
   When the LSP is enabled with the delay measurement feature, the PCC
   SHOULD include the DELAY-MEASUREMENT Object to report the measured
   delay values to the PCE in the PCRpt message.  The PCC SHOULD report
   average delay, min/max delay, and delay
   variations to the PCE in the PCRpt message, as well as the anomaly state in the Anomaly (A) flag
   based on the attributes signaled.</t>

      <figure anchor="ure-delay-measurement-obj-tlv-format">
        <name>DELAY-MEASUREMENT Object Format</name>
        <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Class=TBD9    |   OT  |Res|P|I|   Object Length (bytes)       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
 //                        (Object body)                        //
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>

   <t>Object Length (16 bits):
   Specifies the total object length including the header, in bytes, as per <xref target="RFC5440" format="default"/>.
   </t>

   <t>
   Object-Types (OT) are defined as follows:</t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
 Object-Type  Length   Name
 ----------------------------------------------------------------
 1            8        Delay Measurement Status 
 2            8        One-Way Delay Metric Value
 3            12       One-Way Delay Metric Min/Max Values
 4            8        One-Way Delay Variation Metric Value
 5            8        Two-Way Delay Metric Value
 6            12       Two-Way Delay Metric Min/Max Values
 7            8        Two-Way Delay Variation Metric Value
 8            8        Loopback Delay Metric Value
 9            12       Loopback Delay Metric Min/Max Values
 10           8        Loopback Delay Variation Metric Value
]]></artwork>

        <t>
   All delay values are reported in microseconds, encoded as a 24-bit
   integer, as defined in <xref target="RFC7471" format="default"/>.  When set to the maximum value
   16,777,215 (16.777215 sec), the delay is at least that value and may
   be larger.</t>

   <t>
   The object body formats are defined as shown in 
       <xref target="ure-delay-measurement-obj-status-tlv-format"/>, 
       <xref target="ure-delay-measurement-obj-average-tlv-format"/>,
        <xref target="ure-delay-measurement-obj-minmax-tlv-format"/>, and 
       <xref target="ure-delay-measurement-obj-variation-tlv-format"/>. </t>

      <figure anchor="ure-delay-measurement-obj-status-tlv-format">
        <name> DELAY-MEASUREMENT Object For Reporting Delay Measurement Status</name>
        <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |     RESERVED                                  |  Status       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>

        <ul spacing="normal">
          <li>
            <t>Delay Measurement Status: Indicates the Status of Delay Measurement as: (1) Active, (2) Failed, (3) Errored.</t>
          </li>

          <li>
            <t>RESERVED: This field is reserved for future use.  It MUST be set
      to 0 when sent and MUST be ignored when received.</t>
          </li>

        </ul>

      <figure anchor="ure-delay-measurement-obj-average-tlv-format">
          <name> DELAY-MEASUREMENT Object For Reporting One-Way, Two-Way and Loopback Average </name>
        <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |A|   RESERVED  |            Delay Value Average                |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>

        <ul spacing="normal">

          <li>
            <t>One-way Delay Value Average: Average Delay of the LSP in one
      (forward) direction.</t>
          </li>
 
          <li>
            <t>Two-way Delay Value Average: Average Delay of the
      LSP in both forward and reverse directions.</t>
          </li>
 
          <li>
            <t>Loopback Delay Value Average: Average Delay of the
      LSP in both forward and reverse directions.</t>
          </li>
 
        </ul>


      <figure anchor="ure-delay-measurement-obj-minmax-tlv-format">
          <name> DELAY-MEASUREMENT Object For Reporting One-Way, Two-Way and Loopback Min/Max </name>
        <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |A|   RESERVED  |            Delay Value Minimum                |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |A|   RESERVED  |            Delay Value Maximum                |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        ]]></artwork>
      </figure>


     <ul spacing="normal">
          <li>
            <t>One-Way Delay Value Minimum/Maximum: Minimum and
      Maximum values of the Delay of the LSP in one (forward) direction.
      </t>
          </li>

           <li>
            <t>Two-Way Delay Value Minimum/Maximum: Minimum and
      Maximum values of the Delay of the LSP in both forward and reverse directions.</t>
          </li>

           <li>
            <t>Loopback Delay Value Minimum/Maximum: Minimum and
      Maximum values of the Delay of the LSP in both forward and reverse directions.</t>
          </li>

        </ul>

      <figure anchor="ure-delay-measurement-obj-variation-tlv-format">
          <name> DELAY-MEASUREMENT Object For Reporting One-Way, Two-Way and Loopback Variation</name>
        <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |A|   RESERVED  |            Delay Variation Value              |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>

     <ul spacing="normal">
           <li>
            <t>One-way Delay Variation Value: Average Delay Variation
      of the LSP in the forward direction.</t>
          </li>

          <li>
            <t>Two-way Delay Variation Value: Average Delay Variation
      of the LSP in both forward and reverse directions.</t>
          </li>

          <li>
            <t>Loopback Delay Variation Value: Average Delay Variation
      of the LSP in both forward and reverse directions.</t>
          </li>

  </ul>

      </section>
    </section>

    <section anchor="sect-6" numbered="true" toc="default">
      <name>PCEP Extensions for Loss Measurement</name>
      <section anchor="sect-6.1" numbered="true" toc="default">
        <name>Loss Measurement Capability Advertisement</name>
        <t>
   During the PCEP Initialization Phase, PCEP Speakers (PCE or PCC)
   advertise their support for LOSS-MEASUREMENT.  A PCEP Speaker includes
   the LOSS-MEASUREMENT-CAPABILITY TLV in the OPEN Object to advertise
   its support for PCEP Loss-Measurement extensions.  The presence of
   the LOSS-MEASUREMENT-CAPABILITY TLV in the OPEN Object (in the Open
   message) indicates that the Loss Measurement capability is supported
   as described in this document.  Additional procedures are defined as
   follows:</t>

        <ul spacing="normal">
          <li>
            <t>The PCEP protocol extensions for Loss Measurement MUST NOT be used
      if one or both PCEP Speakers have not included the LOSS-MEASUREMENT-CAPABILITY TLV in their respective Open message.</t>
          </li>

          <li>
            <t>If a PCEP speaker supports the extensions of this document
      but did not advertise this capability, then upon receipt of the LOSS-MEASUREMENT-ATTRIBUTES TLV in the LSPA object, it SHOULD generate a
      PCErr with error-type 19 (Invalid Operation), error-value TBD22
      (Loss-Measurement capability was not advertised) and terminate the PCEP session.</t>
          </li>

          <li>
            <t>Similarly, the PCEP speaker SHOULD generate error-value TBD23
      (Two-Way Measurement capability was not advertised), 
      TBD24 (One-Way Measurement capability was not advertised) and 
      TBD25 (Loopback Measurement capability was not advertised)
      upon receipt of the LOSS-MEASUREMENT-ATTRIBUTES TLV in the LSPA object
      with two-way, one-way and loopback measurement request, 
      respectively, when it did not advertise this capability.</t>
          </li>

          <li>
            <t>Further, the PCEP speaker SHOULD generate error-value TBD26
      (Inferred Mode Loss Measurement capability was not advertised) and
      TBD27 (Direct Mode Loss Measurement capability was not advertised)
      upon receipt of the LOSS-MEASUREMENT-ATTRIBUTES TLV in the LSPA object
      with Inferred Mode loss measurement request and Direct Mode loss
      measurement request, respectively, when it did not advertise this
      capability.</t>
          </li>

          <li>
            <t>If a PCEP speaker supports the extensions of this document
      but did not advertise this capability, then upon receipt of the LOSS-MEASUREMENT object, it SHOULD generate a PCErr with error-type 19
      (Invalid Operation), error-value TBD22 (Loss-Measurement capability
      was not advertised) and terminate the PCEP session.</t>
          </li>

        </ul>

        <section anchor="sect-6.1.1" numbered="true" toc="default">
          <name>LOSS-MEASUREMENT-CAPABILITY TLV</name>

          <t>
   The LOSS-MEASUREMENT-CAPABILITY TLV is an optional TLV for use in the
   OPEN Object for Loss Measurement via PCEP capability advertisement.
   Its format is shown in <xref target="ure-loss-measurement-obj-tlv-format"/>.</t>

      <figure anchor="ure-loss-measurement-obj-tlv-format">
          <name>LOSS-MEASUREMENT-CAPABILITY TLV Format </name>
          <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |       PCEP TLV Type=TBD2      |           Length=4            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                             Flags                   |N|I|L|T|O|
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             ]]></artwork>
      </figure>

<t>
The Type of the TLV is TBD2 and it has a fixed length of 4 bytes.
</t>

<t>
The value comprises a single field - Flags (32 bits):
</t>

      <ul spacing="normal">
            <li>
              <t>O (One-Way Metric - 1 bit): if set to 1 by a PCC, the
      O Flag indicates that the PCC allows reporting of one-way 
      loss metric information; if set to 1 by a PCE, the O Flag
      indicates that the PCE is capable of receiving one-way loss
      metric information from the PCC.</t>
            </li>

            <li>
              <t>T (Two-Way Metric - 1 bit): if set to 1 by a PCC, the T
      Flag indicates that the PCC allows reporting of two-way loss
      metric information; if set to 1 by a PCE, the T Flag
      indicates that the PCE is capable of receiving two-way loss
      metric information from the PCC. </t>
            </li>

            <li>
              <t>L (Loopback Metric - 1 bit): if set to 1 by a PCC, the L
      Flag indicates that the PCC allows reporting of loopback loss
      metric information; if set to 1 by a PCE, the L Flag
      indicates that the PCE is capable of receiving loopback loss
      metric information from the PCC. </t>
            </li>

            <li>
              <t>I (Inferred Loss Measurement Mode - 1 bit): if set to 1 by a PCC,
      the I Flag indicates that the PCC allows reporting of inferred
      mode loss measurement information; if set to 1 by a PCE,
      the I Flag indicates that the PCE is capable of receiving inferred
      mode loss measurement information from the PCC.</t>
            </li>

            <li>
              <t>N (Direct Loss Measurement Mode - 1 bit): if set to 1 by a PCC,
      the N Flag indicates that the PCC allows reporting of direct mode
      loss measurement information; if set to 1 by a PCE, the
      N Flag indicates that the PCE is capable of receiving direct mode
      loss measurement information from the PCC.</t>
            </li>

          </ul>

   <t>
   Unassigned bits are considered reserved.  They MUST be set to 0 when
   sent and MUST be ignored when received.</t>

   <t>
   Advertisement of the LOSS-MEASUREMENT-CAPABILITY TLV implies support
   for loss measurement, as well as the objects, TLVs and procedures
   defined in this document.  Either the O, T or L flag MUST be set to 1 in the TLV.
   Similarly, either the I or N flag MUST be set to 1 in the TLV.
   </t>

   </section>
    </section>

   <section anchor="sect-6.2" numbered="true" toc="default">
        <name>LOSS-MEASUREMENT-ATTRIBUTES TLV</name>

   <t>
   The LOSS-MEASUREMENT-ATTRIBUTES TLV provides the configurable
   parameters of the loss measurement feature.</t>

   <t>
   The format of the LOSS-MEASUREMENT-ATTRIBUTES TLV is shown in <xref target="ure-loss-measurement-attr-tlv-format"/>.</t>

      <figure anchor="ure-loss-measurement-attr-tlv-format">
          <name>LOSS-MEASUREMENT-ATTRIBUTES TLV Format </name>
        <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |       PCEP TLV Type=TBD6      |           Length              |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
 //                           sub-TLVs                          //
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
               ]]></artwork>
      </figure>

<t>
PCEP TLV Type is defined as follows:
</t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
 Type      Name
 ----------------------------------------------------------
 TBD6      LOSS-MEASUREMENT-ATTRIBUTES
]]></artwork>

        <t>
   Length: The Length field defines the length of the value portion in
   bytes, as per <xref target="RFC5440" format="default"/>.</t>
        <t>
   Value: Comprises of one or more sub-TLVs as described in Section 4 of
   this document.</t>

   <t>
   The following sub-sections describe the parameters that are
   currently defined to be carried within this TLV. Any other parameters 
   not defined for this TLV MUST be ignored.</t>

        <section anchor="sect-6.2.1" numbered="true" toc="default">
          <name>Loss Measurement Enable</name>
          <t>
   The Measurement-Enable sub-TLV specifies the loss Metric mode enabled using the following flags:</t>

          <artwork name="" type="" align="left" alt=""><![CDATA[
 Bit      Description
 -----------------------------------------------------------------
 28       One-Way Loss Metric Enabled
 27       Two-Way Loss Metric Enabled
 26       Loopback Loss Metric Enabled
 25       Inferred Loss Metric Enabled
 24       Direct Loss Metric Enabled
]]></artwork>

        </section>

     <section anchor="sect-6.2.2.1" numbered="true" toc="default">
        <name>Loss Measurement Protocol</name>
        <t>
   The Measurement-Protocol sub-TLV specifies that the given  
   protocol type and mode are enabled for loss measurement.</t>
        </section>

     <section anchor="sect-6.2.2.2" numbered="true" toc="default">
        <name>Loss Measurement Transmit Interval</name>
        <t>
   The Transmit-Interval sub-TLV specifies a time interval in milliseconds
   for the loss measurement test packet transmission.</t>
      </section>

        <section anchor="sect-6.2.2" numbered="true" toc="default">
          <name>Loss Measurement Interval</name>
          <t>
   The Measurement-Interval sub-TLV specifies a time interval in seconds for the loss metric computation for the LSP.</t>
        </section>

        <section anchor="sect-6.2.3" numbered="true" toc="default">
          <name>Loss Measurement Report Threshold</name>
          <t>
   The Report-Threshold sub-TLV specifies the threshold value used to
   trigger an immediate reporting of the loss metrics bypassing the
   report-interval.</t>
          <ul spacing="normal">
            <li>
              <t>Report-Threshold: This 24-bit field identifies the packet loss as
      a percentage of the total packets sent or received. The encoding
      is as per <xref target="RFC7471" format="default"/>.</t>
            </li>
          </ul>
          <t>
   The same report-threshold is used for all loss metric values.</t>
        </section>

        <section anchor="sect-6.2.4" numbered="true" toc="default">
          <name>Loss Measurement Report Threshold Percentage</name>
          <t>
   The Report-Threshold-Percentage sub-TLV specifies the threshold value
   used to trigger an immediate reporting of the loss metrics 
   bypassing the report-interval.</t>
          <t>
   The same report-threshold-percentage is used for all loss metric values.</t>
        </section>

        <section anchor="sect-6.2.5" numbered="true" toc="default">
          <name>Loss Measurement Report Interval</name>
          <t>
   The Report-Interval sub-TLV specifies the time interval in seconds
   when measured loss values are to be reported.</t>
        </section>

        <section anchor="sect-6.2.6" numbered="true" toc="default">
          <name>Loss Measurement Upper Bound and Lower Bound</name>
          <t>
   The Report-Upper-Bound sub-TLV specifies the upper bound and lower bound values in
   percentage packet loss, and is used to trigger an immediate reporting
   of the packet loss values when crossed.  This may also result in the PCC
   taking an immediate local action on the LSP.</t>
        </section>
      </section>

      <section anchor="sect-6.3" numbered="true" toc="default">
        <name>LOSS-MEASUREMENT Object For Reporting</name>
        <t>
   The LOSS-MEASUREMENT Object with Object-Class (Value TBD10) is defined
   in this document to report the packet loss measurement of an LSP.
   The format of this Object is shown in <xref target="ure-loss-measurement-obj-fmt-tlv-format"/>.</t>

        <t>
   When the LSP is enabled with the loss measurement feature, the PCC
   SHOULD include the LOSS-MEASUREMENT Object to report the measured
   packet loss to the PCE in the PCRpt message, as well as the anomaly state in the Anomaly (A) flag.</t>

      <figure anchor="ure-loss-measurement-obj-fmt-tlv-format">
          <name>LOSS-MEASUREMENT Object Format </name>
        <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Class=TBD10   |   OT  |Res|P|I|   Object Length (bytes)       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
 //                        (Object body)                        //
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>

    <t>Object Length (16 bits):
    Specifies the total object length including the header in bytes, as per <xref target="RFC5440" format="default"/>.
    </t>

        <t>
   Object-Types (OT) are defined as follows:</t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
 Object-Type  Length   Name
 -------------------------------------------------------------
 1            8        Loss Measurement Status
 2            8        Tx Packets-Lost
 3            8        Rx Packets-Lost
 4            12       Total Packets-Sent-Received
]]></artwork>


<t>
The object body format for Loss Measurement Status is shown in <xref target="ure-loss-measurement-obj-status-tlv-format"/>.
</t>

      <figure anchor="ure-loss-measurement-obj-status-tlv-format">
          <name>LOSS-MEASUREMENT Object For Reporting Loss Measurement Status</name>
        <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |     RESERVED                                  |  Status       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]></artwork>
      </figure>

       <ul spacing="normal">
          <li>
        <t>Loss Measurement Status: Indicates the Status of Loss Measurement as: (1) Active, (2) Failed, (3) Errored.
            </t>
          </li>
          <li>
            <t>RESERVED: This field is reserved for future use.  It MUST be set
            to 0 when sent and MUST be ignored when received.</t>
          </li>
        </ul>

<t>
The object body format for Packets-Lost is shown in <xref target="ure-loss-measurement-obj-lost-tlv-format"/>.
</t>

      <figure anchor="ure-loss-measurement-obj-lost-tlv-format">
          <name>LOSS-MEASUREMENT Object For Reporting Packets Lost</name>
        <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |A|   RESERVED  |            Packets-Lost                       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>

        <ul spacing="normal">
          <li>
            <t>Packets-Lost: This 24-bit field identifies the packet loss as a
      percentage of the total packets transmitted, encoded as per
      <xref target="RFC7471" format="default"/>.</t>
          </li>
          <li>
            <t>RESERVED: This field is reserved for future use.  It MUST be set
      to 0 when sent and MUST be ignored when received.</t>
          </li>
        </ul>

<t>
The object body format for Total Packets Sent and Received is shown in <xref target="ure-loss-measurement-obj-sent-tlv-format"/>.</t>

      <figure anchor="ure-loss-measurement-obj-sent-tlv-format">
          <name>LOSS-MEASUREMENT Object For Reporting Total Packets Sent and Received</name>
        <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                Total Packets Sent                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                Total Packets Received                         |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>

       <ul spacing="normal">
          <li>
            <t>Total Packets Sent: This 32-bit field identifies the total packets sent. 
            </t>
          </li>
          <li>
            <t>Total Packets Received: This 32-bit field identifies the total packets received.
            </t>
          </li>
        </ul>

      </section>
    </section>


    <section anchor="sect-7" numbered="true" toc="default">
      <name>PCEP Extensions for Bandwidth Utilization</name>

      <section anchor="sect-7.1" numbered="true" toc="default">
        <name>Bandwidth Utilization Capability Advertisement</name>
        <t>
   During the PCEP Initialization Phase, PCEP Speakers (PCE or PCC)
   advertise their support for bandwidth utilization reporting.  A PCEP
   Speaker includes the "BANDWIDTH-UTILIZATION-CAPABILITY" TLV in the
   OPEN Object to advertise its support for PCEP extensions.  The
   presence of the "BANDWIDTH-UTILIZATION-CAPABILITY" TLV in the OPEN
   Object (in the Open message) indicates that the bandwidth utilization
   reporting is supported as described in this document.  Additional
   procedures are defined as follows:</t>
        <ul spacing="normal">
          <li>
            <t>The PCEP protocol extensions for bandwidth utilization MUST NOT be
      used if one or both PCEP Speakers have not included the
      "BANDWIDTH-UTILIZATION-CAPABILITY" TLV in their respective Open
      message.</t>
          </li>

          <li>
            <t>If a PCEP speaker supports the extensions of this document
      but did not advertise this capability, then upon receipt of the 
      BANDWIDTH-UTILIZATION-ATTRIBUTES TLV in the LSPA object, it SHOULD
      generate a PCErr with error-type 19 (Invalid Operation), error-
      value TBD28 (Bandwidth utilization capability was not advertised)
      and terminate the PCEP session.</t>
          </li>

          <li>
            <t>If a PCEP speaker supports the extensions of this document
      but did not advertise this capability, then upon receipt of
      the BANDWIDTH-UTILIZATION object of type TBD12, it SHOULD generate a PCErr with
      error-type 19 (Invalid Operation), error-value TBD28 (Bandwidth
      utilization capability was not advertised) and terminate the PCEP session.</t>
          </li>

        </ul>

        <section anchor="sect-7.1.1" numbered="true" toc="default">
          <name>BANDWIDTH-UTILIZATION-CAPABILITY TLV</name>
          <t>
   The BANDWIDTH-UTILIZATION-CAPABILITY TLV is an optional TLV for use
   in the OPEN Object for Bandwidth Utilization reporting via PCEP
   capability advertisement. Its format is shown in <xref target="ure-bw-util-tlv-format"/>.</t>

      <figure anchor="ure-bw-util-tlv-format">
          <name>BANDWIDTH-UTILIZATION-CAPABILITY TLV Format </name>
          <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |       PCEP TLV Type=TBD3      |           Length=4            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                             Flags                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          ]]></artwork>
      </figure>

   <t>
   The Type of the TLV is TBD3 and it has a fixed length of 4 bytes.
   </t>

    <t>
   The value comprises a single field - Flags (32 bits).  Currently, no
   flags are defined for this TLV.</t>
   
          <t>
   Unassigned bits are considered reserved.  They MUST be set to 0 when
   sent and MUST be ignored when received.</t>

          <t>
   Advertisement of the BANDWIDTH-UTILIZATION-CAPABILITY TLV implies
   support for bandwidth utilization reporting, as well as the objects,
   TLVs and procedures defined in this document.</t>
        </section>

      </section>
      <section anchor="sect-7.2" numbered="true" toc="default">
        <name>BW-UTILIZATION-MEASUREMENT-ATTRIBUTES TLV</name>

        <t>
   The BW-UTILIZATION-MEASUREMENT-ATTRIBUTES TLV provides the
   configurable parameters of the bandwidth utilization feature.</t>

        <t>
   The format of the BW-UTILIZATION-MEASUREMENT-ATTRIBUTES TLV is shown in <xref target="ure-bw-util-cap-tlv-format"/>.</t>

      <figure anchor="ure-bw-util-cap-tlv-format">
          <name>BW-UTILIZATION-MEASUREMENT-ATTRIBUTES TLV Format </name>
        <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |       PCEP TLV Type=TBD7      |           Length              |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
 //                           sub-TLVs                          //
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          ]]></artwork>
      </figure>

    <t>
    PCEP TLV Type is defined as follows:
    </t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
 Type      Name
 ----------------------------------------------------------
 TBD7      BW-UTILIZATION-MEASUREMENT-ATTRIBUTES
]]></artwork>

   <t>
   Length: The Length field defines the length of the value portion in
   bytes, as per <xref target="RFC5440" format="default"/>.</t>

   <t>
   Value: Comprises of one or more sub-TLVs as described in Section 4 of
   this document.</t>

   <t> For reporting bandwidth utilization,
   the last reported MaxSampleBw (see <xref target="RFC8733" format="default"/>) value is
   compared with the MaxSampleBW from the current interval to detect
   the threshold crossing. </t>

   <t> The following sub-sections describe the parameters that are
   currently defined to be carried within this TLV. Any other parameters 
   not defined for this TLV MUST be ignored.</t>

        <section anchor="sect-7.2.1" numbered="true" toc="default">
          <name>Bandwidth Utilization Measurement Enable</name>
          <t>
   The Measurement-Enable sub-TLV specifies that the bandwidth
   utilization reporting is enabled using the following flag:</t>

          <artwork name="" type="" align="left" alt=""><![CDATA[
 Bit     Description
 ------------------------------------------------------------------
 23      Bandwidth Utilization Reporting Enabled
]]></artwork>

        </section>
        <section anchor="sect-7.2.2" numbered="true" toc="default">
          <name>Bandwidth Utilization Measurement Interval</name>
          <t>
   The Measurement-Interval sub-TLV specifies a time interval in seconds
   for the bandwidth samples collection for the LSP.</t>
        </section>

        <section anchor="sect-7.2.3" numbered="true" toc="default">
          <name>Bandwidth Utilization Report Threshold</name>
          <t>
   The Report-Threshold sub-TLV is used to decide if the bandwidth
   samples collected so far should be immediately reported bypassing the
   report-interval.</t>
          <ul spacing="normal">
            <li>
              <t>Threshold: The absolute threshold bandwidth value in 32-bits,
      encoded in IEEE floating-point format as described in <xref target="IEEE.754.1985" format="default"/>,
      expressed in bytes per second.</t>
            </li>
          </ul>
        </section>
        <section anchor="sect-7.2.4" numbered="true" toc="default">
          <name>Bandwidth Utilization Report Threshold Percentage</name>
          <t>
   The Report-Threshold-Percentage sub-TLV is used to decide if the
   bandwidth samples collected so far should be immediately reported
   bypassing the report-interval.</t>
        </section>
        <section anchor="sect-7.2.5" numbered="true" toc="default">
          <name>Bandwidth Utilization Report Interval</name>
          <t>
  The Report-Interval sub-TLV specifies a time interval in seconds when
  the collected bandwidth samples are to be reported to the PCE.
  The number of bandwidth samples in the report interval is computed using the measurement interval.</t>
        </section>

        <section anchor="sect-7.2.6" numbered="true" toc="default">
          <name>Bandwidth Utilization Upper Bound and Lower Bound</name>
          <t>
   The Report-Upper-Bound sub-TLV specifies the upper bound and lower bound bandwidth values 
   encoded in IEEE floating-point format as described in <xref target="IEEE.754.1985" format="default"/>,
   expressed in bytes per second, and is used to trigger an immediate
   reporting when crossed.  This may also result in the PCC taking an
   immediate local action on the LSP.</t>
        </section>
      </section>

      <section anchor="sect-7.3" numbered="true" toc="default">
        <name>BANDWIDTH Object For Reporting</name>
        <t>
   A new object-type for the existing BANDWIDTH Object (Object-Class 5) is defined to
   report the bandwidth utilization of an LSP.</t>

        <t>
   When the LSP is enabled with the bandwidth utilization reporting,
   the PCC SHOULD include the BANDWIDTH-UTILIZATION Object to report the
   bandwidth utilization of the LSP to the PCE in the PCRpt message.</t>

        <t>
   The object-type is TBD12, the object length is variable with
   multiples of 4 bytes.</t>

   <t>The object body format is shown in <xref target="ure-bw-util-obj-format"/>.</t>

      <figure anchor="ure-bw-util-obj-format">
          <name>BANDWIDTH-UTILIZATION Object Body Format For Reporting Bandwidth</name>
        <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                        BwSample1                              |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                           ...                                 |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                        BwSampleN                              |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>

        <ul spacing="normal">
          <li>
            <t>BwSample: The utilized bandwidth, (the average BwSample collected at the
      end of each measurement-interval) encoded in IEEE floating-point
      format as described in <xref target="IEEE.754.1985" format="default"/>, expressed in bytes per second.</t>
          </li>
        </ul>
      </section>
    </section>


    <section anchor="sect-66" numbered="true" toc="default">
      <name>PCEP Extensions for Liveness Detection Using PM</name>

      <section anchor="sect-66.1" numbered="true" toc="default">
        <name>Liveness Detection Using PM</name>

        <t>
   During the PCEP Initialization Phase, PCEP Speakers (PCE or PCC)
   advertise their support for LIVENESS-DETECTION.  A PCEP Speaker includes
   the LIVENESS-DETECTION-CAPABILITY TLV in the OPEN Object to advertise
   its support for PCEP Liveness-Detection extensions.  The presence of
   the LIVENESS-DETECTION-CAPABILITY TLV in the OPEN Object (in the Open
   message) indicates that the liveness detection capability is supported
   as described in this document.  Additional procedure is defined as
   following:</t>

        <ul spacing="normal">
          <li>
            <t>The PCEP protocol extensions for Liveness Detection MUST NOT be used
      if one or both PCEP Speakers have not included the LIVENESS-DETECTION-CAPABILITY TLV in their respective Open message.</t>
          </li>

          <li>
            <t>If a PCEP speaker supports the extensions of this document
      but did not advertise this capability, then upon receipt of 
      the LIVENESS-DETECTION-ATTRIBUTES TLV in the LSPA object, it SHOULD generate a
      PCErr with error-type 19 (Invalid Operation), error-value TBD29 
      (Liveness-Detection capability was not advertised) and 
      terminate the PCEP session.</t>
          </li>

        </ul>

    <section anchor="sect-66.1.1" numbered="true" toc="default">
          <name>LIVENESS-DETECTION-CAPABILITY TLV</name>

          <t>
   The LIVENESS-DETECTION-CAPABILITY TLV is an optional TLV for use in the
   OPEN Object for Liveness Detection via PCEP capability advertisement.
   Its format is shown in <xref target="ure-ld-cap-tlv-format"/>.</t>

      <figure anchor="ure-ld-cap-tlv-format">
          <name>LIVENESS-DETECTION-CAPABILITY TLV Format </name>
          <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |       PCEP TLV Type=TBD4      |           Length=4            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                             Flags                             | 
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             ]]></artwork>
      </figure>

   <t>
   The Type of the TLV is TBD4  and it has a fixed length of 4 bytes.
   </t>

   <t>
   The value comprises a single field - Flags (32 bits):
   </t>

   <t>
   Unassigned bits are considered reserved.  They MUST be set to 0 when
   sent and MUST be ignored when received.</t>

   <t>
   Advertisement of the LIVENESS-DETECTION-CAPABILITY TLV implies support
   for liveness detection, as well as the objects, TLVs and procedures
   defined in this document.     </t>

    </section>
    </section>

   <section anchor="sect-66.2" numbered="true" toc="default">
        <name>LIVENESS-DETECTION-ATTRIBUTES TLV</name>

   <t>
   The LIVENESS-DETECTION-ATTRIBUTES TLV provides the configurable
   parameters of the liveness detection feature.</t>

   <t>
   The format of the LIVENESS-DETECTION-ATTRIBUTES TLV is shown in <xref target="ure-ld-attr-tlv-format"/>.</t>

      <figure anchor="ure-ld-attr-tlv-format">
          <name>LIVENESS-DETECTION-ATTRIBUTES TLV Format </name>
        <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |       PCEP TLV Type=TBD8      |           Length              |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
 //                           sub-TLVs                          //
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              ]]></artwork>
      </figure>

<t>
PCEP TLV Type is defined as follows:
</t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
 Type     Name
 ----------------------------------------------------------
 TBD8     LIVENESS-DETECTION-ATTRIBUTES
]]></artwork>

        <t>
   Length: The Length field defines the length of the value portion in
   bytes, as per <xref target="RFC5440" format="default"/>.</t>
        <t>
   Value: Comprises of one or more sub-TLVs as described in Section 4 of
   this document.</t>

   <t> The following sub-sections describe the parameters that are
   currently defined to be carried within this TLV. Any other parameters 
   not defined for this TLV MUST be ignored.</t>

        <section anchor="sect-66.2.1" numbered="true" toc="default">
          <name>Liveness Detection Enable</name>
          <t>
   The Measurement-Enable sub-TLV specifies the liveness detection enabled using the following flags:</t>

          <artwork name="" type="" align="left" alt=""><![CDATA[
 Bit      Description
 -----------------------------------------------------------------
 22       Liveness Detection Enabled
]]></artwork>

        </section>

     <section anchor="sect-66.2.2" numbered="true" toc="default">
        <name>Liveness Detection Protocol</name>
        <t>
   The Measurement-Protocol sub-TLV specifies that the given  
   protocol type and loopback mode are enabled for liveness detection.</t>
        </section>

     <section anchor="sect-66.2.3" numbered="true" toc="default">
        <name>Liveness Detection Transmit Interval</name>
        <t>
   The Transmit-Interval sub-TLV specifies a time interval in milliseconds
   for the liveness detection loss test packet transmission.</t>
      </section>

        <section anchor="sect-66.2.4" numbered="true" toc="default">
          <name>Liveness Detection Interval</name>
          <t>
    The Measurement-Interval sub-TLV specifies a time interval in seconds for the liveness failure detection.
        The measurement interval MUST be a multiple of transmit interval.
      </t>
        </section>

      </section>

      <section anchor="sect-66.3" numbered="true" toc="default">
        <name>LIVENESS-DETECTION Object For Reporting</name>

   <t>
   The LIVENESS-DETECTION Object with Object-Class (Value TBD11) is defined
   in this document to report the liveness state of an LSP. The format of this Object is shown in <xref target="ure-ld-obj-tlv-format"/>.</t>

   <t>
   When the LSP is enabled with the liveness detection feature, the PCC
   SHOULD include the LIVENESS-DETECTION Object to report the liveness state. 
   </t>

      <figure anchor="ure-ld-obj-tlv-format">
          <name>LIVENESS-DETECTION Object Format </name>
        <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Class=TBD11   |   OT  |Res|P|I|   Object Length (bytes)       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
 //                        (Object body)                        //
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 ]]></artwork>
      </figure>

    <t>Object Length (16 bits):
    Specifies the total object length including the header, in bytes <xref target="RFC5440" format="default"/>.
    </t>

        <t>
   Object-Types (OT) are defined as follows:</t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
 Object-Type  Length   Name
 -------------------------------------------------------------
 1            8        Liveness State 
]]></artwork>

<t>
The object body format for Liveness Detection State is shown in <xref target="ure-ld-obj-state-tlv-format"/>.</t>

      <figure anchor="ure-ld-obj-state-tlv-format">
          <name> LIVENESS-DETECTION Object Format For Reporting Liveness State</name>
        <artwork name="" type="" align="left" alt=""><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |     RESERVED                                  |  State        |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         ]]></artwork>
      </figure>

       <ul spacing="normal">
          <li>
        <t>Liveness Detection State: Indicates the State of Liveness Detection as: (1) Up, (2) Down, (3) Errored.
            </t>

          </li>
          <li>
            <t>RESERVED: This field is reserved for future use.  It MUST be set
            to 0 when sent and MUST be ignored when received.</t>
          </li>
        </ul>

    </section>
    </section>


    <section anchor="sect-8" numbered="true" toc="default">
      <name>PCEP Procedure</name>
      <t>
      The following procedure is defined for the extensions to different PCEP
      messages for reporting performance measurements and liveness detection.</t>
      <section anchor="sect-8.1" numbered="true" toc="default">
        <name>MEASUREMENT-ATTRIBUTES TLVs</name>
        <ul spacing="normal">
          <li>
            <t>For a PCE-Initiated LSP <xref target="RFC8281" format="default"/> with reporting
      features enabled, the corresponding MEASUREMENT-ATTRIBUTES TLV for
      each measurement MUST be included in the LSPA Object with the
      PCInitiate message.</t>
          </li>
          <li>
            <t>For a PCE-Initiated LSP <xref target="RFC8281" format="default"/> with reporting
      features enabled, the corresponding MEASUREMENT-ATTRIBUTES TLV for
      each measurement is carried in the PCUpd message in the LSPA
      Object in order to make updates to the attributes such as the 
      Report-Interval.</t>
          </li>
          <li>
            <t>For a PCC-Initiated LSP with reporting features enabled, when the
      LSP is delegated to the PCE, the corresponding MEASUREMENT-
      ATTRIBUTES TLV for each measurement MUST be included in the LSPA
      Object of the PCRpt message.</t>
          </li>
          <li>
            <t>The various MEASUREMENT-ATTRIBUTES TLVs are encoded in all PCEP
      messages for the LSP with reporting features enabled, the absence
      of the corresponding MEASUREMENT-ATTRIBUTES TLV indicates that the
      PCEP speaker wishes to disable the feature.</t>
          </li>
        </ul>
      </section>

      <section anchor="sect-8.2" numbered="true" toc="default">
        <name>MEASUREMENT Objects</name>
        <t>
   When an LSP is enabled with a measurement reporting feature, the
   PCC SHOULD include the corresponding MEASUREMENT Object to report the
   measured values to the PCE in the PCRpt message <xref target="RFC8231" format="default"/>.</t>

        <t>
   The format of the "actual_attribute-list" in the PCRpt message is
   modified as follows:</t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
      <actual_attribute-list>::=[<BANDWIDTH>]
                                [<DELAY-MEASUREMENT>]
                                [<LOSS-MEASUREMENT>]
                                [<LIVENESS-DETECTION>]
                                [<metric-list>]
]]></artwork>

   <t>Similarly, this message is modified for the LSPs with multiple ERO/RRO objects to
   be present in the "intended-path::=" and "actual-path::=" as defined in <xref target="I-D.ietf-pce-multipath"/>.
   </t>

      </section>
    </section>

    <section anchor="sect-9" numbered="true" toc="default">
      <name>Scaling Considerations</name>
      <t>
   It should be noted that when measurement reporting is deployed under
   LSP scaling, it can lead to frequent reporting updates to the PCE.
   Operators are advised to set the values of various measurement
   reporting parameters appropriate for the deployed LSP scale.</t>

      <t>
   If a PCE gets overwhelmed, it can notify the PCC to temporarily
   suspend the reporting of the measurements as described below.</t>

      <section anchor="sect-9.1" numbered="true" toc="default">
        <name>The PCNtf Message</name>
        <t>
   As per <xref target="RFC5440" format="default"/>, the PCEP Notification message (PCNtf) can be sent
   by a PCEP speaker to notify its peer of a specific event.  A PCEP
   speaker SHOULD notify its PCEP peer that it is overwhelmed, and on
   receipt of such notification, the peer SHOULD NOT send any PCEP
   messages related to measurement reporting.  If a PCEP message related
   to measurement reporting is received, it MUST be silently ignored.</t>
        <ul spacing="normal">
          <li>
            <t>When a PCEP speaker is overwhelmed, it SHOULD notify its peer by
      sending a PCNtf message with Notification Type = TBD13 (PM
      Overwhelm State) and Notification Value = 1 (Entering PM overwhelm
      state).</t>
          </li>
          <li>
            <t>Optionally, the OVERLOADED-DURATION TLV <xref target="RFC5440" format="default"/> MAY be included that
      specifies the time period during which no further PCEP messages
      related to PM should be sent.</t>
          </li>
          <li>
            <t>When the PCEP speaker is no longer in the overwhelmed state and is
      available to process the PM reporting, it SHOULD notify its peer
      by sending a PCNtf message with Notification Type = TBD13 (PM
      Overwhelm State) and Notification Value = 2 (Clearing PM overwhelm
      state).</t>
          </li>
        </ul>
      </section>

    </section>
    <section anchor="sect-10" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
   This document defines new MEASUREMENT-ATTRIBUTES TLVs, CAPABILITY
   TLVs and MEASUREMENT Objects for reporting loss, delay measurements, liveness detection, 
   and bandwidth utilization that do not add additional security
   concerns beyond those discussed in <xref target="RFC5440" format="default"/>,  
   <xref target="RFC8231" format="default"/>,  <xref target="RFC8281" format="default"/> and
   <xref target="RFC8664" format="default"/>.</t>

   <t>
   Some deployments may find the reporting of the performance
   measurement, liveness detection, and bandwidth utilization information as extra sensitive
   as it could be used to influence the LSP path computation and LSP setup
   with an adverse effect.  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.  Thus, such deployments should employ suitable PCEP security
   mechanisms like the TCP Authentication Option (TCP-AO) <xref target="RFC5925" format="default"/> or
   Transport Layer Security <xref target="RFC8253" format="default"/>.</t>

    </section>
    <section anchor="sect-11" numbered="true" toc="default">
      <name>Manageability Considerations</name>
      <section anchor="sect-11.1" numbered="true" toc="default">
        <name>Control of Function and Policy</name>
   <t>
   The performance measurement reporting SHOULD be controlled per TE
   tunnel (at the PCC or PCE) and the values for feature attributes e.g.
   measurement-interval, report-interval, report-threshold SHOULD be
   configurable by an operator.</t>
      </section>

   <section anchor="sect-11.2" numbered="true" toc="default">
        <name>Information and Data Models</name>
   <t>
   A Management Information Base (MIB) module for modeling PCEP is
   described in <xref target="RFC7420" format="default"/>.  However, one may prefer a mechanism for
   configuration using the PCEP YANG data model <xref target="RFC9826" format="default"/>.  These
   SHOULD be enhanced to provide controls and indicators for supporting  
   the performance measurement reporting feature.  Support for various
   configuration knobs as well as for counters of messages sent/received
   containing the TLVs (defined in this document) SHOULD be added.</t>
      </section>

      <section anchor="sect-11.4" numbered="true" toc="default">
        <name>Verify Correct Operations</name>
        <t>
   Mechanisms defined in this document do not imply any new operational 
   verification requirements in addition to those already listed in
   <xref target="RFC5440" format="default"/>.</t>
      </section>

      <section anchor="sect-11.5" numbered="true" toc="default">
        <name>Requirements on Other Protocols</name>
        <t>
   Mechanisms defined in this document do not add any new requirements on other protocols.</t>
      </section>

      <section anchor="sect-11.6" numbered="true" toc="default">
        <name>Impact on Network Operations</name>
        <t>
   In order to avoid any unacceptable impact on network operations, an
   implementation SHOULD allow a limit to be placed on the number of
   LSPs that can be enabled with the performance measurement reporting
   feature.  An implementation MAY allow a limit to be placed on the
   rate of measurement reporting messages sent by a PCEP speaker and
   received by a peer.  An implementation MAY also allow sending a
   notification when a PCEP speaker is overwhelmed or the rate of
   messages reaches a threshold.</t>
      </section>

    </section>

    <section anchor="sect-12" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section anchor="sect-12.1" numbered="true" toc="default">
        <name>Measurement Capability TLV Types</name>
        <t>
   This document defines the following new PCEP TLVs; IANA is requested
   to make the following allocations from the "PCEP TLV Type Indicators"
   registry.  <eref target="http://www.iana.org/assignments/pcep/pcep.xhtml#pcep-tlv-type-indicators"/></t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
 Type      Name                                 Reference
 --------------------------------------------------------------
 TBD1      DELAY-MEASUREMENT-CAPABILITY         [This document]
 TBD2      LOSS-MEASUREMENT-CAPABILITY          [This document]
 TBD3      BANDWIDTH-UTILIZATION-CAPABILITY     [This document]
 TBD4      LIVENESS-DETECTION-CAPABILITY        [This document]
]]></artwork>

        <section anchor="sect-12.1.1" numbered="true" toc="default">
          <name>Flag Fields for MEASUREMENT-CAPABILITY TLVs</name>
          <t>
   IANA is requested to create a registry to manage the Flag field of
   the DELAY-MEASUREMENT-CAPABILITY TLV, LOSS-MEASUREMENT-CAPABILITY TLV
   and BANDWIDTH-UTILIZATION-CAPABILITY TLV.</t>
          <t>
   New bit numbers are allocated only by an IETF Review action
   <xref target="RFC8126" format="default"/>.  Each bit should be tracked using the following qualities:</t>
          <ul empty="true" spacing="normal">
            <li>
              <ul spacing="normal">
                <li>
                  <t>Bit number (counting from bit 0 as the most significant bit)</t>
                </li>
                <li>
                  <t>Capability description</t>
                </li>
                <li>
                  <t>Defining RFC</t>
                </li>
              </ul>
            </li>
          </ul>

          <t>
   The following values are defined in this document for the Flag field for -</t>

   <t>
   DELAY-MEASUREMENT-CAPABILITY TLV:
   </t>

          <artwork name="" type="" align="left" alt=""><![CDATA[
 Bit       Description                            Reference
 ----------------------------------------------------------------
 31        One-way Delay Measurement              [This document]
 30        Two-way Delay Measurement              [This document]
 29        Loopback Delay Measurement             [This document]
]]></artwork>

   <t>
   LOSS-MEASUREMENT-CAPABILITY TLV:
   </t>

          <artwork name="" type="" align="left" alt=""><![CDATA[
 Bit       Description                            Reference
 ----------------------------------------------------------------
 31        One-Way Loss Measurement               [This document]
 30        Two-Way Loss Measurement               [This document]
 29        Loopback Loss Measurement              [This document]
 28        Inferred Loss Measurement Mode         [This document]
 27        Direct Loss Measurement Mode           [This document]
]]></artwork>

        </section>
      </section>

      <section anchor="sect-12.2" numbered="true" toc="default">
        <name>MEASUREMENT-ATTRIBUTES TLVs</name>
        <t>
   This document defines the following new PCEP TLV Types; IANA is
   requested to make the following TLV type allocations from the "PCEP TLV Type Indicators" registry.
   <eref target="http://www.iana.org/assignments/pcep/pcep.xhtml#pcep-tlv-type-indicators"/></t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
 Type      Name                                    Reference
 -----------------------------------------------------------------
 TBD5      DELAY-MEASUREMENT-ATTRIBUTES            [This document]
 TBD6      LOSS-MEASUREMENT-ATTRIBUTES             [This document]
 TBD7      BW-UTILIZATION-MEASUREMENT-ATTRIBUTES   [This document]
 TBD8      LIVENESS-DETECTION-ATTRIBUTES           [This document]
]]></artwork>

        <section anchor="sect-12.2.1" numbered="true" toc="default">
          <name>The Sub-TLVs For MEASUREMENT-ATTRIBUTES TLVs</name>
          <t>
   IANA is requested to create a "MEASUREMENT-ATTRIBUTES Sub-TLV Types"
   sub-registry in the "PCEP TLV Type Indicators" registry.  New sub-TLVs 
   are allocated only by an IETF Review action <xref target="RFC8126" format="default"/>.</t>

          <t>
   This document defines the following sub-TLV types:</t>

          <artwork name="" type="" align="left" alt=""><![CDATA[
 Type     Name                                 Reference
 -------------------------------------------------------------
 0        Reserved                             [This document]
 1        Measurement-Enable sub-TLV           [This document]
 2        Transmit-Interval sub-TLV            [This document]
 3        Measurement-Protocol sub-TLV         [This document]
 4        Measurement-Interval sub-TLV         [This document]
 5        Report-Threshold sub-TLV             [This document]
 6        Report-Threshold-Percentage sub-TLV  [This document]
 7        Report-Interval sub-TLV              [This document]
 8        Report-Upper-Bound sub-TLV           [This document]
 9-       Unassigned                           [This document]
 65535
]]></artwork>

          <section anchor="sect-12.2.1.1" numbered="true" toc="default">
            <name>Flag Fields in Measurement-Enable sub-TLV</name>
            <t>
   IANA is requested to create a registry to manage the Flag field of
   the Measurement-Enable sub-TLV.</t>
            <t>
   New bit numbers are allocated only by an IETF Review action
   <xref target="RFC8126" format="default"/>.  Each bit should be tracked with the following qualities:</t>
            <ul empty="true" spacing="normal">
              <li>
                <ul spacing="normal">
                  <li>
                    <t>Bit number (counting from bit 0 as the most significant bit)</t>
                  </li>
                  <li>
                    <t>Capability description</t>
                  </li>
                  <li>
                    <t>Defining RFC</t>
                  </li>
                </ul>
              </li>
            </ul>

            <t>
   The following values are defined in this document for the Flag field.</t>

            <artwork name="" type="" align="left" alt=""><![CDATA[
 Bit    Description                              Reference
 ---------------------------------------------------------------
 31     One-Way Delay Measurement Enabled        [This document]
 30     Two-Way Delay Measurement Enabled        [This document]
 29     Loopback Delay Measurement Enabled       [This document]

 28     One-Way Loss Measurement Enabled         [This document]
 27     Two-Way Loss Measurement Enabled         [This document]
 26     Loopback Loss Measurement Enabled        [This document]
 25     Inferred Loss Measurement Enabled        [This document]
 24     Direct Loss Measurement Enabled          [This document]

 23     Bandwidth Utilization Reporting Enabled  [This document]

 22     Liveness Detection Enabled               [This document]
]]></artwork>

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

      <section anchor="sect-12.3" numbered="true" toc="default">
        <name>Measurement Object-Class</name>
        <t>
   This document defines Object-Class for the following Objects; IANA is
   requested to make the following allocations from the "PCEP Objects"
   registry.  <eref target="http://www.iana.org/assignments/pcep/pcep.xhtml#pcep-objects"/></t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
 Object-Class  Name                             Reference
 --------------------------------------------------------------
 TBD9          DELAY-MEASUREMENT Object         [This document]
 TBD10         LOSS-MEASUREMENT Object          [This document]
 TBD11         LIVENESS-DETECTION Object        [This document]
]]></artwork>

        <section anchor="sect-12.3.1" numbered="true" toc="default">
          <name>DELAY-MEASUREMENT Object-Types</name>
          <t>
   IANA is requested to create a "DELAY-MEASUREMENT Object-Types"
   sub-registry for the DELAY-MEASUREMENT Object (Object-class TBD9).</t>
          <t>
   This document defines the following object-types:</t>

    <artwork name="" type="" align="left" alt=""><![CDATA[
 Object-Type Name                                    Reference
 -------------------------------------------------------------------
 0        Reserved                                   [This document]
 1        Delay Measurement Status                   [This document]
 2        One-Way Delay Measurement Value            [This document]
 3        One-Way Delay Measurement Min/Max Values   [This document]
 4        One-Way Delay Variation Measurement Value  [This document]
 5        Two-Way Delay Measurement Value            [This document]
 6        Two-Way Delay Measurement Min/Max Values   [This document]
 7        Two-Way Delay Variation Measurement Value  [This document]
 8        Loopback Delay Measurement Value           [This document]
 9        Loopback Delay Measurement Min/Max Values  [This document]
 10       Loopback Delay Variation Measurement Value [This document]
]]></artwork>

        </section>

        <section anchor="sect-12.3.2" numbered="true" toc="default">
          <name>LOSS-MEASUREMENT Object-Types</name>
          <t>
   IANA is requested to create a "LOSS-MEASUREMENT Object-Types"
   sub-registry for the LOSS-MEASUREMENT Object (Object-class TBD10).</t>
          <t>
   This document defines the following object-types:</t>

          <artwork name="" type="" align="left" alt=""><![CDATA[
 Object-Type Name                               Reference
 --------------------------------------------------------------
 0           Reserved                           [This document]
 1           Loss Measurement Status            [This document]
 2           Tx Packets-Lost                    [This document]
 3           Rx Packets-Lost                    [This document]
 4           Total Packets-Sent-Received        [This document]
]]></artwork>

        </section>

        <section anchor="sect-12.3.3" numbered="true" toc="default">
          <name>BANDWIDTH Object-Type</name>
          <t>
   This document defines a new Object-Type for the existing BANDWIDTH object
   (Object-Class 5, <xref target="RFC5440" format="default"/>); IANA is requested to make the following
   allocation from the "PCEP Objects" registry.
   <eref target="http://www.iana.org/assignments/pcep/pcep.xhtml#pcep-objects"/></t>

          <artwork name="" type="" align="left" alt=""><![CDATA[
 Object-Type Name                               Reference
 --------------------------------------------------------------
 TBD12       BANDWIDTH-UTILIZATION Object       [This document]
]]></artwork>

        </section>
      </section>

      <section anchor="sect-12.4" numbered="true" toc="default">
        <name>PCE Error Codes</name>
        <t>
   This document defines two new error-values for PCErr with error-code
   19 (Invalid Operation).  IANA is requested to make the following
   allocations.</t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
 Error-Value  Name                                   Reference
 -------------------------------------------------------------------
 TBD21        Delay-Measurement capability
                               was not advertised    [This document]
 TBD22        Loss-Measurement capability
                               was not advertised    [This document]
 TBD23        Two-Way Measurement capability
                               was not advertised    [This document]
 TBD24        One-Way Measurement capability
                               was not advertised    [This document]
 TBD25        Loopback Measurement capability
                               was not advertised    [This document]        
 TBD26        Inferred Mode Loss Measurement capability
                               was not advertised    [This document]
 TBD27        Direct Mode Loss Measurement capability
                               was not advertised    [This document]
 TBD28        Bandwidth Utilization capability
                               was not advertised    [This document]
 TBD29        Liveness Detection capability
                               was not advertised    [This document]
]]></artwork>

      </section>

      <section anchor="sect-12.5" numbered="true" toc="default">
        <name>Notification Object-Type</name>
        <t>
   IANA is requested to allocate new Notification Types and Notification
   Values within the "Notification Object" sub-registry of the PCEP
   Numbers registry, as follows:</t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
 Type       Meaning                                Reference
 -----------------------------------------------------------------
 TBD13      PM Overwhelm State                     [This document]

            Notification-value=1:  Entering PM overwhelm state
            Notification-value=2:  Clearing PM overwhelm state
]]></artwork>

      </section>

    </section>
  </middle>
  <back>

    <references>
      <name>References</name>

    <references title="Normative References">
    &RFC2119;
    &RFC5440;
    &RFC8126;
    &RFC8174;
    &RFC8231;
    &RFC8281;
    </references>

    <references title="Informative References">
    &ieee-float;
    &RFC4655;
    &RFC5357;
    &RFC5925;
    &RFC6374;
    &RFC7420;
    &RFC7471;
    &RFC7823;
    &RFC8233;
    &RFC8253;
    &RFC8408;
    &RFC8570;
    &RFC8571;
    &RFC8664;
    &RFC8733;
    &RFC8762;
    &RFC9603;
    &RFC9779;
    &RFC9826;
    &I-D.ietf-pce-multipath; 
    &I-D.ietf-spring-stamp-srpm-srv6; 
    &I-D.ietf-spring-stamp-srpm-mpls; 
    </references>

    </references> 


   <section anchor="sect-1.1" numbered="true" toc="default">
        <name>Example Use Cases</name>
        <t>
   This section describes a non-exhaustive list of examples of deployment use cases
   of PM for LSPs when deployed in a network with the PCE. A Network Management System (NMS)
   may also be deployed in the network capable of receiving and processing streaming telemetry
   of PM metrics and may interact with the PCC and PCE for the PM
   as described in use cases 3, 4, and 5.</t>

        <t>
   Use case 1: PCE Enables PM on the PCC and PCC Takes Action</t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
PCE -----> PCC
]]></artwork>

        <t>
   In this use case, the PCE sets the upper bound threshold condition
   for LSPs at the PCC.  The PCC takes a local action when the
   condition is met.  The action could be based on a local policy or
   a policy set by the PCE.  The steps involved are -</t>
        <ul spacing="normal">
          <li>
            <t>PCE sends the PM attributes as part of the PCE-initiated LSPs
      including an upper bound threshold (<xref target="sect-4.6" format="default"/> in this document) for
      the PM metrics using the PCEP extensions defined in this document.</t>
          </li>
          <li>
            <t>PCC takes actions when PM metrics exceed the upper bound
      threshold. Such actions could include bringing down the LSP, triggering a 
      protection switch-over, removing the tunnel from IGP for some prefixes,
      or requesting a new path from the PCE (based on local policies that may
      be set by the PCE).  PCC may take these actions even when LSPs are
      delegated to the PCE as the upper bound is set by the PCE.</t>
          </li>
          <li>
            <t>PCC does not report the PM metrics to the PCE.</t>
          </li>
          <li>
            <t>PCC may install the new LSP in the routing table only if the PM metric
      is below the upper bound; otherwise, the PCC may reject the LSP
      request and send an error to the PCE.</t>
          </li>
          <li>
            <t>The report interval should be set to 0 to disable reporting to the 
      PCE.  Only the upper bound threshold should be set.</t>
          </li>
        </ul>

        <t>
   Use case 2: PCC Reports PM Metrics to the PCE, PCE Takes Action</t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
PCE <----- PCC
]]></artwork>

        <t>
   In this use case, the PCC reports the PM metrics and parameters to
   the PCE and the PCE may take an immediate local (reactive) action
   based on the PM metrics.  The steps involved are -</t>
        <ul spacing="normal">
          <li>
            <t>PCC sends the PM metrics and parameters to the PCE using the PCEP
      extensions defined in this document and the PCE takes an action;
      actions could be to correlate faults, invalidate the LSP path, send new
      LSP path to the PCC (trigger re-optimization), etc.</t>
          </li>
          <li>
            <t>If an upper bound threshold is set, the PCC only reports the PM metrics
      to the PCE when the upper bound is crossed.  Otherwise, the PCC reports the
      PM metrics to the PCE every report-interval.</t>
          </li>
          <li>
            <t>Optionally, the PCC may take an immediate local (reactive) action such
      as triggering a path protection switch-over when PM metrics exceed the upper bound.</t>
          </li>
          <li>
            <t>The PCE has a global view due to PM metric reports received from
      various PCCs and hence can make a better decision about LSP
      placement in the network.</t>
          </li>
          <li>
            <t>The PCE can make proactive decisions based on PM metrics when metrics
      are reported before the crossing of the upper bound as opposed to a 
      reactive action that the PCC could make.</t>
          </li>
          <li>
            <t>The report interval should be set to enable reporting by the PCC.
      Optionally, the upper bound threshold may also be set.</t>
          </li>
        </ul>

        <t>
   Use case 3: PCE Enables PM on the PCC, PCC Sends PM Metrics to NMS</t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
PCE -----> PCC -----> NMS
]]></artwork>

    <t>
    The steps involved are -
    </t>
        <ul spacing="normal">
          <li>
            <t>An NMS may be used in a network that is capable of
      streaming telemetry for receiving data and Yang or XML-based
      provisioning using a non-PCEP channel.  The NMS may interact
      with a PCE for LSP path computation using the PCEP channel.</t>
          </li>
          <li>
            <t>PCE sends the PM attributes as part of PCE-initiated LSPs using
      the PCEP extensions defined in this document.</t>
          </li>
          <li>
            <t>PCC reports the PM metrics to the NMS via streaming telemetry.</t>
          </li>
          <li>
            <t>The NMS may request the PCE to take an action based on the PM metrics.</t>
          </li>
          <li>
            <t>The report interval should be set to  0 to disable reporting to
      the PCE.  The other PM attributes may be set and used for streaming telemetry.</t>
          </li>
        </ul>

        <t>
   Use case 4: NMS Enables PM on the PCC, PCC Sends PM Metrics to the PCE</t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
PCE <----- PCC <----- NMS
]]></artwork>

    <t>
    The steps involved are -
    </t>

        <ul spacing="normal">
          <li>
            <t>The NMS enables PM on the PCC using a non-PCEP channel.</t>
          </li>
          <li>
            <t>The PCC then reports the PM metrics to the PCE using the PCEP extensions defined in this document.</t>
          </li>
          <li>
            <t>The PCE may take an action based on the PM metrics received from the PCC.</t>
          </li>
        </ul>

        <t>
   Use case 5: NMS Enables PM on the PCC, PCC Sends PM Metrics to NMS</t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
PCE ----> PCC <-----> NMS -----> PCE
]]></artwork>

    <t>
    The steps involved are -
    </t>

        <ul spacing="normal">
          <li>
            <t>The NMS enables PM on the PCC using a non-PCEP channel.</t>
          </li>
          <li>
            <t>The PCC reports the PM metrics to the NMS via streaming telemetry.</t>
          </li>
          <li>
            <t>The NMS may request the PCE to take an action based on the PM metrics.</t>
          </li>
          <li>
            <t>The PCEP extensions defined in this document are not used in this use case.</t>
          </li>
        </ul>
      </section>





    <section numbered="false" anchor="acknowledgments" toc="default">
      <name>Acknowledgments</name>
      <t>
      TBA.
      </t>
    </section>
  </back>
</rfc>
