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