Re: Non-Last Small IPv6 Fragments

Ole Troan <otroan@employees.org> Mon, 14 January 2019 21:34 UTC

Return-Path: <otroan@employees.org>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0339913135B for <ipv6@ietfa.amsl.com>; Mon, 14 Jan 2019 13:34:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id peuWWf801XUx for <ipv6@ietfa.amsl.com>; Mon, 14 Jan 2019 13:34:29 -0800 (PST)
Received: from bugle.employees.org (accordion.employees.org [198.137.202.74]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 29271131385 for <ipv6@ietf.org>; Mon, 14 Jan 2019 13:34:29 -0800 (PST)
Received: from [10.195.18.183] (77.16.210.183.tmi.telenormobil.no [77.16.210.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bugle.employees.org (Postfix) with ESMTPSA id 5296DFECBF9D; Mon, 14 Jan 2019 21:34:27 +0000 (UTC)
Content-Type: multipart/alternative; boundary="Apple-Mail-1128E96D-CE35-4C3F-A464-399BC3212162"
Mime-Version: 1.0 (1.0)
Subject: Re: Non-Last Small IPv6 Fragments
From: Ole Troan <otroan@employees.org>
X-Mailer: iPhone Mail (16C101)
In-Reply-To: <CAAedzxpjxhP0nOZVU0CTwA1u3fsPFthrJASjDEfnLcRNvr2gBQ@mail.gmail.com>
Date: Mon, 14 Jan 2019 22:34:22 +0100
Cc: Fernando Gont <fernando@gont.com.ar>, IPv6 List <ipv6@ietf.org>, Bob Hinden <bob.hinden@gmail.com>
Content-Transfer-Encoding: 7bit
Message-Id: <88A6B125-C80C-4E13-959D-DFC37FF9F74E@employees.org>
References: <CAOSSMjV0Vazum5OKztWhAhJrjLjXc5w5YGxdzHgbzi7YVSk7rg@mail.gmail.com> <CALx6S35KNhV2gFp9OdU+M1zy5WUuEAEvXkDXNDWWxi7uQ4e_cw@mail.gmail.com> <CAN-Dau0rTdiiF2SjByxcMG6nhPCEjUH2pYBCOeK_FSGJ_ucDQw@mail.gmail.com> <CALx6S34AyV9OpvnjQhQc56n5vfeVgU5Zd3kheP0g+XvsMbBV9g@mail.gmail.com> <1b2e318e-1a9f-bb5d-75a5-04444c42ef20@si6networks.com> <CALx6S37TJr++fC=pVoeS=mrO1fHc4gL_Wtu-XkVTswzs2XxXCA@mail.gmail.com> <CALx6S36V7vrVyoTP0G6+S5XeFNB3KWS5UaNnVi20xogRERdCfg@mail.gmail.com> <973A1649-55F6-4D97-A97F-CEF555A4D397@employees.org> <CALx6S34YbBe8xBod3VsWVO33TpZcdxh2uV1vaO8Z_NKnVXp66g@mail.gmail.com> <A3C3F9C0-0A07-41AF-9671-B9E486CB8246@employees.org> <AEA47E27-C0CB-4ABE-8ADE-51E9D599EF8F@gmail.com> <6aae7888-46a4-342d-1d76-10f8b50cebc4@gmail.com> <EC9CC5FE-5215-4105-8A34-B3F123D574B9@employees.org> <4c56f504-7cd7-6323-b14a-d34050d13f4e@foobar.org> <9E6D4A6E-8ABA-4BAB-BEC5-969078323C96@employees.org> <CAAedzxpdF+yhBXfnwUcaQb-HkgdaqXRU3L+S7v8sS1F0OkwM9A@mail.gmail.com> <78a8a0e0-8808-364c -41f7-f81f90362432@gont.com.ar> <CAAedzxpjxhP0nOZVU0CTwA1u3fsPFthrJASjDEfnLcRNvr2gBQ@mail.gmail.com>
To: ek@loon.co
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/D0LvmfQFNvRLZ-vlh1WzC2i5kr0>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 21:34:32 -0000


> On 14 Jan 2019, at 21:40, Erik Kline <ek@loon.co> wrote:
> 
>> On Sun, 13 Jan 2019 at 22:24, Fernando Gont <fernando@gont.com.ar> wrote:
>> 
>> Hi, Erik,
>> 
>>> On 14/1/19 02:19, Erik Kline wrote:
>>> 
>>>> Ole Troan wrote on 13/01/2019 20:03:
>>>>> Let’s fix path MTU discovery. There’s no fix for fragmentation.
>>>> 
>>>> pmtu discovery is hard because it needs a way for an intermediate
>>>    node to be able to signal a transmitting node to dynamically drop
>>>    the MTU if network conditions change.  The only way to reliably work
>>>    around this is to transmit at 1280 and claim implementation /
>>>    operational breakage if this cannot get through.  This, however,
>>>    robs the host devices of the ability to use higher MTUs.
>>> 
>>>    “Fix” as in something different than rfc8201.
>>> 
>>> 
>>> How about a version of the fragment header that:
>>> 
>>>    (a) *always* has the L4 header (or a configurable number of bytes)
>>> in every non-first fragment
>>> 
>>> This could be documented on a per-L4+ basis how much needs to be
>>> included, i.e. we could have one doc for UDP and (say) a separate doc
>>> for information QUIC would need on a per-fragment basis.
>> 
>> If you are requiring that the first frag always contains the L4 ehader,
>> that's already achieved by RFC7112.
> 
> Not what I suggested.  I said every fragment header would include the
> L4 header (or other specifiable bytes).
> 
>> If you really mean that the FH contains the L4 header, then:
>> 
>> * There's the issue of EHs in the fragmentable part
> 
> That would be addressed in an associated L4 doc, and it would probably
> say to ignore non-transport headers.
> 
>> * It may be hard to enforce in the presence of tunnels, unless the
>> tunnel reassembles and refragments where necesary
>> 
>> 
>> Still, that doesn't solve the biggest issues with fragmention:
>> 
>> * a stateful operation for anotherwise stateless protocol
>> 
>> * i'd argue that for the IPv6 case, one of the base reasons for which
>> fragments are dropped is because they employ EHs
>> 
>> 
>> 
>>> This increases the overhead in a given fragment, but also helps to
>>> ensure that (eventually) intermediate systems can examine this field and
>>> preemptively make a drop/no-drop decision.
>> 
>> Then we're back on draft-gont-v6ops-ipv6-ehs-packet-drops
> 
> Understood, but any L3 solution is going to necessitate running into
> this.  UDP trailers is certainly cute (and +1 from me), but every
> transport will have to have some similar fix (or applications will
> have to consider rfc8085#section-3.2 type guidelines).  If there's to
> be an L3 solution to this L3 problem it will face some deployment
> issues but if its usefulness is sufficiently attractive it could find
> reasonably wide-spread support in due time (in the absence of ipng-ng,
> IPv6 is it for the long haul).
> 
> [Silly Idea #1]
> 
> (/me thinks back to spud bof)
> 
> Here's another random suggestion that maybe belongs in panrg or (more
> likely) the dumpster:
> 
> A new hop-by-hop header under "00 1", i.e.
> 
>    00 - skip over this option and continue processing the header
> 
>    1 - Option Data may change en route
> 
> of the form, for example, Option Type 00 1 00001, Opt Data Len 2,
> Option Data == MTU.  Here, the observation is that the main thing we
> have experience with "working" (for the most generous definition of
> "works") in this problemspace in the internet today is TCP MSS
> Clamping.  So let's have an MTU (or MSS) HbH option that can be
> revised monotonically downwards but never lower than 1280.  If it
> helps pad to 8 byte alignment we can have a 2nd 2-byte field that is
> untouched representing the sender's original MTU/MSS.
> 
> In this way, a sender could include an HbH with either:
> 
>    [HbH | 0 | 0x0202 | 2 | (1500=0x5dc) | Pad1 | Pad1]
> 
> or
> 
>    [HbH | 0 | 0x0202 | 4 | (1500=0x5dc) | (1500=0x5dc) ]
> 
> with one of the MTU/MSS fields to be munged along the path.
> 
> If this were the only HbH option included it adds only 8 bytes, fits
> (along with most L4 headers) within a 128 byte hardware classifier,
> and end systems could explore its usefulness via ping.  (Separately,
> there could of course be sockopt/cmsg things to set/get the values.)

https://tools.ietf.org/html/draft-hinden-6man-mtu-option-00


> 
> [Silly Idea #2]
> Separate, even sillier idea: everyone converges on using 16 bits of
> the flow ID to encode the lowest MTU encountered along the path.  Here
> again, TCP MSS clamping style behaviour would be applied to this
> field.