If you are looking for MPTCP in Linux >= v5.6:

https://mptcp.dev

For Linux <= 5.4, you can stay on this website.

Disable one interface for MPTCP (or put it in backup-mode)

Install our iproute-extension either by:

This allows to disable an interface for MPTCP by doing:

  ip link set dev eth0 multipath off

That way, MPTCP will not try to use this interface. Except for the initial subflow, if the route in the default routing table is pointing to this interface.

Additionally, you can specify an interface as being the backup-interface (as defined in the mptcp-draft):

  ip link set dev eth0 multipath backup

See man 8 ip-link or ip link help after installing our iproute-extension.

Note that it is also possible not to use the modified version of IPRoute2 and append the flag 0x80000 (Multipath Off) and 0x100000 (backup) in /sys/class/net/<INTERFACE>/flags

MPTCP-enabled wireshark packages

Andrei Maruseac <andrei.maruseac@gmail.com> pushed a patch into Wireshark, that allows Wireshark to correctly detect the MPTCP-options in the packets. Click here to see the patch.

So, since wireshark version 1.7.1, MPTCP support is included. Feel free to compile and install it yourself by taking the sources from http://www.wireshark.org/.

Since Ubuntu 12.10, it includes the latest wireshark together with MPTCP support.

Brandon Heller <brandonh@stanford.edu> created amd64 debian-packages to install on a Linux distribution.

If you have already Wireshark installed on your system, you have to remove it with:

  apt-get remove wireshark wireshark-common libwireshark-data

Then, download from here wireshark_1.7.1_amd64.deb and wireshark-common_1.7.1_amd64.deb.

  dpkg -i wireshark-common_1.7.1_amd64.deb
  dpkg -i wireshark_1.7.1_amd64.deb



MPTCP-support in tcpdump

Gregory Detal <gregory.detal@uclouvain.be> implemented MPTCP-support in tcpdump. Have a look here to see the source.

The code has been merged in upstream's tcpdump and is provided by your distribution's packaging.

MPTCP-support in net-tools

Ever wondered, how many MPTCP-connections you are using? Simply compile and install our customized net-tools source from the github.

Now, you just have to do:

     netstat -m

for a list of the active MPTCP connections.

Using our apt-repositories will also automatically install our net-tools package.

MPTCP-support in Apache

Markus Jungbluth <kim.markus.jungbluth@htwsaar.de> implemented an Apache-module that sets an environment variable depening on whether the connection is using MPTCP, or not.

You can get it from https://github.com/markusju/mod_mptcp. One use-case is for example when you want to display on your website whether or not a client is using MPTCP (see http://mptcp.femasrv.de for an example).

MPTCP analysis tools

Benjamin Hesmans has developed MPTCP Trace for analyzing MPTCP packet traces. Check out the tool at https://bitbucket.org/bhesmans/mptcptrace

    git clone https://github.com/multipath-tcp/mptcptrace.git
    cd mptcptrace
    ./autogen.sh
    ./configure
    make
    make install

Joseph Ishac <jishac@nasa.gov> and his team have developed a set of tools for analyzing MPTCP packet-traces. Check out their tool at https://github.com/nasa/multipath-tcp-tools/.

Find middleboxes not supporting MPTCP

A web service like http://amiusingmptcp.de (supporting MPTCPv0) or curl multipath-tcp.org can quickly tell you if you are using MPTCP or not. If not, it can be due to a configuration issue on the client side or a middlebox dropping MPTCP options.

Tracebox is very useful to identify which middlebox does that: http://www.tracebox.org/

    sudo tracebox -p 'IP/tcp{dst=443}/MPCAPABLE' multipath-tcp.org

Sometimes, only some ports are blocked (80, 443, etc.).

Feel free to report issues to the owner (ISP, etc.): most of the time, it is a mistake or due to some default configurations.