From e9b6a9759dcf34c048c53dd124fdaf83f412afd3 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sun, 13 Sep 2020 08:39:29 +0200 Subject: [PATCH] sysctl retries1 and retries2 are customizable via the interface --- .../luasrc/controller/openmptcprouter.lua | 10 ++++++ .../luasrc/view/openmptcprouter/settings.htm | 32 +++++++++++++++++++ .../root/etc/init.d/openmptcprouter | 4 +-- .../etc/sysctl.d/zzz_openmptcprouter.conf | 3 +- 4 files changed, 46 insertions(+), 3 deletions(-) diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index c496b97af..4f456cf15 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -741,6 +741,16 @@ function settings_add() luci.sys.exec("sysctl -w net.ipv4.tcp_syn_retries=%s" % tcp_syn_retries) luci.sys.exec("sed -i 's:^net.ipv4.tcp_syn_retries=[0-9]*:net.ipv4.tcp_syn_retries=%s:' /etc/sysctl.d/zzz_openmptcprouter.conf" % tcp_syn_retries) + -- Set tcp_retries1 + local tcp_retries1 = luci.http.formvalue("tcp_retries1") + luci.sys.exec("sysctl -w net.ipv4.tcp_retries1=%s" % tcp_retries1) + luci.sys.exec("sed -i 's:^net.ipv4.tcp_retries1=[0-9]*:net.ipv4.tcp_retries1=%s:' /etc/sysctl.d/zzz_openmptcprouter.conf" % tcp_retries1) + + -- Set tcp_retries2 + local tcp_retries2 = luci.http.formvalue("tcp_retries2") + luci.sys.exec("sysctl -w net.ipv4.tcp_retries2=%s" % tcp_retries2) + luci.sys.exec("sed -i 's:^net.ipv4.tcp_retries2=[0-9]*:net.ipv4.tcp_retries2=%s:' /etc/sysctl.d/zzz_openmptcprouter.conf" % tcp_retries2) + --local tcp_retries2 = luci.http.formvalue("tcp_retries2") --luci.sys.exec("sysctl -w net.ipv4.tcp_retries2=%s" % tcp_retries2) --luci.sys.exec("sed -i 's:^net.ipv4.tcp_retries2=[0-9]*:net.ipv4.tcp_retries2=%s:' /etc/sysctl.d/zzz_openmptcprouter.conf" % tcp_retries2) diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm index c8736d66e..671eee85c 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm @@ -118,18 +118,50 @@
"> +
+
+ <%:How often TCP sends out keepalive messages when keepalive is enabled.%> +
"> +
+
+ <%:The length of time an orphaned (no longer referenced by any application) connection will remain in the FIN_WAIT_2 state before it is aborted at the local end.%> +
"> +
+
+ <%:Number of times initial SYNs for an active TCP connection attempt will be retransmitted.%> +
+
+
+
+ +
+ "> +
+
+ <%:This value influences the time, after which TCP decides, that something is wrong due to unacknowledged RTO retransmissions, and reports this suspicion to the network layer.%> +
+
+
+
+ +
+ "> +
+
+ <%:This value influences the timeout of an alive TCP connection, when RTO retransmissions remain unacknowledged.%> +
diff --git a/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter b/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter index c2e1ddec6..de5e1bd24 100755 --- a/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter +++ b/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter @@ -83,8 +83,8 @@ start_service() { } } # remove sysctl already defined in /etc/sysctl.d/ - sed -i -e '/tcp_fin_timeout/d' -e '/tcp_keepalive_time/d' -e '/nf_conntrack_max/d' -e '/tcp_syn_retries/d' -e '/tcp_fastopen/d' -e '/tcp_retries2/d' /etc/sysctl.conf - sed -i -e '/tcp_fin_timeout/d' -e '/tcp_keepalive_time/d' -e '/nf_conntrack_max/d' -e '/tcp_syn_retries/d' -e '/tcp_fastopen/d' -e '/tcp_retries2/d' /etc/sysctl.d/10-default.conf + sed -i -e '/tcp_fin_timeout/d' -e '/tcp_keepalive_time/d' -e '/nf_conntrack_max/d' -e '/tcp_syn_retries/d' -e '/tcp_fastopen/d' -e '/tcp_retries2/d' -e '/tcp_retries1/d' /etc/sysctl.conf + sed -i -e '/tcp_fin_timeout/d' -e '/tcp_keepalive_time/d' -e '/nf_conntrack_max/d' -e '/tcp_syn_retries/d' -e '/tcp_fastopen/d' -e '/tcp_retries2/d' -e '/tcp_retries1/d' /etc/sysctl.d/10-default.conf } reload_service() { diff --git a/luci-app-openmptcprouter/root/etc/sysctl.d/zzz_openmptcprouter.conf b/luci-app-openmptcprouter/root/etc/sysctl.d/zzz_openmptcprouter.conf index bc851d8f7..283ce64c5 100644 --- a/luci-app-openmptcprouter/root/etc/sysctl.d/zzz_openmptcprouter.conf +++ b/luci-app-openmptcprouter/root/etc/sysctl.d/zzz_openmptcprouter.conf @@ -2,6 +2,7 @@ net.ipv4.tcp_keepalive_time=7200 net.ipv6.conf.all.disable_ipv6=0 net.ipv4.tcp_fin_timeout=60 net.ipv4.tcp_syn_retries=3 -net.ipv4.tcp_retries2=3 +net.ipv4.tcp_retries1=3 +net.ipv4.tcp_retries2=15 net.ipv4.tcp_fastopen=3 net.ipv4.tcp_low_latency=1