Re: [tsvwg] UDP options and header-data split (zero copy)
Tom Herbert <tom@herbertland.com> Sat, 31 July 2021 18:27 UTC
Return-Path: <tom@herbertland.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 17A0D3A13AD for <tsvwg@ietfa.amsl.com>; Sat, 31 Jul 2021 11:27:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=herbertland-com.20150623.gappssmtp.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 IIQPDOFYrI7C for <tsvwg@ietfa.amsl.com>; Sat, 31 Jul 2021 11:27:46 -0700 (PDT)
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com [IPv6:2a00:1450:4864:20::632]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E17603A13A5 for <tsvwg@ietf.org>; Sat, 31 Jul 2021 11:27:45 -0700 (PDT)
Received: by mail-ej1-x632.google.com with SMTP id gs8so23214169ejc.13 for <tsvwg@ietf.org>; Sat, 31 Jul 2021 11:27:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=herbertland-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=+6gP8pk/MBKwsaVsp/NKCb8QpmGSpzcOo6Ypopwh3Eo=; b=WTlWYl4XhN2cv0w5r4wXhWfE0eGy2CdwZOIAOa9Lw5p+Q7IB3Euc8eVutcRMVXWTxm rsMMOq1O1/OTDhZW6aef8G2Mf3Fpz1CP1RtibBbdo6Ry0Lf2uiGvGvv7BS93mMIuuesv LNVSX3zu0uomUiXG6Ef+d3f6RSdivKvmKHWRrIIz6q6tPpkHmxFRO/KiTip5JPPkQxdH 512uY057gDMZydWheQT6zZ3yX1lVPDtWF/Vj8281ztuTBZ84bb0n/HdGrK5T1aeewHwB 2RluLQyL0OuOTy5oG5ScDMyoeyxIg1DWYrjRUDQCW7fzTafOX4X26XcsbbBuytrqT4s4 jFnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=+6gP8pk/MBKwsaVsp/NKCb8QpmGSpzcOo6Ypopwh3Eo=; b=sdTmwc5noU5fXRUHbWgVl17X3IqR1ZIxHcwLBvyhlShm57WdlcMGzyjIDeA9e33exu Kr99MVciRkGOWlvClcYPDijI5NdtUyAMWDsy8b+vYQ8rbCGJbQYdjqz7gymha3V9pdLL cWm5y/0rLonX9lbbErkfW2VpKdARQ9JYzF3AAt7O+XQW/huCkaE5OcXFI6BWyupFOYPR Zoxr9LUCDNE88WV+3p952eQEjuL7QAyKskbXItSHSzZko4DGmt3rUuq6I8Q3G5r8JKlW ry6UK2WPVd0tBm7CZa2d+lEUVdElInVAATRv9b0zmq85Fn30pMcV1jNajRLSGTObIkcQ Sasg==
X-Gm-Message-State: AOAM530NvQJ9nHSu8bx/IjlESYdf6ZG8PcOX65tgRfBd5N1MiI8FRljH FKbEFpPdSeGiMj9tC7IdtS+Ma9mSeNOF3ExXcqFpkw==
X-Google-Smtp-Source: ABdhPJydwmwcrzqISpC99UYZVlWEpzFtVVazXv2c27Z7Rw6xA7FrMSjLxlETExiQ3r+VGWnPSeO3ikokSoIFY4Bvoq4=
X-Received: by 2002:a17:906:31cf:: with SMTP id f15mr8388876ejf.272.1627756062824; Sat, 31 Jul 2021 11:27:42 -0700 (PDT)
MIME-Version: 1.0
References: <CALx6S37zzaZaWNygGt=YaZSAo1e5fTgqmi0ftK4q+puCfbXWGg@mail.gmail.com> <6073AC0D-C32A-4033-BC92-F828BA50BDF7@strayalpha.com> <CALx6S37Nf4U=6aGf7ov_7+UULzuD-DPP+gJzLyJ0vKxRELtLCQ@mail.gmail.com> <3CCB787D-CD9F-4380-9544-F5FEAFAF3E27@strayalpha.com> <CALx6S36pRhJFHnhh58tUabeoc8ScajfUYV1HOg=tPJvic8bJ9Q@mail.gmail.com> <CF65CA93-768D-4070-818F-8DA2D08F5BC3@strayalpha.com> <CALx6S36o8RR3v29A4fEp94O6qwpwU6PUAAAEgVMZidbQS3RvLw@mail.gmail.com> <7AAB2648-3789-44B6-A07F-DA9031AAC9A2@strayalpha.com>
In-Reply-To: <7AAB2648-3789-44B6-A07F-DA9031AAC9A2@strayalpha.com>
From: Tom Herbert <tom@herbertland.com>
Date: Sat, 31 Jul 2021 11:27:31 -0700
Message-ID: <CALx6S35VyMOdxKLxXzLhPJu6qDK8o8-+SgeV=u89bM3j9BeTSQ@mail.gmail.com>
To: Joseph Touch <touch@strayalpha.com>
Cc: tsvwg <tsvwg@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/BGngGWQuoevKsZNBodVfQ3LZONo>
Subject: Re: [tsvwg] UDP options and header-data split (zero copy)
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: Sat, 31 Jul 2021 18:27:51 -0000
On Sat, Jul 31, 2021 at 10:33 AM Joseph Touch <touch@strayalpha.com> wrote: > > > > > On Jul 31, 2021, at 10:17 AM, Tom Herbert <tom@herbertland.com> wrote: > > > > On Sat, Jul 31, 2021 at 9:18 AM Joseph Touch <touch@strayalpha.com> wrote: > >> > >> Hi, Tom, > >> > >> On Jul 31, 2021, at 7:53 AM, Tom Herbert <tom@herbertland.com> wrote: > >> > >> On Fri, Jul 30, 2021 at 8:35 PM Joseph Touch <touch@strayalpha.com> wrote: > >> > >> > >> Hi, Tom, > >> > >> On Jul 20, 2021, at 7:49 AM, Tom Herbert <tom@herbertland.com> wrote: > >> ... > >> Limiting use to fragment mode is not what I am suggesting. > >> > >> ...If trailers are required in all use > >> cases, then devices that don't support them can't use UDP options even > >> if they're only interested in non-legacy mode uses > >> > >> …. > >> > >> > >> I don’t follow this line of logic. > >> > >> You claim that you’re not limiting use to frag-only, but then talk about “if trailers are required”. > >> > >> There’s no IF. They are. > >> > >> > >> Joe, > >> > >> That is an opinion, not an established fact. > >> > >> > >> Trailers have been shown to be the only way to support legacy mode use of UDP options. Nobody else has ever suggested or accepted that legacy mode is an optional part of this spec. > >> > >> If you want to convince > >> us that trailers are a requirement in all use cases, specifically > >> non-legacy mode, then please provide at least one example of options > >> that could not be correctly conveyed in protocol headers. > >> > >> > >> Legacy mode. > >> > >> Given that > >> we have many examples of successful protocols that have protocol > >> options in headers, IP options, TCP options, and IPv6 which provides > >> the example of how per fragment options and options for the > >> reassembled packet, I am dubious the need for trailers can be proven. > >> > >> > >> We’ve already done so for legacy mode. > >> > > But not for non-legacy mode. > > They’re not separable. If you can’t support non-legacy, you don’t support UDP options. > > This has never been a “pick and choose” spec. > > >> If you’re looking for a successful version of trailers, perhaps Ethernet will convince you? How about HTTP since 1.1? HLDC and PPP? > >> > > No, it's not convincing. HTTP is an application layer protocol. > > Ethernet, HDLC, and PPP are layer 2 protocols that have headers and > > use trailers for only FCS and CRC for the benefit of hardware > > implementation. > > It doesn’t benefit or hinder hardware implementation. It affects queuing delay in either case, but that’s not an issue for an endpoint protocol like UDP. > > > You could also add ESP to this list which again > > primarily uses a header and puts authentication data. These are not > > comparable to UDP options which is an open ended list of TLVs which is > > more likely to be processed in software. For network layer and > > transport layer protocols, protocol headers are the longstanding > > convention. > > And if we were designing one from scratch, I would agree. > > > Implementations have assumed this convention, and > > introducing a protocol that goes against this convention will have > > adverse effects. > > We don’t have a choice for legacy mode. > > > The effects could be loss of performance or > > functionality, or outright complete inability to support the protocol. > > Performance, yes. But by your own admission, the TLV is likely to be processed in software (wherever that is) anyway. > > >> If an implementation can’t deal with trailers, it can’t support UDP options - the core set is “all or none”, not “pick what you want”. > >> > >> > >> If an implementation can't deal with trailers, then that means that > >> users of those implementations can't use UDP options. > >> > >> > >> Again, that IS the point. > > > > I don't see how that isn't arbitrarily and knowingly eliminating the > > number of users and use cases for the protocol. > > The result of a “pick and choose” protocol is the same, if not worse. > > Again, like most of the IETF, we’re focusing on ubiquity over performance. > > >> If users can[’t] use > >> the protocol we're defining then what is the point of bringing it to > >> IETF? > >> > >> > >> (I’m presuming you meant “can’t” above) > >> > >> We have two types of legacy users: > >> - legacy UDP endpoints in general > >> - updatable endpoints with legacy UDP acceleration hardware > >> > > What does "updatable" mean. > > I was giving your approach the benefit of the doubt that the software could be updated to support legacy acceleration hardware. > > If that can’t happen, then UDP options can’t be supported because they aren’t right now. > > > If there is some piece of hardware that > > doesn't support protocol trailers, it's not like we can just call up > > the vendor and they'll fix it in a month. > > Right. But you CAN just have it push the whole reassembled packet with trailers to the OS and let the OS software handle the rest - just like it would need to for legacy mode anyway. > > > Fixing hardware takes years, > > and that assumes the vendors see any business value to invest in the > > fix which only exists if UDP options use becomes prevalent and support > > is being demanded by customers. > > Agreed - which is even LESS reason to try to optimize for today’s hardware. > > >> Your claim is that we can’t support both groups, especially if they interact.Even if we were to accept your claim, we would always choose to support legacy endpoints in general. If we have to sacrifice, we should sacrifice performance to maintain interoperability. > >> > > To the contrary, my claim is that we need to support as many users as > > possible. Avoiding a requirement for protocol trailers aligns with > > that goal, requiring protocol trailers opposes that goal and limits > > the number of users that can use the protocol. > > How does leaving legacy endpoints out “support as many users as possible” vs. merely using software to complement hardware acceleration, the latter which would support all users? Joe, You seem to be missing my point. There are implementations that terminate UDP and CANNOT process protocol trailers; this is not just an inconvenient performance degradation. Yes, that means that they can't use legacy mode, but I don't see the technical argument that UDP couldn't be productively supported by these implementations if UDP options are all contained in headers. I do not believe this is an aberration, we know for instance there are HW routers terminating UDP tunnels, and it would be a delusion to believe these implementations could be fixed to support protocol trailers in a finite time. So if protocol trailers are a forced requirement, even in non-legacy mode which is what tunnels would use anyway since they're configured, it seems like we're excluding use cases such as UDP tunnels where UDP options might be compelling. Given this, what is your answer to someone who wants to use UDP options with UDP tunnels? Tom > > Joe
- [tsvwg] UDP options and header-data split (zero c… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Paul
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joe Touch
- Re: [tsvwg] UDP options and header-data split (ze… Sebastian Moeller
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joe Touch
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… C. M. Heard
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joe Touch
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… C. M. Heard
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joe Touch
- Re: [tsvwg] UDP options and header-data split (ze… Joe Touch
- Re: [tsvwg] UDP options and header-data split (ze… Michael Tuexen
- Re: [tsvwg] UDP options and header-data split (ze… Joe Touch
- Re: [tsvwg] UDP options and header-data split (ze… Michael Tuexen
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… C. M. Heard
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… C. M. Heard
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… C. M. Heard
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… Joseph Touch
- Re: [tsvwg] UDP options and header-data split (ze… Tom Herbert
- Re: [tsvwg] UDP options and header-data split (ze… C. M. Heard
- Re: [tsvwg] UDP options and header-data split (ze… Sebastian Moeller
- Re: [tsvwg] UDP options and header-data split (ze… C. M. Heard
- Re: [tsvwg] UDP options and header-data split (ze… Joe Touch
- Re: [tsvwg] UDP options and header-data split (ze… Joe Touch
- Re: [tsvwg] UDP options and header-data split (ze… C. M. Heard
- Re: [tsvwg] UDP options and header-data split (ze… Joe Touch
- Re: [tsvwg] UDP options and header-data split (ze… C. M. Heard
- Re: [tsvwg] UDP options and header-data split (ze… Joe Touch