<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-ietf-idr-sr-policy-path-mtu-11"
     ipr="trust200902">
  <front>
    <title abbrev="SR Path MTU in BGP">Segment Routing Path MTU in BGP</title>

    <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>

        <phone/>

        <facsimile/>

        <email>c.l@huawei.com</email>

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

    <author fullname="YongQing Zhu" initials="Y." surname="Zhu">
      <organization>China Telecom</organization>

      <address>
        <postal>
          <street>109, West Zhongshan Road, Tianhe District.</street>

          <city>Guangzhou</city>

          <region/>

          <code/>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>zhuyq8@chinatelecom.cn</email>

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

    <author fullname="Ahmed El Sawaf" initials="A." surname="Sawaf">
      <organization>Saudi Telecom Company</organization>

      <address>
        <postal>
          <street/>

          <city>Riyadh</city>

          <region/>

          <code/>

          <country>Saudi Arabia</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>aelsawaf.c@stc.com.sa</email>

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

    <author fullname="Zhenbin Li" initials="Z." 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>

        <phone/>

        <facsimile/>

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

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

    <date day="3" month="April" year="2025"/>

    <area>Routing Area</area>

    <workgroup>Interdomain Routing Working Group</workgroup>

    <abstract>
      <t>Segment Routing is a source routing paradigm that explicitly
      indicates the forwarding path for packets at the ingress node. An SR
      policy is a set of SR Policy candidate paths consisting of one or more
      segments with the appropriate SR path attributes. BGP distributes each
      SR Policy candidate path as combination of an prefix plus a the BGP
      Tunnel Encapsulation(Tunnel-Encaps) attribute containing an SR Policy
      Tunnel TLV with information on the SR Policy candidate path as a tunnel.
      However, the path maximum transmission unit (MTU) information for a
      segment list for SR path is not currently passed in the BGP
      Tunnel-Encaps attribute. . This document defines extensions to BGP to
      distribute path MTU information within SR policies.</t>

      <t/>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>Segment routing (SR) <xref target="RFC8402"/> is a source routing
      paradigm that explicitly indicates the forwarding path for packets at
      the ingress node. The ingress node steers packets into a specific path
      according to the Segment Routing Policy ( SR Policy) as defined in <xref
      target="RFC9256"/>. In order to distribute SR policies to the headend,
      <xref target="I-D.ietf-idr-sr-policy-safi"/> specifies a BGP mechanism
      to pass SR Policies and Candidate SR Policies in BGP UPDATE message.
      Each SR Candidate Path is passed as combination of a specific type of
      NLRI and BGP Tunnel Encapsulation Attribute (Tunnel-Encaps) with SR
      Policy Tunnel type tunnel. The NLRI must contain either be the IPv4
      Unicast AFI with SR Policy SAFI (AFI=1/SAFI=73), the IPv6 Unicast AFI
      with the SR Policy SAFI (AFI=2/SAFI=73).</t>

      <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.</t>

      <t>When an LSP is created across a set of links with different MTU
      sizes, the ingress router needs 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"/> specifies the mechanism of MTU
      signaling in RSVP. Similarly, the SRv6 packets will be dropped if the
      packet size is larger than the path MTU, since IPv6 packet cannot be
      fragmented on transmission <xref target="RFC8200"/>.</t>

      <t/>

      <t>The host may discover the PMTU by Path MTU Discovery (PMTUD) <xref
      target="RFC8201"/> or other mechanisms. But the ingress router still
      needs to examine the packet size for dropping too large packets to avoid
      malicious traffic or error traffic. Also, the packet size may exceeds
      the PMTU because of the new encapsulation of SR-MPLS or SRv6 packet at
      the ingress router.</t>

      <t>In order to check whether the Packet size exceeds the PMTU or not,
      the ingress node needs to know the Path MTU associated to the forwarding
      path. However, the path maximum transmission unit (MTU) information for
      SR path is not currently distributed in the BGP Tunnel-Encaps attribute
      TLV for the SR Policy Tunnel.</t>

      <t>This document defines a new sub-TLV for the BGP Tunnel-Encaps
      attribute for the SR Policy Tunnel type to specify Maximum Path MTU for
      a Segment list (Sub-TLV). The Maximum Path MTU can be calculated as the
      maximum of individual Link MTU information. The Link MTU information can
      be obtained via BGP-LS <xref target="I-D.ietf-idr-bgp-ls-link-mtu"/> or
      some other means. based on all Link MTUs, the controller can compute the
      PMTU and convey the information via the BGP SR policy.</t>

      <t/>

      <t/>
    </section>

    <section title="Terminology">
      <t>This memo makes use of the terms defined in <xref target="RFC8402"/>
      and <xref target="RFC3209"/>.</t>

      <t><figure>
          <artwork><![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.

      Note that: The PMTU value may be modified by subtracting some overhead
      introduced by protection mechanism, like TI-LFA. Therefore, the value
      of PMTU dilivered to the ingress node MAY be smaller than the minimum
      link MTU of all the links in a path between a source node and a 
      destination node. 

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

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

    <section title="SR Policy for Path MTU">
      <t>As defined in <xref target="I-D.ietf-idr-sr-policy-safi"/> , the SR
      policy encoding structure is as follows:</t>

      <t><figure>
          <artwork align="left"><![CDATA[
   SR Policy SAFI NLRI: <Distinguisher, Policy-Color, Endpoint>
   Attributes:
      Tunnel Encaps Attribute (23)
         Tunnel Type: SR Policy
             Binding SID
             Preference
             Priority
             Policy Name
             Explicit NULL Label Policy (ENLP)
             Segment List
                 Weight
                 Segment
                 Segment
                 ...
             ...
]]></artwork>
        </figure></t>

      <t>As introduced in Section 1, each SR path has it's path MTU. SR policy
      with SR path MTU information is expressed as below:</t>

      <t><figure>
          <artwork align="left"><![CDATA[

   SR Policy SAFI NLRI: <Distinguisher, Policy-Color, Endpoint>
   Attributes:
      Tunnel Encaps Attribute (23)
         Tunnel Type: SR Policy
             Binding SID
             Preference
             Priority
             Policy Name
             Explicit NULL Label Policy (ENLP)
             Segment List
                 Weight
                 Path MTU
                 Segment
                 Segment
                 ...
             ...

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

      <section title="Path MTU Sub-TLV">
        <t>A Path MTU sub-TLV is an Optional sub-TLV. When it appears, it must
        appear only once at most within a Segment List sub-TLV. If multiple
        Path MTU sub-TLVs appear within a Segment List sub-TLV, the NLRI MUST
        be treated as a malformed NLRI.</t>

        <t>As per <xref target="I-D.ietf-idr-sr-policy-safi"/>, when the error
        determined allows for the router to skip the malformed NLRI(s) and
        continue processing of the rest of the update message, then it MUST
        handle such malformed NLRIs as 'Treat-as-withdraw'. This document does
        not define new error handling rules for Path MTU sub-TLV, and the
        error handling rules defined in <xref
        target="I-D.ietf-idr-sr-policy-safi"/> apply to this document.</t>

        <t>A Path MTU sub-TLV is associated with an SR path specified by a
        segment list sub-TLV or a path segment <xref target="RFC9545"/> <xref
        target="I-D.ietf-spring-srv6-path-segment"/>. The Path MTU sub-TLV has
        the following format:</t>

        <t><figure>
            <artwork align="center"><![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     |    Length     |               RESERVED        |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                            Path MTU                           |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     Figure 1. Path MTU sub-TLV
]]></artwork>
          </figure>Where:</t>

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

        <t>Length: the total length in octets the value field not including
        Type and Length fields. The value must be 6.</t>

        <t>Reserved: 16 bits reserved and MUST be set to 0 on transmission and
        MUST be ignored on receipt.</t>

        <t>Path MTU: 4 bytes value of path MTU in octets. The value can be
        calculated by a central controller or other devices based on the
        information that learned via IGP of BGP-LS or other means.</t>

        <t>Whenever the path MTU of a physical or logical interface is
        changed, a new SR policy with new path MTU information should be
        updated accordingly by BGP.</t>
      </section>
    </section>

    <section title="Operations">
      <t>The document does not bring new operation beyond the description of
      operations defined in <xref target="I-D.ietf-idr-sr-policy-safi"/>. The
      existing operations defined in <xref
      target="I-D.ietf-idr-sr-policy-safi"/> can apply to this document
      directly.</t>

      <t>Typically but not limit to, the SR policies carrying path MTU
      infomation are configured by a controller.</t>

      <t>After configuration, the SR policies carrying path MTU infomation
      will be advertised by BGP update messages. The operation of
      advertisement is the same as defined in <xref
      target="I-D.ietf-idr-sr-policy-safi"/>, as well as the receiption.</t>

      <t>The consumer of the SR policies is not the BGP process. The operation
      of sending information to consumers is out of scope of this
      document.</t>
    </section>

    <section title="Implementation Status">
      <t>[Note to the RFC Editor - remove this section before publication, as
      well as remove the reference to <xref target="RFC7942"/>.</t>

      <t>This section records the status of known implementations of the
      protocol defined by this specification at the time of posting of this
      Internet-Draft, and is based on a proposal described in <xref
      target="RFC7942"/>. The description of implementations in this section
      is intended to assist the IETF in its decision processes in progressing
      drafts to RFCs. Please note that the listing of any individual
      implementation here does not imply endorsement by the IETF. Furthermore,
      no effort has been spent to verify the information presented here that
      was supplied by IETF contributors. This is not intended as, and must not
      be construed to be, a catalog of available implementations or their
      features. Readers are advised to note that other implementations may
      exist.</t>

      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and
      working groups to assign due consideration to documents that have the
      benefit of running code, which may serve as evidence of valuable
      experimentation and feedback that have made the implemented protocols
      more mature. It is up to the individual working groups to use this
      information as they see fit".</t>

      <t/>

      <section title="Huawei's Commercial Delivery">
        <t>The feature has been implemented on Huawei VRP8.</t>

        <t><list style="symbols">
            <t>Organization: Huawei</t>

            <t>Implementation: Huawei's Commercial Delivery implementation
            based on VRP8.</t>

            <t>Description: The implementation has been done.</t>

            <t>Maturity Level: Product</t>

            <t>Contact: guokeqiang@huawei.com</t>
          </list></t>
      </section>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document defines a new Sub-TLV in registries "SR Policy List
      Sub- TLVs" <xref target="I-D.ietf-idr-sr-policy-safi"/>:</t>

      <t><figure>
          <artwork><![CDATA[Value    Description                                  Reference
---------------------------------------------------------------------
 TBA     Path MTU sub-TLV                            This document


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

    <section anchor="Security" title="Security Considerations">
      <t>This document defines the extension to BGP to distribute path MTU
      information within SR policies. Therefore, the security mechanisms of
      the base BGP security model <xref target="RFC4271"/> and the security
      considereations in <xref target="I-D.ietf-idr-sr-policy-safi"/> apply to
      this document. The path MTU extension is included in the SR Policy
      extension <xref target="I-D.ietf-idr-sr-policy-safi"/>, so it does not
      introduce extra security problems comparing the existing SR policy
      entension.</t>

      <t/>

      <t>The path MTU information is critical to the path, and a wrong path
      MTU may cause packet dropping in the forwarding. An implementation needs
      to make sure that the value of the link MTU is correctly collected from
      some means, such as BGP-LS. It also must ensure the processing and
      calculation of path MTU is correct to avoid packet dropping in
      forwarding. In addition, the path MTU distribution from a controller to
      an ingress router has to be protected. The security considereations in
      <xref target="I-D.ietf-idr-sr-policy-safi"/> apply to this distribution
      procedure.</t>

      <t/>
    </section>

    <section anchor="Contributors" title="Contributors">
      <t>Jun Qiu</t>

      <t>Huawei Technologies</t>

      <t>China</t>

      <t/>

      <t>Email: qiujun8@huawei.com</t>

      <t/>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>Authors would like to thank Ketan Talaulikar, Aijun Wang, Weiqiang
      Cheng, Huanan Chen, Chongfeng Xie, Stefano Previdi, Taishan Tang,
      Keqiang Guo, Chen Zhang, Susan Hares, Weiguo Hao, Gong Xia, Bing Yang,
      Linda Dunbar, Shunwan Zhuang, Huaimo Chen, Mach Chen, Jingring Xie,
      Zhibo Hu, Jimmy Dong and Jianwei Mao for their proprefessional comments
      and help.</t>

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

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

      <?rfc include='reference.I-D.ietf-idr-sr-policy-safi'?>

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

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

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

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

      <?rfc ?>

      <?rfc ?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.RFC.3209'?>

      <?rfc include='reference.I-D.ietf-idr-bgp-ls-link-mtu'
?>

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

      <?rfc include='reference.I-D.ietf-spring-srv6-path-segment'?>

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

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

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

      <?rfc ?>

      <?rfc ?>
    </references>
  </back>
</rfc>
