Multipath TCP Daemon ==================== mptcpd for Debian Introduction ------------ The Multipath TCP Daemon - `mptcpd` - is a daemon for Linux based operating systems that performs Multipath TCP [1] path management [2] 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. [1] https://www.rfc-editor.org/rfc/rfc8684.html [2] https://www.rfc-editor.org/rfc/rfc8684.html#section-3.4 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 [3] 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 [4] using the C API [5]. 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. [3] https://networkmanager.dev/blog/networkmanager-1-40/#mptcp-support [4] https://github.com/multipath-tcp/mptcpd/wiki/Plugins [5] https://mptcpd.mptcp.dev/doc/html/ [6] https://networkmanager.dev/docs/api/latest/nm-settings-nmcli.html#nm-settings-nmcli.property.connection.mptcp-flags Documentation ------------- Please reference `libmptcpd3-doc` for `mptcpd` documentation, the Plugins page on the wiki for a higher level documentation, and mptcp.dev website for the overall Multipath TCP for Linux project. Developers ---------- There are comments for each specific rule in debian/rules. The project is providing a few different binaries: - a daemon: mptcpd in usr/libexec because a systemd service starts it - a lib to help building plugins: libmptcpd - some plugins for mptcpd: .so in usr/lib/*/mptcpd - a lib to be used with LD_PRELOAD to create MPTCP sockets instead of TCP ones: libmptcpwrap in usr/lib/*/mptcpize - a tool to force apps using MPTCP sockets with libmptcpwrap: mptcpize Some Lintian warnings/errors have been ignored, see comments in *.lintian-overrides files. -- Matthieu Baerts Mon, 18 Nov 2024 10:28:54 +0100