Re: [Taps] TAPS Documents for Charter Item 3

Christopher Wood <christopherwood07@gmail.com> Thu, 18 January 2018 15:02 UTC

Return-Path: <christopherwood07@gmail.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 BC8A3126FB3 for <taps@ietfa.amsl.com>; Thu, 18 Jan 2018 07:02:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.749
X-Spam-Level:
X-Spam-Status: No, score=-1.749 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 I1ul2kD6loQH for <taps@ietfa.amsl.com>; Thu, 18 Jan 2018 07:02:17 -0800 (PST)
Received: from mail-qt0-x236.google.com (mail-qt0-x236.google.com [IPv6:2607:f8b0:400d:c0d::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 63E5F124217 for <taps@ietf.org>; Thu, 18 Jan 2018 07:02:17 -0800 (PST)
Received: by mail-qt0-x236.google.com with SMTP id o35so20751499qtj.13 for <taps@ietf.org>; Thu, 18 Jan 2018 07:02:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=zFYwu5YXS3VEam3WouVtH0x3J7vKN8Ll+/d0Wid9SQc=; b=tUNZ0xi1bNwJlay+QKKAgLDlrLrsH2rdAcEapOweeeMTKBCNKp3G1+XhFduYImsCi3 P63oL0Mx6EYSk9N+jpJqaEpd5t1oiYNsvJ5GxoQdO8JdXwRYvOItSQqn30QF2IhBQgSI yWsqJm8fHZcgzr6QneyGFuiTO1zeufcS+5HZiBXCx8AuEtmubfgxXTXx+vTjvmYiuIGK 18z0/6Y1nAAdrHlQheeVJdX+YBJ8KnYRr+b4RBUyXF8V9461ia7H4RRqfyVypEFQmVLN eoyRGBEhxTDjb6UxmfCg6zof31gFI9UL6zqDlVybjIrOJ5qQNFATh7bdQEorzZBJnTEo Vgjw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=zFYwu5YXS3VEam3WouVtH0x3J7vKN8Ll+/d0Wid9SQc=; b=O+ckxjD8PVRHEEphG1P0nkwynJ9M4hvAOznx8Pj3QSWkHD7xOil5O7RSiT1DJ1u0kw U1qRMPS8/vhc6CcxuvpxCXXwPcOmTOw0I6sKezI012iJLVI0RCmLeGHaRMJOjMvvv0wn ZIUrtgwHsxmW3uJbbeslODsHLGVGLZ9XhRwF+OiXDUIeZSYQ22e29FAE/dm/8vDetCDA 86eEcjCgl4YEwey9TMFnN5EYSJ691KTSJOCowa7GIglZMqdWjWF0ZbTQm9wXiTcZ8v9Q 1s3RpQgYxrF5KMScXOekozi0rKH4B5om1fQ4m7lnz4jyEApiOGyYlnXwB1Ro+37I5cK4 qdPw==
X-Gm-Message-State: AKwxytcIx2EGEKAryk6gzzyeW4t+dUBi19N4xlGICRr+mxeaNaif2JnJ bfYng+ebuuwCKC3JxTmRN2QR5GWAf+eOUP4zE6uknA==
X-Google-Smtp-Source: AH8x226bCxQXZ+et/ljc6zAX26+dm1M62/RSwhwQVbbVVqxd4rlEVwgNLD+YBTO3L+keSyMk7wNrsTOOd2FqtUuhCpU=
X-Received: by 10.55.20.228 with SMTP id 97mr5435900qku.24.1516287736388; Thu, 18 Jan 2018 07:02:16 -0800 (PST)
MIME-Version: 1.0
Received: by 10.140.16.245 with HTTP; Thu, 18 Jan 2018 07:02:14 -0800 (PST)
In-Reply-To: <FA73A113-B3BE-4E95-B3D1-76397E63ABD8@apple.com>
References: <19E34FCD-7BD6-41DB-8830-C376CF6B0623@apple.com> <E2E5D336-27BF-4F83-BECD-0589FC2769AB@ifi.uio.no> <FA73A113-B3BE-4E95-B3D1-76397E63ABD8@apple.com>
From: Christopher Wood <christopherwood07@gmail.com>
Date: Thu, 18 Jan 2018 07:02:14 -0800
Message-ID: <CAO8oSXkOmf_F89xsoxyZrABdinQq6OVD94zyWt_XpuOQMsUP1w@mail.gmail.com>
To: Tommy Pauly <tpauly@apple.com>
Cc: Michael Welzl <michawe@ifi.uio.no>, "taps@ietf.org" <taps@ietf.org>
Content-Type: multipart/alternative; boundary="001a11400fe4e79f7705630e3fae"
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/5nArg_gIRidTq-kF2YIIOYXm9hU>
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, 18 Jan 2018 15:02:20 -0000

On Thu, Jan 11, 2018 at 7:28 AM, Tommy Pauly <tpauly@apple.com> wrote:

>
>
> On Jan 11, 2018, at 12:23 AM, Michael Welzl <michawe@ifi.uio.no> wrote:
>
> 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.
>
>
> Good to hear that the split seems reasonable!
>
>
> 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)
>
>
> Yes, this wasn’t a complete list. Also note that I’m not proposing that we
> adopt any of the documents as they are, but specifically adopt WG items for
> Architecture, API, and Implementation, and we build those documents from
> the existing ones, taking the best parts of all of them.
>
>
>
> 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?).
>
>
> That’s why I’d propose having three documents that are adopted as a group,
> that are designed to go through the process together, and heavily reference
> one another. The definition of what goes in each should be based on the
> audience. One other comment I have for the API is that it should likely
> remain agnostic to specific protocols: it should say “here’s how to
> send/receive with these kind of options, and protocols will treat them like
> this”; but the implementation document can go into details of how those map
> down to specific protocol details in existing mappings (TCP, SCTP, UDP,
> QUIC). My two goals in saying this are:
> 1) The API should be simple and easy to understand for an adopter’s
> perspective
> 2) The API should be relevant despite changes in transport protocols de
> jour. Maybe in fifty years no one is using TCP anymore; we’ll publish
> implementation and mapping updates, but the API document should still be
> unchanged.
>

+1, especially for decoupling the API from specific protocols.

Best,
Chris