Re: [tsvwg] I-D Action: draft-ietf-tsvwg-udp-options-26.txt

"touch@strayalpha.com" <touch@strayalpha.com> Tue, 14 November 2023 22:23 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 70BB1C14F747 for <tsvwg@ietfa.amsl.com>; Tue, 14 Nov 2023 14:23:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.326
X-Spam-Level:
X-Spam-Status: No, score=-1.326 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, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZyoInZqrK2kT for <tsvwg@ietfa.amsl.com>; Tue, 14 Nov 2023 14:23:17 -0800 (PST)
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 515D9C14F73E for <tsvwg@ietf.org>; Tue, 14 Nov 2023 14:23:17 -0800 (PST)
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=xhxih4UOy8iUZvffY5ESWlRK8N7xrX63OpCBCSONcJI=; b=lVKR73KBySAtK3FRvUEWSnZ4gy VSx7NRvJMiO8SHO88Qxt2sDy1tjACURzCXI9xBdoC/IMpliwpBJex9CzJHODt3rNd8EChwdlUS0Gn mjfiI5GMWtpnE83DB/XoZsgur9A2aGq6sDn+/uCvBjl219sZAIk6WcRVTdbSY3KuHettcqDh98Non Jtk5hESdeSVf4qri/rgv+YSoG7f0sjoYcuWFt7BoBS14Jbtg1xl6B1m3UyhB6nkf03Wl+DXtdSo44 HLGmKvjw26Gv0jauwbvlYXsrPNmKfwI8CuWHMMJS1cyIIzhcn0XpFt5DcD9QUORmx+R7c1m4aNnRP 6/WNfO3w==;
Received: from [172.58.208.253] (port=1514 helo=smtpclient.apple) by server217.web-hosting.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.1) (envelope-from <touch@strayalpha.com>) id 1r31oN-004m6E-03; Tue, 14 Nov 2023 17:23:16 -0500
Content-Type: multipart/alternative; boundary="Apple-Mail=_C5E790C0-F6B5-4A12-A8D9-4415FF959636"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.100.2.1.4\))
From: "touch@strayalpha.com" <touch@strayalpha.com>
In-Reply-To: <CALx6S35muW64=4u5TxL8pJNp+O22rgCfYFFBQBe-yCKyrvk_Nw@mail.gmail.com>
Date: Tue, 14 Nov 2023 14:22:58 -0800
Cc: Tom Herbert <tom=40herbertland.com@dmarc.ietf.org>, tsvwg@ietf.org
Message-Id: <75F94F15-2010-4203-B190-3EB9E1C45F32@strayalpha.com>
References: <169984876885.35483.2297882415479823305@ietfa.amsl.com> <CALx6S35qFHhQw+286ecU=utk-iLVgZVWDFrx0k-nhSXyjMscSA@mail.gmail.com> <CACL_3VGqVHW+v5zNNfz52G6LVbhM4xYcXSsHjEvqqmWg1TcGJw@mail.gmail.com> <CALx6S3775Vc166ZkOZo4kdv1hvVYoOQ6BQ4j21rOLSoqwB-e9g@mail.gmail.com> <AE32F036-5A9A-4C96-A2F0-BEB319AC5007@strayalpha.com> <CALx6S35muW64=4u5TxL8pJNp+O22rgCfYFFBQBe-yCKyrvk_Nw@mail.gmail.com>
To: Tom Herbert <tom@herbertland.com>
X-Mailer: Apple Mail (2.3774.100.2.1.4)
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/F00BbrvivadFpiFtAVUkMv-kj7A>
Subject: Re: [tsvwg] I-D Action: draft-ietf-tsvwg-udp-options-26.txt
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.39
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, 14 Nov 2023 22:23:21 -0000

See below...
—
Dr. Joe Touch, temporal epistemologist
www.strayalpha.com

> On Nov 14, 2023, at 2:18 PM, Tom Herbert <tom@herbertland.com> wrote:
> 
> On Tue, Nov 14, 2023 at 2:02 PM touch@strayalpha.com
> <touch@strayalpha.com> wrote:
>> 
>> See below...
>> 
>>> On Nov 14, 2023, at 1:19 PM, Tom Herbert <tom=40herbertland.com@dmarc.ietf.org> wrote:
>>> 
>>> On Tue, Nov 14, 2023 at 12:01 PM C. M. Heard <heard@pobox.com> wrote:
>>>> 
>>>> IMO, very few currently defined options that are passed to the user are actually useful as per-fragment options,
>>>> 
>>>> In general, options that are transmitted from the upper layer at one end to the upper layer at the other end without processing by UDP options layer other than packaging are ill-suited to being per-fragment options because they cannot be used to provide per-fragment effects. MDS, MRDS, REQ, RES, anf TIME are all in this category.
>>>> 
>>>> APC does require substantive processing by UDP options (specifically, a checksum calculation), but it cannot not do anything useful as a per-fragment option. By definition, it covers the UDP payload in the packet where it appears, and there is no UDP payload on a fragment.
>>> 
>>> Mike,
>>> 
>>> I don't see in the draft where it says that. The wording in the draft
>>> is: "It [APC] is an "alternate" to the UDP checksum that covers the
>>> user data". A fragment contains user data
>> 
>> Fragments do not contain “user data”, i.e., there is no UDP user payload. The UDP length is 8.
>> 
> 
> The term "user data" is ambiguous.I read this as any data created by
> the user which would include the data in fragments. If you mean this
> covers the UDP payload of a reassembled packet then why not just say
> that explicitly?

