mirror of
https://github.com/systemd/systemd
synced 2024-11-05 18:25:39 +00:00
3f69070598
Multipath TCP (MPTCP), standardized in RFC8684 [1], is a TCP extension that enables a TCP connection to use different paths. It allows a device to make use of multiple interfaces at once to send and receive TCP packets over a single MPTCP connection. MPTCP can aggregate the bandwidth of multiple interfaces or prefer the one with the lowest latency, it also allows a fail-over if one path is down, and the traffic is seamlessly re-injected on other paths. To benefit from MPTCP, both the client and the server have to support it. Multipath TCP is a backward-compatible TCP extension that is enabled by default on recent Linux distributions (Debian, Ubuntu, Redhat, ...). Multipath TCP is included in the Linux kernel since version 5.6 [2]. To use it on Linux, an application must explicitly enable it when creating the socket: int sd = socket(AF_INET(6), SOCK_STREAM, IPPROTO_MPTCP); No need to change anything else in the application. This patch allows MPTCP protocol in the Socket unit configuration. So now, a <unit>.socket can contain this to use MPTCP instead of TCP: [Socket] SocketProtocol=mptcp MPTCP support has been allowed similarly to what has been already done to allow SCTP: just one line in core/socket.c, a very simple addition thanks to the flexible architecture already in place. On top of that, IPPROTO_MPTCP has also been added in the list of allowed protocols in two other places, and in the doc. It has also been added to the missing_network.h file, for systems with an old libc -- note that it was also required to include <netinet/in.h> in this file to avoid redefinition errors. Link: https://www.rfc-editor.org/rfc/rfc8684.html [1] Link: https://www.mptcp.dev [2] |
||
---|---|---|
.. | ||
fuzz-bootspec | ||
fuzz-bus-match | ||
fuzz-bus-message | ||
fuzz-calendarspec | ||
fuzz-catalog | ||
fuzz-dhcp-client | ||
fuzz-dhcp-server | ||
fuzz-dhcp-server-relay | ||
fuzz-dhcp6-client | ||
fuzz-dns-packet | ||
fuzz-env-file | ||
fuzz-etc-hosts | ||
fuzz-execute-serialize | ||
fuzz-fido-id-desc | ||
fuzz-journal-remote | ||
fuzz-journald-audit | ||
fuzz-journald-kmsg | ||
fuzz-journald-native-fd | ||
fuzz-journald-stream | ||
fuzz-journald-syslog | ||
fuzz-json | ||
fuzz-link-parser | ||
fuzz-lldp-rx | ||
fuzz-manager-serialize | ||
fuzz-ndisc-rs | ||
fuzz-netdev-parser | ||
fuzz-network-parser | ||
fuzz-nspawn-oci | ||
fuzz-nspawn-settings | ||
fuzz-resource-record | ||
fuzz-systemctl-parse-argv | ||
fuzz-udev-database | ||
fuzz-udev-rules | ||
fuzz-unit-file | ||
fuzz-varlink | ||
fuzz-varlink-idl | ||
fuzz-xdg-desktop | ||
.gitattributes | ||
generate-directives.py | ||
meson.build |