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

Joe Touch <touch@strayalpha.com> Tue, 16 July 2019 16:08 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 42307120859 for <tsvwg@ietfa.amsl.com>; Tue, 16 Jul 2019 09:08:34 -0700 (PDT)
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 DIFyfki_0M9C for <tsvwg@ietfa.amsl.com>; Tue, 16 Jul 2019 09:08:32 -0700 (PDT)
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 92F3C120853 for <tsvwg@ietf.org>; Tue, 16 Jul 2019 09:08:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=strayalpha.com; s=default; h=Message-ID:References:In-Reply-To:Subject:Cc: To:From:Date:Content-Type:MIME-Version: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=ubpT01dVEECRQQSa+2o6xZ0+8ua7uD8N23D9wPH6QLo=; b=j7vEAtiHQLI10GwLfAqhHekZs OAPZVGhHy2LT621r9kbiLw2pT7RbGwx8ndeH6AduYcTWYeYyz9465qhT0Dp1he0gTpCnIR+9LneVf kydiDIi/CVovGLlPnOyc+o9lhurOu2Y4mdV19z12nPOh1DQlukNvwjyUzuNar6WK+HB+ek0z+vYgi fBoyOosae1SQqm6w/CoMho/aPKUmwZql2kdkGWTgfiLN+zdmkyX4adVwLs+mA+lPFXevEG9Tm4D9+ Dw7+S/FndSOJKdT6caqotdAoN0a7VihS5BakTLaNK3SSdMTxF0NZJU3w6geTymySEdz7dUHwaglQo Z+oXianwg==;
Received: from [::1] (port=46914 helo=server217.web-hosting.com) by server217.web-hosting.com with esmtpa (Exim 4.92) (envelope-from <touch@strayalpha.com>) id 1hnQ0A-003L2x-LZ; Tue, 16 Jul 2019 12:08:31 -0400
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=_78366d560e9908581ce99d41c4173ea4"
Date: Tue, 16 Jul 2019 09:08:26 -0700
From: Joe Touch <touch@strayalpha.com>
To: "C. M. Heard" <heard@pobox.com>
Cc: tsvwg <tsvwg@ietf.org>
In-Reply-To: <CACL_3VGs7j+y5vFNT3OL9OKX8ue4rv-Cxi467KR-vbhnMdx86g@mail.gmail.com>
References: <CAPDqMeq9GjEQKukH1pZOTdE50e_rc3U6gpdxT-5qrS5phD0RGw@mail.gmail.com> <646D45AD-D79B-4BD2-A084-7DA97CE2C415@strayalpha.com> <7EC37B50-45D5-4CF1-B113-205E55BF244E@strayalpha.com> <CALx6S34s7L7xo+26bt5Cdaqi4Es5Aci42GHk1WNKzugr5st-Gw@mail.gmail.com> <B525BF50-EFCC-44A5-A604-6CDDA914A1CB@strayalpha.com> <CAPDqMep3R6z9PRKkHyOvrh6sV9n5Sc0B++-zVz0FYJCwE6swrQ@mail.gmail.com> <E42A2AE2-F499-465E-BDE6-5EFC0AB20042@strayalpha.com> <CE03DB3D7B45C245BCA0D24327794936306138E9@MX307CL04.corp.emc.com> <CAPDqMeoyNb7vQTdqxLpZpnKb9S7QKeDJNLyQJBmq95yXhB+xfQ@mail.gmail.com> <7D365770-64FE-40BC-901D-B4D7DF6B484B@strayalpha.com> <20190713182554.GB39770@clarinet.employees.org> <CALx6S36mH2M6SYnRSecWXa7k_d1u8O43+CXE-=KqeO0x2e5+qw@mail.gmail.com> <82FF6486-FABF-4D2C-B5E2-178779C720A4@strayalpha.com> <30c17e9c174f6b0da3ecc6b503a8cb17@strayalpha.com> <CACL_3VGs7j+y5vFNT3OL9OKX8ue4rv-Cxi467KR-vbhnMdx86g@mail.gmail.com>
Message-ID: <2f71a292f924a9b8de4227c4bbc2f809@strayalpha.com>
X-Sender: touch@strayalpha.com
User-Agent: Roundcube Webmail/1.3.7
X-OutGoing-Spam-Status: No, score=-0.5
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/hbWllb-XkIaGjHMBHiQlP_YSppA>
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: Tue, 16 Jul 2019 16:08:34 -0000

