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