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

Joseph Touch <touch@strayalpha.com> Fri, 16 July 2021 10: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 0DC653A31C6 for <tsvwg@ietfa.amsl.com>; Fri, 16 Jul 2021 03:45:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.318
X-Spam-Level:
X-Spam-Status: No, score=-1.318 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, RCVD_IN_DNSWL_BLOCKED=0.001, 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 f6e3rDlSu0Ct for <tsvwg@ietfa.amsl.com>; Fri, 16 Jul 2021 03:45:16 -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 691283A31CB for <tsvwg@ietf.org>; Fri, 16 Jul 2021 03:45:15 -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=/HGS6m5RUnDsLLkkOCbhT6pNmkC5gbq0c3UaqMfQxy0=; b=D/zmiBXBS5t+Lguo+SayXZnwkP vslD5szN6CxT2MZI8gd6T0T+w7U50jkPvXtlKA5isKxn11d4sr8v7DDamjDigHc4NIkjYrF3ffNzM RPkNiDs5KhYvNBQU+HPC074nTug3l7YGGl0ZNWA0oJR1aNyHVuqDiixjZYyAMt341L90faeEtdJLL 92qEuad2bKwFpHki9nkVyLJK2K6TmzQQdrxAHZDM8cP7qYz9AAC9Wpa5m+1l1A/IOjqaJHq4OCWOp M6gcnHeHaZzKcof8SUOXdXtPylUluub7Cp20NXu9BYX+jnNWFl+Vsq0p+6WXIx1sYDqbtB8LVMRXz ig4q1kQQ==;
Received: from [12.219.165.6] (port=34965 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 1m4LLB-00241R-UA; Fri, 16 Jul 2021 06:45:15 -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: <CALx6S36LOE9eRn6Q2FLoPyf1yVt+c9ekJ5k0wjGOFDx9kn_pMQ@mail.gmail.com>
Date: Fri, 16 Jul 2021 03:45:06 -0700
Cc: tsvwg <tsvwg@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <D7F4C5FB-3064-41D2-8E21-6CE9EFB29D1B@strayalpha.com>
References: <CALx6S36F6dVnbxSfNXwQVvbi+mOuedTbn+jLM5-Q87hjxFM+qw@mail.gmail.com> <05A8BF71-5362-484E-A71A-546C052BDFAB@strayalpha.com> <CALx6S36LOE9eRn6Q2FLoPyf1yVt+c9ekJ5k0wjGOFDx9kn_pMQ@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/SvERh_77SGWiwQxlxqwjfDTM9ag>
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: Fri, 16 Jul 2021 10:45:22 -0000

Hi, Tom,

> On Jul 15, 2021, at 2:50 PM, Tom Herbert <tom@herbertland.com> wrote:
> 
> On Thu, Jul 15, 2021 at 2:32 PM Joseph Touch <touch@strayalpha.com> wrote:
>> 
>> ...
>> And there is no way to avoid trailers for non-fragmented packets.
>> 
> Right trailers are only needed in that case. In the case of fragment
> using both headers and trailers simultaneously is unnecessary
> complexity that provides no benefit.

If I put per-fragment as headers and post-fragment as trailers, I can do the following processing:

Outbound:
	A- add/process all (safe) per segment options
	B- if there are any unsafe options or fragmentation is needed for space:
		B.1- split as needed
		B.2- process per-fragment / unsafe options on the resulting fragments
	C- transmit

Inbound does the converse.

In both cases, I can simply skip step B if fragmentation isn’t used/needed.

If all the headers come first for fragments - even the per-segment ones, I either need two versions of step A (one for fragments, one for not) or I need to shuffle the trailer to the header between steps A and B.

—

Your claim that “trailers are ONLY needed…” (emphasis mine) does not consider that “trailer processing IS needed”.

And whenever there are trailers, there are both headers (the current UDP header) and trailers (UDP options), by necessity.

So having two versions of the option location complicates things in the middle of option processing.

The only objection you have raised is that this will hinder processing that’s already hindered. If there’s a slow path here, IMO it ought to be for fragments, not non-fragments.

Joe