Re: [Taps] Artart early review of draft-ietf-taps-interface-13
Michael Welzl <michawe@ifi.uio.no> Tue, 21 September 2021 11:16 UTC
Return-Path: <michawe@ifi.uio.no>
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 021B63A10D9; Tue, 21 Sep 2021 04:16:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 JRuLOxdEpLIa; Tue, 21 Sep 2021 04:16:14 -0700 (PDT)
Received: from mail-out04.uio.no (mail-out04.uio.no [129.240.10.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EEFBC3A10D7; Tue, 21 Sep 2021 04:16:08 -0700 (PDT)
Received: from mail-mx10.uio.no ([129.240.10.27]) by mail-out04.uio.no with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from <michawe@ifi.uio.no>) id 1mSdkm-006q24-DA; Tue, 21 Sep 2021 13:16:00 +0200
Received: from boomerang.ifi.uio.no ([129.240.68.135]) by mail-mx10.uio.no with esmtpsa (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) user michawe (Exim 4.94.2) (envelope-from <michawe@ifi.uio.no>) id 1mSdkk-0007IK-Mw; Tue, 21 Sep 2021 13:16:00 +0200
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Michael Welzl <michawe@ifi.uio.no>
In-Reply-To: <163191223519.9482.8670238243564452665@ietfa.amsl.com>
Date: Tue, 21 Sep 2021 13:15:57 +0200
Cc: art@ietf.org, draft-ietf-taps-interface.all@ietf.org, taps@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <5B6FB4A8-86F1-42E5-B064-90CB993D8447@ifi.uio.no>
References: <163191223519.9482.8670238243564452665@ietfa.amsl.com>
To: Robert Sparks <rjsparks@nostrum.com>
X-Mailer: Apple Mail (2.3445.9.1)
X-UiO-SPF-Received: Received-SPF: neutral (mail-mx10.uio.no: 129.240.68.135 is neither permitted nor denied by domain of ifi.uio.no) client-ip=129.240.68.135; envelope-from=michawe@ifi.uio.no; helo=boomerang.ifi.uio.no;
X-UiO-Spam-info: not spam, SpamAssassin (score=-5.0, required=5.0, autolearn=disabled, UIO_MAIL_IS_INTERNAL=-5)
X-UiO-Scanned: A59C7020E342D03C1B2CEFB58F52489BAB8CD341
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/PNefp1uKQpPzovHAt0TTZZtW97o>
Subject: Re: [Taps] Artart early review of draft-ietf-taps-interface-13
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.29
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, 21 Sep 2021 11:16:19 -0000
> On 17 Sep 2021, at 22:57, Robert Sparks via Datatracker <noreply@ietf.org> wrote: > > Reviewer: Robert Sparks > Review result: On the Right Track > > This is an art-art early review of draft-ietf-taps-interface > > This document reads fairly well. I have some structural concerns (see the early > review of the architecture document). In particular I think this document > contains the actual definition of the architecture and some of that is > inferential. > > There are several places where the language in this document, once published as > an RFC, will not age well. Search for occurrences of the word "modern" and > consider writing less to motivate and more to define. Reconsider the use of > terms like "traditional". > > Reconsider words like "atop" and "underneath" when talking about interface > boundaries. (Also, I don't know what it means to be atop an architecture.) > > I cringe at systems that define Integers to be integers and some other > enumerated things ("special values"). Is it necessary to define things this > way? I understand it's currently typical to have this behavior in the APIs of > the protocols this system is attempting to abstract, but is it impossible to > stop propagating that kind of type confusion? This API could move the things > special values are being used for into separate arguments for example. > > The definition of Numeric in 1.1 is circular. > > The concept of cloning is used in the overview without introduction. I've > suggested an earlier discussion of it in the architecture document, which would > help, but even in this document, there should be an introduction or forward > reference. > > As you can tell, I don't think the documents do what the first sentence of the > API summary claims. This document would not lose anything if you deleted the > sentence. > > At the end of the API summary, there's a paragraph that looks like a "Structure > of this document" discussion - should it be in a different place? The list in > the paragraph is odd - why is Section 8, for instance, not in the list? > > Consider showing an explicit context in the Send in the example in 3.1.1 - it > would make the reader guess less to wait to introduce implicit contexts later. > > In the text version of the document, the last paragraph before 3.1.3 has some > markup (~~~) that has leaked through. > > 3.1.3 has a comment that's too long for the text version > > The first sentence-paragraph of section 4 is complex. Please break it apart. > > At the discussion of Transport Property Names at 4.1, I think you need to be > more specific than "alphanumeric". Explicitly list what characters are allowed. > > The "reformatted where necessary" part of the requirement in the last paragraph > of 4.1 makes the MUST NOT almost impossible to conform to. I think I understand > what the paragraph is trying to say, but the current formulation leaves the > reader guessing. I think you are trying to say "Avoid using any of the terms > listed as keywords in the protocol numbers registry as any part of a vendor or > implementation-specific property name". > > Do you really mean "host" at "(endpoints) SHOULD represent the same host" in > section 6, or do you mean something more like service, given that an endpoint > may configured with a DNS name? > > I think there's a need for more discussion and clarity around the restriction > that "An Endpoint cannot have multiple identifiers of a same type set." Why > not? You effectively are letting the endpoint have (potentially) multiple IP > addresses when you create it with an identifier that is a DNS name. This feels > like an artificial, inconsistent, restriction given the rest of the document > (look at the 3rd paragraph of 6.1). > > Would there be any benefit of having something like "WithServiceName" to > qualify a specifier for use with NAPTR/SRV? Or is the thinking that the > resolution of the thing handed down through WithHostname is restricted to > A/AAAA? > > Why does the API have both the ability to say LocalSpecifier.WithInterface and > to set interface requirements on TransportProperties? Why not just keep the > latter and remove the former? > > I would really like to see an example of how an application that relies on ICE > learns about new candidates as they are discovered - the callback pattern is > not clear to me yet. > > There are several places where the document says "Changes to a <foo> after > func() has been called do not have any connection on existing <bar>s". This > feels like an opportunity for more clarity about what a <foo> really is. The > document uses the word Object, and maybe there's an assumption that there's a > shared understanding of what the properties of an Object are. Being explicit > with something like "An Object is a collection of properties that > implementations of the API read and use..." to avoid the "here's a chunk of > memory that can get passed into the API that it can operate on, and expect the > caller to see the effects of the operation" interpretation. I _think_ what the > current text is trying to say is that the user of the API should assume the > implementation of the API made its own private copy of the Object at the point > of the given func() call and that it will not see any changes to the copy the > user has at any later point. But then there's some text that looks like "Once a > <foo> has been used with a func(), it is invalid to modify any of its > properties." So... > > I'll have to read the document yet another time, perhaps, but after the few > times I went through it for this review, I'm still not clear on how/whether > connections are grouped because of actions from the remote end(s). If so, how > does the user learn about the grouping? Does it have to poll > Connection.GroupedConnections() every time its told of a new Connection? > > In section 8's third paragraph, the MUST NOT is not a good use of 2119/8174. > Are you trying to say protocol specific property _names_ must not be reused > across different protocols? > > At the last bullet before section 8.1, are you RFC7556 being pointed to as an > example way one might derive properties? If so, adjust the language to make it > clear that its an example. > > In 8.1.1 the second sentence is convoluted. Is there a way to restate it > without as many nots, nons, an different zeros? > > At 8.1.2 you say lower values have higher priorities for connPrio. But later, > at msgPrio, higher values have higher priority, and in the examples where you > speak of the interaction of connPrio and msgPrio, you imply that higher means > higher for _both_ properties. Please check for consistency and clarify. > > Is the "scope" used for message contexts (9.1.1) ever anything but a framer? If > not, could this section just say framer? > > At the discussion of Send Events, I worry that the API is closing a door on > allowing the api to channel information about what's happening because of a > Send that may be available from future transports. Maybe such things would be > communicated as events from Connection instead (like Connection->SoftError), > even if they happened to be Send specific? I added this as a set of issues in github, where we can also discuss whether/how to resolve these: https://github.com/ietf-tapswg/api-drafts/issues Michael
- [Taps] Artart early review of draft-ietf-taps-int… Robert Sparks via Datatracker
- Re: [Taps] Artart early review of draft-ietf-taps… Michael Welzl