| PPSRATECHECK(9) | Kernel Developer's Manual | PPSRATECHECK(9) | 
ppsratecheck —
#include <sys/time.h>
int
  
  ppsratecheck(struct
    timeval *lasttime, int
    *curpps, int
    maxpps);
ppsratecheck() function provides easy way to perform
  packet-per-sec, or event-per-sec, rate limitation. The motivation for
  implementing ppsratecheck() was to provide a mechanism
  that could be used to add rate limitation to network packet output. For
  certain network packets, we may want to impose rate limitation, to avoid
  denial-of-service attack possibilities.
maxpps specifies maximum permitted packets,
    or events, per second. If ppsratecheck() is called
    more than maxpps times in a given one second period,
    the function will return 0, indicating that we exceeded the limit. If we are
    below the limit, the function will return 1. If maxpps
    is set to 0, the function will always return 0 (no packets/events are
    permitted). Negative maxpps indicates that rate
    limitation is disabled, and ppsratecheck will always
    return 1.
curpps and lasttime
    are used to maintain the number of recent calls.
    curpps will be incremented every time
    ppsratecheck() is called, and will be reset whenever
    necessary.
ppsratecheck() function appeared in
  NetBSD 1.5.
| August 3, 2000 | NetBSD 9.3 |