Re: [tsvwg] design assumptions - draft-ietf-udp-options

Joe Touch <touch@strayalpha.com> Wed, 17 July 2019 14:58 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 BFA89120758 for <tsvwg@ietfa.amsl.com>; Wed, 17 Jul 2019 07:58:43 -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 jYFD7HU2cd25 for <tsvwg@ietfa.amsl.com>; Wed, 17 Jul 2019 07:58:41 -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 11D361203BD for <tsvwg@ietf.org>; Wed, 17 Jul 2019 07:58:41 -0700 (PDT)
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=c/ZQMC08G74LsJtjbqe8T9qNmCdHeSFz0ys8yIBlBWs=; b=2mA2F8Of8MCgx+eNih0K9xlBO kFwasdVoXjwF7dSRYTuehCbYcGYPMO15ixMtxYHGiKIdc1h3GGO68QIBoupn1jyMWnEtnT7c+v2wE T2XawM9hhZ/eU+P4eAcS+rTt3OTlMiugJtoPBmSgvCQEpy1UJGp//Vqe7zZ2WsLQmc4l4FnGg5y33 03HtiDxHZXGXF2HsaFGU9uTqqS71A9T6gWeylTbMw+nbWDaUfEjas4ViHiGOTzBbLuepqcWCMrcAC gRR9a0cMFz2VvVl+FfavjWDJrYQexYXXFpGSCUiCV7peygHog5wyR0r2dxGmuX46vl8aOaBYG9grV 2IWiLQ+9Q==;
Received: from cpe-172-250-225-198.socal.res.rr.com ([172.250.225.198]:57953 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 1hnlO6-0004WQ-V2; Wed, 17 Jul 2019 10:58:40 -0400
Content-Type: multipart/alternative; boundary="Apple-Mail=_6FE712D4-AB0A-4675-B1FD-18E9E1CF14AC"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Joe Touch <touch@strayalpha.com>
In-Reply-To: <CALx6S36P0s0Uz8wuQNt+nLihAn_vLqOJydrAhx5cbv2wch=-oQ@mail.gmail.com>
Date: Wed, 17 Jul 2019 07:58:34 -0700
Cc: tsvwg <tsvwg@ietf.org>
Message-Id: <D68DDA75-D45A-45AF-8C08-B599152D638D@strayalpha.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> <2f71a292f924a9b8de4227c4bbc2f809@strayalpha.com> <0ce46e21249f0dc55310b192d382f50a@strayalpha.com> <CALx6S36gaMqNRo_hYKr45T_vTkUB-vRrYRYJz2_KgvejNsJtLQ@mail.gmail.com> <efbf65646a0e0d2535dc5726b34f3472@strayalpha.com> <CALx6S37sZxmGQJq5mxDiF88NeUjj2HMRnQG5KyZA_4ujrLJkqg@mail.gmail.com> <079d7d849d0e6260497a6c0ed37595a2@strayalpha.com> <CALx6S37wOkz0436CmevOjSe=VwAxKstSR9Jc66PUmXwUKK4vBw@mail.gmail.com> <075C3166-DF88-4160-8E6C-1C32511F4D46@strayalpha.com> <811C4C35-48D8-4382-A4B4-784FAC1B9F1D@strayalpha.com> <CALx6S36P0s0Uz8wuQNt+nLihAn_vLqOJydrAhx5cbv2wch=-oQ@mail.gmail.com>
To: Tom Herbert <tom@herbertland.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/FIr64BRyXU-7biiZX9QZ-xwQkrM>
Subject: Re: [tsvwg] design assumptions - draft-ietf-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: Wed, 17 Jul 2019 14:58:51 -0000

Tom,

Some of these are design assumptions; some of these are design *approaches*. Can we please focus on the former? I’ll try for a few below:

> - Method to disambiguate legacy uses of surplus space

sure.

> - Specification for options negotiation

perhaps? a method to determine which options are supported

> - Denial of Service mitigations

perhaps? ways to use of options for DOS (we’re not trying to design for anti-DOS UDP use in general)

> - Fallback mechanism to use when intermediate devices drop packets
> with UDP surplus space

I don’t see a way to make this a design goal; UDP is unreliable and we can’t know where or why packets are dropped per se

> - Extensibility, i.e. something like version number for the protocol

it’s already extensible with the KIND codepoint space; given UDP lacks version numbers, it would not be useful to impose them on options alone

> - Protocol headers versus protocol trailers

that’s a mechanism; what behavior are you describing?

> - Implementation and deployment considerations

what is the design goal here? maximizing initial deployment probability of success? and if so, at what cost to future use?

i.e., this seems useful ONLY if it takes into consideration the ephemeral nature of the current deployment environment

>   - Integration into a host stack

what’s the goal here?

>   - Interaction with common accelerations for UDP

again, what’s the goal? again, would this be maximizing for the short term?

>   - Middleboxes interactions (particularly guidelines for protocols
> suggested in https://datatracker.ietf.org/meeting/104/materials/slides-104-wgtlgo-forwarding-plane-realities-00 <https://datatracker.ietf.org/meeting/104/materials/slides-104-wgtlgo-forwarding-plane-realities-00>)

Those are ROUTER guidelines; middleboxes that want to look inside transport protocols would already fail if limited to many of these constraints.

And many don’t apply from the start for us:
- we do not have fixed offset (we’re already at a variable location when used with legacy-compatible data)
- we do not have a fixed header structure (even if we assume we start with either OOC or CCO and even length, there’s not much more; the rest is necessarily a chain)

And what about some of that advice? not being a draft, its advice wasn’t widely discussed or vetted, and in some places is wrong IMO. In fact, I suspect you would agree, because that advice specifically says:
- avoid checksums over the entire packet
- make checksums optional

These are both points you’ve argued against here.

(and, as a side note, another case in point, the idea of not going through the pipeline twice for tunnel exit and entry is basically denying that tunnels are inherently a kind of recursion that needs to be fully reentrant, i.e., it would be much safer to claim “tunnel entry and exit MUST behave EXACTLY as if the packet traverses the pipeline and all its processing EXACTLY twice: once for exit and once for entry, and that information between the two be limited to the context contained in the packet only”)

>   - Running code that implements UDP option to evaluate and guide
> above. Preferably open source in Linux since that is the most deployed
> end host OS that would support UDP options

There are at many more OSes that are more widely deployed (e.g., in cellphones, etc.). We should not design for the short term.

And Gorry’s team has running code.

Joe