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

Joseph Touch <touch@strayalpha.com> Mon, 14 June 2021 04:35 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 CA9963A10D9 for <tsvwg@ietfa.amsl.com>; Sun, 13 Jun 2021 21:35:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.525
X-Spam-Level:
X-Spam-Status: No, score=-0.525 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, HTML_MESSAGE=0.001, RDNS_NONE=0.793, 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 0pmQF58EuS7p for <tsvwg@ietfa.amsl.com>; Sun, 13 Jun 2021 21:35:02 -0700 (PDT)
Received: from server217.web-hosting.com (unknown [198.54.114.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 28FCE3A10D4 for <tsvwg@ietf.org>; Sun, 13 Jun 2021 21:35:02 -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=sLh6M8Sgu0r8KkBx0jSnlIRQDmD9ZSMLVodj+MZ6A0U=; b=myp8JktYWGj5onSOWhUJfOUazZ UPMmcUKueExe+ook7pEwO8Y+WCjSMqBzbnpk6GhjV0tfSKdeHof+jWYMvjtCHGVm73eu6VBh4viaP gfcZetekYA1AHOTjZEMyyaWpGzPBqDF6BuJeFV/q80krlRJgsTjKjvnJYBOgoWu2uj6grq9kf8ap2 oVyjjSdLp0ve/lOC/zY3OjwGE7UmB0NzkTo6//ji0bafYO7dLg8QZrWnTdOo/HFhoDH4O3LmUnvpS Khxnedo84vwK32Osv2oiFdgmiNCiA2XzBXh8H2zsk8SAJrDIWB2NsgwmMNxXyDnOELvldAA9dzqaX uYaxpLtQ==;
Received: from cpe-172-250-225-198.socal.res.rr.com ([172.250.225.198]:59746 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 1lseJN-000h0p-4B; Mon, 14 Jun 2021 00:35:01 -0400
Content-Type: multipart/alternative; boundary="Apple-Mail=_51A71531-111A-4C1B-897C-70A6FC6C9330"
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.100.0.2.22\))
From: Joseph Touch <touch@strayalpha.com>
In-Reply-To: <67E79ED1-14DE-4127-83AF-D17E8C72F362@strayalpha.com>
Date: Sun, 13 Jun 2021 21:34:56 -0700
Cc: TSVWG <tsvwg@ietf.org>
Message-Id: <310FFC03-0EFE-49B2-A198-5BAEF439D777@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>
To: "C. M. Heard" <heard@pobox.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/BQjHGWhFNATTwbzf6pb-uamvOqA>
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: Mon, 14 Jun 2021 04:35:06 -0000

PS - I should note that I don’t care strongly that we keep this zero-copy support, It’s not important for individual packets; it’s useful only for streams, IMO anyway. If omitting it is fine, then we can make FRAG processing simpler.

The argument for omitting it is:
- zero-copy is more useful for streams where apps should adjust MTU anyway and thus wouldn’t need FRAG for MTU adjustment
- zero-copy works fine when the data isn’t UNSAFE (in the body)
- when data is otherwise UNSAFE, it’s because it is modified (encrypted, compressed, etc.), where zero-copy is not relevant either

Joe

> On Jun 13, 2021, at 9:31 PM, Joseph Touch <touch@strayalpha.com> wrote:
> 
> 
> 
>> On Jun 13, 2021, at 7:20 PM, C. M. Heard <heard@pobox.com <mailto:heard@pobox.com>> wrote:
>> 
>> If we DO support zero-copy and thus want to allow non-terminal fragments to have post-fragoption options that operate on each fragment, then we would add THISFRAGLEN to the nonterminal format and issue different KIND numbers to nonterminal/terminal fragment.
>> 
>> 
>> I for one would appreciate further discussion of these last points. I admit that I have failed to grasp Joe's message on the RDMA thread, and I would appreciate some time to think about it.
> 
> Sure - here’s how it all works. Note that this is relevant mostly for long transfers with persistent UDP fragmentation; if that is assumed to be ‘adjusted’ at the app layer (as QUIC does), then we don’t need zero-copy support...
> 
> - right now, UDP data can be zero-copied when received into user space, starting with the user data
> - if we add options, UDP data can still be zero-copied because it hasn’t moved (it still begins the payload
> - however, fragments are different because (esp given the merging of frag and lite) they don’t start at the beginning of data
> 	- they always start after OCS (which I think we should make fit the uniform KIND/LEN/OCS format of 4 bytes)
> 	- if the FRAG comes next, then we can move the frag content around a little and still support zero-copy
> 
> 		notably, we move the first 10 bytes of the fragment to the end
> 			4 for OCS
> 			6 for FRAG (assuming FRAG includes KIND/OPTLEN/FRAGOFFSET/ID/FRAGLEN)
> 		that way we can zero-copy the frag packet into place, then just copy those last 8 bytes over OCS and the FRAG header
> 
> This method assumes that we try to keep FRAG early in the packet - preferably right after OCS. The later it comes, the more additional bytes we need to move to “fix” the copy (beyond the 8 bytes noted above).
> 
> —
> 
> This method is the only reason we would want to allow options after non-terminal fragments - basically to keep the fragment toward the front of the packet, using the rule that post-noninitial frag options still operate on the fragment, rather than waiting for reassembly. The exception is the terminal fragment, where post-terminal fragment options operate on the reassembled packet. 
> 
> Joe
> 
> 
> 
>