Re: [multipathtcp] Multipath Address Family

Joe Touch <touch@ISI.EDU> Tue, 24 November 2009 22:39 UTC

Return-Path: <touch@ISI.EDU>
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 7B1FB3A692F for <multipathtcp@core3.amsl.com>; Tue, 24 Nov 2009 14:39:31 -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 0XvDLieGiN80 for <multipathtcp@core3.amsl.com>; Tue, 24 Nov 2009 14:39:30 -0800 (PST)
Received: from vapor.isi.edu (vapor.isi.edu [128.9.64.64]) by core3.amsl.com (Postfix) with ESMTP id 5113D3A67D9 for <multipathtcp@ietf.org>; Tue, 24 Nov 2009 14:39:30 -0800 (PST)
Received: from [75.212.132.192] (192.sub-75-212-132.myvzw.com [75.212.132.192]) (authenticated bits=0) by vapor.isi.edu (8.13.8/8.13.8) with ESMTP id nAOMcokC007947 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Tue, 24 Nov 2009 14:38:53 -0800 (PST)
Message-ID: <4B0C607A.6060503@isi.edu>
Date: Tue, 24 Nov 2009 14:38:50 -0800
From: Joe Touch <touch@ISI.EDU>
User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
MIME-Version: 1.0
To: "Laganier, Julien" <julienl@qualcomm.com>
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> <C622F375-EE67-46AE-AC28-6617CFEF6D12@lurchi.franken.de> <BF345F63074F8040B58C00A186FCA57F1C65FB29B9@NALASEXMB04.na.qualcomm.com>
In-Reply-To: <BF345F63074F8040B58C00A186FCA57F1C65FB29B9@NALASEXMB04.na.qualcomm.com>
X-Enigmail-Version: 0.96.0
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Cc: "multipathtcp@ietf.org" <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: Tue, 24 Nov 2009 22:39:31 -0000

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1



Laganier, Julien wrote:
> Stuart Cheshire had a nice talk at IETF 72 on the drawbacks of the current getaddrinfo() + connect() model w.r.t. to IPv6 transition,see http://www.stuartcheshire.org/IETF72/. (Somebody already mentioned that on the list I think.)
> 
> A connect_to_name() calls that hides all of the address family subtleties under the hood
> does not have such drawbacks. So if we're going to change the API anyway, this looks like a good occasion to fix that issue too, no?

I like this idea, but there needs to be a returned primary IP address if
this is intended to support TCP. I.e., you can ask the system to call a
name, but it ends up establishing a TCP connection to a socket pair (src
IP, dst IP, src port, dst port).

I'm still not sure what that means for multipath. There could be
secondary socket pairs of course, and they can vary over the life of the
connection, but I still feel that if the primary disappears the
connection MUST disappear *IF* this is TCP.

Of course, if it's not TCP, this could be easily defined in other more
useful ways.

Joe

> --julien 
> 
>> -----Original Message-----
>> From: multipathtcp-bounces@ietf.org [mailto:multipathtcp-
>> bounces@ietf.org] On Behalf Of Michael Tüxen
>> Sent: Tuesday, November 24, 2009 1:08 PM
>> To: William Herrin
>> Cc: multipathtcp@ietf.org
>> Subject: Re: [multipathtcp] Multipath Address Family
>>
>> Dear all,
>>
>> just one note:
>> In SCTP we use sctp_connectx() to connect to multiple addresses.
>> Kacheong pointed a couple of years ago out that a more generic
>> connectx() would make sense to other protocols supporting multihoming
>> as well (but there were no).
>>
>> So you might want to look at sctp_connectx() which the SCTP socket API
>> uses to handle the problem.
>>
>> Best regards
>> Michael
>>
>> On Nov 24, 2009, at 1:34 PM, William Herrin wrote:
>>
>>> On Mon, Nov 23, 2009 at 4:40 PM, Pasi Sarolahti
>> <pasi.sarolahti@iki.fi> wrote:
>>>> I think a new address family would be a minimal needed change to the
>> current
>>>> socket API, without extending the API with new operations, but yet
>> provide
>>>> an interface to handle multiple addresses in a socket. One
>> potentially
>>>> useful characteristic would be that this would allow name resolver
>> to return
>>>> multiple IPv4 and/or IPv6 addresses from the name server as a single
>>>> sockaddr structure, that could be directly given as a parameter to a
>> connect
>>>> call, which would lead to trying which of the addresses are
>> reachable for
>>>> the MPTCP session.
>>> Hi Pasi,
>>>
>>> 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?
>>>
>>> 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?
>>>
>>>
>>>>> SOCK_MULTISTREAM or using a combination socket type like
>> SOCK_STREAM |
>>>>> SOCK_MULTIPATH
>>>>> from the following reasons.
>>> 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?
>>>
>>> Regards,
>>> Bill Herrin
>>>
>>>
>>>
>>> --
>>> William D. Herrin ................ herrin@dirtside.com
>> bill@herrin.us
>>> 3005 Crane Dr. ...................... Web: <http://bill.herrin.us/>
>>> Falls Church, VA 22042-3004
>>> _______________________________________________
>>> multipathtcp mailing list
>>> multipathtcp@ietf.org
>>> https://www.ietf.org/mailman/listinfo/multipathtcp
>>>
>> _______________________________________________
>> multipathtcp mailing list
>> multipathtcp@ietf.org
>> https://www.ietf.org/mailman/listinfo/multipathtcp
> _______________________________________________
> multipathtcp mailing list
> multipathtcp@ietf.org
> https://www.ietf.org/mailman/listinfo/multipathtcp
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)

iEYEARECAAYFAksMYHoACgkQE5f5cImnZrsNfACgh9pUrJDwwvYhwDeJFVR/xI0t
/NgAoLjph0OwVVfegYKxYx2otnCIh8Pp
=fyli
-----END PGP SIGNATURE-----