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

Joe Touch <touch@strayalpha.com> Fri, 03 January 2020 02:23 UTC

Return-Path: <touch@strayalpha.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 BDF04120058 for <tsvwg@ietfa.amsl.com>; Thu, 2 Jan 2020 18:23:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.22
X-Spam-Level:
X-Spam-Status: No, score=-1.22 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=strayalpha.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 YGcOTSfgPp11 for <tsvwg@ietfa.amsl.com>; Thu, 2 Jan 2020 18:23:27 -0800 (PST)
Received: from server217-3.web-hosting.com (server217-3.web-hosting.com [198.54.115.226]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0D51F12004D for <tsvwg@ietf.org>; Thu, 2 Jan 2020 18:23:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=strayalpha.com; s=default; h=To:References:Message-Id: Content-Transfer-Encoding:Cc:Date:In-Reply-To:From:Subject:Mime-Version: Content-Type:Sender:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=ZffPBWmCpxsHA6ZlGcIz7PlnbDVUyBgLV99UsysNeTU=; b=7az1LingKqhE2PIZGg9phLWVQ IMnVa2rHJ0zEPsTNuqF4JcdQgiErSGZyxz4hSbtQBx59RjHLwxe6ysAIzxVBxhyiB6jAnpjYVLDL+ F5dkoiebiv6CjzokGK3l4J1VvNM2hntw+yTfr0YgyKTK/F16UyYT9sCDKQyS49Fg6Lnls/p5Ncv4m ig//+yr+Vz5fi+vC8YEdfn4/lIbv0EYHIWmYp+xqXgAqnUFVwKSNoJgSNxo6HbOCLQMUCkqSvD2ad mduop314qcT1R9tfg9A0UERpuHYONfiDTSjvhuKRCmg9I4shCdq+AhODQZcDOFC1q2BGBAsTU4NSl 5QzUjT0NA==;
Received: from cpe-172-250-225-198.socal.res.rr.com ([172.250.225.198]:55725 helo=[192.168.1.10]) by server217.web-hosting.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92) (envelope-from <touch@strayalpha.com>) id 1inCcT-001Icu-W2; Thu, 02 Jan 2020 21:23:26 -0500
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.40.2.2.4\))
From: Joe Touch <touch@strayalpha.com>
In-Reply-To: <CALx6S34aVhQXrnJqyo-zYoSMAsYdNqLZBy+5HRq7gX7S-mFebw@mail.gmail.com>
Date: Thu, 02 Jan 2020 18:23:21 -0800
Cc: TSVWG <tsvwg@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <50B40711-64A2-48AA-8EE6-CC1B995339C0@strayalpha.com>
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> <CALx6S37FNw-5DBJZPORaGKT0HEa2nGD6NodObZHSeC1-WkwvTA@mail.gmail.com> <3CB53C92-9CE3-4EAE-BBF4-39334550B192@strayalpha.com> <CALx6S34aVhQXrnJqyo-zYoSMAsYdNqLZBy+5HRq7gX7S-mFebw@mail.gmail.com>
To: Tom Herbert <tom@herbertland.com>
X-Mailer: Apple Mail (2.3608.40.2.2.4)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server217.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - strayalpha.com
X-Get-Message-Sender-Via: server217.web-hosting.com: authenticated_id: touch@strayalpha.com
X-Authenticated-Sender: server217.web-hosting.com: touch@strayalpha.com
X-Source:
X-Source-Args:
X-Source-Dir:
X-From-Rewrite: unmodified, already matched
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/32rMTLSRxBATxvelf0506Y8LucA>
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: Fri, 03 Jan 2020 02:23:29 -0000


> On Jan 2, 2020, at 6:03 PM, Tom Herbert <tom@herbertland.com> wrote:
> 
> On Thu, Jan 2, 2020 at 5:11 PM Joe Touch <touch@strayalpha.com> wrote:
>> ...
>> 
>> Negotiation doesn’t *have to work*. But if you don’t negotiate some sort of state, you can’t use options that can’t be silently dropped - regardless of whether they modify contents or not. That’s already stated in Sec 13.
>> 
> 
> Joe,
> 
> I don't know what you mean by "Negotiation doesn't *have to work*".

Correct use of options does not require bidirectional negotiation. 

> What I do know is that there is insufficient description in the draft
> for how a negotiation of options in a stateless protocol like UDP can
> generally work correctly or robustly.

It’s an application issue. UDP isn’t stateful and these options don’t change that.

> For instance, by the definition
> of "soft-state", it is possible that after negotiation, one side of a
> communication reboots and changes its configuration such that the
> state held by the peer is out of date.

That’s why it’s called soft, not hard.

> An option previously negotiated
> may now be unrecognized by the receiver and thus it would accept an
> option that is otherwise supposed to be ignored. It will continue to
> incorrectly ignore the option until a renegotiation happens. Ignoring
> an option that can't be ignored is fundamentally not correct. TCP does
> not have this problem since options that are used on a connection are
> explicitly negotiated and connection semantics are used.

TCP doesn’t have that problem because it has hard state, not soft state. However, its up to EACH option to decide whether it is negotiated during a SYN exchange or not. If not, then TCP is in exactly the same situation as UDP.

> IPv6 options
> solve this problem by the "drop if unrecognized" bit so no negotiation
> is ever necessary.

That is ONE way to solve things, but its hardly “solved" when nearly nobody uses it.

But it’s also not relevant here because IPv6 baked that rule in from the start. We can’t - there’s NOTHING we can do to make a legacy receiver drop packets with unknown options, regardless of the flags per se. All we can do is design them so the options and data are invisible together, which LITE+FRAG already supports.

> It's also easy to contrive other scenarios where
> supported options may change between packets (e.g. destination is an
> anycast address, NAT state for a UDP flow changes).

Yes, and that’s why soft state needs to be updated if used that way.

> What *specifically* in soft-state negotiation prevents these types of
> scenarios from leading to the incorrect behavior of a receiver
> accepting an option it is supposed to ignore?

Soft state remains soft. If you need assurances that options fate share with data, LITE+FRAG works. A bit in the option doesn’t.

Joe