From patchwork Wed Aug 23 14:45:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [v9] simple-tc: Fix simple-tc not being active if set From: Adrian Schmutzler X-Patchwork-Id: 449 Message-Id: <1503499541-2122-1-git-send-email-freifunk@adrianschmutzler.de> To: franken-dev@freifunk.net Date: Wed, 23 Aug 2017 16:45:41 +0200 Fixes: #55 This reintroduces the broken simple-tc. Changes in v9: This is an ALTERNATIVE version to the v8 patch. Here, simple-tc functionality is put into a separate package fff-simple-tc, so you can select fff-network without necessarily including the simple-tc functions. Signed-off-by: Adrian Schmutzler --- src/packages/fff/fff-simple-tc/Makefile | 40 ++++++++++++++++++++++ .../files/etc/hotplug.d/iface/50-fff-simple-tc | 25 ++++++++++++++ src/packages/fff/fff-web/Makefile | 2 +- .../fff-web/files/www/ssl/cgi-bin/settings.html | 3 +- src/packages/fff/fff/Makefile | 3 +- 5 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 src/packages/fff/fff-simple-tc/Makefile create mode 100644 src/packages/fff/fff-simple-tc/files/etc/hotplug.d/iface/50-fff-simple-tc diff --git a/src/packages/fff/fff-simple-tc/Makefile b/src/packages/fff/fff-simple-tc/Makefile new file mode 100644 index 0000000..5209183 --- /dev/null +++ b/src/packages/fff/fff-simple-tc/Makefile @@ -0,0 +1,40 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=fff-simple-tc +PKG_VERSION:=1 +PKG_RELEASE:=1 + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) + +include $(INCLUDE_DIR)/package.mk + +define Package/$(PKG_NAME) + SECTION:=base + CATEGORY:=Freifunk + TITLE:=Freifunk-Franken simple-tc + URL:=http://www.freifunk-franken.de + DEPENDS:=+simple-tc +endef + +define Package/$(PKG_NAME)/description + This is the Freifunk Franken Firmware simple-tc package + This provides simple-tc functionality for the WAN interface. +endef + +define Build/Prepare + echo "all: " > $(PKG_BUILD_DIR)/Makefile +endef + +define Build/Configure + # nothing +endef + +define Build/Compile + # nothing +endef + +define Package/$(PKG_NAME)/install + $(CP) ./files/* $(1)/ +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/src/packages/fff/fff-simple-tc/files/etc/hotplug.d/iface/50-fff-simple-tc b/src/packages/fff/fff-simple-tc/files/etc/hotplug.d/iface/50-fff-simple-tc new file mode 100644 index 0000000..ef8bd17 --- /dev/null +++ b/src/packages/fff/fff-simple-tc/files/etc/hotplug.d/iface/50-fff-simple-tc @@ -0,0 +1,25 @@ +[ "$ACTION" = 'ifup' ] || exit 0 + +config_load simple-tc + +tc_interface() { + local iface="$1" + + config_get ifname "$iface" ifname + + [ "$INTERFACE" = "$ifname" ] || return + + config_get_bool enabled "$iface" enabled 0 + + [ "$enabled" -eq 1 ] || return + + config_get limit_ingress "$iface" limit_ingress + config_get limit_egress "$iface" limit_egress + + [ "$limit_ingress" ] || limit_ingress=- + [ "$limit_egress" ] || limit_egress=- + + simple-tc "$DEVICE" "$limit_ingress" "$limit_egress" +} + +config_foreach tc_interface 'interface' diff --git a/src/packages/fff/fff-web/Makefile b/src/packages/fff/fff-web/Makefile index 723d9a9..a4eed57 100644 --- a/src/packages/fff/fff-web/Makefile +++ b/src/packages/fff/fff-web/Makefile @@ -13,7 +13,7 @@ define Package/fff-web CATEGORY:=Freifunk TITLE:= Freifunk-Franken Webinterface URL:=http://www.freifunk-franken.de - DEPENDS:=+uhttpd +libustream-mbedtls +haserl +px5g +simple-tc +fff-boardname + DEPENDS:=+uhttpd +libustream-mbedtls +haserl +px5g +fff-boardname +fff-network +fff-simple-tc endef define Package/fff-web/description diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html index abfbf52..44fe3f4 100755 --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html @@ -23,7 +23,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then # Bitratenbegrenzung if [ "$POST_traffic_limit" == "on" ] ; then - uci -q set "simple-tc.example.ifname=$(uci -q get network.wan.ifname)" + uci -q set "simple-tc.example.ifname=wan" uci -q set "simple-tc.example.enabled=1" else uci -q set "simple-tc.example.enabled=0" @@ -32,6 +32,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then uci -q set "simple-tc.example.limit_egress=${POST_limit_egress}" uci commit + MSG='Daten gespeichert! - Bitte Router neustarten.' fi fi diff --git a/src/packages/fff/fff/Makefile b/src/packages/fff/fff/Makefile index b039c2d..1d4e5a8 100644 --- a/src/packages/fff/fff/Makefile +++ b/src/packages/fff/fff/Makefile @@ -28,7 +28,8 @@ define Package/fff-base +fff-sysupgrade \ +fff-wireless \ +fff-timeserver \ - +fff-vpn-select + +fff-vpn-select \ + +fff-simple-tc endef define Package/fff-base/description