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 https://github.com/multipath-tcp/mptcp.git
- Then configure the Kernel by doing
make xconfig
ormake menuconfig
and 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 typeecho 'lia' > /proc/sys/net/ipv4/tcp_congestion_control
in 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" and pick the one you want (inline or as a module). More info can be found here.
- Do the same with the packet scheduler by enabling "MPTCP: advanced scheduler control".
- 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-pkg
to generate.deb
packages,make rpm-pkg
for.rpm
packages, 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