Greetings! I configured a chain of htb qdisc's with classes: qdisc htb (1:0) -> class htb (1:10) -> qdisc htb (10:0) -> class htb (10:1) -> multiple class (10:1xxx - 10:2xxx). `tc -s -d class show dev wg0` show packets sent throug the leaf classes (10:2xxx). But when I start a real test with iperf I do not see any shaping. Traffic takes all available capacity. What am I doing wrong ? Thanks in advance for your answers! A part of the script, which activates shaping, is below. #!/usr/bin/bash TC="/usr/sbin/tc" OUT_IF="wg0" $TC qdisc del dev $OUT_IF root handle 1: htb default 50 $TC qdisc add dev $OUT_IF root handle 1: htb default 50 $TC class add dev $OUT_IF parent 1: classid 1:1 htb rate 1000Mbit ceil 1000Mbit $TC class add dev $OUT_IF parent 1:1 classid 1:10 htb rate 250Mbit ceil 250Mbit $TC qdisc add dev $OUT_IF parent 1:10 handle 10: htb default 50 $TC class add dev $OUT_IF parent 10: classid 10:1 htb rate 20Mbit ceil 20Mbit $TC class add dev $OUT_IF parent 10: classid 10:2 htb rate 230Mbit ceil 230Mbit for (( i=1; i <= 254; i++ )) do $TC class add dev $OUT_IF parent 10:1 classid 10:1$i htb rate 1kbit ceil 64kbit $TC class add dev $OUT_IF parent 10:2 classid 10:2$i htb rate 512kbit ceil 10Mbit done $TC filter add dev $OUT_IF parent 1:0 protocol ip u32 $TC filter add dev $OUT_IF parent 1:0 handle 2: protocol ip u32 divisor 256 $TC filter add dev $OUT_IF parent 1:0 protocol ip u32 ht 2:1: match ip dst 10.1.0.0/16 flowid 1:10 $TC filter add dev $OUT_IF parent 1:0 protocol ip prio 1 u32 match ip dst 10.0.0.0/8 hashkey mask 0xff0000 at 16 link 2: $TC filter add dev $OUT_IF parent 10:0 protocol ip u32 $TC filter add dev $OUT_IF parent 10:0 handle 11: protocol ip u32 divisor 256 $TC filter add dev $OUT_IF parent 10:0 handle 12: protocol ip u32 divisor 256 $TC filter add dev $OUT_IF parent 10:0 handle 13: protocol ip u32 divisor 256 $TC filter add dev $OUT_IF parent 10:0 protocol ip u32 ht 11:1: match ip dst 10.1.1.0/24 hashkey mask 0xff at 16 link 12: $TC filter add dev $OUT_IF parent 10:0 protocol ip u32 ht 11:2: match ip dst 10.1.2.0/24 hashkey mask 0xff at 16 link 13: for (( i=1; i <= 254; i++ )) do xi=$(printf "%x" $i) $TC filter add dev $OUT_IF parent 10:0 protocol ip u32 ht 12:$xi: match ip dst 10.1.1.$i/32 flowid 10:1$i $TC filter add dev $OUT_IF parent 10:0 protocol ip u32 ht 13:$xi: match ip dst 10.1.2.$i/32 flowid 10:2$i done $TC filter add dev $OUT_IF parent 10:0 protocol ip prio 1 u32 match ip dst 10.1.0.0/16 hashkey mask 0xff00 at 16 link 11: -- Best regards, Yuriy Ivkin