130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* IPv4-specific defines for netfilter. 230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * (C)1998 Rusty Russell -- This code is GPL. 330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _UAPI__LINUX_IP_NETFILTER_H 530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _UAPI__LINUX_IP_NETFILTER_H 630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/netfilter.h> 930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* only for userspace compatibility */ 1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef __KERNEL__ 1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <limits.h> /* for INT_MIN, INT_MAX */ 1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* IP Cache bits. */ 1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Src IP address. */ 1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFC_IP_SRC 0x0001 1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Dest IP address. */ 1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFC_IP_DST 0x0002 2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Input device. */ 2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFC_IP_IF_IN 0x0004 2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Output device. */ 2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFC_IP_IF_OUT 0x0008 2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* TOS. */ 2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFC_IP_TOS 0x0010 2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Protocol. */ 2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFC_IP_PROTO 0x0020 2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* IP options. */ 2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFC_IP_OPTIONS 0x0040 3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Frag & flags. */ 3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFC_IP_FRAG 0x0080 3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Per-protocol information: only matters if proto match. */ 3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* TCP flags. */ 3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFC_IP_TCPFLAGS 0x0100 3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Source port. */ 3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFC_IP_SRC_PT 0x0200 3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Dest port. */ 3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFC_IP_DST_PT 0x0400 4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Something else about the proto */ 4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFC_IP_PROTO_UNKNOWN 0x2000 4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* IP Hooks */ 4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* After promisc drops, checksum checks. */ 4530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NF_IP_PRE_ROUTING 0 4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* If the packet is destined for this box. */ 4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NF_IP_LOCAL_IN 1 4830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* If the packet is destined for another interface. */ 4930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NF_IP_FORWARD 2 5030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Packets coming from a local process. */ 5130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NF_IP_LOCAL_OUT 3 5230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Packets about to hit the wire. */ 5330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NF_IP_POST_ROUTING 4 5430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NF_IP_NUMHOOKS 5 5530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* ! __KERNEL__ */ 5630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 5730692c65c4174412c90e79489e98ab85c1a7412fBen Chengenum nf_ip_hook_priorities { 5830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NF_IP_PRI_FIRST = INT_MIN, 5930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NF_IP_PRI_CONNTRACK_DEFRAG = -400, 6030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NF_IP_PRI_RAW = -300, 6130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NF_IP_PRI_SELINUX_FIRST = -225, 6230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NF_IP_PRI_CONNTRACK = -200, 6330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NF_IP_PRI_MANGLE = -150, 6430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NF_IP_PRI_NAT_DST = -100, 6530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NF_IP_PRI_FILTER = 0, 6630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NF_IP_PRI_SECURITY = 50, 6730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NF_IP_PRI_NAT_SRC = 100, 6830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NF_IP_PRI_SELINUX_LAST = 225, 6930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NF_IP_PRI_CONNTRACK_HELPER = 300, 7030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NF_IP_PRI_CONNTRACK_CONFIRM = INT_MAX, 7130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NF_IP_PRI_LAST = INT_MAX, 7230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 7330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 7430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Arguments for setsockopt SOL_IP: */ 7530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 2.0 firewalling went from 64 through 71 (and +256, +512, etc). */ 7630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 2.2 firewalling (+ masq) went from 64 through 76 */ 7730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 2.4 firewalling went 64 through 67. */ 7830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SO_ORIGINAL_DST 80 7930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 8030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 8130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* _UAPI__LINUX_IP_NETFILTER_H */ 82