Re: [tsvwg] Comments on ietf-106-tsvwg-udp-options

Joe Touch <touch@strayalpha.com> Tue, 31 December 2019 15:09 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 A53DB120072 for <tsvwg@ietfa.amsl.com>; Tue, 31 Dec 2019 07:09:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.218
X-Spam-Level:
X-Spam-Status: No, score=-1.218 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779, URIBL_BLOCKED=0.001] 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 bm6Pb2-QL3un for <tsvwg@ietfa.amsl.com>; Tue, 31 Dec 2019 07:09:04 -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 C89F2120041 for <tsvwg@ietf.org>; Tue, 31 Dec 2019 07:09:04 -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:Cc:Date:In-Reply-To: From:Subject:Mime-Version:Content-Type:Sender:Reply-To: Content-Transfer-Encoding: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=+FpHgINVM6XDaFXJK7K+R+e6ZPV2qEklAj0H0ppcLK0=; b=QbKXMIqPbSzHceCUiy48OuWiJ Jdw7lVPnVjsbVf802W27tT1f0wCucdcHcJ30aT0t3LVSN0VJPg8t3QSLBnGdDZPq5ZUV+U/iw0Wf8 XAnR4CtzUQgrlqEGSytoSOnwXpvO4oDkynwe7XKeIfliTg+3xdNHbcLWBemigMbxoREPpzDBi07Uq 5+90LTgt59Ncoi+f+MIDWbYeHvi48MCZ3ULbuItalvICS3Dr/n8Uj//8KRrrojdmm9pUzKQDtMdSj VmoBeCRqzEG0yp3dOQ+f0viUH+Gy9hbAlmA3l0I9TgANZeGG5CROh4VMHRyNAEBPYVX19CDRKVcR9 aBpWE+GWg==;
Received: from cpe-172-250-225-198.socal.res.rr.com ([172.250.225.198]:60299 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 1imJ8k-000zf8-WE; Tue, 31 Dec 2019 10:09:04 -0500
Content-Type: multipart/alternative; boundary="Apple-Mail=_867E7593-599D-4099-95BD-D0B16DD10D13"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Joe Touch <touch@strayalpha.com>
In-Reply-To: <CACL_3VF_Mi6JFK=so_P57+Woe5PYOzC4o2Okj6BPVzB91scRQg@mail.gmail.com>
Date: Tue, 31 Dec 2019 07:08:58 -0800
Cc: TSVWG <tsvwg@ietf.org>
Message-Id: <40B548AC-6168-46B5-81F8-CB6A64C83D5C@strayalpha.com>
References: <CACL_3VF_Mi6JFK=so_P57+Woe5PYOzC4o2Okj6BPVzB91scRQg@mail.gmail.com>
To: "C. M. Heard" <heard@pobox.com>
X-Mailer: Apple Mail (2.3445.9.1)
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/uqlMbFnBVyMBGnRkU1jt16I6zOc>
Subject: Re: [tsvwg] Comments on ietf-106-tsvwg-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: Tue, 31 Dec 2019 15:09:07 -0000

Thanks for the feedback, Mike. 

Regarding the MUST SUPPORT flag part:

> On Dec 29, 2019, at 4:28 PM, C. M. Heard <heard@pobox.com> wrote:
> ...
> I'll comment when the updated text appears.
>  
> - regarding MUST SUPPORT flag
> 
> The only need for this flag has been data that must not be received by
> legacy endpoints, e.g., compressed. That's already achievable more
> flexibly using the FRAG+LITE with pre and post reassembly options. Can
> anyone show a case this doesn't cover?
> 
> I disagree with this characterization, both of the proposed change and
> the purpose that it serves. 

I made two claims:
1. the need is for data that shares fate with the option on legacy endpoints (is ignored)
2. the need is already addressed by pre and (notably) post-reassembly options in FRAG+LITE
	I was assuming FRAG that supports the degenerate case of a single fragment.

> During the e-mail discussion in the weeks prior to IETF 105, I proposed
> an additional design requirement to supplement those set forth in
> https://mailarchive.ietf.org/arch/msg/tsvwg/27I9XF-mEdXagcEPah22482v65c <https://mailarchive.ietf.org/arch/msg/tsvwg/27I9XF-mEdXagcEPah22482v65c>
> (and also in the IETF 105 presentation slides).* It was:
> 
> - Any option that affects the handling of the user data must share fate
> with that user data,…

As noted above, already supported by FRAG+LITE.

> in the following sense: either the option and the
> user data are processed together, with the data and option indication
> being delivered to the user if the processing succeeds, or else both are
> discarded, and nothing is delivered to the user. This requirement
> applies to all receivers, legacy or otherwise.

That’s accomplished by post-reassembly options.

> I do not believe that the spec, either in previous incarnations or in
> its current (-08) form, provides a way to satisfy this requirement. In
> order to fill that (perceived) gap, I proposed that (a) there shall be
> a means to transport user data in the options area with OCS coverage;

As noted in the update, OCS covers the entire option area now (which thus includes FRAG+LITE).

> (b) user data shall be transported using that mechanism whenever it is
> accompanied by an option that affects how it is processed;

The user makes this decision by selecting to use an option “post reassembly”.

> and (c)
> the Option Kind space shall be subdivided into two ranges, one for
> options that do not affect the handling of user data and another for
> options that do affect the handling of user data.

That’s a mechanism - one that is not needed to achieve the other goals.

> Note that (a) and (b) are needed to ensure that user data accompanied by
> an option that affects its processing is not delivered to a legacy
> receiver (which ignores all options) or to an option-aware receiver
> when OCS fails (for in that case, the option-aware receiver also
> ignores the options).

a) and b) are already supported.

