diff --git a/package/ctcgfw/luci-app-adguardhome/luasrc/controller/AdGuardHome.lua b/package/ctcgfw/luci-app-adguardhome/luasrc/controller/AdGuardHome.lua
index 96da08a953..daba814e6a 100644
--- a/package/ctcgfw/luci-app-adguardhome/luasrc/controller/AdGuardHome.lua
+++ b/package/ctcgfw/luci-app-adguardhome/luasrc/controller/AdGuardHome.lua
@@ -18,7 +18,7 @@ end
function get_template_config()
local b
local d=""
- for cnt in io.lines("/tmp/resolv.conf.auto") do
+ for cnt in io.lines("/tmp/resolv.conf.d/resolv.conf.auto") do
b=string.match (cnt,"^[^#]*nameserver%s+([^%s]+)$")
if (b~=nil) then
d=d.." - "..b.."\n"
diff --git a/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/manual.lua b/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/manual.lua
index 72a2ebffde..9e2f996b20 100644
--- a/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/manual.lua
+++ b/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/manual.lua
@@ -8,7 +8,7 @@ require("table")
function gen_template_config()
local b
local d=""
- for cnt in io.lines("/tmp/resolv.conf.auto") do
+ for cnt in io.lines("/tmp/resolv.conf.d/resolv.conf.auto") do
b=string.match (cnt,"^[^#]*nameserver%s+([^%s]+)$")
if (b~=nil) then
d=d.." - "..b.."\n"
@@ -94,4 +94,4 @@ function m.on_commit(map)
fs.writefile("/var/run/AdGlucitest","")
end
end
-return m
\ No newline at end of file
+return m
diff --git a/package/ctcgfw/luci-app-adguardhome/root/etc/init.d/AdGuardHome b/package/ctcgfw/luci-app-adguardhome/root/etc/init.d/AdGuardHome
index 5018a85d74..5a66043248 100755
--- a/package/ctcgfw/luci-app-adguardhome/root/etc/init.d/AdGuardHome
+++ b/package/ctcgfw/luci-app-adguardhome/root/etc/init.d/AdGuardHome
@@ -49,7 +49,7 @@ stop_forward_dnsmasq()
uci del_list dhcp.@dnsmasq[0].server=$addr 2>/dev/null
addrlist="`uci get dhcp.@dnsmasq[0].server 2>/dev/null`"
if [ -z "$addrlist" ] ; then
- uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto 2>/dev/null
+ uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.d/resolv.conf.auto 2>/dev/null
uci delete dhcp.@dnsmasq[0].noresolv 2>/dev/null
fi
uci commit dhcp
diff --git a/package/ctcgfw/luci-app-serverchan/root/usr/bin/serverchan/serverchan b/package/ctcgfw/luci-app-serverchan/root/usr/bin/serverchan/serverchan
index fda34a6fd2..6a38464d73 100755
--- a/package/ctcgfw/luci-app-serverchan/root/usr/bin/serverchan/serverchan
+++ b/package/ctcgfw/luci-app-serverchan/root/usr/bin/serverchan/serverchan
@@ -470,7 +470,7 @@ function rand_geturl(){
uci delete network.wan.mtu
uci commit network
uci set dhcp.@dnsmasq[0].port='53'
- uci set dhcp.@dnsmasq[0].resolvfile='/tmp/resolv.conf.auto'
+ uci set dhcp.@dnsmasq[0].resolvfile='/tmp/resolv.conf.d/resolv.conf.auto'
uci delete dhcp.@dnsmasq[0].server
uci delete dhcp.@dnsmasq[0].noresolv
uci commit dhcp
diff --git a/package/lean/dnsforwarder/files/etc/init.d/dnsforwarder b/package/lean/dnsforwarder/files/etc/init.d/dnsforwarder
index 4b105ba302..4af8971985 100755
--- a/package/lean/dnsforwarder/files/etc/init.d/dnsforwarder
+++ b/package/lean/dnsforwarder/files/etc/init.d/dnsforwarder
@@ -202,7 +202,7 @@ stop()
local addr=$(uci get dnsforwarder.@arguments[0].addr 2>/dev/null)
addr=${addr/:/#}
uci del_list dhcp.@dnsmasq[0].server=$addr 2>/dev/null
- uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto 2>/dev/null
+ uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.d/resolv.conf.auto 2>/dev/null
uci delete dhcp.@dnsmasq[0].noresolv 2>/dev/null
uci delete dhcp.@dnsmasq[0].serversfile 2>/dev/null
uci commit dhcp
diff --git a/package/lean/luci-app-flowoffload/Makefile b/package/lean/luci-app-flowoffload/Makefile
deleted file mode 100644
index a65cfc034d..0000000000
--- a/package/lean/luci-app-flowoffload/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright (C) 2016 Openwrt.org
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=LuCI support for Flow Offload
-LUCI_DEPENDS:=+kmod-ipt-offload +pdnsd-alt +kmod-tcp-bbr
-LUCI_PKGARCH:=all
-PKG_VERSION:=1.0
-PKG_RELEASE:=15
-
-include $(TOPDIR)/feeds/luci/luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
-
diff --git a/package/lean/luci-app-flowoffload/luasrc/controller/flowoffload.lua b/package/lean/luci-app-flowoffload/luasrc/controller/flowoffload.lua
deleted file mode 100644
index 08314df9ce..0000000000
--- a/package/lean/luci-app-flowoffload/luasrc/controller/flowoffload.lua
+++ /dev/null
@@ -1,46 +0,0 @@
-module("luci.controller.flowoffload", package.seeall)
-
-function index()
- if not nixio.fs.access("/etc/config/flowoffload") then
- return
- end
- local page
- page = entry({"admin", "network", "flowoffload"}, cbi("flowoffload"), _("Turbo ACC Center"), 101)
- page.i18n = "flowoffload"
- page.dependent = true
-
- entry({"admin", "network", "flowoffload", "status"}, call("action_status"))
-end
-
-local function is_running()
- return luci.sys.call("[ `cat /sys/module/xt_FLOWOFFLOAD/refcnt 2>/dev/null` -gt 0 ] 2>/dev/null") == 0
-end
-
-local function is_bbr()
- return luci.sys.call("[ `cat /proc/sys/net/ipv4/tcp_congestion_control 2>/dev/null` = bbr ] 2>/dev/null") == 0
-end
-
-local function is_fullcone()
- return luci.sys.call("[ `cat /sys/module/xt_FULLCONENAT/refcnt 2>/dev/null` -gt 0 ] 2>/dev/null") == 0
-end
-
-local function is_dns()
- return luci.sys.call("[ x$(uci get flowoffload.@flow[0].dnscache_enable 2>/dev/null) != x3 ] && pgrep dnscache >/dev/null || pgrep AdGuardHome >/dev/null") == 0
-end
-
-local function is_ad()
- return luci.sys.call("pgrep AdGuardHome >/dev/null") == 0
-end
-
-function action_status()
- luci.http.prepare_content("application/json")
- luci.http.write_json({
- run_state = is_running(),
- down_state = is_bbr(),
- up_state = is_fullcone(),
- dns_state = is_dns(),
- ad_state = is_ad()
- })
-end
-
-
diff --git a/package/lean/luci-app-flowoffload/luasrc/model/cbi/flowoffload.lua b/package/lean/luci-app-flowoffload/luasrc/model/cbi/flowoffload.lua
deleted file mode 100644
index 50739560ce..0000000000
--- a/package/lean/luci-app-flowoffload/luasrc/model/cbi/flowoffload.lua
+++ /dev/null
@@ -1,50 +0,0 @@
-local m,s,o
-local SYS = require "luci.sys"
-local trport = 3001
-local button = ""
-if luci.sys.call("pidof AdGuardHome >/dev/null") == 0 then
- button = " "
-end
-
-m = Map("flowoffload")
-m.title = translate("Turbo ACC Acceleration Settings")
-m.description = translate("Opensource Linux Flow Offload driver (Fast Path or HWNAT)")
-m:append(Template("flow/status"))
-
-s = m:section(TypedSection, "flow")
-s.addremove = false
-s.anonymous = true
-
-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
-dns.description = translate("Enable DNS Cache Acceleration and anti ISP DNS pollution")
-
-o = s:option(ListValue, "dnscache_enable", translate("Resolve Dns Mode"), translate("AdGuardHome's login username/passwd: AdGuardHome, web console addr: IP:3001") .. button)
-o:value("1", translate("Use Pdnsd query and cache"))
-if nixio.fs.access("/usr/bin/dnsforwarder") then
-o:value("2", translate("Use dnsforwarder query and cache"))
-end
-if nixio.fs.access("/usr/bin/AdGuardHome") then
-o:value("3", translate("Use AdGuardHome query and cache"))
-end
-o.default = 1
-o:depends("dns", 1)
-
-o = s:option(Value, "dns_server", translate("Upsteam DNS Server"))
-o.default = "114.114.114.114,114.114.115.115,223.5.5.5,223.6.6.6,180.76.76.76,119.29.29.29,119.28.28.28,1.2.4.8,210.2.4.8"
-o.description = translate("Muitiple DNS server can saperate with ','")
-o:depends("dnscache_enable", 1)
-o:depends("dnscache_enable", 2)
-
-o = s:option(Value, "ipv6dns_server", translate("Upsteam IPV6 DNS Server"))
-o.default = "2001:4860:4860::8888,2001:4860:4860::8844,2001:2001::1111,2001:2001::1001,2400:da00::6666,240C::6666,240C::6644"
-o.description = translate("Muitiple IPV6 DNS server can saperate with ','")
-o:depends("dnscache_enable", 2)
-
-return m
diff --git a/package/lean/luci-app-flowoffload/luasrc/view/flow/status.htm b/package/lean/luci-app-flowoffload/luasrc/view/flow/status.htm
deleted file mode 100644
index 58373ef01b..0000000000
--- a/package/lean/luci-app-flowoffload/luasrc/view/flow/status.htm
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
diff --git a/package/lean/luci-app-flowoffload/po/zh_Hans/flowoffload.po b/package/lean/luci-app-flowoffload/po/zh_Hans/flowoffload.po
deleted file mode 100644
index bbaca03d85..0000000000
--- a/package/lean/luci-app-flowoffload/po/zh_Hans/flowoffload.po
+++ /dev/null
@@ -1,57 +0,0 @@
-msgid "Flow Offload ACC"
-msgstr "Flow Offload 转发加速"
-
-msgid "Turbo ACC Center"
-msgstr "Turbo ACC 网络加速"
-
-msgid "Turbo ACC Acceleration Settings"
-msgstr "Turbo ACC 网络加速设置"
-
-msgid "Linux Flow Offload Forwarding Engine Settings"
-msgstr "Linux Flow Offload Forwarding 转发加速引擎设置"
-
-msgid "Opensource Linux Flow Offload driver (Fast Path or HWNAT)"
-msgstr "开源 Linux Flow Offload 驱动 (支持 Fast Path 或者 HWNAT)"
-
-msgid "Enable"
-msgstr "启用"
-
-msgid "Enable BBR"
-msgstr "启用 BBR"
-
-msgid "Bottleneck Bandwidth and Round-trip propagation time (BBR)"
-msgstr "使用BBR拥塞控制算法可以加强TCP应用表现"
-
-msgid "DNS Acceleration"
-msgstr "DNS 加速"
-
-msgid "Enable DNS Cache Acceleration and anti ISP DNS pollution"
-msgstr "启用DNS多线程查询、缓存,并防止ISP的DNS广告和域名劫持"
-
-msgid "Resolve Dns Mode"
-msgstr "DNS解析方式"
-
-msgid "Use Pdnsd query and cache"
-msgstr "使用pdnsd解析"
-
-msgid "Use dnsforwarder query and cache"
-msgstr "使用dnsforwarder解析"
-
-msgid "Use AdGuardHome query and cache"
-msgstr "使用AdGuardHome解析去广告"
-
-msgid "Upsteam DNS Server"
-msgstr "上游 DNS 服务器(国内)"
-
-msgid "Upsteam IPV6 DNS Server"
-msgstr "上游 IPV6 DNS 服务器"
-
-msgid "Muitiple DNS server can saperate with ','"
-msgstr "支持多个上游DNS服务器,用','分隔(注意用英文逗号).请填写您最快的DNS服务器"
-
-msgid "Muitiple IPV6 DNS server can saperate with ','"
-msgstr "支持dnsforwarder解析多个上游IPV6 DNS服务器,用','分隔(注意用英文逗号).请填写您最快的DNS服务器"
-
-msgid "AdGuardHome's login username/passwd: AdGuardHome, web console addr: IP:3001"
-msgstr "AdGuardHome 网页控制台地址:IP:3001 登录账号/密码:AdGuardHome"
-
diff --git a/package/lean/luci-app-flowoffload/root/etc/config/flowoffload b/package/lean/luci-app-flowoffload/root/etc/config/flowoffload
deleted file mode 100644
index 330aa60d5d..0000000000
--- a/package/lean/luci-app-flowoffload/root/etc/config/flowoffload
+++ /dev/null
@@ -1,9 +0,0 @@
-
-config flow
- option bbr '0'
- option dns '0'
- option dnscache_enable '1'
- option dns_server '114.114.114.114,114.114.115.115,223.5.5.5,223.6.6.6,180.76.76.76,119.29.29.29,119.28.28.28,1.2.4.8,210.2.4.8'
- option ipv6dns_server '240c::6666,240c::6644,2001:da8::666,2001:da8:202:10::36,2001:da8:8000:1:202:120:2:100'
-
-
diff --git a/package/lean/luci-app-flowoffload/root/etc/uci-defaults/flowoffload b/package/lean/luci-app-flowoffload/root/etc/uci-defaults/flowoffload
deleted file mode 100755
index 246bccfec5..0000000000
--- a/package/lean/luci-app-flowoffload/root/etc/uci-defaults/flowoffload
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-uci set firewall.@defaults[0].flow_offloading=1
-uci commit firewall
-
-uci -q batch <<-EOF >/dev/null
- delete ucitrack.@flowoffload[-1]
- add ucitrack flowoffload
- set ucitrack.@flowoffload[-1].init=flowoffload
- commit ucitrack
-EOF
-
-exit 0
diff --git a/package/lean/luci-app-flowoffload/root/usr/share/dnscache/dnscache-while.sh b/package/lean/luci-app-flowoffload/root/usr/share/dnscache/dnscache-while.sh
deleted file mode 100755
index 37e012983f..0000000000
--- a/package/lean/luci-app-flowoffload/root/usr/share/dnscache/dnscache-while.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh
-
-sleeptime=60
-logfile="/var/log/dnscache.file"
-adg_logfile="/etc/AdGuardHome/data/querylog.json"
-dns_enable=$(uci get flowoffload.@flow[0].dns 2>/dev/null)
-dnscache_enable=$(uci get flowoffload.@flow[0].dnscache_enable 2>/dev/null)
-
-clean_log(){
-logrow=$(grep -c "" ${logfile})
-if [ $logrow -ge 500 ];then
- cat /dev/null > ${logfile}
- echo "$curtime Log条数超限,清空处理!" >> ${logfile}
-fi
-if [ $dnscache_enable = "3" ];then
- adg_logrow=$(grep -c "" ${adg_logfile})
- if [ $adg_logrow -ge 500 ];then
- cat /dev/null > ${adg_logfile}
- echo "$curtime Log条数超限,清空处理!" >> ${adg_logfile}
- fi
-fi
-}
-
-while [ $dns_enable -eq 1 ];
-do
-curtime=`date "+%H:%M:%S"`
-echo "$curtime online! "
-if [ $dns_enable -eq 1 ]; then
- if [ $dnscache_enable = "3" ];then
- if ! pidof AdGuardHome>/dev/null;then
- AdGuardHome -c /etc/AdGuardHome/AdGuardHome.yaml -w /etc/AdGuardHome &
- echo "$curtime 重启服务!" >> ${logfile}
- fi
- else
- if ! pidof dnscache>/dev/null; then
- if [ $dnscache_enable = "1" ];then
- /usr/sbin/dnscache -c /var/etc/dnscache.conf &
- elif [ $dnscache_enable = "2" ];then
- dnscache -f /var/run/dnscache/dnscache.conf &
- fi
- echo "$curtime 重启服务!" >> ${logfile}
- fi
- fi
-fi
-
-clean_log
-sleep ${sleeptime}
-continue
-done
-
diff --git a/package/lean/luci-app-flowoffload/root/usr/share/rpcd/acl.d/luci-app-flowoffload.json b/package/lean/luci-app-flowoffload/root/usr/share/rpcd/acl.d/luci-app-flowoffload.json
deleted file mode 100644
index 70e23a86c1..0000000000
--- a/package/lean/luci-app-flowoffload/root/usr/share/rpcd/acl.d/luci-app-flowoffload.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "luci-app-flowoffload": {
- "description": "Grant UCI access for luci-app-flowoffload",
- "read": {
- "uci": [ "flowoffload" ]
- },
- "write": {
- "uci": [ "flowoffload" ]
- }
- }
-}
diff --git a/package/lean/luci-app-sfe/Makefile b/package/lean/luci-app-sfe/Makefile
deleted file mode 100644
index 7320a83664..0000000000
--- a/package/lean/luci-app-sfe/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright (C) 2016 Openwrt.org
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=LuCI support for Turbo ACC (SFE)
-LUCI_DEPENDS:=+kmod-fast-classifier +pdnsd-alt +kmod-tcp-bbr
-LUCI_PKGARCH:=all
-PKG_VERSION:=1.0
-PKG_RELEASE:=13
-
-include $(TOPDIR)/feeds/luci/luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
-
diff --git a/package/lean/luci-app-sfe/luasrc/controller/sfe.lua b/package/lean/luci-app-sfe/luasrc/controller/sfe.lua
deleted file mode 100644
index 20fb299aa4..0000000000
--- a/package/lean/luci-app-sfe/luasrc/controller/sfe.lua
+++ /dev/null
@@ -1,44 +0,0 @@
-module("luci.controller.sfe", package.seeall)
-
-function index()
- if not nixio.fs.access("/etc/config/sfe") then
- return
- end
- local page
- page = entry({"admin", "network", "sfe"}, cbi("sfe"), _("Turbo ACC Center"), 100)
- page.i18n = "sfe"
- page.dependent = true
-
- entry({"admin", "network", "sfe", "status"}, call("action_status"))
-end
-
-local function is_running()
- return luci.sys.call("lsmod | grep fast_classifier >/dev/null") == 0
-end
-
-local function is_bbr()
- return luci.sys.call("sysctl net.ipv4.tcp_congestion_control | grep bbr >/dev/null") == 0
-end
-
-local function is_fullcone()
- return luci.sys.call("iptables -t nat -L -n --line-numbers | grep FULLCONENAT >/dev/null") == 0
-end
-
-local function is_dns()
- return luci.sys.call("[ x$(uci get sfe.config.dnscache_enable 2>/dev/null) != x3 ] && pgrep dnscache >/dev/null || pgrep AdGuardHome >/dev/null") == 0
-end
-
-local function is_ad()
- return luci.sys.call("pgrep AdGuardHome >/dev/null") == 0
-end
-
-function action_status()
- luci.http.prepare_content("application/json")
- luci.http.write_json({
- run_state = is_running(),
- down_state = is_bbr(),
- up_state = is_fullcone(),
- dns_state = is_dns(),
- ad_state = is_ad()
- })
-end
diff --git a/package/lean/luci-app-sfe/luasrc/model/cbi/sfe.lua b/package/lean/luci-app-sfe/luasrc/model/cbi/sfe.lua
deleted file mode 100644
index 7ebdc4749e..0000000000
--- a/package/lean/luci-app-sfe/luasrc/model/cbi/sfe.lua
+++ /dev/null
@@ -1,67 +0,0 @@
-local trport = 3001
-local button = ""
-if luci.sys.call("pidof AdGuardHome >/dev/null") == 0 then
- button = " "
-end
-
-m = Map("sfe")
-m.title = translate("Turbo ACC Acceleration Settings")
-m.description = translate("Opensource Qualcomm Shortcut FE driver (Fast Path)")
-
-m:append(Template("sfe/status"))
-
-s = m:section(TypedSection, "sfe", "")
-s.addremove = false
-s.anonymous = true
-
-
-enable = s:option(Flag, "enabled", translate("Enable SFE Fast Path"))
-enable.default = 0
-enable.rmempty = false
-enable.description = translate("Enable Fast Path offloading for connections. (decrease cpu load / increase routing throughput)")
-
-wifi = s:option(Flag, "wifi", translate("Bridge Acceleration"))
-wifi.default = 0
-wifi.rmempty = false
-wifi.description = translate("Enable Bridge Acceleration (may be functional conflict with bridge-mode VPN Server)")
-wifi:depends("enabled", 1)
-
-ipv6 = s:option(Flag, "ipv6", translate("IPv6 Acceleration"))
-ipv6.default = 0
-ipv6.rmempty = false
-ipv6.description = translate("Enable IPv6 Acceleration")
-ipv6:depends("enabled", 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
-dns.description = translate("Enable DNS Cache Acceleration and anti ISP DNS pollution")
-
-o = s:option(ListValue, "dnscache_enable", translate("Resolve Dns Mode"), translate("AdGuardHome's login username/passwd: AdGuardHome, web console addr: IP:3001") .. button)
-o:value("1", translate("Use Pdnsd query and cache"))
-if nixio.fs.access("/usr/bin/dnsforwarder") then
-o:value("2", translate("Use dnsforwarder query and cache"))
-end
-if nixio.fs.access("/usr/bin/AdGuardHome") then
-o:value("3", translate("Use AdGuardHome query and cache"))
-end
-o.default = 1
-o:depends("dns", 1)
-
-o = s:option(Value, "dns_server", translate("Upsteam DNS Server"))
-o.default = "114.114.114.114,114.114.115.115,223.5.5.5,223.6.6.6,180.76.76.76,119.29.29.29,119.28.28.28,1.2.4.8,210.2.4.8"
-o.description = translate("Muitiple DNS server can saperate with ','")
-o:depends("dnscache_enable", 1)
-o:depends("dnscache_enable", 2)
-
-o = s:option(Value, "ipv6dns_server", translate("Upsteam IPV6 DNS Server"))
-o.default = "2001:4860:4860::8888,2001:4860:4860::8844,2001:2001::1111,2001:2001::1001,2400:da00::6666,240C::6666,240C::6644"
-o.description = translate("Muitiple IPV6 DNS server can saperate with ','")
-o:depends("dnscache_enable", 2)
-
-return m
diff --git a/package/lean/luci-app-sfe/luasrc/view/sfe/status.htm b/package/lean/luci-app-sfe/luasrc/view/sfe/status.htm
deleted file mode 100644
index e38724c8e7..0000000000
--- a/package/lean/luci-app-sfe/luasrc/view/sfe/status.htm
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
diff --git a/package/lean/luci-app-sfe/po/zh_Hans/sfe.po b/package/lean/luci-app-sfe/po/zh_Hans/sfe.po
deleted file mode 100644
index 4b985b47c6..0000000000
--- a/package/lean/luci-app-sfe/po/zh_Hans/sfe.po
+++ /dev/null
@@ -1,81 +0,0 @@
-msgid "SFE Acceleration"
-msgstr "SFE 转发加速"
-
-msgid "Turbo ACC Center"
-msgstr "Turbo ACC 网络加速"
-
-msgid "Turbo ACC Acceleration Settings"
-msgstr "Turbo ACC 网络加速设置"
-
-msgid "Shortcut Forwarding Engine Acceleration Settings"
-msgstr "SFE 转发加速引擎设置"
-
-msgid "Opensource Qualcomm Shortcut FE driver (Fast Path)"
-msgstr "来自高通开源的 Shortcut FE 转发加速引擎 (Fast Path)"
-
-msgid "Enable"
-msgstr "启用"
-
-msgid "Enable SFE Fast Path"
-msgstr "启用 SFE Fast Path 加速"
-
-msgid "Enable Fast Path offloading for connections. (decrease cpu load / increase routing throughput)"
-msgstr "开启 Fast Path 转发加速. (降低CPU占用 / 增强路由转发性能,和多WAN或者QOS功能可能会冲突)"
-
-msgid "Bridge Acceleration"
-msgstr "桥接加速"
-
-msgid "Enable Bridge Acceleration (may be functional conflict with bridge-mode VPN Server)"
-msgstr "启用桥接加速 (可能会和路由器上桥接模式的VPN服务器冲突)"
-
-msgid "IPv6 Acceleration"
-msgstr "IPv6 加速"
-
-msgid "Enable IPv6 Acceleration"
-msgstr "开启IPv6加速"
-
-msgid "Enable BBR"
-msgstr "启用 BBR"
-
-msgid "Bottleneck Bandwidth and Round-trip propagation time (BBR)"
-msgstr "BBR拥塞控制算法可以加强TCP应用表现"
-
-msgid "DNS Acceleration"
-msgstr "DNS 加速"
-
-msgid "Enable DNS Cache Acceleration and anti ISP DNS pollution"
-msgstr "启用DNS多线程查询、缓存,并防止ISP的DNS广告和域名劫持"
-
-msgid "Resolve Dns Mode"
-msgstr "DNS解析方式"
-
-msgid "Enable dnsmasq killqqad"
-msgstr "启用dnsmasq去广告"
-
-msgid "dnsmasq killqqad"
-msgstr "dnsmasq去广告"
-
-msgid "Use Pdnsd query and cache"
-msgstr "使用pdnsd解析"
-
-msgid "Use dnsforwarder query and cache"
-msgstr "使用dnsforwarder解析"
-
-msgid "Use AdGuardHome query and cache"
-msgstr "使用AdGuardHome解析去广告"
-
-msgid "Upsteam DNS Server"
-msgstr "上游 DNS 服务器(国内)"
-
-msgid "Upsteam IPV6 DNS Server"
-msgstr "上游 IPV6 DNS 服务器"
-
-msgid "Muitiple DNS server can saperate with ','"
-msgstr "支持多个上游DNS服务器,用','分隔(注意用英文逗号).请填写您最快的DNS服务器"
-
-msgid "Muitiple IPV6 DNS server can saperate with ','"
-msgstr "支持dnsforwarder解析多个上游IPV6 DNS服务器,用','分隔(注意用英文逗号).请填写您最快的DNS服务器"
-
-msgid "AdGuardHome's login username/passwd: AdGuardHome, web console addr: IP:3001"
-msgstr "AdGuardHome 网页控制台地址:IP:3001 登录账号/密码:AdGuardHome"
-
diff --git a/package/lean/luci-app-sfe/root/etc/config/sfe b/package/lean/luci-app-sfe/root/etc/config/sfe
deleted file mode 100644
index 0ca91221d8..0000000000
--- a/package/lean/luci-app-sfe/root/etc/config/sfe
+++ /dev/null
@@ -1,11 +0,0 @@
-
-config sfe 'config'
- option enabled '1'
- option ipv6 '0'
- option wifi '0'
- option bbr '0'
- option dns '0'
- option dnscache_enable '1'
- option dns_server '114.114.114.114,114.114.115.115,223.5.5.5,223.6.6.6,180.76.76.76,119.29.29.29,119.28.28.28,1.2.4.8,210.2.4.8'
- option ipv6dns_server '240c::6666,240c::6644,2001:da8::666,2001:da8:202:10::36,2001:da8:8000:1:202:120:2:100'
-
diff --git a/package/lean/luci-app-sfe/root/etc/init.d/sfe b/package/lean/luci-app-sfe/root/etc/init.d/sfe
deleted file mode 100755
index 955321ee55..0000000000
--- a/package/lean/luci-app-sfe/root/etc/init.d/sfe
+++ /dev/null
@@ -1,299 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2007-2012 OpenWrt.org
-
-START=90
-
-USE_PROCD=1
-
-
-DNSMASQ_RESTART=N
-DNS_SERVER="114.114.114.114,114.114.115.115,223.5.5.5,223.6.6.6,180.76.76.76,119.29.29.29,119.28.28.28,1.2.4.8,210.2.4.8"
-IPV6DNS_SERVER="240c::6666,240c::6644,2001:da8::666,2001:da8:202:10::36,2001:da8:8000:1:202:120:2:100"
-
-lan_addr=$(uci get network.lan.ipaddr)
-
-start_pdnsd() {
- DNS_SERVER=$(uci get sfe.config.dns_server 2>/dev/null)
- cp -a /usr/sbin/pdnsd /usr/sbin/dnscache
- sleep 1
- [ -d /var/etc ] || mkdir -p /var/etc
-
- if [ ! -f /var/dnscache/pdnsd.cache ]; then
- mkdir -p /var/dnscache
- echo -ne "pd13\000\000\000\000" > /var/dnscache/pdnsd.cache
- chown -R nobody.nogroup /var/dnscache
- fi
-
- cat > /var/etc/dnscache.conf </dev/null)
- IPV6DNS_SERVER=$(uci get sfe.config.ipv6dns_server 2>/dev/null)
- dnscache_enable=$(uci get sfe.config.dnscache_enable 2>/dev/null)
- if [ $dnscache_enable = "2" ]; then
- localserver=0.0.0.0:5333
- elif [ $dnscache_enable = "3" ]; then
- localserver=0.0.0.0:5383
- fi
- cp -a /usr/bin/dnsforwarder /usr/sbin/dnscache
- sleep 1
- DNSCACHE_CONF=/var/run/dnscache/dnscache.conf
- PID_PATH=/var/run/dnscache
- PID_FILE=dns.pid
- mkdir -p $PID_PATH
- pid=`ps | awk '$5 ~ /\[dnscache\]/ {print $1}'`
-
- cat > /var/run/dnscache/dnscache.conf </dev/null 2>&1 || kill -9 $(ps | grep AdGuardHome | grep -v "grep" | awk '{print $1}') >/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
- rm -rf /var/run/dnscache
- rm -rf /var/dnscache
- echo "Stop DNS Cache"
-
-}
-
-change_dns() {
- uci delete dhcp.@dnsmasq[0].server >/dev/null 2>&1
- uci add_list dhcp.@dnsmasq[0].server=127.0.0.1#5333
- uci set dhcp.@dnsmasq[0].noresolv=1
- uci commit dhcp
-
-}
-
-revert_dns() {
- uci del_list dhcp.@dnsmasq[0].server=127.0.0.1#5333 >/dev/null 2>&1
- uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto
- uci set dhcp.@dnsmasq[0].noresolv=0
- uci commit dhcp
-
-}
-
-start_service() {
- enable=$(uci get sfe.config.enabled 2>/dev/null)
- wifi=$(uci get sfe.config.wifi)
- ipv6=$(uci get sfe.config.ipv6)
- dns=$(uci get sfe.config.dns 2>/dev/null)
- dnscache_enable=$(uci get sfe.config.dnscache_enable 2>/dev/null)
- bbr=$(uci get sfe.config.bbr 2>/dev/null)
-
- if [ $enable -eq 1 ]; then
- ! (lsmod | grep fast_classifier >/dev/null) && (modprobe fast_classifier)
- if [ $wifi -eq 1 ] ; then
- echo 1 > /sys/fast_classifier/skip_to_bridge_ingress
- else
- echo 0 > /sys/fast_classifier/skip_to_bridge_ingress
- fi
-
- if [ $ipv6 -eq 1 ]; then
- sfe_ipv6=$(cat /sys/sfe_ipv6/debug_dev)
- [ ! -f /dev/sfe_ipv6 ] && mknod /dev/sfe_ipv6 c $sfe_ipv6 0
- else
- rm -f /dev/sfe_ipv6
- fi
- else
- rmmod fast_classifier >/dev/null 2>&1
- fi
-
- if [ $dns -eq 1 ]; then
- kill -9 $(ps | grep dnscache-while.sh | grep -v "grep" | awk '{print $1}') >/dev/null 2>&1
- stop_dnscache
- sleep 1
- rm -f /var/log/dnscache.file
- rm -f /etc/AdGuardHome/data/querylog.json*
- if [ $dnscache_enable = "1" ]; then
- start_pdnsd
- elif [ $dnscache_enable = "2" ]; then
- start_dnsforwarder
- elif [ $dnscache_enable = "3" ]; then
- AdGuardHome -c /etc/AdGuardHome/AdGuardHome.yaml -w /etc/AdGuardHome -h ${lan_addr} -p 3001 --no-check-update &
- fi
- change_dns
- nohup /usr/share/dnscache/dnscache-while.sh > /var/log/dnscache.file 2>&1 &
- else
- stop_dnscache
- revert_dns
- kill -9 $(ps | grep dnscache-while.sh | grep -v "grep" | awk '{print $1}') >/dev/null 2>&1
- fi
-
- if [ $bbr -eq 1 ]; then
- sysctl -w net.ipv4.tcp_congestion_control=bbr
- else
- sysctl -w net.ipv4.tcp_congestion_control=cubic
- fi
-
- if [ "$DNSMASQ_RESTART" = N ]; then
- /etc/init.d/dnsmasq restart
- fi
-}
-
-stop_service(){
- enable=$(uci get sfe.config.enabled 2>/dev/null)
- [ $enable -ne 1 ] && rmmod fast_classifier >/dev/null 2>&1
- stop_dnscache
- revert_dns
- kill -9 $(ps | grep dnscache-while.sh | grep -v "grep" | awk '{print $1}') >/dev/null 2>&1
- if [ "$DNSMASQ_RESTART" = N ]; then
- /etc/init.d/dnsmasq restart
- fi
-}
-
-reload_service(){
- DNSMASQ_RESTART=Y
- stop
- start
- /etc/init.d/dnsmasq restart && echo "DNSMASQ restart"
-}
-
-service_triggers()
-{
- procd_add_reload_trigger "sfe"
-}
diff --git a/package/lean/luci-app-sfe/root/etc/uci-defaults/sfe b/package/lean/luci-app-sfe/root/etc/uci-defaults/sfe
deleted file mode 100755
index 50adb160fd..0000000000
--- a/package/lean/luci-app-sfe/root/etc/uci-defaults/sfe
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-uci -q batch <<-EOF >/dev/null
- delete ucitrack.@sfe[-1]
- add ucitrack sfe
- set ucitrack.@sfe[-1].init=sfe
- commit ucitrack
-EOF
-
-[ ! -f /usr/sbin/dnscache ] && ln /usr/sbin/pdnsd /usr/sbin/dnscache
-/etc/init.d/sfe enable
-
-rm -f /tmp/luci-indexcache
-exit 0
diff --git a/package/lean/luci-app-sfe/root/usr/share/dnscache/dnscache-while.sh b/package/lean/luci-app-sfe/root/usr/share/dnscache/dnscache-while.sh
deleted file mode 100755
index 317e83ed34..0000000000
--- a/package/lean/luci-app-sfe/root/usr/share/dnscache/dnscache-while.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh
-
-sleeptime=30
-logfile="/var/log/dnscache.file"
-adg_logfile="/etc/AdGuardHome/data/querylog.json"
-dns_enable=$(uci get sfe.config.dns 2>/dev/null)
-dnscache_enable=$(uci get sfe.config.dnscache_enable 2>/dev/null)
-lan_addr=$(uci get network.lan.ipaddr)
-
-clean_log(){
-logrow=$(grep -c "" ${logfile})
-if [ $logrow -ge 500 ];then
- cat /dev/null > ${logfile}
- echo "$curtime Log条数超限,清空处理!" >> ${logfile}
-fi
-if [ $dnscache_enable = "3" ];then
- adg_logrow=$(grep -c "" ${adg_logfile})
- if [ $adg_logrow -ge 500 ];then
- cat /dev/null > ${adg_logfile}
- echo "$curtime Log条数超限,清空处理!" >> ${adg_logfile}
- fi
-fi
-
-}
-
-while [ $dns_enable -eq 1 ];
-do
-curtime=`date "+%H:%M:%S"`
-echo "$curtime online! "
-if [ $dns_enable -eq 1 ]; then
- if [ $dnscache_enable = "3" ]; then
- if ! pidof AdGuardHome>/dev/null; then
- AdGuardHome -c /etc/AdGuardHome/AdGuardHome.yaml -w /etc/AdGuardHome -h ${lan_addr} -p 3001 --no-check-update &
- echo "$curtime 重启服务!" >> ${logfile}
- fi
- else
- if ! pidof dnscache>/dev/null; then
- if [ $dnscache_enable = "1" ]; then
- /usr/sbin/dnscache -c /var/etc/dnscache.conf &
- elif [ $dnscache_enable = "2" ]; then
- dnscache -f /var/run/dnscache/dnscache.conf &
- fi
- echo "$curtime 重启服务!" >> ${logfile}
- fi
- fi
-fi
-
-sleep ${sleeptime}
-continue
-done
diff --git a/package/lean/luci-app-sfe/root/usr/share/rpcd/acl.d/luci-app-sfe.json b/package/lean/luci-app-sfe/root/usr/share/rpcd/acl.d/luci-app-sfe.json
deleted file mode 100644
index 25412e01a9..0000000000
--- a/package/lean/luci-app-sfe/root/usr/share/rpcd/acl.d/luci-app-sfe.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "luci-app-sfe": {
- "description": "Grant UCI access for luci-app-sfe",
- "read": {
- "uci": [ "sfe" ]
- },
- "write": {
- "uci": [ "sfe" ]
- }
- }
-}
diff --git a/package/lean/luci-app-turboacc/Makefile b/package/lean/luci-app-turboacc/Makefile
new file mode 100644
index 0000000000..e94cd1fa5c
--- /dev/null
+++ b/package/lean/luci-app-turboacc/Makefile
@@ -0,0 +1,50 @@
+# Copyright (C) 2016 Openwrt.org
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=LuCI support for Flow Offload / Shortcut-FE
+LUCI_DEPENDS:=+pdnsd-alt \
+ +PACKAGE_luci-app-turboacc_INCLUDE_shortcut-fe:kmod-fast-classifier \
+ +PACKAGE_luci-app-turboacc_INCLUDE_flow-offload:kmod-ipt-offload \
+ +PACKAGE_luci-app-turboacc_INCLUDE_bbr:kmod-tcp-bbr \
+ +PACKAGE_luci-app-turboacc_INCLUDE_adguardhome:AdGuardHome \
+ +PACKAGE_luci-app-turboacc_INCLUDE_dnsforwarder:dnsforwarder
+LUCI_PKGARCH:=all
+
+PKG_NAME:=luci-app-turboacc
+PKG_VERSION:=1.0
+PKG_RELEASE:=1
+
+PKG_LICENSE:=GPLv3.0+
+
+define Package/luci-app-turboacc/config
+config PACKAGE_luci-app-turboacc_INCLUDE_shortcut-fe
+ bool "Include Shortcut-FE"
+ depends on PACKAGE_luci-app-turboacc_INCLUDE_flow-offload=n
+ default y if LINUX_4_9
+ default n
+
+config PACKAGE_luci-app-turboacc_INCLUDE_flow-offload
+ bool "Include Flow Offload"
+ depends on !LINUX_4_9
+ default y
+
+config PACKAGE_luci-app-turboacc_INCLUDE_bbr
+ bool "Include BBR"
+ default n if LINUX_4_9
+ default y
+
+config PACKAGE_luci-app-turboacc_INCLUDE_adguardhome
+ bool "Include AdGuardHome"
+ default n
+
+config PACKAGE_luci-app-turboacc_INCLUDE_dnsforwarder
+ bool "Include DnsForwarder"
+ default n
+endef
+include $(TOPDIR)/feeds/luci/luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/lean/luci-app-turboacc/luasrc/controller/turboacc.lua b/package/lean/luci-app-turboacc/luasrc/controller/turboacc.lua
new file mode 100644
index 0000000000..3c67b15674
--- /dev/null
+++ b/package/lean/luci-app-turboacc/luasrc/controller/turboacc.lua
@@ -0,0 +1,44 @@
+module("luci.controller.turboacc", package.seeall)
+
+function index()
+ if not nixio.fs.access("/etc/config/turboacc") then
+ return
+ end
+ local page
+ page = entry({"admin", "network", "turboacc"}, cbi("turboacc"), _("Turbo ACC Center"), 101)
+ page.i18n = "turboacc"
+ page.dependent = true
+
+ entry({"admin", "network", "turboacc", "status"}, call("action_status"))
+end
+
+local function fastpath_status()
+ return luci.sys.call("[ x$(cat /sys/module/xt_FLOWOFFLOAD/refcnt 2>/dev/null) != x0 ] || lsmod | grep -q fast_classifier") == 0
+end
+
+local function bbr_status()
+ return luci.sys.call("[ x$(cat /proc/sys/net/ipv4/tcp_congestion_control 2>/dev/null) = xbbr ]") == 0
+end
+
+local function fullconebat_status()
+ return luci.sys.call("[ x$(cat /sys/module/xt_FULLCONENAT/refcnt 2>/dev/null) != x0 ]") == 0
+end
+
+local function dnscaching_status()
+ return luci.sys.call("[ x$(uci -q get turboacc.config.dns_caching_mode) != x3 ] && pgrep dnscache >/dev/null || pgrep AdGuardHome >/dev/null") == 0
+end
+
+local function adguardhome_status()
+ return luci.sys.call("pgrep AdGuardHome >/dev/null") == 0
+end
+
+function action_status()
+ luci.http.prepare_content("application/json")
+ luci.http.write_json({
+ fastpath_state = fastpath_status(),
+ bbr_state = bbr_status(),
+ fullconenat_state = fullconebat_status(),
+ dnscaching_state = dnscaching_status(),
+ adguardhome_state = adguardhome_status()
+ })
+end
\ No newline at end of file
diff --git a/package/lean/luci-app-turboacc/luasrc/model/cbi/turboacc.lua b/package/lean/luci-app-turboacc/luasrc/model/cbi/turboacc.lua
new file mode 100644
index 0000000000..1ab6e66363
--- /dev/null
+++ b/package/lean/luci-app-turboacc/luasrc/model/cbi/turboacc.lua
@@ -0,0 +1,92 @@
+local ipkg = require('luci.model.ipkg')
+
+local kernel_version = luci.sys.exec("echo -n $(uname -r)")
+
+m = Map("turboacc")
+m.title = translate("Turbo ACC Acceleration Settings")
+m.description = translate("Opensource Flow Offloading driver (Fast Path or Hardware NAT)")
+
+m:append(Template("turboacc/status"))
+
+s = m:section(TypedSection, "turboacc", "")
+s.addremove = false
+s.anonymous = true
+
+if nixio.fs.access("/lib/modules/" .. kernel_version .. "/xt_FLOWOFFLOAD.ko") then
+sw_flow = s:option(Flag, "sw_flow", translate("Software flow offloading"))
+sw_flow.default = 0
+sw_flow.description = translate("Software based offloading for routing/NAT")
+sw_flow:depends("sfe_flow", 0)
+end
+
+hw_flow = s:option(Flag, "hw_flow", translate("Hardware flow offloading"))
+hw_flow.default = 0
+hw_flow.description = translate("Requires hardware NAT support. Implemented at least for mt7621")
+hw_flow:depends("sw_flow", 1)
+
+if nixio.fs.access("/lib/modules/" .. kernel_version .. "/fast-classifier.ko") then
+sfe_flow = s:option(Flag, "sfe_flow", translate("Shortcut-FE flow offloading"))
+sfe_flow.default = 0
+sfe_flow.description = translate("Shortcut-FE based offloading for routing/NAT")
+sfe_flow:depends("sw_flow", 0)
+end
+
+sfe_bridge = s:option(Flag, "sfe_bridge", translate("Bridge Acceleration"))
+sfe_bridge.default = 0
+sfe_bridge.description = translate("Enable Bridge Acceleration (may be functional conflict with bridge-mode VPN server)")
+sfe_bridge:depends("sfe_flow", 1)
+
+if ipkg.installed("ip6tables") then
+sfe_ipv6 = s:option(Flag, "sfe_ipv6", translate("IPv6 Acceleration"))
+sfe_ipv6.default = 0
+sfe_ipv6.description = translate("Enable IPv6 Acceleration")
+sfe_ipv6:depends("sfe_flow", 1)
+end
+
+if nixio.fs.access("/lib/modules/" .. kernel_version .. "/tcp_bbr.ko") then
+bbr_cca = s:option(Flag, "bbr_cca", translate("Enable BBR CCA"))
+bbr_cca.default = 0
+bbr_cca.rmempty = false
+bbr_cca.description = translate("Using BBR CCA can improve TCP network performance effectively")
+end
+
+if nixio.fs.access("/lib/modules/" .. kernel_version .. "/xt_FULLCONENAT.ko") then
+fullcone_nat = s:option(Flag, "fullcone_nat", translate("Enable FullCone NAT"))
+fullcone_nat.default = 0
+fullcone_nat.rmempty = false
+fullcone_nat.description = translate("Using FullCone NAT can improve gaming performance effectively")
+end
+
+dns_acc = s:option(Flag, "dns_acc", translate("DNS Acceleration"))
+dns_acc.default = 0
+dns_acc.rmempty = false
+dns_acc.description = translate("Using optimized DNS records for GoogleHosts (Don't use under Clash Fake-IP mode)")
+
+dns_caching = s:option(Flag, "dns_caching", translate("DNS Caching"))
+dns_caching.default = 0
+dns_caching.rmempty = false
+dns_caching.description = translate("Enable DNS Caching and anti ISP DNS pollution")
+
+dns_caching_mode = s:option(ListValue, "dns_caching_mode", translate("Resolve Dns Mode"), translate("AdGuardHome login username/password: AdGuardHome/AdGuardHome"))
+dns_caching_mode:value("1", translate("Using PDNSD to query and cache"))
+if nixio.fs.access("/usr/bin/dnsforwarder") then
+dns_caching_mode:value("2", translate("Using DNSForwarder to query and cache"))
+end
+if nixio.fs.access("/usr/bin/AdGuardHome") then
+dns_caching_mode:value("3", translate("Using AdGuardHome to query and cache"))
+end
+dns_caching_mode.default = 1
+dns_caching_mode:depends("dns_caching", 1)
+
+dns_caching_v4_dns = s:option(Value, "dns_caching_v4_dns", translate("Upsteam IPv4 DNS Server"))
+dns_caching_v4_dns.default = "114.114.114.114,114.114.115.115,223.5.5.5,223.6.6.6,180.76.76.76,119.29.29.29,119.28.28.28,1.2.4.8,210.2.4.8"
+dns_caching_v4_dns.description = translate("Muitiple IPv4 DNS server can saperate with ','")
+dns_caching_v4_dns:depends("dns_caching_mode", 1)
+dns_caching_v4_dns:depends("dns_caching_mode", 2)
+
+dns_caching_v6_dns = s:option(Value, "dns_caching_v6_dns", translate("Upsteam IPv6 DNS Server"))
+dns_caching_v6_dns.default = "2001:4860:4860::8888,2001:4860:4860::8844,2001:2001::1111,2001:2001::1001,2400:da00::6666,240C::6666,240C::6644"
+dns_caching_v6_dns.description = translate("Muitiple IPv6 DNS server can saperate with ','")
+dns_caching_v6_dns:depends("dns_caching_mode", 2)
+
+return m
diff --git a/package/lean/luci-app-turboacc/luasrc/view/turboacc/status.htm b/package/lean/luci-app-turboacc/luasrc/view/turboacc/status.htm
new file mode 100644
index 0000000000..225805c837
--- /dev/null
+++ b/package/lean/luci-app-turboacc/luasrc/view/turboacc/status.htm
@@ -0,0 +1,33 @@
+
+
+
diff --git a/package/lean/luci-app-turboacc/po/zh_Hans/turboacc.po b/package/lean/luci-app-turboacc/po/zh_Hans/turboacc.po
new file mode 100644
index 0000000000..7727448e8f
--- /dev/null
+++ b/package/lean/luci-app-turboacc/po/zh_Hans/turboacc.po
@@ -0,0 +1,110 @@
+msgid "Turbo ACC Center"
+msgstr "Turbo ACC 网络加速"
+
+msgid "Turbo ACC Acceleration Settings"
+msgstr "Turbo ACC 网络加速设置"
+
+msgid "Linux Flow Offload Forwarding Engine Settings"
+msgstr "Linux Flow Offload Forwarding 转发加速引擎设置"
+
+msgid "Opensource Flow Offloading driver (Fast Path or Hardware NAT)"
+msgstr "开源流量分载驱动 (支持 Fast Path 或者 硬件 NAT)"
+
+msgid "Software flow offloading"
+msgstr "软件流量分载"
+
+msgid "Software based offloading for routing/NAT"
+msgstr "基于软件的 Routing/NAT 分载"
+
+msgid "Hardware flow offloading"
+msgstr "硬件流量分载"
+
+msgid "Requires hardware NAT support. Implemented at least for mt7621"
+msgstr "需要硬件 NAT 支持。目前 mt7621 已实现"
+
+msgid "Shortcut-FE flow offloading"
+msgstr "Shortcut-FE 流量分载"
+
+msgid "Shortcut-FE based offloading for routing/NAT"
+msgstr "基于 Shortcut-FE 的 Routing/NAT 分载"
+
+msgid "Bridge Acceleration"
+msgstr "桥接加速"
+
+msgid "Enable Bridge Acceleration (may be functional conflict with bridge-mode VPN server)"
+msgstr "启用桥接加速 (可能会和路由器上桥接模式的VPN服务器冲突)"
+
+msgid "IPv6 Acceleration"
+msgstr "IPv6 加速"
+
+msgid "Enable IPv6 Acceleration"
+msgstr "启用 IPv6 加速"
+
+msgid "Enable BBR CCA"
+msgstr "启用 BBR 拥塞控制算法"
+
+msgid "Using BBR CCA can improve TCP network performance effectively"
+msgstr "使用 BBR 拥塞控制算法可以有效提升 TCP 网络性能"
+
+msgid "Enable FullCone NAT"
+msgstr "启用全锥形 NAT"
+
+msgid "Using FullCone NAT can improve gaming performance effectively"
+msgstr "使用全锥形 NAT 可以有效提升游戏体验"
+
+msgid "DNS Acceleration"
+msgstr "DNS 加速"
+
+msgid "Using optimized DNS records for GoogleHosts (Don't use under Clash Fake-IP mode)"
+msgstr "使用来自 GoogleHosts 的优质 DNS 记录(请勿在 Clash Fake-IP 模式下使用)"
+
+msgid "DNS Caching"
+msgstr "DNS 缓存"
+
+msgid "Enable DNS Caching and anti ISP DNS pollution"
+msgstr "启用 DNS 多线程查询、缓存,并防止 ISP 的 DNS 广告和域名劫持"
+
+msgid "Resolve Dns Mode"
+msgstr "DNS 解析方式"
+
+msgid "Using PDNSD to query and cache"
+msgstr "使用 PDNSD 解析"
+
+msgid "Using DNSForwarder to query and cache"
+msgstr "使用 DNSForwarder 解析"
+
+msgid "Using AdGuardHome to query and cache"
+msgstr "使用 AdGuardHome 解析"
+
+msgid "Upsteam IPv4 DNS Server"
+msgstr "上游 IPv4 DNS 服务器"
+
+msgid "Muitiple IPv4 DNS server can saperate with ','"
+msgstr "多个上游 IPv4 DNS 服务器请用 ',' 分隔(注意用英文逗号)"
+
+msgid "Upsteam IPv6 DNS Server"
+msgstr "上游 IPv6 DNS 服务器"
+
+msgid "Muitiple IPv6 DNS server can saperate with ','"
+msgstr "多个上游 IPv6 DNS 服务器请用 ',' 分隔(注意用英文逗号)"
+
+msgid "AdGuardHome login username/password: AdGuardHome/AdGuardHome"
+msgstr "AdGuardHome 登录账号/密码:AdGuardHome/AdGuardHome"
+
+msgid "Flow Offloading"
+msgstr "流量分载"
+
+msgid "BBR CCA"
+msgstr "BBR 拥塞控制算法"
+
+msgid "FullCone NAT"
+msgstr "全锥型 NAT"
+
+msgid "DNS Caching"
+msgstr "DNS 缓存"
+
+msgid "AdGuardHome Anti-AD"
+msgstr "AdGuardHome 去广告"
+
+msgid "Open Web Interface"
+msgstr "打开 Web 界面"
\ No newline at end of file
diff --git a/package/lean/luci-app-turboacc/root/etc/config/turboacc b/package/lean/luci-app-turboacc/root/etc/config/turboacc
new file mode 100644
index 0000000000..689253eb13
--- /dev/null
+++ b/package/lean/luci-app-turboacc/root/etc/config/turboacc
@@ -0,0 +1,14 @@
+
+config turboacc 'config'
+ option sw_flow '1'
+ option hw_flow '0'
+ option sfe_flow '1'
+ option sfe_bridge '1'
+ option sfe_ipv6 '0'
+ option bbr_cca '1'
+ option fullcone_nat '1'
+ option dns_acc '0'
+ option dns_caching '0'
+ option dns_caching_mode '1'
+ option dns_caching_v4_dns '114.114.114.114,114.114.115.115,223.5.5.5,223.6.6.6,180.76.76.76,119.29.29.29,119.28.28.28,1.2.4.8,210.2.4.8'
+ option dns_caching_v6_dns '240c::6666,240c::6644,2001:da8::666,2001:da8:202:10::36,2001:da8:8000:1:202:120:2:100'
diff --git a/package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload b/package/lean/luci-app-turboacc/root/etc/init.d/turboacc
similarity index 50%
rename from package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload
rename to package/lean/luci-app-turboacc/root/etc/init.d/turboacc
index 75ed715b79..f47cba5095 100755
--- a/package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload
+++ b/package/lean/luci-app-turboacc/root/etc/init.d/turboacc
@@ -2,24 +2,32 @@
# Copyright (c) 2011-2015 OpenWrt.org
START=90
-STOP=15
+STOP=10
-DNSMASQ_RESTART=N
-DNS_SERVER="114.114.114.114,114.114.115.115,223.5.5.5,223.6.6.6,180.76.76.76,119.29.29.29,119.28.28.28,1.2.4.8,210.2.4.8"
-IPV6DNS_SERVER="240c::6666,240c::6644,2001:da8::666,2001:da8:202:10::36,2001:da8:8000:1:202:120:2:100"
+restart_utils="true"
+
+inital_conf(){
+ config_load "turboacc"
+ config_get "sw_flow" "config" "sw_flow" "0"
+ config_get "hw_flow" "config" "hw_flow" "0"
+ config_get "sfe_flow" "config" "sfe_flow" "0"
+ config_get "sfe_bridge" "config" "sfe_bridge" "0"
+ config_get "sfe_ipv6" "config" "sfe_ipv6" "0"
+ config_get "bbr_cca" "config" "bbr_cca" "0"
+ config_get "fullcone_nat" "config" "fullcone_nat" "0"
+ config_get "dns_acc" "config" "dns_acc" "0"
+ config_get "dns_caching" "config" "dns_caching" "0"
+ config_get "dns_caching_mode" "config" "dns_caching_mode" "0"
+ config_get "dns_caching_v4_dns" "config" "dns_caching_v4_dns"
+ config_get "dns_caching_v6_dns" "config" "dns_caching_v6_dns"
+
+ config_load "network"
+ config_get "lan_addr" "lan" "ipaddr" "192.168.1.1"
+}
start_pdnsd() {
- DNS_SERVER=$(uci get flowoffload.@flow[0].dns_server 2>/dev/null)
- cp -a /usr/sbin/pdnsd /usr/sbin/dnscache
- [ -d /var/etc ] || mkdir -p /var/etc
-
- if [ ! -f /var/dnscache/pdnsd.cache ]; then
- mkdir -p /var/dnscache
- echo -ne "pd13\000\000\000\000" > /var/dnscache/pdnsd.cache
- chown -R nobody.nogroup /var/dnscache
- fi
-
- cat > /var/etc/dnscache.conf < "/var/etc/dnscache.conf" < "/var/dnscache/pdnsd.cache"
+ chown -R nobody.nogroup "/var/dnscache"
+ fi
+
+ [ -d "/var/sbin" ] || mkdir -p "/var/sbin" && cp -a "/usr/sbin/pdnsd" "/var/sbin/dnscache"
+ /var/sbin/dnscache -c "/var/etc/dnscache.conf" &
+ echo "PDNSD: Start DNS Caching"
}
start_dnsforwarder() {
- DNS_SERVER=$(uci get flowoffload.@flow[0].dns_server 2>/dev/null)
- IPV6DNS_SERVER=$(uci get flowoffload.@flow[0].ipv6dns_server 2>/dev/null)
- dnscache_enable=$(uci get flowoffload.@flow[0].dnscache_enable 2>/dev/null)
- if [ $dnscache_enable = "2" ]; then
- localserver=$(echo -e "127.0.0.1:5333")
- elif [ $dnscache_enable = "3" ]; then
- localserver=$(echo -e "127.0.0.1:5383")
- fi
-
- cp -a /usr/bin/dnsforwarder /usr/sbin/dnscache
- sleep 1
- DNSCACHE_CONF=/var/run/dnscache/dnscache.conf
- PID_PATH=/var/run/dnscache
- PID_FILE=dns.pid
- mkdir -p $PID_PATH
- pid=`ps | awk '$5 ~ /\[dnscache\]/ {print $1}'`
-
+ mkdir -p "/var/run/dnscache"
cat > /var/run/dnscache/dnscache.conf </dev/null 2>&1 || kill -9 $(ps | grep AdGuardHome | grep -v "grep" | awk '{print $1}') >/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
- kill -9 $(ps | grep dnscache-while.sh | grep -v "grep" | awk '{print $1}') >/dev/null 2>&1
- rm -rf /var/run/dnscache
- rm -rf /var/dnscache
- echo "Stop DNS Cache"
-
+ killall -9 "AdGuardHome" 2>/dev/null
+ killall -9 "dnscache" 2>/dev/null
+ kill -9 $(ps | grep dnscache-while.sh | grep -v "grep" | awk '{print $1}') 2>/dev/null
+ rm -rf "/var/dnscache" "/var/run/dnscache"
+ echo "Stop DNS Caching"
}
change_dns() {
- uci delete dhcp.@dnsmasq[0].server >/dev/null 2>&1
- uci add_list dhcp.@dnsmasq[0].server=127.0.0.1#5333
- uci set dhcp.@dnsmasq[0].noresolv=1
+ uci delete dhcp.@dnsmasq[0].server 2>/dev/null
+ uci add_list dhcp.@dnsmasq[0].server="127.0.0.1#5333"
+ uci set dhcp.@dnsmasq[0].noresolv="1"
uci commit dhcp
}
revert_dns() {
- uci del_list dhcp.@dnsmasq[0].server=127.0.0.1#5333 >/dev/null 2>&1
- uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.d/resolv.conf.auto
- uci set dhcp.@dnsmasq[0].noresolv=0
+ uci del_list dhcp.@dnsmasq[0].server="127.0.0.1#5333" 2>/dev/null
+ uci set dhcp.@dnsmasq[0].resolvfile="/tmp/resolv.conf.d/resolv.conf.auto"
+ uci set dhcp.@dnsmasq[0].noresolv="0"
uci commit dhcp
-
}
start(){
- dns=$(uci get flowoffload.@flow[0].dns 2>/dev/null)
- dnscache_enable=$(uci get flowoffload.@flow[0].dnscache_enable 2>/dev/null)
- bbr=$(uci get flowoffload.@flow[0].bbr 2>/dev/null)
+ inital_conf
- if [ $dns -eq 1 ]; then
+ uci set firewall.@defaults[0].flow_offloading="${sw_flow}"
+ uci set firewall.@defaults[0].flow_offloading_hw="${hw_flow}"
+ uci set firewall.@defaults[0].fullcone="${fullcone_nat}"
+ uci commit firewall
+
+ [ "${sfe_flow}" -eq "1" ] && {
+ lsmod | grep -q fast_classifier || modprobe fast_classifier 2>/dev/null
+ echo "${sfe_bridge}" > "/sys/fast_classifier/skip_to_bridge_ingress"
+ if [ "${sfe_ipv6}" -eq "1" ]; then
+ [ ! -f "/dev/sfe_ipv6" ] && mknod "/dev/sfe_ipv6" "c" "$(cat /sys/sfe_ipv6/debug_dev)" "0"
+ else
+ rm -f "/dev/sfe_ipv6"
+ fi
+}
+
+ if [ "${bbr_cca}" -eq "1" ]; then
+ sysctl -w net.ipv4.tcp_congestion_control="bbr"
+ else
+ sysctl -w net.ipv4.tcp_congestion_control="cubic"
+ fi
+
+ [ "${dns_acc}" -eq "1" ] && {
+ mkdir -p "/tmp/dnsmasq.d"
+ wget-ssl -t "20" -T "5" "https://cdn.jsdelivr.net/gh/googlehosts/hosts@master/hosts-files/dnsmasq.conf" -O "/tmp/dnsmasq.d/dnsmasq-googlehosts.conf" &
+}
+
+ if [ "${dns_caching}" -eq "1" ]; then
stop_dnscache
sleep 1
- rm -f /var/log/dnscache.file
- rm -f /etc/AdGuardHome/data/querylog.json*
- if [ $dnscache_enable = "1" ]; then
+ rm -f "/var/log/dnscache.file"
+ rm -f "/etc/AdGuardHome/data/querylog.json*"
+ if [ "${dns_caching_mode}" = "1" ]; then
start_pdnsd
- elif [ $dnscache_enable = "2" ]; then
+ elif [ "${dns_caching_mode}" = "2" ]; then
start_dnsforwarder
- elif [ $dnscache_enable = "3" ]; then
- lan_addr=$(uci get network.lan.ipaddr)
- AdGuardHome -c /etc/AdGuardHome/AdGuardHome.yaml -w /etc/AdGuardHome -h ${lan_addr} -p 3001 --no-check-update &
+ elif [ "${dns_caching_mode}" = "3" ]; then
+ mkdir -p "/etc/AdGuardHome"
+ AdGuardHome -c "/etc/AdGuardHome/AdGuardHome.yaml" -w "/etc/AdGuardHome" -h "${lan_addr}" -p "3001" --no-check-update &
fi
change_dns
- nohup /usr/share/dnscache/dnscache-while.sh > /var/log/dnscache.file 2>&1 &
+ nohup "/usr/share/dnscache/dnscache-while.sh" > "/var/log/dnscache.file" 2>&1 &
else
stop_dnscache
revert_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
-
- if [ "$DNSMASQ_RESTART" = N ]; then
- /etc/init.d/dnsmasq restart && echo "DNSMASQ change"
+ if [ "${restart_utils}" = "true" ]; then
+ /etc/init.d/dnsmasq restart >/dev/null 2>&1 && echo "DNSMASQ change"
/etc/init.d/firewall restart >/dev/null 2>&1
fi
}
stop(){
- dns=$(uci get firewall.@defaults[0].dns 2>/dev/null)
+ inital_conf
+
+ uci set firewall.@defaults[0].flow_offloading="${sw_flow}"
+ uci set firewall.@defaults[0].flow_offloading_hw="${hw_flow}"
+ uci set firewall.@defaults[0].fullcone="${fullcone_nat}"
+ uci commit firewall
+
+ [ "${sfe_flow}" -eq "0" ] && {
+ echo "0" > "/sys/fast_classifier/skip_to_bridge_ingress"
+ rm -f "/dev/sfe_ipv6"
+ rmmod "fast_classifier" 2>/dev/null
+}
+
+ [ "${dns_acc}" -eq "0" ] && rm -f "/tmp/dnsmasq.d/dnsmasq-googlehosts.conf"
+
stop_dnscache
revert_dns
- uci commit firewall
- if [ "$DNSMASQ_RESTART" = N ]; then
- /etc/init.d/dnsmasq restart && echo "DNSMASQ revert"
+
+ if [ "${restart_utils}" = "true" ]; then
+ /etc/init.d/dnsmasq restart >/dev/null 2>&1 && echo "DNSMASQ revert"
/etc/init.d/firewall restart >/dev/null 2>&1
fi
}
restart(){
- DNSMASQ_RESTART=Y
+ restart_utils="false"
stop
start
- /etc/init.d/dnsmasq restart && echo "DNSMASQ restart"
+ /etc/init.d/dnsmasq restart >/dev/null 2>&1 && echo "DNSMASQ restart"
/etc/init.d/firewall restart >/dev/null 2>&1
}
diff --git a/package/lean/luci-app-turboacc/root/etc/uci-defaults/turboacc b/package/lean/luci-app-turboacc/root/etc/uci-defaults/turboacc
new file mode 100755
index 0000000000..37a556f42f
--- /dev/null
+++ b/package/lean/luci-app-turboacc/root/etc/uci-defaults/turboacc
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+uci -q batch <<-EOF >/dev/null
+ delete ucitrack.@turboacc[-1]
+ add ucitrack turboacc
+ set ucitrack.@turboacc[-1].init=turboacc
+ commit ucitrack
+EOF
+
+exit 0
diff --git a/package/lean/luci-app-turboacc/root/usr/share/dnscache/dnscache-while.sh b/package/lean/luci-app-turboacc/root/usr/share/dnscache/dnscache-while.sh
new file mode 100755
index 0000000000..11f3b12e65
--- /dev/null
+++ b/package/lean/luci-app-turboacc/root/usr/share/dnscache/dnscache-while.sh
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+sleeptime=60
+logfile="/var/log/dnscache.file"
+adg_logfile="/etc/AdGuardHome/data/querylog.json"
+dns_caching="$(uci -q get turboacc.config.dns_caching)"
+dns_caching_mode="$(uci -q get turboacc.config.dns_caching_mode 2>/dev/null)"
+lan_addr="$(uci get network.lan.ipaddr)"
+
+clean_log(){
+logrow="$(grep -c "" "${logfile}")"
+if [ "${logrow}" -ge "500" ];then
+ echo "${curtime} Log条数超限,清空处理!" > "${logfile}"
+fi
+if [ "${dns_caching_mode}" = "3" ]; then
+ adg_logrow="$(grep -c "" "${adg_logfile}")"
+ if [ "${adg_logrow}" -ge "500" ];then
+ echo "${curtime} Log条数超限,清空处理!" > "${adg_logfile}"
+ fi
+fi
+}
+
+while [ "${dns_caching}" -eq "1" ];
+do
+ curtime="$(date "+%H:%M:%S")"
+ echo "${curtime} online!"
+ if [ "${dns_caching_mode}" = "3" ]; then
+ pidof AdGuardHome>/dev/null || {
+ AdGuardHome -c "/etc/AdGuardHome/AdGuardHome.yaml" -w "/etc/AdGuardHome" -h "${lan_addr}" -p "3001" --no-check-update &
+ echo "${curtime} 重启服务!" >> ${logfile}
+}
+ else
+ pidof dnscache>/dev/null || {
+ if [ "${dns_caching_mode}" = "1" ]; then
+ /var/sbin/dnscache -c "/var/etc/dnscache.conf" &
+ elif [ "${dns_caching_mode}" = "2" ]; then
+ /var/sbin/dnscache -f "/var/run/dnscache/dnscache.conf" &
+ fi
+ echo "${curtime} 重启服务!" >> ${logfile}
+}
+ fi
+
+ clean_log
+ sleep "${sleeptime}"
+ continue
+done
\ No newline at end of file
diff --git a/package/lean/luci-app-turboacc/root/usr/share/rpcd/acl.d/luci-app-turboacc.json b/package/lean/luci-app-turboacc/root/usr/share/rpcd/acl.d/luci-app-turboacc.json
new file mode 100644
index 0000000000..5b2e313a95
--- /dev/null
+++ b/package/lean/luci-app-turboacc/root/usr/share/rpcd/acl.d/luci-app-turboacc.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-turboacc": {
+ "description": "Grant UCI access for luci-app-turboacc",
+ "read": {
+ "uci": [ "turboacc" ]
+ },
+ "write": {
+ "uci": [ "turboacc" ]
+ }
+ }
+}