Re: [tsvwg] UDP options and header-data split (zero copy)
"C. M. Heard" <heard@pobox.com> Mon, 02 August 2021 18:12 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 0448D3A13DE for <tsvwg@ietfa.amsl.com>; Mon, 2 Aug 2021 11:12:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.798
X-Spam-Level:
X-Spam-Status: No, score=-2.798 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_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
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 fbr-AepvgZhx for <tsvwg@ietfa.amsl.com>; Mon, 2 Aug 2021 11:12:46 -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 4E7DD3A13D5 for <tsvwg@ietf.org>; Mon, 2 Aug 2021 11:12:45 -0700 (PDT)
Received: from pb-smtp2.pobox.com (unknown [127.0.0.1]) by pb-smtp2.pobox.com (Postfix) with ESMTP id 7A435D09A3 for <tsvwg@ietf.org>; Mon, 2 Aug 2021 14:12:41 -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:content-type; s=sasl; bh=PKXeTAu76ShEmwK31feU+8vJxWcs6p5mGSf +XtJD8ko=; b=TJ7HLFrxSfls/qNwGRV9rd1jJGyCcNQZRlnGLHU1eFLXBF/YChO Al+cQdfamD+lWDb2o+unsFfmWEbyvlmo2s8cxfBQdSwZPGZAlh4BsPD//U8g5KZ+ pHCzQKGLpEn4N/Xln5O8FO4yZ/15zrb6Yv2ewqH60+bRMZxUQcgMKJr0=
Received: from pb-smtp2.nyi.icgroup.com (unknown [127.0.0.1]) by pb-smtp2.pobox.com (Postfix) with ESMTP id 72ED7D09A2 for <tsvwg@ietf.org>; Mon, 2 Aug 2021 14:12:41 -0400 (EDT) (envelope-from heard@pobox.com)
Received: from mail-pj1-f51.google.com (unknown [209.85.216.51]) (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 E87CAD09A0 for <tsvwg@ietf.org>; Mon, 2 Aug 2021 14:12:40 -0400 (EDT) (envelope-from heard@pobox.com)
Received: by mail-pj1-f51.google.com with SMTP id u9-20020a17090a1f09b029017554809f35so78589pja.5 for <tsvwg@ietf.org>; Mon, 02 Aug 2021 11:12:40 -0700 (PDT)
X-Gm-Message-State: AOAM530dJRHsIKNU5dqyaQqYf/rf7Y/LI6M71h+cUrCJ6+xE1rqQd2T2 ZLjKpKLDmt2TuHwfd0JMRxhEBmA2N2VJR8u5uu0=
X-Google-Smtp-Source: ABdhPJz6IpcYRSSx0HpOTQB52dfv4O8IYjxyKyTN1fiMqbYnIeI6ANzC/gNfn4HowBbc+TSF+lXk2zdXdw6qaYTQZE4=
X-Received: by 2002:a17:90a:f68f:: with SMTP id cl15mr157438pjb.234.1627927960039; Mon, 02 Aug 2021 11:12:40 -0700 (PDT)
MIME-Version: 1.0
References: <A0932E7C-183B-41EF-B2AA-838FC45A087E@strayalpha.com> <28339CB5-2C9D-4870-9F25-07D6BBF43BDD@strayalpha.com> <CACL_3VEo75pKTOhizO1AhvqW7vCkOnaerDi6UNRA6e5K5mKYfQ@mail.gmail.com> <F35E0828-1F8F-4D7C-A570-32A2F47F773F@strayalpha.com> <CACL_3VFdzrTXZ8rAGPF=hXJ56zwy9KRxqERO_9doVUB4wFft4g@mail.gmail.com> <CALx6S37XLfGBFVMCAhbFjKfsRrevbzOPxP9CT28cpzmzQRBwPw@mail.gmail.com>
In-Reply-To: <CALx6S37XLfGBFVMCAhbFjKfsRrevbzOPxP9CT28cpzmzQRBwPw@mail.gmail.com>
From: "C. M. Heard" <heard@pobox.com>
Date: Mon, 02 Aug 2021 11:12:28 -0700
X-Gmail-Original-Message-ID: <CACL_3VGBp5ZcCvYRtmzxjC9X_Sov39QdJWjbShSdwKxiKCZPTw@mail.gmail.com>
Message-ID: <CACL_3VGBp5ZcCvYRtmzxjC9X_Sov39QdJWjbShSdwKxiKCZPTw@mail.gmail.com>
To: Tom Herbert <tom@herbertland.com>, Joseph Touch <touch@strayalpha.com>, TSVWG <tsvwg@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000c735b805c89783f2"
X-Pobox-Relay-ID: 39D6AA38-F3BD-11EB-9F6C-FD8818BA3BAF-06080547!pb-smtp2.pobox.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/HWSfxN-9LPNsbAthkBAFnE_nQ5E>
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: Mon, 02 Aug 2021 18:12:51 -0000
On Mon, Aug 2, 2021 at 7:38 AM Tom Herbert wrote: > No, it's not simpler for an implementation. In the current design > options are in trailers for legacy mode and headers in non-legacy mode > so by definition we need divergent code paths code paths for those two > case. In the non-legacy mode case we need to support both options in > headers and options in trailers within the same packet which > contradicts the principle of having fewer ways to do the same thing. > In any case, having divergent code paths isn't a problem for > implementations, the real complication to implementations would be the > requirement to process protocol trailers. Actually, in non-legacy mode options may appear BOTH in headers (for per-fragment options) AND in trailers (for the per-datagram options), and in the current draft the latter can fill a complete fragment. An upcoming revision is pending that will change this to allow the options trailer to span multiple fragments. As I understand it, the procedure (in concept) is to create a datagram in legacy format with its per-datagram options, and then split that up into fragments, each of which can have its own per-fragment options. The per-fragment options precede the corresponding fragment data; in the current draft, the per-datagram options follow the data in the final fragment. The upcoming revision will change this a bit ... FRAG END in the terminal FRAG option will be replaced with USER DATA LENGTH. In this case the per-datagram options will be carried within the fragment data. It won't be possible, in general, to tell where the user data ends and the options begin until the reassembly process is complete. Joe: please offer corrections if I have misrepresented your intent in the thumbnail sketch above. WG: I understand Joe's point about conceptual simplicity in a common format for all cases, but I have to agree with Tom's point that having divergent code paths isn't the main problem for implementations, overall complexity is, and I remain concerned about what I perceive as the ever-growing complexity of the fragmentation and reassembly specification for UDP options. Mike Heard
- [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