aboutsummaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorStijn Tintel <stijn@linux-ipv6.be>2018-02-18 01:15:58 +0100
committerStijn Tintel <stijn@linux-ipv6.be>2018-02-18 02:59:57 +0100
commit1c308bbbf598e09e463f67686ff4b7dafcb98ae6 (patch)
tree2218c3d07aa6c9a67dcb1d05138b08a940b3786f /package
parent88ba41453dbc65e1d5d596073d66bdf2e59a43a1 (diff)
downloadupstream-1c308bbbf598e09e463f67686ff4b7dafcb98ae6.tar.gz
upstream-1c308bbbf598e09e463f67686ff4b7dafcb98ae6.tar.bz2
upstream-1c308bbbf598e09e463f67686ff4b7dafcb98ae6.zip
dropbear: add option to set receive window size
The default receive window size in dropbear is hardcoded to 24576 byte to limit memory usage. This value was chosen for 100Mbps networks, and limits the throughput of scp on faster networks. It also severely limits scp throughput on high-latency links. Add an option to set the receive window size so that people can improve performance without having to recompile dropbear. Setting the window size to the highest value supported by dropbear improves throughput from my build machine to an APU2 on the same LAN from 7MB/s to 7.9MB/s, and to an APU2 over a link with ~65ms latency from 320KB/s to 7.5MB/s. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Diffstat (limited to 'package')
-rwxr-xr-xpackage/network/services/dropbear/files/dropbear.init5
1 files changed, 4 insertions, 1 deletions
diff --git a/package/network/services/dropbear/files/dropbear.init b/package/network/services/dropbear/files/dropbear.init
index 3d8cb2ca5e..2225113498 100755
--- a/package/network/services/dropbear/files/dropbear.init
+++ b/package/network/services/dropbear/files/dropbear.init
@@ -42,6 +42,7 @@ validate_section_dropbear()
'SSHKeepAlive:uinteger:300' \
'IdleTimeout:uinteger:0' \
'MaxAuthTries:uinteger:3' \
+ 'RecvWindowSize:uinteger:0' \
'mdns:bool:1'
}
@@ -50,7 +51,7 @@ dropbear_instance()
local PasswordAuth enable Interface GatewayPorts \
RootPasswordAuth RootLogin rsakeyfile \
BannerFile Port SSHKeepAlive IdleTimeout \
- MaxAuthTries mdns ipaddrs
+ MaxAuthTries RecvWindowSize mdns ipaddrs
validate_section_dropbear "${1}" || {
echo "validation failed"
@@ -80,6 +81,8 @@ dropbear_instance()
[ "${IdleTimeout}" -ne 0 ] && procd_append_param command -I "${IdleTimeout}"
[ "${SSHKeepAlive}" -ne 0 ] && procd_append_param command -K "${SSHKeepAlive}"
[ "${MaxAuthTries}" -ne 0 ] && procd_append_param command -T "${MaxAuthTries}"
+ [ "${RecvWindowSize}" -gt 0 -a "${RecvWindowSize}" -le 1048576 ] && \
+ procd_append_param command -W "${RecvWindowSize}"
[ "${mdns}" -ne 0 ] && procd_add_mdns "ssh" "tcp" "$Port" "daemon=dropbear"
procd_set_param respawn
procd_close_instance