Re: [tsvwg] Remaining issues for draft-ietf-tsvwg-udp-options-22

"C. M. Heard" <heard@pobox.com> Thu, 29 June 2023 21:44 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 A9133C14CE5F for <tsvwg@ietfa.amsl.com>; Thu, 29 Jun 2023 14:44:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.796
X-Spam-Level:
X-Spam-Status: No, score=-2.796 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_DNSWL_LOW=-0.7, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-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 uSP6wIjIm2qF for <tsvwg@ietfa.amsl.com>; Thu, 29 Jun 2023 14:44:40 -0700 (PDT)
Received: from pb-smtp2.pobox.com (pb-smtp2.pobox.com [64.147.108.71]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DDD5AC14CEF9 for <tsvwg@ietf.org>; Thu, 29 Jun 2023 14:44:39 -0700 (PDT)
Received: from pb-smtp2.pobox.com (unknown [127.0.0.1]) by pb-smtp2.pobox.com (Postfix) with ESMTP id C9D6219C5D9 for <tsvwg@ietf.org>; Thu, 29 Jun 2023 17:44:38 -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=ozkARudBqRKN7mwBvhcTcqvZzODhYMxx JWRVueW/pvk=; b=va/+smphRTzeve+xw1oYXuS3Sl3xFBCbmu1M1WQnRHvd8llt u3zGkh8tZU/iALTT7Jyx3LkBYtakAuzAp2aZyet+Na7AhGqAE7GRdPEhLQ0DGWau /5h0vkmAX0dz/cbp66oyNCzYU57jjUP/XmPWuGiM4k14ICdQsjYoNWp9fgE=
Received: from pb-smtp2.nyi.icgroup.com (unknown [127.0.0.1]) by pb-smtp2.pobox.com (Postfix) with ESMTP id C0F3119C5D8 for <tsvwg@ietf.org>; Thu, 29 Jun 2023 17:44:38 -0400 (EDT) (envelope-from heard@pobox.com)
Received: from mail-wm1-f53.google.com (unknown [209.85.128.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pb-smtp2.pobox.com (Postfix) with ESMTPSA id 2CED019C5D6 for <tsvwg@ietf.org>; Thu, 29 Jun 2023 17:44:38 -0400 (EDT) (envelope-from heard@pobox.com)
Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-3fba5a8af2cso11897465e9.3 for <tsvwg@ietf.org>; Thu, 29 Jun 2023 14:44:38 -0700 (PDT)
X-Gm-Message-State: AC+VfDySEo0sD/LmxEO6NU6pg8XhsMbR9TzuxSHsB9dnCYgWa4JB+Z5b HnAxIaOMTPPSFGr2F1JcDiOOBshDj2a7WvsLrU0=
X-Google-Smtp-Source: ACHHUZ7ssSeox5hHeeDnwi6cJSS2s724MJDIC/4XZ7bJfk5902b6qkkH6X1tG+W1S7V4PjF/Rr/vOKIlxnXcqk9qEZw=
X-Received: by 2002:a05:600c:cf:b0:3fb:a102:6d7a with SMTP id u15-20020a05600c00cf00b003fba1026d7amr388557wmm.28.1688075077224; Thu, 29 Jun 2023 14:44:37 -0700 (PDT)
MIME-Version: 1.0
References: <0BE474C0-9227-4E20-8E88-E56C8769A2A5@strayalpha.com> <79CA7F65-335D-4A93-8BBE-9E4FAFCC6D2C@gmx.de> <FA4064D9-D37D-4590-BB77-2F2C37421BDC@strayalpha.com> <6E04EE05-2E36-4B3A-ABB4-A4E22B233B50@gmx.de> <CACL_3VFNHVLc89BO_n12gKid6p0Y2tJ+-ThB0x_wGkMCMnSESA@mail.gmail.com> <14F6EC62-311B-46B3-8B80-7263345BCB80@gmx.de> <CACL_3VH4Zw_vVudO5WiFrD7AC5JhHXiSWfhW5Wu5O7W_rBYfMA@mail.gmail.com> <026B4018-4F96-49B4-B73A-E7F33FEE8A15@gmx.de> <CACL_3VEw4koyJSX3xA3UJ1Vikg+F9PPw1G030jQPHhZdoOETSA@mail.gmail.com> <d34aa821-207d-78eb-ead2-e2d918939dcf@erg.abdn.ac.uk> <20230629162807.GA8600@unix-ag.uni-kl.de>
In-Reply-To: <20230629162807.GA8600@unix-ag.uni-kl.de>
From: "C. M. Heard" <heard@pobox.com>
Date: Thu, 29 Jun 2023 14:44:24 -0700
X-Gmail-Original-Message-ID: <CACL_3VGzx56CTdWJeEvLL5yEWUjLT9wTsXBTDEpWTdaxE7T23w@mail.gmail.com>
Message-ID: <CACL_3VGzx56CTdWJeEvLL5yEWUjLT9wTsXBTDEpWTdaxE7T23w@mail.gmail.com>
To: Erik Auerswald <auerswal@unix-ag.uni-kl.de>
Cc: Gorry Fairhurst <gorry@erg.abdn.ac.uk>, Joe Touch <touch@strayalpha.com>, TSVWG <tsvwg@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000055102b05ff4b9bb8"
X-Pobox-Relay-ID: 25688174-16C6-11EE-8A41-307A8E0A682E-06080547!pb-smtp2.pobox.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/vjan7AswCKaaeDF12oc9JlMHEk0>
Subject: Re: [tsvwg] Remaining issues for draft-ietf-tsvwg-udp-options-22
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: Thu, 29 Jun 2023 21:44:44 -0000

On Thu, Jun 29, 2023 at 9:28 AM Erik Auerswald wrote:
>
> > * Section 9.4: Agreed text for the (simplest) way to handle options
> > in fragments of a datagram.
>
> I have to admit that I am utterly confused by section 9.4.
>
> I do not understand how both "[n]on-terminal fragments never have
> options after the fragment" and "The RDOS field enables the FRAG option
> to precede other options in every fragment" can be true at the same time.

It cannot. This is a serious bug in the spec that I have been objecting
to for over a year. If you have not done so already, please review

https://mailarchive.ietf.org/arch/msg/tsvwg/D99trU_nsq4rRGT24gNeeDnkfoE/

> Then "Frag. Start" seems to only be defined for the non-terminal FRAG
> option format, but it is also part of the terminal FRAG option format.

That is not true. "Frag. Start" and "Frag. Offset" are defined in both
terminal and non-terminal fragments (look carefully at Figure 10 and
Figure 11). "Frag. Start" is measured relative to the beginning of the
on-the-wire UDP packet containing the fragment (this includes the UDP
header, but not any lower layer headers). "Frag. Offset" is measured
relative to the beginning of the UDP header of the original UDP datagram,
before fragmentation or after reassembly.

Reassembled Datagram Option Start (RDOS) is present only in terminal
fragments. Like Frag. Offset, it is measured relative to the beginning of
the UDP header of the original UDP datagram, before fragmentation or after
reassembly.

> The RDOS description uses an IMHO surprising order to describe checks
> regarding its value:
>
>   - Case 1: RDOS > Frag. Start of the first fragment (offset=8)
>
>   - Case 2: RDOS == end of the original IP packet
>
>   - Case 3: RDOS < Frag. Start of the first fragment
>
> It seems to me as if case 2 is a subset of case 1, i.e., I'd say that it
> might be easier to comprehend the logic if case 1 would be tightened to:
>
>   Frag. Start of the first fragment (offset=8) < RDOS < end of the
>   original IP packet
>
> It might also be helpful to specify how to treat RDOS == Frag. Start of
> the first fragment.

Comparing RDOS with Frag. Start is just plain nonsense.

The fundamental problem is that RDOS and Frag. Start are referenced to
different entities (reassembled datagram for one, on-the-wire fragment
for the other), and thus are incommensurable (not comparable). The two
are not related.

In theory, RDOS and Frag. Start COULD be made inter-related, at least
in atomic fragments, but only at the expense of a poorly-motivated
complication to an already complicated specification, The expense would
be special-case processing of atomic fragments, which would surely
complicate offload of fragmentation and reassembly.

> I would like to suggest considering a complete rewrite of the FRAG
> description.

I don't think that is necessary. I think if the following text is
removed from Section 9.4, the rest of the section will make sense.

--cut here--
   If RDOS is larger than Frag. Start of the first fragment (offset=8),
   then all the per-packet options occur before the user data as it is
   reassembled. If RDOS points to the end of the original IP packet,
   then there are no per-packet options. If RDOS is smaller than Frag.
   Start of the first fragment, then it indicates the end of the per-
   fragment options (of the first fragment) and the start of per-packet
   options (of the reassembled user data). The RDOS field enables the
   FRAG option to precede other options in every fragment and to enable
   all packet options to precede user data, enabling easier support for
   reassembly offload via DMA and to support limited router option
   processing hardware.
--end--

--cut here--
      Note: per packet options can occur either at the end of the
      original user data or be placed after the FRAG option of the
      first segment, with the Reassembled Datagram Option Start (RDOS)
      in the terminal FRAG option set accordingly. This includes its
      use in atomic fragments, where the terminal option is the initial
      and only fragment.
--end--

It would also help to rework the paragraph under Figure 10 as follows:

OLD
   In the non-terminal FRAG option format, Frag. Start indicates the
   location of the beginning of the fragment data, measured from the
   beginning of the UDP header of the fragment. The fragment data
   follows the remainder of the UDP options and continues to the end of
   the IP datagram (i.e., the end of the surplus area). Those options
   are applied to this UDP fragment. Non-terminal fragments never have
   options after the fragment.

NEW
   Frag. Start indicates the location of the beginning of the fragment
   data, measured from the beginning of the UDP header of the fragment.
   The fragment data follows the remainder of the UDP options and continues
   to the end of the IP datagram (i.e., the end of the surplus area). Those
   options are applied to this UDP fragment.

Granted, with those changes systems that can only process a limited
distance into a packet will be limited to per-fragment options. But
IMO we should not be complicating the design to accommodate such
systems.

Mike Heard