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