1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/****************************************************************************
2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   This header was automatically generated from a Linux kernel header
5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   of the same name, to make information necessary for userspace to
6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   call into the kernel available to libc.  It contains only constants,
7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   structures, and macros generated from the original header, and thus,
8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   contains no copyrightable information.
9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   To edit the content of this header, modify the corresponding
11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   run bionic/libc/kernel/tools/update_all.py
13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   Any manual change here will be lost the next time this script will
15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   be run. You've been warned!
16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/
19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _XT_SET_H
20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _XT_SET_H
21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h>
22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/netfilter/ipset/ip_set.h>
23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IPSET_SRC 0x01
24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IPSET_DST 0x02
25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IPSET_MATCH_INV 0x04
26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct xt_set_info_v0 {
27d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  ip_set_id_t index;
28d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  union {
29d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    __u32 flags[IPSET_DIM_MAX + 1];
30d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    struct {
31d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __u32 __flags[IPSET_DIM_MAX];
32d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __u8 dim;
33d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __u8 flags;
34d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    } compat;
35d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  } u;
36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct xt_set_info_match_v0 {
38d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct xt_set_info_v0 match_set;
39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct xt_set_info_target_v0 {
41d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct xt_set_info_v0 add_set;
42d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct xt_set_info_v0 del_set;
43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct xt_set_info {
45d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  ip_set_id_t index;
46d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 dim;
47d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 flags;
48655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
49655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct xt_set_info_match_v1 {
50d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct xt_set_info match_set;
51655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
52655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct xt_set_info_target_v1 {
53d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct xt_set_info add_set;
54d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct xt_set_info del_set;
55655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
56655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct xt_set_info_target_v2 {
57d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct xt_set_info add_set;
58d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct xt_set_info del_set;
59d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 flags;
60d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 timeout;
61655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
62655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct xt_set_info_match_v3 {
63d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct xt_set_info match_set;
6405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  struct ip_set_counter_match0 packets;
6505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  struct ip_set_counter_match0 bytes;
66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 flags;
67655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
6882d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisstruct xt_set_info_target_v3 {
69d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct xt_set_info add_set;
70d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct xt_set_info del_set;
71d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct xt_set_info map_set;
72d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 flags;
73d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 timeout;
7482d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris};
7505d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct xt_set_info_match_v4 {
7605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  struct xt_set_info match_set;
7705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  struct ip_set_counter_match packets;
7805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  struct ip_set_counter_match bytes;
7905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 flags;
8005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
81655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
82