From fca74c3a44ec734916a39e979e8f0286accbe7d0 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Mon, 21 Feb 2011 01:33:27 +0000
Subject: qos-scripts: drop the use of IMQ, use ifb and act_connmark instead

SVN-Revision: 25640
---
 package/qos-scripts/files/usr/bin/qos-stat | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

(limited to 'package/qos-scripts/files/usr/bin/qos-stat')

diff --git a/package/qos-scripts/files/usr/bin/qos-stat b/package/qos-scripts/files/usr/bin/qos-stat
index d7858d7a11..8a39df0847 100755
--- a/package/qos-scripts/files/usr/bin/qos-stat
+++ b/package/qos-scripts/files/usr/bin/qos-stat
@@ -33,26 +33,34 @@ print_comments() {
 	echo ''
 }	
 
+get_device() {
+	( config_load network; scan_interfaces; config_get "$1" ifname )
+}
+
 interface_stats() {
 	local interface="$1"
 	local device
 
-	config_get device "$interface" device
+	device="$(get_device "$interface")"
+	[ -z "$device" ] && config_get device "$interface" device
 	config_get_bool enabled "$interface" enabled 1
 	[ -z "$device" -o 1 -ne "$enabled" ] && {
 		return 1
 	}
-	config_get_bool halfduplex "$interface" halfduplex
+	config_get_bool halfduplex "$interface" halfduplex 0
 
-	[ 1 -ne "$halfduplex" ] && {
+	if [ 1 -ne "$halfduplex" ]; then
 		unset halfduplex
 		print_comments "$interface" "Egress" "Start"
 		tc -s class show dev "$device"
 		print_comments "$interface" "Egress" "End"
-	}
+		id="root"
+	else
+		id=""
+	fi
 
 	print_comments "$interface" "Ingress${halfduplex:+/Egress}" "Start"
-	tc -s class show dev "$(iptables -v -L PREROUTING -t mangle | awk '/IMQ: todev .*$/ && $6 ~ /'$device'/ {print "imq"$12}')"
+	tc -s class show dev "$(tc filter show dev $device $id | grep mirred | sed -e 's,.*\(ifb.*\)).*,\1,')"
 	print_comments "$interface" "Ingress${halfduplex:+/Egress}" "End"
 }
 
-- 
cgit v1.2.3