Annotation of embedaddon/bird/lib/tbf.c, revision 1.1.1.1

1.1       misho       1: /*
                      2:  *     BIRD Library -- Token Bucket Filter
                      3:  *
                      4:  *     (c) 2014 Ondrej Zajicek <santiago@crfreenet.org>
                      5:  *     (c) 2014 CZ.NIC z.s.p.o.
                      6:  *
                      7:  *     Can be freely distributed and used under the terms of the GNU GPL.
                      8:  */
                      9: 
                     10: #include "nest/bird.h"
                     11: 
                     12: void
                     13: tbf_update(struct tbf *f)
                     14: {
                     15:   bird_clock_t delta = now - f->timestamp;
                     16: 
                     17:   if (delta == 0)
                     18:     return;
                     19: 
                     20:   f->timestamp = now;
                     21: 
                     22:   if ((0 < delta) && (delta < f->burst))
                     23:   {
                     24:     u32 next = f->count + delta * f->rate;
                     25:     f->count = MIN(next, f->burst);
                     26:   }
                     27:   else
                     28:     f->count = f->burst;
                     29: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>