<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="no"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-ietf-pce-pcep-pmtu-09" ipr="trust200902"
     obsoletes="" submissionType="IETF" updates="5440" xml:lang="en">
  <front>
    <title abbrev="PCEP-PMTU">Support for Path MTU (PMTU) in the Path
    Computation Element (PCE) Communication Protocol (PCEP)</title>

    <author fullname="Shuping Peng" initials="S." surname="Peng">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Rd.</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>pengshuping@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Cheng Li" initials="C" surname="Li">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Rd.</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>China</country>
        </postal>

        <email>c.l@huawei.com</email>
      </address>
    </author>

    <author fullname="Liuyan Han" initials="L." surname="Han">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <code>100053</code>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>hanliuyan@chinamobile.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Luc-Fabrice Ndifor" initials="L." surname="Ndifor">
      <organization>MTN Cameroon</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>Cameroon</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>Luc-Fabrice.Ndifor@mtn.com</email>

        <uri/>
      </address>
    </author>

	<author fullname="Samuel Sidor" initials="S." surname="Sidor">
      <organization>Cisco</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>Slovakia</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>ssidor@cisco.com</email>

        <uri/>
      </address>
    </author>


    <date year="2026"/>

    <area>Routing</area>

    <workgroup>PCE Working Group</workgroup>

    <abstract>
      <t>The Path Computation Element (PCE) provides path computation
      functions in support of traffic engineering in Multiprotocol Label
      Switching (MPLS) and Generalized MPLS (GMPLS) networks.</t>

      <t>The Source Packet Routing in Networking (SPRING) architecture
      describes how Segment Routing (SR) can be used to steer packets through
      an IPv6 or MPLS network using the source routing paradigm. A Segment
      Routed Path can be derived from a variety of mechanisms, including an
      IGP Shortest Path Tree (SPT), explicit configuration, or a Path
      Computation Element (PCE).</t>

      <t>Since the SR does not require signaling, the path maximum
      transmission unit (MTU) information for the SR path is unavailable at the headend. This
      document specifies the extension to PCE Communication Protocol (PCEP) to
      carry path MTU as a new metric type in the PCEP messages for SR, but not limited to it.</t>
      <t>This document also updates RFC 5440 to allow metric bounds to be minimum
      as needed in the case of path MTU.</t>
    </abstract>

  </front>

  <middle>
    <section title="Introduction" toc="default">
      <t><xref target="RFC5440"/> describes the Path Computation Element (PCE)
      Communication Protocol (PCEP). PCEP enables communication between a
      Path Computation Client (PCC) and a PCE, or between PCE and PCE, for the
      purpose of computation of Multiprotocol Label Switching (MPLS) as well
      as Generalized MPLS (GMPLS) Traffic Engineering Label Switched Path (TE
      LSP) characteristics.</t>

      <t><xref target="RFC8231"/> specifies a set of extensions to PCEP to
      enable stateful control of TE LSPs within and across PCEP sessions in
      compliance with <xref target="RFC4657"/>. It includes mechanisms to
      effect LSP State Synchronization between PCCs and PCEs, delegation of
      control over LSPs to PCEs, and PCE control of timing and sequence of
      path computations within and across PCEP sessions. The model of
      operation where LSPs are initiated from the PCE is described in <xref
      target="RFC8281"/>.</t>

      <t>As per <xref target="RFC8402"/>, with Segment Routing (SR), a node
      steers a packet through an ordered list of instructions, called
      segments. A segment can represent any instruction, topological or
      service-based. A segment can have a semantic local to an SR node or
      global within an SR domain. SR enables the enforcement of a flow through
      a specific path
      and service chain while ensuring that the per-flow state is maintained only at
      the ingress
      node of the SR domain. Segments can be derived from different
      components: IGP, BGP, Services, Contexts, Locators, etc. The SR
      architecture can be applied to the MPLS forwarding plane without any
      change, in which case an SR path corresponds to an MPLS Label Switching
      Path (LSP). The SR is applied to the IPv6 forwarding plane using SRH. An SR
      path can be derived from an IGP Shortest Path Tree (SPT), but SR-TE
      paths may not follow IGP SPT. Such paths may be chosen by a suitable
      network planning tool or a PCE and provisioned on the ingress node.</t>

      <t>As per <xref target="RFC8664"/>, it is possible to use a stateful PCE
      for computing one or more SR-TE paths taking into account various
      constraints and objective functions. Once a path is chosen, the stateful
      PCE can initiate an SR-TE path on a PCC using PCEP extensions specified
      in <xref target="RFC8281"/> using the SR specific PCEP extensions
      specified in <xref target="RFC8664"/>. <xref target="RFC8664"/>
      specifies PCEP extensions for supporting an SR-TE LSP for MPLS data
      plane. <xref target="RFC9603"/> extend PCEP to
      support SR for IPv6 data plane.</t>

      <!--<t>The maximum transmission unit (MTU) is the largest size packet or
      frame, in bytes, that can be sent in a network. An MTU that is too large
      might cause retransmissions. Too small an MTU might cause the router to
      send and handle relatively more header overhead and acknowledgments.
      When an LSP is created across a set of links with different MTU sizes,
      the ingress router need to know what the smallest MTU is on the LSP
      path. If this MTU is larger than the MTU of one of the intermediate
      links, traffic might be dropped, because MPLS packets cannot be
      fragmented. Also, the ingress router may not be aware of this type of
      traffic loss, because the control plane for the LSP would still function
      normally. <xref target="RFC3209"/> specify the mechanism of MTU
      signaling in RSVP.</t>-->

      <t><xref target="I-D.ietf-spring-pmtu-sr-policy"/> specifies the link maximum transmission unit (MTU)
      and SR Path MTU (SR-PMTU) in the context of SR paths and policies. It also states the motivation, link MTU collection, SR-PMTU Computation, SR-PMTU Enforcement, and handling behaviors on the
      headend.</t>


      <t>Since the SR does not require signaling, the path MTU information for
      SR path is not available. This document specifies the extension to PCEP to
      carry path MTU in the PCEP messages. It is assumed that the PCE is aware
      of the link MTU as part of the Traffic Engineering Database (TED)
      population. This could be done via IGP, BGP-LS <xref target="I-D.ietf-idr-bgp-ls-link-mtu"/> or some other means. Thus,
      the PCE can find the path MTU at the time of path computation and
      include this information as part of the PCEP messages.</t>


      <t>Though the key use case for path MTU is SR, the PCEP extension (as
      specified in this document) creates a new metric type for path MTU,
      making this a generic extension that can be used for any path setup type (PST) (see <xref target="pst"/>).</t>

    </section>

			<section title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref> when, and only when, they appear in all capitals, as shown here. </t>
    </section>

