Re: [tsvwg] UDP Options: on forcing the use of UDP CS=0 in connection with FRAG+LITE

"C. M. Heard" <heard@pobox.com> Tue, 02 July 2019 23:50 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 974BB1200F6 for <tsvwg@ietfa.amsl.com>; Tue, 2 Jul 2019 16:50:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, 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; domainkeys=pass (1024-bit key) header.from=heard@pobox.com 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 sn_2L5355tAs for <tsvwg@ietfa.amsl.com>; Tue, 2 Jul 2019 16:50:54 -0700 (PDT)
Received: from pb-smtp20.pobox.com (pb-smtp20.pobox.com [173.228.157.52]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A5D4A1200E7 for <tsvwg@ietf.org>; Tue, 2 Jul 2019 16:50:54 -0700 (PDT)
Received: from pb-smtp20.pobox.com (unknown [127.0.0.1]) by pb-smtp20.pobox.com (Postfix) with ESMTP id 61B9D75E2F for <tsvwg@ietf.org>; Tue, 2 Jul 2019 19:50:53 -0400 (EDT) (envelope-from heard@pobox.com)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=mime-version :references:in-reply-to:from:date:message-id:subject:to:cc :content-type; s=sasl; bh=0tixSzvzjqy5I848Ejt43uWZzmU=; b=Wyew2c eYFYJw8jW2A/76HjLUT7zNXul7dij4iX4xKmXc/0HiXkQjLngM3e3XVMRiM9AXzd zJdH//1oa3n5iThM2yLTnPhAVZsHUlnPJgZ6/EpK8HLmhwMnx3m5gMIxyi3u/EOH 6r/2jMu9C2fKQSjEluRJkU7wAgmHyOxOgH5MU=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=mime-version :references:in-reply-to:from:date:message-id:subject:to:cc :content-type; q=dns; s=sasl; b=VQzG5L4HgbbV5j5ud54DbVGduQx/clBT AUGprsAUHkf7apvkL+on+Mi56hpuwuuC1eTjWJ8o3lAiA19pK238zTI2AmN+oBfr vBQLnDbtpkFwFfT89H8P4TFpafz2CV79bxm63iyzxA3iu36khbymUL9VmqJg9I+/ EIxM8kk6x8s=
Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1]) by pb-smtp20.pobox.com (Postfix) with ESMTP id 5BDE575E2E for <tsvwg@ietf.org>; Tue, 2 Jul 2019 19:50:53 -0400 (EDT) (envelope-from heard@pobox.com)
Received: from mail-io1-f51.google.com (unknown [209.85.166.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pb-smtp20.pobox.com (Postfix) with ESMTPSA id 21E7875E2A for <tsvwg@ietf.org>; Tue, 2 Jul 2019 19:50:51 -0400 (EDT) (envelope-from heard@pobox.com)
Received: by mail-io1-f51.google.com with SMTP id w25so474084ioc.8 for <tsvwg@ietf.org>; Tue, 02 Jul 2019 16:50:51 -0700 (PDT)
X-Gm-Message-State: APjAAAVGbAbKnhSXXCXcahIyDjZSsvW4J7PrnlQoQhsYp8tvxe0sAj7C ASHWimnPzDabzQYyMItquHkXps7Ko8hLs/J4rhM=
X-Google-Smtp-Source: APXvYqyvXN/xmYbULCvZRZp6hmGT1qA9dR0AFm4hHcORmnI4eZOWm7h0LBiuqHbMrljWEVubbx6PAPYkQdylSBCu3ng=
X-Received: by 2002:a5e:9308:: with SMTP id k8mr35711900iom.143.1562111449937; Tue, 02 Jul 2019 16:50:49 -0700 (PDT)
MIME-Version: 1.0
References: <CACL_3VHGtMz3htgfFLRGhjXm=qC7kOXQs+cchtamhh-giBnpLA@mail.gmail.com> <CALx6S35T9ApzMaoSVgHSJPpcpfXsbHHogoBbEjMPj6vH-kxYeA@mail.gmail.com> <CACL_3VE6kr33Vk5si5AxSZNmhqysZZGoy6HK37COUgwbvcRkdA@mail.gmail.com> <24692A9B-4AF1-4E32-A760-7D4908A61262@strayalpha.com> <CACL_3VExhAdFCu-kFLLO5DeRYUOFyJztUgJg-vQmnPoecvzeJg@mail.gmail.com> <CALx6S34zY74fhqbXxmiyturfu5mxFjRtA4=R48haX9tP6qLcow@mail.gmail.com> <CACL_3VE5kOqQq6nHqwthXF4=j8KJse5_X5gek0w6j6UdsUuQ2w@mail.gmail.com> <CALx6S36km55fcY7kPUCQFcJSg1kt-CEZRUCfawPifN1nQ8WFMw@mail.gmail.com>
In-Reply-To: <CALx6S36km55fcY7kPUCQFcJSg1kt-CEZRUCfawPifN1nQ8WFMw@mail.gmail.com>
From: "C. M. Heard" <heard@pobox.com>
Date: Tue, 02 Jul 2019 16:50:37 -0700
X-Gmail-Original-Message-ID: <CACL_3VFnbdXjv55yt7UdBGHoB7Esi8_e5rQ1XNA0w3DFc19KyQ@mail.gmail.com>
Message-ID: <CACL_3VFnbdXjv55yt7UdBGHoB7Esi8_e5rQ1XNA0w3DFc19KyQ@mail.gmail.com>
To: Tom Herbert <tom@herbertland.com>
Cc: Joe Touch <touch@strayalpha.com>, TSVWG <tsvwg@ietf.org>
Content-Type: text/plain; charset="UTF-8"
X-Pobox-Relay-ID: 38F5F0F2-9D24-11E9-8EA0-B0405B776F7B-06080547!pb-smtp20.pobox.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/qpfxaxsbOYRr3qhxCzHHbjhJTLQ>
Subject: Re: [tsvwg] UDP Options: on forcing the use of UDP CS=0 in connection with FRAG+LITE
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, 02 Jul 2019 23:50:57 -0000

On Tue, Jul 2, 2019 at 11:07 AM Tom Herbert <tom@herbertland.com> wrote:
> On Tue, Jul 2, 2019 at 10:33 AM C. M. Heard <heard@pobox.com> wrote:
> >    o  A UDP application MUST check that the source and destination IPv6
> >       addresses are valid for any packets with a UDP zero-checksum and
> >       MUST discard any packet for which this check fails.  To protect
> >       from misdelivery, new encapsulation designs SHOULD include an
> >       integrity check at the transport layer that includes at least the
> >       IPv6 header, the UDP header and the shim header for the
> >       encapsulation, if any [RFC6936].
>
> Mike,
>
> Right. Conceptually the reassembly checksum could meet the criteria if
> the IP addresses were included, but that would break in the presence
> of NAT since no NAT devices are going update a new checksum field
> (with the possible exception that NAT makes a checksum neutral changes
> as described in RFC6296).
>
> So the best approach is to not touch the UDPv6 checksum and to ensure
> that the surplus area sums to zero (i.e. the UDP checksum effectively
> covers both the UDP payload and surplus area). As I've mentioned
> previously, this motivates putting a required checksum field in the
> surplus space not just in an option like OCS. A per packet checksum in
> surplus area has other benefits beyond making UDP checksum compatible
> with middleboxes.
>
> Tom

In https://mailarchive.ietf.org/arch/msg/tsvwg/_RKlp1O4JgfCUoWBr2L5VKLCj_M
I proposed something very similar to that:

(a') OCS must be included by a sender whenever the UDP checksum is enabled
     (I agree that OCS seems pointless when the user has requested CS=0)
(b') OCS, when present, should provide coverage from the start of the
     options area (before LITE is moved on transmit or after it is moved on
     receive) to the end of the packet

That indeed does provide advantages beyond middlebox traversal, not the
least of which is that OCS can be verified ***before*** one loops through
all the option TLVs.

Being agnostic on whether anything after the end of the UDP options (if
marked by an EOL option) should be allowed, I see no particular advantage
to having a fixed header as described in draft-herbert-udp-space-hdr as
opposed to the OCS and NOP options, assuming that OCS has an implicit
length of two. If we require two-byte or four-byte alignment, then the
latter combination will consume less space than the fixed header when the
regular UDP payload ends on a byte boundary that is 1 mod 2 or 1 mod 4
(respectively), and if we don't constrain the placement of OCS, it may
consume less space in other cases as well. It will always consume less
space if we don't levy an alignment requirement.

Also, I'm of the opinion that an optional-to-implement capability for the
user to specify UDP CS=0 for a particular port (in conformance with
Section 4 of RFC 6936) should be retained when UDP options are enabled.
If (as Joe and I argue) OCS is pointless in that case, we might as well
save space by omitting it, which not possible with a fixed header.

Mike