|  | #ifndef __IPF_LINUX_H__ | 
|  | #define __IPF_LINUX_H__ | 
|  |  | 
|  | #include <linux/config.h> | 
|  | #include <linux/version.h> | 
|  | #ifndef CONFIG_NETFILTER | 
|  | # define CONFIG_NETFILTER | 
|  | #endif | 
|  | #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) | 
|  | # define __irq_h	1	/* stop it being included! */ | 
|  | # include <linux/mtd/compatmac.h> | 
|  | #else | 
|  | # include <linux/compatmac.h> | 
|  | # include <linux/version.h> | 
|  | #endif | 
|  | #include <linux/kernel.h> | 
|  | #include <linux/module.h> | 
|  | #include <linux/types.h> | 
|  | #include <linux/time.h> | 
|  | #include <linux/string.h> | 
|  | #include <linux/slab.h> | 
|  | #include <linux/socket.h> | 
|  | #include <linux/netdevice.h> | 
|  | #include <linux/inetdevice.h> | 
|  | #include <linux/skbuff.h> | 
|  | #include <linux/in.h> | 
|  | #include <linux/ip.h> | 
|  | #include <linux/icmp.h> | 
|  | #include <linux/rtnetlink.h> | 
|  | #include <linux/netfilter.h> | 
|  | #include <linux/netfilter_ipv4.h> | 
|  | #include <linux/netfilter_ipv6.h> | 
|  | #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) | 
|  | # include <asm/ioctls.h> | 
|  | #else | 
|  | # define	ipftcphdr	tcphdr | 
|  | # define	ipfudphdr	udphdr | 
|  | #endif | 
|  |  | 
|  | struct	ipftcphdr	{ | 
|  | __u16	th_sport; | 
|  | __u16	th_dport; | 
|  | __u32	th_seq; | 
|  | __u32	th_ack; | 
|  | # if defined(__i386__) || defined(__MIPSEL__) || defined(__alpha__) ||\ | 
|  | defined(__vax__) | 
|  | __u8	th_res:4; | 
|  | __u8	th_off:4; | 
|  | #else | 
|  | __u8	th_off:4; | 
|  | __u8	th_res:4; | 
|  | #endif | 
|  | __u8	th_flags; | 
|  | __u16	th_win; | 
|  | __u16	th_sum; | 
|  | __u16	th_urp; | 
|  | }; | 
|  |  | 
|  | typedef	__u32	tcp_seq; | 
|  |  | 
|  | struct	ipfudphdr	{ | 
|  | __u16	uh_sport; | 
|  | __u16	uh_dport; | 
|  | __u16	uh_ulen; | 
|  | __u16	uh_sum; | 
|  | }; | 
|  |  | 
|  | struct	ip	{ | 
|  | # if defined(__i386__) || defined(__MIPSEL__) || defined(__alpha__) ||\ | 
|  | defined(__vax__) | 
|  | __u8	ip_hl:4; | 
|  | __u8	ip_v:4; | 
|  | # else | 
|  | __u8	ip_v:4; | 
|  | __u8	ip_hl:4; | 
|  | # endif | 
|  | __u8	ip_tos; | 
|  | __u16	ip_len; | 
|  | __u16	ip_id; | 
|  | __u16	ip_off; | 
|  | __u8	ip_ttl; | 
|  | __u8	ip_p; | 
|  | __u16	ip_sum; | 
|  | struct	in_addr ip_src; | 
|  | struct	in_addr ip_dst; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Structure of an icmp header. | 
|  | */ | 
|  | struct icmp { | 
|  | __u8	icmp_type;		/* type of message, see below */ | 
|  | __u8	icmp_code;		/* type sub code */ | 
|  | __u16	icmp_cksum;		/* ones complement cksum of struct */ | 
|  | union { | 
|  | __u8	ih_pptr;		/* ICMP_PARAMPROB */ | 
|  | struct	in_addr ih_gwaddr;	/* ICMP_REDIRECT */ | 
|  | struct	ih_idseq { | 
|  | __u16	icd_id; | 
|  | __u16	icd_seq; | 
|  | } ih_idseq; | 
|  | __u32	 ih_void; | 
|  | struct	ih_pmtu	{ | 
|  | __u16	ipm_void; | 
|  | __u16	ipm_nextmtu; | 
|  | } ih_pmtu; | 
|  | } icmp_hun; | 
|  | # define	icmp_pptr	icmp_hun.ih_pptr | 
|  | # define	icmp_gwaddr	icmp_hun.ih_gwaddr | 
|  | # define	icmp_id		icmp_hun.ih_idseq.icd_id | 
|  | # define	icmp_seq	icmp_hun.ih_idseq.icd_seq | 
|  | # define	icmp_void	icmp_hun.ih_void | 
|  | # define	icmp_nextmtu	icmp_hun.ih_pmtu.ipm_nextmtu | 
|  | union { | 
|  | struct id_ts { | 
|  | __u32	its_otime; | 
|  | __u32	its_rtime; | 
|  | __u32	its_ttime; | 
|  | } id_ts; | 
|  | struct id_ip	{ | 
|  | struct	ip	idi_ip; | 
|  | /* options and then 64 bits of data */ | 
|  | } id_ip; | 
|  | u_long	id_mask; | 
|  | char	id_data[1]; | 
|  | } icmp_dun; | 
|  | # define	icmp_otime	icmp_dun.id_ts.its_otime | 
|  | # define	icmp_rtime	icmp_dun.id_ts.its_rtime | 
|  | # define	icmp_ttime	icmp_dun.id_ts.its_ttime | 
|  | # define	icmp_ip	 icmp_dun.id_ip.idi_ip | 
|  | # define	icmp_mask	icmp_dun.id_mask | 
|  | # define	icmp_data	icmp_dun.id_data | 
|  | }; | 
|  |  | 
|  | # ifndef LINUX_IPOVLY | 
|  | #	define LINUX_IPOVLY | 
|  | struct ipovly { | 
|  | caddr_t ih_next, ih_prev;	/* for protocol sequence q's */ | 
|  | u_char	ih_x1;			/* (unused) */ | 
|  | u_char	ih_pr;			/* protocol */ | 
|  | short	ih_len;		 /* protocol length */ | 
|  | struct	in_addr ih_src;	 /* source internet address */ | 
|  | struct	in_addr ih_dst;	 /* destination internet address */ | 
|  | }; | 
|  | # endif | 
|  |  | 
|  | struct	ether_header	{ | 
|  | __u8	ether_dhost[6]; | 
|  | __u8	ether_shost[6]; | 
|  | __u16	ether_type; | 
|  | }; | 
|  |  | 
|  | #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) | 
|  | typedef	struct	ipftcphdr	tcphdr_t; | 
|  | typedef	struct	ipfudphdr	udphdr_t; | 
|  | #endif | 
|  |  | 
|  | #include "ip_compat.h" | 
|  | #include "ip_fil.h" | 
|  | #include "ip_auth.h" | 
|  | #include "ip_state.h" | 
|  | #include "ip_nat.h" | 
|  | #include "ip_proxy.h" | 
|  | #include "ip_frag.h" | 
|  | #ifdef	IPFILTER_LOOKUP | 
|  | # include "ip_lookup.h" | 
|  | # include "ip_pool.h" | 
|  | # include "ip_htable.h" | 
|  | #endif | 
|  | #ifdef  IPFILTER_SYNC | 
|  | # include "netinet/ip_sync.h" | 
|  | #endif | 
|  | #ifdef  IPFILTER_SCAN | 
|  | # include "netinet/ip_scan.h" | 
|  | #endif | 
|  | #ifdef IPFILTER_COMPILED | 
|  | # include "netinet/ip_rules.h" | 
|  | #endif | 
|  | #include "ipl.h" | 
|  |  | 
|  | #endif /* __IPF_LINUX_H__ */ |