diff --git a/package/lean/luci-app-flowoffload/Makefile b/package/lean/luci-app-flowoffload/Makefile index 7d612d287..9c6c35248 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 @LINUX_4_14 +LUCI_DEPENDS:=+kmod-ipt-offload +pdnsd-alt @LINUX_4_14 LUCI_PKGARCH:=all PKG_VERSION:=1.0 -PKG_RELEASE:=6 +PKG_RELEASE:=7 include $(TOPDIR)/feeds/luci/luci.mk diff --git a/package/lean/luci-app-flowoffload/luasrc/controller/flowoffload.lua b/package/lean/luci-app-flowoffload/luasrc/controller/flowoffload.lua index fedb09e36..a25d96c04 100644 --- a/package/lean/luci-app-flowoffload/luasrc/controller/flowoffload.lua +++ b/package/lean/luci-app-flowoffload/luasrc/controller/flowoffload.lua @@ -1,7 +1,7 @@ module("luci.controller.flowoffload", package.seeall) function index() - if not nixio.fs.access("/sys/module/xt_FLOWOFFLOAD/refcnt") then + if not nixio.fs.access("/etc/config/flowoffload") then return end local page @@ -24,12 +24,17 @@ 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("pgrep dnscache >/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() + up_state = is_fullcone(), + dns_state = is_dns() }) 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 index fb17bc91e..55dd7596e 100644 --- a/package/lean/luci-app-flowoffload/luasrc/model/cbi/flowoffload.lua +++ b/package/lean/luci-app-flowoffload/luasrc/model/cbi/flowoffload.lua @@ -1,12 +1,12 @@ local m,s,o local SYS = require "luci.sys" -m = Map("firewall") +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, "defaults", "") +s = m:section(TypedSection, "flow") s.addremove = false s.anonymous = true @@ -17,8 +17,18 @@ flow.description = translate("Enable software flow offloading for connections. ( hw = s:option(Flag, "flow_offloading_hw", translate("HWNAT")) hw.default = 0 -hw.rmempty = false +hw.rmempty = true hw.description = translate("Enable Hardware NAT (depends on hw capability like MTK 762x)") hw:depends("flow_offloading", 1) +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(Value, "dns_server", translate("Upsteam DNS Server")) +o.default = "114.114.114.114 ,114.114.115.115" +o.description = translate("Muitiple DNS server can saperate with ','") +o:depends("dns", 1) + 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 index 89aeccbef..43f3a02ae 100644 --- a/package/lean/luci-app-flowoffload/luasrc/view/flow/status.htm +++ b/package/lean/luci-app-flowoffload/luasrc/view/flow/status.htm @@ -4,6 +4,7 @@ FLOW 加速状态<%:Collecting data...%> BBR 加速<%:Collecting data...%> FULLCONE NAT加速<%:Collecting data...%> + DNS 加速<%:Collecting data...%> @@ -11,11 +12,13 @@ var run_state = document.getElementById('_run_state'); var down_state = document.getElementById('_down_state'); var up_state = document.getElementById('_up_state'); + var dns_state = document.getElementById('_dns_state'); XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "flowoffload", "status")%>', null, function(x, status) { if ( x && x.status == 200 ) { run_state.innerHTML = status.run_state ? '<%:RUNNING%>' : '<%:NOT RUNNING%>'; down_state.innerHTML = status.down_state ? '<%:RUNNING%>' : '<%:NOT RUNNING%>'; up_state.innerHTML = status.up_state ? '<%:RUNNING%>' : '<%:NOT RUNNING%>'; + dns_state.innerHTML = status.dns_state ? '<%:RUNNING%>' : '<%:NOT RUNNING%>'; } }); //]]> 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 66fcf762d..83718b65b 100644 --- a/package/lean/luci-app-flowoffload/po/zh-cn/flowoffload.po +++ b/package/lean/luci-app-flowoffload/po/zh-cn/flowoffload.po @@ -21,3 +21,15 @@ msgstr "开启 Flow Offloading 转发加速. (降低CPU占用 / 增强路由转 msgid "Enable Hardware NAT (depends on hw capability like MTK 762x)" msgstr "启用硬件HWNAT加速(依赖特定的硬件,例如 MTK 762x 系列)" + +msgid "DNS Acceleration" +msgstr "DNS 加速" + +msgid "Enable DNS Cache Acceleration and anti ISP DNS pollution" +msgstr "启用DNS多线程查询、缓存,并防止ISP的DNS广告和域名劫持" + +msgid "Upsteam DNS Server" +msgstr "上游 DNS 服务器(国内)" + +msgid "Muitiple DNS server can saperate with ','" +msgstr "支持多个上游DNS服务器,用','分隔(注意用英文逗号).请填写您最快的DNS服务器" diff --git a/package/lean/luci-app-flowoffload/root/etc/config/flowoffload b/package/lean/luci-app-flowoffload/root/etc/config/flowoffload new file mode 100644 index 000000000..225b8da59 --- /dev/null +++ b/package/lean/luci-app-flowoffload/root/etc/config/flowoffload @@ -0,0 +1,7 @@ + +config flow + option flow_offloading '1' + option flow_offloading_hw '0' + option dns '0' + option dns_server '114.114.114.114 ,114.114.115.115' + 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 b9490ea0a..3fc9bdc06 100755 --- a/package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload +++ b/package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload @@ -1,10 +1,206 @@ #!/bin/sh /etc/rc.common # Copyright (c) 2011-2015 OpenWrt.org -START=99 +START=60 + +DNSMASQ_RESTART=N +DNS_SERVER="114.114.114.114,114.114.115.115" + +start_pdnsd() { + DNS_SERVER=$(uci get flowoffload.@flow[0].dns_server 2>/dev/null) + + [ -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 2>&1 || killall -9 dnscache >/dev/null 2>&1 + 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 delete dhcp.@dnsmasq[0].resolvfile >/dev/null 2>&1 + 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 delete dhcp.@dnsmasq[0].noresolv >/dev/null 2>&1 + uci commit dhcp +} + +start(){ + dns=$(uci get flowoffload.@flow[0].dns 2>/dev/null) + if [ $dns -eq 1 ]; then + start_pdnsd + change_dns + 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 + if [ "$DNSMASQ_RESTART" = N ]; then + /etc/init.d/dnsmasq restart && echo "DNSMASQ change" + /etc/init.d/firewall restart + fi +} + +stop(){ + dns=$(uci get firewall.@defaults[0].dns 2>/dev/null) + stop_pdnsd + revert_dns + 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 + if [ "$DNSMASQ_RESTART" = N ]; then + /etc/init.d/dnsmasq restart && echo "DNSMASQ revert" + /etc/init.d/firewall restart + fi +} restart(){ - /etc/init.d/firewall restart + DNSMASQ_RESTART=Y + stop + start + /etc/init.d/dnsmasq restart && echo "DNSMASQ restart" + /etc/init.d/firewall restart } diff --git a/package/lean/luci-app-flowoffload/root/etc/uci-defaults/flowoffload b/package/lean/luci-app-flowoffload/root/etc/uci-defaults/flowoffload index e2e92346c..246bccfec 100755 --- a/package/lean/luci-app-flowoffload/root/etc/uci-defaults/flowoffload +++ b/package/lean/luci-app-flowoffload/root/etc/uci-defaults/flowoffload @@ -2,4 +2,12 @@ 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-sfe/Makefile b/package/lean/luci-app-sfe/Makefile index 2eb1207f5..29c0f80b6 100644 --- a/package/lean/luci-app-sfe/Makefile +++ b/package/lean/luci-app-sfe/Makefile @@ -9,7 +9,7 @@ LUCI_TITLE:=LuCI support for Turbo ACC (SFE) LUCI_DEPENDS:=+kmod-fast-classifier +pdnsd-alt @LINUX_4_9 LUCI_PKGARCH:=all PKG_VERSION:=1.0 -PKG_RELEASE:=9 +PKG_RELEASE:=10 include $(TOPDIR)/feeds/luci/luci.mk diff --git a/package/lean/luci-app-sfe/luasrc/model/cbi/sfe.lua b/package/lean/luci-app-sfe/luasrc/model/cbi/sfe.lua index 563229eca..4470b43c2 100644 --- a/package/lean/luci-app-sfe/luasrc/model/cbi/sfe.lua +++ b/package/lean/luci-app-sfe/luasrc/model/cbi/sfe.lua @@ -33,7 +33,7 @@ dns.rmempty = false dns.description = translate("Enable DNS Cache Acceleration and anti ISP DNS pollution") o = s:option(Value, "dns_server", translate("Upsteam DNS Server")) -o.default = "114.114.114.114 ,114.114.115.115" +o.default = "114.114.114.114,114.114.115.115" o.description = translate("Muitiple DNS server can saperate with ','") o:depends("dns", 1) diff --git a/target/linux/x86/config-4.14 b/target/linux/x86/config-4.14 index 1a10fbe65..c2103217e 100644 --- a/target/linux/x86/config-4.14 +++ b/target/linux/x86/config-4.14 @@ -82,10 +82,7 @@ CONFIG_ATA=y CONFIG_ATA_GENERIC=y CONFIG_ATA_PIIX=y CONFIG_BINFMT_MISC=y -CONFIG_BLK_DEV_BSG=y -CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_NVME=y CONFIG_BLK_DEV_SD=y CONFIG_BLK_MQ_PCI=y CONFIG_BLK_SCSI_REQUEST=y @@ -118,7 +115,6 @@ CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_STAT=y CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_CPU_SUP_AMD=y CONFIG_CPU_SUP_CENTAUR=y CONFIG_CPU_SUP_CYRIX_32=y @@ -179,7 +175,6 @@ CONFIG_FUSION=y # CONFIG_FUSION_CTL is not set # CONFIG_FUSION_LOGGING is not set CONFIG_FUSION_MAX_SGE=128 -CONFIG_FUSION_SAS=y CONFIG_FUSION_SPI=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_GENERIC_BUG=y @@ -198,7 +193,6 @@ CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_MSI_IRQ=y CONFIG_GENERIC_MSI_IRQ_DOMAIN=y CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_GENERIC_PHY=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y @@ -265,6 +259,7 @@ CONFIG_HAVE_PERF_EVENTS_NMI=y CONFIG_HAVE_PERF_REGS=y CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_RCU_TABLE_FREE=y +CONFIG_HAVE_RCU_TABLE_INVALIDATE=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y @@ -391,7 +386,6 @@ CONFIG_NLS=y CONFIG_NO_BOOTMEM=y CONFIG_NR_CPUS=1 # CONFIG_NSC_GPIO is not set -CONFIG_NVME_CORE=y CONFIG_NVRAM=y # CONFIG_OF is not set CONFIG_OLD_SIGACTION=y @@ -400,11 +394,6 @@ CONFIG_OPROFILE_NMI_TIMER=y # CONFIG_OPTIMIZE_INLINING is not set CONFIG_OUTPUT_FORMAT="elf32-i386" CONFIG_PAGE_OFFSET=0xC0000000 -CONFIG_PATA_AMD=y -CONFIG_PATA_MPIIX=y -CONFIG_PATA_OLDPIIX=y -CONFIG_PATA_SCH=y -CONFIG_PATA_VIA=y CONFIG_PC104=y # CONFIG_PC8736x_GPIO is not set # CONFIG_PC87413_WDT is not set @@ -452,17 +441,12 @@ CONFIG_RTC_CLASS=y CONFIG_RTC_MC146818_LIB=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y # CONFIG_SAMSUNG_Q10 is not set -CONFIG_SATA_AHCI=y -CONFIG_SATA_MV=y -CONFIG_SATA_NV=y -CONFIG_SATA_VIA=y # CONFIG_SBC7240_WDT is not set # CONFIG_SBC8360_WDT is not set # CONFIG_SBC_EPX_C3_WATCHDOG is not set # CONFIG_SC1200_WDT is not set # CONFIG_SCHED_INFO is not set CONFIG_SCSI=y -CONFIG_SCSI_SAS_ATTRS=y CONFIG_SCSI_SPI_ATTRS=y CONFIG_SCx200=y CONFIG_SCx200HR_TIMER=y @@ -512,11 +496,15 @@ CONFIG_USB_EHCI_PCI=y CONFIG_USB_HID=y CONFIG_USB_HIDDEV=y CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PCI=y # CONFIG_USB_OHCI_HCD_PLATFORM is not set CONFIG_USB_PCI=y CONFIG_USB_STORAGE=y CONFIG_USB_SUPPORT=y -# CONFIG_USB_UHCI_HCD is not set +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PCI=y +# CONFIG_USB_XHCI_PLATFORM is not set # CONFIG_USERIO is not set # CONFIG_USER_NS is not set CONFIG_USER_STACKTRACE_SUPPORT=y