]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
Revert "QoS: Drop support for setting TOS bits per class"
authorArne Fitzenreiter <arne_f@ipfire.org>
Sun, 20 Oct 2019 20:17:18 +0000 (20:17 +0000)
committerArne Fitzenreiter <arne_f@ipfire.org>
Sun, 20 Oct 2019 20:17:18 +0000 (20:17 +0000)
This reverts commit 3174d9c6b610c1f1ce1e7a8828a4575def2e2392.

config/qos/makeqosscripts.pl
html/cgi-bin/qos.cgi

index 2dadc72fcc7cebaf9af6aec6b5790bc5c5fd6921..e5d038e2e089668ca677137da255114814bc6143 100644 (file)
@@ -128,6 +128,7 @@ case "\$1" in
                echo "[iptables]"
                iptables -t mangle -n -L QOS-OUT -v -x 2> /dev/null
                iptables -t mangle -n -L QOS-INC -v -x 2> /dev/null
+               iptables -t mangle -n -L QOS-TOS -v -x 2> /dev/null
                exit 0
          ;;
        esac
@@ -190,7 +191,9 @@ print <<END
 
        ### ADD QOS-OUT CHAIN TO THE MANGLE TABLE IN IPTABLES
        iptables -t mangle -N QOS-OUT
+       iptables -t mangle -N QOS-TOS
        iptables -t mangle -I POSTROUTING -o $qossettings{'RED_DEV'} -j QOS-OUT
+       iptables -t mangle -A POSTROUTING -o $qossettings{'RED_DEV'} -j QOS-TOS
 
        ### Don't change mark on traffic for the ipsec tunnel
        iptables -t mangle -A QOS-OUT -m mark --mark 50 -j RETURN
@@ -398,6 +401,7 @@ print <<END
        ### ADD QOS-INC CHAIN TO THE MANGLE TABLE IN IPTABLES
        iptables -t mangle -N QOS-INC
        iptables -t mangle -A FORWARD -i $qossettings{'RED_DEV'} -j QOS-INC
+       iptables -t mangle -A FORWARD -i $qossettings{'RED_DEV'} -j QOS-TOS
 
        ### SET TOS
 END
@@ -505,6 +509,22 @@ print <<END
        ### REDUNDANT: SET ALL NONMARKED PACKETS TO DEFAULT CLASS
        iptables -t mangle -A QOS-INC -j CLASSIFY --set-class 2:$qossettings{'DEFCLASS_INC'}
 
+       ### SETTING TOS BITS
+END
+;
+       foreach $classentry (sort @classes)
+       {
+               @classline = split( /\;/, $classentry );
+               $qossettings{'CLASS'} = $classline[1];
+               $qossettings{'TOS'} = abs $classline[7] * 2;
+               if ($qossettings{'TOS'} ne "0") {
+                       print "\tiptables -t mangle -A QOS-TOS -m mark --mark $qossettings{'CLASS'} -j TOS --set-tos $qossettings{'TOS'}\n";
+                       print "\tiptables -t mangle -A QOS-TOS -m mark --mark $qossettings{'CLASS'} -j RETURN\n";
+               }
+       }
+
+print <<END
+
        ## STARTING COLLECTOR
        /usr/local/bin/qosd $qossettings{'RED_DEV'} >/dev/null 2>&1
        /usr/local/bin/qosd $qossettings{'IMQ_DEV'} >/dev/null 2>&1
@@ -533,11 +553,15 @@ print <<END
 
        # REMOVE & FLUSH CHAINS
        iptables -t mangle --delete POSTROUTING -o $qossettings{'RED_DEV'} -j QOS-OUT >/dev/null 2>&1
+       iptables -t mangle --delete POSTROUTING -o $qossettings{'RED_DEV'} -j QOS-TOS >/dev/null 2>&1
        iptables -t mangle --delete FORWARD -i $qossettings{'RED_DEV'} -j QOS-INC >/dev/null 2>&1
+       iptables -t mangle --delete FORWARD -i $qossettings{'RED_DEV'} -j QOS-TOS >/dev/null 2>&1
        iptables -t mangle --flush  QOS-OUT >/dev/null 2>&1
        iptables -t mangle --delete-chain QOS-OUT >/dev/null 2>&1
        iptables -t mangle --flush  QOS-INC >/dev/null 2>&1
        iptables -t mangle --delete-chain QOS-INC >/dev/null 2>&1
+       iptables -t mangle --flush  QOS-TOS >/dev/null 2>&1
+       iptables -t mangle --delete-chain QOS-TOS >/dev/null 2>&1
 
        rmmod sch_htb >/dev/null 2>&1
 
index 8211a3ca0c8953c3e8f4a1afd93c30011e2239d9..320eef67d1e5971f99c15f443869a55690021885 100644 (file)
@@ -883,6 +883,18 @@ END
                <tr><td width='33%' align='right'>Ceilburst:
                    <td width='33%' align='left'><input type='text' size='20' name='CBURST' maxlength='8' value="$qossettings{'CBURST'}" />
                    <td width='33%' align='center'>&nbsp;
+END
+;
+                       $selected{'TOS'}{$qossettings{'TOS'}} = "selected='selected'";
+print <<END
+               <tr><td width='33%' align='right'>TOS-Bit:
+                   <td width='33%' align='left'><select name='TOS'>
+                               <option value='0' $selected{'TOS'}{'0'}>$Lang::tr{'disabled'} (0)</option>
+                               <option value='8' $selected{'TOS'}{'8'}>$Lang::tr{'min delay'} (8)</option>
+                               <option value='4' $selected{'TOS'}{'4'}>$Lang::tr{'max throughput'} (4)</option>
+                               <option value='2' $selected{'TOS'}{'2'}>$Lang::tr{'max reliability'} (2)</option>
+                               <option value='1' $selected{'TOS'}{'1'}>$Lang::tr{'min costs'} (1)</option></select>
+                   <td width='33%' align='center'>&nbsp;
                <tr><td width='33%' align='right'>$Lang::tr{'remark'}:
                    <td width='66%' colspan='2' align='left'><input type='text' name='REMARK' size='40' maxlength='40' value="$qossettings{'REMARK'}" />
                <tr><td width='33%' align='right'><img src='/blob.gif' alt='*' />&nbsp;$Lang::tr{'required field'}