$IPTABLES -t mangle -N "${SHAPE_CHAIN}"
fi
+# prioritize small and responsive things
shape 1 -p icmp
+shape 1 -p ipv6-icmp
shape 1 -p udp
shape 1 -p tcp -m length --length :64
shape 1 -p tcp --syn -m length --length 40:68
shape 1 -p tcp --tcp-flags ALL ACK,RST
shape 1 -p tcp --tcp-flags ALL ACK,FIN
+# favor ssh
shape 2 -p tcp --dport 22
+# defavor ftp
shape 4 -p tcp --dport 20
shape 4 -p tcp --dport 115
+# bulk bittorrent
shape 5 -p tcp --dport 8881:8899
shape 5 -p tcp --sport 8881:8899
+# default everything else to middle
+shape 3 -m mark --mark 0
+
if ! $IPTABLES -t mangle -C POSTROUTING -o "${EXT_IF}" -j "${SHAPE_CHAIN}" >/dev/null 2>&1
then
- $IPTABLES -t mangle -C POSTROUTING -o "${EXT_IF}" -j "${SHAPE_CHAIN}"
+ $IPTABLES -t mangle -I POSTROUTING -o "${EXT_IF}" -j "${SHAPE_CHAIN}"
fi