You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.9 KiB
74 lines
1.9 KiB
4 months ago
|
#!/bin/bash
|
||
|
# vim: ft=sh
|
||
|
|
||
|
. lib/generic.sh
|
||
|
|
||
|
QDISCS="cbq htb dsmark"
|
||
|
|
||
|
if [ ! -d tests/cls ]; then
|
||
|
ts_log "tests/cls folder does not exist"
|
||
|
ts_skip
|
||
|
fi
|
||
|
|
||
|
for q in ${QDISCS}; do
|
||
|
ts_log "Preparing classifier testbed with qdisc $q"
|
||
|
|
||
|
for c in tests/cls/*.c; do
|
||
|
|
||
|
case "$q" in
|
||
|
cbq)
|
||
|
ts_tc "cls-testbed" "cbq root qdisc creation" \
|
||
|
qdisc add dev $DEV root handle 10:0 \
|
||
|
cbq bandwidth 100Mbit avpkt 1400 mpu 64
|
||
|
ts_tc "cls-testbed" "cbq root class creation" \
|
||
|
class add dev $DEV parent 10:0 classid 10:12 \
|
||
|
cbq bandwidth 100mbit rate 100mbit allot 1514 prio 3 \
|
||
|
maxburst 1 avpkt 500 bounded
|
||
|
;;
|
||
|
htb)
|
||
|
ts_qdisc_available "htb"
|
||
|
if [ $? -eq 0 ]; then
|
||
|
ts_log "cls-testbed: HTB is unsupported by $TC, skipping"
|
||
|
continue;
|
||
|
fi
|
||
|
ts_tc "cls-testbed" "htb root qdisc creation" \
|
||
|
qdisc add dev $DEV root handle 10:0 htb
|
||
|
ts_tc "cls-testbed" "htb root class creation" \
|
||
|
class add dev $DEV parent 10:0 classid 10:12 \
|
||
|
htb rate 100Mbit quantum 1514
|
||
|
;;
|
||
|
dsmark)
|
||
|
ts_qdisc_available "dsmark"
|
||
|
if [ $? -eq 0 ]; then
|
||
|
ts_log "cls-testbed: dsmark is unsupported by $TC, skipping"
|
||
|
continue;
|
||
|
fi
|
||
|
ts_tc "cls-testbed" "dsmark root qdisc creation" \
|
||
|
qdisc add dev $DEV root handle 20:0 \
|
||
|
dsmark indices 64 default_index 1 set_tc_index
|
||
|
ts_tc "cls-testbed" "dsmark class creation" \
|
||
|
class change dev $DEV parent 20:0 classid 20:12 \
|
||
|
dsmark mask 0xff value 2
|
||
|
ts_tc "cls-testbed" "prio inner qdisc creation" \
|
||
|
qdisc add dev $DEV parent 20:0 handle 10:0 prio
|
||
|
;;
|
||
|
*)
|
||
|
ts_err "cls-testbed: no testbed configuration found for qdisc $q"
|
||
|
continue
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
ts_tc "cls-testbed" "tree listing" qdisc list dev eth0
|
||
|
ts_tc "cls-testbed" "tree class listing" class list dev eth0
|
||
|
ts_log "cls-testbed: starting classifier test $c"
|
||
|
$c
|
||
|
|
||
|
case "$q" in
|
||
|
*)
|
||
|
ts_tc "cls-testbed" "generic qdisc tree deletion" \
|
||
|
qdisc del dev $DEV root
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
done
|