xref: /linux/Documentation/networking/mptcp-sysctl.rst (revision 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95)
1.. SPDX-License-Identifier: GPL-2.0
2
3=====================
4MPTCP Sysfs variables
5=====================
6
7/proc/sys/net/mptcp/* Variables
8===============================
9
10add_addr_timeout - INTEGER (seconds)
11	Set the timeout after which an ADD_ADDR control message will be
12	resent to an MPTCP peer that has not acknowledged a previous
13	ADD_ADDR message.
14
15	The default value matches TCP_RTO_MAX. This is a per-namespace
16	sysctl.
17
18	Default: 120
19
20allow_join_initial_addr_port - BOOLEAN
21	Allow peers to send join requests to the IP address and port number used
22	by the initial subflow if the value is 1. This controls a flag that is
23	sent to the peer at connection time, and whether such join requests are
24	accepted or denied.
25
26	Joins to addresses advertised with ADD_ADDR are not affected by this
27	value.
28
29	This is a per-namespace sysctl.
30
31	Default: 1
32
33available_path_managers - STRING
34	Shows the available path managers choices that are registered. More
35	path managers may be available, but not loaded.
36
37available_schedulers - STRING
38	Shows the available schedulers choices that are registered. More packet
39	schedulers may be available, but not loaded.
40
41blackhole_timeout - INTEGER (seconds)
42	Initial time period in second to disable MPTCP on active MPTCP sockets
43	when a MPTCP firewall blackhole issue happens. This time period will
44	grow exponentially when more blackhole issues get detected right after
45	MPTCP is re-enabled and will reset to the initial value when the
46	blackhole issue goes away.
47
48	0 to disable the blackhole detection. This is a per-namespace sysctl.
49
50	Default: 3600
51
52checksum_enabled - BOOLEAN
53	Control whether DSS checksum can be enabled.
54
55	DSS checksum can be enabled if the value is nonzero. This is a
56	per-namespace sysctl.
57
58	Default: 0
59
60close_timeout - INTEGER (seconds)
61	Set the make-after-break timeout: in absence of any close or
62	shutdown syscall, MPTCP sockets will maintain the status
63	unchanged for such time, after the last subflow removal, before
64	moving to TCP_CLOSE.
65
66	The default value matches TCP_TIMEWAIT_LEN. This is a per-namespace
67	sysctl.
68
69	Default: 60
70
71enabled - BOOLEAN
72	Control whether MPTCP sockets can be created.
73
74	MPTCP sockets can be created if the value is 1. This is a
75	per-namespace sysctl.
76
77	Default: 1 (enabled)
78
79path_manager - STRING
80	Set the default path manager name to use for each new MPTCP
81	socket. In-kernel path management will control subflow
82	connections and address advertisements according to
83	per-namespace values configured over the MPTCP netlink
84	API. Userspace path management puts per-MPTCP-connection subflow
85	connection decisions and address advertisements under control of
86	a privileged userspace program, at the cost of more netlink
87	traffic to propagate all of the related events and commands.
88
89	This is a per-namespace sysctl.
90
91	* "kernel"          - In-kernel path manager
92	* "userspace"       - Userspace path manager
93
94	Default: "kernel"
95
96pm_type - INTEGER
97	Set the default path manager type to use for each new MPTCP
98	socket. In-kernel path management will control subflow
99	connections and address advertisements according to
100	per-namespace values configured over the MPTCP netlink
101	API. Userspace path management puts per-MPTCP-connection subflow
102	connection decisions and address advertisements under control of
103	a privileged userspace program, at the cost of more netlink
104	traffic to propagate all of the related events and commands.
105
106	This is a per-namespace sysctl.
107
108	Deprecated since v6.15, use path_manager instead.
109
110	* 0 - In-kernel path manager
111	* 1 - Userspace path manager
112
113	Default: 0
114
115scheduler - STRING
116	Select the scheduler of your choice.
117
118	Support for selection of different schedulers. This is a per-namespace
119	sysctl.
120
121	Default: "default"
122
123stale_loss_cnt - INTEGER
124	The number of MPTCP-level retransmission intervals with no traffic and
125	pending outstanding data on a given subflow required to declare it stale.
126	The packet scheduler ignores stale subflows.
127	A low stale_loss_cnt  value allows for fast active-backup switch-over,
128	an high value maximize links utilization on edge scenarios e.g. lossy
129	link with high BER or peer pausing the data processing.
130
131	This is a per-namespace sysctl.
132
133	Default: 4
134
135syn_retrans_before_tcp_fallback - INTEGER
136	The number of SYN + MP_CAPABLE retransmissions before falling back to
137	TCP, i.e. dropping the MPTCP options. In other words, if all the packets
138	are dropped on the way, there will be:
139
140	* The initial SYN with MPTCP support
141	* This number of SYN retransmitted with MPTCP support
142	* The next SYN retransmissions will be without MPTCP support
143
144	0 means the first retransmission will be done without MPTCP options.
145	>= 128 means that all SYN retransmissions will keep the MPTCP options. A
146	lower number might increase false-positive MPTCP blackholes detections.
147	This is a per-namespace sysctl.
148
149	Default: 2
150