ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / include / linux / netfilter_ipv4 / compat_firewall.h
1 /* Minor modifications to fit on compatibility framework:
2    Rusty.Russell@rustcorp.com.au
3 */
4
5 #ifndef __LINUX_FIREWALL_H
6 #define __LINUX_FIREWALL_H
7
8 /*
9  *      Definitions for loadable firewall modules
10  */
11
12 #define FW_QUEUE        0
13 #define FW_BLOCK        1
14 #define FW_ACCEPT       2
15 #define FW_REJECT       (-1)
16 #define FW_REDIRECT     3
17 #define FW_MASQUERADE   4
18 #define FW_SKIP         5
19
20 struct firewall_ops
21 {
22         struct firewall_ops *next;
23         int (*fw_forward)(struct firewall_ops *this, int pf,
24                           struct net_device *dev, void *arg,
25                           struct sk_buff **pskb);
26         int (*fw_input)(struct firewall_ops *this, int pf,
27                         struct net_device *dev, void *arg,
28                         struct sk_buff **pskb);
29         int (*fw_output)(struct firewall_ops *this, int pf,
30                          struct net_device *dev, void *arg,
31                          struct sk_buff **pskb);
32         /* These may be NULL. */
33         int (*fw_acct_in)(struct firewall_ops *this, int pf,
34                           struct net_device *dev, void *arg,
35                           struct sk_buff **pskb);
36         int (*fw_acct_out)(struct firewall_ops *this, int pf,
37                            struct net_device *dev, void *arg,
38                            struct sk_buff **pskb);
39 };
40
41 extern int register_firewall(int pf, struct firewall_ops *fw);
42 extern int unregister_firewall(int pf, struct firewall_ops *fw);
43
44 extern int ip_fw_masq_timeouts(void *user, int len);
45 #endif /* __LINUX_FIREWALL_H */