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

>
>
> On Jan 11, 2018, at 12:23 AM, Michael Welzl <mich...@ifi.uio.no> wrote:
>
> Hi Tommy,
>
> A few answers below:
>
> On Jan 10, 2018, at 6:11 PM, Tommy Pauly <tpa...@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
_______________________________________________
Taps mailing list
Taps@ietf.org
https://www.ietf.org/mailman/listinfo/taps

Reply via email to