Re: [tsvwg] Way forward for UDP option FRAGs with limited router hardwara

"C. M. Heard" <heard@pobox.com> Tue, 12 April 2022 19:20 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 3E9613A121C for <tsvwg@ietfa.amsl.com>; Tue, 12 Apr 2022 12:20:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.108
X-Spam-Level:
X-Spam-Status: No, score=-7.108 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_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=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 ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Nr2eP7fAaTh8 for <tsvwg@ietfa.amsl.com>; Tue, 12 Apr 2022 12:20:33 -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 222793A1206 for <tsvwg@ietf.org>; Tue, 12 Apr 2022 12:20:32 -0700 (PDT)
Received: from pb-smtp2.pobox.com (unknown [127.0.0.1]) by pb-smtp2.pobox.com (Postfix) with ESMTP id 6828811C3E0 for <tsvwg@ietf.org>; Tue, 12 Apr 2022 15:20:29 -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=+PnHV8dkM5x2dl7JQIFNKxBdWwJJNqRc jtTJQYZxIjI=; b=GBVCmqXBFvkZTqz6JBJ5AJubkRjNBwM1aQABYSU/CuE3c01L WiS7uGWhR4GzzNuLBxB9gfIEQMhTFj7jd5tYtIDOZbGQVJc3ayFon9MnBYD+5SX1 RvzqpbDoAR21RACHIGSUJo92BxpIN+lf7Ss1ijQeYCx7mQ0NtcfDIgxRZRY=
Received: from pb-smtp2.nyi.icgroup.com (unknown [127.0.0.1]) by pb-smtp2.pobox.com (Postfix) with ESMTP id 55FE611C3DE for <tsvwg@ietf.org>; Tue, 12 Apr 2022 15:20:29 -0400 (EDT) (envelope-from heard@pobox.com)
Received: from mail-vk1-f181.google.com (unknown [209.85.221.181]) (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 A76F911C3DA for <tsvwg@ietf.org>; Tue, 12 Apr 2022 15:20:28 -0400 (EDT) (envelope-from heard@pobox.com)
Received: by mail-vk1-f181.google.com with SMTP id i27so751381vkr.5 for <tsvwg@ietf.org>; Tue, 12 Apr 2022 12:20:28 -0700 (PDT)
X-Gm-Message-State: AOAM531f2SaROl+rYlCQwNV69JWurulZjNiSOyzX4pWXw8LE5aX/BqmJ SeY0lmKXUglZ4jfjq2hS4+aSND+VhIOW25TiOdk=
X-Google-Smtp-Source: ABdhPJwSsuoYmgVu/N/1bq7SrXFvkbckj5ZxpmvtgihILC4U8FCWJaAFilg94Y7MDcmcHzKnbrJDuKuJCFLPJeUCAIY=
X-Received: by 2002:ac5:c20e:0:b0:328:28ff:15ed with SMTP id m14-20020ac5c20e000000b0032828ff15edmr12404658vkk.0.1649791228064; Tue, 12 Apr 2022 12:20:28 -0700 (PDT)
MIME-Version: 1.0
References: <CACL_3VFQVTGECt3rJaoOg3DcON_UsUXETKVTa47k57wqJ07-+w@mail.gmail.com> <032C0C62-926C-4C11-A95E-DA5A2C0B3697@strayalpha.com> <CALx6S34GUSSyAud71J01DC=LzhorhXuNVs7wc01TAs+iT=H_OA@mail.gmail.com> <A0EF17FF-8152-488C-A9D7-DC4BA600140B@strayalpha.com> <CALx6S37HCn6vXDD5G0f+BwQ4e+jy8XX52gM_GN2yFhdGj-h6ZA@mail.gmail.com> <D9072639-DD7A-430E-9C92-A22DC9F02DAD@strayalpha.com> <e73fcb11-1cc5-29ed-ef40-ceadf2993a65@huitema.net> <CACL_3VF0yY4C1cCid-QK00ub_j1pOi6+3m0y+vCOdL4xp1tFVw@mail.gmail.com> <03a5b1ee-45df-f2dc-0201-18cee18a0e50@huitema.net>
In-Reply-To: <03a5b1ee-45df-f2dc-0201-18cee18a0e50@huitema.net>
From: "C. M. Heard" <heard@pobox.com>
Date: Tue, 12 Apr 2022 12:20:15 -0700
X-Gmail-Original-Message-ID: <CACL_3VErVAOX_54HUhDjhQ1cJE4q3C7F9a=AawPh-vM0dqvNbQ@mail.gmail.com>
Message-ID: <CACL_3VErVAOX_54HUhDjhQ1cJE4q3C7F9a=AawPh-vM0dqvNbQ@mail.gmail.com>
To: Christian Huitema <huitema@huitema.net>
Cc: Joe Touch <touch@strayalpha.com>, Tom Jones <tom@erg.abdn.ac.uk>, TSVWG <tsvwg@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000001a370105dc79f4b0"
X-Pobox-Relay-ID: 9CE9711A-BA95-11EC-B313-CB998F0A682E-06080547!pb-smtp2.pobox.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/5RH6vOtqwLrDcWS1ZW3g_8wY4s0>
Subject: Re: [tsvwg] Way forward for UDP option FRAGs with limited router hardwara
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: Tue, 12 Apr 2022 19:20:39 -0000

On Tue, Apr 12, 2022 at 9:46 AM Christian Huitema wrote:
> On 4/12/2022 9:17 AM, C. M. Heard wrote:
...
> > There is a concern that packets with UDP trailers -- i.e., where
> > the IP Payload Length exceeds the UDP Length -- will be filtered in
> > intermediate systems. If I understand correctly, this is the concern
> > (or at least one of the concerns) that Christian Huitema has raised.
> > The Aberdeen group has actually investigated this matter, and Tom
> > Jones presented the results at a MAPRG meeting several years ago.
> > I'll search my archives and provide appropriate pointers to that
> > work in a bit.
>
> Thanks. Waiting to see the data.

The 2018 MAPRG presentation authored by Gorry Fairhurst, Tom Jones, and
Raffaele Zullo is available at:

https://datatracker.ietf.org/meeting/103/materials/slides-103-maprg-a-tale-of-two-checksums-tom-jones

There is a more recent published paper by Zullo, Jones, and Fairhurst
resulting from this work; it is available at:

https://tma.ifip.org/2020/wp-content/uploads/sites/9/2020/06/tma2020-camera-paper70.pdf

The principal finding was that UDP options, as originally envisioned,
were blocked quite often by middleboxes re-computing the UDP checksum
as if the options trailer was part of the UDP packet -- in other words,
using the IP Payload Length instead of the UDP Length both to control
the extent of the UDP checksum calculation and as the the length value
used in the pseudo-header. This was the motivation for the way OCS is
specified. It compensates for this middlebox pathology, and in addition,
it happens to make commonly used forms of checksum offload work as
intended in the presence of UDP options -- see
https://mailarchive.ietf.org/arch/msg/tsvwg/9_1YWp-TApI9mcCuia8U6jfCwTA/.

However, the work also considered many other kinds of middlebox
pathologies, including refusal to pass anything that does not have
IP Payload Length equal to UDP Length, passing the surplus area only
if it contained nothing but zeroes, and a couple of other checksum
re-calculation anomalies.

I just became aware of the paper and have yet to digest it, but back
in November 2018 I put several questions to Tom Jones regarding the
interpretation of the figures in the MAPRG presentation. He has
graciously permitted me to forward his response to those questions,
in addition to providing the link to the published paper.

---------- Forwarded message ---------
From: Tom Jones <tom@erg.abdn.ac.uk>
Date: Mon, Nov 26, 2018 at 5:19 AM
Subject: Re: Questions about "A Tale of Two Checksums"
To: C. M. Heard <heard@pobox.com>
Cc: <raffaele@erg.abdn.ac.uk>, <gorry@erg.abdn.ac.uk>

Hi Mike,

Thanks for your questions and feedback on the TSVWG mailing list.

> A few questions about the IETF 103 maprg presentation "A Tale of Two
> Checksums" came up when reviewing the slides at https://datatracker.ietf
> .org/meeting/103/materials/slides-103-maprg-a-tale-of-two-checksums-tom-
> jones. I'll put the questions here, but If there us a writeup available
> that will answer these questions I'd be happy to have a pointer to it.

We are writing a paper on these measurements and will share it with the
list when it is published.

> On page 10:
>
>    1. Does "Works" mean UDP Length Checksum, UDP length Pseudoheader,
>    surplus area passed transparently?

Yes, UDP datagrams with Options work end to end on that path. (this
includes the correct checksum and when no checksum validation is done on
the path)

>    2. Does "Full Payload Checksum" mean Full Payload Checksum, IP length
>    Pseudoheader, surplus area passed transparently?

Figure 1 in the CCO draft will help.

https://tools.ietf.org/html/draft-fairhurst-udp-options-cco-00

The Full Payload Checksum is calculated over the number of bytes as
described by the IP Payload length. That is, it is calculated over the
UDP Datagram and any surplus space (the option area).

IP Length Pseudoheader here means that the UDP Pseudeoheader constructed
for the checksum uses the length from the IP Payload length and not the
one in the UDP header.

>    3. It seems that "Full Payload Checksum, UDP length Pseudoheader" would
>    get typically through if the options space is populated by zeroes
(since
>    the checksum computation would yield the same value as UDP Length
>    Checksum, UDP length Pseudoheader). How is "Only passes 0s as options
>    space" distinguished from this case?


If zero padded works and 3rd CS fails, it is a problem with the options
space. If 3rd CS passes, zero padded will always work.

If zero padded fails, 3rd CS passes, it falls into the 'other' category.
This is a very small number of cases.

>
> On pages 8+12 and 17-18:
>
>    1. Is the correct reading of these charts that blue = what passes
>    without CCO, blue+red = what passes with CCO?
>

Yes

> On pages 15-16 and 19-20:
>
>    1. In general, do the various colours slices on the graphs indicate the
>    fractions of packets _with options_ (IP payload length <> UDP Length)
>    passed for the various checksum options listed in the key on the
>    following page?


Slides 15-16 and 22 are the same slide, the key was moved to make it
easier to discuss when presenting.

It is the same case for 19-20 and 21.

>    2. Does "No CS" mean "no packets with options passed" (indicating a
path
>    that require IP payload length == UDP Length)?

Yes

>    3. Is "4th CS" the same as "UDP Length Checksum, IP length
Pseudoheader"
>    on p. 10?

Yes

>    4. Is "3rd CS" the same "Full Payload Checksum, UDP length
Pseudoheader"
>    on page 10? If so, is there an additional proviso that the option
space is
>    non-zero?

Yes

>    5.  Does "Zero-Padded Options only" mean the same thing as "Only passes
>    0s as options space" on p. 10? If so, were any checksum combinations
>    other than "Correct UDP CS" (i.e., UDP Length Checksum, UDP length
>    Pseudoheader) included in this test case?

Yes, no other combinations were included.

>    6. Does the colour red indicate paths for which "Full Payload Checksum,
>    IP length Pseudoheader" was the only one that worked for packets
without
>    CCO?

Yes

>    7. Does the colour yellow indicate paths for which both "Correct UDP
CS"
>    and "Full IP Payload CS" worked in the absence of CCO? That this
>    combination was so prevalent seems to indicate that many middleboxes
do two
>    checksum computations!

Yes. The two computations can also happen at different layers, in that case
we get an OR between them.

> Thanks for the work. It was very enlightening, if somewhat discouraging,
> given that there are drop rates in the 5% - 28% range even with CCO.
>
> Mike Heard

- Tom and Raf
------------------------------------------------------------------------

A quick scan of the published paper suggests that many of the questions
I asked -- as well as others -- are resolved there. I shall be reading
it carefully in the next few days. That being said, there is one special
case that deserves to be singled out that, as far as I have seen, is
mot explicitly addressed: what happens when there is no conventional
UDP data at all, i.e., when UDP Length = 8? This case figures
prominently in the current specification, since it is used for
fragmentation, options that cannot be safely ignored, and packets that
carry options with no user data, such as DPLPMTUD probe packets. If
tests were conducted for that case, I at least would find the results
to be of great interest.

Mike Heard