Home
last modified time | relevance | path

Searched full:mptcp (Results 1 – 25 of 54) sorted by relevance

123

/linux/Documentation/networking/
H A Dmptcp.rst4 Multipath TCP (MPTCP)
10 Multipath TCP or MPTCP is an extension to the standard TCP and is described in
13 packets over a single MPTCP connection. MPTCP can aggregate the bandwidth of
19 official website: `mptcp.dev <https://www.mptcp.dev>`_.
25 Thanks to MPTCP, being able to use multiple paths in parallel or simultaneously
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
48 it, the returned ``SYN+ACK`` packet will not contain MPTCP options in the TCP
63 Path managers are controlled by the ``net.mptcp.path_manager`` sysctl knob --
64 see mptcp-sysctl.rst. There are two types: the in-kernel one (``kernel``) where
[all …]
/linux/Documentation/netlink/specs/
H A Dmptcp_pm.yaml7 c-family-name: mptcp-pm-name
8 c-version-name: mptcp-pm-ver
11 cmd-cnt-name: --mptcp-pm-cmd-after-last
17 enum-name: mptcp-event-type
18 name-prefix: mptcp-event-
26 A new MPTCP connection has been created. It is the good time to
35 A MPTCP connection is established (can start new subflows).
41 A MPTCP connection has stopped.
90 name-prefix: mptcp-pm-addr-attr-
122 name-prefix: mptcp-subflow-attr-
[all …]
/linux/net/mptcp/
H A DKconfig2 config MPTCP config
3 bool "MPTCP: Multipath TCP"
9 Multipath TCP (MPTCP) connections send and receive data over multiple
12 MPTCP.
14 if MPTCP
21 bool "MPTCP: IPv6 support for Multipath TCP"
26 tristate "This builds the MPTCP KUnit tests" if !KUNIT_ALL_TESTS
30 Currently covers the MPTCP crypto and token helpers.
H A Dtoken.c23 #define pr_fmt(fmt) "MPTCP: " fmt
33 #include <net/mptcp.h>
88 * hash of some information available in the MPTCP socket. Use in mptcp_crypto_key_gen_sha()
101 * This function is called when a new mptcp connection is coming in.
103 * It creates a unique token to identify the new mptcp connection,
139 * This function is called when a new outgoing mptcp connection is
142 * It creates a unique token to identify the new mptcp connection,
145 * On success, the mptcp connection can be found again using
237 * mptcp_token_get_sock - retrieve mptcp connection sock using its token
239 * @token: token of the mptcp connection to retrieve
[all …]
H A Dctrl.c17 #define MPTCP_SYSCTL_PATH "net/mptcp"
429 /* The following code block is to deal with middle box issues with MPTCP,
431 * The proposed solution is to disable active MPTCP globally when SYN+MPC are
432 * dropped, while SYN without MPC aren't. In this case, active side MPTCP is
435 * The timeout is reset back to 1hr when a successful active MPTCP connection is
439 /* Disable active MPTCP and record current jiffies and active_disable_times */
462 /* Calculate timeout for MPTCP active disable
463 * Return true if we are still in the active MPTCP disable period
464 * Return false if timeout already expired and we should use active MPTCP
498 /* Enable active MPTCP an
[all...]
H A Dprotocol.h13 #include <uapi/linux/mptcp.h>
19 /* MPTCP option bits */
41 /* MPTCP option subtypes */
52 /* MPTCP suboption lengths */
85 /* MPTCP MP_JOIN flags */
89 /* MPTCP MP_CAPABLE flags */
97 /* MPTCP DSS flags */
105 /* MPTCP ADD_ADDR flags */
108 /* MPTCP MP_PRIO flags */
111 /* MPTCP TCPRS
[all...]
H A Dsyncookies.c8 * Unlike MP_CAPABLE, where the ACK cookie contains the needed MPTCP
10 * the token to obtain the mptcp socket nor the server-generated nonce
17 * token matches a known mptcp connection that can still accept more subflows.
90 * present in the cookie ACK mptcp option space will be checked later.
H A Dcrypto_test.c42 /* mptcp hmap will convert to be before computing the hmac */ in mptcp_crypto_test_basic()
66 .name = "mptcp-crypto",
73 MODULE_DESCRIPTION("KUnit tests for MPTCP Crypto");
H A DMakefile2 obj-$(CONFIG_MPTCP) += mptcp.o
4 mptcp-y := protocol.o subflow.o options.o token.o crypto.o ctrl.o pm.o diag.o \
H A Dsubflow.c7 #define pr_fmt(fmt) "MPTCP: " fmt
22 #include <net/mptcp.h>
27 #include <trace/events/mptcp.h>
142 /* Init mptcp request socket.
159 /* no MPTCP if MD5SIG is enabled on this socket or we may run out of in subflow_check_req()
610 /* It looks like MPTCP is blocked, while TCP is not */ in subflow_finish_connect()
837 * which may not carry the MP_CAPABLE opt even on mptcp enabled in subflow_syn_recv_sock()
866 * to reset the context to non MPTCP status. in subflow_syn_recv_sock()
1285 /* sched mptcp worker for subflow cleanup if no more data is pending */
1461 /* If ssk has an mptcp parent socket, use the mptcp rcvbuf occupancy,
[all …]
H A Dmib.c5 #include <net/mptcp.h>
92 * These are allocated when the first mptcp socket is created so
93 * we do not waste percpu memory if mptcp isn't in use.
H A Dprotocol.c7 #define pr_fmt(fmt) "MPTCP: " fmt
24 #include <net/mptcp.h>
32 #include <trace/events/mptcp.h>
194 * - mptcp does not maintain a msk-level window clamp
223 * - use mptcp seqs
678 /* Under fallback skbs have no MPTCP extension and TCP could in __mptcp_move_skbs_from_subflow()
807 /* In most cases we will be able to lock the mptcp socket. If its already
947 /* can collapse only if MPTCP level sequence is in order and this in mptcp_skb_can_collapse_to()
1398 /* implement the mptcp packet scheduler;
1496 /* snd_nxt_new can be smaller than snd_nxt in case mptcp in mptcp_update_post_push()
[all …]
H A Dfastopen.c2 /* MPTCP Fast Open Mechanism
37 /* We copy the fastopen data, but that don't belong to the mptcp sequence in mptcp_fastopen_subflow_synack_set_params()
H A Dmib.h17 MPTCP_MIB_RETRANSSEGS, /* Segments retransmitted at the MPTCP-level */
41 MPTCP_MIB_NODSSWINDOW, /* Segments not in MPTCP windows */
82 MPTCP_MIB_CURRESTAB, /* Current established MPTCP connections */
H A Dmptcp_diag.c2 /* MPTCP socket monitoring support
104 if (!ctx || strcmp(inet_csk(sk)->icsk_ulp_ops->name, "mptcp")) in mptcp_diag_dump_listeners()
241 MODULE_DESCRIPTION("MPTCP socket monitoring via SOCK_DIAG"); in mptcp_diag_exit()
/linux/include/net/
H A Drstreason.h6 #include <uapi/linux/mptcp.h>
39 * The reasons of sk reset, which are used in TCP/MPTCP protocols.
44 * 3) reset reasons in MPTCP: only for MPTCP use
127 /* Copy from include/uapi/linux/mptcp.h.
136 * RST was generated by an MPTCP-aware device.
140 * @SK_RST_REASON_MPTCP_RST_EMPTCP: MPTCP-specific error.
141 * An error has been detected in the processing of MPTCP options.
178 * making MPTCP signaling invalid. For example, this may be sent
H A Dmptcp.h20 /* MPTCP sk_buff extension data */
195 /* MPTCP always clears the ext when adding it to the skb, so in mptcp_skb_ext_copy()
204 * MPTCP collapse is allowed if neither @to or @from carry an mptcp data in mptcp_ext_matches()
/linux/tools/testing/selftests/net/mptcp/
H A Dmptcp_connect.sh61 echo -e "\t-C: enable the MPTCP data checksum"
210 ip netns exec $i sysctl -q net.mptcp.checksum_enabled=1
265 print_larger_title "New MPTCP socket can be blocked via sysctl"
268 if ! ip netns exec ${disabled_ns} sysctl net.mptcp >/dev/null; then
269 mptcp_lib_pr_fail "not able to list net.mptcp sysctl knobs"
270 mptcp_lib_result_fail "not able to list net.mptcp sysctl knobs"
275 # net.mptcp.enabled should be enabled by default
276 if [ "$(ip netns exec ${disabled_ns} sysctl net.mptcp.enabled | awk '{ print $3 }')" -ne 1 ]; then
277 mptcp_lib_pr_fail "net.mptcp.enabled sysctl is not 1 by default"
278 mptcp_lib_result_fail "net.mptcp.enabled sysctl is not 1 by default"
[all …]
H A Duserspace_pm.sh16 if ! mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
102 # Terminate the MPTCP connection and related processes
124 if [ -f /proc/sys/net/mptcp/path_manager ]; then
125 ip netns exec "$ns1" sysctl -q net.mptcp.path_manager=userspace
126 pm_type="$(ip netns exec "$ns1" sysctl -n net.mptcp.pm_type)"
133 ip netns exec "$ns1" sysctl -q net.mptcp.path_manager=error 2>/dev/null
134 pm_type="$(ip netns exec "$ns1" sysctl -n net.mptcp.pm_type)"
141 ip netns exec "$ns1" sysctl -q net.mptcp.pm_type=0
142 pm_name="$(ip netns exec "$ns1" sysctl -n net.mptcp.path_manager)"
151 ip netns exec "$i" sysctl -q net.mptcp.pm_type=1
[all …]
H A Dmptcp_lib.sh159 if ! mptcp_lib_has_file "/proc/sys/net/mptcp/enabled"; then
160 mptcp_lib_pr_skip "MPTCP support is not available"
453 if ! ss -h | grep -q MPTCP; then
454 mptcp_lib_pr_skip "ss tool does not support MPTCP"
480 ip netns exec "${!netns}" sysctl -q net.mptcp.enabled=1
606 ip -n "${ns}" mptcp endpoint show id "${id}"
618 ip -n "${ns}" mptcp limits set add_addr_accepted "${addrs}" subflows "${subflows}"
643 ip -n "${ns}" mptcp endpoint add "${addr}" ${flags//","/" "} \
658 ip -n "${ns}" mptcp endpoint delete id "${id}" ${addr:+"${addr}"}
668 ip -n "${ns}" mptcp endpoint flush
[all …]
H A Dmptcp_join.sh114 ip netns exec $netns sysctl -q net.mptcp.pm_type=0 2>/dev/null || true
116 ip netns exec $netns sysctl -q net.mptcp.checksum_enabled=1
362 ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=1
382 ip netns exec $ns1 sysctl -q net.mptcp.checksum_enabled=$ns1_enable
383 ip netns exec $ns2 sysctl -q net.mptcp.checksum_enabled=$ns2_enable
395 ip netns exec $ns1 sysctl -q net.mptcp.allow_join_initial_addr_port=$ns1_enable
396 ip netns exec $ns2 sysctl -q net.mptcp.allow_join_initial_addr_port=$ns2_enable
405 # Because the MPTCP checksum, covering the TCP options and data, has not been
407 # what we want to validate here without corrupting "random" MPTCP options.
451 ip netns exec $ns1 sysctl -q net.mptcp.checksum_enabled=1
[all …]
H A Dmptcp_sockopt.sh27 echo -e "\t-i: use 'ip mptcp' instead of 'pm_nl_ctl'"
256 mptcp_lib_pr_skip "MPTCP sockopt not supported"
295 do_transfer ${listener_ns} ${connector_ns} MPTCP MPTCP ${connect_addr}
H A Dpm_netlink.sh10 echo -e "\t-i: use 'ip mptcp' instead of 'pm_nl_ctl'"
63 ip -n "${ns1}" mptcp limits
84 ip -n "${ns1}" mptcp endpoint change "${addr}" "${flags}"
/linux/include/uapi/linux/
H A Dmptcp_pm.h15 * @MPTCP_EVENT_CREATED: A new MPTCP connection has been created. It is the
20 * @MPTCP_EVENT_ESTABLISHED: A MPTCP connection is established (can start new
23 * @MPTCP_EVENT_CLOSED: A MPTCP connection has stopped. Attribute: token.
H A Dmptcp.h79 /* MPTCP Reset reason codes, rfc8684 */
134 /* MPTCP socket options */

123