This patch allows the user to specify esfq as the leaf qdisc, as well as perturb and hash parameters, closes #1893
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19874 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
159d57a5b4
commit
42ce671058
|
@ -315,8 +315,10 @@ start_interface() {
|
||||||
cls_var maxrate "$class" limitrate $dir 100
|
cls_var maxrate "$class" limitrate $dir 100
|
||||||
cls_var prio "$class" priority $dir 1
|
cls_var prio "$class" priority $dir 1
|
||||||
cls_var avgrate "$class" avgrate $dir 0
|
cls_var avgrate "$class" avgrate $dir 0
|
||||||
|
cls_var qdisc_esfq "$class" qdisc_esfq $dir ""
|
||||||
|
[ "$qdisc_esfq" != "" ] && add_insmod sch_esfq
|
||||||
config_get classnr "$class" classnr
|
config_get classnr "$class" classnr
|
||||||
append cstr "$classnr:$prio:$avgrate:$pktsize:$pktdelay:$maxrate" "$N"
|
append cstr "$classnr:$prio:$avgrate:$pktsize:$pktdelay:$maxrate:$qdisc_esfq" "$N"
|
||||||
done
|
done
|
||||||
append ${prefix}q "$(tcrules)" "$N"
|
append ${prefix}q "$(tcrules)" "$N"
|
||||||
export dev_${dir}="ifconfig $dev up txqueuelen 5 >&- 2>&-
|
export dev_${dir}="ifconfig $dev up txqueuelen 5 >&- 2>&-
|
||||||
|
|
|
@ -13,6 +13,7 @@ BEGIN {
|
||||||
pktsize[n] = $4
|
pktsize[n] = $4
|
||||||
delay[n] = $5
|
delay[n] = $5
|
||||||
maxrate[n] = ($6 * linespeed / 100)
|
maxrate[n] = ($6 * linespeed / 100)
|
||||||
|
qdisc_esfq[n] = $7
|
||||||
}
|
}
|
||||||
|
|
||||||
END {
|
END {
|
||||||
|
@ -67,7 +68,11 @@ END {
|
||||||
# main qdisc
|
# main qdisc
|
||||||
for (i = 1; i <= n; i++) {
|
for (i = 1; i <= n; i++) {
|
||||||
printf "tc class add dev "device" parent 1:1 classid 1:"class[i]"0 hfsc"
|
printf "tc class add dev "device" parent 1:1 classid 1:"class[i]"0 hfsc"
|
||||||
if (rtm1[i] > 0) {
|
if (qdisc_esfq[i] != "") {
|
||||||
|
# user requested esfq
|
||||||
|
print "esfq " qdisc_esfq[i] " limit " ql
|
||||||
|
} else if (rtm1[i] > 0) {
|
||||||
|
# rt class - use sfq
|
||||||
printf " rt m1 " int(rtm1[i]) "kbit d " int(d[i] * 1000) "us m2 " int(rtm2[i])"kbit"
|
printf " rt m1 " int(rtm1[i]) "kbit d " int(d[i] * 1000) "us m2 " int(rtm2[i])"kbit"
|
||||||
}
|
}
|
||||||
printf " ls m1 " int(lsm1[i]) "kbit d " int(d[i] * 1000) "us m2 " int(lsm2[i]) "kbit"
|
printf " ls m1 " int(lsm1[i]) "kbit d " int(d[i] * 1000) "us m2 " int(lsm2[i]) "kbit"
|
||||||
|
|
Loading…
Reference in New Issue