<?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-generic-6man-tunfrag-07.txt"
     ipr="trust200902">
  <front>
    <title abbrev="IPv6 Path MTU Updates">IPv6 Path MTU Updates</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="14" month="January" year="2013"/>

    <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. A common case that exhibits these link
      characteristics is seen for IPv6-in-IP tunnels. Additionally, IPv6 nodes
      can avoid path MTU discovery issues even when no link adaptation is
      necessary by performing a small amount of fragmentation and/or by
      probing the path as necessary. This document therefore proposes an
      update to the base IPv6 specification to better accommodate path MTU
      issues.</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. A common case that exhibits these link
      characteristics is seen for IPv6-in-IP tunnels <xref
      target="I-D.generic-v6ops-tunmtu"/>. Additionally, IPv6 nodes can avoid
      path MTU discovery issues even when no link adaptation is necessary by
      performing a small amount of fragmentation and/or by probing the path as
      necessary. This document therefore proposes an update to the base IPv6
      specification to better accommodate path MTU issues.</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 perform fragmentation on the packets it sends, 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="Considerations for Small MTU Paths">
      <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 push the fragmentation and
      reassembly responsibility 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 less
      than 1280 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 reporting a
      Next-Hop MTU less than 1280 and with Code=1. In that case, the IPv6 node
      is not required to reduce the size of subsequent packets to less than
      1500 bytes, but must perform IPv6 fragmentation on those packets 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 up to 1280
        bytes in length and 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 fragment these packets (again,
        by splitting the packet into N roughly equal-length pieces).</t>
      </section>
    </section>

    <section title="Considerations for Medium MTU Paths">
      <t>Regardless of whether there is a link in the path that performs link
      adaptation, when an originating IPv6 node receives a PTB message
      reporting a Next-Hop MTU value between 1280 and 1500 bytes, the node
      need not reduce the size of the packets it sends. The node may instead
      invoke fragmentation for packets between 1281 and 1500 bytes (again, by
      splitting the packet into N roughly equal-length pieces) before
      submitting each fragment for link-layer framing. These fragments will be
      reassembled by the final destination.</t>

      <t>A more interesting situation arises when PTB messages are lost on the
      return path to the originating IPv6 node. Since the node has no way of
      discerning which paths may exhibit this condition, it may be better
      served to assume the worst case for all paths and take precautionary
      measures to avoid silent packet loss. For example, an originating IPv6
      node that wishes to ensure that packets between 1281 and 1500 bytes will
      reach the final destination can use "proactive fragmentation" to
      fragment each packet (again, by splitting the packet into N roughly
      equal-length pieces). Alternatively, the node can use Packetization
      Layer Path MTU Discovery (PLPMTUD) per <xref target="RFC4821"/> to
      ensure that packets of this size are being delivered to the final
      destination.</t>
    </section>

    <section title="Considerations for Large MTU Paths">
      <t>An originating IPv6 node connected to a link that supports an MTU of
      1500 bytes or larger is permitted to send packets larger than 1500 bytes
      without fragmentation, but should implement PLPMTUD <xref
      target="RFC4821"/> to verify that these larger packets are reaching the
      final destination.</t>
    </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.</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 include="reference.I-D.generic-v6ops-tunmtu"?>

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