Re: [multipathtcp] API: which address to use
Pasi Sarolahti <pasi.sarolahti@iki.fi> Tue, 10 November 2009 05:01 UTC
Return-Path: <pasi.sarolahti@iki.fi>
X-Original-To: multipathtcp@core3.amsl.com
Delivered-To: multipathtcp@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id EFEFF3A6A27 for <multipathtcp@core3.amsl.com>; Mon, 9 Nov 2009 21:01:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aIhIs8hcknCM for <multipathtcp@core3.amsl.com>; Mon, 9 Nov 2009 21:01:40 -0800 (PST)
Received: from argo.otaverkko.fi (argo.otaverkko.fi [212.68.0.2]) by core3.amsl.com (Postfix) with ESMTP id D20513A69DC for <multipathtcp@ietf.org>; Mon, 9 Nov 2009 21:01:39 -0800 (PST)
Received: from host-128-144.meeting.ietf.org (host-128-144.meeting.ietf.org [133.93.128.144]) by argo.otaverkko.fi (Postfix) with ESMTP id C4A5925ED11; Tue, 10 Nov 2009 07:02:04 +0200 (EET)
Message-Id: <E03D46E1-51EA-4273-A8A7-4F37F88B2E92@iki.fi>
From: Pasi Sarolahti <pasi.sarolahti@iki.fi>
To: William Herrin <bill@herrin.us>
In-Reply-To: <3c3e3fca0911090542h54e45784qbdbf1f338a4c3e90@mail.gmail.com>
Content-Type: text/plain; charset="US-ASCII"; format="flowed"; delsp="yes"
Content-Transfer-Encoding: 7bit
Mime-Version: 1.0 (Apple Message framework v936)
Date: Tue, 10 Nov 2009 14:01:59 +0900
References: <E9EE0C1A-C9D3-4EBC-97FD-E1B1628CD2E7@iki.fi> <3c3e3fca0911090542h54e45784qbdbf1f338a4c3e90@mail.gmail.com>
X-Mailer: Apple Mail (2.936)
Cc: multipathtcp@ietf.org
Subject: Re: [multipathtcp] API: which address to use
X-BeenThere: multipathtcp@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Multi-path extensions for TCP <multipathtcp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/multipathtcp>, <mailto:multipathtcp-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/multipathtcp>
List-Post: <mailto:multipathtcp@ietf.org>
List-Help: <mailto:multipathtcp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/multipathtcp>, <mailto:multipathtcp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Nov 2009 05:01:41 -0000
On Nov 9, 2009, at 10:42 PM, William Herrin wrote: > On Mon, Nov 9, 2009 at 5:49 AM, Pasi Sarolahti > <pasi.sarolahti@iki.fi> wrote: >> This problem was just discussed in the meeting. Could one possible >> solution >> to the getsockname semantics problem be to use a separate address >> family for >> multipath connections? It could be similarly structured to the >> traditional >> AF, but from the different AF the app would know the semantics are >> different. > > Not really, no. > > Backwards compatibility is an issue, as you mentioned. So is a desire > to be able to use both IPv4 and IPv6 paths in a single multipath TCP > connection. If it's a legacy app then it's expecting getsockname to > return the same address family that it used to initiate the socket. If > you provide something else you could open a path for buffer overflows > or other mischief. Ok, so there could be a non-backwards compatible way and a (pseudo)backwards compatible way. I don't think these had to be exclusive, and both could be supported at the same time. Non-backwards compatible version would be to use new AF_MULTIPATH, that would be an array of AF_INET and AF_INET6 entries. Of course that would need to be used consistently throughout the connection lifetime. gethostname and getpeername would return the current set of active addresses at local or remote end. bind() could use this to bind to several addresses at a time. connect() could use this to give more than one known destination addresses to connect to (although the MPTCP protocol logic may prevent the actual connect operation from happening simultaneously). gethostbyname might return several addresses from DNS in a single AF_MULTIPATH record, to be directly used by connect(AF_MULTIPATH), instead of needing to cycle through the addresses separately, as a traditional single-homed version would do. This would require modifications also elsewhere than TCP code, but that's what you get for having an API that exposes the IP address to the application and assumes only one address is in use at a time. The backwards compatible version could just return the oldest active address and hope nothing breaks on legacy apps. I don't know if this is better or worse choice than returning the first used address that might not exist anymore. Has it been specified anywhere that getsockname/getpeername should return same result through the connection lifetime? - Pasi
- [multipathtcp] API: which address to use Pasi Sarolahti
- Re: [multipathtcp] API: which address to use William Herrin
- Re: [multipathtcp] API: which address to use William Herrin
- Re: [multipathtcp] API: which address to use Pasi Sarolahti
- Re: [multipathtcp] API: which address to use SCHARF, Michael
- Re: [multipathtcp] API: which address to use Yoshifumi Nishida
- [multipathtcp] draft minute at IETF76 Yoshifumi Nishida
- [multipathtcp] Multipath Address Family Pasi Sarolahti
- Re: [multipathtcp] Multipath Address Family Olivier Bonaventure
- Re: [multipathtcp] Multipath Address Family William Herrin
- Re: [multipathtcp] Multipath Address Family Michael Tüxen
- Re: [multipathtcp] Multipath Address Family Michael Tüxen
- Re: [multipathtcp] Multipath Address Family Laganier, Julien
- Re: [multipathtcp] Multipath Address Family Joe Touch
- Re: [multipathtcp] Multipath Address Family Laganier, Julien
- Re: [multipathtcp] Multipath Address Family Joe Touch
- Re: [multipathtcp] Multipath Address Family Laganier, Julien
- Re: [multipathtcp] Multipath Address Family Joe Touch
- Re: [multipathtcp] Multipath Address Family Laganier, Julien
- Re: [multipathtcp] Multipath Address Family Pasi Sarolahti
- Re: [multipathtcp] Multipath Address Family Joe Touch
- Re: [multipathtcp] Multipath Address Family Yoshifumi Nishida
- Re: [multipathtcp] Multipath Address Family Laganier, Julien
- Re: [multipathtcp] Multipath Address Family Yoshifumi Nishida
- Re: [multipathtcp] Multipath Address Family Pasi Sarolahti
- Re: [multipathtcp] Multipath Address Family Andrew Yourtchenko
- Re: [multipathtcp] Multipath Address Family Pasi Sarolahti
- Re: [multipathtcp] Multipath Address Family Andrew Yourtchenko
- [multipathtcp] Multipath deployment and fate shar… Costin Raiciu
- Re: [multipathtcp] Multipath deployment and fate … Joe Touch
- Re: [multipathtcp] Multipath Address Family Laganier, Julien
- Re: [multipathtcp] Multipath Address Family Michael Tüxen
- Re: [multipathtcp] Multipath Address Family Michael Tüxen
- Re: [multipathtcp] Multipath Address Family Laganier, Julien
- Re: [multipathtcp] Multipath Address Family Yoshifumi Nishida
- Re: [multipathtcp] Multipath Address Family Pasi Sarolahti
- Re: [multipathtcp] Multipath Address Family Michael Tüxen
- Re: [multipathtcp] Multipath Address Family Michael Tüxen
- Re: [multipathtcp] Multipath Address Family Christian Vogt
- Re: [multipathtcp] Multipath Address Family Christian Vogt
- Re: [multipathtcp] Multipath Address Family Michael Tüxen
- Re: [multipathtcp] Multipath Address Family Yoshifumi Nishida
- Re: [multipathtcp] Multipath Address Family Christian Vogt
- Re: [multipathtcp] Multipath Address Family Yoshifumi Nishida
- Re: [multipathtcp] Multipath deployment and fate … Iljitsch van Beijnum
- Re: [multipathtcp] Multipath deployment and fate … Laganier, Julien
- Re: [multipathtcp] Multipath deployment and fate … Iljitsch van Beijnum
- Re: [multipathtcp] Multipath deployment and fate … Joe Touch
- Re: [multipathtcp] Multipath deployment and fate … Laganier, Julien
- Re: [multipathtcp] Multipath deployment and fate … Joe Touch
- Re: [multipathtcp] Multipath deployment and fate … Joe Touch
- Re: [multipathtcp] Multipath deployment and fate … Laganier, Julien
- Re: [multipathtcp] Multipath deployment and fate … Joe Touch
- Re: [multipathtcp] Multipath deployment and fate … Laganier, Julien
- Re: [multipathtcp] Multipath deployment and fate … Joe Touch
- Re: [multipathtcp] Multipath deployment and fate … Iljitsch van Beijnum
- Re: [multipathtcp] Multipath deployment and fate … Joe Touch
- Re: [multipathtcp] Multipath deployment and fate … Iljitsch van Beijnum
- Re: [multipathtcp] Multipath deployment and fate … Joe Touch
- Re: [multipathtcp] Multipath deployment and fate … Iljitsch van Beijnum
- Re: [multipathtcp] Multipath deployment and fate … Yoshifumi Nishida
- [multipathtcp] draft minute at IETF77 Yoshifumi Nishida