|
@@ -13,7 +13,8 @@ BEGIN {
|
|
|
pktsize[n] = $4
|
|
|
delay[n] = $5
|
|
|
maxrate[n] = ($6 * linespeed / 100)
|
|
|
- qdisc_esfq[n] = $7
|
|
|
+ qdisc[n] = $7
|
|
|
+ filter[n] = $8
|
|
|
}
|
|
|
|
|
|
END {
|
|
@@ -68,11 +69,7 @@ END {
|
|
|
# main qdisc
|
|
|
for (i = 1; i <= n; i++) {
|
|
|
printf "tc class add dev "device" parent 1:1 classid 1:"class[i]"0 hfsc"
|
|
|
- if (qdisc_esfq[i] != "") {
|
|
|
- # user requested esfq
|
|
|
- print "esfq " qdisc_esfq[i] " limit " ql
|
|
|
- } else if (rtm1[i] > 0) {
|
|
|
- # rt class - use sfq
|
|
|
+ if (rtm1[i] > 0) {
|
|
|
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"
|
|
@@ -96,7 +93,10 @@ END {
|
|
|
max = 3 * min
|
|
|
limit = (min + max) * 3
|
|
|
|
|
|
- if (rtm1[i] > 0) {
|
|
|
+ if (qdisc[i] != "") {
|
|
|
+ # user specified qdisc
|
|
|
+ print qdisc[i] " limit " limit
|
|
|
+ } else if (rtm1[i] > 0) {
|
|
|
# rt class - use sfq
|
|
|
print "sfq perturb 2 limit " limit
|
|
|
} else {
|
|
@@ -123,6 +123,11 @@ END {
|
|
|
# filter rule
|
|
|
for (i = 1; i <= n; i++) {
|
|
|
print "tc filter add dev "device" parent 1: prio "class[i]" protocol ip handle "class[i]" fw flowid 1:"class[i] "0"
|
|
|
+ filterc=1
|
|
|
+ if (filter[i] != "") {
|
|
|
+ print " tc filter add dev "device" parent "class[i]"00: handle "filterc"0 "filter[i]
|
|
|
+ filterc=filterc+1
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|