From 2057a12bd7d80635708b6a13c103057f1493bdb4 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Tue, 16 Oct 2018 14:53:56 +0800 Subject: [PATCH] add TCP-BBR option in Turbo ACC luci --- package/lean/luci-app-flowoffload/Makefile | 4 ++-- .../luasrc/model/cbi/flowoffload.lua | 5 +++++ .../luci-app-flowoffload/po/zh-cn/flowoffload.po | 6 ++++++ .../root/etc/init.d/flowoffload | 16 ++++++++++++---- 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/package/lean/luci-app-flowoffload/Makefile b/package/lean/luci-app-flowoffload/Makefile index 016d61aa0..8388255c5 100644 --- a/package/lean/luci-app-flowoffload/Makefile +++ b/package/lean/luci-app-flowoffload/Makefile @@ -6,10 +6,10 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI support for Flow Offload -LUCI_DEPENDS:=+kmod-ipt-offload +pdnsd-alt @LINUX_4_14 +LUCI_DEPENDS:=+kmod-ipt-offload +pdnsd-alt +kmod-tcp-bbr @LINUX_4_14 LUCI_PKGARCH:=all PKG_VERSION:=1.0 -PKG_RELEASE:=10 +PKG_RELEASE:=11 include $(TOPDIR)/feeds/luci/luci.mk diff --git a/package/lean/luci-app-flowoffload/luasrc/model/cbi/flowoffload.lua b/package/lean/luci-app-flowoffload/luasrc/model/cbi/flowoffload.lua index 7e7318769..81eff5d40 100644 --- a/package/lean/luci-app-flowoffload/luasrc/model/cbi/flowoffload.lua +++ b/package/lean/luci-app-flowoffload/luasrc/model/cbi/flowoffload.lua @@ -21,6 +21,11 @@ hw.rmempty = true hw.description = translate("Enable Hardware NAT (depends on hw capability like MTK 762x)") hw:depends("flow_offloading", 1) +bbr = s:option(Flag, "bbr", translate("Enable BBR")) +bbr.default = 0 +bbr.rmempty = false +bbr.description = translate("Bottleneck Bandwidth and Round-trip propagation time (BBR)") + dns = s:option(Flag, "dns", translate("DNS Acceleration")) dns.default = 0 dns.rmempty = false diff --git a/package/lean/luci-app-flowoffload/po/zh-cn/flowoffload.po b/package/lean/luci-app-flowoffload/po/zh-cn/flowoffload.po index 83718b65b..69f0b2d61 100644 --- a/package/lean/luci-app-flowoffload/po/zh-cn/flowoffload.po +++ b/package/lean/luci-app-flowoffload/po/zh-cn/flowoffload.po @@ -22,6 +22,12 @@ msgstr "开启 Flow Offloading 转发加速. (降低CPU占用 / 增强路由转 msgid "Enable Hardware NAT (depends on hw capability like MTK 762x)" msgstr "启用硬件HWNAT加速(依赖特定的硬件,例如 MTK 762x 系列)" +msgid "Enable BBR" +msgstr "启用 BBR" + +msgid "Bottleneck Bandwidth and Round-trip propagation time (BBR)" +msgstr "BBR拥塞控制算法可以加强TCP应用表现,但会降低路由器本机上的WIFI吞吐性能" + msgid "DNS Acceleration" msgstr "DNS 加速" diff --git a/package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload b/package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload index f10d49c9d..9e3e14f20 100755 --- a/package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload +++ b/package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload @@ -122,12 +122,15 @@ rr { soa=localhost,root.localhost,42,86400,900,86400,86400; } EOF - - /usr/sbin/dnscache -c /var/etc/dnscache.conf -d && echo "Start DNS Cache" + + [ -d /var/sbin ] || mkdir -p /var/sbin + [ -f /var/sbin/dnscache ] || cp -a /usr/sbin/pdnsd /var/sbin/dnscache + /var/sbin/dnscache -c /var/etc/dnscache.conf -d + echo "Start DNS Cache" } stop_pdnsd() { - kill $(pidof dnscache) >/dev/null 2>&1 || killall -9 dnscache >/dev/null 2>&1 + kill $(pidof dnscache) >/dev/null 2>&1 || kill -9 $(ps | grep dnscache | grep -v grep | awk '{print $1}') >/dev/null 2>&1 echo "Stop DNS Cache" } @@ -148,10 +151,16 @@ revert_dns() { start(){ dns=$(uci get flowoffload.@flow[0].dns 2>/dev/null) + bbr=$(uci get flowoffload.@flow[0].bbr 2>/dev/null) if [ $dns -eq 1 ]; then start_pdnsd change_dns fi + if [ $bbr -eq 1 ]; then + sysctl -w net.ipv4.tcp_congestion_control=bbr + else + sysctl -w net.ipv4.tcp_congestion_control=cubic + fi uci set firewall.@defaults[0].flow_offloading=$(uci get flowoffload.@flow[0].flow_offloading) uci set firewall.@defaults[0].flow_offloading_hw=$(uci get flowoffload.@flow[0].flow_offloading_hw) uci commit firewall @@ -182,4 +191,3 @@ restart(){ /etc/init.d/firewall restart } -