Re: [tsvwg] Rregarding soft-state and UDP options

Tom Herbert <tom@herbertland.com> Thu, 02 January 2020 22:38 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 650511200E6 for <tsvwg@ietfa.amsl.com>; Thu, 2 Jan 2020 14:38:03 -0800 (PST)
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 AGnw5RlQFURE for <tsvwg@ietfa.amsl.com>; Thu, 2 Jan 2020 14:38:01 -0800 (PST)
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) (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 3A202120024 for <tsvwg@ietf.org>; Thu, 2 Jan 2020 14:38:01 -0800 (PST)
Received: by mail-ed1-x534.google.com with SMTP id j17so40311665edp.3 for <tsvwg@ietf.org>; Thu, 02 Jan 2020 14:38:01 -0800 (PST)
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=Yt7WC8fP8UapfNFMmvkZmJSkcVr0D1kl57fmeyL1TbE=; b=YqjLj23K5aHzn84RejKjH4HHxEn3EPifxJdKzvfSsE8A/K1U028CeI94/RO77WmgEf vCdsF9J1nIQ4fUuDHrpshR3NxGWgaKhWc7dpzGhp3czlyAttN8xWTThyJZ0sbYkVtYK5 4kyh48kZn/kn01/oNCHe4NPuM/rwsDkvCqwXYwzSrobNoQbHkZ+vYbvNT0nsikaoMk9y nwGK4xJRWoz1rfOWpt7Q/dJBrXZArrLSzfE1wEgPJ86+IR7iXrwCCMdZIER2KT54+61A shyyABf1gmTAjVYqjlyoHMTOt4xv3kypyRcgidNfgHIaTqdoamB4vtmRm+fJHb1D9YBB jqmw==
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=Yt7WC8fP8UapfNFMmvkZmJSkcVr0D1kl57fmeyL1TbE=; b=oanMaa08X023jx6YKlWw0gHG1v31plfQ+64zhSyk3vw05vtxyEY64PKQGcmkT6Buu0 OlFewhzbiZnKvtXBWAcRwBqXodq7cg8xsaRAFAIUcv9mbyWSqtfK4DYe/q+Cnu85StaB 5oueYjnkeIX+WnzeiXYxxWozrJQLdc7mor9cqDskRbXQsH0BzkG43TJiW3TjmDHpXQ04 ZgTzIv7erxvil94ofv7dS7nkp963AYkeRJJutycAf933bUDW8gAqTD81htkM1Ebp6zyj VoSIS4rMIZkNNtxfBbhiyVOnQGuqgxmlbCbE0EgcUqu91FMHep2kkohvpXc7RzHRfYto zVeA==
X-Gm-Message-State: APjAAAW3qFZxasdUxYtgmkdxQ/BnftMiVuZfp8y4MkHQdNyDc4iw2hIH Lh3gGQg493mZ039h476c54nnMK3d+os086lcWh45ijmS
X-Google-Smtp-Source: APXvYqyo4J0jNj6PDcQnqoIc9sBy/X/blrqEFiwn26zMKIpGypPMyBbrWYamIm7K7JXeMPrd2Y79rpW6oj07aXfNYZk=
X-Received: by 2002:a17:906:2e53:: with SMTP id r19mr89946263eji.306.1578004679560; Thu, 02 Jan 2020 14:37:59 -0800 (PST)
MIME-Version: 1.0
References: <CACL_3VF_Mi6JFK=so_P57+Woe5PYOzC4o2Okj6BPVzB91scRQg@mail.gmail.com> <40B548AC-6168-46B5-81F8-CB6A64C83D5C@strayalpha.com> <CACL_3VEmX6C-Mqz8OQuS2NtJQPNNFgyTgyb9uN6TrHuZYwLMLA@mail.gmail.com> <CALx6S34o4AooKW2w5rPPzRu8yQU=Db_f4jboEB6=AywJBw-mgg@mail.gmail.com> <0AA45B1F-3081-4F4F-92C2-AFB47B222854@strayalpha.com> <CALx6S35mtfGLOESBGqQpd5N0whHO_jEtZQCrfhJ=GBHSH6nxdg@mail.gmail.com> <6d088714156c9ccba194dc71ff667273@strayalpha.com>
In-Reply-To: <6d088714156c9ccba194dc71ff667273@strayalpha.com>
From: Tom Herbert <tom@herbertland.com>
Date: Thu, 02 Jan 2020 14:37:48 -0800
Message-ID: <CALx6S37FNw-5DBJZPORaGKT0HEa2nGD6NodObZHSeC1-WkwvTA@mail.gmail.com>
To: Joe Touch <touch@strayalpha.com>
Cc: 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/nXDzZutfWHfGr-tpUDEAeKgo_VQ>
Subject: Re: [tsvwg] Rregarding soft-state and UDP options
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, 02 Jan 2020 22:38:04 -0000

On Thu, Jan 2, 2020 at 1:50 PM Joe Touch <touch@strayalpha.com> wrote:
>
> Hi, Tom,
>
> On 2020-01-02 08:19, Tom Herbert wrote:
>
> On Wed, Jan 1, 2020 at 1:08 PM Joe Touch <touch@strayalpha.com> wrote:
>
>
> (changing the subject to track the thread)
>
> As we've said before, soft state negotiation is an application layer issue.
>
> Pushing the problem to the application layer really doesn't help to
> clarify or resolve the issues that have been raised. For instance,
> Mike's question on how soft-state negotiation would work for a
> unidirectional flow is still valid.
>
>
> We've addressed this too - state negotiation is impossible for unidirectional flows. Always has been.
>

Hi Joe,

Where has this been addressed? I see nothing in the draft that
discusses the constraints or requirements like this for soft-state
negotiation.

>
>
> There's normative text to indicate that this is expected for some uses of these options but it cannot be specified here because it is not internal to UDP.
>
>
> Neither are UDP options internal to UDP. If the intent is that is the
> draft is adding UDP options to be internal to the protocol in the same
> manner as TCP options are internal to TCP, then one would reasonably
> expect "UDP option negotiation" to be specified in the manner that TCP
> option negotiation is specified for TCP.
>
>
> The options are carried within UDP and some are internal while others are not. E.g., FRAG and OCS are strictly internal where others are primarily useful when passed to the user as "out of band" info (MSS, REQ/RES, TIME).
>
> The same is true for TCP options - and TCP options aren't universally negotiated by TCP. That has to be specified for each option; some are (and defined as integrated with TCP), some aren't. E.g., TCP-AO isn't negotiated; it has to be setup in advance.
>
>
>
>
> However - note that soft-state coordination isn't needed to ensure fate sharing of options and option-modified data.
>
>
> The terminology you're using is confusing. In this email both
> "soft-state coordination" and "soft state negotiation" are used, but
> the draft doesn't mention those but does use the term "soft-state
> exchange". I don't see any definitions of these and I'm not even sure
> if they all are supposed to mean the same thing. Please clarify this
> in the draft and define the terms to make this precise.
>
>
> Soft state is a widely known concept. The nuances of coordination vs. negotiation vs. exchange aren't relevant; they all are used in the same sense - means to set and refresh state that is considered a hint of previous context.
>
>
>
> That's already reliably achieved without soft-state using the existing LITE+FRAG post-reassembly options. The revision integrates LITE+FRAG (as they would not be used independently) but otherwise is basically the same.
>
> From the draft:
>
>
> "The above requirements prevent using any option that cannot be safely
> ignored unless that capability has been negotiated with an endpoint in
> advance for a socket pair."
>
> That assumes that negotiation works and sufficient which has yet to be
> shown so I see no basis for this statement.
>
>
> Fair point - that section should discuss the use of soft or hard state at the user level. Hard user state would provide that assurance.
>
>
>
> However, I will again
> point out that the "drop unrecognized options bit" in the option type,
> similar to that defined for IPv6 options,
>
>
> IP is not a model for transport protocols. There's a reason why some features were added to IP - some of which *remain unused and unsupported*.
>
> And you don't want "drop unrecognized options". You want "drop this ENTIRE PACKET" if the option isn't recognized.
>
> a) LITE+FRAG with pre and post options accomplishes this *safely* for both legacy and option-aware endpoints
>
> b) an option-required" bit *cannot* accomplish this safely for both legacy and option-aware endpoints. Legacy endpoints already treat all options as "silently ignore".
>
It's simple. Just require that options that cannot be ignored (i.e.
ones with the bit set) can only be sent in LITE+FRAG mode. If the end
point doesn't understand UDP options all it will drop the packet. If
the endpoint does understand UDP options but doesn't understand one
that can't be ignored then the packet will also be dropped. This
procedure works in *all* cases, including unidirectional flows.

>
> is sufficient to prevent a
> receiver from ignoring options that cannot safely be ignored (note
> this works in the unidirectional flow case for instance).
>
>
> LITE_FRAG pre and post options already accomplish this. If the data-modifying options aren't handled properly then the OCS on the reassembled result would fail. And legacy receivers will ignore it all.
>
> The option-required bit never works properly for legacy endpoints unless you design the option to basically *BE* LITE+FRAG (to bury the user data in the option). We already have a solution that does that more generally; there's no need for a bit to accomplish this.

If you're referring to negotiation, I don't see how that could be
considered more general. We've already pointed out one constraint that
doesn't exist for the drop if not recognized bit (the unidirectional
problem). There are likely other cases where negotiation won't work.

Tom

>
> Joe