Re: [LARTC] qdisc unbounding question

Linux Advanced Routing and Traffic Control

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

 



Andy Pyles wrote:
> 
> > -----Original Message-----
> > From: Rodrigo Goya [mailto:rgoya@xxxxxxxxxxxxxxxxxx]
> > Sent: Friday, June 01, 2001 9:55 AM
> > To: Linux Advanced Router & Traffic Control
> > Subject: Re: [LARTC] qdisc unbounding question
> >
> >
> > Hi,
> >
> > > > tc class add dev eth0 parent 1:170 classid 1:30 cbq
> > bandwidth 200Kbit
> > > > rate 30Kbit weight 3Kbit prio 6 allot 1514 cell 8
> > maxburst 20 avpkt 1000
> > >
> > > Shouldn't the parent class be 1:1 instead of 1:170 ??
> > >
> > > I believe in the current scheme, 1:170 is child from 1:1
> > and 1:30 a child
> > > from 1:170. I think you want both 1:170 as 1:30 to be
> > children from 1:1.
> > >
> >
> > I agree with this.
> >
> > Also, shouldn't root qdisc 1:0 have full interface bandwidth?
> > and then root
> > class 1:1 have "bandwidth $TOTAL rate 200kbit bounded" ?
> 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> < I'm throwing in the diagram again in for clarity >
> 
>   <---- 170kbs                        170kbs ------------>
>           if Dest. = 10.10.20.97        if Dest. = 10.10.30.3
>           (classid=170)                 (classid=171)
> 
>                         |------|     |------
>                         | eth0 |     |eth1  |
>                         |      |-----|      |
>                         --------     -------
>   <------30kbs                       30kbs --------------->
>           if Dest. = 10.10.20.95        if Dest. = 10.10.30.2
>         (classid=30)                      (classid=31)
> 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> Ok.. I guess I could implement this. However, as it is now, I am
> effectively keeping the
> maximum bandwidth under 200kbs. So, I don't see a reason for it. Is
> there one?
> 
> Let me clarify, I have been able to determine, through testing, that
> these seperate classes are
> indeed working. In other words, I am not able to exceed the bandwidth
> limitations set in their seperate classes.
> I.e. no more than 170kbs with dest ip= 10.10.20.97 AND no more than
> 30kbs if dest. ip = 10.10.20.95.
> 
> Now, the only problem I'm having is having is to allow class 30 to
> borrow from it's parent class.

If you want to do this, follow the following scheme :

CBQ root qdisc 10: with BW = link BW (10Mbit)
  CBQ BOUNDED class 10:1, parent 10: with BW = link BW and rate = 200
kbps
  CBQ qdisc 20: on class 10:1 with BW = 200kbps
    CBQ Class 20:170 with BW 200kbps and rate 170kbps, prio 3, no weight
    CBQ Class 20:30 with BW 200kbps and rate 30kbps, prio 3, no weight

Now  class 20:170 and 20:30 will share the bandwidth and class 20:170
will get 170/200*100% of available bandwidth (200kbps).  

There is only one problem.  The bounded parameter on the class 10:1 will
bound the class (and thus qdisc 20:0) in theory to 200 kbps BUT CBQ is
very inaccurate.  It will bound the traffic to 140kbps in stead of
200kbps.  I'm still testing it, but you can find the first results on
http://users.belgacom.net/staf/qos/tests/cbq/bounded-accuracy.html.  So
if you try this, and the BW is 140kbps, it's working, don't blame me,
it's CBQ that's not accurate.

> > Something else, isn't it necesary to have a qdisc for each
> > interface? Right now
> > it's 1:0 for eth0 and 1:0 for eth1, I don't know if this
> > works, I've always
> > done it using (for example) 1:0 for eth0 and 2:0 for eth1.
You may use the same number since the device is different


-- 

Stef

More QOS info : http://users.belgacom.net/staf/




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