Re: [Taps] Lars Eggert's Discuss on draft-ietf-taps-interface-22: (with DISCUSS and COMMENT)

Tommy Pauly <tpauly@apple.com> Tue, 14 November 2023 17:17 UTC

Return-Path: <tpauly@apple.com>
X-Original-To: taps@ietfa.amsl.com
Delivered-To: taps@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 84982C1522A0 for <taps@ietfa.amsl.com>; Tue, 14 Nov 2023 09:17:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.104
X-Spam-Level:
X-Spam-Status: No, score=-2.104 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BdGLk-Aebzoq for <taps@ietfa.amsl.com>; Tue, 14 Nov 2023 09:17:40 -0800 (PST)
Received: from rn-mailsvcp-mx-lapp02.apple.com (rn-mailsvcp-mx-lapp02.apple.com [17.179.253.23]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B44F8C1522B9 for <taps@ietf.org>; Tue, 14 Nov 2023 09:17:40 -0800 (PST)
Received: from rn-mailsvcp-mta-lapp04.rno.apple.com (rn-mailsvcp-mta-lapp04.rno.apple.com [10.225.203.152]) by rn-mailsvcp-mx-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) with ESMTPS id <0S44003E6IO9D000@rn-mailsvcp-mx-lapp02.rno.apple.com> for taps@ietf.org; Tue, 14 Nov 2023 09:17:40 -0800 (PST)
X-Proofpoint-ORIG-GUID: qPiC6bOj-XZxCoCMhrHbF73VSYxxe_Cn
X-Proofpoint-GUID: qPiC6bOj-XZxCoCMhrHbF73VSYxxe_Cn
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.619, 18.0.987 definitions=2023-11-14_17:2023-11-14, 2023-11-14 signatures=0
X-Proofpoint-Spam-Details: rule=interactive_user_notspam policy=interactive_user score=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 bulkscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311060000 definitions=main-2311140132
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=from : message-id : content-type : mime-version : subject : date : in-reply-to : cc : to : references; s=20180706; bh=tbtdurBTxwSbB6/hpjW6GNwsbhrWFEYakN3bR68EWO8=; b=RdoyEt0t5BF1+oK14lqBZ2mlJOms1Slp6fQU52vwKWo552aQ0EaT0wY6PR6GtuAyrOhm AUKVOzEDS01J8CfGUHOQ3MWR6gNVSoQB1/P7o52xTPX5puG7T/KymAgNlPFfx1ZiS+Q4 WFmUhPB2BNl3vzLNo8Gdg9iv/dD4u3C+w6tkcEmz1gQspyB2ZBzd+81ci8o3ZEmz3dUr FmvY2kh9AjwPDdpQ5rkYxWcbdJKPPD/6kJa+zpbbsgwuscxDVscGYXzjU2KIw5cXvFzT aP4CMMkNkRzje2epc8hYZweqbT5aCzM7zHjAVtNG27uZn+rdSyOP/5uHGZbrmjpp5A/3 dA==
Received: from rn-mailsvcp-mmp-lapp02.rno.apple.com (rn-mailsvcp-mmp-lapp02.rno.apple.com [17.179.253.15]) by rn-mailsvcp-mta-lapp04.rno.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) with ESMTPS id <0S4400WW3IOZ8G20@rn-mailsvcp-mta-lapp04.rno.apple.com>; Tue, 14 Nov 2023 09:17:25 -0800 (PST)
Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp02.rno.apple.com by rn-mailsvcp-mmp-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) id <0S4400300IH5IC00@rn-mailsvcp-mmp-lapp02.rno.apple.com>; Tue, 14 Nov 2023 09:17:24 -0800 (PST)
X-Va-A:
X-Va-T-CD: e52bc99798a6b8983ba7b5634300aea3
X-Va-E-CD: af5bdc872ffde92b8e291b969cf523ac
X-Va-R-CD: ec08cce7c0fef839f4c668287a712400
X-Va-ID: 61dfae8e-65b5-4d64-95e3-2ddbfd2da41b
X-Va-CD: 0
X-V-A:
X-V-T-CD: e52bc99798a6b8983ba7b5634300aea3
X-V-E-CD: af5bdc872ffde92b8e291b969cf523ac
X-V-R-CD: ec08cce7c0fef839f4c668287a712400
X-V-ID: 7ef0e6f7-8e58-4445-8cfd-0ec9a97e822b
X-V-CD: 0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.619, 18.0.987 definitions=2023-11-14_16:2023-11-14, 2023-11-14 signatures=0
Received: from smtpclient.apple ([17.234.111.152]) by rn-mailsvcp-mmp-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) with ESMTPSA id <0S4400CHQIOZ2T00@rn-mailsvcp-mmp-lapp02.rno.apple.com>; Tue, 14 Nov 2023 09:17:23 -0800 (PST)
From: Tommy Pauly <tpauly@apple.com>
Message-id: <A1CF408B-C691-4003-A989-D0F3284B4E2F@apple.com>
Content-type: multipart/alternative; boundary="Apple-Mail=_B04BBB2C-8F06-4CD6-B3E0-CCE74A8DB57E"
MIME-version: 1.0 (Mac OS X Mail 16.0 \(3774.300.22\))
Date: Tue, 14 Nov 2023 09:17:13 -0800
In-reply-to: <169408439315.13814.3746604129872399062@ietfa.amsl.com>
Cc: The IESG <iesg@ietf.org>, draft-ietf-taps-interface@ietf.org, taps-chairs@ietf.org, taps@ietf.org, anna.brunstrom@kau.se
To: Lars Eggert <lars@eggert.org>
References: <169408439315.13814.3746604129872399062@ietfa.amsl.com>
X-Mailer: Apple Mail (2.3774.300.22)
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/5M0Loq7Esh_0Oe4-2x87nX1aMN0>
Subject: Re: [Taps] Lars Eggert's Discuss on draft-ietf-taps-interface-22: (with DISCUSS and COMMENT)
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "IETF Transport Services \(TAPS\) Working Group" <taps.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/taps>, <mailto:taps-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/taps/>
List-Post: <mailto:taps@ietf.org>
List-Help: <mailto:taps-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/taps>, <mailto:taps-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Nov 2023 17:17:45 -0000

