Re: [tsvwg] UDP Options API document

"C. M. Heard" <heard@pobox.com> Tue, 14 September 2021 18:20 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 3E39B3A27ED for <tsvwg@ietfa.amsl.com>; Tue, 14 Sep 2021 11:20:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 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_MSPIKE_H2=-0.001, 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 cHYZsbVpjvHM for <tsvwg@ietfa.amsl.com>; Tue, 14 Sep 2021 11:20:16 -0700 (PDT)
Received: from pb-smtp21.pobox.com (pb-smtp21.pobox.com [173.228.157.53]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 625FA3A27EA for <tsvwg@ietf.org>; Tue, 14 Sep 2021 11:20:16 -0700 (PDT)
Received: from pb-smtp21.pobox.com (unknown [127.0.0.1]) by pb-smtp21.pobox.com (Postfix) with ESMTP id C617915CB49 for <tsvwg@ietf.org>; Tue, 14 Sep 2021 14:20:13 -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:cc:content-type; s=sasl; bh=YpmDg/WOPug8ePDfzMDuWLCVQ/wcMESc QJ+msv/ROIA=; b=HXcb5l+FHw1C99t9ke2YbTJbVkU8yXMNkruKAUE8XKTh1eL1 RugTS1y0ABOvoz6LCisSJXJ3NF/S9nQAQo1KFOSG+XQ/QDTeyDfYgztFMLQyTboi hXDr1i/3D1JFEFdORTe0RTsp/qHW4ZlHGtwi003kJ144X8p6gmT5oCS0XRo=
Received: from pb-smtp21.sea.icgroup.com (unknown [127.0.0.1]) by pb-smtp21.pobox.com (Postfix) with ESMTP id BF23815CB47 for <tsvwg@ietf.org>; Tue, 14 Sep 2021 14:20:13 -0400 (EDT) (envelope-from heard@pobox.com)
Received: from mail-pg1-f178.google.com (unknown [209.85.215.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pb-smtp21.pobox.com (Postfix) with ESMTPSA id 952DB15CB45 for <tsvwg@ietf.org>; Tue, 14 Sep 2021 14:20:11 -0400 (EDT) (envelope-from heard@pobox.com)
Received: by mail-pg1-f178.google.com with SMTP id u18so55330pgf.0 for <tsvwg@ietf.org>; Tue, 14 Sep 2021 11:20:11 -0700 (PDT)
X-Gm-Message-State: AOAM532enu2YzrVz2Q2DyWXj9oSq/DJwgYY+EFPqCyh2qSrWN2BbSV8f 7x08pO5Z8/2BOV6twsrSrV0W1KJhLsTZ7bdPLpM=
X-Google-Smtp-Source: ABdhPJxVbYrQEvBYTeSEfd52C/aUDELfaQTC3sO9QfDMzSEZsXccavoc3FPZxANsFWRc9YVBNEOIfo58eXQ8Wt180Vc=
X-Received: by 2002:a63:f80a:: with SMTP id n10mr16598704pgh.303.1631643610622; Tue, 14 Sep 2021 11:20:10 -0700 (PDT)
MIME-Version: 1.0
References: <20210903173836.GB56008@tom-desk.erg.abdn.ac.uk> <01879F07-2A69-448A-B6E9-CBEE77B7FD2F@strayalpha.com>
In-Reply-To: <01879F07-2A69-448A-B6E9-CBEE77B7FD2F@strayalpha.com>
From: "C. M. Heard" <heard@pobox.com>
Date: Tue, 14 Sep 2021 11:19:59 -0700
X-Gmail-Original-Message-ID: <CACL_3VEPRhAbX1Zxuw-PZTZ_ns9kG0XGQvL+fq1gNDWBuJC1Uw@mail.gmail.com>
Message-ID: <CACL_3VEPRhAbX1Zxuw-PZTZ_ns9kG0XGQvL+fq1gNDWBuJC1Uw@mail.gmail.com>
To: Joe Touch <touch@strayalpha.com>, Tom Jones <tom@erg.abdn.ac.uk>
Cc: TSVWG <tsvwg@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000cfafa505cbf8a1c0"
X-Pobox-Relay-ID: 6636B7CA-1588-11EC-A178-98D80D944F46-06080547!pb-smtp21.pobox.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/Yqw5Iy1vszBiYbD4ZaHxjh2sxic>
Subject: Re: [tsvwg] UDP Options API document
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, 14 Sep 2021 18:20:21 -0000

On Fri, Sep 3, 2021 at 10:35 AM Tom Jones wrote:

> It was raised today during the interim (I think by Carsten) that a clear
> API description is very important for real world adoption of a protocol.
> Michael Tuexen added that during the original SCTP standardisation a
> separate API draft made writing portable applications much easier.
>
> Let me start the discussion, should we provide a separate draft for UDP
> Options API or should this work happen inside the UDP Options draft?
>

I would like to see thorough and clear documentation in the base
specification of the ***services*** that are provided by UDP options.to the
application layer (or the higher layer protocol running on top of UDP).


On Sat, Sep 4, 2021 at 9:35 AM Joe Touch replied:

> As I mentioned during the meeting, there’s already an abstract API in the
> spirit of TCP's in section 8 of the draft, with a real-world example in
> Appendix A based on a preliminary implementation.
>
> It’s been there since draft-touch-tsvwg-udp-options-06, dated March 27,
> 2017.
>
> I don’t recall anyone commenting on that yet, though.
>

I took Tom's advice and read both RFC 8303 ("On the Usage of Transport
Features Provided by IETF Transport Protocols") and RFC 8304 ("Transport
Features of the User Datagram Protocol (UDP) and Lightweight UDP
(UDP-Lite)"). RFC 8303 (and RFC 8304) relied on existing, documented
application interface requirements and abstract APIs, and that Tom is
proposing to do something similar for UDP options, and asks whether we
should do that in the base spec or as a separate document. Note that RFC
8303, despite its title, deals substantively only with connection-oriented
transport protocols, and simply references RFC 8304 in its sections on
connectionless transport protocols.

I also heeded Joe's admonition to read the abstract API in the current
draft (I indeed have not paid attention to it or commented on it up to now).

My sense is that the existing abstract API is insufficient to serve as a
basis for something like an extended version of RFC 8304. But I also feel
that RFC 8304 somewhat misses the mark, since it does not adequately
distinguish what primitives should actually be per-datagram (i.e., figuring
as input parameters to send(), sendto(), or sendmsg() and output parameters
from recv(), recvfrom(), and recvmsg() or the like) versus what things
should be per-socket (and controlled by setsockopt() or the like).  I would
really like to see a complete laundry list written down, and I will take a
stab at it if I am asked.

Thanks,

Mike Heard