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