int
ppsratecheck(
struct timeval *lasttime
, int *curpps
, int maxpps
)
)
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.
)
function appeared in
NetBSD1.5.