все разобрался, параметр ht должен соответствовать таблице куда хеш заносится и последнему октету адреса назначения (в шестнадцатиричной системе счисления). Т.е. чтобы шейпер работал нужно:
/sbin/tc qdisc add dev eth0 root handle 1: prio bands 3
/sbin/tc qdisc add dev eth0 parent 1:1 handle 10: pfifo
/sbin/tc qdisc add dev eth0 parent 1:2 handle 11: pfifo
/sbin/tc qdisc add dev eth0 parent 1:3 handle 12: htb default 0
/sbin/tc filter add dev eth0 parent 12: prio 3 handle 1: protocol ip u32 divisor 256
/sbin/tc filter add dev eth0 protocol ip parent 12: prio 3 u32 match ip dst 172.16.0.0/24 hashkey mask 0x000000ff at 16 link 1:
/sbin/tc class add dev eth0 parent 12: classid 12:101 htb rate 1024Kbit ceil 1024Kbit quantum 1514 mtu 16500
/sbin/tc qdisc add dev eth0 parent 12:101 handle 101: sfq perturb 5
/sbin/tc filter add dev eth0 protocol ip parent 12: prio 7 u32 ht 1:2: match ip dst 172.16.0.2 flowid 12:101
/sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 4 u32 match ip dst 172.16.0.0/24 flowid 1:3