Home | History | Annotate | Download | only in tests
      1 #!/bin/bash
      2 # vim: ft=sh
      3 
      4 source lib/generic.sh
      5 
      6 QDISCS="cbq htb dsmark"
      7 
      8 for q in ${QDISCS}; do
      9 	ts_log "Preparing classifier testbed with qdisc $q"
     10 
     11 	for c in tests/cls/*.t; do
     12 
     13 		case "$q" in
     14 		cbq)
     15 			ts_tc "cls-testbed" "cbq root qdisc creation" \
     16 				qdisc add dev $DEV root handle 10:0 \
     17 				cbq bandwidth 100Mbit avpkt 1400 mpu 64
     18 			ts_tc "cls-testbed" "cbq root class creation" \
     19 				class add dev $DEV parent 10:0  classid 10:12 \
     20 				cbq bandwidth 100mbit rate 100mbit allot 1514 prio 3 \
     21 				maxburst 1 avpkt  500 bounded
     22 			;;
     23 		htb)
     24 			ts_qdisc_available "htb"
     25 			if [ $? -eq 0 ]; then
     26 				ts_log "cls-testbed: HTB is unsupported by $TC, skipping"
     27 				continue;
     28 			fi
     29 			ts_tc "cls-testbed" "htb root qdisc creation" \
     30 				qdisc add dev $DEV root handle 10:0 htb
     31 			ts_tc "cls-testbed" "htb root class creation" \
     32 				class add dev $DEV parent 10:0 classid 10:12 \
     33 				htb rate 100Mbit quantum 1514
     34 			;;
     35 		dsmark)
     36 			ts_qdisc_available "dsmark"
     37 			if [ $? -eq 0 ]; then
     38 				ts_log "cls-testbed: dsmark is unsupported by $TC, skipping"
     39 				continue;
     40 			fi
     41 			ts_tc "cls-testbed" "dsmark root qdisc creation" \
     42 				qdisc add dev $DEV root handle 20:0 \
     43 				dsmark indices 64 default_index 1 set_tc_index
     44 			ts_tc "cls-testbed" "dsmark class creation" \
     45 				class change dev $DEV parent 20:0 classid 20:12 \
     46 				dsmark mask 0xff value 2
     47 			ts_tc "cls-testbed" "prio inner qdisc creation" \
     48 				qdisc add dev $DEV parent 20:0 handle 10:0 prio
     49 			;;
     50 		*)
     51 			ts_err "cls-testbed: no testbed configuration found for qdisc $q"
     52 			continue
     53 			;;
     54 		esac
     55 
     56 		ts_tc "cls-testbed" "tree listing" qdisc list dev eth0
     57 		ts_tc "cls-testbed" "tree class listing" class list dev eth0
     58 		ts_log "cls-testbed: starting classifier test $c"
     59 		$c 
     60 
     61 		case "$q" in
     62 		*)
     63 			ts_tc "cls-testbed" "generic qdisc tree deletion" \
     64 				qdisc del dev $DEV root
     65 			;;
     66 		esac
     67 	done
     68 done
     69