We do when describing APC. That’s the P in APC.
This thread has been ambiguous in comparison.

> 
>> It’s not so much that you can’t use APC, it’s that it would only protect the pseudoheader. In fragments, the user data is in the surplus area.
> 
> But you just said above, "Fragments do not contain “user data” :-).
> Please use unambiguous terminology.

Fragments contain no UDP payload; APC operates over *only* the UDP payload.

And to be clear, APC does NOT protect the pseudo header; doing so would make it useless when traversing a NAT. My mistake there.

Joe


> 
> Tom
> 
>> 
>> Joe
>> 
>>> and I don't see any
>>> requirement that states it's not allowed to be used with fragments. So
>>> by my reading it is valid where the CRC is performed over the user
>>> data in each packet. I believe it's also useful as doing CRC per
>>> fragment makes it a lot easier to offload the CRC computation to
>>> hardware, and it's more accurate over smaller amounts of data.
>>> 
>>> Tom
>>> 
>>>> Hence in a fragment a value of all-ones will give a correct CRC32c, and anything else would give an incorrect CRC32c, independently of whatever else is in the fragment or reassembled datagram.
>>>> 
>>>> In principle, AUTH and UENC could be useful as per-fragment options by providing coverage for the fragment header as well as the payload. I will note, however, that the IPsec AH does NOT protect the IP fragmentation fields: "If required, IP fragmentation occurs after AH processing within an IPsec implementation.  Thus, transport mode AH is applied only to whole IP datagrams (not to IP fragments)."
>>>> 
>>>> Having to process options during the fragmentation and reassembly processes is clearly a burden on the implementation, and if it's one that does not result in anything clearly useful, we may want to consider dropping it.
>>>> The one place where I have seen a clear use case would be in network options, and I believe that the consensus of the WG is that we would not be going there, at least for now. If we wish to future-proof the spec by including the possibility of per-fragment options either before or after the FRAG header as we do now, maybe that's acceptable, but if we do, I think that an implementation should be allowed to ignore per-fragment options that are really only meaningful as per-datagram options, and the option specifications should say as much. My preference, which I stated long ago, would be to have no per-fragment options and require the FRAG header to appear immediately after the UDP header, as I believe that this will lead to a more unambiguous spec and cleaner and simpler implementations. That being said, I am willing to acquiesce to what we have, for the sake of getting a spec shipped, as long as there is clarity for each and every option in what roles (per-fragment or per-datagram) it can be used.
>>>> 
>>>> Thanks
>>>> 
>>>> Mie Heard
>>>> 
>>>> 
>>>> On Mon, Nov 13, 2023 at 8:00 AM Tom Herbert <tom=40herbertland.com@dmarc.ietf.org> wrote:
>>>>> 
>>>>>> From the new draft:
>>>>> 
>>>>>>> Options and their processing status (success/fail) MUST be provided to the user, except for FRAG, NOP, and EOL; those three options are handled within UDP option processing only.
>>>>> 
>>>>> How does this work for per fragment options? Are options for each
>>>>> fragment passed to the user in a list with the reassembled packet? How
>>>>> would something like APC work if it's set in a per fragment option?
>>>>> 
>>>>> Tom
>>>>> 
>>>>> On Sun, Nov 12, 2023 at 8:13 PM <internet-drafts@ietf.org> wrote:
>>>>>> 
>>>>>> Internet-Draft draft-ietf-tsvwg-udp-options-26.txt is now available. It is a
>>>>>> work item of the Transport and Services Working Group (TSVWG) WG of the IETF.
>>>>>> 
>>>>>>  Title:   Transport Options for UDP
>>>>>>  Author:  Joe Touch
>>>>>>  Name:    draft-ietf-tsvwg-udp-options-26.txt
>>>>>>  Pages:   51
>>>>>>  Dates:   2023-11-12
>>>>>> 
>>>>>> Abstract:
>>>>>> 
>>>>>>  Transport protocols are extended through the use of transport header
>>>>>>  options. This document extends UDP by indicating the location,
>>>>>>  syntax, and semantics for UDP transport layer options.
>>>>>> 
>>>>>> The IETF datatracker status page for this Internet-Draft is:
>>>>>> https://datatracker.ietf.org/doc/draft-ietf-tsvwg-udp-options/
>>>>>> 
>>>>>> There is also an HTMLized version available at:
>>>>>> https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg-udp-options-26
>>>>>> 
>>>>>> A diff from the previous version is available at:
>>>>>> https://author-tools.ietf.org/iddiff?url2=draft-ietf-tsvwg-udp-options-26
>>>>>> 
>>>>>> Internet-Drafts are also available by rsync at:
>>>>>> rsync.ietf.org::internet-drafts
>>>>>> 
>>>>>> 
>>>>> 
>>> 
>>