]> rtime.felk.cvut.cz Git - lisovros/iproute2_canprio.git/commitdiff
benchmark: Added benchmarking of SFQ qdisc.
authorRostislav Lisovy <lisovy@gmail.com>
Fri, 14 Oct 2011 12:26:19 +0000 (14:26 +0200)
committerRostislav Lisovy <lisovy@gmail.com>
Wed, 23 May 2012 08:45:13 +0000 (10:45 +0200)
tc/ftrace_benchmark.sh
tc/setcanfltr.sh

index 779fb0d63aeb4fdfe6ed2624f8bc0eb19bf4c2f5..36818f5e555a70280bd316dd28c9f4ac218569d2 100755 (executable)
@@ -21,6 +21,7 @@ COUNT=5000
 DATA=i
 LENGTH=8
 FRMTYPE=""
+DEV="can0"
 
 echo "Benchmarking ..."
 
@@ -34,56 +35,69 @@ do
 
        # Default (pfifo qdisc)
        echo "[pfifo]"
-       . setcanprio.sh del
+       . setcanfltr.sh del ${DEV}
        echo > ${FTRDIR}/trace
-       cangen ${FRMTYPE} can0 -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       cangen ${FRMTYPE} ${DEV} -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
        cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_pfifo1.txt
 
        echo > ${FTRDIR}/trace
-       cangen ${FRMTYPE} can0 -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       cangen ${FRMTYPE} ${DEV} -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
        cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_pfifo2.txt
 
 
        # With PRIO qdisc; all traffic is classified into first class
        echo "[prio]"
        echo > ${FTRDIR}/trace
-       . setcanprio.sh del
-       . setcanprio.sh prio
-       cangen ${FRMTYPE} can0 -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       . setcanfltr.sh del ${DEV}
+       . setcanfltr.sh prio ${DEV}
+       cangen ${FRMTYPE} ${DEV} -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
        cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_prio1.txt
 
        # With PRIO qdisc; most of the traffic goes to "default" class
        echo > ${FTRDIR}/trace
-       cangen ${FRMTYPE} can0 -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       cangen ${FRMTYPE} ${DEV} -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
        cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_prio1b.txt
 
 
        # With PRIO qdisc; There is maximum rules for each (except the last) class
        echo "[prio2]"
        echo > ${FTRDIR}/trace
-       . setcanprio.sh del
+       . setcanfltr.sh del ${DEV}
 
        if [ ${X} == "eff" ]; then
-               . setcanprio.sh prio2eff
+               . setcanfltr.sh prio2eff ${DEV}
        else
-               . setcanprio.sh prio2sff
+               . setcanfltr.sh prio2sff ${DEV}
        fi      
 
-       cangen ${FRMTYPE} can0 -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       cangen ${FRMTYPE} ${DEV} -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
        cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_prio2.txt
 
        
        # With HTB qdisc
        echo "[htb]"
        echo > ${FTRDIR}/trace
-       . setcanprio.sh del
-       . setcanprio.sh htb
-       cangen ${FRMTYPE} can0 -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       . setcanfltr.sh del ${DEV}
+       . setcanfltr.sh htb ${DEV}
+       cangen ${FRMTYPE} ${DEV} -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
        cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_htb1.txt
 
        echo > ${FTRDIR}/trace
-       cangen ${FRMTYPE} can0 -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       cangen ${FRMTYPE} ${DEV} -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
        cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_htb2.txt
+
+       # With SFQ qdisc
+       echo "[sfq]"
+       echo > ${FTRDIR}/trace
+       . setcanfltr.sh del ${DEV}
+       . setcanfltr.sh sfq ${DEV}
+       cangen -b 18432 ${FRMTYPE} ${DEV} -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_sfq.txt
+
+       echo > ${FTRDIR}/trace
+       cangen -b 18432 ${FRMTYPE} ${DEV} -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_sfq2.txt
+
 done
 
 
index 6fe99dcfba16fe775ad8fb67862039ec3ff3adce..60b6f365e0f3bca24a7f6ceec851fbce279485f5 100755 (executable)
@@ -63,6 +63,49 @@ elif [ "$1"  == "prio" ]; then  # create Prio qdiscs and configure can filter
 
        tc qdisc show dev ${DEV}
 
