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

Tom Herbert <tom@herbertland.com> Thu, 18 July 2019 18:18 UTC

Return-Path: <tom@herbertland.com>
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 6A8CD12064F for <tsvwg@ietfa.amsl.com>; Thu, 18 Jul 2019 11:18:52 -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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=herbertland-com.20150623.gappssmtp.com
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 4UWZyOe_E1I0 for <tsvwg@ietfa.amsl.com>; Thu, 18 Jul 2019 11:18:51 -0700 (PDT)
Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D460712006B for <tsvwg@ietf.org>; Thu, 18 Jul 2019 11:18:50 -0700 (PDT)
Received: by mail-ed1-x541.google.com with SMTP id k21so31471741edq.3 for <tsvwg@ietf.org>; Thu, 18 Jul 2019 11:18:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=herbertland-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=lIMFMuPC3llgZ8dldhVzN0cCjYONDPfsFLjNIdnNIW8=; b=oKQefcH2oeUeP5KSIBvs5vEW4KIGynNcJIsBGg9QFldW4ukv8n+WNBvwvh6lAK3lBX aEuWeX2nHqtRxl9JY2l4oawnNbRy8bX8PTDZC5Lvej/ripxp6FxC8xIxLe8h0/cWCmMk /XvEiSbxhgBcNllMWEi38BahrMcvC0a8HgBPBcp4idQDX/h47+pDGCQ/IvUBGBJDorSe aWDNJ894i4aVarhTyDSTwR7LFb1ct0+QWjCn/bv5bSLDzcrkwQ6VI/ck+lwyUKhup+/u V+1XAQpBeLb50UiaPuCwU5SYnFHJFieq5ZHiqxqzbGqYp5ABcPIxPTk8QDINIf4MuH74 nxyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=lIMFMuPC3llgZ8dldhVzN0cCjYONDPfsFLjNIdnNIW8=; b=cmFBCEHBgxuiyrfOPKpE7I/UAbzKcli44lc6o3e6tmsnUw4qp/XpsrN96l4t9CzI1w PPYr3erSHBCamPufYmK+paxfLCsfETLpxVcZQrLthyoOLpRDoe7VQ1F9d9mS66NkUHle 8d3zT1lwwbuVJL52prT5dUWNXVKX55nXstN53i/bHnpd7DrgXcXdPmQdRQAXkSbU9RyV YpGw6nYADsy4qC8khV7nKxDpJbsiRqhiM44zTFbshyoBH7oyaG7A/IMKiPDvpP2Bq+Zn 2b0GksMTZ5XnAbwgF+1KHxl0NcIQhethPuMa/4YlV1j+UlMuxwMTIU1RnExbc2bhGNKR Vgjw==
X-Gm-Message-State: APjAAAX7WY+v9naCSV+fnhpYVrNFZ+Gy/rwTYbVvSD2nha52TcOsxsY1 KJWE/RiRYu6V1hzFecSI7puWV1ODhCckhikWHeU=
X-Google-Smtp-Source: APXvYqwDdOTnpnYw/70QOtlxg3aGmj4h0LD8JT1asdmzbdjiEfx9gqdj8oNU/P4EIgBzPVeIvSS+gSorh4Q6e/9ZK6c=
X-Received: by 2002:a17:906:229b:: with SMTP id p27mr34689096eja.266.1563473929119; Thu, 18 Jul 2019 11:18:49 -0700 (PDT)
MIME-Version: 1.0
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> <5D30B36D.80409@erg.abdn.ac.uk>
In-Reply-To: <5D30B36D.80409@erg.abdn.ac.uk>
From: Tom Herbert <tom@herbertland.com>
Date: Thu, 18 Jul 2019 11:18:37 -0700
Message-ID: <CALx6S37EauLMyeksHJ3iPNjKwLTv5qti_Hf0a2QTdzZoDrarrw@mail.gmail.com>
To: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Cc: Joe Touch <touch@strayalpha.com>, tsvwg <tsvwg@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/n0ghufpO6s_Srr7f0BREFIH-P8c>
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 18:18:53 -0000

On Thu, Jul 18, 2019 at 10:59 AM Gorry Fairhurst <gorry@erg.abdn.ac.uk> wrote:
>
> 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.
>
That's already assumed. If there are any options that can't be ignored
then the UDP Length = 8 format must be used. If processing options
fails then the packet can be dropped.

> 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.
>
Remote endpoint or remote application? We can't give an application
the compressed payload.

> 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.
>
You can do that, but bear in mind that UDP is a stateless protocol.
The feedback you get from one probe exchange might be completely
invalid on the very next packet sent. Any information gleaned about a
peer can only be considered advisory.

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

I believe that's the problem. There some options that cannot be
ignored and still maintain correctness. This is already a known issue
with other protocols.

Tom

> > Tom
> >
> >> Joe
> >>
> >>
> Gorry
>