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

Joe Touch <touch@strayalpha.com> Thu, 11 July 2019 20:45 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 5BAE1120043 for <tsvwg@ietfa.amsl.com>; Thu, 11 Jul 2019 13:45:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.219
X-Spam-Level:
X-Spam-Status: No, score=-1.219 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] 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 v73ZahhtZJIF for <tsvwg@ietfa.amsl.com>; Thu, 11 Jul 2019 13:45:14 -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 14F2612000F for <tsvwg@ietf.org>; Thu, 11 Jul 2019 13:45:13 -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=rlzIqrzImM+9VT3CTrpRCYESVWMgI1+iuFVKDbwxR6s=; b=qla5JkATWPNwqY3z++54065UN cvIyknUUQPt/IqNwvb5HhYpLIpNDlKCEZMJBjVzrQXgBnC40EQCLol6griQgl24HbiWE2BLoOVcjP 12SWiXXNWhxWXgXKyk/hgrmbuumQVqMWIewGC9NGuYvNf+GqgZCpH6q266T+eZjfiIQraqcx7dAnf 5pTmPU0V3+p88edQbFNm9tTwZuXir6urQlsu5xwrsCs4MdGUzO2EEifC/NW33MXOzCYfrpich/cgZ 45lvE+fP/o2OVosxbuqsZJPybarzxQKTtX2MSftlfzfT/8b2sewBaiomqWMGytC2/aLBySdv5fZz7 0UGgOIriw==;
Received: from [::1] (port=33942 helo=server217.web-hosting.com) by server217.web-hosting.com with esmtpa (Exim 4.92) (envelope-from <touch@strayalpha.com>) id 1hlfwB-003pIe-TS; Thu, 11 Jul 2019 16:45:12 -0400
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=_473bca2e59e2db224520b2ac53fe2afc"
Date: Thu, 11 Jul 2019 13:45:07 -0700
From: Joe Touch <touch@strayalpha.com>
To: "Black, David" <David.Black@dell.com>
Cc: Tom Herbert <tom@quantonium.net>, tsvwg <tsvwg@ietf.org>
In-Reply-To: <CE03DB3D7B45C245BCA0D24327794936306138E9@MX307CL04.corp.emc.com>
References: <156262970360.865.13042807682366763561.idtracker@ietfa.amsl.com> <CAPDqMeoMqsB8=tH5TBaq5Tw-sLW3HNc8tpfUU3htV=sWo7pJcA@mail.gmail.com> <D7E52D2B-3912-4897-80C6-0150CDE10218@strayalpha.com> <CAPDqMep9MYqjFvvJSVbqYwo-xJ1pUocYszNukveaZODhf9+75A@mail.gmail.com> <e73919f08202937bf45418cbf8bcc38c@strayalpha.com> <CAPDqMeoh3n5fL1k6Fw9D8rCpy4a9eWyUZvgStyzYfFuJbuWudw@mail.gmail.com> <3f6f54e0b828e2628af964d6ee7f33e1@strayalpha.com> <CALx6S37rt7OJtH5a2ZH23R21ATETuwTeFS-mZQECtgxPQ3nSZA@mail.gmail.com> <ccc386aa429bfe301998f39eb7fccfbf@strayalpha.com> <140f11c854e0ad96c51639f830cbb688@strayalpha.com> <CALx6S35MC_fj+fL6Ax9a-9=-QX0-mHLmMQ7cUs2Rir+AvYE=zA@mail.gmail.com> <5b35e91dd510119672a0836f868ade24@strayalpha.com> <CALx6S36AVbKfvb-6dj07rcGjsVsCz0daFM9qZOBSSstZOM-Ukg@mail.gmail.com> <8A584FFF-6C86-4154-8D9D-CF407CA77145@strayalpha.com> <CAPDqMeq9GjEQKukH1pZOTdE50e_rc3U6gpdxT-5qrS5phD0RGw@mail.gmail.com> <646D45AD-D79B-4BD2-A084-7DA97CE2C415@strayalpha.com> <CALx6S35grMA4uLYRGs4ioLfX BbS8zYN5ygprr=RKQ0hDk=Q1CQ@mail.gmail.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>
Message-ID: <f9f1701c2196c5db520d025294202353@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/fJOwjKS3N1OZcgQJmhcSqjekdn0>
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, 11 Jul 2019 20:45:15 -0000

Notes embedded below...

So far, I'm beginning to see that this argument boils down to 1 byte. If
that's all it is, then fine - let's add OCS as a fixed field at the
head, possibly after NOPs. 

NOTE: OCS would still probably need to have a way to be disabled, ala
UDPv4 checksums, by setting to zero. 

So no matter what you do, they're still easily optional unless we decide
to FORCE the user to do otherwise. Why exactly would that be the case?

Joe 

On 2019-07-11 13:01, Black, David wrote:

> Commenting as an individual, **not** as a WG chair.
> 
> -- Option Checksum (OCS)
> 
> The IETF 104 tsvwg minutes match my impression that the topic of whether the offsetting option checksum (OCS) should be optional vs. mandatory remains an open issue for UDP options.

Tom has kept this issue open for over a year; there hasn't exactly been
a groundswell behind the issue. I also note that you seem to argue
yourself out of your own support below, FWIW. 

> For my part, I've seen strong "running code" evidence of what breaks when the OCS is omitted,

In SOME Internet paths. The issue is whether we need to require this
even when we might not need it in the future. 

But note that the same thing is largely true for UDP checksums - they
find real errors, yet some people choose to turn them off (esp. for
IPv4). So even if we kept OCS as a required field, we would still need a
way to turn them off in a corresponding way (e.g., set to zero). 

> in contrast to almost no evidence of things broken by the presence of OCS (computed to offset the UDP checksum calculation when that is done over IP length instead of UDP length).

I think you contradict this below, here: 

> ...
> One exception to OCS being mandatory that makes sense to me is that OCS doesn't seem to make a lot of sense with LITE, as the OCS would cover all the LITE payload data, thereby defeating the LITE goal of not having to checksum data whose reliability is not of interest.   One consequence is that UDP Options become unreliable when LITE is used, which may have implications for which UDP options are acceptable to use with LITE.  An important tradeoff is that LITE won't work on network paths that pass  UDP Options only when OCS is present.

There are some other possibilities, such as including an OCS on transmit
but not checking it on each fragment received. That would trick
middleboxes as needed but avoid duplicate work at the receiver (which is
where load tends to be bigger anyway). 

This is both why the current doc indicates OCS as both optional and
default enabled. In the future, if/when it isn't needed, we can remove
it that way - as well as disabling it if needed/possible for LITE. 

> -- Other uses of surplus space
> 
> Any hypothetical existing use of surplus space is incompatible with both UDP options and a new surplus header.  While I haven't seen evidence of any such existing use "running code," making the OCS mandatory helps defend against that possibility, as well as against bad endpoint implementations that put whatever junk bytes happen to be lying around in memory into that extra space, improving UDP Options robustness.

*Using* OCS accomplishes this - and remember, it's default to being
used. 

Making OCS mandatory is a decision - why do you think that's critical
for us to make for all future users? 

And regarding the last point, if you really care, users are always
welcome to just leave OCS on as defaulted anyway. 

--