<section title="Terminology">
  <t><list>
      <t>Link MTU: As per <xref target="RFC4821"/>, the Maximum Transmission Unit, i.e.,
      maximum IP packet size in bytes, that can be conveyed in one piece
      over a link.  This includes the IP header but excludes the link layer
      headers and other framing that is not part of IP or the IP
      payload.  In the case of MPLS, it also includes the label stack, and in
      case of IPv6, it includes IPv6 extension headers (including SRH).</t>

      <t>Path MTU, or PMTU: The minimum link MTU of all the links in a path
      between a source node and a destination node.  In the scope of
      SR, this is also called SR-PMTU for the SR paths and
      policies.  Note that the link MTU takes the SR overhead (label
      stack or SRH) into consideration.</t>
  </list></t>

<!--<t>This draft refers to the terms defined in <xref target="RFC8201"/>, <xref target="RFC4821"/> and <xref target="RFC3988"/>.</t>

      <t><figure>
          <artwork align="left"><![CDATA[

    MTU:  Maximum Transmission Unit, the size in bytes of the largest IP
    packet, including the IP header and payload, that can be
    transmitted on a link or path. Note that this could more properly
    be called the IP MTU, to be consistent with how other standards
    organizations use the acronym MTU.

    Link MTU:  The Maximum Transmission Unit, i.e., maximum IP packet
    size in bytes, that can be conveyed in one piece over a link.  Be
    aware that this definition is different from the definition used
    by other standards organizations.

    For IETF documents, link MTU is uniformly defined as the IP MTU
    over the link.  This includes the IP header, but excludes link
    layer headers and other framing that is not part of IP or the IP
    payload.

    Be aware that other standards organizations generally define link
    MTU to include the link layer headers.

    For the MPLS data plane, this size includes the IP header and data
    (or other payload) and the label stack but does not include any
    lower-layer headers.  A link may be an interface (such as Ethernet
    or Packet-over-SONET), a tunnel (such as GRE or IPsec), or an LSP.

    Path:  The set of links traversed by a packet between a source node
    and a destination node.

    Path MTU, or PMTU:  The minimum link MTU of all the links in a path
    between a source node and a destination node.

    For the MPLS data plane, it is the MTU of an LSP from a given LSR
    to the egress(es), over each valid (forwarding) path. This size
    includes the IP header and data (or other payload) and any part of
    the label stack that was received by the ingress LSR before it
    placed the packet into the LSP (this part of the label stack is
    considered part of the payload for this LSP). The size does not
    include any lower-level headers.

]]></artwork>
        </figure></t>-->

