Re: [tsvwg] Comments on recent UDP options work

Gorry Fairhurst <gorry@erg.abdn.ac.uk> Sun, 25 November 2018 18:34 UTC

Return-Path: <gorry@erg.abdn.ac.uk>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4B37B12F1AB for <tsvwg@ietfa.amsl.com>; Sun, 25 Nov 2018 10:34:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 lk2U4wQWJMMN for <tsvwg@ietfa.amsl.com>; Sun, 25 Nov 2018 10:34:07 -0800 (PST)
Received: from pegasus.erg.abdn.ac.uk (pegasus.erg.abdn.ac.uk [IPv6:2001:630:42:150::2]) by ietfa.amsl.com (Postfix) with ESMTP id 5727C1288EB for <tsvwg@ietf.org>; Sun, 25 Nov 2018 10:34:07 -0800 (PST)
Received: from Gs-MacBook-Pro.local (fgrpf.plus.com [212.159.18.54]) by pegasus.erg.abdn.ac.uk (Postfix) with ESMTPSA id 888AE1B0021A; Sun, 25 Nov 2018 18:34:01 +0000 (GMT)
Message-ID: <5BFAEB18.5020302@erg.abdn.ac.uk>
Date: Sun, 25 Nov 2018 18:34:00 +0000
From: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Reply-To: gorry@erg.abdn.ac.uk
Organization: University of Aberdeen
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:12.0) Gecko/20120428 Thunderbird/12.0.1
MIME-Version: 1.0
To: Joe Touch <touch@strayalpha.com>
CC: "C. M. Heard" <heard@pobox.com>, tsvwg <tsvwg@ietf.org>
References: <CACL_3VFG+B1AZfC09XTTq0Ht8tM5RoZt8zy1c5aK2NLpQQwKGA@mail.gmail.com> <DDBEA9CB-86A1-496C-BC73-F4C62D05ED05@strayalpha.com> <5BFACDAD.7050109@erg.abdn.ac.uk> <2CFB9765-6B83-4857-B4E6-355BCD04FBFC@strayalpha.com>
In-Reply-To: <2CFB9765-6B83-4857-B4E6-355BCD04FBFC@strayalpha.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/UGfTkOjxJGi7t8s9rDu4jQtcZP8>
Subject: Re: [tsvwg] Comments on recent UDP options work
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 25 Nov 2018 18:34:10 -0000

On 25/11/2018, 16:36, Joe Touch wrote:
>
>> On Nov 25, 2018, at 8:28 AM, Gorry Fairhurst<gorry@erg.abdn.ac.uk>  wrote:
>>
>> On 25/11/2018, 16:16, Joe Touch wrote:
>>> One question (and clarification):
>>>
>>>> On Nov 25, 2018, at 8:03 AM, C. M. Heard<heard@pobox.com<mailto:heard@pobox.com>>  wrote:
>>>>
>>>> 1. In the thread on "UDP Options Implementation Update," Tom Jones
>>>>     said "The current spec puts data in the UDP payload, which does
>>>>     not seem correct.”
>>>>
>>> I didn’t understand that either.
>> Where is the data portion of the fragment carried?
> It depends on whether it’s FRAG+LITE or FRAG only; the former puts it in the option area,
> the latter leaves it in the UDP payload.
The latter would really concern me.
>>> No variant of UDP options adds anything to the *UDP* payload; they all use space in the *IP* payload that extends beyond that of the UDP payload. That includes LITE.
>> If it is always OK to return a UDP Options packet that has had the options area stripped (without the receiver knowing) - then I think the operation is correct.
> I don’t think that’s “OK” - i.e., that should NEVER be a legitimate function of any intermediate device. However, being robust to that behavior might be a consideration...
>
>> If that could result in an incomplete or incorrect datagram payload then I think the design may be wrong.
> The design is not intended to overcome the arbitrary behavior of all intermediate devices. Again, “more robust” doesn’t mean “right”….
>
Who would implement something that currently does not work on many paths?
>>>> 1. If I understand this comment correctly, I think the issue is
>>>>     addressed by using it in combination with LITE. If in the end we
>>>>     don't retain LITE, it would still be possible to re-specify the
>>>>     FRAG option to get the same effect (i.e., make all data in the
>>>>     fragment part of the option); in this case, we would need a
>>>>     separate option to signal that FRAG is understood, in order to
>>>>     support (3) above.
>>>>
>>> It my be possible that FRAG is not useful without LITE, but remember that LITE may be useful without FRAG.
>>>
>> I think the point I saw was that LITE is complicated to implement, and also it is quite unlikely to work on many paths, because it is not possible to have LITE semantics and a CCO.
> We can leave that to the user, with the appropriate caveats.
We could - but there again I do not understand yet why it would be 
helpful to require conformant stacks to implement something that mostly 
isn't deployable at the moment.
>>> As to determining which options are understood, we currently infer that from the options received (i.e., if you send an option, you indicate you can receive it too). The receipt of ANY of the core options implies support for all of them.
>> I really do not think this should include FRAG. Support for fragments at the IP-layer is very much in doubt in other WGs, and the requirement that an endpoint "must" support FRAG, if a sender uses any options does seem worrying.
> FRAG is part of the core of UDP options; if an endpoint supports any of that core, it can be assumed to support the entire core.
Personally, I disagree with this position.
> Support for fragments at the IP layer does interfere with the profit and effort model of vendors and operators but what we’re seeing “in other WGs” are the shopping around of ideas until they find a home. Let’s not confuse that with a groundswell.
There are memory and processing implications of needing to hold onto 
fragments waiting for reassembly and what to do with rogue packets 
containing fragments that you don't know whether they should be 
reassembled.

My comment conerned doubts that this functionality should be provided by 
UDP-Optiona and a suggestion it may be better provided by an application 
(perhaps e.g. a tunnel protocol endpoint?). I don't see how adding this 
as a UDP-Option function helps eliminate complexity or to manage 
fragments better.
> Joe
Gorry