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 __LINUX_PKT_CLS_H
20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __LINUX_PKT_CLS_H
21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h>
22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/pkt_sched.h>
23525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TC_COOKIE_MAX_SIZE 16
24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum {
25d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_ACT_UNSPEC,
26d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_ACT_KIND,
27d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_ACT_OPTIONS,
28d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_ACT_INDEX,
29d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_ACT_STATS,
30106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  TCA_ACT_PAD,
31525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  TCA_ACT_COOKIE,
32d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __TCA_ACT_MAX
33106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris};
34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_ACT_MAX __TCA_ACT_MAX
35d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TCA_OLD_COMPAT (TCA_ACT_MAX + 1)
36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_ACT_MAX_PRIO 32
37106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define TCA_ACT_BIND 1
38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_ACT_NOBIND 0
39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_ACT_UNBIND 1
40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_ACT_NOUNBIND 0
41106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define TCA_ACT_REPLACE 1
4205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define TCA_ACT_NOREPLACE 0
43d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TC_ACT_UNSPEC (- 1)
44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_ACT_OK 0
45106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define TC_ACT_RECLASSIFY 1
4605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define TC_ACT_SHOT 2
47655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_ACT_PIPE 3
48655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_ACT_STOLEN 4
49106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define TC_ACT_QUEUED 5
5005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define TC_ACT_REPEAT 6
5105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define TC_ACT_REDIRECT 7
521308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define TC_ACT_TRAP 8
53525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define __TC_ACT_EXT_SHIFT 28
54525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define __TC_ACT_EXT(local) ((local) << __TC_ACT_EXT_SHIFT)
55525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TC_ACT_EXT_VAL_MASK ((1 << __TC_ACT_EXT_SHIFT) - 1)
56525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TC_ACT_EXT_CMP(combined,opcode) (((combined) & (~TC_ACT_EXT_VAL_MASK)) == opcode)
57525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TC_ACT_JUMP __TC_ACT_EXT(1)
581308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2)
59106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisenum {
60d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_ID_UNSPEC = 0,
61d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_ID_POLICE = 1,
62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __TCA_ID_MAX = 255
63106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris};
64655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_ID_MAX __TCA_ID_MAX
65655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tc_police {
66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 index;
67106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  int action;
68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_POLICE_UNSPEC TC_ACT_UNSPEC
69655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_POLICE_OK TC_ACT_OK
70655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_POLICE_RECLASSIFY TC_ACT_RECLASSIFY
71106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define TC_POLICE_SHOT TC_ACT_SHOT
72655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_POLICE_PIPE TC_ACT_PIPE
73d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 limit;
74d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 burst;
75106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  __u32 mtu;
76d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct tc_ratespec rate;
77d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct tc_ratespec peakrate;
78d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  int refcnt;
79106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  int bindcnt;
80d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 capab;
81655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
82655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tcf_t {
83106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  __u64 install;
84d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u64 lastuse;
85d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u64 expires;
8649f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u64 firstuse;
8749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris};
88106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct tc_cnt {
89d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  int refcnt;
90d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  int bindcnt;
9149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris};
92106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define tc_gen __u32 index; __u32 capab; int action; int refcnt; int bindcnt
93655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum {
94d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_POLICE_UNSPEC,
9549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_POLICE_TBF,
96106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  TCA_POLICE_RATE,
97d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_POLICE_PEAKRATE,
98d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_POLICE_AVRATE,
9949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_POLICE_RESULT,
100106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  TCA_POLICE_TM,
101106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  TCA_POLICE_PAD,
102106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  __TCA_POLICE_MAX
10349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCA_POLICE_RESULT TCA_POLICE_RESULT
104655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
105655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1)
106106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define TCA_CLS_FLAGS_SKIP_HW (1 << 0)
10749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCA_CLS_FLAGS_SKIP_SW (1 << 1)
108525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TCA_CLS_FLAGS_IN_HW (1 << 2)
109525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TCA_CLS_FLAGS_NOT_IN_HW (1 << 3)
110106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define TC_U32_HTID(h) ((h) & 0xFFF00000)
111d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TC_U32_USERHTID(h) (TC_U32_HTID(h) >> 20)
112d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TC_U32_HASH(h) (((h) >> 12) & 0xFF)
11349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TC_U32_NODE(h) ((h) & 0xFFF)
114106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define TC_U32_KEY(h) ((h) & 0xFFFFF)
115655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_U32_UNSPEC 0
116655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_U32_ROOT (0xFFF00000)
11749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisenum {
118106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  TCA_U32_UNSPEC,
119d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_U32_CLASSID,
120d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_U32_HASH,
12149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_U32_LINK,
122106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  TCA_U32_DIVISOR,
123d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_U32_SEL,
124d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_U32_POLICE,
12549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_U32_ACT,
126106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  TCA_U32_INDEV,
127d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_U32_PCNT,
128d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_U32_MARK,
12949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_U32_FLAGS,
130106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  TCA_U32_PAD,
131d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __TCA_U32_MAX
132655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
13349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCA_U32_MAX (__TCA_U32_MAX - 1)
134655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tc_u32_key {
135d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 mask;
136d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 val;
13749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  int off;
138d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  int offmask;
139655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
140655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tc_u32_sel {
14149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  unsigned char flags;
142d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned char offshift;
143d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned char nkeys;
144d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be16 offmask;
14549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u16 off;
146d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  short offoff;
147d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  short hoff;
148d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 hmask;
14949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  struct tc_u32_key keys[0];
150655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
151655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tc_u32_mark {
152d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 val;
15349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u32 mask;
154d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 success;
155655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
156655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tc_u32_pcnt {
15749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u64 rcnt;
158d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u64 rhit;
159d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u64 kcnts[0];
160655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
16149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TC_U32_TERMINAL 1
162655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_U32_OFFSET 2
163655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_U32_VAROFFSET 4
164655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_U32_EAT 8
16549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TC_U32_MAXDEPTH 8
166655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum {
167d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_RSVP_UNSPEC,
168d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_RSVP_CLASSID,
16949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_RSVP_DST,
170d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_RSVP_SRC,
171d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_RSVP_PINFO,
172d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_RSVP_POLICE,
17349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_RSVP_ACT,
174d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __TCA_RSVP_MAX
175655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
176d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1)
17749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisstruct tc_rsvp_gpi {
178d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 key;
179d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 mask;
180d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  int offset;
18149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris};
182655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tc_rsvp_pinfo {
183d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct tc_rsvp_gpi dpi;
184d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct tc_rsvp_gpi spi;
18549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u8 protocol;
186d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 tunnelid;
187d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 tunnelhdr;
188d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 pad;
18949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris};
190655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum {
191d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_ROUTE4_UNSPEC,
192d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_ROUTE4_CLASSID,
19349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_ROUTE4_TO,
194d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_ROUTE4_FROM,
195d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_ROUTE4_IIF,
196d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_ROUTE4_POLICE,
19749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_ROUTE4_ACT,
198d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __TCA_ROUTE4_MAX
199655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
200655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_ROUTE4_MAX (__TCA_ROUTE4_MAX - 1)
20149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisenum {
202d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_FW_UNSPEC,
203d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_FW_CLASSID,
204d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_FW_POLICE,
20549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_FW_INDEV,
206d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_FW_ACT,
207d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_FW_MASK,
208d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __TCA_FW_MAX
20949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris};
210655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_FW_MAX (__TCA_FW_MAX - 1)
211655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum {
212d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_TCINDEX_UNSPEC,
21349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_TCINDEX_HASH,
214d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_TCINDEX_MASK,
215d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_TCINDEX_SHIFT,
216d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_TCINDEX_FALL_THROUGH,
21749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_TCINDEX_CLASSID,
218d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_TCINDEX_POLICE,
219d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_TCINDEX_ACT,
220d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __TCA_TCINDEX_MAX
22149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris};
222655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_TCINDEX_MAX (__TCA_TCINDEX_MAX - 1)
223655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum {
224d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  FLOW_KEY_SRC,
22549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  FLOW_KEY_DST,
226d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  FLOW_KEY_PROTO,
227d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  FLOW_KEY_PROTO_SRC,
228d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  FLOW_KEY_PROTO_DST,
22949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  FLOW_KEY_IIF,
230d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  FLOW_KEY_PRIORITY,
231d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  FLOW_KEY_MARK,
232d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  FLOW_KEY_NFCT,
23349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  FLOW_KEY_NFCT_SRC,
234d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  FLOW_KEY_NFCT_DST,
235d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  FLOW_KEY_NFCT_PROTO_SRC,
236d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  FLOW_KEY_NFCT_PROTO_DST,
23749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  FLOW_KEY_RTCLASSID,
238d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  FLOW_KEY_SKUID,
239d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  FLOW_KEY_SKGID,
240d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  FLOW_KEY_VLAN_TAG,
24149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  FLOW_KEY_RXHASH,
242d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __FLOW_KEY_MAX,
243655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
244655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FLOW_KEY_MAX (__FLOW_KEY_MAX - 1)
24549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisenum {
246d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  FLOW_MODE_MAP,
247d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  FLOW_MODE_HASH,
248655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
24949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisenum {
250d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_FLOW_UNSPEC,
251d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_FLOW_KEYS,
252d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_FLOW_MODE,
25349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_FLOW_BASECLASS,
254d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_FLOW_RSHIFT,
255d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_FLOW_ADDEND,
256d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_FLOW_MASK,
25749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_FLOW_XOR,
258d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_FLOW_DIVISOR,
259d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_FLOW_ACT,
260d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_FLOW_POLICE,
26149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_FLOW_EMATCHES,
262d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_FLOW_PERTURB,
263d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __TCA_FLOW_MAX
264655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
26549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCA_FLOW_MAX (__TCA_FLOW_MAX - 1)
266655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum {
267d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_BASIC_UNSPEC,
268d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_BASIC_CLASSID,
26949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_BASIC_EMATCHES,
270d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_BASIC_ACT,
271d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_BASIC_POLICE,
272d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __TCA_BASIC_MAX
27349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris};
274655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_BASIC_MAX (__TCA_BASIC_MAX - 1)
275655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum {
276d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_CGROUP_UNSPEC,
27749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_CGROUP_ACT,
278d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_CGROUP_POLICE,
279d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_CGROUP_EMATCHES,
280d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __TCA_CGROUP_MAX,
28149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris};
282655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_CGROUP_MAX (__TCA_CGROUP_MAX - 1)
28305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define TCA_BPF_FLAG_ACT_DIRECT (1 << 0)
28438062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum {
28549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_BPF_UNSPEC,
286d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_BPF_ACT,
287d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_BPF_POLICE,
288d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_BPF_CLASSID,
28949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_BPF_OPS_LEN,
290d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_BPF_OPS,
29105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  TCA_BPF_FD,
29205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  TCA_BPF_NAME,
29349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_BPF_FLAGS,
2946a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_BPF_FLAGS_GEN,
29548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_BPF_TAG,
2961308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris  TCA_BPF_ID,
29705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __TCA_BPF_MAX,
29848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
2996a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define TCA_BPF_MAX (__TCA_BPF_MAX - 1)
30049f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisenum {
30105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  TCA_FLOWER_UNSPEC,
30248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_CLASSID,
3036a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_INDEV,
30449f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_FLOWER_ACT,
30505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  TCA_FLOWER_KEY_ETH_DST,
30648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_ETH_DST_MASK,
3076a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_KEY_ETH_SRC,
30849f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_FLOWER_KEY_ETH_SRC_MASK,
30905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  TCA_FLOWER_KEY_ETH_TYPE,
31048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_IP_PROTO,
3116a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_KEY_IPV4_SRC,
31249f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_FLOWER_KEY_IPV4_SRC_MASK,
31305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  TCA_FLOWER_KEY_IPV4_DST,
31448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_IPV4_DST_MASK,
3156a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_KEY_IPV6_SRC,
31649f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_FLOWER_KEY_IPV6_SRC_MASK,
31705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  TCA_FLOWER_KEY_IPV6_DST,
31848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_IPV6_DST_MASK,
3196a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_KEY_TCP_SRC,
32049f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_FLOWER_KEY_TCP_DST,
32105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  TCA_FLOWER_KEY_UDP_SRC,
32248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_UDP_DST,
3236a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_FLAGS,
3246a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_KEY_VLAN_ID,
3256a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_KEY_VLAN_PRIO,
32648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_VLAN_ETH_TYPE,
3276a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_KEY_ENC_KEY_ID,
3286a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_KEY_ENC_IPV4_SRC,
3296a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_KEY_ENC_IPV4_SRC_MASK,
33048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_ENC_IPV4_DST,
3316a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_KEY_ENC_IPV4_DST_MASK,
3326a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_KEY_ENC_IPV6_SRC,
3336a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_KEY_ENC_IPV6_SRC_MASK,
33448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_ENC_IPV6_DST,
3356a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_KEY_ENC_IPV6_DST_MASK,
3366a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_KEY_TCP_SRC_MASK,
3376a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_KEY_TCP_DST_MASK,
33848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_UDP_SRC_MASK,
3396a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_FLOWER_KEY_UDP_DST_MASK,
34048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_SCTP_SRC_MASK,
34148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_SCTP_DST_MASK,
34248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_SCTP_SRC,
34348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_SCTP_DST,
34448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_ENC_UDP_SRC_PORT,
34548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_ENC_UDP_SRC_PORT_MASK,
34648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_ENC_UDP_DST_PORT,
34748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_ENC_UDP_DST_PORT_MASK,
34848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_FLAGS,
34948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_FLAGS_MASK,
35048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_ICMPV4_CODE,
35148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_ICMPV4_CODE_MASK,
35248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_ICMPV4_TYPE,
35348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_ICMPV4_TYPE_MASK,
35448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_ICMPV6_CODE,
35548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_ICMPV6_CODE_MASK,
35648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_ICMPV6_TYPE,
35748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_ICMPV6_TYPE_MASK,
358525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  TCA_FLOWER_KEY_ARP_SIP,
359525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  TCA_FLOWER_KEY_ARP_SIP_MASK,
360525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  TCA_FLOWER_KEY_ARP_TIP,
361525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  TCA_FLOWER_KEY_ARP_TIP_MASK,
362525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  TCA_FLOWER_KEY_ARP_OP,
363525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  TCA_FLOWER_KEY_ARP_OP_MASK,
364525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  TCA_FLOWER_KEY_ARP_SHA,
365525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  TCA_FLOWER_KEY_ARP_SHA_MASK,
366525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  TCA_FLOWER_KEY_ARP_THA,
367525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  TCA_FLOWER_KEY_ARP_THA_MASK,
368525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  TCA_FLOWER_KEY_MPLS_TTL,
369525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  TCA_FLOWER_KEY_MPLS_BOS,
370525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  TCA_FLOWER_KEY_MPLS_TC,
371525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  TCA_FLOWER_KEY_MPLS_LABEL,
3721308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris  TCA_FLOWER_KEY_TCP_FLAGS,
3731308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris  TCA_FLOWER_KEY_TCP_FLAGS_MASK,
3741308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris  TCA_FLOWER_KEY_IP_TOS,
3751308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris  TCA_FLOWER_KEY_IP_TOS_MASK,
3761308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris  TCA_FLOWER_KEY_IP_TTL,
3771308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris  TCA_FLOWER_KEY_IP_TTL_MASK,
37849f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __TCA_FLOWER_MAX,
37905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
38005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1)
38148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisenum {
38248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
38348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
3846a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum {
38549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_MATCHALL_UNSPEC,
38649f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_MATCHALL_CLASSID,
38749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_MATCHALL_ACT,
3886a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  TCA_MATCHALL_FLAGS,
38949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __TCA_MATCHALL_MAX,
39049f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris};
39149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCA_MATCHALL_MAX (__TCA_MATCHALL_MAX - 1)
3926a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisstruct tcf_ematch_tree_hdr {
39349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u16 nmatches;
394d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 progid;
395655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
3966a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum {
39749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCA_EMATCH_TREE_UNSPEC,
398d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_EMATCH_TREE_HDR,
399d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCA_EMATCH_TREE_LIST,
4006a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __TCA_EMATCH_TREE_MAX
40149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris};
402655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1)
403655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tcf_ematch_hdr {
4046a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __u16 matchid;
40549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u16 kind;
406d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 flags;
407d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 pad;
4086a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris};
40949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCF_EM_REL_END 0
410d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TCF_EM_REL_AND (1 << 0)
411d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TCF_EM_REL_OR (1 << 1)
4126a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define TCF_EM_INVERT (1 << 2)
41349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCF_EM_SIMPLE (1 << 3)
414655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCF_EM_REL_MASK 3
415655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK)
4166a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum {
41749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCF_LAYER_LINK,
418d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCF_LAYER_NETWORK,
419d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCF_LAYER_TRANSPORT,
4206a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __TCF_LAYER_MAX
42149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris};
422655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCF_LAYER_MAX (__TCF_LAYER_MAX - 1)
423655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCF_EM_CONTAINER 0
4246a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define TCF_EM_CMP 1
42549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCF_EM_NBYTE 2
426655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCF_EM_U32 3
427655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCF_EM_META 4
4286a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define TCF_EM_TEXT 5
42949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCF_EM_VLAN 6
430655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCF_EM_CANID 7
431655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCF_EM_IPSET 8
4326a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define TCF_EM_MAX 8
43349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisenum {
434d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCF_EM_PROG_TC
435655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
4366a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum {
43749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  TCF_EM_OPND_EQ,
438d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCF_EM_OPND_GT,
439d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  TCF_EM_OPND_LT
4406a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris};
44149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#endif
442