Re: [tsvwg] UDP options and header-data split (zero copy)

Joseph Touch <touch@strayalpha.com> Thu, 15 July 2021 21:32 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 62E883A091E for <tsvwg@ietfa.amsl.com>; Thu, 15 Jul 2021 14:32:55 -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 JJcZDF5mX43D for <tsvwg@ietfa.amsl.com>; Thu, 15 Jul 2021 14:32:49 -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 BF19D3A0BF7 for <tsvwg@ietf.org>; Thu, 15 Jul 2021 14:32:49 -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=XK4PfSyrTN2z5Zg3wB5UwjH7DoIcKQTMQrbzbq1CRmI=; b=oLT9Xnv3hR4BaHj7IYakSqDrx8 1ADoqxQIFSN1FfBgYdpLyKCMUcofJwKB1M+EWOu7mcwZknrZjgUhsESGsTVEt3Qllz5sN9AkkvcO0 J3MLy6ll2gXzqXtuEmjHKITO2GSF7kMvu4Zq6ezOK0k8tE44exqqUmUEctLl9tfuQuBqGStcNxpef G+Y76ijFMYrD1MEI5AHq0EnB0vBaqsN2nlZqQ5wciCKnkIfjIcWFv+Uyfru0SaTuvZyxZijNPpMMR aHWVTOQOC31gixUUQ5aVNTZCUol5JHEZf2elVbPYQbfBZ6FlVbSSGFOt6FjbOTT5bhmOcLrens64o bIofxxrQ==;
Received: from [12.219.165.6] (port=29173 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 1m48yJ-001OBd-Ol; Thu, 15 Jul 2021 17:32:48 -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: <CALx6S36F6dVnbxSfNXwQVvbi+mOuedTbn+jLM5-Q87hjxFM+qw@mail.gmail.com>
Date: Thu, 15 Jul 2021 14:32:40 -0700
Cc: tsvwg <tsvwg@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <05A8BF71-5362-484E-A71A-546C052BDFAB@strayalpha.com>
References: <CALx6S36F6dVnbxSfNXwQVvbi+mOuedTbn+jLM5-Q87hjxFM+qw@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=-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/9B_6XkaKtrwQ44vUbcox8s50OFI>
Subject: Re: [tsvwg] UDP options and header-data split (zero copy)
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, 15 Jul 2021 21:32:55 -0000

Hi, Tom,


> On Jul 15, 2021, at 8:13 AM, Tom Herbert <tom@herbertland.com> wrote:
> 
> Hello,
> 
> Header-data split is a common technique in modern NICs where header
> data and payload are DMA'ed into separate sets of receive buffers. The
> header data goes to buffers that will be read and processed by CPU,
> the data buffers are targeted to application processing (e.g. 4K
> buffers for page cache, GPU memory). With sufficient capabilities,
> NICs can split header-data at the ULP header to precisely provide the
> application just its data. Header-data split is a foundation of zero
> copy receive (https://legacy.netdevconf.info/0x14/pub/slides/62/Implementing%20TCP%20RX%20zero%20copy.pdf)
> 
> There is no such thing as header-data-trailer split.

And there is no way to avoid trailers for non-fragmented packets.

We are designing options for UDP, not options only for fragmentation. 

> If a device
> receives a packet with protocol trailers and is performing header-data
> split, the trailers would be in the data buffers. The CPU may not be
> able to read this data, e.g. the data was DMA into GPU memory which is
> unreadable by the host CPU. So in the case of UDP options, this means
> that when options are in trailers they might nor be visible to be
> processed.

Then that endpoint cannot implement UDP options, because we are not *requiring* fragmentation just to use UDP options.

At that point, either we have systems that can handle both headers (the UDP header never goes away anyway) and trailers, or they don’t support UDP options.

Joe