kernel: fq_codel: dont reinit flow state
[openwrt.git] / package / qos-scripts / files / usr / lib / qos / tcrules.awk
index 8220d99..a19b651 100644 (file)
@@ -13,6 +13,8 @@ BEGIN {
        pktsize[n] = $4
        delay[n] = $5
        maxrate[n] = ($6 * linespeed / 100)
+       qdisc[n] = $7
+       filter[n] = $8
 }
 
 END {
@@ -77,25 +79,17 @@ END {
        # leaf qdisc
        avpkt = 1200
        for (i = 1; i <= n; i++) {
-               ql = int((avgrate[i] + linespeed) * 1024 / (8 * pktsize[i]))
-               printf "tc qdisc add dev "device" parent 1:"class[i]"0 handle "class[i]"00: "
-               if (rtm1[i] > 0) {
-                       # rt class - use sfq
-                       print "sfq perturb 2 limit " ql
-               } else {
-                       # non-rt class - use red
-                       min = int(maxrate[i] * 1024 / 8 * 0.05)
-                       if (min < avpkt) min = avpkt
-                       dqb = 8 * min;
-                       max = int(2.1*min)
-                       rburst = int((1.5*min + max) / (3 * avpkt))
-                       print "red min " min " max " max " burst " rburst " avpkt " avpkt " limit " dqb " probability 0.04 ecn"
-               }
+               print "tc qdisc add dev "device" parent 1:"class[i]"0 handle "class[i]"00: fq_codel"
        }
-       
+
        # 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" 
+               print "tc filter add dev "device" parent 1: prio "class[i]" protocol ip handle "class[i]"/0xff 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
+               }
        }
 }