All of lore.kernel.org
 help / color / mirror / Atom feed
* [LARTC] HTB: Problem with excess bandwidth distribution
@ 2004-10-28 16:55 Leslie Patrick Polzer
  2004-10-28 17:20 ` Saad S. B. Faruque
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: Leslie Patrick Polzer @ 2004-10-28 16:55 UTC (permalink / raw)
  To: lartc

Hello,

I have a serious problem with HTB which I wasn't able to solve myself.

I run a masquerading router with ppp0 as interface to the Internet.
Three clients need to share a downstream of 1 MBit, which I want
to divide with tc.
When I see a packet being forwarded to one of these clients, I give
it the appropriate unique mark:

iptables -t mangle -A FORWARD -d 192.168.34.141 -j MARK --set-mark 1
iptables -t mangle -A FORWARD -d 192.168.34.140 -j MARK --set-mark 2
iptables -t mangle -A FORWARD -d 192.168.1.2 -j MARK --set-mark 3

Because it might be of interest: 192.168.34.0/24 is on network A
with 10 MBit, 192.168.1.0/24 is on network B with 100 MBit.

I then attach an IMQ device imq0 to the FORWARD table:

# delegate all incoming on ppp+ to imq0
iptables -t mangle -A FORWARD -i ppp+ -j IMQ --todev 0

After all this I create the actual tc setup:

# --- snip ---
# clear root qdisc
 tc qdisc del dev imq0 root

# add root qdisc (htb)
 tc qdisc add dev imq0 root handle 1: htb default 40

# add root class (needed for bandwidth borrowing)
 tc class add dev imq0 parent 1: classid 1:1 htb rate 1mbit ceil 1mbit

# set classes for users
 tc class add dev imq0 parent 1:1 classid 1:10 htb rate 333kbit ceil 1mbit \
        burst 15k
 tc class add dev imq0 parent 1:1 classid 1:20 htb rate 333kbit ceil 1mbit \
        burst 15k
 tc class add dev imq0 parent 1:1 classid 1:30 htb rate 333kbit ceil 1mbit \
        burst 15k
 tc class add dev imq0 parent 1:1 classid 1:40 htb rate 5kbps

# set filters to direct ips to their classes
 tc filter add dev imq0 protocol ip parent 1: prio 1 handle 1 fw flowid 1:10
 tc filter add dev imq0 protocol ip parent 1: prio 1 handle 2 fw flowid 1:20
 tc filter add dev imq0 protocol ip parent 1: prio 1 handle 3 fw flowid 1:30

# --- snap ---

1:40 is just for testing.

The 'rate'-argument gets applied correctly if I don't use ceil - but I 
do, of
course, want to let the classes borrow free bandwidth, so I use a ceiling
of 1 MBit. And herein lies the problem:

If 1:10 and 1:30 both download a file with full speed, 1:10 gets about
20kb/s (which is under its guaranteed bandwidth!) and 1:30 gets
90 kb/s. What is going wrong here? The shortened output of tc:

class htb 1:1 root rate 1Mbit ceil 1Mbit burst 2909b/8 mpu 0b cburst 
2909b/8 mpu 0b level 7
class htb 1:10 parent 1:1 prio 0 quantum 4262 rate 333Kbit ceil 1Mbit 
burst 15Kb/8 mpu 0b cburst
class htb 1:20 parent 1:1 prio 0 quantum 4262 rate 333Kbit ceil 1Mbit 
burst 15Kb/8 mpu 0b cburst
class htb 1:30 parent 1:1 prio 0 quantum 4262 rate 333Kbit ceil 1Mbit 
burst 15Kb/8 mpu 0b cburst
class htb 1:40 parent 1:1 prio 0 quantum 1000 rate 40Kbit ceil 40Kbit 
burst 1650b/8 mpu 0b cburst

...shows that each class is configured equal.

Any clues? I'd be very, very grateful if anyone could point out errors.
If more output is needed, just tell me.


Kind regards,

Leslie

_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

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

end of thread, other threads:[~2004-10-31 12:03 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-10-28 16:55 [LARTC] HTB: Problem with excess bandwidth distribution Leslie Patrick Polzer
2004-10-28 17:20 ` Saad S. B. Faruque
2004-10-28 17:45 ` Zviad O. Giorgadze
2004-10-28 22:04 ` Andy Furniss
2004-10-29  6:11 ` Leslie Patrick Polzer
2004-10-29 11:17 ` Leslie Patrick Polzer
2004-10-29 15:29 ` Andy Furniss
2004-10-29 15:36 ` Leslie Patrick Polzer
2004-10-29 16:19 ` Jason Boxman
2004-10-29 17:40 ` Francisco Pereira
2004-10-29 22:03 ` Andy Furniss
2004-10-29 23:24 ` Andy Furniss
2004-10-31 12:03 ` Andy Furniss

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.