Re: [mif] Fwd: New Version Notification for draft-kline-mif-mpvd-api-reqs-00.txt

Erik Kline <ek@google.com> Wed, 04 November 2015 12:01 UTC

Return-Path: <ek@google.com>
X-Original-To: mif@ietfa.amsl.com
Delivered-To: mif@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 83C7D1B2DEE for <mif@ietfa.amsl.com>; Wed, 4 Nov 2015 04:01:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.088
X-Spam-Level:
X-Spam-Status: No, score=-1.088 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 NtUA_9INAk9D for <mif@ietfa.amsl.com>; Wed, 4 Nov 2015 04:01:43 -0800 (PST)
Received: from mail-wm0-x22e.google.com (mail-wm0-x22e.google.com [IPv6:2a00:1450:400c:c09::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 60F851B2DE9 for <mif@ietf.org>; Wed, 4 Nov 2015 04:01:43 -0800 (PST)
Received: by wmeg8 with SMTP id g8so39479687wme.1 for <mif@ietf.org>; Wed, 04 Nov 2015 04:01:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=+DgfkkCVy1Fk5T/tcEaGgNSMFSsYqpmAeop9DFNeLOE=; b=Mwcpc2HnWIe3iXGxvu0xfQjEblFpFHMYCBvy93othPk6BV9yCx9/to8C2nTNG0HcB4 jmHIRod8TGHb4TM5x1k++L8gmQXFHv4HuLvT+S1mD0imrpD5Lb/kEduI8sCi94XWYy4q xRj5Gl4NsuNroOyXdw9EL0Tjcgr/7EbMCkz6FcCePqSzeBXm2izx9uXbUEcmLDzW04Pp ts8TliNmB/fJnpHKAWkQXcdgCV9EAhZQhdORnTDa6xNQpCHK8J1nHbVQ1Fl3XEDGXtY7 2BFUZIQYmas8pj5xhRrOjR1SjTiBsuYRpy+kkQWvqhO/qXKG4zofUEVcmLwZTl09TEXi ZrUQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=+DgfkkCVy1Fk5T/tcEaGgNSMFSsYqpmAeop9DFNeLOE=; b=Gu76V516bLevxIQ/JyvlaROXhy1p+O1Y+pjMSoLpUWmTKbDDUOTarwaieoDzQU9t1s ZFooIRo31fbf5QtTbttHNe1R7vllwk9y6GlsseZ3Qd1vKyCq5lxzDCPS7I5L8Fu/E9XF BsRW5ghGcj+gC36CtpREhJFCgcrV0F1K3x7CrGrjy1eQLWoZPmNdxuNm4CfqTWKV5Dc+ OU7Rvk0IHiSJ7ym0GPgmcM3c0rlLuHYXkzGvIlbTSkARmU8ZueS+hy5meel8OvdxBbEb 5TuaWwz9cj49YMTlaCsjdeytY6xg8tlbB+Lbip0jPQtcXoa8BsMHVhuxP6eBemjQGc4q z2AQ==
X-Gm-Message-State: ALoCoQkck2QRscRfNoqssWl+RqDHs3a9Frw8+5O47AHnJbvz9lfw+zduAh+ib5ozAuxzxZ+gRKd2
X-Received: by 10.28.11.13 with SMTP id 13mr2822639wml.4.1446638501691; Wed, 04 Nov 2015 04:01:41 -0800 (PST)
MIME-Version: 1.0
Received: by 10.28.27.2 with HTTP; Wed, 4 Nov 2015 04:01:22 -0800 (PST)
In-Reply-To: <56376171.7060203@fer.hr>
References: <20151101150337.10435.25207.idtracker@ietfa.amsl.com> <CAAedzxq8XtC9h1ubA2=hNWEDNZC7rmibLKjbZU9BXdY61vG_dA@mail.gmail.com> <5637306E.40006@fer.hr> <CAAedzxqgW9=teyQAa0XYHivGmE0b-XNFb6b4aU_8D2Z1xMFSqQ@mail.gmail.com> <56376171.7060203@fer.hr>
From: Erik Kline <ek@google.com>
Date: Wed, 04 Nov 2015 21:01:22 +0900
Message-ID: <CAAedzxpOOtG3qjWNj+Sq-cu0zoxeXrATj9QmXH-t+7g1haoMRw@mail.gmail.com>
To: Stjepan Groš <stjepan.gros@fer.hr>
Content-Type: multipart/alternative; boundary="001a114424e803784c0523b5c6f1"
Archived-At: <http://mailarchive.ietf.org/arch/msg/mif/m0_Tvc6uYHB1EWT_EFH0_jBDAKY>
Cc: "mif@ietf.org" <mif@ietf.org>
Subject: Re: [mif] Fwd: New Version Notification for draft-kline-mif-mpvd-api-reqs-00.txt
X-BeenThere: mif@ietf.org
X-Mailman-Version: 2.1.15
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: <https://mailarchive.ietf.org/arch/browse/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: Wed, 04 Nov 2015 12:01:45 -0000

On 2 November 2015 at 22:13, Stjepan Groš <stjepan.gros@fer.hr> wrote:

>
> On 02.11.2015 13:18, Erik Kline wrote:
>
>
> On 2 November 2015 at 18:44, Stjepan Groš <stjepan.gros@fer.hr> wrote:
>
>> Hi Erik,
>>
>> Thank you for the draft.
>>
>> I have few comments/questions.
>>
>> First, what I'm reading from the draft is that each PvD aware application
>> should have access to a single PvD at any single moment? If that is so,
>> what about mpTCP and SCTP applications that are PvD aware? They should have
>> access to multiple PvDs simultaneously for a fail over reasons. So, how
>> this draft takes into account that use case?
>>
>
> Not quite: they should be able to specify only one PvD per function call,
> per thread (for example).  An app can have multiple sockets, each one using
> one PvD.  An app can have something like a single unconnected datagram
> socket and call sendto() with a different PvD for each sendto() call.  That
> kind of thing is more what I meant to write, but I guess was not very
> clear.  (Clearly, I have a bunch of sockets-y things in my head but am
> trying to write things in a more general, non-sockets-dependent way.)
>
> The confusion may be arising in part from the resolution of which PvD to
> use for a given function call if no PvD is specified.  In those cases, the
> system checks for "defaults" at increasingly general levels.  So a process
> could set a process default PvD and avoid having to specify the PvD for
> each an every call, but still make individual socket calls or query DNS on
> a different PvD whenever it wants to.
>
> Does this make more sense?
>
>
> I was thinking on functions like sctp_bindx that explicitly expect
> multiple IP addresses to be present at a point when the function is called.
> mpTCP could be even bigger problem because, as I understand it, Linux
> kernel autonomously decides which local IP addresses to use.
>

Ah, thank you, that kind of call is an important consideration.  I believe
I have a solution that will work: when determining the intended PvD in the
case of existing APIs that specify source addresses (and/or maybe even
interfaces) we should use PvDs that are uniquely identified by this
information.

What to do if an address does not unique identify a PvD is another matter.
For both of these issues I'm hoping to have some discussion in Friday's mif
meeting.


> P.S. When I'm discussing these issues I'm thinking about general Linux
> Workstation, like Fedora, and in addition I'm also I'm in terms of network
> name spaces as the way to implement PvD separation.
>
>
FWIW, for Android's mif implementation network namespaces were considered
and rejected.  Among other things, I don't think it's really possible to
write an application that can have multiple sockets with each one "bound"
to a different network namespace.

Instead, it's a bit more like implicit PvDs are used with one interface
belonging to one and only one PvD and each PvD gets its own routing table.
This model is, obviously, not as general as mif work is trying to address
(i.e. m:n interfaces to PvDs are not supported).  (but it has been
sufficient to gain some experience with how an API would look and behave)