Hi Lars,

Thanks for your detailed review! The authors appreciate the helpful comments.

The authors have just posted a -23 version that addresses the IESG comments, including your DISCUSS. https://www.ietf.org/archive/id/draft-ietf-taps-interface-23.html

Below, I’ve added inline responses to each DISCUSS point.

Best,
Tommy (on behalf of the authors)

> On Sep 7, 2023, at 3:59 AM, Lars Eggert via Datatracker <noreply@ietf.org> wrote:
> 
> Lars Eggert has entered the following ballot position for
> draft-ietf-taps-interface-22: Discuss
> 
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
> 
> 
> Please refer to https://www.ietf.org/about/groups/iesg/statements/handling-ballot-positions/ 
> for more information about how to handle DISCUSS and COMMENT positions.
> 
> 
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-taps-interface/
> 
> 
> 
> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
> 
> # GEN AD review of draft-ietf-taps-interface-22
> 
> CC @larseggert
> 
> Thanks to Thomas Fossati for the General Area Review Team (Gen-ART) review
> (https://mailarchive.ietf.org/arch/msg/gen-art/Uohwi2MvOOwswMfkE5w4mt9IZKE).
> 
> ## Discuss
> 
> ### Section 4.1, paragraph 8
> ```
>     *  For IETF protocols, the name of a Protocol-specific Property
>        SHOULD be specified in an IETF document published in the RFC
>        Series.
> ```
> For IETF protocols, i.e., protocols published on the IETF RFC stream,
> those names must IMO be also specified in IETF-stream RFCs. I see no
> reason to let other RFC streams make definitions for IETF protocols.

This now reads: "For IETF protocols, the name of a Protocol-specific Property SHOULD be specified in an IETF document published in the RFC Series after IETF review.”

> 
> ### Section 6.1, paragraph 13
> ```
>     *  Interface name (string), e.g., to qualify link-local or multicast
>        addresses (see Section 6.1.2 for details):
> 
>     LocalSpecifier.WithInterface("en0")
> ```
> How does an application learn which interface name strings are
> allowed/available on the system? The API doesn't seem to provide this
> information. Also, based on the examples, there seem to be special
> names such as "any" - where are those defined and how are conflicts
> with names used on the system avoided?

This is addressed with https://github.com/ietf-tapswg/api-drafts/pull/1456

This updates the text to allow the “Resolve” functionality for Rendezvous to be used generically to enumerate interfaces/addresses.

> 
> ### Section 6.1.3, paragraph 6
> ```
>     In order to scope an alias to a specific transport protocol, an
>     Endpoint can specify a protocol identifier.
> 
>     AlternateRemoteSpecifier.WithProtocol(QUIC)
> ```
> This is the first and only time protocol identifiers are used. What
> are they defined to be?

> 
> ### Section 6.1.3, paragraph 9
> ```
>     The following example shows a case where example.com has a server
>     running on port 443, with an alternate port of 8443 for QUIC.
> 
>     RemoteSpecifier := NewRemoteEndpoint()
>     RemoteSpecifier.WithHostname("example.com")
>     RemoteSpecifier.WithPort(443)
> 
>     QUICRemoteSpecifier := NewRemoteEndpoint()
>     QUICRemoteSpecifier.WithHostname("example.com")
>     QUICRemoteSpecifier.WithPort(8443)
>     QUICRemoteSpecifier.WithProtocol(QUIC)
> 
>     RemoteSpecifier.AddAlias(QUICRemoteSpecifier)
> ```
> Why does the `RemoteSpecifier` definition not contain a `WithProtocol`
> clause for TCP/TLS? And what would that look like, given that TCP/TLS
> is a protocol combination?

These comments around protocol-specific endpoints are addressed with https://github.com/ietf-tapswg/api-drafts/pull/1408 and https://github.com/ietf-tapswg/api-drafts/pull/1451

The text now clarifies that the values for the protocol scoping here are implementation-provided enumerations.

"To scope an Endpoint to apply conditionally to a specific transport
 protocol (such as defining an alternate port to use when QUIC
 is selected, as opposed to TCP), an Endpoint can be
 associated with a protocol identifier. Protocol identifiers are
 objects or enumeration values provided by the Transport
 Services API, which will vary based on which protocols are
implemented in a particular system."

The reason to show one protocol being specified with an override is to show how there’s a default endpoint that the connection should use, and it should conditionally load an alternate when using a particular protocol. This then doesn’t constrain the protocol stacks being used, but only customizes the endpoint in case a particular protocol is loaded.

> 
> ### Section 6.2, paragraph 0
> ```
>  6.2.  Specifying Transport Properties
> ```
> This section defines a boatload of different properties, many of which
> are interacting with each other due to how our current transport
> protocols are implemented. Future interactions, due to future
> transport protocols potentially becoming available, are undefined. I
> question how a potential programmer is supposed to make informed
> choices here without needing to be aware of all of this
> background/baggage?

Please see comments on https://github.com/ietf-tapswg/api-drafts/issues/1334

"Complex interactions may exist between socket options in the existing BSD sockets API.
There are also implementations of TAPS systems available, at least one of which is fairly comprehensive.
Future interactions of properties of future protocols are also unclear in the BSD sockets API.

In a sense, we offer a safer set of options than BSD sockets, as we have constrained the generic ones to the set of properties that do not constrain selection amongst existing protocols. Everything that is protocol-specific goes in its own protocol namespace and only applies when this protocol is selected. The intent is for future protocol-specific options to also be categorized that way. We cannot guarantee that no future transport protocol will somehow be constrained by our generic properties, but the analysis in our prior RFCs (specifically the minset RFC) leads us to believe that we have chosen a workable subset."

> 
> ### Section 8.1.5, paragraph 4
> ```
>     Default:  Weighted Fair Queueing (see Section 3.6 in [RFC8260])
> 
>     This property specifies which scheduler should be used among
>     Connections within a Connection Group, see Section 7.4.  A set of
>     schedulers is described in [RFC8260].
> ```
> What is this scheduler scheduling? 7.4 is silent on this. I'm guessing
> this is related to `connPriority`?

Yes, thank you; we clarified this in the text by adding a reference to the conn priority with https://github.com/ietf-tapswg/api-drafts/pull/1393

> 
> ### Section 9.1.3, paragraph 9
> ```
>     If a Message Property contradicts a Connection Property, and if this
>     per-Message behavior can be supported, it overrides the Connection
>     Property for the specific Message.  For example, if reliability is
>     set to Require and a protocol with configurable per-Message
>     reliability is used, setting msgReliable to false for a particular
>     Message will allow this Message to be sent without any reliability
>     guarantees.  Changing the msgReliable Message Property is only
>     possible for Connections that were established enabling the Selection
>     Property perMsgReliability.
> ```
> How is this going to work in the opposite case, i.e., if an unreliable
> connection was set up and then some messages are passed in which
> require reliable transmission? At connection open, the stack may have
> chosen a transport protocol that cannot support reliable
> transmission? (Also, I think this general principle of message >
> connection has other issues for other properties.)

This is addressed with https://github.com/ietf-tapswg/api-drafts/pull/1397, which clarifies:

"If the contradicting Message Property
 cannot be supported by the Connection (such as requiring reliability
 on a Connection that uses an unreliable protocol), the `Send` action
 will result in a `SendError` event."
>