rendered paste body#upload root
tc qdisc add dev $DOUT root handle 1: htb default 10000 r2q 1
tc class add dev $DOUT parent 1: classid 1:2 htb rate ${UPLINK}Kbit burst 15k
#download root
tc qdisc add dev $DINT root handle 1: htb default 10000 r2q 1
tc class add dev $DINT parent 1: classid 1:2 htb rate ${DOWNLINK}Kbit burst 15k
tc qdisc add dev $DINT2 root handle 1: htb default 10000 r2q 1
tc class add dev $DINT2 parent 1: classid 1:2 htb rate ${DOWNLINK}Kbit burst 15k
while IFS=* read ip down_limit up_limit lt_down_limit lt_up_limit comment
do
mark_val=$(($mark_val+1));
klase="1:1$mark_val"
IP_DOWN=$down_limit
IP_UP=$up_limit
LT_DOWN=$lt_down_limit
LT_UP=$lt_up_limit
MAXD=$DOWNLINK
tc class add dev $DINT parent 1:2 classid $klase htb rate ${IP_DOWN}kbit ceil ${IP_DOWN}kbit prio 2
tc filter add dev $DINT parent 1:0 protocol ip u32 match ip dst $ip classid $klase
tc class add dev $DINT2 parent 1:2 classid $klase htb rate ${IP_DOWN}kbit ceil ${IP_DOWN}kbit prio 2
tc filter add dev $DINT2 parent 1:0 protocol ip u32 match ip dst $ip classid $klase
tc class add dev $DOUT parent 1:2 classid $klase htb rate ${IP_UP}kbit ceil ${IP_UP}kbit prio 2
tc filter add dev $DOUT parent 1:0 prio 0 protocol ip handle $mark_val fw classid $klase
tc filter add dev $DOUT protocol ip parent 1:0 prio 0 u32 match ip src $ip classid $klase
iptables -t mangle -A POSTROUTING -s $ip -j MARK --set-mark $mark_val
done <$IP_LIST