mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 10:29:37 +00:00
![Harald Welte](/assets/img/avatar_default.png)
This monster-patch tries to do the best job for unifying the data structures and backend interfaces for the three evil clones ip_tables, ip6_tables and arp_tables. In an ideal world we would never have allowed this kind of copy+paste programming... but well, our world isn't (yet?) ideal. o introduce a new x_tables module o {ip,arp,ip6}_tables depend on this x_tables module o registration functions for tables, matches and targets are only wrappers around x_tables provided functions o all matches/targets that are used from ip_tables and ip6_tables are now implemented as xt_FOOBAR.c files and provide module aliases to ipt_FOOBAR and ip6t_FOOBAR o header files for xt_matches are in include/linux/netfilter/, include/linux/netfilter_{ipv4,ipv6} contains compatibility wrappers around the xt_FOOBAR.h headers Based on this patchset we're going to further unify the code, gradually getting rid of all the layer 3 specific assumptions. Signed-off-by: Harald Welte <laforge@netfilter.org> Signed-off-by: David S. Miller <davem@davemloft.net>
21 lines
543 B
C
21 lines
543 B
C
#ifndef _XT_RATE_H
|
|
#define _XT_RATE_H
|
|
|
|
/* timings are in milliseconds. */
|
|
#define XT_LIMIT_SCALE 10000
|
|
|
|
/* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490
|
|
seconds, or one every 59 hours. */
|
|
struct xt_rateinfo {
|
|
u_int32_t avg; /* Average secs between packets * scale */
|
|
u_int32_t burst; /* Period multiplier for upper limit. */
|
|
|
|
/* Used internally by the kernel */
|
|
unsigned long prev;
|
|
u_int32_t credit;
|
|
u_int32_t credit_cap, cost;
|
|
|
|
/* Ugly, ugly fucker. */
|
|
struct xt_rateinfo *master;
|
|
};
|
|
#endif /*_XT_RATE_H*/
|