Hi, Mike,

On 2019-07-16 07:37, C. M. Heard wrote:

> Responding to some points below ... 
> 
> On Mon, Jul 15, 2019 at 1:34 PM Joe Touch <touch@strayalpha.com> wrote: 
> 
>> Where we currently are on OCS: 
>> 
>> - 16-bit, as per current UDP-options draft TEXT (figs and tables need to be updated)
> 
> OK 
> 
>> - zeroes-out with the checksummed data, to enable transit of widespread implementation bugs in middleboxes
> 
> Actually it needs to include the surplus length as a pseudo-header per https://tools.ietf.org/html/draft-fairhurst-udp-options-cco

Yes - I think that was cached in my to-do list. 

>> - the OCS field is now manditory (not signalled with a KIND field or optional as a field)
> 
> As mentioned in https://mailarchive.ietf.org/arch/msg/tsvwg/XZxL29UA-95ReA72mxv5-kEytK0for use in the trailer I'd prefer leaving it as an option so that NOPs can be prepended for alignment, at the discretion of the sender

Yes, that's the trade-off. If it's mandatory, we need to decide its
alignment (none, 16-bit, 32-bit) ahead of time for all time. AND it has
to be there even if it's not used. 

If we use the 1-byte flag, the alignment can be at the user's discretion
and we save space when not in use. 

>> - OCS *SHOULD be computed, but MAY be set to zero (e.g., when UDP CS=0, at user discretion and peril)
> 
> Partly agree. I do not want to see any receiver obligated to accept packets with UDP trailers that don't have a computed OCS if UDP CS<>0 (it's fine to allow a mode that does otherwise as long as it's an optional-to-implement capability).

Optional to implement seems odd; it seems fine to say the receiver can
treat ignore the surplus area in that case (i.e., act like a legacy
receiver). 

> Remember, in IPV6 the IP Payload Length is NOT protected by an IP header checksum or by the pseudo-header in the UDP checksum,

Good point - that needs to be noted. 

> so the ONLY protection against corruption of the computed trailer length is the OCS.

Again, this is certainly a risk, but why isn't it just a choice? When
UDP picks CS=0, they're saying they are willing to take that risk. 

>> - with LITE, OCS might be transmit-side computed and receive-side ignored to allow for the intended NON-ROBUST capability (at least when NOT transiting buggy middbleboxes; see below) of LITE 
>> 
>> (if LITE data doesn't change, that will transit middleboxes; if the LITE data does change, there's no way to help it transit middleboxes anyway)
> 
> As a point of clarification: this means that OCS would include the LITE data (which it does NOT do now) and the options; OCS would not be checked on receive; is that correct?

That is what I'm thinking, but there are certainly variants of what
might or might not be covered. 

I.e., we could do things a few different ways: 
- in the current draft text OCS is "all or none" for the CS area, where
LITE is "not covered" because it's jumped over completely 
- if we want protection for PART of the surplus area, we would need two
different CS. That argues for going back to Gorry's CCO proposal. 

--- 

As a note, I think we're diverging from our intended goals. Those might
be useful to include in udp-opts. My recollection was: 

- support a version of what LITE does, if possible 
- support frag/reassy 
- support single-packet (each way) exchanges with legacy receivers
(notably for the DNSSEC case, e.g., send a request with a null option to
allow enabled receivers to respond directly either in legacy mode or
option-enabled-mode) 
- support transport-level security (akin to TCP-AO) 
- support PLPMTUD (via the echo exchange) 

Many of these simply won't work as automatically legacy-compatible with
draft-herbert; the legacy data can easily exceed its limits, at a
minimum. 

Joe