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