From 2b808ba79726154f59705a546ceb81c7f471b1d9 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Thu, 26 Apr 2018 22:59:40 +0800 Subject: [PATCH] add new ipk luci-app-flowoffload for kernel 4.14 fast path --- include/target.mk | 2 +- package/lean/luci-app-flowoffload/Makefile | 17 ++++++++ .../luasrc/controller/flowoffload.lua | 11 +++++ .../luasrc/model/cbi/flowoffload.lua | 25 +++++++++++ .../po/zh-cn/flowoffload.po | 35 ++++++++++++++++ .../root/etc/config/flowoffload | 4 ++ .../root/etc/init.d/flowoffload | 42 +++++++++++++++++++ .../root/etc/uci-defaults/flowoffload | 13 ++++++ 8 files changed, 148 insertions(+), 1 deletion(-) create mode 100644 package/lean/luci-app-flowoffload/Makefile create mode 100644 package/lean/luci-app-flowoffload/luasrc/controller/flowoffload.lua create mode 100644 package/lean/luci-app-flowoffload/luasrc/model/cbi/flowoffload.lua create mode 100644 package/lean/luci-app-flowoffload/po/zh-cn/flowoffload.po create mode 100644 package/lean/luci-app-flowoffload/root/etc/config/flowoffload create mode 100755 package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload create mode 100755 package/lean/luci-app-flowoffload/root/etc/uci-defaults/flowoffload diff --git a/include/target.mk b/include/target.mk index fce67123f..f6c6acac7 100644 --- a/include/target.mk +++ b/include/target.mk @@ -17,7 +17,7 @@ DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd fs iptables-mod-nat-extra kmod-nf-nathelper kmod-nf-nathelper-extra kmod-macvlan kmod-nft-offload block-mount automount \ default-settings ipset-lists luci luci-app-ddns luci-app-sqm luci-app-upnp luci-app-adbyby-plus luci-app-autoreboot \ luci-app-filetransfer luci-app-shadowsocksr-pro luci-app-usb-printer luci-app-vsftpd ddns-scripts_aliyun luci-app-xlnetacc \ -luci-app-pptp-server luci-app-ipsec-vpnd luci-app-vlmcsd luci-app-wifischedule luci-app-wol luci-app-sfe luci-app-nlbwmon +luci-app-pptp-server luci-app-ipsec-vpnd luci-app-vlmcsd luci-app-wifischedule luci-app-wol luci-app-sfe luci-app-flowoffload luci-app-nlbwmon # For nas targets DEFAULT_PACKAGES.nas:=block-mount fdisk lsblk mdadm # For router targets diff --git a/package/lean/luci-app-flowoffload/Makefile b/package/lean/luci-app-flowoffload/Makefile new file mode 100644 index 000000000..ab8b1633d --- /dev/null +++ b/package/lean/luci-app-flowoffload/Makefile @@ -0,0 +1,17 @@ +# 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:=@LINUX_4_14 +LUCI_PKGARCH:=all +PKG_VERSION:=1.0 +PKG_RELEASE:=1 + +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 new file mode 100644 index 000000000..05713274b --- /dev/null +++ b/package/lean/luci-app-flowoffload/luasrc/controller/flowoffload.lua @@ -0,0 +1,11 @@ +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"), _(" Flow Offload ACC"), 101) + page.i18n = "flowoffload" + page.dependent = true +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 new file mode 100644 index 000000000..f0d5a730d --- /dev/null +++ b/package/lean/luci-app-flowoffload/luasrc/model/cbi/flowoffload.lua @@ -0,0 +1,25 @@ +local m,s,o +local SYS = require "luci.sys" + + +if SYS.call("iptables --list | grep FLOWOFFLOAD >/dev/null") == 0 then + Status = translate("Linux Flow offload Forwarding Engine is Running") +else + Status = translate("Linux Flow offload Forwarding Engine is Not Running") +end + +m = Map("flowoffload") +m.title = translate("Linux Flow Offload Forwarding Engine Settings") +m.description = translate("Opensource Linux Flow Offload driver (Fast Path or HWNAT)") + +s = m:section(TypedSection, "flowoffload", "") +s.addremove = false +s.anonymous = true +s.description = translate(string.format("%s

", Status)) + +enable = s:option(Flag, "enabled", translate("Enable")) +enable.default = 0 +enable.rmempty = false + + +return m diff --git a/package/lean/luci-app-flowoffload/po/zh-cn/flowoffload.po b/package/lean/luci-app-flowoffload/po/zh-cn/flowoffload.po new file mode 100644 index 000000000..428b86fe1 --- /dev/null +++ b/package/lean/luci-app-flowoffload/po/zh-cn/flowoffload.po @@ -0,0 +1,35 @@ +msgid "SFE Acceleration" +msgstr "SFE 转发加速" + +msgid "Shortcut Forwarding Engine is Running" +msgstr "SFE 转发加速引擎正在运行" + +msgid "Shortcut Forwarding Engine is Not Running" +msgstr "SFE 转发加速引擎未运行" + +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 "Wireless Acceleration" +msgstr "无线加速" + +msgid "Enable Wireless Bridge Acceleration" +msgstr "开启无线桥接加速" + +msgid "IPv6 Acceleration" +msgstr "IPv6 加速" + +msgid "Enable IPv6 Acceleration" +msgstr "开启IPv6加速" + + + + + + 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..10fbf33f8 --- /dev/null +++ b/package/lean/luci-app-flowoffload/root/etc/config/flowoffload @@ -0,0 +1,4 @@ + +config flowoffload 'config' + option enabled '1' + diff --git a/package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload b/package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload new file mode 100755 index 000000000..627b0d7fd --- /dev/null +++ b/package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload @@ -0,0 +1,42 @@ +#!/bin/sh /etc/rc.common +# Copyright (c) 2011-2015 OpenWrt.org + +START=30 + +re=0 + +start(){ + enable=$(uci get flowoffload.config.enabled 2>/dev/null) + if [ $enable -eq 1 ]; then + echo "enable" + sed -i '/FLOWOFFLOAD/d' /etc/firewall.user + echo "iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j FLOWOFFLOAD" >> /etc/firewall.user + if [ $re -eq 0 ]; then + echo $re + /etc/init.d/firewall restart + fi + fi +} + +stop(){ + echo "stop" + iptables -D FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j FLOWOFFLOAD + enable=$(uci get flowoffload.config.enabled 2>/dev/null) + if [ $enable -ne 1 ]; then + echo "disable" + sed -i '/FLOWOFFLOAD/d' /etc/firewall.user + if [ $re -ne 1 ]; then + echo $re + /etc/init.d/firewall restart + fi + fi +} + +restart(){ + re=1 + stop + start + /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 new file mode 100755 index 000000000..713816d55 --- /dev/null +++ b/package/lean/luci-app-flowoffload/root/etc/uci-defaults/flowoffload @@ -0,0 +1,13 @@ +#!/bin/sh + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@flowoffload[-1] + add ucitrack flowoffload + set ucitrack.@flowoffload[-1].init=flowoffload + commit ucitrack +EOF + +/etc/init.d/flowoffload enable + +rm -f /tmp/luci-indexcache +exit 0