</section>

    <section anchor="SEC_EXT" title="PCEP Extention" toc="default">
      <section title="Extensions to METRIC Object" toc="default">
        <t>The METRIC object is defined in Section 7.8 of <xref
        target="RFC5440"/>, comprising metric-value and metric-type (T field),
        and a flags field, comprising a number of bit flags (B "Bound" bit and C "Computed Metric" bit).
        This document defines a new type for the METRIC object for Path
        MTU.</t>

        <t><list style="symbols">
            <t>T = TBD: Path MTU.</t>

            <t>A network comprises of a set of N links {Li, (i=1...N)}.</t>

            <t>A path P of an LSP is a list of K links {Lpi,(i=1...K)}.</t>

            <t>A Link MTU of link L is denoted M(L).</t>

            <t>A Path MTU metric for the path P = Min {M(Lpi), (i=1...K)}.</t>
          </list></t>

        <t>The Path MTU metric type of the METRIC object in PCEP represents
        the minimum of the Link MTU of all links along the path.</t>

        <t>When PCE computes the path, it can also find the Path MTU (based on
        the above criteria) and include this information in the METRIC object
        with the above metric type in the PCEP message when replying to the
        PCC. In a Path Computation Reply (PCRep) message, the PCE MAY insert
        the METRIC object with an Explicit Route Object (ERO) so as to provide
        the METRIC (path MTU) for the computed path. The PCE MAY also insert
        the METRIC object with a NO-PATH object to indicate that the metric
        constraint could not be satisfied.</t>

        <t>Further, a PCC MAY use the Path MTU metric in a Path Computation
        Request (PCReq) message to request a path meeting the MTU requirement
        of the path. In this case, the B bit MUST be set to suggest a bound (a
        maximum) for the Path MTU metric that MUST NOT be exceeded for the PCC
        to consider the computed path as acceptable. The Path MTU metric must
        be less than or equal to the value specified in the metric-value
        field.</t>

        <t>A PCC can also use this metric to request that the PCE optimize
        the path MTU during path computation. In this case, the B bit MUST be
		cleared.</t>

		<t>Note that <xref target="RFC5440"/> allow two metric object instances for optimization (B flag cleared) and thus the Path MTU metric object might be used alongside other metric types as well.</t>

        <t>The error handling and processing of the METRIC object is as
        specified in <xref target="RFC5440"/>.</t>


		<section title="Update to RFC 5440" toc="default">
        <t>For the handling of B bit in METRIC Object, <xref target="RFC5440"/> states: "When set in a PCReq message, the metric-value indicates a bound (a maximum) for the path metric that must not be exceeded for the PCC to consider the computed path as acceptable. The path metric must be
   less than or equal to the value specified in the metric-value field."</t>

        <t>The new metric type path MTU defined in this document is different.
   The bound for the path MTU indicates a minimum value instead of
   maximum. That is when the metric type is set to TBD for path MTU,
   the metric-value indicates a bound (a minimum path MTU) for the path
   metric that must not be subceeded for the PCC to consider the
   computed path as acceptable. The path metric for path MTU must be
   greater than or equal to the value specified in the metric-value
   field.</t>

   <t>Further, a PCC MAY request that PCE optimizes an individual path
   computation request to maximize the path MTU of the computed path by
   clearing the B bit in the METRIC object with metric-type=TBD for path
   MTU.</t>

      </section>

      </section>




      <section title="Stateful PCE and PCE Initiated LSPs" toc="default">
        <t><xref target="RFC8231"/> specifies a set of extensions to PCEP to
        enable stateful control of MPLS-TE LSPs via PCEP and the
        maintaining of these LSPs at the stateful PCE. It further
        distinguishes between an active and a passive stateful PCE. A passive
        stateful PCE uses LSP state information learned from PCCs to optimize
        path computations but does not actively update the LSP state. In contrast,
        an active stateful PCE utilizes the LSP delegation mechanism to update
        LSP parameters in those PCCs that delegated control over their LSPs to
        the PCE. <xref target="RFC8281"/> describes the setup, maintenance,
        and teardown of PCE-initiated LSPs under the stateful PCE model. The
        document defines the PCInitiate message that is used by a PCE to
        request a PCC to set up a new LSP.</t>

        <t>The new metric type defined in this document can also be used with
        the stateful PCE extensions. The format of PCEP messages described in
        <xref target="RFC8231"/> and <xref target="RFC8281"/> uses
        &lt;intended-attribute-list&gt; and &lt;attribute-list&gt;,
        respectively, (where the &lt;intended-attribute-list&gt; is the
        attribute-list defined in Section 6.5 of <xref target="RFC5440"/>).</t>

        <t>A PCE MAY include the path MTU metric in PCInitiate or PCUpd
        message to inform the PCC of the path MTU calculated for the path or as
        a bound constraint. A PCC MAY include the path MTU metric as a bound
        constraint or to indicate optimization criteria (similar to PCReq).</t>
      </section>

      <section title="Segment Routing" toc="default">
        <t>A Segment Routed path (SR path) can be derived from an IGP Shortest
        Path Tree (SPT). Segment Routed Traffic Engineering paths (SR-TE
        paths) may not follow IGP SPT. Such paths may be chosen by a suitable
        network planning tool and provisioned on the source node of the SR-TE
        path.</t>

        <t>It is possible to use a PCE for computing one or more SR-TE paths
        taking into account various constraints and objective functions. Once
        a path is chosen, the PCE can inform an SR-TE path on a PCC using PCEP
        extensions specified in <xref target="RFC8664"/>. Further, <xref
        target="RFC9603"/> adds the support for IPv6
        data plane in SR.</t>

        <t>Refer <xref target="I-D.ietf-spring-pmtu-sr-policy"/> for SR-PMTU considerations.</t>

              <section title="Multi-Path Handling" toc="default">
        <!--<t><xref target="I-D.ietf-pce-multipath"/> extends PCEP to support signaling of multipath information i.e. to all each Candidate-Path to contain multiple Segment-Lists.</t>
        <t>The PMTU could be supported per segment list as well. The exact mechanism to support this is left for further revision of this document.</t>-->
        <t><xref target="I-D.ietf-spring-pmtu-sr-policy"/> specify the handling of SR-PMTU at the SR Policy, Candidate paths, and at each segment list level. In PCEP, support for multiple segment list is added in <xref target="I-D.ietf-pce-multipath"/>. The METRIC object is currently encoded at the candidate path level. A future update of the document could investigate and include mechanisms to support SR-PMTU at each segment list level.</t>
      </section>



      <section title="Path MTU Adjustment" toc="default">

