]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
Revert "QoS: Drop tc filter rules to move marked packets into the correct class"
authorArne Fitzenreiter <arne_f@ipfire.org>
Sun, 20 Oct 2019 20:18:34 +0000 (20:18 +0000)
committerArne Fitzenreiter <arne_f@ipfire.org>
Sun, 20 Oct 2019 20:18:34 +0000 (20:18 +0000)
This reverts commit 63f7d7475e97d74d4bcd23bd739b6b1721e55e14.

config/qos/makeqosscripts.pl

index 0c07a60f135fc2a609706b55685e5aefe1eef46f..b820e5f6ce5a375a74db56b45660e7df64b12750 100644 (file)
@@ -131,6 +131,12 @@ case "\$1" in
                tc -s class show dev $qossettings{'IMQ_DEV'}
                exit 0
          ;;
+         filter)
+               echo "[filter]"
+               tc -s filter show dev $qossettings{'RED_DEV'}
+               tc -s filter show dev $qossettings{'IMQ_DEV'}
+               exit 0
+         ;;
          iptables)
                echo "[iptables]"
                iptables -t mangle -n -L QOS-OUT -v -x 2> /dev/null
@@ -141,6 +147,7 @@ case "\$1" in
        esac
        \$0 \$1 qdisc
        \$0 \$1 class
+       \$0 \$1 filter
        \$0 \$1 iptables
        exit 0
   ;;
@@ -223,6 +230,25 @@ foreach $subclassentry (sort @subclasses) {
                print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 1:$qossettings{'SCLASS'} handle $qossettings{'SCLASS'}: fq_codel $fqcodel_options\n";
        }
 }
+print "\n\t### FILTER TRAFFIC INTO CLASSES\n";
+foreach $classentry (sort @classes)
+{
+       @classline = split( /\;/, $classentry );
+       if ($qossettings{'RED_DEV'} eq $classline[0]) {
+               $qossettings{'DEVICE'} = $classline[0];
+               $qossettings{'CLASS'} = $classline[1];
+               print "\ttc filter add dev $qossettings{'DEVICE'} parent 1:0 prio 0 protocol ip handle $qossettings{'CLASS'} fw flowid 1:$qossettings{'CLASS'}\n";
+       }
+}
+foreach $subclassentry (sort @subclasses) {
+       @subclassline = split( /\;/, $subclassentry );
+       if ($qossettings{'RED_DEV'} eq $subclassline[0]) {
+               $qossettings{'DEVICE'} = $subclassline[0];
+               $qossettings{'CLASS'} = $subclassline[1];
+               $qossettings{'SCLASS'} = $subclassline[2];
+               print "\ttc filter add dev $qossettings{'DEVICE'} parent 1:0 prio 0 protocol ip handle $qossettings{'SCLASS'} fw flowid 1:$qossettings{'SCLASS'}\n";
+       }
+}
 print <<END
 
        ### ADD QOS-OUT CHAIN TO THE MANGLE TABLE IN IPTABLES
@@ -332,6 +358,7 @@ print "\n\t### SET PORT-RULES\n";
                        print "-j RETURN\n\n";
                }
        }
+
 print <<END
 
        ### SET LEVEL7-RULES
@@ -461,7 +488,25 @@ foreach $subclassentry (sort @subclasses) {
                print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'SCLASS'} handle $qossettings{'SCLASS'}: fq_codel $fqcodel_options\n";
        }
 }
-
+print "\n\t### FILTER TRAFFIC INTO CLASSES\n";
+foreach $classentry (sort @classes)
+{
+       @classline = split( /\;/, $classentry );
+       if ($qossettings{'IMQ_DEV'} eq $classline[0]) {
+               $qossettings{'DEVICE'} = $classline[0];
+               $qossettings{'CLASS'} = $classline[1];
+               print "\ttc filter add dev $qossettings{'DEVICE'} parent 2:0 prio 0 protocol ip handle $qossettings{'CLASS'} fw flowid 2:$qossettings{'CLASS'}\n";
+       }
+}
+foreach $subclassentry (sort @subclasses) {
+       @subclassline = split( /\;/, $subclassentry );
+       if ($qossettings{'IMQ_DEV'} eq $subclassline[0]) {
+               $qossettings{'DEVICE'} = $subclassline[0];
+               $qossettings{'CLASS'} = $subclassline[1];
+               $qossettings{'SCLASS'} = $subclassline[2];
+               print "\ttc filter add dev $qossettings{'DEVICE'} parent 2:0 prio 0 protocol ip handle $qossettings{'SCLASS'} fw flowid 2:$qossettings{'SCLASS'}\n";
+       }
+}
 print <<END
 
        ### ADD QOS-INC CHAIN TO THE MANGLE TABLE IN IPTABLES