RATEUP=380 WAN=${WAN:-eth0.1} insmod sch_htb insmod sch_sfq insmod cls_u32 insmod cls_fw # clear mangle iptables -t mangle -F iptables -t mangle -X # clear qdiscs tc qdisc del dev ${WAN} root # set queuelen ifconfig $WAN txqueuelen 10 # set up marking # MARK wii packets 13 (prio 2) #iptables -t mangle -A PREROUTING -s 192.168.1.51 -j MARK --set-mark 13 iptables -t mangle -N OUTSHAPING iptables -t mangle -A POSTROUTING -o $WAN -j OUTSHAPING # MARK google voice chat packets 13 (prio 2) #iptables -t mangle -A OUTSHAPING -m multiport -p udp \ # --dports 19305:19309 -j MARK --set-mark 13 #iptables -t mangle -A OUTSHAPING -m multiport -p tcp \ # --dports 19305:19309 -j MARK --set-mark 13 # MARK ACKs 14 (prio 2) iptables -t mangle -A OUTSHAPING \ -p tcp --tcp-flags URG,ACK,PSH,RST,SYN,FIN ACK \ -m length --length 20:64 -j MARK --set-mark 13 tc qdisc add dev $WAN root handle 1: stab overhead 28 linklayer atm mtu 1600 htb default 11 tc class add dev $WAN parent 1: classid 1:1 htb rate ${RATEUP}kbit ceil ${RATEUP}kbit tc class add dev $WAN parent 1:1 classid 1:10 htb rate 12kbit ceil ${RATEUP}kbit prio 0 quantum 1500 tc class add dev $WAN parent 1:1 classid 1:11 htb rate 200kbit ceil ${RATEUP}kbit prio 2 quantum 3000 tc class add dev $WAN parent 1:1 classid 1:12 htb rate 20kbit ceil $(expr ${RATEUP} \* 98 / 100)kbit prio 3 quantum 1500 tc class add dev $WAN parent 1:1 classid 1:13 htb rate 150kbit ceil ${RATEUP}kbit prio 1 quantum 4500 burst 25kbit tc qdisc add dev $WAN parent 1:10 handle 10: sfq perturb 2 tc qdisc add dev $WAN parent 1:11 handle 11: sfq perturb 10 tc qdisc add dev $WAN parent 1:12 handle 12: sfq perturb 20 tc qdisc add dev $WAN parent 1:13 handle 13: sfq perturb 10 # interactive traffic in flow 1:10 (lowest latency, low bandwidth) tc filter add dev $WAN parent 1:0 protocol ip prio 1 u32 match ip tos 0x10 0xff flowid 1:10 # TCP control in flow 1:13 (low latency) tc filter add dev $WAN parent 1:0 protocol ip prio 3 handle 13 fw classid 1:13 # bulk traffic (backups) in flow 1:12 (lowest prio) tc filter add dev $WAN parent 1:0 protocol ip prio 2 u32 match ip tos 0x08 0xff flowid 1:12 # everything else goes to 11 (set as default on root)