Hi, > > Hmm... Maybe you talk about how WRR/DRR is implemented in CBQ? > > A pure WRR scheduler works perfect no matter what size the packets have. > > If, of course, the scheduler takes packet sizes into account. > > What exactly is the problem with a WRR scheduler? > > There are other minor details (hence my suggestion to read the paper > because i cant remember details), Maybe I will read it some day ;-) > but fixing the deficit such that you > take into consideration 'byte credit' a queue has when you preempt it > makes a WRR implementation closer to DRR. 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. > > What I really need is a paper describing CBQ in Linux - the original > > article desribing CBQ is very generel. And when I experimented with CBQ > > the last time I did not see the behaviour I would exepect from the > > article assuming that the generel scehudler was a WRR scheduler. > > The original CBQ implementation is the classical WRR; But it did not take the packet size into account? > Note there have been attempts to document Linux CBQ; search the mailing > list. Hmm, interesseting, maybe I should subscribe to the linux-diffserv mailing list. Christian