#!/bin/sh
RATE_TOT=100kbps
IP=kriek
RATE1=90kbps
PRIO1="prio 3"
RATE2=10kbps
PRIO2="prio 3"
 
DEV="dev eth0"
OPTION="allot 1514 maxburst 20 avpkt 1000"
 
tc qdisc del $DEV root
tc qdisc add $DEV root handle 10: cbq bandwidth 10mbit avpkt 1000
tc class add $DEV parent 10:0 classid 10:1 cbq bandwidth 10mbit rate $RATE_TOT $OPTION prio 3 bounded isolated
 
tc qdisc add $DEV parent 10:1 handle 20: cbq bandwidth $RATE_TOT allot 1514 avpkt 1000

tc class add $DEV parent 20: classid 20:10 cbq bandwidth $RATE_TOT rate $RATE1 $OPTION $PRIO1
tc class add $DEV parent 20: classid 20:20 cbq bandwidth $RATE_TOT rate $RATE2 $OPTION $PRIO2

tc filter add $DEV parent 10: protocol ip prio 3 handle 1 fw classid 10:1
tc filter add $DEV parent 10: protocol ip prio 3 handle 2 fw classid 10:1
tc filter add $DEV parent 20: protocol ip prio 3 handle 1 fw classid 20:10
tc filter add $DEV parent 20: protocol ip prio 3 handle 2 fw classid 20:20
 
iptables -F
iptables -X
iptables -N acc_0
iptables -N acc_1
iptables -A OUTPUT -t mangle -p tcp --dport 23 -j MARK --set-mark 1
iptables -A OUTPUT -t mangle -p tcp --dport ! 23 -j MARK --set-mark 2
iptables -A OUTPUT -p tcp --dport 23 -j acc_0
iptables -A OUTPUT -p tcp --dport ! 23 -j acc_1
