Re: [Taps] TCP components

Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch> Thu, 18 June 2015 13:56 UTC

Return-Path: <mirja.kuehlewind@tik.ee.ethz.ch>
X-Original-To: taps@ietfa.amsl.com
Delivered-To: taps@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 688931B31F9 for <taps@ietfa.amsl.com>; Thu, 18 Jun 2015 06:56:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.91
X-Spam-Level:
X-Spam-Status: No, score=-3.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 9QL5ksYO0RXD for <taps@ietfa.amsl.com>; Thu, 18 Jun 2015 06:56:18 -0700 (PDT)
Received: from smtp.ee.ethz.ch (smtp.ee.ethz.ch [129.132.2.219]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B1EB71B31E9 for <taps@ietf.org>; Thu, 18 Jun 2015 06:56:11 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by smtp.ee.ethz.ch (Postfix) with ESMTP id 7CA2ED930C; Thu, 18 Jun 2015 15:56:10 +0200 (MEST)
X-Virus-Scanned: by amavisd-new on smtp.ee.ethz.ch
Received: from smtp.ee.ethz.ch ([127.0.0.1]) by localhost (.ee.ethz.ch [127.0.0.1]) (amavisd-new, port 10024) with LMTP id mRyUoJ5coO+X; Thu, 18 Jun 2015 15:56:10 +0200 (MEST)
Received: from [192.168.178.33] (x5f700897.dyn.telefonica.de [95.112.8.151]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: mirjak) by smtp.ee.ethz.ch (Postfix) with ESMTPSA id 075DFD930B; Thu, 18 Jun 2015 15:56:09 +0200 (MEST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch>
In-Reply-To: <33CA72C2-D0EC-43A1-B766-D34F3636961B@ifi.uio.no>
Date: Thu, 18 Jun 2015 15:56:09 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <23AACB56-2044-4E89-930B-C7D501AD7184@tik.ee.ethz.ch>
References: <5579768E.5060402@tik.ee.ethz.ch> <A3EF3A19-0E37-42E6-8D17-94164EBA7FDD@ifi.uio.no> <154FD7B7-9A01-43EC-927D-B9D71F1BC38D@tik.ee.ethz.ch> <57DC7DAB-7054-41BE-8515-626353782BBC@ifi.uio.no> <5581B81B.4090500@isi.edu> <725D4141-40AB-4E30-9409-96813C80905B@tik.ee.ethz.ch> <33CA72C2-D0EC-43A1-B766-D34F3636961B@ifi.uio.no>
To: Michael Welzl <michawe@ifi.uio.no>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/taps/za1gW5FYdgQdg-q3_7xp-0An2tY>
Cc: Brian Trammell <ietf@trammell.ch>, "taps@ietf.org" <taps@ietf.org>, Joe Touch <touch@isi.edu>
Subject: Re: [Taps] TCP components
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Discussions on Transport Services <taps.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/taps>, <mailto:taps-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/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 Jun 2015 13:56:20 -0000

Hi Michael,

> Am 18.06.2015 um 15:43 schrieb Michael Welzl <michawe@ifi.uio.no>:
> 
> 
>> On 18 Jun 2015, at 10:48, Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch> wrote:
>> 
>> Hi Joe,
>> 
>> I believe the approach Michael is proposing is to look at existing APIs as a starting point; not only abstract APIs.
> 
> No, wrong. Only abstract ones from RFCs, I said this before. These things would typically have preceding IETF debate, whereas trying to cover implementations is a huge and probably meaningless endeavour (the bar may be high for adding function calls to an API on system X and low for an API on system Y).

Okay, but then I don’t really understand your approach fully. Yes we should document and look at what’s already specified in RFC, however isn’t the goal of taps to actually figure out how to change/extend/improve these APIs? How can we figure out what’s missing/wrong if we only look at what’s already there?

Mirja

> 
> 
>> The assumption is that someone who implemented/designed an API, thought that it would be worth to provide a configuration possibility to the higher layer. This assumption is more true for SCTP than for TCP because there are quite a few different TCP implementation that are grown over time. Quite often a new interface was only created because a new feature was added to TCP; and to be on the safe side we allow the user to turn it off again.
>> 
>> That’s the reason why I prefer the approach we are/I'm taking right now (analyzing components). I think we should still describe the abstract API of RFC793 (and we do) as well as the SCTP API of RFC4960 in this document, but I personally would not and will not spend too much time analyzing other API. However, everybody who has time and is interested in this can of course provide his/her outcome as input for this document and we will happily take it and compare it to what we have so far.
> 
> But you misunderstood me. I was talking about RFCs (btw 6458, not 4960), not implementations out there.
> 
> More below, answering Joe  (hm, that rhymes ;-)  ) -
> 
> 
>> 
>> Mirja
>> 
>> 
>>> Am 17.06.2015 um 20:10 schrieb Joe Touch <touch@isi.edu>:
>>> 
>>> 
>>> 
>>> On 6/17/2015 1:44 AM, Michael Welzl wrote:
>>>> I think that this discussion with Joe maybe suffered from focusing on
>>>> TCP. 
>>> 
>>> To be fair, TCP has a simpler abstract API.
>>> 
>>>> SCTP is perhaps a better starting point because it supports
>>>> almost everything. 
>>> 
>>> IMO, that makes it very hard as a starting point, and I also think that
>>> TCP's variant of an API description is much better as an example.
>>> 
>>> E.g., Section 10 of RFC4960 claims it defines an abstract API
>>> (ULP-to_SCTP), but it begins by describing a call to initialize a data
>>> structure (INITIALIZE). That's decidedly NOT an abstract API; it's a
>>> generic description of an implementation issue.
>>> 
>>> IMO, if we don't understand the difference between the API in RFC793 vs.
>>> that in RFC4960 (and why 793 is a better example), then this is going to
>>> be a very bumpy road.
> 
> How abstract it is in the RFC indeed isn't my main concern here: it's to start with the interface (however abstract it is) offered to applications as described in the RFCs, as this reflects what the designers (with some level of IETF consensus) thought should be exposed.
> Now, of course SCTP has more options and is more complex in its usage than TCP, but it covers a larger part of the space of services in protocols - so I thought it's a good starting point, as in: 80% done by looking at 1 protocol, check the others for the remaining 20%. Something like that.
> 
> This is just me being pragmatic and trying to have a more systematic approach to developing a list of services. I agree with Brian that some level of arbitrariness will always be there, but we must try to minimize it I think.
> 
> Cheers,
> Michael