Home
last modified time | relevance | path

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

123

/linux-6.14.4/Documentation/networking/
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.pm_type`` sysctl knob -- see
64 mptcp-sysctl.rst. There are two types: the in-kernel one (type ``0``) where the
[all …]
Dmptcp-sysctl.rst4 MPTCP Sysfs variables
7 /proc/sys/net/mptcp/* Variables
12 resent to an MPTCP peer that has not acknowledged a previous
38 Initial time period in second to disable MPTCP on active MPTCP sockets
39 when a MPTCP firewall blackhole issue happens. This time period will
41 MPTCP is re-enabled and will reset to the initial value when the
58 shutdown syscall, MPTCP sockets will maintain the status
68 Control whether MPTCP sockets can be created.
70 MPTCP sockets can be created if the value is 1. This is a
76 Set the default path manager type to use for each new MPTCP
[all …]
Dindex.rst78 mptcp
79 mptcp-sysctl
/linux-6.14.4/net/mptcp/
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.
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 …]
Dctrl.c17 #define MPTCP_SYSCTL_PATH "net/mptcp"
318 /* The following code block is to deal with middle box issues with MPTCP,
320 * The proposed solution is to disable active MPTCP globally when SYN+MPC are
321 * dropped, while SYN without MPC aren't. In this case, active side MPTCP is
324 * The timeout is reset back to 1hr when a successful active MPTCP connection is
328 /* Disable active MPTCP and record current jiffies and active_disable_times */
351 /* Calculate timeout for MPTCP active disable
352 * Return true if we are still in the active MPTCP disable period
353 * Return false if timeout already expired and we should use active MPTCP
387 /* Enable active MPTCP and reset active_disable_times if needed */
[all …]
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 …]
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.
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");
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 \
Dmib.c5 #include <net/mptcp.h>
87 * These are allocated when the first mptcp socket is created so
88 * we do not waste percpu memory if mptcp isn't in use.
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()
606 /* 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()
1278 /* sched mptcp worker to remove the subflow if no more data is pending */
1437 /* If ssk has an mptcp parent socket, use the mptcp rcvbuf occupancy,
[all …]
Dmib.h17 MPTCP_MIB_RETRANSSEGS, /* Segments retransmitted at the MPTCP-level */
40 MPTCP_MIB_NODSSWINDOW, /* Segments not in MPTCP windows */
81 MPTCP_MIB_CURRESTAB, /* Current established MPTCP connections */
Dprotocol.c7 #define pr_fmt(fmt) "MPTCP: " fmt
22 #include <net/mptcp.h>
30 #include <trace/events/mptcp.h>
207 * - use mptcp seqs
683 /* Under fallback skbs have no MPTCP extension and TCP could in __mptcp_move_skbs_from_subflow()
822 /* In most cases we will be able to lock the mptcp socket. If its already
974 /* can collapse only if MPTCP level sequence is in order and this in mptcp_skb_can_collapse_to()
1422 /* implement the mptcp packet scheduler;
1520 /* snd_nxt_new can be smaller than snd_nxt in case mptcp in mptcp_update_post_push()
1730 /* on flags based fastopen the mptcp is supposed to create the in mptcp_sendmsg_fastopen()
[all …]
/linux-6.14.4/Documentation/netlink/specs/
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-6.14.4/include/net/
Drstreason.h6 #include <uapi/linux/mptcp.h>
39 * The reasons of sk reset, which are used in DCCP/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
Dmptcp.h19 /* MPTCP sk_buff extension data */
189 /* MPTCP always clears the ext when adding it to the skb, so in mptcp_ext_matches()
198 * MPTCP collapse is allowed if neither @to or @from carry an mptcp data
/linux-6.14.4/tools/testing/selftests/net/mptcp/
Dmptcp_connect.sh61 echo -e "\t-C: enable the MPTCP data checksum"
210 ip netns exec $i sysctl -q net.mptcp.checksum_enabled=1
260 print_larger_title "New MPTCP socket can be blocked via sysctl"
263 if ! ip netns exec ${disabled_ns} sysctl net.mptcp >/dev/null; then
264 mptcp_lib_pr_fail "not able to list net.mptcp sysctl knobs"
265 mptcp_lib_result_fail "not able to list net.mptcp sysctl knobs"
270 # net.mptcp.enabled should be enabled by default
271 if [ "$(ip netns exec ${disabled_ns} sysctl net.mptcp.enabled | awk '{ print $3 }')" -ne 1 ]; then
272 mptcp_lib_pr_fail "net.mptcp.enabled sysctl is not 1 by default"
273 mptcp_lib_result_fail "net.mptcp.enabled sysctl is not 1 by default"
[all …]
Dmptcp_lib.sh160 if ! mptcp_lib_has_file "/proc/sys/net/mptcp/enabled"; then
161 mptcp_lib_pr_skip "MPTCP support is not available"
451 if ! ss -h | grep -q MPTCP; then
452 mptcp_lib_pr_skip "ss tool does not support MPTCP"
478 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 …]
Dmptcp_join.sh102 ip netns exec $netns sysctl -q net.mptcp.pm_type=0 2>/dev/null || true
104 ip netns exec $netns sysctl -q net.mptcp.checksum_enabled=1
349 ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=1
369 ip netns exec $ns1 sysctl -q net.mptcp.checksum_enabled=$ns1_enable
370 ip netns exec $ns2 sysctl -q net.mptcp.checksum_enabled=$ns2_enable
382 ip netns exec $ns1 sysctl -q net.mptcp.allow_join_initial_addr_port=$ns1_enable
383 ip netns exec $ns2 sysctl -q net.mptcp.allow_join_initial_addr_port=$ns2_enable
392 # Because the MPTCP checksum, covering the TCP options and data, has not been
394 # what we want to validate here without corrupting "random" MPTCP options.
438 ip netns exec $ns1 sysctl -q net.mptcp.checksum_enabled=1
[all …]
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}
Duserspace_pm.sh16 if ! mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
102 # Terminate the MPTCP connection and related processes
122 ip netns exec "$i" sysctl -q net.mptcp.pm_type=1
147 # the MPTCP client and server
181 ./mptcp_connect -s MPTCP -w 300 -p $app_port -l $listen_addr > /dev/null 2>&1 &
188 ./mptcp_connect -s MPTCP -w 300 -m sendfile -p $app_port $connect_addr\
193 # Capture client/server attributes from MPTCP connection netlink events
207 print_test "Established IP${is_v6} MPTCP Connection ns2 => ns1"
Dpm_netlink.sh10 echo -e "\t-i: use 'ip mptcp' instead of 'pm_nl_ctl'"
63 ip -n "${ns1}" mptcp limits
83 ip -n "${ns1}" mptcp endpoint change "${addr}" "${flags}"
/linux-6.14.4/tools/testing/selftests/bpf/prog_tests/
Dmptcp.c194 cgroup_fd = test__join_cgroup("/mptcp"); in test_base()
202 /* without MPTCP */ in test_base()
212 /* with MPTCP */ in test_base()
217 ASSERT_OK(run_test(cgroup_fd, server_fd, true), "run_test mptcp"); in test_base()
245 if (!ASSERT_EQ(protocol, IPPROTO_MPTCP, "protocol isn't MPTCP")) in verify_mptcpify()
256 "MPTCP fallback")) in verify_mptcpify()
280 /* without MPTCP */ in run_mptcpify()
332 if (SYS_NOFAIL("ip -net %s mptcp endpoint add %s %s", NS_TEST, ADDR_2, flags)) { in endpoint_init()
333 printf("'ip mptcp' not supported, skip this test.\n"); in endpoint_init()
/linux-6.14.4/include/uapi/linux/
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.

123