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 or make 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 type echo '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