MirOS Manual: ppsratecheck(9)

PPSRATECHECK(9)               BSD Kernel Manual                PPSRATECHECK(9)

NAME

     ppsratecheck - function to help implement rate-limited actions

SYNOPSIS

     #include <sys/time.h>

     int
     ppsratecheck(struct timeval *lasttime, int *curpps, int maxpps);

DESCRIPTION

     The ppsratecheck() function provides an 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-
     bilities.

     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 lim-
     it. 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.

SEE ALSO

     log(9), printf(9), ratecheck(9), time(9)

HISTORY

     The ppsratecheck() function appeared in NetBSD 1.5.

MirOS BSD #10-current           August 3, 2000                               1

Generated on 2014-07-04 21:17:45 by $MirOS: src/scripts/roff2htm,v 1.79 2014/02/10 00:36:11 tg Exp $

These manual pages and other documentation are copyrighted by their respective writers; their source is available at our CVSweb, AnonCVS, and other mirrors. The rest is Copyright © 2002‒2014 The MirOS Project, Germany.
This product includes material provided by Thorsten Glaser.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report – diffs preferred.