Re: [multipathtcp] Multipath Address Family

Michael Tüxen <Michael.Tuexen@lurchi.franken.de> Wed, 25 November 2009 18:26 UTC

Return-Path: <Michael.Tuexen@lurchi.franken.de>
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 A83D33A6944 for <multipathtcp@core3.amsl.com>; Wed, 25 Nov 2009 10:26:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.882
X-Spam-Level:
X-Spam-Status: No, score=-0.882 tagged_above=-999 required=5 tests=[AWL=0.201, BAYES_00=-2.599, HOST_MISMATCH_COM=0.311, MIME_8BIT_HEADER=0.3, RCVD_IN_PBL=0.905]
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 3Jjid6jPvEPF for <multipathtcp@core3.amsl.com>; Wed, 25 Nov 2009 10:26:36 -0800 (PST)
Received: from mail-n.franken.de (drew.ipv6.franken.de [IPv6:2001:638:a02:a001:20e:cff:fe4a:feaa]) by core3.amsl.com (Postfix) with ESMTP id 077E23A6914 for <multipathtcp@ietf.org>; Wed, 25 Nov 2009 10:26:36 -0800 (PST)
Received: from [192.168.20.2] (tmo-099-214.customers.d1-online.com [80.187.99.214]) by mail-n.franken.de (Postfix) with ESMTP id 0C19F1C0B461B; Wed, 25 Nov 2009 19:26:19 +0100 (CET)
Mime-Version: 1.0 (Apple Message framework v1077)
Content-Type: text/plain; charset="iso-8859-1"
From: Michael Tüxen <Michael.Tuexen@lurchi.franken.de>
In-Reply-To: <BF345F63074F8040B58C00A186FCA57F1C65FB29B9@NALASEXMB04.na.qualcomm.com>
Date: Wed, 25 Nov 2009 19:26:11 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <50B8B7D8-A0D3-4BFC-9471-F0929A19569D@lurchi.franken.de>
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>
To: "Laganier, Julien" <julienl@qualcomm.com>
X-Mailer: Apple Mail (2.1077)
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: Wed, 25 Nov 2009 18:26:37 -0000

On Nov 24, 2009, at 11:32 PM, 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'm interested in the userland/kernel boundary, the system calls, not any kind of library calls.
So are you suggesting to do the DNS name lookups in the kernel? This would mean that
you want to implement DLS in the kernel. I'm not sure if I really like that...
We had^H^H^H have a feature in SCTP which also requires DNS lookups right from the
kernel and no-one implemented it. 

I think Stuart was referring to some stuff in CoreFoundation, which are library calls, I think.

Best regards
Michael
> 
> --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
>