1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
#ifndef __LINUX_FIREWALL_H
#define __LINUX_FIREWALL_H
/*
* Definitions for loadable firewall modules
*/
#define FW_BLOCK 0
#define FW_ACCEPT 1
#define FW_REJECT (-1)
#define FW_REDIRECT 2
#define FW_MASQUERADE 3
#define FW_SKIP 4
struct firewall_ops
{
struct firewall_ops *next;
int (*fw_forward)(struct firewall_ops *this, int pf,
struct device *dev, void *phdr, void *arg);
int (*fw_input)(struct firewall_ops *this, int pf,
struct device *dev, void *phdr, void *arg);
int (*fw_output)(struct firewall_ops *this, int pf,
struct device *dev, void *phdr, void *arg);
/* Data falling in the second 486 cache line isn't used directly
during a firewall call and scan, only by insert/delete and other
unusual cases
*/
int fw_pf; /* Protocol family */
int fw_priority; /* Priority of chosen firewalls */
};
#ifdef __KERNEL__
extern int register_firewall(int pf, struct firewall_ops *fw);
extern int unregister_firewall(int pf, struct firewall_ops *fw);
extern int call_fw_firewall(int pf, struct device *dev, void *phdr, void *arg);
extern int call_in_firewall(int pf, struct device *dev, void *phdr, void *arg);
extern int call_out_firewall(int pf, struct device *dev, void *phdr, void *arg);
extern void fwchain_init(void);
#endif
#endif
|