+elif [ "$1" == "htb" ]; then # Hierarchy Token Bucket
+
+       tc qdisc add dev ${DEV} root handle 1: htb
+
+       tc class add dev ${DEV} parent 1: classid 1:1 htb rate 100kbps ceil 100kbps
+       tc class add dev ${DEV} parent 1:1 classid 1:10 htb rate 30kbps ceil 100kbps
+       tc class add dev ${DEV} parent 1:1 classid 1:11 htb rate 10kbps ceil 100kbps
+       tc class add dev ${DEV} parent 1:1 classid 1:12 htb rate 60kbps ceil 100kbps
+
+       tc filter add dev ${DEV} parent 1:0 prio 1 \
+               can sffid 0x123:0x7ff effid 0x123:0x7ff flowid 1:10
+       tc filter add dev ${DEV} parent 1:0 prio 2 \
+               can sffid 0x124:0x7ff effid 0x124:0x7ff flowid 1:11
+       tc filter add dev ${DEV} parent 1:0 prio 3 \
+               can sffid 0x125:0x7ff effid 0x125:0x7ff flowid 1:12
+
+       tc qdisc add dev ${DEV} parent 1:12 handle 40: sfq perturb 10
+
+elif [ "$1" == "sfq" ]; then
+
+       tc qdisc add dev ${DEV} root handle 1: prio
+
+       tc filter add dev ${DEV} parent 1:0 prio 1 \
+               can sffid 0x111 effid 0x111 flowid 1:1
+
+       tc filter add dev ${DEV} parent 1:0 prio 2 \
+               can \
+               sffid 0x123 effid 0x123 \
+               sffid 0x124 effid 0x124 \
+               sffid 0x125 effid 0x125 \
+               flowid 1:2
+
+       tc filter add dev ${DEV} parent 1:0 prio 3 \
+               can sffid 0x0:0x0 effid 0x0:0x0 flowid 1:3
+               # default class
+
+       # SFQ
+       tc qdisc add dev ${DEV} parent 1:2 handle 10: \
+               sfq perturb 10
+
+       tc qdisc add dev ${DEV} parent 1:3 handle 11: \
+               sfq perturb 10
+
 elif [ "$1"  == "prio2sff" ]; then  # create Prio qdiscs and configure can filter
 
        tc qdisc add dev ${DEV} root handle 1: prio bands 5
@@ -317,28 +360,10 @@ elif [ "$1"  == "prio2eff" ]; then  # create Prio qdiscs and configure can filte
 
        tc qdisc show dev ${DEV}
 
-
-elif [ "$1" == "htb" ]; then # Hierarchy Token Bucket
-
-       tc qdisc add dev ${DEV} root handle 1: htb
-
-       tc class add dev ${DEV} parent 1: classid 1:1 htb rate 100kbps ceil 100kbps
-       tc class add dev ${DEV} parent 1:1 classid 1:10 htb rate 30kbps ceil 100kbps
-       tc class add dev ${DEV} parent 1:1 classid 1:11 htb rate 10kbps ceil 100kbps
-       tc class add dev ${DEV} parent 1:1 classid 1:12 htb rate 60kbps ceil 100kbps
-
-       tc filter add dev ${DEV} parent 1:0 prio 1 \
-               can sffid 0x123:0x7ff effid 0x123:0x7ff flowid 1:10
-       tc filter add dev ${DEV} parent 1:0 prio 2 \
-               can sffid 0x124:0x7ff effid 0x124:0x7ff flowid 1:11
-       tc filter add dev ${DEV} parent 1:0 prio 3 \
-               can sffid 0x125:0x7ff effid 0x125:0x7ff flowid 1:12
-
-       tc qdisc add dev ${DEV} parent 1:12 handle 40: sfq perturb 10
 else
 
        echo -e "Usage: $0 [ del | stat | show | change | "
        echo -e "\t\t\t change2 | change3 | head_drop | tbf | prio | "
-       echo -e "\t\t\t prio2sff | prio2eff | htb ]"
+       echo -e "\t\t\t sfq | prio2sff | prio2eff | htb ]"
 fi