Changeset 28670


Ignore:
Timestamp:
2011-10-29T20:06:42+02:00 (6 years ago)
Author:
jow
Message:

[backfire] qos-scripts: merge r28622 and r28623

Location:
branches/backfire/package/qos-scripts
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/backfire/package/qos-scripts/Makefile

    r23297 r28670  
    11#  
    2 # Copyright (C) 2006-2010 OpenWrt.org 
     2# Copyright (C) 2006-2011 OpenWrt.org 
    33# 
    44# This is free software, licensed under the GNU General Public License v2. 
     
    1010PKG_NAME:=qos-scripts 
    1111PKG_VERSION:=1.2.1 
    12 PKG_RELEASE:=3 
     12PKG_RELEASE:=3.1 
    1313 
    1414PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) 
  • branches/backfire/package/qos-scripts/files/usr/bin/qos-stop

    r6501 r28670  
    33        tc qdisc del dev "$iface" root 
    44done 
    5 iptables -t mangle -F 
    6 iptables -t mangle -X 
     5/usr/lib/qos/generate.sh firewall stop | sh 
  • branches/backfire/package/qos-scripts/files/usr/lib/qos/generate.sh

    r23297 r28670  
    382382        local sizerules 
    383383        enum_classes "$cg" 
    384         add_rules iptrules "$ctrules" "iptables -t mangle -A ${cg}_ct" 
     384        add_rules iptrules "$ctrules" "iptables -t mangle -A qos_${cg}_ct" 
    385385        config_get classes "$cg" classes 
    386386        for class in $classes; do 
     
    389389                [ -z "$maxsize" -o -z "$mark" ] || { 
    390390                        add_insmod ipt_length 
    391                         append pktrules "iptables -t mangle -A ${cg} -m mark --mark $mark -m length --length $maxsize: -j MARK --set-mark 0" "$N" 
     391                        append pktrules "iptables -t mangle -A qos_${cg} -m mark --mark $mark -m length --length $maxsize: -j MARK --set-mark 0" "$N" 
    392392                } 
    393393        done 
    394         add_rules pktrules "$rules" "iptables -t mangle -A ${cg}" 
     394        add_rules pktrules "$rules" "iptables -t mangle -A qos_${cg}" 
    395395        for iface in $INTERFACES; do 
    396396                config_get classgroup "$iface" classgroup 
     
    402402                download="${download:-${halfduplex:+$upload}}" 
    403403                add_insmod ipt_IMQ 
    404                 append up "iptables -t mangle -A OUTPUT -o $device -j ${cg}" "$N" 
    405                 append up "iptables -t mangle -A FORWARD -o $device -j ${cg}" "$N" 
     404                append up "iptables -t mangle -A OUTPUT -o $device -j qos_${cg}" "$N" 
     405                append up "iptables -t mangle -A FORWARD -o $device -j qos_${cg}" "$N" 
    406406                [ -z "$download" ] || { 
    407407                        append down "iptables -t mangle -A POSTROUTING -o $device -j ${cg}" "$N" 
     
    415415        cat <<EOF 
    416416$INSMOD 
    417 iptables -t mangle -N ${cg} >&- 2>&- 
    418 iptables -t mangle -N ${cg}_ct >&- 2>&- 
    419 ${iptrules:+${iptrules}${N}iptables -t mangle -A ${cg}_ct -j CONNMARK --save-mark} 
    420 iptables -t mangle -A ${cg} -j CONNMARK --restore-mark 
    421 iptables -t mangle -A ${cg} -m mark --mark 0 -j ${cg}_ct 
     417iptables -t mangle -N qos_${cg} >&- 2>&- 
     418iptables -t mangle -N qos_${cg}_ct >&- 2>&- 
     419${iptrules:+${iptrules}${N}iptables -t mangle -A qos_${cg}_ct -j CONNMARK --save-mark} 
     420iptables -t mangle -A qos_${cg} -j CONNMARK --restore-mark 
     421iptables -t mangle -A qos_${cg} -m mark --mark 0 -j qos_${cg}_ct 
    422422$pktrules 
    423423$up$N${down:+${down}$N} 
     
    429429        add_insmod ipt_multiport 
    430430        add_insmod ipt_CONNMARK 
    431         cat <<EOF 
    432 iptables -t mangle -F 
    433 iptables -t mangle -X 
    434 EOF 
     431        stop_firewall 
    435432        for group in $CG; do 
    436433                start_cg $group 
    437434        done 
     435} 
     436 
     437stop_firewall() { 
     438        # Builds up a list of iptables commands to flush the qos_* chains, 
     439        # remove rules referring to them, then delete them 
     440 
     441        # Print rules in the mangle table, like iptables-save 
     442        iptables -t mangle -S | 
     443                # Find rules for the qos_* chains 
     444                grep '^-N qos_\|-j qos_' | 
     445                # Exclude rules in qos_* chains (inter-qos_* refs) 
     446                grep -v '^-A qos_' | 
     447                # Replace -N with -X and hold, with -F and print 
     448                # Replace -A with -D 
     449                # Print held lines at the end (note leading newline) 
     450                sed -e '/^-N/{s/^-N/-X/;H;s/^-X/-F/}' \ 
     451                        -e 's/^-A/-D/' \ 
     452                        -e '${p;g}' | 
     453                # Make into proper iptables calls 
     454                # Note:  awkward in previous call due to hold space usage 
     455                sed -n -e 's/^./iptables -t mangle &/p' 
    438456} 
    439457 
     
    462480        ;; 
    463481        firewall) 
    464                 start_firewall 
     482                case "$2" in 
     483                        stop) 
     484                                stop_firewall 
     485                        ;; 
     486                        start|"") 
     487                                start_firewall 
     488                        ;; 
     489                esac 
    465490        ;; 
    466491esac 
Note: See TracChangeset for help on using the changeset viewer.