<?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-00"
     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>chengli13@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>zhuyq.gd@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="28" month="April" year="2020"/>

    <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 candidate SR paths consisting of one or more segment
      lists with necessary path attributes. However, the path maximum
      transmission unit (MTU) information for SR path is not available in the
      SR policy since the SR does not require signaling. This document defines
      extensions to BGP to distribute path MTU information within SR
      policies.</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="I-D.ietf-spring-segment-routing-policy"/>. In order to
      distribute SR policies to the headend, <xref
      target="I-D.ietf-idr-segment-routing-te-policy"/> specifies a mechanism
      by using BGP.</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"/> specify the mechanism of MTU
      signaling in RSVP. Likewise, SRv6 pakcets will be dropped if the packet
      size is larger than path MTU, since IPv6 packet can not be fragmented on
      transmission <xref target="RFC8200"/> .</t>

      <t>The host may discover the PMTU by Path MTU Discovery (PMTUD) <xref
      target="RFC8201"/> or other mechanisms. But the ingress 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.</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 available since the SR does not require signaling.</t>

      <t/>

      <t>This document defines extensions to BGP to distribute path MTU
      information within SR policies. The Link MTU information can be obtained
      via BGP-LS <xref target="I-D.zhu-idr-bgp-ls-path-mtu"/> or some other
      means. With the Link MTU, the controller can compute the PMTU and convey
      the information via the BGP SR policy.</t>

      <t/>
    </section>

    <section title="Terminology">
      <t>This memo makes use of the terms defined in <xref target="RFC8402"/>
      and <xref target="RFC3209"/>.</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-segment-routing-te-policy"/>
      , 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="SR Path MTU Sub-TLV">
        <t>An SR 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
        first one will be processed, and the rest will be ignored. An SR Path
        MTU sub-TLV is associated with an SR path specified by a segment list
        sub-TLV or path segment as defined in <xref
        target="I-D.ietf-spring-mpls-path-segment"/> and <xref
        target="I-D.li-spring-srv6-path-segment"/>. It 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 of the value field not including Type and
        Length fields.</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 beyong the description of
      operations defined in <xref
      target="I-D.ietf-idr-segment-routing-te-policy"/>. The existing
      operations defined in <xref
      target="I-D.ietf-idr-segment-routing-te-policy"/> 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-segment-routing-te-policy"/>, 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 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-segment-routing-te-policy"/>:</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>TBA</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-segment-routing-te-policy'?>

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

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

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

      <?rfc ?>

      <?rfc ?>

      <?rfc ?>
    </references>

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

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

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

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

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

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

      <?rfc ?>

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