systemd/test/fuzz/fuzz-unit-file
Matthieu Baerts (NGI0) 3f69070598 core/socket: allow MPTCP protocol
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]
2024-06-12 00:14:08 +01:00
..
ask-password-console.path test: shorten sample names, drop numerical prefixes 2023-09-02 17:32:19 +03:00
binfmt_misc.automount man: update links to "API File Systems" 2024-05-28 14:48:56 +02:00
directives-all.service core: Add systemd.crash_action= kernel command line argument 2024-04-29 14:34:22 +02:00
dm-back\x2dslash.swap fuzz: rename long samples 2023-05-18 15:23:27 +02:00
empty.scope
github-19178 fuzzer: add a test case for #19178 2021-04-03 10:38:06 +01:00
machine.slice license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
oss-fuzz-6884 fuzz: unify the "fuzz-regressions" directory with the main corpus 2018-10-02 09:41:25 +02:00
oss-fuzz-6885 fuzz: unify the "fuzz-regressions" directory with the main corpus 2018-10-02 09:41:25 +02:00
oss-fuzz-6886 fuzz: unify the "fuzz-regressions" directory with the main corpus 2018-10-02 09:41:25 +02:00
oss-fuzz-6892 fuzz: unify the "fuzz-regressions" directory with the main corpus 2018-10-02 09:41:25 +02:00
oss-fuzz-6897 fuzz: unify the "fuzz-regressions" directory with the main corpus 2018-10-02 09:41:25 +02:00
oss-fuzz-6897-evverx fuzz: unify the "fuzz-regressions" directory with the main corpus 2018-10-02 09:41:25 +02:00
oss-fuzz-6908 fuzz: unify the "fuzz-regressions" directory with the main corpus 2018-10-02 09:41:25 +02:00
oss-fuzz-6917 fuzz: unify the "fuzz-regressions" directory with the main corpus 2018-10-02 09:41:25 +02:00
oss-fuzz-6977 fuzz: unify the "fuzz-regressions" directory with the main corpus 2018-10-02 09:41:25 +02:00
oss-fuzz-6977-unminimized fuzz: unify the "fuzz-regressions" directory with the main corpus 2018-10-02 09:41:25 +02:00
oss-fuzz-7004 fuzz: unify the "fuzz-regressions" directory with the main corpus 2018-10-02 09:41:25 +02:00
oss-fuzz-8064 fuzz: unify the "fuzz-regressions" directory with the main corpus 2018-10-02 09:41:25 +02:00
oss-fuzz-8827 fuzz: unify the "fuzz-regressions" directory with the main corpus 2018-10-02 09:41:25 +02:00
oss-fuzz-10007 fuzz: unify the "fuzz-regressions" directory with the main corpus 2018-10-02 09:41:25 +02:00
oss-fuzz-11569 fuzz-unit-file: add one more test case 2018-12-10 11:57:26 +01:00
oss-fuzz-13125 shared/calendarspec: do not allocate a big string on stack 2019-02-16 23:31:07 +01:00
oss-fuzz-32991 core: fix memleak of ipc_namespace_path 2021-04-07 22:12:50 +01:00
oss-fuzz-33270 core: fix crash in BPFProgram parsing 2021-05-05 17:15:04 +02:00
oss-fuzz-33876 core: fix crash in parsing of SocketBind{Allow,Deny}= 2021-05-05 17:14:58 +02:00
syslog.socket core/socket: allow MPTCP protocol 2024-06-12 00:14:08 +01:00
systemd-machined.service tree-wide: replace obsolete wiki links with systemd.io/manpages 2022-05-21 14:29:14 +02:00
systemd-resolved.service various: update links to more wiki pages 2024-05-28 14:48:53 +02:00
timers.target license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
tmpfiles-clean.timer test: shorten sample names, drop numerical prefixes 2023-09-02 17:32:19 +03:00
var-lib-machines.mount license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00