> One way to accomplish (a) would be the version of FRAG proposed in
> https://mailarchive.ietf.org/arch/msg/tsvwg/Wv--BLVMPAX6g5umok9BQsXAEGg <https://mailarchive.ietf.org/arch/msg/tsvwg/Wv--BLVMPAX6g5umok9BQsXAEGg>
> (other alternatives have also been discussed). I'll defer further
> discussion of the details until after I see the new LITE+FRAG option.
> 
> Note that (c) is needed to ensure that user data accompanied by
> an option that affect its processing is not delivered to an option-aware
> receiver that does not recognize the option.

We have already described how this should be achieved using soft-state negotiation between the endpoints.

> As an example, AE
> (Authentication and Encryption), as defined in the current spec, affects
> the processing of the user data, but an implementation is not required
>  to support it. More generally, if an option that affects data
> handling (such as compression) is defined in the future, option-aware
> receivers that implement the current spec won't recognize it. They need
> a means to determine whether it's safe to ignore the option and deliver
> the user data or whether to discard both the data and the option.

They should be doing so using soft state coordination and the combination of pre and post reassembly options.

E.g., encrypt the parts and have a post-reassembly checksum (again, even on a degenerate single fragment). The checksum would be post-decryption and validate the result.

Simply putting in a ‘drop if not supported’ flag wouldn’t address a receiver that implements decompression incorrectly. If an option could modify the data, it’s more than sufficient to check the data after it the option is processed.

Joe

> One way to accomplish (c) would be to reserve a bit in the Option Kind
> for that purpose. The latter is what I assume is meant by a "must
> support" FLAG. I think that's a misleading name; IMO would be more
> accurate to call it a "safe to ignore" flag. I believe that the
> above discussion establishes an essential use for this flag.
> 
> Mike Heard
> 
> *The requirements were:
> 1- support options
> 2- allow at least some options to be silently ignored by legacy receivers (to enable ‘“optionally enhanced” exchanges)
> 3- allow at least some options to be required
> 4- allow the options themselves to be protected
> 5- support for fragmentation/reassembly
> 6- support for MTU discovery
> 7- support (optional) middlebox checksum/payload length bug traversal
> 8- support LITE, i.e., where some of the payload is not covered by at least some checksum processing
> 
> With the probable exception of #8, I believe that these are still current.
>