Dear List, I am a tc newbie, and I've been working through the LARTC HOWTO to try to understand how qdiscs, classes, and filters fit together. I was confused by the example in section 9.5.5.1 (see excerpt below). I thought that classes were could only be attached to qdiscs (classful ones). In the example, however, classes are being attached to other classes. Can anybody explain to me how this works? Sorry if this is a silly question. Thanks, Alex ---- snip ---- 9.5.5.1. Sample configuration Functionally almost identical to the CBQ sample configuration above: # tc qdisc add dev eth0 root handle 1: htb default 30 # tc class add dev eth0 parent 1: classid 1:1 htb rate 6mbit burst 15k # tc class add dev eth0 parent 1:1 classid 1:10 htb rate 5mbit burst 15k # tc class add dev eth0 parent 1:1 classid 1:20 htb rate 3mbit ceil 6mbit burst 15k # tc class add dev eth0 parent 1:1 classid 1:30 htb rate 1kbit ceil 6mbit burst 15k The author then recommends SFQ for beneath these classes: # tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10 # tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10 # tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 10 Add the filters which direct traffic to the right classes: # U32="tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32" # $U32 match ip dport 80 0xffff flowid 1:10 # $U32 match ip sport 25 0xffff flowid 1:20 --- /snip ----