Re: [tsvwg] A review of draft-ietf-tsvwg-udp-options-12

Joseph Touch <touch@strayalpha.com> Tue, 15 June 2021 16:33 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 4798D3A35D4 for <tsvwg@ietfa.amsl.com>; Tue, 15 Jun 2021 09:33:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.319
X-Spam-Level:
X-Spam-Status: No, score=-1.319 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 4xrQSSd6hr9V for <tsvwg@ietfa.amsl.com>; Tue, 15 Jun 2021 09:32:58 -0700 (PDT)
Received: from server217-4.web-hosting.com (server217-4.web-hosting.com [198.54.116.98]) (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 EE4D03A2914 for <tsvwg@ietf.org>; Tue, 15 Jun 2021 09:32:57 -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: 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=5TvjOIEirbhn6u1rMqIT5g4Isdajkyko8sNRod8nBLc=; b=1N3D02vP543l4XGkyJdv1d4XN6 SYk2mCEGieaswqAkoUTvIbCfKklQok8snwtQQpihs+XPhy4UZQ8CR9zAB5kO3Km7Bii4AyNHxkQ1w CZJ54eXXaGKmesLIG4EhLNiGwlHvZDrP4DVhixlFQbkOAnmzndJ0Hd0oN8ZFmXAOnbkaqDTqV0Jkx dl7dWoDhF7Hw7kmhfwvI+xFxp88TIrd9Vaq5SxY4Dm/sjm7AWwkXZK7ZoVase2TeIG/8oVEHegDfc 4UCMwBYGoooKQc0sL1c7FG9UfAqiVL1113bvueYIvgzYWOcuur9RtZPpjVWMF408kXsQwD75T9Yk7 AnjvZgbw==;
Received: from cpe-172-250-225-198.socal.res.rr.com ([172.250.225.198]:61015 helo=smtpclient.apple) by server217.web-hosting.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from <touch@strayalpha.com>) id 1ltBzg-003Ft4-DQ; Tue, 15 Jun 2021 12:32:56 -0400
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.100.0.2.22\))
From: Joseph Touch <touch@strayalpha.com>
In-Reply-To: <CALx6S360gGWGicLAj1QJheHRyqvbkWx3KE7VrTyUSJ83cqkffA@mail.gmail.com>
Date: Tue, 15 Jun 2021 09:32:50 -0700
Cc: "C. M. Heard" <heard@pobox.com>, TSVWG <tsvwg@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <B355DEDE-561E-4910-87D5-5C5F0D984BE6@strayalpha.com>
References: <CACL_3VGb_9P5SfPGRJtf1ZBvEhgywc2ZEGr-qbgNOMXV20rFeA@mail.gmail.com> <CACL_3VHyoRr5ju8203DiLTUo-658DCj7ud+1dQE2o0hUPVhF0A@mail.gmail.com> <7D766992-AEEB-434F-BB1D-3817EE07DE61@strayalpha.com> <1BBDBD80-3A53-4700-A79F-9A3AE4876F2B@strayalpha.com> <CACL_3VEXCT-sSNhtncVK26DPQefDLJhqEijgDke4Q7DmhRrpTQ@mail.gmail.com> <67E79ED1-14DE-4127-83AF-D17E8C72F362@strayalpha.com> <CACL_3VGOVTjzOBBCS4b+4X_cTFX6T=gYO4_htvr2idzQGUP+oQ@mail.gmail.com> <C67EE01E-A41F-4BF5-BE1E-33E9F01D0B72@strayalpha.com> <CALx6S360gGWGicLAj1QJheHRyqvbkWx3KE7VrTyUSJ83cqkffA@mail.gmail.com>
To: Tom Herbert <tom@herbertland.com>
X-Mailer: Apple Mail (2.3654.100.0.2.22)
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/D_Z3tOpE89m98p5cCGjwLP7c1cE>
Subject: Re: [tsvwg] A review of draft-ietf-tsvwg-udp-options-12
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, 15 Jun 2021 16:33:05 -0000

Hi, Tom,

There’s no debating that zero-copy networking is challenging - moreso when dealing with an OS that is “different for the sake of being different” (Linux, largely for copyright reasons).

To your points:
> 
> IMO, if you want to make UDP options seamlessly integrate and get
> ubiquitous support of UDP options in the OS and hardware (leverage
> checksum offload, zero copy, hardware fragmentation/reassembly,
> offload authentication/crypto, header/data split, etc.),

Seamlessness is not a goal; we want only to not get in the way.

> the best
> direction would be to make UDP with options look like TCP as much as
> possible at least with regards to packet format.

QUIC doesn’t and UDP can’t.

> i.e. use the same
> option format, have a header length field, use headers instead of
> trailers, etc.

We do use the same basic format (TLV). We do have a length field where it would help zero-copy (FRAG), but not elsewhere. 

And we do use headers for FRAG but not elsewhere.

Again, this is UDP. We can’t redefine it in a way that lets incorrect data be received at legacy endpoints.

And - this is key - we also do not want to make the mistakes TCP made, even if that makes UDP options require its own code. E.g., we don’t want to limit UDP header length to 40 bytes.

So the best we can do (and are doing) is *enable* new code for UDP zero-copy. For FRAG, that means putting the length where it can be found without TLV-chain parsing. But a true UDP zero-copy stack that supports non-frag messages would need to know how to deal with trailers rather than headers.

And, FWIW, trailers are just as easy if not *EASIER* for zero-copy to handle; they just DMA the user data first then the UDP options.

Joe