<?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 strict='yes'?>
<?rfc iprnotified='no'?>
<rfc category="info" docName="draft-templin-6man-linkadapt-02.txt"
     ipr="trust200902">
  <front>
    <title abbrev="IPv6 Path MTU Updates">IPv6 Path MTU Interactions With Link
    Adaptation</title>

    <author fullname="Fred L. Templin" initials="F. L." role="editor"
            surname="Templin">
      <organization>Boeing Research &amp; Technology</organization>

      <address>
        <postal>
          <street>P.O. Box 3707</street>

          <city>Seattle</city>

          <region>WA</region>

          <code>98124</code>

          <country>USA</country>
        </postal>

        <email>fltemplin@acm.org</email>
      </address>
    </author>

    <date day="27" month="February" year="2015"/>

    <keyword>I-D</keyword>

    <keyword>Internet-Draft</keyword>

    <abstract>
      <t>IPv6 intentionally deprecates fragmentation by routers in the
      network. Instead, links with restricting Maximum Transmission Units
      (MTUs) must either drop each too-large packet and return an ICMPv6
      Packet Too Big (PTB) message or perform link-specific fragmentation and
      reassembly (also known as "link adaptation") at a layer below IPv6. This
      latter category of links is often performance-challenged to accommodate
      steady-state link adaptation. This document therefore proposes an update
      to the base IPv6 specification to better accommodate links that require
      link-specific adaptation.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>IPv6 intentionally deprecates fragmentation by routers in the
      network. Instead, links with restricting Maximum Transmission Units
      (MTUs) must either drop each too-large packet and return an ICMPv6
      Packet Too Big (PTB) message or perform link-specific fragmentation and
      reassembly (also known as "link adaptation") at a layer below IPv6. This
      latter category of links is often performance-challenged to accommodate
      steady-state link adaptation. This document therefore proposes an update
      to the base IPv6 specification to better accommodate links that require
      link-specific adaptation.</t>
    </section>

    <section title="Problem Statement">
      <t>The current "Internet cell size" is effectively 1500 bytes, i.e., the
      minimum MTU configured by the vast majority of links in the Internet.
      IPv6 constrains this even further by specifying a minimum link MTU of
      1280 bytes <xref target="RFC2460"/>. However, due to operational issues
      with Path MTU Discovery (PMTUD) <xref target="RFC1981"/> these sizes can
      often only be accommodated when links with smaller link-layer segment
      sizes are configured to perform link adaptation.</t>

      <t>Unfortunately, link adaptation can present a significant burden to
      the link endpoints, i.e., especially when the link supports high data
      rates and/or is located nearer the "middle" of the network instead of
      nearer the "edge". An alternative therefore is to ask the originating
      IPv6 node to either reduce the size of the packets it sends or perform
      host-based fragmentation, in which case reassembly would be performed by
      the final destination.</t>

      <t>In addition to the above considerations, it is becoming more and more
      evident that PMTUD uncertainties can be encountered even when there are
      no links in the path that must perform link adaptation. This is due to
      the fact that the PTB messages required for PMTUD can be lost due to
      network filters that block ICMPv6 messages <xref target="RFC2923"/><xref
      target="WAND"/><xref target="SIGCOMM"/>. Originating IPv6 node are
      therefore advised to take precautions to avoid path MTU related failure
      modes.</t>

      <t>This document updates the IPv6 protocol specification <xref
      target="RFC2460"/> to better accommodate paths with various MTUs as
      described in the following sections.</t>
    </section>

    <section title="Link Adaptation Signaling and Accommodation">
      <t>Section 5 of <xref target="RFC2460"/> states:</t>

      <t>"IPv6 requires that every link in the Internet have an MTU of 1280
      octets or greater. On any link that cannot convey a 1280-octet packet in
      one piece, link-specific fragmentation and reassembly must be provided
      at a layer below IPv6."</t>

      <t>and:</t>

      <t>"A node must be able to accept a fragmented packet that, after
      reassembly, is as large as 1500 octets.".</t>

      <t>This document does not propose to change these requirements, but
      notes that link adaptation can be burdensome for some links to the point
      that it would be highly desirable to signal the MTU limitation to the
      IPv6 communication endpoints. In order to accommodate this, when the
      router at the link ingress performs link adaptation on a packet it
      should also send an ICMPv6 PTB message back to the original source
      (subject to rate limiting) with a Next-Hop MTU set to the link
      adaptation threshold and with Code field set to 1 <xref
      target="RFC4443"/>. (Note that these PTB messages are advisory in nature
      and do not necessarily indicate packet loss.)</t>

      <t>As a result, the originating IPv6 node may receive this "new kind" of
      PTB message and should modify its behavior accordingly. This is
      accomplished by adding a new final paragraph to Section 5 of <xref
      target="RFC2460"/> as follows:</t>

      <t>"In response to an IPv6 packet that is sent to a destination located
      beyond an IPv6 link that must perform link adaptation, the originating
      IPv6 node may receive an ICMP Packet Too Big message with Code=1. In
      that case, the IPv6 node can either reduce the size of subsequent packet
      it sends or perform IPv6 fragmentation on packets no larger than 1500
      bytes by breaking the packet into N roughly equal-length pieces (where N
      is minimized and the length of each piece is smaller than the Next-Hop
      MTU). These fragments will be reassembled by the destination."</t>

      <section title="Accommodating Legacy Nodes">
        <t>Legacy IPv6 nodes observe the current final paragraph of Section 5
        of <xref target="RFC2460"/>:</t>

        <t>"In response to an IPv6 packet that is sent to an IPv4 destination
        (i.e., a packet that undergoes translation from IPv6 to IPv4), the
        originating IPv6 node may receive an ICMP Packet Too Big message
        reporting a Next-Hop MTU less than 1280. In that case, the IPv6 node
        is not required to reduce the size of subsequent packets to less than
        1280, but must include a Fragment header in those packets so that the
        IPv6-to-IPv4 translating router can obtain a suitable Identification
        value to use in resulting IPv4 fragments. Note that this means the
        payload may have to be reduced to 1232 octets (1280 minus 40 for the
        IPv6 header and 8 for the Fragment header), and smaller still if
        additional extension headers are used."</t>

        <t>For such legacy nodes, the receipt of a PTB message with a Next-Hop
        MTU less than 1280 will result in the above behavior regardless of the
        value in the Code field. As a result, a link ingress node that returns
        this new kind of PTB message may receive future packets containing a
        Fragment header with the More Fragments (MF) bit and Offset field set
        to 0. The link ingress node should process these packets as an
        indication that the originating IPv6 node is a legacy node, and should
        not send further PTB messages. Instead, the link ingress node should
        use the fragment header supplied by the source to fragment the
        original packet to a size that would avoid link adaptation. These
        fragments are then reassembled by the final destination.</t>
      </section>
    </section>

    <section title="IANA Considerations">
      <t>There are no IANA considerations for this document.</t>
    </section>

    <section anchor="security" title="Security Considerations">
      <t>The security considerations for <xref target="RFC2460"/> apply also
      to this document.</t>
    </section>

    <section anchor="acknowledge" title="Acknowledgments">
      <t>This method was inspired through discussion on the IETF v6ops and
      NANOG mailing lists in the May through July 2012 timeframe. Further
      discussion occurred on the Intarea list in the February 2015
      timeframe.</t>
    </section>
  </middle>

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

      <?rfc include="reference.RFC.4443"?>
    </references>

    <references title="Informative References">
      <?rfc ?>

      <?rfc ?>

      <?rfc include="reference.RFC.4821"?>

      <?rfc include="reference.RFC.1981"?>

      <?rfc include="reference.RFC.2923"?>

      <reference anchor="WAND">
        <front>
          <title>Inferring and Debugging Path MTU Discovery Failures</title>

          <author fullname="Matthew Luckie" initials="M" surname="Luckie">
            <organization/>
          </author>

          <author fullname="Kenjiro Cho" initials="K" surname="Cho">
            <organization/>
          </author>

          <author fullname="Bill Owens" initials="B" surname="Owens">
            <organization/>
          </author>

          <date month="October" year="2005"/>
        </front>
      </reference>

      <reference anchor="SIGCOMM">
        <front>
          <title>Measuring Path MTU Discovery Behavior</title>

          <author fullname="Matthew Luckie" initials="M" surname="Luckie">
            <organization/>
          </author>

          <author fullname="Ben Stasiewicz" initials="B" surname="Stasiewicz">
            <organization/>
          </author>

          <date month="November" year="2010"/>
        </front>
      </reference>
    </references>
  </back>
</rfc>
