Hello Leslie, I had the same problem for kernel 2.4.27 and it was related to bug in HTB. Use kernel >=2.6.8.1 or apply patch from Devik's site http://luxik.cdi.cz/~devik/qos/htb/v3/htbfair.diff. Best regards, Zviad >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@xxxxxxxxxxxxxxx >http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/ _______________________________________________ LARTC mailing list / LARTC@xxxxxxxxxxxxxxx http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/