Re: [multipathtcp] API: which address to use

William Herrin <bill@herrin.us> Mon, 09 November 2009 13:42 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 CA9443A68B5 for <multipathtcp@core3.amsl.com>; Mon, 9 Nov 2009 05:42:12 -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 2yi5l2ZMh1kT for <multipathtcp@core3.amsl.com>; Mon, 9 Nov 2009 05:42:11 -0800 (PST)
Received: from mail-ew0-f207.google.com (mail-ew0-f207.google.com [209.85.219.207]) by core3.amsl.com (Postfix) with ESMTP id 987133A6814 for <multipathtcp@ietf.org>; Mon, 9 Nov 2009 05:42:11 -0800 (PST)
Received: by ewy3 with SMTP id 3so3103659ewy.37 for <multipathtcp@ietf.org>; Mon, 09 Nov 2009 05:42:32 -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=r3lU+igAfDE4ZZFPCKkSPHoI5FgTiqpbvg02+/OInsw=; b=hMokd1EWdTk8SBy8SRwsyq5eBJVAZb0dwIkxJ6b7wlNap61H7Aj2lGKAk2L23OMevB ALJkUOSfw3CCS9GyVzvtmSGzlGAtloeRgxDf/ck1IXKIC4YaSX2pbHkvFRUIyXCboZek bFhbp208xf/4VGSm8ZyMYGHQGUqOqOZ3GzuPA=
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=SJaU/8vtzVVzw/eKy0n8l6C2ztT8Kfz/BklHRevx/ts4hS+WHbIGg4xK0A7bjIpAjV UFWxX/jD/9DlyhhnKG2g4gA8fjYApQyRGgWbu1DYJ3DzloNSY29t02kMsz8XfZTXGi+O oh8vL8GCnq3mS2rc+/PvG3KDdDYKiYcJF+t0U=
MIME-Version: 1.0
Sender: wherrin@gmail.com
Received: by 10.216.90.131 with SMTP id e3mr819363wef.69.1257774152392; Mon, 09 Nov 2009 05:42:32 -0800 (PST)
In-Reply-To: <E9EE0C1A-C9D3-4EBC-97FD-E1B1628CD2E7@iki.fi>
References: <E9EE0C1A-C9D3-4EBC-97FD-E1B1628CD2E7@iki.fi>
Date: Mon, 09 Nov 2009 08:42:32 -0500
X-Google-Sender-Auth: 63e8ed76f0e7ab37
Message-ID: <3c3e3fca0911090542h54e45784qbdbf1f338a4c3e90@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] 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: Mon, 09 Nov 2009 13:42:12 -0000

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.

Hi Pasi,

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.

For applications which are aware of Multipath TCP, the underlying
address is quite literally the wrong question. The connection has
candidate addresses, active subflows and some form of shared
identifier but it doesn't have "a" local address. Getsockname and
getpeername should fail with EMULTIPATH.

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