diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2011-04-12 20:33:11 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2011-04-12 20:33:11 +0000 |
commit | 9646ca6c6e51a7a3656e2517b606fc5ebfca34b7 (patch) | |
tree | 5afa9339d1a075a10ef7a33e67945bc80ba255e3 /package/qos-scripts/files/usr/lib/qos/generate.sh | |
parent | b32797cc551041fe37a8a04b48f014369d5f7cc1 (diff) |
This patch updates qos-scripts to support fair traffic sharing using the SFQ with external classifiers method. It also corrects a bug in the unsupported ESFQ method already used by qos-scripts. (ESFQ: http://fatooh.org/esfq-2.6/ only updated to 2.6.24, it was switched to an SFQ patch after that and not updated since 2008)
A class can be forced to use SFQ, and an external classifier added like
this:
config class "Normal"
option avgrate 10
option priority 30
option packetdelay 100
option limitrate 94
# option qdisc "sfq perturb 2"
config class "Normal_up"
# option filter "protocol all flow hash keys src divisor 1024"
config class "Normal_down"
# option filter "protocol all flow hash keys dst divisor 1024"
Using these options, the user needs to load cls_flow before qos-scripts
starts.
I've got more information here:
http://oneitguy.com/blogs/netprince/fair-traffic-sharing-esfq-broken-switching-sfqexternal-classifiers
This has been tested on r23914.
Signed-off-by: Ben Pfountz <netprince<>vt_edu>
SVN-Revision: 26622
Diffstat (limited to 'package/qos-scripts/files/usr/lib/qos/generate.sh')
-rwxr-xr-x | package/qos-scripts/files/usr/lib/qos/generate.sh | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/package/qos-scripts/files/usr/lib/qos/generate.sh b/package/qos-scripts/files/usr/lib/qos/generate.sh index 9bd3b47850..a697e9f4a2 100755 --- a/package/qos-scripts/files/usr/lib/qos/generate.sh +++ b/package/qos-scripts/files/usr/lib/qos/generate.sh @@ -315,10 +315,10 @@ start_interface() { cls_var maxrate "$class" limitrate $dir 100 cls_var prio "$class" priority $dir 1 cls_var avgrate "$class" avgrate $dir 0 - cls_var qdisc_esfq "$class" qdisc_esfq $dir "" - [ "$qdisc_esfq" != "" ] && add_insmod sch_esfq + cls_var qdisc "$class" qdisc $dir "" + cls_var filter "$class" filter $dir "" config_get classnr "$class" classnr - append cstr "$classnr:$prio:$avgrate:$pktsize:$pktdelay:$maxrate:$qdisc_esfq" "$N" + append cstr "$classnr:$prio:$avgrate:$pktsize:$pktdelay:$maxrate:$qdisc:$filter" "$N" done append ${prefix}q "$(tcrules)" "$N" export dev_${dir}="ifconfig $dev up txqueuelen 5 >&- 2>&- |