Re: [mif] Adoption of API document as the MIF WG document

Simon Perreault <simon.perreault@viagenie.ca> Fri, 16 December 2011 16:25 UTC

Return-Path: <simon.perreault@viagenie.ca>
X-Original-To: mif@ietfa.amsl.com
Delivered-To: mif@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2FCD121F8B92 for <mif@ietfa.amsl.com>; Fri, 16 Dec 2011 08:25:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.566
X-Spam-Level:
X-Spam-Status: No, score=-2.566 tagged_above=-999 required=5 tests=[AWL=0.033, BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NoOX89gYnsue for <mif@ietfa.amsl.com>; Fri, 16 Dec 2011 08:25:34 -0800 (PST)
Received: from jazz.viagenie.ca (jazz.viagenie.ca [206.123.31.2]) by ietfa.amsl.com (Postfix) with ESMTP id 71B8921F8B8A for <mif@ietf.org>; Fri, 16 Dec 2011 08:25:34 -0800 (PST)
Received: from ringo.viagenie.ca (ringo.viagenie.ca [IPv6:2620:0:230:c000::67]) by jazz.viagenie.ca (Postfix) with ESMTPSA id A950A20E37 for <mif@ietf.org>; Fri, 16 Dec 2011 11:25:03 -0500 (EST)
Message-ID: <4EEB70DF.3070201@viagenie.ca>
Date: Fri, 16 Dec 2011 11:25:03 -0500
From: Simon Perreault <simon.perreault@viagenie.ca>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111115 Thunderbird/8.0
MIME-Version: 1.0
To: mif@ietf.org
References: <COL118-W224376376AE7A3CC854753B1A30@phx.gbl>
In-Reply-To: <COL118-W224376376AE7A3CC854753B1A30@phx.gbl>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 8bit
Subject: Re: [mif] Adoption of API document as the MIF WG document
X-BeenThere: mif@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Multiple Interface Discussion List <mif.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mif>, <mailto:mif-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/mif>
List-Post: <mailto:mif@ietf.org>
List-Help: <mailto:mif-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mif>, <mailto:mif-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 16 Dec 2011 16:25:35 -0000

On 2011-12-15 07:09, Hui Deng wrote:
> Based on last time IETF 82th MIF meeting, we are calling for the adoption of API
> document as the working group document in the mailing list.
> Just want to conform if anybody have different opinion on this.

I've always felt uneasy with this draft. At the Québec meeting I went to the mic 
and argued, perhaps incoherently, that this was not what we needed. Since then 
I've had time to understand exactly what caused my uneasiness.

As described in the RFC6419, applications currently do a lot of hackish (read 
"evil") things to try and guess what would be correct behaviour. Each app needs 
to reimplement this intelligence. Many apps get many things wrong. This is the 
mess we're in now.

I feel that the API draft tries to standardize the various incompatible APIs we 
have on various platforms, the very APIs that are currently used by apps for 
their hackish behaviour. I think it will make it easier for applications to 
implement hackish behaviour. It will perpetuate the mess we're in.

What is needed is a *very* high-level API, maybe based on happy eyeballs. This 
will avoid reinventing the wheel in each app. Something like a single function 
call, with flags to indicate desired aspects of the connection to be established, 
and the stack figures out the rest.

I don't think standardizing a low-level API such as is described in the API draft 
is useful. Actually, I think it could very well be harmful, by encouraging 
applications to reinvent the wheel.

And let me finish by preemptively addressing one possible rebuttal... Section 
3.3.2 says this:

3.3.2. High Level API

    Applications are generally expected to originate connections using
    some general-purpose high-level API suited to their particular
    function.  It is likely that different applications may use different
    high-level APIs to communicate, depending on their particular needs.
    We do not describe the functioning of such high-level APIs; however,
    one such API under current consideration is the Happy Eyeballs for
    MIF [reference].  These APIs are expected to be able to be
    implemented using functionality like that described in the MIF API.

This section does not say why a low-level API needs to be *standardized*. I agree 
it needs to *exist* for a high-level API to be standardized. Low-level APIs 
already do exist in various platform-dependent forms, as evidenced by RFC6419.

You can put this email in the "against adoption" bucket.

Simon
-- 
DTN made easy, lean, and smart --> http://postellation.viagenie.ca
NAT64/DNS64 open-source        --> http://ecdysis.viagenie.ca
STUN/TURN server               --> http://numb.viagenie.ca