From 05ce5537d1764151ee8508d75a647351bb9ed0da Mon Sep 17 00:00:00 2001 From: jow Date: Sat, 29 Oct 2011 18:06:42 +0000 Subject: [PATCH] [backfire] qos-scripts: merge r28622 and r28623 git-svn-id: svn://svn.openwrt.org/openwrt/branches/backfire@28670 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/qos-scripts/Makefile | 4 +- package/qos-scripts/files/usr/bin/qos-stop | 3 +- .../qos-scripts/files/usr/lib/qos/generate.sh | 55 ++++++++++++++----- 3 files changed, 43 insertions(+), 19 deletions(-) diff --git a/package/qos-scripts/Makefile b/package/qos-scripts/Makefile index 7a374697e..4fe1fbff0 100644 --- a/package/qos-scripts/Makefile +++ b/package/qos-scripts/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2006-2010 OpenWrt.org +# Copyright (C) 2006-2011 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=qos-scripts PKG_VERSION:=1.2.1 -PKG_RELEASE:=3 +PKG_RELEASE:=3.1 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) diff --git a/package/qos-scripts/files/usr/bin/qos-stop b/package/qos-scripts/files/usr/bin/qos-stop index 2275ea12d..9e2a5ae98 100755 --- a/package/qos-scripts/files/usr/bin/qos-stop +++ b/package/qos-scripts/files/usr/bin/qos-stop @@ -2,5 +2,4 @@ for iface in $(tc qdisc show | grep hfsc | awk '{print $5}'); do tc qdisc del dev "$iface" root done -iptables -t mangle -F -iptables -t mangle -X +/usr/lib/qos/generate.sh firewall stop | sh diff --git a/package/qos-scripts/files/usr/lib/qos/generate.sh b/package/qos-scripts/files/usr/lib/qos/generate.sh index 6b5db3d7d..390395141 100755 --- a/package/qos-scripts/files/usr/lib/qos/generate.sh +++ b/package/qos-scripts/files/usr/lib/qos/generate.sh @@ -381,17 +381,17 @@ start_cg() { local pktrules local sizerules enum_classes "$cg" - add_rules iptrules "$ctrules" "iptables -t mangle -A ${cg}_ct" + add_rules iptrules "$ctrules" "iptables -t mangle -A qos_${cg}_ct" config_get classes "$cg" classes for class in $classes; do config_get mark "$class" classnr config_get maxsize "$class" maxsize [ -z "$maxsize" -o -z "$mark" ] || { add_insmod ipt_length - append pktrules "iptables -t mangle -A ${cg} -m mark --mark $mark -m length --length $maxsize: -j MARK --set-mark 0" "$N" + append pktrules "iptables -t mangle -A qos_${cg} -m mark --mark $mark -m length --length $maxsize: -j MARK --set-mark 0" "$N" } done - add_rules pktrules "$rules" "iptables -t mangle -A ${cg}" + add_rules pktrules "$rules" "iptables -t mangle -A qos_${cg}" for iface in $INTERFACES; do config_get classgroup "$iface" classgroup config_get device "$iface" device @@ -401,8 +401,8 @@ start_cg() { config_get halfduplex "$iface" halfduplex download="${download:-${halfduplex:+$upload}}" add_insmod ipt_IMQ - append up "iptables -t mangle -A OUTPUT -o $device -j ${cg}" "$N" - append up "iptables -t mangle -A FORWARD -o $device -j ${cg}" "$N" + append up "iptables -t mangle -A OUTPUT -o $device -j qos_${cg}" "$N" + append up "iptables -t mangle -A FORWARD -o $device -j qos_${cg}" "$N" [ -z "$download" ] || { append down "iptables -t mangle -A POSTROUTING -o $device -j ${cg}" "$N" [ -z "$halfduplex" ] || { @@ -414,11 +414,11 @@ start_cg() { done cat <&- 2>&- -iptables -t mangle -N ${cg}_ct >&- 2>&- -${iptrules:+${iptrules}${N}iptables -t mangle -A ${cg}_ct -j CONNMARK --save-mark} -iptables -t mangle -A ${cg} -j CONNMARK --restore-mark -iptables -t mangle -A ${cg} -m mark --mark 0 -j ${cg}_ct +iptables -t mangle -N qos_${cg} >&- 2>&- +iptables -t mangle -N qos_${cg}_ct >&- 2>&- +${iptrules:+${iptrules}${N}iptables -t mangle -A qos_${cg}_ct -j CONNMARK --save-mark} +iptables -t mangle -A qos_${cg} -j CONNMARK --restore-mark +iptables -t mangle -A qos_${cg} -m mark --mark 0 -j qos_${cg}_ct $pktrules $up$N${down:+${down}$N} EOF @@ -428,15 +428,33 @@ EOF start_firewall() { add_insmod ipt_multiport add_insmod ipt_CONNMARK - cat <