Re: [multipathtcp] Multipath Address Family
Pasi Sarolahti <pasi.sarolahti@iki.fi> Wed, 25 November 2009 01:52 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 C5A973A691B for <multipathtcp@core3.amsl.com>; Tue, 24 Nov 2009 17:52:16 -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=[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 xR-RuLgl-Lsa for <multipathtcp@core3.amsl.com>; Tue, 24 Nov 2009 17:52:15 -0800 (PST)
Received: from argo.otaverkko.fi (argo.otaverkko.fi [212.68.0.2]) by core3.amsl.com (Postfix) with ESMTP id 5F53E3A6897 for <multipathtcp@ietf.org>; Tue, 24 Nov 2009 17:52:15 -0800 (PST)
Received: from wifi172.ICSI.Berkeley.EDU (wifi172.ICSI.Berkeley.EDU [192.150.187.172]) by argo.otaverkko.fi (Postfix) with ESMTP id 6DCDD25ED06; Wed, 25 Nov 2009 03:52:09 +0200 (EET)
Message-Id: <809D0BC9-83EC-4E42-85DC-BCAB2905F403@iki.fi>
From: Pasi Sarolahti <pasi.sarolahti@iki.fi>
To: William Herrin <bill@herrin.us>
In-Reply-To: <3c3e3fca0911240434p4d95ec7an34615ae218faa4f@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, 24 Nov 2009 17:52:06 -0800
References: <E9EE0C1A-C9D3-4EBC-97FD-E1B1628CD2E7@iki.fi> <3c3e3fca0911090542h54e45784qbdbf1f338a4c3e90@mail.gmail.com> <E03D46E1-51EA-4273-A8A7-4F37F88B2E92@iki.fi> <20091123.092214.140617438.nishida@sfc.wide.ad.jp> <48DA092B-F3BC-432E-A199-B265DDED39DA@iki.fi> <3c3e3fca0911240434p4d95ec7an34615ae218faa4f@mail.gmail.com>
X-Mailer: Apple Mail (2.936)
Cc: multipathtcp@ietf.org
Subject: Re: [multipathtcp] Multipath Address Family
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: Wed, 25 Nov 2009 01:52:16 -0000
On Nov 24, 2009, at 4:34 AM, William Herrin wrote: > It seems like you want to preserve the connect() call's parameters by > altering the definition of sockaddr so that it can contain multiple > addresses. > > But functionally, what we really want to do is pass an array of > sockaddrs to connect(). > > Stupid question time: what makes redefining sockaddr superior to an > extended API call that supplants connect() and accepts an array of > sockaddrs? Another question: is it better to have a compile-time error (or segmentation fault) or run-time error code, if application was built with multi-address support, but system was not? Even if we had a new mptcp_connectx, bindx, etc. calls, the problem still remains what to do with the old socket operations that assume only single address per endpoint. A new address family would be one (unfortunately non-backwards compatible) way to address that problem (possibly with the cost of introducing new problems). I think there is a certain elegancy in having a minimal socket API with just a small basic set of operations. Until now the same socket API has provided to be flexible enough to support many uses over time (Unix domain sockets that take pathname as sockaddr, IPsec PF_KEY sockets, netlink sockets, ...). I'm not yet ready to buy it that we have come to a point that the old API is not sufficient anymore, if the same functionality could be implemented by specifying a couple of new socket parameters for a feature that is supported by just some of the protocols under the API. > Poking around linux's include files (netinet/in.h, bits/socket.h) I > notice that they go to a lot of trouble to make all sockaddrs come out > to exactly the same number of bytes. Won't a variable length sockaddr > that holds a variable number of addresses make a mess of that? I guess the question is whether the length of sockaddr is a Linux implementation issue that can be fixed, or whether there is some deeper reason for having the sockaddrs to be of same length. In Unix domain sockets the pathnames in sockaddr can be variable length and quite long, to my understanding, certainly worth of several IP addresses. But it would be interesting to know what, if anything, would break in legacy systems with a new sockaddr variant. I'm assuming that the TCP stack needs to go through fairly significant change anyway because of MPTCP. > Found a quote I think bears on the topic at > http://lkml.indiana.edu/hypermail/linux/net/9904.2/0091.html : > >> The AF_ prefix stands for "address family" and the PF_prefix stands >> for >> "protocol family". Historicly, the intent was that a single >> protocol family >> might support multiple address families and that the PF_ value was >> used to >> create the socket and the AF_ value was used in socket address >> structures. >> But in actuality, a protocol family supporting multiple address >> families has >> never been supported and the <sys/socket.h> header defines the PF_ >> value >> for a given protocol to be equal to the AF_ value for that protocol. > > I think when we discuss allowing multipath TCP to use IPv4 and IPv6 > addresses interchangeably, we're talking about one protocol family > using multiple address families, are we not? I have been curious about this PF/AF dependence that seems like a long- standing "bug" in some systems. Have you ever investigated this deeper? Why would it be so hard to fix it so that you could have several address families in one protocol family? - 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