Continue reading this page for the instructions on configuring your kernel for MultiPath TCP.
To install MPTCP, follow this procedure:
- Get the source by checking out the git-repository, or download one of the daily snapshots. You can also apply one of the patches based on different Linux versions, available here. We highly recommend to checkout the git-repository, as you can easily get our bug-fixes with a
git pull. Access the git-repository with
git clone --depth=1 git://github.com/multipath-tcp/mptcp.git
- Then configure the Kernel by doing
make menuconfigand enable MultiPath TCP:
- You cannot set IPv6 as a module. Either compile it into the kernel, or disable it.
- enable MPTCP protocol (
Networking support->Networking options->TCP/IP networking->MPTCP protocol (MPTCP)) (if you cannot find that checkbox, then you have not correctly disabled one of the above options)
- If you want to use the Linked Increase Algorithm (LIA) Congestion Control, that guarantees fairness across a shared bottleneck, you have to enable
Networking support->Networking options->TCP: advanced congestion control->MPTCP Linked Increase. To enable it as the default congestion control, you should also enable it in "Default TCP congestion control", or you just type
echo 'lia' > /proc/sys/net/ipv4/tcp_congestion_controlin the running Kernel. Other options are "Opportunistic Linked Increase (olia)", "WVEGAS CONGESTION CONTROL (wvegas)" or "BALIA CONGESTION CONTROL (balia)".
- Choose a path-manager, by enabling "MPTCP: advanced path-manager control". More info can be found here.
- enable Policy-Routing (
Networking support->Networking options->IP: advanced router->IP: policy routing (IP_MULTIPLE_TABLES)) to correctly configure your routing tables (see below).
- Compile, install and reboot your kernel, as it is recommended by your distribution. You can then use
make deb-pkgto generate
.rpmpackages, etc. For more details, there are many more details on the wiki of your distribution, e.g. for Ubuntu, look here from the step to Build the linux-image, for CentOS, look here, etc.
- Make sure the right kernel is selected or modify Grub settings.
- You have to correctly configure your routing table. Have a look here