<t>As per <xref target="I-D.ietf-spring-pmtu-sr-policy"/>, it is possible for the headend implementation to take an
   FRR overhead into consideration when determining if fragmentation
   would be needed for the SR Path with TI-LFA enabled where the overhead is allowed to be configured by an operator.</t>

<!--<t>The minimal value of the link MTU along the path is collected, based on which minor adjustment is made to cater for overhead introduced by the protection mechanisms such as TI-LFA. The path MTU is the value of the minimum link MTU minus the overhead. In this way, the ingress node can use the path MTU directly.</t>-->
      </section>
      <section title="MSD" toc="default">
            <t>In SR, the term Maximum SID Depth (MSD) <xref target="RFC8491"/> refers to the maximum number of SIDs that an ingress is capable of imposing on a packet. In contrast, the PMTU determines whether IP fragmentation can be avoided, making it an unrelated factor.</t>
        </section>
      </section>
<section title="Other Path Setup Types" toc="default" anchor="pst">
<t>While SR is the primary use case for the extension defined in this document, the extension in itself is not limited to use within SR.</t>

<t>The PMTU metric type can be used for any path setup type. An implementation MAY choose not to support the use of this metric type for a particular PST as a local policy, in which case it MUST respond to its peer with a PCErr message with the Error-Type = 5 ("Policy Violation") and Error-value = TBD2 ("Metric Type not supported with this PST").</t>
</section>
    </section>

		  <!--<section title="Future Plan" toc="default">
