Re: [multipathtcp] Multipath Address Family

William Herrin <bill@herrin.us> Tue, 24 November 2009 12:35 UTC

Return-Path: <wherrin@gmail.com>
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 4328328C125 for <multipathtcp@core3.amsl.com>; Tue, 24 Nov 2009 04:35:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.977
X-Spam-Level:
X-Spam-Status: No, score=-1.977 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
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 F07Ep5+TDEwd for <multipathtcp@core3.amsl.com>; Tue, 24 Nov 2009 04:35:02 -0800 (PST)
Received: from mail-ew0-f215.google.com (mail-ew0-f215.google.com [209.85.219.215]) by core3.amsl.com (Postfix) with ESMTP id B204A28C124 for <multipathtcp@ietf.org>; Tue, 24 Nov 2009 04:35:01 -0800 (PST)
Received: by ewy7 with SMTP id 7so12699ewy.28 for <multipathtcp@ietf.org>; Tue, 24 Nov 2009 04:34:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:date:x-google-sender-auth:message-id:subject:from:to:cc :content-type; bh=TKbADgD2go2R3pIsnkdFQDbPhzrgEdCGJ5B1IUHqRPs=; b=arQjhbv+vsPaBQlTZTqO6vH18+17f9DuJFq9sjmnCAuR58uy4zotXa5hmqVT8qsCUp CeYbrffXEP/2LdKChpyMK5A+/JZmYnYzaoRaOZ5gHbeCfEWHTdABvs4/JlelIkpWIddP zg/9pGEC4T+KCu+VYD6z/ObyDXB/aPNC/pN2s=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; b=ewLQq23uIG59J6SSQDBNMQqXxMyqyaxw5WluVGLguio72r7vXmP20RJOVefquu7nhm dUci/wFmU0ZEsqiY6HjcccFyJzUy3M6b6nCnW13d513fpvcSRsF709nM+p48X/aHpknS DsoWu/HNAzJA6bQMtHy1FlDge63AkbPYAkAcw=
MIME-Version: 1.0
Sender: wherrin@gmail.com
Received: by 10.216.88.201 with SMTP id a51mr1941861wef.154.1259066088424; Tue, 24 Nov 2009 04:34:48 -0800 (PST)
In-Reply-To: <48DA092B-F3BC-432E-A199-B265DDED39DA@iki.fi>
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>
Date: Tue, 24 Nov 2009 07:34:48 -0500
X-Google-Sender-Auth: 65a32bd2d7b3c915
Message-ID: <3c3e3fca0911240434p4d95ec7an34615ae218faa4f@mail.gmail.com>
From: William Herrin <bill@herrin.us>
To: Pasi Sarolahti <pasi.sarolahti@iki.fi>
Content-Type: text/plain; charset="ISO-8859-1"
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: Tue, 24 Nov 2009 12:35:03 -0000

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