I wanted to post my new shaping rules which I am running on my IPCOP router. They seem to be working very well so far. Any comments to my setup would be appreciated. #!/bin/bash # clear out the chain and setup a new chain iptables -t mangle -D OUTPUT -o eth1 -j BW-OUT 2> /dev/null > /dev/null iptables -t mangle -F BW-OUT 2> /dev/null > /dev/null iptables -t mangle -X BW-OUT 2> /dev/null > /dev/null iptables -t mangle -N BW-OUT iptables -t mangle -I POSTROUTING -o eth1 -j BW-OUT # mark packets: 2 is active ftp and passive ftp, 1 is ACK for downloads and email and everything else iptables -t mangle -A BW-OUT -p tcp -m length --length :64 -j MARK --set-mark 1 iptables -t mangle -A BW-OUT -p tcp -m length --length :64 -j RETURN iptables -t mangle -A BW-OUT -m tcp -p tcp --dport 25 -j MARK --set-mark 2 iptables -t mangle -A BW-OUT -m tcp -p tcp --dport 25 -j RETURN iptables -t mangle -A BW-OUT -p tcp --sport 59999 -j MARK --set-mark 3 iptables -t mangle -A BW-OUT -p tcp --sport 59999 -j RETURN iptables -t mangle -A BW-OUT -p tcp --sport 50000:51000 -j MARK --set-mark 3 iptables -t mangle -A BW-OUT -p tcp --sport 50000:51000 -j RETURN # clear the qdisc tc qdisc del dev eth1 root #add the root qdisk tc qdisc add dev eth1 root handle 1: htb default 10 #add main rate limit class and 2 leafs tc class add dev eth1 parent 1: classid 1:1 htb rate 105kbps ceil 105kbps tc class add dev eth1 parent 1:1 classid 1:10 htb rate 45kbps ceil 105kbps prio 0 tc class add dev eth1 parent 1:1 classid 1:11 htb rate 40kbps ceil 105kbps prio 1 tc class add dev eth1 parent 1:1 classid 1:12 htb rate 20kbps ceil 105kbps prio 2 #filter traffic into classes tc filter add dev eth1 parent 1:0 prio 0 protocol ip handle 1 fw flowid 1:10 tc filter add dev eth1 parent 1:0 prio 1 protocol ip handle 2 fw flowid 1:11 tc filter add dev eth1 parent 1:0 prio 2 protocol ip handle 3 fw flowid 1:12