<t>A new SPRING document needs to be published and refereed by this document.</t>
      </section>-->

    <section title="Security Considerations" toc="default">
      <t>This document defines a new METRIC type that does not add any new
      security concerns beyond those discussed in <xref target="RFC5440"/> in
      itself. Some deployments may find the path MTU information to be extra
      sensitive and could be used to influence path computation and setup with
      adverse effects. 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
      deployment should employ suitable PCEP security mechanisms like TCP
      Authentication Option (TCP-AO) <xref target="RFC5925"/> or Transport
      Layer Security (TLS) <xref target="RFC8253"/>. The procedure is based on
      TLS is considered a security enhancement and thus is much better suited
      for sensitive information.</t>
    </section>

    <section title="IANA Considerations" toc="default">
      <t>This document makes the following requests to IANA for action.</t>

      <section title="METRIC Type" toc="default">
        <t>IANA maintains the "Path Computation Element Protocol (PCEP)
        Numbers" registry group. Within this registry group, IANA maintains a registry
        for "METRIC Object T Field". IANA is requested to make the following
        allocation:</t>

        <figure>
          <artwork><![CDATA[
Value                  Description                  Reference
---------------------- ---------------------------- --------------
TBD1                   Path MTU                     This document
   ]]></artwork>
        </figure>
      </section>
      <section title="PCEP Error Type and Value" toc="default">
              <t>IANA maintains the "Path Computation Element Protocol (PCEP)
        Numbers" registry group. Within this registry group, IANA maintains a registry
        for "PCEP-ERROR Object Error Types and Values". IANA is requested to make the following allocation:</t>
        <figure>
          <artwork><![CDATA[
Error-Type   Meaning                  Error-Value   Reference
------------ ------------------------ ------------- --------------
5            Policy violation                       [RFC5440]
                                      TBD2: Metric  This document
                                      Type not
                                      supported
                                      with this
                                      PST
   ]]></artwork>
        </figure>
      </section>
      <section title="Security Considerations" toc="default">
      </section>
    </section>

  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.RFC.5440"?>

      <?rfc include="reference.RFC.8174"?>

      <?rfc include="reference.RFC.8231"?>

      <?rfc include="reference.RFC.8281"?>

      <?rfc include="reference.I-D.ietf-spring-pmtu-sr-policy"?>
    </references>

    <references title="Informative References">
      <!--<?rfc include="reference.RFC.3209"?>
      <?rfc include="reference.RFC.3988"?>-->


      <?rfc include="reference.RFC.4657"?>
      <?rfc include="reference.RFC.4821"?>


      <?rfc include="reference.RFC.5925"?>

      <!--<?rfc include="reference.RFC.8201"?>-->
      <?rfc include="reference.RFC.8253"?>

      <?rfc include="reference.RFC.8402"?>
      <?rfc include="reference.RFC.8491"?>

      <?rfc include="reference.RFC.8664"?>

      <?rfc include="reference.I-D.ietf-pce-multipath"?>

      <?rfc include="reference.RFC.9603"?>

	  <?rfc include="reference.I-D.ietf-idr-bgp-ls-link-mtu"?>

    </references>
  </back>
</rfc>
