1dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#ifndef __LINUX_NETFILTER_H 2dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define __LINUX_NETFILTER_H 3dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 4dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#include <linux/types.h> 5dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 6dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 7dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat/* Responses from hook functions. */ 8dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define NF_DROP 0 9dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define NF_ACCEPT 1 10dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define NF_STOLEN 2 11dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define NF_QUEUE 3 12dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define NF_REPEAT 4 13dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define NF_STOP 5 14dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define NF_MAX_VERDICT NF_STOP 15dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 16dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat/* we overload the higher bits for encoding auxiliary data such as the queue 17dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * number. Not nice, but better than additional function arguments. */ 18dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define NF_VERDICT_MASK 0x0000ffff 19dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define NF_VERDICT_BITS 16 20dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 21dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define NF_VERDICT_QMASK 0xffff0000 22dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define NF_VERDICT_QBITS 16 23dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 24dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define NF_QUEUE_NR(x) ((((x) << NF_VERDICT_BITS) & NF_VERDICT_QMASK) | NF_QUEUE) 25dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 26dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat/* only for userspace compatibility */ 27dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat/* Generic cache responses from hook functions. 28dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat <= 0x2000 is used for protocol-flags. */ 29dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define NFC_UNKNOWN 0x4000 30dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define NFC_ALTERED 0x8000 31dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 32dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehatenum nf_inet_hooks { 33dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat NF_INET_PRE_ROUTING, 34dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat NF_INET_LOCAL_IN, 35dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat NF_INET_FORWARD, 36dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat NF_INET_LOCAL_OUT, 37dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat NF_INET_POST_ROUTING, 38dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat NF_INET_NUMHOOKS 39dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat}; 40dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 41dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehatenum { 42dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat NFPROTO_UNSPEC = 0, 43dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat NFPROTO_IPV4 = 2, 44dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat NFPROTO_ARP = 3, 45dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat NFPROTO_BRIDGE = 7, 46dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat NFPROTO_IPV6 = 10, 47dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat NFPROTO_DECNET = 12, 48dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat NFPROTO_NUMPROTO, 49dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat}; 50dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 51dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehatunion nf_inet_addr { 52dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat __u32 all[4]; 53dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat __be32 ip; 54dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat __be32 ip6[4]; 55dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat struct in_addr in; 56dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat struct in6_addr in6; 57dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat}; 58dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 59dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#endif /*__LINUX_NETFILTER_H*/ 60