Multipath TCP Daemon

The Multipath TCP Daemon - mptcpd - is a daemon for Linux based operating systems that performs multipath TCP path management related operations in the user space. It interacts with the Linux kernel through a generic netlink connection to track per-connection information (e.g. available remote addresses), available network interfaces, request new MPTCP subflows, handle requests for subflows, etc.

Behavior

By default, this daemon will load the addr_adv plugin, which will add MPTCP endpoints with the subflow flag ("client" mode) for the default in-kernel path-manager. Note that this is something NetworkManager 1.40 or newer does by default. Having several daemons configuring the MPTCP endpoints at the same time should be avoided. This daemon is usually recommended when NetworkManager 1.40 or newer is not available, or when advanced per-connection path management is needed, using the userspace path-manager and a custom made plugin using the C API.

To change this behavior, with NetworkManager, look for the connection.mptcp-flags option in the settings, while for mptcpd, look at the /etc/mptcpd/mptcpd.conf config file, or disable the service if it is not needed. Make sure not to have both NetworkManager and mptcpd conflicting to configure the MPTCP endpoints.

Installation

mptcpd is packaged in most major distributions. If it is not available on your side, or if a more recent version is required, the build process is explaining in the Getting Started section.

Documentation

Please reference the C API for mptcpd documentation, the Plugins wiki page for a higher level documentation, and mptcp.dev for the overall Multipath TCP for Linux project.