All of lore.kernel.org
 help / color / mirror / Atom feed
* [LARTC] Low-priority traffic
@ 2007-10-24 17:47 Giovanni Bajo
  2007-10-24 21:53 ` Jens Thiele
  0 siblings, 1 reply; 2+ messages in thread
From: Giovanni Bajo @ 2007-10-24 17:47 UTC (permalink / raw)
  To: lartc

Hello,

I'm a total tc newbie, and I'm trying to tweak the wondershaper script 
(http://lartc.org/wondershaper/) to get a slightly different result. 
Excuse me if I will not use the correct technical terms, it's a whole 
new world to me :)

wondershaper.htb creates 3 HTB classes; 1:10 is high prio, 1:20 is bulk 
(default), and 1:30 is low priority. The classes are created as follows:

=============================
tc class add dev $DEV parent 1:1 classid 1:10 htb \
    rate ${UPLINK}kbit \
    burst 6k prio 1

tc class add dev $DEV parent 1:1 classid 1:20 htb \
    rate $[9*$UPLINK/10]kbit ceil ${UPLINK}kbit \
    burst 6k prio 2

tc class add dev $DEV parent 1:1 classid 1:30 htb \
    rate $[1*$UPLINK/10]kbit ceil ${UPLINK}kbit \
    burst 6k prio 2
=============================

What I would like to do is to always give priority to traffic in class 
1:20 respect to class 1:30: basically, if there is a lot of traffic in 
class 1:20, class 1:30 shouldn't have any bandwidth allocated beside its 
minimum rate.

I'll try to clarify the above paragraph with an example; let's assume 
that if I download file A from this server, the generated traffic goes 
to class 1:20; if I download file B, the traffic goes to class 1:30. 
Let's also say that UPLINK is 1Mbit/s.

  0) Server does nothing.
  1) I start downloading B. I begin downloading it a 1Mbit/s.
  2) I then start download A while B is going. A's download totally 
steals traffic from B's download, up to its minimum rate. So, after a 
little while, I should see download B going to 10% = 100Kbit and 
download A going to 90% = 900Kbit.
  3) I stop download B. A goes up to 1Mbit.
  4) I apply a client-side limit to A's download. Now A goes to 600Kbit.
  5) I start downloading B again. B cannot steal any bandwidth to A, but 
it will get all the available bandwidth. So A will stay at 600Kbit, and 
B will go at 400Kbit.

I hope my explanation is clear.

Wondershaper does not seem to do this. In fact, when I start downloading 
A and B, they seem to equally distribute the available bandwidth (I 
verified that packets really go to the respective classes, so it's not a 
filter problem). It's not clear to me how HTB decides to allocate the 
bandwidth, and what the "rate" parameter really means.

I even tried the CBQ version of wondershaper, but I got the same results.

Do you have any suggestion about how can I achieve my expected 
behaviour? How should I modify wondershaper?

Thanks!
-- 
Giovanni Bajo
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-10-24 21:53 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-24 17:47 [LARTC] Low-priority traffic Giovanni Bajo
2007-10-24 21:53 ` Jens Thiele

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.