1c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef _XT_RATE_H 2c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define _XT_RATE_H 3c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 4c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* timings are in milliseconds. */ 5c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XT_LIMIT_SCALE 10000 6c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 7c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490 8c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru seconds, or one every 59 hours. */ 9c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querustruct xt_rateinfo { 10c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u_int32_t avg; /* Average secs between packets * scale */ 11c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u_int32_t burst; /* Period multiplier for upper limit. */ 12c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 13c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru /* Used internally by the kernel */ 14c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long prev; 15c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u_int32_t credit; 16c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u_int32_t credit_cap, cost; 17c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 18c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru /* Ugly, ugly fucker. */ 19c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru struct xt_rateinfo *master; 20c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru}; 21c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif /*_XT_RATE_H*/ 22