Re: [Taps] On Profiles for TAPS Preconnections

Anna Brunström <anna.brunstrom@kau.se> Tue, 23 July 2019 20:12 UTC

Return-Path: <anna.brunstrom@kau.se>
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 8C308120910 for <taps@ietfa.amsl.com>; Tue, 23 Jul 2019 13:12:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.298
X-Spam-Level:
X-Spam-Status: No, score=-4.298 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FROM_EXCESS_BASE64=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=kau.se
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 vSYdfbNIfskX for <taps@ietfa.amsl.com>; Tue, 23 Jul 2019 13:12:10 -0700 (PDT)
Received: from smtp1.kau.se (smtp1.kau.se [130.243.21.250]) by ietfa.amsl.com (Postfix) with ESMTP id BBD8412036D for <taps@ietf.org>; Tue, 23 Jul 2019 13:12:09 -0700 (PDT)
Received: from e-mailfilter01.sunet.se (e-mailfilter01.sunet.se [192.36.171.201]) by smtp1.kau.se (Postfix) with ESMTP id C27C618502FE; Tue, 23 Jul 2019 22:12:07 +0200 (CEST)
Received: from Exch-A2.personal.kau (exch-a2.kau.se [130.243.19.83]) by e-mailfilter01.sunet.se (8.14.4/8.14.4/Debian-8+deb8u2) with ESMTP id x6NKC5e4081061 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=FAIL); Tue, 23 Jul 2019 22:12:06 +0200
Received: from Exch-A2.personal.kau (130.243.19.83) by Exch-A2.personal.kau (130.243.19.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.1591.10; Tue, 23 Jul 2019 22:11:52 +0200
Received: from Exch-A2.personal.kau ([fe80::d09:7e68:ff95:4a60]) by Exch-A2.personal.kau ([fe80::d09:7e68:ff95:4a60%7]) with mapi id 15.01.1591.017; Tue, 23 Jul 2019 22:11:52 +0200
From: Anna Brunström <anna.brunstrom@kau.se>
To: "gorry@erg.abdn.ac.uk" <gorry@erg.abdn.ac.uk>, "Brian Trammell (IETF)" <ietf@trammell.ch>
CC: "Philipp S. Tiesel" <philipp@tiesel.net>, Tommy Pauly <tpauly=40apple.com@dmarc.ietf.org>, taps WG <taps@ietf.org>
Thread-Topic: [Taps] On Profiles for TAPS Preconnections
Thread-Index: AQHVQMEKasj+RXnz0kKDEHWACfIXBKbXHl0AgAAFLQCAAUBkgIAABP6AgAA0wWA=
Date: Tue, 23 Jul 2019 20:11:52 +0000
Message-ID: <e8f1756d100d4b609f9ee99826eed498@kau.se>
References: <370C3CC6-363D-4036-ABCC-7B02F6BD04F6@apple.com> <1A621491-019B-49C0-BE4E-A3C843EA0D35@tiesel.net> <BE950551-28E9-4A0F-A6E5-E951191CDCE6@apple.com> <BE49D789-20A2-49C1-9497-9F54B09527B5@trammell.ch> <5D375469.9050807@erg.abdn.ac.uk>
In-Reply-To: <5D375469.9050807@erg.abdn.ac.uk>
Accept-Language: en-US, sv-SE
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [130.243.27.149]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Bayes-Prob: 0.9999 (Score 5, tokens from: outbound, outbound-kau-se:default, kau-se:default, base:default, @@RPTN)
X-p0f-Info: os=Windows 7 or 8, link=Ethernet or modem
X-CanIt-Geo: No geolocation information available for fe80::d09:7e68:ff95:4a60
X-CanItPRO-Stream: outbound-kau-se:outbound (inherits from outbound-kau-se:default, kau-se:default, base:default)
X-Canit-Stats-ID: 090Ekc5sz - 6b4a2f9ff492 - 20190723
X-Antispam-Training-Forget: https://mailfilter.sunet.se/canit/b.php?c=f&i=090Ekc5sz&m=6b4a2f9ff492&rlm=outbound-kau-se&t=20190723
X-Antispam-Training-Nonspam: https://mailfilter.sunet.se/canit/b.php?c=n&i=090Ekc5sz&m=6b4a2f9ff492&rlm=outbound-kau-se&t=20190723
X-Antispam-Training-Phish: https://mailfilter.sunet.se/canit/b.php?c=p&i=090Ekc5sz&m=6b4a2f9ff492&rlm=outbound-kau-se&t=20190723
X-Antispam-Training-Spam: https://mailfilter.sunet.se/canit/b.php?c=s&i=090Ekc5sz&m=6b4a2f9ff492&rlm=outbound-kau-se&t=20190723
X-CanIt-Archive-Cluster: PfMRe/vJWMiXwM2YIH5BVExnUnw
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=kau.se; h=from:to:cc :subject:date:message-id:references:in-reply-to:content-type :content-transfer-encoding:mime-version; s=canit; bh=JgUv8aaQ/kn S6/w0okh5jj0DBgq9mQK4CNd4kzmIO2A=; b=SB0DNAtvaX5z0Iq/j6nfJf9ud0n S1/XbsSoPqBFhWTIBVXYutvo81EgPkODx0g0r5kKJPlDXYlsDziZpZ6XBEzeWtOv jnl+Wh52SwE44vp6dG6GVSdtDzjnz5NkqLq01VY6w//vlGn8bxUPr9YSdQ5MqNkg EJ05ITeNPAz6eDKuKHn/7s0CfIAvhjO/a4GD0s3BY7KQ7yUtU9hTu4gOdLERRQRF FHznOhunpnHYtCsdZ1I/tE8nHD9p6ohgw/9OubhRV+iC4l1XcFdyXe1v9Sc9qKyK 3fTgDTPWjYkJp2gwxt1FHh5WhjVOSQz4YTXrYC08xfpRRTzWMuT5BhBBTuA==
X-Scanned-By: CanIt (www . roaringpenguin . com)
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/4b8gQuKiLBVVm4xL8KE133nkZWQ>
Subject: Re: [Taps] On Profiles for TAPS Preconnections
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, 23 Jul 2019 20:12:14 -0000

Hi all, inline

> -----Original Message-----
> From: Taps <taps-bounces@ietf.org> On Behalf Of Gorry Fairhurst
> Sent: den 23 juli 2019 20:40
> To: Brian Trammell (IETF) <ietf@trammell.ch>
> Cc: Philipp S. Tiesel <philipp@tiesel.net>; Tommy Pauly
> <tpauly=40apple.com@dmarc.ietf.org>; taps WG <taps@ietf.org>
> Subject: Re: [Taps] On Profiles for TAPS Preconnections
> 
> Hi all, see below - how near are we to agreement?
> 
> On 23/07/2019, 14:21, Brian Trammell (IETF) wrote:
> > hi Tommy, all,
> >
> >> On 22 Jul 2019, at 19:15, Tommy
> Pauly<tpauly=40apple.com@dmarc.ietf.org>  wrote:
> >>
> >>
> >>
> >>> On Jul 22, 2019, at 6:56 PM, Philipp S. Tiesel<philipp@tiesel.net>  wrote:
> >>>
> >>> Hi,
> >>>
> >>>> On 22. Jul 2019, at 15:09, Tommy
> Pauly<tpauly=40apple.com@dmarc.ietf.org>  wrote:
> >>>>
> >>>> An issue we discussed today in the TAPS meeting was whether or not we
> should add a concept of "profiles" to the Transport Services APIs. An example
> of a profile is a "reliable, secure, in-order stream"; or "unreliable datagrams".
> Another way to think of these profiles are as convenient ways to initialize
> common parameters.
> >>>>
> >>>> One option is described in this PR:
> >>>> https://github.com/ietf-tapswg/api-drafts/pull/328
> >>>>
> >>>> To help discern the working group's position, I'll try to distill the high-
> level options here:
> >>>>
> >>>> 1. Add Profiles as a top-level API document concept that modifies
> >>>> how transport properties and/or preconnections are created. (This is PR
> #328.) 2. Mention in the API document that specific API implementations may
> expose conveniences and profiles (presumably as a way to initialize
> preconnections), but do not modify the API or specify an abstract symbol for
> profiles.
> >>>> 3. Do not mention profiles at all in the API document, but mention
> something in the implementation document.
> >>> I am definitely in favour of option 1. Our implementation experience with
> PyTAPS showed that setting all transport properties necessary to get “UDP
> like service” becomes tedious otherwise.
> >>> I fear not including them in the examples and the core API will result in
> many developers rejecting TAPS as too complex to use.
> >>> The profiles provide a useful convenience to applications (just like the
> the shortcuts properties.prefer(property) instead of properties.add(property,
> prefer)).
> >>>
> >>> In addition, profiles allow us to be less conservative in how we choose
> the defaults for transport properties, i.e., we don’t need the TAPS defaults to
> be TCP compatible as long as the reliable-in-order-stream profile is.

I do not think there is any connection here. Weather we have profiles or not we will need good defaults. (The above would only hold if all profiles covered all transport properties and you were required to always select a profile. I do not think anyone is arguing for this.)

> >> Speaking not as the person asking the question, but as an individual in the
> group:
> >>
> >> I'm pretty strongly against option (1), and prefer (2). I think we should
> specify that convenience functions can exist, but I think changing the one
> initialization function of the transport properties to take a profile is not the
> right move for the API. Everything can be achieved by making the API for a
> convenience profile be a layer on top of the existing API.
> > +1, for the same reasons.

+1 for option 2 as well. I think we should keep the core API as small and clean as possible. To me profiles are naturally built on top of the API and do not need to be part of the core API.

> I'm fairly striongly against (3). Profiles are really important as a concept and
> I'd really encourage the group to write this.

So far it seems we all agree that profiles are a useful concept and should be mentioned in the documents. 

Anna
 
> Some additional motivation is that it can very significantly impact the way
> the TAPS system is presented to the user. It can help allow applications to set
> many TAPS parameters, providing additional info to the selection (racing)
> without the pain of having to understand what each parameter should be set
> to. That's a big simplification. For example a low-rate transactional app could
> eplicitly need datagram to make choices for low latency using one profile -
> another app that wishes to optimise for throughput could start by setting a
> different profile.
> >> Specifically, these are the differences:
> >>
> >> (1) Exposes an API in which you always pass a profile (or an explicit nil) to a
> TransportProperties object; but the TransportProperties *also* lets you set
> each of the individual properties after that.
> The API options win: Apps can choose a profile, and they can - maybe should
> be encouraged to - over-ride anything that is important to them.
> > I really like the idea of being able to pull a profile off the shelf and then
> tweak it.
> >
> > It does seem to me that the right model here is "profiles as
> > convenience constructors or copyable constants" -- that model is
> > pretty reasonably implementable as an add-on, without
> >
> > (That's separate from the question of whether profiles are a "mandatory"
> feature in taps-interface, a suggested feature in an appendix, or something
> that exists in a different document).
> >
> > Cheers,
> >
> > Brian
> +1 if you'd like to have (sample) profile descriptions in an informative
> appendix, that would seem like a way to achieve that.
> >> (2) Allows implementations to expose an API call to deliver a
> TransportProperties that's set up based on a profile, but that isn't the
> fundamental constructor. It is implemented by creating a TransportProperties
> (TransportProperties()) and then setting the properties internally.
> >>
> >> Thanks,
> >> Tommy
> At the start of TAPS, I thought of profiles as the same as other parameters (i.e.
> they are inputs to the selection algorithm, that are less signficant than apps-
> supplied params, and more significant that the system default).
> 
> I'd prefer we call this out explicitly in the documents.
> 
> Gorry
> 
> >>> AVE!
> >>>   Philipp S. Tiesel
> >>>
> >>> --
> >>> Philipp S. Tiesel
> >>> https://philipp.tiesel.net/
> >>>
> >> _______________________________________________
> >> Taps mailing list
> >> Taps@ietf.org
> >> https://www.ietf.org/mailman/listinfo/taps
> > _______________________________________________
> > Taps mailing list
> > Taps@ietf.org
> > https://www.ietf.org/mailman/listinfo/taps
> 
> _______________________________________________
> Taps mailing list
> Taps@ietf.org
> https://www.ietf.org/mailman/listinfo/taps