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