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

Stjepan Groš <stjepan.gros@fer.hr> Mon, 02 November 2015 13:13 UTC

Return-Path: <stjepan.gros@fer.hr>
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 DB0801B362A for <mif@ietfa.amsl.com>; Mon, 2 Nov 2015 05:13:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.309
X-Spam-Level:
X-Spam-Status: No, score=-2.309 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-0.7, 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 0xQnrMJirCWe for <mif@ietfa.amsl.com>; Mon, 2 Nov 2015 05:13:35 -0800 (PST)
Received: from mail.zemris.fer.hr (gandalf.zemris.fer.hr [161.53.65.11]) by ietfa.amsl.com (Postfix) with ESMTP id 646B81B3626 for <mif@ietf.org>; Mon, 2 Nov 2015 05:13:35 -0800 (PST)
Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.zemris.fer.hr (Postfix) with ESMTP id 559F23B7C04C; Mon, 2 Nov 2015 14:13:34 +0100 (CET)
X-Virus-Scanned: amavisd-new at zemris.fer.hr
Received: from mail.zemris.fer.hr ([127.0.0.1]) by localhost (mail.zemris.fer.hr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4baznNOJ4i+Z; Mon, 2 Nov 2015 14:13:25 +0100 (CET)
Received: from w540.sistemnet.local (Enel.zemris.fer.hr [161.53.65.34]) by mail.zemris.fer.hr (Postfix) with ESMTPSA id 579B23B7C047; Mon, 2 Nov 2015 14:13:25 +0100 (CET)
To: Erik Kline <ek@google.com>
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>
From: Stjepan Groš <stjepan.gros@fer.hr>
Organization: UNIZG - FER
Message-ID: <56376171.7060203@fer.hr>
Date: Mon, 02 Nov 2015 14:13:21 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <CAAedzxqgW9=teyQAa0XYHivGmE0b-XNFb6b4aU_8D2Z1xMFSqQ@mail.gmail.com>
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="CFniuhGdjmfMvnlgULOoTpMuJ9JecpfQB"
Archived-At: <http://mailarchive.ietf.org/arch/msg/mif/0oy2KUm8fuB1skvP5TGLbvVW6H0>
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: Mon, 02 Nov 2015 13:13:39 -0000

On 02.11.2015 13:18, Erik Kline wrote:
>
> On 2 November 2015 at 18:44, Stjepan Groš <stjepan.gros@fer.hr
> <mailto: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.

>
> There are necessarily going to be sequences of function calls after
> which trying to change a PvD will be non-sensical.  For example, after
> I have a connected TCP socket: a source address has been chosen from a
> PvD and the PvD's routing table is in use for every write()/send() I
> call.  Attempting to change which PvD is use is a bit non-sensical at
> that point, and I think perhaps that an API should not really allow it.
>
>     In section 3.4 there is a note/question about "loopback PvD". What
>     we were thinking/discussing is that there should be such a PvD for
>     backwards compatibility, i.e. for non-PvD aware applications that
>     for some reason expect all available connections and interfaces
>     (PvDs) to be present (non-PvD aware mpTCP and SCTP applications,
>     UDP applications, debugging applications like tcpdump/wireshark).
>     This configuration we called internally "root network name space".
>
>
> That sounds a bit different from what I was thinking of a loopback
> PvD.  What you describe sounds like how things are today in a totally
> non-PvD-aware system, which has the kinds of problems we're aiming to
> solve, yes?

Probably I missed the point here, i.e. there is no point of having
something like "all addresses" when we are talking about PvD aware
applications that can find out all of them via PvD API. Yet, I believe
that something like "all addresses present" will have to exists on a
system due to the backwards compatibility with legacy applications which
will be with us for a long time. Now, I don't know if that is something
that should be covered by PvD API or not, probably depends on use-cases.

SG

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.

> -ek