Home
last modified time | relevance | path

Searched full:mptcp (Results 1 – 25 of 53) 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 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 TCPRST flags */
[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 Dmib.h17 MPTCP_MIB_RETRANSSEGS, /* Segments retransmitted at the MPTCP-level */
41 MPTCP_MIB_NODSSWINDOW, /* Segments not in MPTCP windows */
81 MPTCP_MIB_CURRESTAB, /* Current established MPTCP connections */
90 MPTCP_MIB_WINPROBE, /* MPTCP-level zero window probe */
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 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 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()
613 /* It looks like MPTCP is blocked, while TCP is not */ in subflow_finish_connect()
840 * which may not carry the MP_CAPABLE opt even on mptcp enabled in subflow_syn_recv_sock()
869 * to reset the context to non MPTCP status. in subflow_syn_recv_sock()
1288 /* sched mptcp worker for subflow cleanup if no more data is pending */
1469 /* If ssk has an mptcp parent socket, use the mptcp rcvbuf occupancy,
[all …]
H A Dprotocol.c7 #define pr_fmt(fmt) "MPTCP: " fmt
24 #include <net/mptcp.h>
32 #include <trace/events/mptcp.h>
203 * - mptcp does not maintain a msk-level window clamp
241 * - use mptcp seqs
728 /* Under fallback skbs have no MPTCP extension and TCP could in __mptcp_move_skbs_from_subflow()
862 /* In most cases we will be able to lock the mptcp socket. If its already
995 /* can collapse only if MPTCP level sequence is in order and this in mptcp_skb_can_collapse_to()
1453 /* implement the mptcp packet scheduler;
1551 /* 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
38 /* We copy the fastopen data, but that don't belong to the mptcp sequence in mptcp_fastopen_subflow_synack_set_params()
/linux/tools/testing/selftests/bpf/prog_tests/
H A Dmptcp.c196 cgroup_fd = test__join_cgroup("/mptcp"); in test_base()
204 /* without MPTCP */ in test_base()
214 /* with MPTCP */ in test_base()
219 ASSERT_OK(run_test(cgroup_fd, server_fd, true), "run_test mptcp"); in test_base()
247 if (!ASSERT_EQ(protocol, IPPROTO_MPTCP, "protocol isn't MPTCP")) in verify_mptcpify()
258 "MPTCP fallback")) in verify_mptcpify()
282 /* without MPTCP */ in run_mptcpify()
334 if (SYS_NOFAIL("ip -net %s mptcp endpoint add %s %s", NS_TEST, ADDR_2, flags)) { in endpoint_init()
335 printf("'ip mptcp' not supported, skip this test.\n"); in endpoint_init()
441 /* Test sockmap on MPTCP server handling non-mp-capable clients. */
[all …]
/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
[all...]
H A Dmptcp_lib.sh168 if ! mptcp_lib_has_file "/proc/sys/net/mptcp/enabled"; then
169 mptcp_lib_pr_skip "MPTCP support is not available"
518 if ! ss -h | grep -q MPTCP; then
519 mptcp_lib_pr_skip "ss tool does not support MPTCP"
545 ip netns exec "${!netns}" sysctl -q net.mptcp.enabled=1
671 ip -n "${ns}" mptcp endpoint show id "${id}"
683 ip -n "${ns}" mptcp limits set add_addr_accepted "${addrs}" subflows "${subflows}"
708 ip -n "${ns}" mptcp endpoint add "${addr}" ${flags//","/" "} \
723 ip -n "${ns}" mptcp endpoint delete id "${id}" ${addr:+"${addr}"}
733 ip -n "${ns}" mptcp endpoint flush
[all …]
H A Dmptcp_join.sh115 ip netns exec $netns sysctl -q net.mptcp.pm_type=0 2>/dev/null || true
117 ip netns exec $netns sysctl -q net.mptcp.checksum_enabled=1
363 ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=1
383 ip netns exec $ns1 sysctl -q net.mptcp.checksum_enabled=$ns1_enable
384 ip netns exec $ns2 sysctl -q net.mptcp.checksum_enabled=$ns2_enable
396 ip netns exec $ns1 sysctl -q net.mptcp.allow_join_initial_addr_port=$ns1_enable
397 ip netns exec $ns2 sysctl -q net.mptcp.allow_join_initial_addr_port=$ns2_enable
406 # Because the MPTCP checksum, covering the TCP options and data, has not been
408 # what we want to validate here without corrupting "random" MPTCP options.
452 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'"
259 mptcp_lib_pr_skip "MPTCP sockopt not supported"
298 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/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/Documentation/translations/zh_CN/networking/
H A Dmptcp-sysctl.rst5 :Original: Documentation/networking/mptcp-sysctl.rst
12 MPTCP Sysfs 变量
15 /proc/sys/net/mptcp/* Variables
127 在回退到 TCP(即丢弃 MPTCP 选项)之前,SYN + MP_CAPABLE
H A Dindex.rst30 mptcp-sysctl
100 * mptcp
/linux/include/uapi/linux/
H A Dmptcp_pm.h16 * @MPTCP_EVENT_CREATED: A new MPTCP connection has been created. It is the
21 * @MPTCP_EVENT_ESTABLISHED: A MPTCP connection is established (can start new
24 * @MPTCP_EVENT_CLOSED: A MPTCP connection has stopped. Attribute: token.

123