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

*To*: "'linux-diffserv@lrc.di.epfl.ch'" <linux-diffserv@lrc.di.epfl.ch>*Subject*: average queue calculation in GRED and RED*From*: Manoj <magiwal@npi.stpn.soft.net>*Date*: Mon, 11 Sep 2000 18:25:02 +0530*Delivery-date*: Mon, 11 Sep 2000 16:23:54 +0300*Envelope-to*: archive@lists.atm.tut.fi*Sender*: owner-linux-diffserv@lrc.epfl.ch

Hi All , After going through papers on RED , I found that gred is low pass filter implementation and the average queue calculation is given by the following avg=avg+w ( q - avg ) where w is EWMA constant . In linux Diff Serv implementation w is calculated by tc and Wlog is passed to the kernel where w = 1 / 2^Wlog , The equation which controls the average queue size in case the queue is non empty on linux is coded as q->qave += q->backlog - ( q->qave >> q->Wlog ) ; in file sch_gred.c function gred_enqueue( ) Where q-> backlog is current queue size , this equation is not the same as the one mentioned above in Sally Floyd paper . Why this has been coded in this way and not as q->qave += (q->backlog - q->qave ) >> q->Wlog ; as per theory . Moreover in afcbq examples min Queue size is give as 15 Kb and Max Queue Size as 45Kb, these queue sizes in gred_change function is modified as q->qth_min = ctl->qth_min << ctl->Wlog and q->qth_max = ctl->qth_max << ctl->Wlog , i.e both min and max size is increased 3 times in case of afcbq( min = 45Kb , max=135K) , The queue limit remains at 60K so the range where packet will be dropped with certain probability is 45K and 60K because if the queue length increases 60K the gred_enqueue() as such drops the packet . Why this has been the coded this way , would it not deviate the basic gred behaviour . Thanks , Manoj

- Prev by Date:
**Re: Diffserv implementation in Linux on egress side only ?** - Next by Date:
**RE: Serious rate problems with both CBQ and TBF** - Previous by thread:
**Re: Diffserv implementation in Linux on egress side only ?** - Next by thread:
**sch_prio configuration** - Index(es):