Re: htb child classes don't borrow form "parent's parent class" :(

Linux Advanced Routing and Traffic Control

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

 



Thanks for your input.
> 
> > The "ceil 10mbit" just seems to be ignored :(
> 
> It might very well be the case that root classes just ignore the ceil 
> parameter since they can't borrow anyway.
> 
> You should rebuild your tree so that you only have one root class.

Could you give me a short example what you mean?

The only other way I can think of would be a tree (respecting the described
group and user requirements) with qdiscs on every node down:

#just to be sure that I have the beginning right:
tc qdisc add dev $DEV root handle 1: htb default 20
tc class add dev $DEV parent 1: classid 1:1 htb rate 10mbit #total bandwidth of link

#the two main nodes - approved and non approved traffic:
tc class add dev $DEV parent 1:1 classid 1:10 htb rate 8mbit ceil 10mbit prio 1
tc class add dev $DEV parent 1:1 classid 1:40 htb rate 2mbit ceil 2mbit prio 2

#attach qdiscs:
tc qdisc add dev $DEV parent 1:10 handle 10: htb
tc qdisc add dev $DEV parent 1:20 sfq perturb 10

#groups

tc class add dev $DEV parent 10: classid 10:f1 htb rate 2048kbit ceil 10mbit
tc qdisc add dev $DEV parent 10:f1 handle f1: htb
#bandwidth priorities of group f1:
tc class add dev $DEV parent f1: classid f1:a1 htb rate 2048kbit ceil 10mbit prio 1
tc qdisc add dev $DEV parent f1:a1 handle a1: htb
tc class add dev $DEV parent f1: classid f1:b1 htb rate 2048kbit ceil 10mbit prio 2
tc qdisc add dev $DEV parent f1:b1 handle b1: htb
tc class add dev $DEV parent f1: classid f1:c1 htb rate 2048kbit ceil 10mbit prio 3
tc qdisc add dev $DEV parent f1:c1 handle c1: htb
#further groups omitted

#users
tc class add dev $DEV parent a1: classid a1:1 htb rate 64kbit ceil 1024kbit
tc qdisc add dev $DEV parent a1:1 sfq perturb 10
tc filter add dev $DEV parent a1:0 protocol ip prio 16 u32 match ip dst 172.30.10.1 flowid a1:1
tc filter add dev $DEV parent f1:0 protocol ip prio 16 u32 match ip dst 172.30.10.1 flowid f1:a1
tc filter add dev $DEV parent 10:0 protocol ip prio 16 u32 match ip dst 172.30.10.1 flowid 10:f1
tc filter add dev $DEV parent 1:0 protocol ip prio 16 u32 match ip dst 172.30.10.1 flowid 1:10


but this hadn't brought the desired effect either.

I need to schedule the traffic output 4 times: 
-for other purposes & unknown traffic [10:,20:]
-for groups (that they have a minimum rate at all times) [fxx:]
-for priority (fair use, traffic usage based)[axx:,bxx:,cxx:]
-for users (that they don't exceed a given maximum and are fairly
treated within their priority) [axx:yyyy],[bxx:yyyy],[cxx:yyyy]

Users should be allowed to borrow from each other, insufficient bandwidth
"requests" should be forwarded to the parent class/qdisc which should try
to fulfill it by borrowing from other groups.

Am I missing an important point? Unfortunately I couldn't find any 
examples showing a more complex tree.

Thank you,
 Bernd


_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

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