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 *phdr, void *arg,
25 			  struct sk_buff **pskb);
26 	int (*fw_input)(struct firewall_ops *this, int pf,
27 			struct net_device *dev, void *phdr, void *arg,
28 			struct sk_buff **pskb);
29 	int (*fw_output)(struct firewall_ops *this, int pf,
30 			 struct net_device *dev, void *phdr, 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 *phdr, void *arg,
35 			  struct sk_buff **pskb);
36 	int (*fw_acct_out)(struct firewall_ops *this, int pf,
37 			   struct net_device *dev, void *phdr, 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 */
46