[LARTC] HTB Rate and Prio
Gael Mauleon
admin at premiere-heure.fr
Fri Jul 8 16:05:18 CEST 2005
Hi,
I wanted to implement some QOS on my Linux Box with HTB, but after some time
spend
on the configuration and tests, I still don't manage to have some correct
results. Here are the details :
-ROOT 2000 kbits
-HIGHPRIO SUBCLASS 50 kbits prio 0
-SUBCLASS1 750 kbits prio 1
-SERVICE1 250 kbits prio 1
-SERVICE2 250 kbits prio 1
-SERVICE3 250 kbits prio 1
-SUBCLASS2 750 kbits prio 1
-SERVICE1 250 kbits prio 1
-SERVICE2 250 kbits prio 1
-SERVICE3 250 kbits prio 1
-SUBCLASS3 400 kbits prio 1
-SERVICE1 200 kbits prio 1
-SERVICE2 200 kbits prio 1
-LOWPRIO SUBCLASS 50 kbits prio 5
Here is the details of the implementation, I only wrote 1 on the subclass
Cause they are all on the same template.
tc qdisc add dev $QOSIN root handle 1:0 htb default 1000
tc class add dev $QOSIN parent 1:0 classid 1:1 htb rate 2000kbit
### SUBCLASS1
tc class add dev $QOSIN parent 1:1 classid 1:10 htb rate 750kbit ceil
2000kbit prio 1
tc class add dev $QOSIN parent 1:10 classid 1:101 htb rate 250kbit ceil
2000kbit prio 1
tc qdisc add dev $QOSIN parent 1:101 handle 101: pfifo limit 10
tc class add dev $QOSIN parent 1:10 classid 1:102 htb rate 250kbit ceil
2000kbit prio 1
tc qdisc add dev $QOSIN parent 1:102 handle 102: pfifo limit 10
tc class add dev $QOSIN parent 1:10 classid 1:103 htb rate 250kbit ceil
2000kbit prio 1
tc qdisc add dev $QOSIN parent 1:103 handle 103: pfifo limit 10
tc filter add dev $QOSIN parent 1:0 protocol ip handle $OUTPROD$MAIL fw
flowid 1:101
tc filter add dev $QOSIN parent 1:0 protocol ip handle $OUTPROD$HTTP fw
flowid 1:102
tc filter add dev $QOSIN parent 1:0 protocol ip handle $OUTPROD$FTP fw
flowid 1:103
etc.
### HIGH PRIO ###
tc class add dev $QOSIN parent 1:1 classid 1:50 htb rate 50kbit ceil
2000kbit prio 0 quantum 1500
tc qdisc add dev $QOSIN parent 1:50 handle 50: pfifo limit 10
tc filter add dev $QOSIN parent 1:0 protocol ip handle $OUTPROD$HIGHPRIO fw
flowid 1:50
tc filter add dev $QOSIN parent 1:0 protocol ip handle $OUTPOSTPROD$HIGHPRIO
fw flowid 1:50
tc filter add dev $QOSIN parent 1:0 protocol ip handle $OUTDMZ$HIGHPRIO fw
flowid 1:50
### LOW PRIO ###
tc class add dev $QOSIN parent 1:1 classid 1:60 htb rate 50kbit ceil
2000kbit prio 5 quantum 1500
tc qdisc add dev $QOSIN parent 1:60 handle 60: pfifo limit 10
tc filter add dev $QOSIN parent 1:0 protocol ip handle $OUTPROD$LOWPRIO fw
flowid 1:60
tc filter add dev $QOSIN parent 1:0 protocol ip handle $OUTPOSTPROD$LOWPRIO
fw flowid 1:60
tc filter add dev $QOSIN parent 1:0 protocol ip handle $OUTDMZ$LOWPRIO fw
flowid 1:60
Every traffic seems to go in the class it must go, the stats are good and if
I change any of the ceil rate
the associated traffic is caped to the right ceil I enter.
Now with this configuration I expected that when one of the SUBCLASS class
or SERVICE want more bandwith than its
rate, she can borrow it from root and she had it before LOW PRIO and after
HIGH PRIO.
But it don't work at all, for exemple I tried only with 2 flow, I have 500
Kbits of LOW PRIO traffic that is currently
going on, then I fire some SERVICE1 traffic from SUBCLASS1 that can
theorically take 2000 kbits, and instead
of taking it from LOW PRIO, it just take what is left.
I surely miss something.
Thanks for your help and don't hesitate to ask more infos J
Gael.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ds9a.nl/pipermail/lartc/attachments/20050708/28857d33/attachment-0001.htm
More information about the LARTC
mailing list