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