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