#!/bin/bash
# ----- Initialize CAN devices -----
-. caninit.sh
+. caninit.sh 1000
# ----- Configure ftrace -----
+mount -t debugfs nodev /sys/kernel/debug
FTRDIR=/sys/kernel/debug/tracing
sysctl kernel.ftrace_enabled=1
echo "function_graph" > ${FTRDIR}/current_tracer
DATA=i
LENGTH=8
FRMTYPE=""
+DEV="can0"
echo "Benchmarking ..."
# 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