[tsvwg] Re: Resolving UDP Options Issue #52

"C. M. Heard" <heard@pobox.com> Sat, 10 August 2024 22:06 UTC

Return-Path: <heard@pobox.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 55E5DC14F701; Sat, 10 Aug 2024 15:06:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.106
X-Spam-Level:
X-Spam-Status: No, score=-2.106 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_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=pobox.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 WdHEninLGpQf; Sat, 10 Aug 2024 15:06:19 -0700 (PDT)
Received: from pb-smtp21.pobox.com (pb-smtp21.pobox.com [173.228.157.53]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0E452C14CE29; Sat, 10 Aug 2024 15:06:18 -0700 (PDT)
Received: from pb-smtp21.pobox.com (unknown [127.0.0.1]) by pb-smtp21.pobox.com (Postfix) with ESMTP id 07E202B05F; Sat, 10 Aug 2024 18:06:18 -0400 (EDT) (envelope-from heard@pobox.com)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h= mime-version:references:in-reply-to:from:date:message-id:subject :to:cc:content-type; s=sasl; bh=SuBYMK46MYbkmWtcT+2q0QeXXhL0kT2z NWJ9rX8Z15A=; b=HdRwGlbpqunCsql1+MKi1+LaQqKkWTq9cchV0mkmbUY/Q419 /LNtXmRnOQvFSKFT9wsLEr6700z66mbIOr0PzZRn62ysKuhH9y2BFV0eoBO6eBNG 7iOyq1LFJsS5JcY023LP/LpocVp3McneeqAFDehWj6bkzM/c7GRabt83K44=
Received: from pb-smtp21.sea.icgroup.com (unknown [127.0.0.1]) by pb-smtp21.pobox.com (Postfix) with ESMTP id 00B812B05E; Sat, 10 Aug 2024 18:06:18 -0400 (EDT) (envelope-from heard@pobox.com)
Received: from mail-lj1-f179.google.com (unknown [209.85.208.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pb-smtp21.pobox.com (Postfix) with ESMTPSA id F0BAE2B05B; Sat, 10 Aug 2024 18:06:14 -0400 (EDT) (envelope-from heard@pobox.com)
Received: by mail-lj1-f179.google.com with SMTP id 38308e7fff4ca-2ef32fea28dso34412411fa.2; Sat, 10 Aug 2024 15:06:14 -0700 (PDT)
X-Gm-Message-State: AOJu0YxhqE4tRQ8tnyuniy2JeFR3sT0n+tZM8AbAoih3t2VobqSVAbu/ Ew8Z7oAoovyOnyTl/IBKNrtUoBhZIV9KIgxLHdz0mke8FNte8HWHqpPrYZYu05PDAZrszxKodpW AnoahLWWg39x6NshP1ju72CSeOV0=
X-Google-Smtp-Source: AGHT+IHBniFiwU4bApqUUlSAQfnh1Uvza3EjHL6/ZqAUOKEOKzOP3WujcAata+0Dn58/OfxyOxjS5HsXgTFJAAsql1I=
X-Received: by 2002:a05:6512:2248:b0:52b:bf8e:ffea with SMTP id 2adb3069b0e04-530ee9cf30fmr4311963e87.40.1723327572388; Sat, 10 Aug 2024 15:06:12 -0700 (PDT)
MIME-Version: 1.0
References: <CAM4esxSpwRF5E3Xc_hotgvCSdKVe4BY_zRUKAzHvW48JEtWqTA@mail.gmail.com> <CACL_3VFieMviT7vQ=1u2gVFs4miecnQWS6ky_pFdUWRMxzp9Ww@mail.gmail.com> <CACL_3VF9RJuh_CBt4gN9YVBN=C2t+xWoPsXAEhsyMs3d68qT7g@mail.gmail.com>
In-Reply-To: <CACL_3VF9RJuh_CBt4gN9YVBN=C2t+xWoPsXAEhsyMs3d68qT7g@mail.gmail.com>
From: "C. M. Heard" <heard@pobox.com>
Date: Sat, 10 Aug 2024 15:06:00 -0700
X-Gmail-Original-Message-ID: <CACL_3VEydAE6Ly=c=9ZsJx2T-cX+0Knm6Eu18CGtdbX_Jv6e8Q@mail.gmail.com>
Message-ID: <CACL_3VEydAE6Ly=c=9ZsJx2T-cX+0Knm6Eu18CGtdbX_Jv6e8Q@mail.gmail.com>
To: TSVWG <tsvwg@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000c8bd3e061f5b7789"
X-Pobox-Relay-ID: C2E6AA04-5764-11EF-823F-E92ED1CD468F-06080547!pb-smtp21.pobox.com
Message-ID-Hash: IVH5K3VWMDTSADPIINR5IRZBFJ3E35JY
X-Message-ID-Hash: IVH5K3VWMDTSADPIINR5IRZBFJ3E35JY
X-MailFrom: heard@pobox.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tsvwg.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: draft-ietf-tsvwg-udp-options.all@ietf.org
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [tsvwg] Re: Resolving UDP Options Issue #52
List-Id: Transport Area Working Group <tsvwg.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/_ix9bANKLfWfwRVHXIQFJdqf17Y>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Owner: <mailto:tsvwg-owner@ietf.org>
List-Post: <mailto:tsvwg@ietf.org>
List-Subscribe: <mailto:tsvwg-join@ietf.org>
List-Unsubscribe: <mailto:tsvwg-leave@ietf.org>

Greetings,

After discussion between the author, the editor, and the document shepherd,
the editor's current thinking is to address Issue 52
<https://github.com/tsvwg/draft-ietf-tsvwg-udp-options/issues/52> with the
following text:

>> Endpoints supporting UDP options MUST be capable of fragmenting and
reassembling at least two fragments, *each of a size that will fit within
the standard Ethernet MTU of 1,500 bytes. This corresponds to a maximum
pre-fragmentation or post-reassembly UDP packet size (including the UDP
header and any per-datagram UDP options) of 2,926 bytes for IPv4 and 2,886
bytes for IPv6. Note that these maximum sizes are not guaranteed to be
achievable under all circumstances; for further details, please see Section
11.6.*


Based on the discussion in that issue, I have also opened Issue #63
<https://github.com/tsvwg/draft-ietf-tsvwg-udp-options/issues/63> to
enhance the MRDS option to include both the total size and number of
fragments that an endpoint can reassemble. That has resulted in a
significant proposed change to Section 11.6:

The Maximum Reassembled Datagram Size (MRDS, Kind=5) option is a 16-bit
indicator of the largest reassembled UDP datagram that can be received,
including the UDP header and any per-datagram UDP options, *accompanied by
an 8-bit indication of how many UDP fragments can be reassembled*. MRDS
size is the UDP equivalent of IP’s EMTU_R but the two are not related
[RFC1122]. Using the FRAG option (Section 11.4), UDP packets can be
transmitted as transport fragments, each in their own (presumably not
fragmented) IP datagram and be reassembled at the UDP layer. *MRDS segs is
the number of UDP fragments that can be reassembled.*

  +-------+-------+-------+-------+---------+
  | Kind=5| Len=5 |   MRDS size	  |MRDS segs|
  +-------+-------+-------+-------+---------+

  	Figure 14	UDP MRDS option format

>> Endpoints supporting UDP options MUST support a local MRDS size of at
least of *2,926 bytes for IPv4 and 2,886 bytes for IPv6. Support for larger
values is encouraged.*

*>> Endpoints supporting UDP options MUST support a local MRDS segs value
of at least 2. Support for larger values is encouraged*.

*These parameters plus the PMTU allow a sender to compute the size of the
largest pre-fragmentation UDP packet that a receiver will guarantee to
accept. Suppose that MMS_S is the PMTU less the size of the IP header and
the UDP header, i.e., the maximum UDP message size that can be successfully
sent in a single UDP datagram if there are no IP options or extension
headers and no UDP per-fragment options. Then size of the largest
pre-fragmentation UDP packet that the receiver will guarantee to accept is
the smaller of the MRDS size and*

*(MMS_S - 12) * (MRDS segs) - 2 - (Total Per-Frag IP/UDP Options) + 8*

*where Total Per-Frag IP/UDP Options includes the size of all IP options
and extension headers and all per-fragment UDP options except for OCS and
FRAG that are in the sequence of UDP fragments.*

*>> If no MRDS option has been received, a sender must assume that MRDS
size is 2,926 bytes for IPv4 and 2,886 bytes for IPv6 and that MRDS segs is
2, i.e., the minimum values allowed.*

It would be helpful if the WG would comment on these proposals (either to
the list or, preferably, on github), ideally taking into account their
inter-relationship.
Thanks and regards.

Mike Heard

On Mon, Aug 5, 2024 at 2:58 PM C. M. Heard <heard@pobox.com> wrote:

> Greetings,
>
> By way of background:
>
> On Tue, Apr 2, 2024 at 2:23 PM Martin Duke wrote:
>
>> (11.4) 2 fragments/3000 bytes as a minimum will work, of course, but it
>> seems like an odd number. This seems to be related to the canonical 1500B
>> MTU, but that would imply that 2 fragments would be 2926 for IPv4 and 2886
>> in IPv6, if my math is correct. (To be clear, I can live with 3000)
>>
>
> Note that Section 11.6 currently requires that endpoints MUST support a
> local MRDS size of at least 3,000 bytes.
>
> I opened Issue #52
> <https://github.com/tsvwg/draft-ietf-tsvwg-udp-options/issues/52> on
> April 22, 2024 to address this comment, with a proposal to change the limit
> from 3,000 bytes to 2,926 bytes. While trying to craft suitable text,
> discussion with the author revealed the following problem: if an endpoint
> advertises either the proposed value (2,926 byes) or the current one (3,000
> bytes) in the MRDS option, then* more than two fragments* will be
> required to send a (pre-fragmentation or post-reassembly) packet of that
> size, even if the MTU is 1,500 bytes (which is likely maximum outside data
> centers). And none of the three values (2,886, 2,926, or 3,000) would work
> if we are using IPv6 and the MTU is the statutory minimum of 1,280 bytes.
> Indeed, in the latter case, I get a maximum reassembled UDP packet size of
> 2,446 bytes if only two fragments are supported. That seems to me to be
> rather small.
>
> I would like to propose instead that we specify that an implementation
> must support a minimum of 3 fragments and a minimum reassembled size of
> 3,600 bytes. This fits nicely with the 1,280 byte minimum MTU over IPv6,
> allowing for a total of 66 bytes of extra overhead (e.g., 22 bytes of
> per-fragment UDP options in each fragment). If the MTU is larger, as is
> typically the case, one of the three fragments would not be full size,
> which is not a problem.
>
> I would appreciate hearing from the WG whether this change would be
> acceptable.
>
> Feel free to comment on the list or on github
> <https://github.com/tsvwg/draft-ietf-tsvwg-udp-options/issues/52>.
>
> Thanks and regards,
>
> Mike Heard
>