Re: [tsvwg] draft-ietf-udp-options issues from IETF 104

Gorry Fairhurst <gorry@erg.abdn.ac.uk> Thu, 18 July 2019 17:59 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 CFE7C120AEC for <tsvwg@ietfa.amsl.com>; Thu, 18 Jul 2019 10:59:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_NONE=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 gFAV4L0NrjxX for <tsvwg@ietfa.amsl.com>; Thu, 18 Jul 2019 10:59:14 -0700 (PDT)
Received: from pegasus.erg.abdn.ac.uk (pegasus.erg.abdn.ac.uk [137.50.19.135]) by ietfa.amsl.com (Postfix) with ESMTP id 75FAB120B12 for <tsvwg@ietf.org>; Thu, 18 Jul 2019 10:59:14 -0700 (PDT)
Received: from MacBook-Pro.local (fgrpf.plus.com [212.159.18.54]) by pegasus.erg.abdn.ac.uk (Postfix) with ESMTPSA id 718761B000FA; Thu, 18 Jul 2019 18:59:09 +0100 (BST)
Message-ID: <5D30B36D.80409@erg.abdn.ac.uk>
Date: Thu, 18 Jul 2019 18:59:09 +0100
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: Tom Herbert <tom@herbertland.com>
CC: Joe Touch <touch@strayalpha.com>, tsvwg <tsvwg@ietf.org>
References: <30c17e9c174f6b0da3ecc6b503a8cb17@strayalpha.com> <2f71a292f924a9b8de4227c4bbc2f809@strayalpha.com> <CACL_3VGrF5UnbVsSzZZoy1i57WKiQKBX2T3a16UyEVHY=Kr3XA@mail.gmail.com> <CE03DB3D7B45C245BCA0D243277949363061EF7A@MX307CL04.corp.emc.com> <CACL_3VE7+3WD3Uzubf8X9uQX9ZYPnZVhXjheUOuL9EfjT1JkGQ@mail.gmail.com> <CALx6S35V-d3Rn_wjrhbHUHgS=_+dVjR4hbMJ0-JBsG-1BuFuZg@mail.gmail.com> <B5CCEF58-38CE-4973-9CFD-002B404E4EF3@strayalpha.com> <CACL_3VEnJoV9N9i59fJXG1Nyt=mMWT7SuB8B=C-Y9a9QLtqP7Q@mail.gmail.com> <BB3FD9A5-8D30-4600-A7A7-DA3030BD34A3@strayalpha.com> <20190718100109.GA86292@clarinet.employees.org> <718EBD34-5B4A-4458-B9B4-0A94C33E019E@strayalpha.com> <CACL_3VGL2irCkZeEcP+9HLBHqtqaMPZM66youUsatzosUu=Aew@mail.gmail.com> <A07EA390-1A3A-4AE9-AFD7-2F22CD4B0E31@strayalpha.com> <CALx6S34oOza3Z4Ymjsp+HLXnSTOKwh+SAQO8mt=a-1AbTTB0GQ@mail.gmail.com> <177233bb33272ce3b64298a005254724@strayalpha.com> <CALx6S36ZBa4Bioj=0KYn7wcFi08VeAg8sHUHLRNGURsrUN673w@mail.gmail.com>
In-Reply-To: <CALx6S36ZBa4Bioj=0KYn7wcFi08VeAg8sHUHLRNGURsrUN673w@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/g1Aih_Nxhx2RmO51j-Hh1PcLqWM>
Subject: Re: [tsvwg] draft-ietf-udp-options issues from IETF 104
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: Thu, 18 Jul 2019 17:59:17 -0000

On 18/07/2019, 18:25, Tom Herbert wrote:
> On Thu, Jul 18, 2019 at 9:56 AM Joe Touch<touch@strayalpha.com>  wrote:
>>
>>
>>
>>
>> On 2019-07-18 08:35, Tom Herbert wrote:
>>
>> ...
>>
>> A single bit in the option type to indicate that the option can be
>> skipped if unrecognized should be sufficient.
>>
>> Tom
>>
>>
>>
>> That bit has two meanings:
>>
>> - for legacy receivers, it's simply ignored for legacy data
>>
>> - for option-aware, if the flag is set, what does it mean?
>>    - it should never mean drop the legacy data, otherwise an options-aware endpoint can't decide to act as legacy
>>    - it could mean drop non-legacy data
>>
>> Right now, the onus is on the receiver to decide what to do with the data.. The info is passed to the user - NOT decided by UDP.
>>
>> I.e., cuurrently:
>>
>> - unknown options are ignored by both legacy and option-aware endpoints
>> - UDP processing skips over all such options
>> - users can decide/negotiate what to do with those options on a per endpoint basis
>>
>> Note: the first time you send something, if you want a response to help you know what the endpoint will do, you need to set "ignore" anyway, which is what the default does. Otherwise you won't get a response and won't know why (the packet could have been dropped).
>>
>> So this only makes sense for negotiated soft-state anyway, at which point the user can either configure the endpoint UDP socket to drop if unknown or accept.
>>
>> Why would we NOT give the user this choice?
>>
> Joe,
>
> Consider that someone invents the compression option a year from now.
> The option cannot be ignored by a receiver since delivering compressed
> data to the application would be jibberish. So someone starts using
> compression and performs a "soft-state" negotiation with a timeout of
> 30 seconds in the example algorithm you previously described for
> soft-state negotiation. So the sender is sending compression option to
> some receiver. But, at some point, say 10 seconds into a timeout
> period, the receiving host changes to a different configuration that
> doesn't support the compression option-- maybe the host address is
> virtual IP and packets are now routed to a different backend, or maybe
> someone reboots the receiving hosts with a new configuration.
> The
> sender doesn't know the receiver has changed and continues sending the
> compression option. The new receiver sees the options but doesn't
> recognize it.

> If the receiver ignores the option and delivers the data
> to the application then that's data corruption. That's not robust.
That's where I disagree. I think anything that is not a native UDP 
packet MUST be carried in the options space. That's where I would 
suggest we put the compressed payload. if that means the main payload 
area isnothing", then that would be OK for me.

When the remote endpoint fails to process the compressed payload (or 
myseriously the option si stripped/ignored - how, but don't worry), then 
the app doesn't respond. It times out and does something.

Personally, unless there was a strong desire to be unidirectional (then 
you have to live with that), I'd send an option to the other end to 
solicit a little feedback - or do the same at the app layer.

Gorry
> The "drop packet on unknown option" is the conventional and cheap way
> to avoid situations like this and make stateless options robust.
Not sure how that now helps?

The receiver already ignores unknown options.
> Tom
>
>> Joe
>>
>>
Gorry