Hi Nikhil You could submit a patch, something like that below logic
If( ((n_periods * m->cir_bytes_per_period) > (m->cbs-m->tc)) te = m->te + ((n_periods * m->cir_bytes_per_period) - (m->cbs-m->tc)); and this should be done before m->tc update. Regards Kannan Babu -----Original Message----- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Nikhil Jagtap Sent: Tuesday, September 6, 2016 9:43 AM To: Dumitrescu, Cristian <cristian.dumitrescu at intel.com> Cc: dev at dpdk.org Subject: Re: [dpdk-dev] meter: excess token bucket update in srtcm Hi, Can someone please comment on this? Nikhil On 31 August 2016 at 15:32, Nikhil Jagtap <nikhil.jagtap at gmail.com> wrote: > Hi, > > As per srTCM RFC 2697, we should be updating the E bucket only after > the C bucket overflows. > "Thereafter, the token counts Tc and Te are updated CIR times per > second as follows: > o If Tc is less than CBS, Tc is incremented by one, else > o if Te is less then EBS, Te is incremented by one, else > o neither Tc nor Te is incremented." > > However in the current DPDK implementation of srTCM, we are updating > both the buckets simultaneously at the same rate (CIR). This will > result in a token accumulation rate of (2*CIR). This seems like a bug > to me. Can you confirm this? > > Nikhil > >