- NetBSD Manual Pages
PPSRATECHECK(9) NetBSD Kernel Developer's Manual PPSRATECHECK(9)
Powered by man-cgi (2021-06-01).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.
ppsratecheck -- function to help implement rate-limited actions
ppsratecheck(struct timeval *lasttime, int *curpps, int maxpps);
The 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 possi-
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.
log(9), printf(9), ratecheck(9), time_second(9)
The ppsratecheck() function appeared in NetBSD 1.5.
NetBSD 5.0.1 August 3, 2000 NetBSD 5.0.1