qos: fix vpn downstream rate counting.
authorArne Fitzenreiter <arne_f@ipfire.org>
Mon, 3 Jan 2011 21:19:37 +0000 (22:19 +0100)
committerArne Fitzenreiter <arne_f@ipfire.org>
Mon, 3 Jan 2011 21:19:37 +0000 (22:19 +0100)
config/qos/makeqosscripts.pl
config/rootfiles/core/44/filelists/files
config/rootfiles/core/44/update.sh

index 243cf85..0b97b85 100644 (file)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2010  IPFire Team  <info@ipfire.org>                          #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -517,6 +517,9 @@ print <<END
 
        ### ADD QOS-INC CHAIN TO THE MANGLE TABLE IN IPTABLES
        iptables -t mangle -N QOS-INC
+       iptables -t mangle -A POSTROUTING -i $qossettings{'RED_DEV'} -p ah -j RETURN
+       iptables -t mangle -A POSTROUTING -i $qossettings{'RED_DEV'} -p esp -j RETURN
+       iptables -t mangle -A POSTROUTING -i $qossettings{'RED_DEV'} -p ip -j RETURN
        iptables -t mangle -A POSTROUTING -m mark ! --mark 0 ! -o $qossettings{'RED_DEV'} -j IMQ --todev 0
        iptables -t mangle -I FORWARD -i $qossettings{'RED_DEV'} -j QOS-INC
        iptables -t mangle -A FORWARD -i $qossettings{'RED_DEV'} -j QOS-TOS
@@ -531,6 +534,9 @@ print <<END
 
        ### ADD QOS-INC CHAIN TO THE MANGLE TABLE IN IPTABLES
        iptables -t mangle -N QOS-INC
+       iptables -t mangle -A PREROUTING -i $qossettings{'RED_DEV'} -p ah -j RETURN
+       iptables -t mangle -A PREROUTING -i $qossettings{'RED_DEV'} -p esp -j RETURN
+       iptables -t mangle -A PREROUTING -i $qossettings{'RED_DEV'} -p ip -j RETURN
        iptables -t mangle -A PREROUTING -i $qossettings{'RED_DEV'} -j IMQ --todev 0
        iptables -t mangle -I PREROUTING -i $qossettings{'RED_DEV'} -j QOS-INC
        iptables -t mangle -A PREROUTING -i $qossettings{'RED_DEV'} -j QOS-TOS
@@ -690,6 +696,12 @@ print <<END
        tc qdisc del dev $qossettings{'IMQ_DEV'} root >/dev/null 2>&1
        # STOP IMQ-DEVICE
        ip link set $qossettings{'IMQ_DEV'} down >/dev/null 2>&1
+       iptables -t mangle --delete POSTROUTING -i $qossettings{'RED_DEV'} -p ah -j RETURN >/dev/null 2>&1
+       iptables -t mangle --delete POSTROUTING -i $qossettings{'RED_DEV'} -p esp -j RETURN >/dev/null 2>&1
+       iptables -t mangle --delete POSTROUTING -i $qossettings{'RED_DEV'} -p ip -j RETURN >/dev/null 2>&1
+       iptables -t mangle --delete PREROUTING -i $qossettings{'RED_DEV'} -p ah -j RETURN >/dev/null 2>&1
+       iptables -t mangle --delete PREROUTING -i $qossettings{'RED_DEV'} -p esp -j RETURN >/dev/null 2>&1
+       iptables -t mangle --delete PREROUTING -i $qossettings{'RED_DEV'} -p ip -j RETURN >/dev/null 2>&1
        iptables -t mangle --delete POSTROUTING -m mark ! --mark 0 ! -o $qossettings{'RED_DEV'} -j IMQ --todev 0 >/dev/null 2>&1
        iptables -t mangle --delete PREROUTING -i $qossettings{'RED_DEV'} -j IMQ --todev 0  >/dev/null 2>&1
        # rmmod imq # this crash on 2.6.25.xx
index 765ee74..ec42996 100644 (file)
@@ -39,6 +39,7 @@ var/ipfire/langs/en.pl
 var/ipfire/langs/fr.pl
 var/ipfire/langs/es.pl
 var/ipfire/menu.d/10-system.menu
+var/ipfire/qos/bin/makeqosscripts.pl
 usr/local/bin/timectrl
 usr/local/bin/rebuild-initrd
 usr/local/bin/scanhd
index e30a0e0..5b1b9ee 100644 (file)
@@ -210,6 +210,15 @@ if [ `grep "ENABLED=on" /var/ipfire/vpn/settings` ]; then
        /etc/init.d/ipsec start
 fi
 
+#
+# Rebuild qosscript if enabled
+#
+if [ -e /var/ipfire/qos/enable ]; then
+       /usr/local/bin/qosctrl stop
+       /usr/local/bin/qosctrl generate
+       /usr/local/bin/qosctrl start
+fi
+
 # Add pakfire and fireinfo cronjobs...
 grep -v "# fireinfo" /var/spool/cron/root.orig |
 grep -v "/usr/bin/sendprofile" |