tc qdisc add dev eth0 root handle 1: htb tc class add dev eth0 parent 1: classid 1:f000 htb rate 620mbit tc filter add dev eth0 parent 1: protocol ip prio 5 handle 0: u32 divisor 256 tc filter add dev eth0 parent 1: prio 5 u32 ht 800:: match ip dst 172.26.0.0/16 hashkey mask 0x0000ff00 at 16 link 0: for i in `seq 0 255` ; do div=`printf "%x" $i` let j=$i+1 tc filter add dev eth0 parent 1: protocol ip prio 5 handle $j: u32 divisor 256 tc filter add dev eth0 parent 1: prio 5 u32 ht 0:$div: match ip dst 172.26.$i.0/24 hashkey mask 0x000000ff at 16 link $j: for q in `seq 0 255` ; do d=`printf "%x" $q` clsid=$[$i*256+$q] tc class add dev eth0 parent 1:f000 classid 1:$clsid htb rate 64kbit tc filter add dev eth0 parent 1: prio 5 u32 ht $j:$d match ip dst 172.26.$i.$q flowid 1:$clsid done done