1b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare/**************************************************************************** 2b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare **************************************************************************** 3b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare *** 4b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare *** This header was automatically generated from a Linux kernel header 5b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare *** of the same name, to make information necessary for userspace to 6b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare *** call into the kernel available to libc. It contains only constants, 7b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare *** structures, and macros generated from the original header, and thus, 8b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare *** contains no copyrightable information. 9b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare *** 10b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare **************************************************************************** 11b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare ****************************************************************************/ 12b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare#ifndef _IP_CONNTRACK_TUPLE_H 13b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare#define _IP_CONNTRACK_TUPLE_H 14b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 15b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare#include <linux/types.h> 16b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare#include <linux/netfilter/nf_conntrack_tuple_common.h> 17b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 18b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beareunion ip_conntrack_manip_proto 19b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare{ 20b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 21b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare u_int16_t all; 22b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 23b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare struct { 24b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare __be16 port; 25b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare } tcp; 26b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare struct { 27b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare u_int16_t port; 28b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare } udp; 29b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare struct { 30b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare u_int16_t id; 31b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare } icmp; 32b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare struct { 33b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare u_int16_t port; 34b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare } sctp; 35b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare struct { 36b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare __be16 key; 37b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare } gre; 38b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare}; 39b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 40b17fe090db1a34bac2c56bef93925fc893300e70Bruce Bearestruct ip_conntrack_manip 41b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare{ 42b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare u_int32_t ip; 43b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare union ip_conntrack_manip_proto u; 44b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare}; 45b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 46b17fe090db1a34bac2c56bef93925fc893300e70Bruce Bearestruct ip_conntrack_tuple 47b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare{ 48b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare struct ip_conntrack_manip src; 49b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 50b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare struct { 51b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare u_int32_t ip; 52b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare union { 53b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 54b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare u_int16_t all; 55b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 56b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare struct { 57b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare u_int16_t port; 58b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare } tcp; 59b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare struct { 60b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare u_int16_t port; 61b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare } udp; 62b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare struct { 63b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare u_int8_t type, code; 64b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare } icmp; 65b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare struct { 66b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare u_int16_t port; 67b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare } sctp; 68b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare struct { 69b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare __be16 key; 70b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare } gre; 71b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare } u; 72b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 73b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare u_int8_t protonum; 74b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 75b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare u_int8_t dir; 76b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare } dst; 77b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare}; 78b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 79b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare#define IP_CT_TUPLE_U_BLANK(tuple) do { (tuple)->src.u.all = 0; (tuple)->dst.u.all = 0; } while (0) 80b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 81b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare#endif 82