Re: HTB: Problem with excess bandwidth distribution

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



did u try it with sfq ?



On Thu, 28 Oct 2004 18:55:00 +0200, Leslie Patrick Polzer
<leslie.polzer@xxxxxxx> wrote:
> 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/
> 


-- 
Saad S. B. Faruque
MCSE, RHCT, CCNA
Head of NOC
MTL BD Ltd.
_______________________________________________
LARTC mailing list / LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux