Re: [Udp35] TAPS BOF and moving the transport API forward

Brian Trammell <ietf@trammell.ch> Thu, 22 May 2014 12:05 UTC

Return-Path: <ietf@trammell.ch>
X-Original-To: udp35@ietfa.amsl.com
Delivered-To: udp35@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 326D01A01CB for <udp35@ietfa.amsl.com>; Thu, 22 May 2014 05:05:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level:
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
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 cUpkEaHTrsCG for <udp35@ietfa.amsl.com>; Thu, 22 May 2014 05:05:50 -0700 (PDT)
Received: from trammell.ch (trammell1.nine.ch [5.148.172.66]) by ietfa.amsl.com (Postfix) with ESMTP id 139B81A01CA for <udp35@ietf.org>; Thu, 22 May 2014 05:05:50 -0700 (PDT)
Received: from [IPv6:2001:67c:10ec:2a49:8000::8] (unknown [IPv6:2001:67c:10ec:2a49:8000::8]) by trammell.ch (Postfix) with ESMTPSA id 8FEFB1A0151; Thu, 22 May 2014 14:05:17 +0200 (CEST)
Content-Type: multipart/signed; boundary="Apple-Mail=_36DBD901-5475-4938-A5B0-3437E47EA34B"; protocol="application/pgp-signature"; micalg="pgp-sha512"
Mime-Version: 1.0 (Mac OS X Mail 7.2 \(1874\))
From: Brian Trammell <ietf@trammell.ch>
In-Reply-To: <A8BF265F-DAEB-426C-9616-0A60AAD6A35F@ifi.uio.no>
Date: Thu, 22 May 2014 14:05:16 +0200
Message-Id: <966E90E6-5DD3-4897-8891-9ABBB3203274@trammell.ch>
References: <537B6932.9050809@erg.abdn.ac.uk> <537BA5CF.4000602@gmail.com> <2f67fd4139a3a40a2df96f1e7db57a95.squirrel@www.erg.abdn.ac.uk> <537DD281.5030408@gmail.com> <A8BF265F-DAEB-426C-9616-0A60AAD6A35F@ifi.uio.no>
To: Michael Welzl <michawe@ifi.uio.no>
X-Mailer: Apple Mail (2.1874)
Archived-At: http://mailarchive.ietf.org/arch/msg/udp35/qn-gtBhegKjbVKC9UiLbFARpEmc
Cc: Gorry Fairhurst <gorry@erg.abdn.ac.uk>, Martin Stiemerling <mls.ietf@gmail.com>, Spencer Dawkins <spencerdawkins.ietf@gmail.com>, udp35@ietf.org
Subject: Re: [Udp35] TAPS BOF and moving the transport API forward
X-BeenThere: udp35@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Life beyond UDP <udp35.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/udp35>, <mailto:udp35-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/udp35/>
List-Post: <mailto:udp35@ietf.org>
List-Help: <mailto:udp35-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/udp35>, <mailto:udp35-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 22 May 2014 12:05:53 -0000

hi Michael,

(copying the udp35 list)

On 22 May 2014, at 12:56, Michael Welzl <michawe@ifi.uio.no> wrote:

> Hi,
> 
> Here's a suggestion. I'm cc'ing the mailing list because in case you disagree this isn't helpful - after all I'm missing context of what happened at your retreat. But I do have a suspicion that we're all on the same page here, so I'll try a simple suggestion:
> 
> When I first approached the IETF, my take was to go bottom-up: define the services of existing IETF transports, create a protocol-independent socket API from that. Not because I think that this is what the long-term solution should be, but because I think this is needed as a starting point.

I see the starting point differently, though also bottom-up:

(1) define the dimensions of transport services...
   (1a) provided by existing IETF transports, and/or
   (1b) required by existing applications (e.g., there's a gap in RTCWEB here plugged by SCTP/DTLS)
(2) determine other combinations of these transport service dimensions that make sense (e.g. Minion occupies another spot in this space) 
(3) make recommendations for combining these dimensions in user-space transport protocols (in a way that leads to interoperable implementations of these; this is the "mix-ins" idea); this requires us to
   (3a) define a standard method for implementing user-space transport protocols that is deployable on the present Internet, preferably in a way that does not explicitly escalate the middlebox arms race.
(4) (possibly) make recommendations for the interface that implementations of (3) should provide to applications.

> At the Vancouver bar BOF, I was surprised that folks wanted more: support of higher-level APIs, not just being bound to current RFC-defined transports, etc. This is good, but it does create a larger space of work, and is potentially a much longer-term story, which is why I didn't think we could go there in the first place.
> 
> => would it now perhaps be the right time to split this into:

It seems to me that splitting the effort in to "things we can/should do now" and "things we are not sure about" is a very good idea. I have some detail-level disagreements with where to draw the line, I think.

> 1) an IETF TAPS WG that does a *socket* API extension only, based on an analysis of given transports, and a recommended way of implementing this (happy eyeballing ++ )

It seems like (1) and (2) above mostly overlap between the way we've been looking at this in udp35 and the path TAPS has taken; this intersection could be the scope for a WG-forming BoF or a direct WG formation, after a bit more discussion to nail down the differences. I'm concerned (as in the previous message) that doing this in a TSV area WG will keep us from getting good cross-area participation, so another possibility is forming an IAB program around this activity.

In any case (1) should definitely continue moving forward regardless of venue.

I'm not convinced building (4) makes a lot of sense without (3a). But discussing that further is what this list is for. :)

> 2) an IRTF activity of some sort that is a home for:
> - how to map higher-level APIs onto a lower socket API
> - how to define more general services ("give me low latency instead of high bandwidth")

I'm not sure what's different between these two points and "socket API extensions only" in the TAPS WG scope above?

> - what services could/should be defined, based on use cases, which aren't yet available

This third point covers my point 1b/2, and I think is also necessary to do earlier rather than later...

It seems like we're getting there...

Cheers,

Brian