Re: [LARTC] CBQ and WRR

Linux Advanced Routing and Traffic Control

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

 



Hi,

> > Maybe I will read it some day ;-)
> 
> I think you _Must_ (especially if you are implementing WRR). There are
> some good ideas there

Yes... I will.. 

> > Well, the WRR qdisc essentially works this way:
> >
> > * For each band (=class) there is a byte counter
> > * When a band transfers a packet the byte counter is
> >    increased by the packet size divided with the weight (which is a
> >    number between 0 and 1)
> > * The next band that can transfer a packet is always the one with the
> >   lowest byte counter.
> >
> > It also does some additional things to make sure that when a new band
> > has something to send it can send it immedialty. I don't see any way
> > this scheme can be improved.
> >
> 
> So is this decision on packet by packet?

Yes. The above is done for each packet.

> Are there opportunities that a 'band' could be starved?

No.

> Dont make me go read the Varghese paper again. You should ;->

Without having read the article what is stressed is that it is an O(1) implementaion while WRR as described above is O(lg n) in a simple implementation where n is the number of bands having something to send. It can be improved to O(lg lg w) where w is the word size or maybe to even to O(lg lg n). But I don't think it is worth it and it is not even sure that it would be faster in practice - depending on the size of n, of course.

> > > The original CBQ implementation is the classical WRR;
> >
> > But it did not take the packet size into account?
> 
> It didnt.

Ok... That might explain why I did not see what I expected.


Christian




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