Lines Matching +full:use +full:- +full:cases

1 .. SPDX-License-Identifier: GPL-2.0
11 `RFC 8684 (MPTCPv1) <https://www.rfc-editor.org/rfc/rfc8684.html>`_. It allows a
12 device to make use of multiple interfaces at once to send and receive TCP
15 fail-over if one path is down, and the traffic is seamlessly reinjected on other
22 Use cases
25 Thanks to MPTCP, being able to use multiple paths in parallel or simultaneously
26 brings new use-cases, compared to TCP:
28 - Seamless handovers: switching from one path to another while preserving
29 established connections, e.g. to be used in mobility use-cases, like on
31 - Best network selection: using the "best" available path depending on some
33 - Network aggregation: using multiple paths at the same time to have a higher
41 (Linux-specific), a *subflow* (or *path*) is created. This *subflow* consists of
44 host to be able to detect the use of MPTCP, a new field is added to the TCP
46 other things, a ``MP_CAPABLE`` option that tells the other host to use MPTCP if
56 ------------
63 Path managers are controlled by the ``net.mptcp.pm_type`` sysctl knob -- see
64 mptcp-sysctl.rst. There are two types: the in-kernel one (type ``0``) where the
71 To be able to use multiple IP addresses on a host to create multiple *subflows*
72 (paths), the default in-kernel MPTCP path-manager needs to know which IP
77 ----------------
80 use to send the next data packet. It can decide to maximize the use of the
84 Packet schedulers are controlled by the ``net.mptcp.scheduler`` sysctl knob --
85 see mptcp-sysctl.rst.
92 ----------------------
97 .. code-block:: C
105 - ``EINVAL``: (*Invalid argument*): MPTCP is not available, on kernels < 5.6.
106 - ``EPROTONOSUPPORT`` (*Protocol not supported*): MPTCP has not been compiled,
108 - ``ENOPROTOOPT`` (*Protocol not available*): MPTCP has been disabled using
109 ``net.mptcp.enabled`` sysctl knob; see mptcp-sysctl.rst.
111 MPTCP is then opt-in: applications need to explicitly request it. Note that
112 applications can be forced to use MPTCP with different techniques, e.g.
120 --------------
133 - ``MPTCP_INFO``: Uses ``struct mptcp_info``.
134 - ``MPTCP_TCPINFO``: Uses ``struct mptcp_subflow_data``, followed by an array of
136 - ``MPTCP_SUBFLOW_ADDRS``: Uses ``struct mptcp_subflow_data``, followed by an
138 - ``MPTCP_FULL_INFO``: Uses ``struct mptcp_full_info``, with one pointer to an
150 A new socket type has been added for MPTCP for the userspace-facing socket. The
152 behavior is modified using TCP-ULP.