[LARTC] Wrapping prio in tbf
John Meeks
moose@flyingmoose.com
Tue, 4 May 2004 09:05:48 -0400 (EDT)
The manual says (about prio):
> Because it doesn't actually shape, the same warning as for SFQ holds:
> either use it only if your physical link is really full or wrap it
> inside a classful qdisc that does shape. The latter holds for almost all
> cable modems and DSL devices.
I want to wrap prio inside of tbf. Here's why: I have a server on a DSL
line, which has both hobby and business websites. I want to make it so
that, if the bandwidth starts to get saturated, the hobby sites will slow
down, while the business sites will not be affected. In other words, I
want to limit the total bandwidth to 700kbit (the max upload is 768kbit on
the modem) with tbf, but have a priority queue so that the business site
can take all available bandwidth if it's being used. The two sets of
sites are on different IP's, so I can either filter by IP or set the TOS
flags with iptables.
I'm using kernel 2.4.18, so htb doesn't work (although it looks like it
might be good) and I also can't seem to get cbq to work (it accepts the
commands, but nothing changes, the bandwidth isn't being limited). I'm
running tests on a spare server so I can try things without messing up the
production server.
Here's what I was trying with cbq:
tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 100Mbit avpkt 64 cell
8
tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 100Mbit rate
5kbit weight .5kbit prio 8 allot 1514 cell 8 maxburst 20 avpkt 1000
bounded
I'd rather not compile a custom kernel because this is a production
server, and I'm using the latest one available for Debian (with security
patches) 2.4.18-686.
Any suggestions would be appreciated. Keep in mind I'm new at this (never
heard of tc before yesterday).
Thanks.
--- Moose