[multipathtcp] thoughts on compatibility mode
William Herrin <bill@herrin.us> Mon, 09 November 2009 15:29 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 A89EA3A69A1 for <multipathtcp@core3.amsl.com>; Mon, 9 Nov 2009 07:29:15 -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=[AWL=0.000, 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 7bifZt5aHuMv for <multipathtcp@core3.amsl.com>; Mon, 9 Nov 2009 07:29:14 -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 7E94F3A692E for <multipathtcp@ietf.org>; Mon, 9 Nov 2009 07:29:14 -0800 (PST)
Received: by ewy3 with SMTP id 3so3215703ewy.37 for <multipathtcp@ietf.org>; Mon, 09 Nov 2009 07:29:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=l75p4hwDEXIOyr/sO9v7q+VZBHTJgpFR7RY8/20xktc=; b=pdj5k1zIfofri903PUfhJwtnTzQxqiMroTXeLncP9oj5JkutNKkNWam7sdaVH7C8zH EWSFLHZMf8BYBWtVdYrvgf+8NUNrfo9w0FLCHgoMaiSx4gzvcorQtAF6tleU6K0ItOPL 8R3Yte9dA62Cd4z+LBEy7ptVO7jB5upOEGPAw=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; b=HpoWP86d0t+ZHKgIa+ziFWHx/Rdf4HKgccsm4evRk0OUMpP1hfskfCPjgDYwsYhZtB ytinVW+mB0CKI2Mxe8SK9S88G2V/GQSLilUTN8FHKDTzxuHF63ECfV3+BEyRLqGqzxZ0 FYWXJbjh6sWiAwspUqOv/lD7CEGtIYxOE5exM=
MIME-Version: 1.0
Sender: wherrin@gmail.com
Received: by 10.216.89.8 with SMTP id b8mr996393wef.180.1257780575864; Mon, 09 Nov 2009 07:29:35 -0800 (PST)
Date: Mon, 09 Nov 2009 10:29:35 -0500
X-Google-Sender-Auth: 1d554b8fbb8617a8
Message-ID: <3c3e3fca0911090729x6cc32fcds4e656bc677a4856c@mail.gmail.com>
From: William Herrin <bill@herrin.us>
To: multipathtcp@ietf.org
Content-Type: text/plain; charset="ISO-8859-1"
Subject: [multipathtcp] thoughts on compatibility mode
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 15:29:15 -0000
Hi folks, Some thoughts on compatibility mode and the API for legacy apps that aren't aware of multipath TCP: Should probably pick a default behavior but punt the final decision to the operator. He's the one in a position to know for sure whether multipath will work OK for a particular system or application. Should probably have a system default and allow it to be overridden by an environment variable that the API checks during a socket() call. MULTIPATHTCP=DISABLED MULTIPATHTCP=ENABLED MULTIPATHTCP=COMPATIBILE MULTIPATHTCP=COMPATIBILETRY MULTIPATHTCP=COMPATIBILELIE DISABLED - multipath TCP will not be used, even by applications which are built to the new API. ENABLED - multipath TCP will be used by the apps which are built to the new API. Legacy apps will not attempt multipath TCP. COMPATIBLE - all PF_INET and PF_INET6 TCP sockets (legacy apps) are also eligible to use multipath TCP, although binding a specific local address will implicitly disable it. The API uses the multipath semantics, so getsockname() and getpeername() return EMULTIPATH and accept() does not return an IP address in the sockaddr structure. COMPATIBILETRY - all PF_INET and PF_INET6 TCP sockets are eligible. accept(), getsockname() and getpeername() will return the address of the oldest active subflow whose semantics are compatible with the socket's declared address domain. If there are no such subflows, COMPATIBILETRY will act like COMPATIBILELIE. COMPATIBILELIE - all PF_INET and PF_INET6 TCP sockets are eligible. accept(), getsockname() and getpeername() will return a non-routeable IANA-assigned address whose meaning is defined as "you asked a question multipath TCP can't reliably answer." Then when folks query google for why "255.255.255.1" shows up in their logs, they'll get a bunch of documents about multipath TCP and legacy servers. Regardless of the environment variable setting, apps built to the new API will use the new API semantics. Comments? Criticisms? 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] thoughts on compatibility mode William Herrin