#ifndef _XT_HASHLIMIT_H #define _XT_HASHLIMIT_H /* timings are in milliseconds. */ #define XT_HASHLIMIT_SCALE 10000 /* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490 seconds, or one every 59 hours. */ /* details of this structure hidden by the implementation */ struct xt_hashlimit_htable; #define XT_HASHLIMIT_HASH_DIP 0x0001 #define XT_HASHLIMIT_HASH_DPT 0x0002 #define XT_HASHLIMIT_HASH_SIP 0x0004 #define XT_HASHLIMIT_HASH_SPT 0x0008 struct hashlimit_cfg { u_int32_t mode; /* bitmask of IPT_HASHLIMIT_HASH_* */ u_int32_t avg; /* Average secs between packets * scale */ u_int32_t burst; /* Period multiplier for upper limit. */ /* user specified */ u_int32_t size; /* how many buckets */ u_int32_t max; /* max number of entries */ u_int32_t gc_interval; /* gc interval */ u_int32_t expire; /* when do entries expire? */ }; struct xt_hashlimit_info { char name [IFNAMSIZ]; /* name */ struct hashlimit_cfg cfg; struct xt_hashlimit_htable *hinfo; /* Used internally by the kernel */ union { void *ptr; struct xt_hashlimit_info *master; } u; }; #endif /*_XT_HASHLIMIT_H*/