Re: [tsvwg] design assumptions - draft-ietf-udp-options

Tom Herbert <tom@herbertland.com> Wed, 17 July 2019 20:19 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 42A49120047 for <tsvwg@ietfa.amsl.com>; Wed, 17 Jul 2019 13:19:48 -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, RCVD_IN_DNSWL_NONE=-0.0001, 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 flGNJHWbv9q8 for <tsvwg@ietfa.amsl.com>; Wed, 17 Jul 2019 13:19:46 -0700 (PDT)
Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) (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 51F93120018 for <tsvwg@ietf.org>; Wed, 17 Jul 2019 13:19:46 -0700 (PDT)
Received: by mail-ed1-x544.google.com with SMTP id w13so27457262eds.4 for <tsvwg@ietf.org>; Wed, 17 Jul 2019 13:19:46 -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=2MzbjaRrLuR1m4JH/sP5s0j/InKxggOXNgKYOu8ELPo=; b=btUxyzfPrAdq3tApen0kObreT+hQ+sM0Ydy0zrQPVenCXQgX5AlohQcrZiZqXQyXcn W+gy1p1LQuLpG9dQRpF78mEbM/HGHkKxKoR7vwuAs2Mzbdk+apJBNbIwx3AnhCOUu2bc FpER0nbMNE8i92py1Ofmz254V3zGowYD+EaFsWoOo6ykhKgp8EVoP/swAezd4EEPRpS+ EkwH8ERGWVrZ/gEveIs3yh/4js2IPn2epq4DVGKuy08SghiRypq0+cGQgfeJ73KBhPy0 vdW8jz0SMNPU5YvuY0NjEbKq/gLehUPmx3Cf3nJK2dIjRJ03Tjs1BINN/hnTKADtwHaQ jJhg==
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=2MzbjaRrLuR1m4JH/sP5s0j/InKxggOXNgKYOu8ELPo=; b=CcXxKdK4ZT5hlpRehn0lRT6rKCKcBS+Bs9YuH2zqlV4i1yvuYG7ld9PZ6lS6ZuTkjf 7tPD/VcXZ7KITI7zJstyhPGTqXq5DfBCfGwOAWOtQLoWrtQO6Ul2sg6C6PvioR681suU S2U0LfAMPV6g8lY3lPItd+A5pt6Lvj/pbYG2NYpCFTD0gSvA6kbHf2L+rEZFIexYYjME ShN9FxTU4lhe5ODNapBY/tmIRCUR//m3sXVHx+AZ84VC/o07nrOdqVUpbwvIyMuq2kW+ rqKTE49NiKPeshfqyv93Fx50dULbx0HAKpKnaKTpTKaIIsESKzsi4XzxAaIlB9bfXgXO KzuA==
X-Gm-Message-State: APjAAAVcwKJXDUOPK/ue8eXcaJ4BDqNa9AwJAnUNvNLYc+QGHJcxDhNN zqj52c436nndyg4HVQAzsLPTOqhfFFSkfv0IfVw=
X-Google-Smtp-Source: APXvYqxtvMFn7V3By7kygoOOHqOfr/7iak8EKivbvYPKb5ia28aDiM/eqsNTYGgc0uDxm+j41Y2YLyLWrKKyRphY52A=
X-Received: by 2002:a50:9646:: with SMTP id y64mr36915555eda.111.1563394784679; Wed, 17 Jul 2019 13:19:44 -0700 (PDT)
MIME-Version: 1.0
References: <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> <CAPDqMeoyNb7vQTdqxLpZpnKb9S7QKeDJNLyQJBmq95yXhB+xfQ@mail.gmail.com> <7D365770-64FE-40BC-901D-B4D7DF6B484B@strayalpha.com> <20190713182554.GB39770@clarinet.employees.org> <CALx6S36mH2M6SYnRSecWXa7k_d1u8O43+CXE-=KqeO0x2e5+qw@mail.gmail.com> <82FF6486-FABF-4D2C-B5E2-178779C720A4@strayalpha.com> <30c17e9c174f6b0da3ecc6b503a8cb17@strayalpha.com> <CACL_3VGs7j+y5vFNT3OL9OKX8ue4rv-Cxi467KR-vbhnMdx86g@mail.gmail.com> <2f71a292f924a9b8de4227c4bbc2f809@strayalpha.com> <0ce46e21249f0dc55310b192d382f50a@strayalpha.com> <CALx6S36gaMqNRo_hYKr45T_vTkUB-vRrYRYJz2_KgvejNsJtLQ@mail.gmail.com> <efbf65646a0e0d2535dc5726b34f3472@strayalpha.com> <CALx6S37sZxmGQJq5mxDiF88NeUjj2HMRnQG5KyZA_4ujrLJkqg@mail.gmail.com> <079d7d849d0e6260497a6c0ed37595a2@strayalpha.com> <CALx6S37wOkz0436CmevOjSe=VwAxKstSR9Jc66PUmXwUKK4vBw@mail.gmail.com> <075C3166-DF88-4160-8E6C-1C32511F4D46@strayalpha.com> <811C4C35-48D8-4382-A4B4-784FAC1B9F1D@strayalpha.com> <CE03DB3D7B45C245BCA0D2432779493630620745@MX307CL04.corp.emc.com> <80BB381B-9B2F-4ACF-9F3A-27E7B8B10AC2@strayalpha.com> <CE03DB3D7B45C245BCA0D24327794936306212A0@MX307CL04.corp.emc.com> <CACL_3VGS8-3susS-qm3oDD3=fwT6QmRa4_hgceJKhqjz3n+H5Q@mail.gmail.com> <CALx6S37GyRuVtoERrp1bDr3iCj0tZwGFH5CEsBJG3t0seii=3w@mail.gmail.com> <deae8d1cb6f4af0086a2b48f11a6886d@strayalpha.com> <CALx6S34ObdtnJL64saxvk6gKd_ERs+EybWbieyr9oqxtU3qLbQ@mail.gmail.com> <9e407c41151928b5b35ede4cd8dca57d@strayalpha.com>
In-Reply-To: <9e407c41151928b5b35ede4cd8dca57d@strayalpha.com>
From: Tom Herbert <tom@herbertland.com>
Date: Wed, 17 Jul 2019 13:19:33 -0700
Message-ID: <CALx6S37jWNquUzLE-uekD4sQ3xdNWui35mHPB5G_3_EZpOH4yA@mail.gmail.com>
To: Joe Touch <touch@strayalpha.com>
Cc: "C. M. Heard" <heard@pobox.com>, 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/IuCi3GdChN_pSd3EIr2Nf7kJvlU>
Subject: Re: [tsvwg] design assumptions - draft-ietf-udp-options
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: Wed, 17 Jul 2019 20:19:48 -0000

On Wed, Jul 17, 2019 at 12:45 PM Joe Touch <touch@strayalpha.com> wrote:
>
>
>
>
>
> On 2019-07-17 12:30, Tom Herbert wrote:
>
> On Wed, Jul 17, 2019 at 12:16 PM Joe Touch <touch@strayalpha.com> wrote:
>
>
>
>
> ... Thus the LITE option isn't needed and the awkward moving
> around user data to reconstruct the protocol trailer is unneeded.
>
>
> There were two reasons for the swaps involved:
>
> 1) to enable support for zero-copy (if we're optimizing for any sort of processing, it ought to be this sort of endpoint issue)
>
> That's not needed for zero copy. We already understand how to handle
> an optimize variable length headers with options such as TCP. Trailers
> do not help that, and in fact they make efficient implemenation much
> harder.
>
>
> When the UDP packet arrives, as it comes in the door, where do you put the data? Remember, you get to put it somewhere ONCE.
>
> With trailers and the existing approach, you can swap a few bytes and chop off the end just fine. With headers, not so much.
>
In the _existing_ approach, any reasonably modern stack has a data
point in packet metadtata (in mbufs, mblock, skbuffs, etc.). The data
pointer that moves as the headers as they are processed and eventually
the data pointer points to the user data that can be copied out,
memory mapped, etc.-- there's no byte swapping. This is shown in
prototype implementation of UDP Extended Header in
https://mailarchive.ietf.org/arch/msg/tsvwg/ZwIwOQKtbM_xXIQ3oC9Vc0mguB8.

But let's assume for a second that you've discovered something new and
protocol trailers are significant implementation improvement. Great!
You're going to need to _prove_ that though. That means you need to
write a real implementation, test it, have peer review. In other
works, you need to show your work. Frankly, academic speculation about
implementation is pointless, we need to see the code it you want to
prove your point.

>
>
> 2) to allow fragments to have both per-fragment options as well as options over the reassembled whole; this is important to provide both CCO (per fragment) and AE (over the whole result). And no, doing security, integrity checks, etc., on fragments is not the same as doing it over the reassembled whole.
>
>
> That is also not needed. In both IPv4 and IPv6 fragmentation, the
> options (extension headers) that are set in the reassembled packet are
> taken from the first packet. The same approach can be taken in UDP
> options.
>
>
> No, they can't - exactly as you now note:
>
Works for IPv4 and IPv6...

>
> As for security and integrity checks being different on fragments than
> a whole packet, that is true-- those are going to be much more costly
> for operations. For instance, we can easily offload a per packet
> checksum to hardware, but not the reassembly checksum. That's
> potentially a big performance hit for no value.
>
>
> By "no value" see "End to End Arguments in System Design".
>
> Joe