Re: [tsvwg] draft-ietf-udp-options issues from IETF 104

Tom Herbert <tom@quantonium.net> Thu, 11 July 2019 21:46 UTC

Return-Path: <tom@quantonium.net>
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 1B7BF120471 for <tsvwg@ietfa.amsl.com>; Thu, 11 Jul 2019 14:46:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.601
X-Spam-Level:
X-Spam-Status: No, score=-0.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, PDS_NO_HELO_DNS=1.295, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=quantonium-net.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 cPxZeU74lvaI for <tsvwg@ietfa.amsl.com>; Thu, 11 Jul 2019 14:46:56 -0700 (PDT)
Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) (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 CF1C1120451 for <tsvwg@ietf.org>; Thu, 11 Jul 2019 14:46:55 -0700 (PDT)
Received: by mail-wr1-x443.google.com with SMTP id c2so4629616wrm.8 for <tsvwg@ietf.org>; Thu, 11 Jul 2019 14:46:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quantonium-net.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=i+mutDBfS8A+ocDbuX06Cc7Hrgm8P6HwXVMLJw0wBg4=; b=adNpJsVCPt8kvam4qKJsWIblrkkNLG4XQCP0abBRZakwKeyz61EH2vje/U5vLrpmJk jlZ4yYOoPUguWSOrsCcr5KylUdt8ZzDxOhyBRjyTKdZ7SvDsxq5R1rLLyXmlqO15jwxd o11qtXpM8lrUQT1dyC0/txJzF1u5djYLa1+IrQzyDSdcooIGyVN0q38BxZhyI645QjDr t0tZE6Z8+9zxpnWIbdjc334kXuoF7ineleSuvE9l8NQvishhBzudmf7ieEInHWhOatAD a9jToUb2P9L2bJ1+yDjybN9GQsRfpr27xU61dKiavuCPCLq6pKfISHn6/Pm5rAysxHRN pTCw==
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; bh=i+mutDBfS8A+ocDbuX06Cc7Hrgm8P6HwXVMLJw0wBg4=; b=U3o47P2PUD8Y4y0UVVNZJ6vpxDb82K5k+yGrEPGk7E8MvHsZ5z8qu+JCAoCvIPRzWO s9189ubiFnyIVpY4RhpWt7OD6cao3yLexvDO977Ji/pfbd1nLtZAR0vnEBsIiKf/szKm M+87w37ddfbxx6rGHB51IuS3iGNi28S3iGp3mBQBrHDT8Kl1u2ZMY32tmXfR26f/quzK 34x5nb3tcDwGS2TwWiOooeUOWr1cSxGI0cZvg2DJ53qDPXyMYY53NKVL3EZYdhRcKoC7 t4SWOeVUXFzM2zBHZADtrbedf4dgA+kxkUcVEoerNlBeiMQu4hv9HWaEWIUOrLwm2Dbv 5pQw==
X-Gm-Message-State: APjAAAWe0LRNixBd6Yi0dfKuQGs9eMt2lbRM/7awVpQ/OLAUDZQG2z1H EqXczrE/3ebJi4hM1N7vS4n1Uq6WvR5zOUnlT4XL4g==
X-Google-Smtp-Source: APXvYqxyhp5kkapWNQGyY2nDsrD3tiWc/LWpcGTXLev7MDFtWf3ApaiqYx6OPFE7BJ3ZUsfDUC6P0aV8FS0TV4LsjdA=
X-Received: by 2002:adf:f8cf:: with SMTP id f15mr6885211wrq.333.1562881614031; Thu, 11 Jul 2019 14:46:54 -0700 (PDT)
MIME-Version: 1.0
References: <156262970360.865.13042807682366763561.idtracker@ietfa.amsl.com> <CAPDqMeoMqsB8=tH5TBaq5Tw-sLW3HNc8tpfUU3htV=sWo7pJcA@mail.gmail.com> <D7E52D2B-3912-4897-80C6-0150CDE10218@strayalpha.com> <CAPDqMep9MYqjFvvJSVbqYwo-xJ1pUocYszNukveaZODhf9+75A@mail.gmail.com> <e73919f08202937bf45418cbf8bcc38c@strayalpha.com> <CAPDqMeoh3n5fL1k6Fw9D8rCpy4a9eWyUZvgStyzYfFuJbuWudw@mail.gmail.com> <3f6f54e0b828e2628af964d6ee7f33e1@strayalpha.com> <CALx6S37rt7OJtH5a2ZH23R21ATETuwTeFS-mZQECtgxPQ3nSZA@mail.gmail.com> <ccc386aa429bfe301998f39eb7fccfbf@strayalpha.com> <140f11c854e0ad96c51639f830cbb688@strayalpha.com> <CALx6S35MC_fj+fL6Ax9a-9=-QX0-mHLmMQ7cUs2Rir+AvYE=zA@mail.gmail.com> <5b35e91dd510119672a0836f868ade24@strayalpha.com> <CALx6S36AVbKfvb-6dj07rcGjsVsCz0daFM9qZOBSSstZOM-Ukg@mail.gmail.com> <8A584FFF-6C86-4154-8D9D-CF407CA77145@strayalpha.com> <CAPDqMeq9GjEQKukH1pZOTdE50e_rc3U6gpdxT-5qrS5phD0RGw@mail.gmail.com> <646D45AD-D79B-4BD2-A084-7DA97CE2C415@strayalpha.com> <7EC37B50-45D5-4CF1-B113-205E55BF244E@strayalpha.com> <CALx6S34s7L7xo+26bt5Cdaqi4Es5Aci42GHk1WNKzugr5st-Gw@mail.gmail.com> <B525BF50-EFCC-44A5-A604-6CDDA914A1CB@strayalpha.com> <CAPDqMep3R6z9PRKkHyOvrh6sV9n5Sc0B++-zVz0FYJCwE6swrQ@mail.gmail.com> <E42A2AE2-F499-465E-BDE6-5EFC0AB20042@strayalpha.com> <CE03DB3D7B45C245BCA0D24327794936306138E9@MX307CL04.corp.emc.com>
In-Reply-To: <CE03DB3D7B45C245BCA0D24327794936306138E9@MX307CL04.corp.emc.com>
From: Tom Herbert <tom@quantonium.net>
Date: Thu, 11 Jul 2019 14:46:43 -0700
Message-ID: <CAPDqMeoyNb7vQTdqxLpZpnKb9S7QKeDJNLyQJBmq95yXhB+xfQ@mail.gmail.com>
To: "Black, David" <David.Black@dell.com>
Cc: Joe Touch <touch@strayalpha.com>, tsvwg@ietf.org
Content-Type: multipart/alternative; boundary="0000000000006e458a058d6ebb1a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/8CcABimoZNDMeAsAKQbWtdK_6U4>
Subject: Re: [tsvwg] draft-ietf-udp-options issues from IETF 104
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: Thu, 11 Jul 2019 21:46:59 -0000

On Thu, Jul 11, 2019, 1:01 PM Black, David <David.Black@dell.com> wrote:

> Commenting as an individual, **not** as a WG chair.
>
> -- Option Checksum (OCS)
>
> The IETF 104 tsvwg minutes match my impression that the topic of whether
> the offsetting option checksum (OCS) should be optional vs. mandatory
> remains an open issue for UDP options.
>
> For my part, I've seen strong "running code" evidence of what breaks when
> the OCS is omitted, in contrast to almost no evidence of things broken by
> the presence of OCS (computed to offset the UDP checksum calculation when
> that is done over IP length instead of UDP length).  For that reason, my
> current view is that the OCS ought to be mandatory.  Beyond that, I think
> Tom has a strong argument for putting the OCS in a fixed position of some
> sort, although my initial sense is that the OCS checksum should be at the
> end of the IP length, as that works better for pipelined implementations.
>
> One exception to OCS being mandatory that makes sense to me is that OCS
> doesn't seem to make a lot of sense with LITE, as the OCS would cover all
> the LITE payload data, thereby defeating the LITE goal of not having to
> checksum data whose reliability is not of interest.   One consequence is
> that UDP Options become unreliable when LITE is used, which may have
> implications for which UDP options are acceptable to use with LITE.  An
> important tradeoff is that LITE won't work on network paths that pass  UDP
> Options only when OCS is present.
>
> -- Other uses of surplus space
>
> Any hypothetical existing use of surplus space is incompatible with both
> UDP options and a new surplus header.  While I haven't seen evidence of any
> such existing use "running code," making the OCS mandatory helps defend
> against that possibility, as well as against bad endpoint implementations
> that put whatever junk bytes happen to be lying around in memory into that
> extra space, improving UDP Options robustness.
>
> Both UDP options and the surplus header are extensible, which is the "80%"
> conclusion from my perspective.  Beyond that, I don't see a lot of
> difference in what the two extensibility approaches enable.
>
> -- Additional motivations
>
> Tom asked " See the motivations section in the draft." ... so I did ...
>
> Assuming that the option checksum (OCS) issues are addressed (see above),
> the remaining motivations for discarding UDP options and doing something
> different appear to be:
> - Alignment: the NOP option in UDP options covers this
> - Protocol headers vs. protocol trailers: Something is wrong with that
> motivation as it leads to putting OCS immediately after the UDP length,
> i.e., before the data that it covers, whereas pipelined implementations
> would prefer to put it at the end of the IP length, i.e., after the data
> that it covers.
>

David,

I would agree with that if we were developing the IP checksum from scratch,
but reality is we have thirty years experience optimizing checksum for TCP
and UDP. For instance, in TX checksum offload the device is given the
offset to write the checksum. Since the checksum is in header, some
implentations express the offset in a byte to save a byte in TX descriptor.
This is one example of implementation optimizing processing for headers, I
doubt it's the only one.

Tom


> -- Bottom Line --
>
> I see clear opportunity for improvement in the option checksum (OCS)
> support in UDP options.  **If** suitable OCS improvements are made, then I
> don't see a strong case for an alternative approach.
>
> Thanks, --David
>
> > -----Original Message-----
> > From: tsvwg <tsvwg-bounces@ietf.org> On Behalf Of Joe Touch
> > Sent: Thursday, July 11, 2019 2:32 PM
> > To: Tom Herbert
> > Cc: tsvwg
> > Subject: Re: [tsvwg] draft-ietf-udp-options issues from IETF 104
> >
> >
> > [EXTERNAL EMAIL]
> >
> >
> >
> > > On Jul 11, 2019, at 9:46 AM, Tom Herbert <tom@quantonium.net> wrote:
> > >
> > >> On Thu, Jul 11, 2019 at 8:55 AM Joe Touch <touch@strayalpha.com>
> > wrote:
> > >>
> > >>
> > >>
> > >> On Jul 11, 2019, at 8:11 AM, Tom Herbert <tom@herbertland.com> wrote:
> > >>
> > >>
> > >>
> > >>> On Wed, Jul 10, 2019, 10:16 PM Joe Touch <touch@strayalpha.com>
> > wrote:
> > >>>
> > >>> Updating the subject line...
> > >>>
> > >>>> On Jul 10, 2019, at 8:56 PM, Tom Herbert <tom@herbertland.com>
> > wrote:
> > >>>>
> > >>>> ...
> > >>>> So it took the better part of a day and quite a few emails to
> conclude
> > that the only remaining issue in this proposal is one that we’ve already
> > discussed at length.
> > >>>
> > >>>
> > >>> Hardly the only remaining issue if you're referring to UDP options.
> > >>>
> > >>>
> > >>> Please look at minutes from last IETF. Both the subject of
> disambiguation
> > of surplus space
> > >>>
> > >>> as well as negotiation of UDP options was raised (i.e. if the
> receiver
> > requires checksum how
> > >>>
> > >>> does sender know that). I haven't seen these addressed by UDP options
> > draft at least…
> > >>>
> > >>>
> > >>> If you review the minutes from IETF 104, you will note that the next
> > steps were yours and QUICs, not mine.
> > >>>
> > >>> But let me jump in:
> > >>>
> > >>> - regarding other uses of the option space:
> > >>> - as I’ve already noted in this thread, this was discussed on this
> list long
> > before IETF 104
> > >>> - past uses (if there are any) would be protected (if necessary) by
> use of
> > OCS (when OCS is used)
> > >>> - future uses need not be differentiated independently; they should
> be
> > using the UDP option code points instead
> > >>>
> > >>> Regarding soft-state coordination:
> > >>> - Sec 13 already addresses the general notion of soft state in a
> general
> > sense.
> > >>> - on 3/20/19, I noted on the list that soft state mechanisms are not
> > specified because each option might vary in how this is achieved
> > >>> - if this isn’t sufficient, can you please clarify?
> > >>
> > >>
> > >> It's not sufficient. The point of a protocol specification is to
> describe how
> > the protocol works, without normative requirements and procedures there
> > is no interoperability and no robustness.
> > >>
> > >>
> > >> It’s a USER protocol; the user decides.
> > >>
> > >> Other notes:
> > >> - UDP remains unreliable, so there’s no hard state
> > >> - UDP options are optional - UNLIKE TCP headers and UDP headers, so
> > everything can and should be optional as the user desires
> > >> (i.e., the UDP options are like the TCP option *field*, not the TCP
> header
> > + option field)
> > >>
> > >> Here’s a simple version that I can include as an example:
> > >>
> > >> - user sends a zero-length UDP with the options the user wants to use
> > and the ECHO-REQ (including either using OCS or not using OCS)
> > >>
> > >> - if the user receives an ECHO-RESP with the same options, set a
> timer and
> > use those options until the timer expires
> > >>
> > >> Users can do this with more than one variation of options set and use
> any
> > one of the sets that is successfully echoed.
> > >>
> > >> Why is this difficult?
> > >
> > > If it's so easy then there shouldn't be any issue with specifying the
> > > protocol in the draft in normative language and including
> > > consideration for various edge conditions and recommendations for
> > > default value of protocol parameters such as the timeout in your
> > > algorithm.
> > >
> >
> > We can give examples, but this is user level not UDP. We don’t have or
> want
> > an integrated, normative approach.
> >
> > Joe
> >
> >
> > > Tom
> > >
> > >>
> > >> Joe
>
>