Re: [Taps] TAPS Documents for Charter Item 3

Michael Welzl <michawe@ifi.uio.no> Thu, 11 January 2018 08:23 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 9953C12EAAC for <taps@ietfa.amsl.com>; Thu, 11 Jan 2018 00:23:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.21
X-Spam-Level:
X-Spam-Status: No, score=-4.21 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 tRVZawQs9OX0 for <taps@ietfa.amsl.com>; Thu, 11 Jan 2018 00:23:29 -0800 (PST)
Received: from mail-out02.uio.no (mail-out02.uio.no [IPv6:2001:700:100:8210::71]) (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 CB14A12EA9F for <taps@ietf.org>; Thu, 11 Jan 2018 00:23:28 -0800 (PST)
Received: from mail-mx04.uio.no ([129.240.10.25]) by mail-out02.uio.no with esmtp (Exim 4.82_1-5b7a7c0-XX) (envelope-from <michawe@ifi.uio.no>) id 1eZY8z-0005Pt-LS; Thu, 11 Jan 2018 09:23:25 +0100
Received: from [160.80.82.29] by mail-mx04.uio.no with esmtpsa (TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256) user michawe (Exim 4.82_1-5b7a7c0-XX) (envelope-from <michawe@ifi.uio.no>) id 1eZY8y-0006SQ-I4; Thu, 11 Jan 2018 09:23:25 +0100
From: Michael Welzl <michawe@ifi.uio.no>
Message-Id: <E2E5D336-27BF-4F83-BECD-0589FC2769AB@ifi.uio.no>
Content-Type: multipart/alternative; boundary="Apple-Mail=_7AB5314B-282E-48C4-934F-BD9E0611B736"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Date: Thu, 11 Jan 2018 09:23:24 +0100
In-Reply-To: <19E34FCD-7BD6-41DB-8830-C376CF6B0623@apple.com>
Cc: "taps@ietf.org" <taps@ietf.org>
To: Tommy Pauly <tpauly@apple.com>
References: <19E34FCD-7BD6-41DB-8830-C376CF6B0623@apple.com>
X-Mailer: Apple Mail (2.3273)
X-UiO-SPF-Received: Received-SPF: neutral (mail-mx04.uio.no: 160.80.82.29 is neither permitted nor denied by domain of ifi.uio.no) client-ip=160.80.82.29; envelope-from=michawe@ifi.uio.no; helo=[160.80.82.29];
X-UiO-Spam-info: not spam, SpamAssassin (score=-5.0, required=5.0, autolearn=disabled, AWL=0.044, HTML_MESSAGE=0.001, UIO_MAIL_IS_INTERNAL=-5, uiobl=NO, uiouri=NO)
X-UiO-Scanned: F4EBC391DFF2B36CF22D78CB392AD637E1178F15
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/25I5fPv_URsHtmlvBgL4eNyo11o>
Subject: Re: [Taps] TAPS Documents for Charter Item 3
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.22
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: Thu, 11 Jan 2018 08:23:31 -0000

Hi Tommy,

A few answers below:

> On Jan 10, 2018, at 6:11 PM, Tommy Pauly <tpauly@apple.com> wrote:
> 
> Hello TAPS,
> 
> In Singapore, there was much discussion about where we go after the minset drafts, and what documents will form charter item 3:
> 
> 3) Specify experimental support mechanisms to provide the Transport 
> Services identified in work item 2. This document will explain 
> how to select and engage an appropriate protocol and how to 
> discover which protocols are available for the selected service 
> between a given pair of end points. Further, it will provide a 
> basis for incremental deployment. Work on this document will 
> begin when the TAPS Transport Services have been specified.
> 
> Since it would be good to get convergence and adoption of documents in London, I’d like to take a stab at how we can structure the WG documents and start a discussion on this list to decide our collective approach.
> 
> At a high level, based on the work of NEAT, Post Sockets, Happy Eyeballs, Socket Intents, etc, it seems like the “support mechanisms” for TAPS are converging into categories (a) how to expose functionality in an Abstract API and (b) guidance on how to implement a library that provides TAPS functionality. These two categories are not unrelated, but have different audiences; Abstract APIs are aimed at adopters of a TAPS system, while the implementation guidance aspects are aimed at library and system implementers. The high-level concepts that bind these together form the overall TAPS architecture.
> 
> Looking at things in this way, I could imagine three documents, which would form the capstone of the TAPS work
> 1) TAPS Architecture: high level explanation of the approach and goals, how the API and implementations relate, and how the system is derived from the protocol surveys and minset. Defines consistent terminology for concepts used in the other documents.
> 2) TAPS API: document aimed at adopters taking advantage of a TAPS system: configuration, initiation of channels, listening/responding, data transfer, and maintenance.
> 3) TAPS Implementation Guide: document aimed at implementers on how to bring up connections (handling a multiplicity of paths, endpoints, and protocols), sending and receiving data through protocol stack instances, and interpreting configuration and system policy into decisions.

Funny, I have also been thinking about item 3 in exactly this way for a long time … and I believe we two are not the only ones.
This split really seems quite natural.


> I believe that many (or all) of the outstanding documents we have in the WG already fall into one or more of the categories. Here’s a table with the three proposed documents as 1, 2, 3, and three aspects of a TAPS system/architecture as A, B, C:
> 
> 
> A
> B
> C
> 1. TAPS Architecture
> Connection Establishment
> Data transfer
> Policy and Path Selection
> 2. TAPS API
> Initiator/Listener/Responder
> Send/Receive
> Intents and configuration
> 3. TAPS Implementation Guide
> Protocol Racing, Path Racing, Happy Eyeballs
> Protocol Stack Instance
> Policy engine
> 
> In this table, we could see the existing documents contributing aspects to certain blocks:
> 
> draft-fairhurst-taps-neat: 1A, 1B, 1C, 2A, 2B, 2C, 3C
> draft-trammell-taps-post-sockets: 1A, 1B, 1C, 2A, 2B, (2C), (3B)
> draft-pauly-taps-guidelines: 3A, (1C)
> draft-grinnemo-taps-he: 3A
> draft-tiesel-taps-socketintents: 2C

I agree with this rough assessment. This table is good to think about!
I think draft-tiesel-taps-communitgrany is missing for 1)  (not sure if it’s A / B / C, but it’s about terminology)


> This is a rough assignment and not necessarily exhaustive, but the point is that much of the content is probably already there is some form, and can be reinterpreted into these documents.
> 
> What do people think about this approach? Any aspects that are missed here that would need to be separate documents, or new sections across the documents?

Personally I like the approach but I’d caution that we need a tight connection between the lines in the table. For everything we do, we must make sure it’s implementable, and explain how. Hence, a document describing API primitives should also clarify how these primitives could be implemented - with the split you describe above, by pointing at a specific section for each functionality in a "line 3” document (if these things really are going to be separate documents?).

Cheers,
Michael