14489c0d66d9a0e6033c9472fd54df155788010b7Yasuyuki KOZAKAI#ifndef _XT_RATE_H 24489c0d66d9a0e6033c9472fd54df155788010b7Yasuyuki KOZAKAI#define _XT_RATE_H 31da399c30a2c42490f1c6cb84857e31522546c9dMartin Josefsson 4350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt#include <linux/types.h> 5350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt 61da399c30a2c42490f1c6cb84857e31522546c9dMartin Josefsson/* timings are in milliseconds. */ 74489c0d66d9a0e6033c9472fd54df155788010b7Yasuyuki KOZAKAI#define XT_LIMIT_SCALE 10000 81da399c30a2c42490f1c6cb84857e31522546c9dMartin Josefsson 9350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardtstruct xt_limit_priv; 10350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt 111da399c30a2c42490f1c6cb84857e31522546c9dMartin Josefsson/* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490 121da399c30a2c42490f1c6cb84857e31522546c9dMartin Josefsson seconds, or one every 59 hours. */ 134489c0d66d9a0e6033c9472fd54df155788010b7Yasuyuki KOZAKAIstruct xt_rateinfo { 14350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt __u32 avg; /* Average secs between packets * scale */ 15350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt __u32 burst; /* Period multiplier for upper limit. */ 161da399c30a2c42490f1c6cb84857e31522546c9dMartin Josefsson 171da399c30a2c42490f1c6cb84857e31522546c9dMartin Josefsson /* Used internally by the kernel */ 18350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt unsigned long prev; /* moved to xt_limit_priv */ 19350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt __u32 credit; /* moved to xt_limit_priv */ 20350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt __u32 credit_cap, cost; 21e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy 22350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt struct xt_limit_priv *master; 231da399c30a2c42490f1c6cb84857e31522546c9dMartin Josefsson}; 244489c0d66d9a0e6033c9472fd54df155788010b7Yasuyuki KOZAKAI#endif /*_XT_RATE_H*/ 25