1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef __LINUX_PKT_CLS_H
20 #define __LINUX_PKT_CLS_H
21 #include <linux/types.h>
22 #include <linux/pkt_sched.h>
23 #define TC_COOKIE_MAX_SIZE 16
24 enum {
25   TCA_ACT_UNSPEC,
26   TCA_ACT_KIND,
27   TCA_ACT_OPTIONS,
28   TCA_ACT_INDEX,
29   TCA_ACT_STATS,
30   TCA_ACT_PAD,
31   TCA_ACT_COOKIE,
32   TCA_ACT_FLAGS,
33   TCA_ACT_HW_STATS,
34   TCA_ACT_USED_HW_STATS,
35   __TCA_ACT_MAX
36 };
37 #define TCA_ACT_FLAGS_NO_PERCPU_STATS 1
38 #define TCA_ACT_HW_STATS_IMMEDIATE (1 << 0)
39 #define TCA_ACT_HW_STATS_DELAYED (1 << 1)
40 #define TCA_ACT_MAX __TCA_ACT_MAX
41 #define TCA_OLD_COMPAT (TCA_ACT_MAX + 1)
42 #define TCA_ACT_MAX_PRIO 32
43 #define TCA_ACT_BIND 1
44 #define TCA_ACT_NOBIND 0
45 #define TCA_ACT_UNBIND 1
46 #define TCA_ACT_NOUNBIND 0
47 #define TCA_ACT_REPLACE 1
48 #define TCA_ACT_NOREPLACE 0
49 #define TC_ACT_UNSPEC (- 1)
50 #define TC_ACT_OK 0
51 #define TC_ACT_RECLASSIFY 1
52 #define TC_ACT_SHOT 2
53 #define TC_ACT_PIPE 3
54 #define TC_ACT_STOLEN 4
55 #define TC_ACT_QUEUED 5
56 #define TC_ACT_REPEAT 6
57 #define TC_ACT_REDIRECT 7
58 #define TC_ACT_TRAP 8
59 #define TC_ACT_VALUE_MAX TC_ACT_TRAP
60 #define __TC_ACT_EXT_SHIFT 28
61 #define __TC_ACT_EXT(local) ((local) << __TC_ACT_EXT_SHIFT)
62 #define TC_ACT_EXT_VAL_MASK ((1 << __TC_ACT_EXT_SHIFT) - 1)
63 #define TC_ACT_EXT_OPCODE(combined) ((combined) & (~TC_ACT_EXT_VAL_MASK))
64 #define TC_ACT_EXT_CMP(combined,opcode) (TC_ACT_EXT_OPCODE(combined) == opcode)
65 #define TC_ACT_JUMP __TC_ACT_EXT(1)
66 #define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2)
67 #define TC_ACT_EXT_OPCODE_MAX TC_ACT_GOTO_CHAIN
68 #define TCA_ACT_GACT 5
69 #define TCA_ACT_IPT 6
70 #define TCA_ACT_PEDIT 7
71 #define TCA_ACT_MIRRED 8
72 #define TCA_ACT_NAT 9
73 #define TCA_ACT_XT 10
74 #define TCA_ACT_SKBEDIT 11
75 #define TCA_ACT_VLAN 12
76 #define TCA_ACT_BPF 13
77 #define TCA_ACT_CONNMARK 14
78 #define TCA_ACT_SKBMOD 15
79 #define TCA_ACT_CSUM 16
80 #define TCA_ACT_TUNNEL_KEY 17
81 #define TCA_ACT_SIMP 22
82 #define TCA_ACT_IFE 25
83 #define TCA_ACT_SAMPLE 26
84 enum tca_id {
85   TCA_ID_UNSPEC = 0,
86   TCA_ID_POLICE = 1,
87   TCA_ID_GACT = TCA_ACT_GACT,
88   TCA_ID_IPT = TCA_ACT_IPT,
89   TCA_ID_PEDIT = TCA_ACT_PEDIT,
90   TCA_ID_MIRRED = TCA_ACT_MIRRED,
91   TCA_ID_NAT = TCA_ACT_NAT,
92   TCA_ID_XT = TCA_ACT_XT,
93   TCA_ID_SKBEDIT = TCA_ACT_SKBEDIT,
94   TCA_ID_VLAN = TCA_ACT_VLAN,
95   TCA_ID_BPF = TCA_ACT_BPF,
96   TCA_ID_CONNMARK = TCA_ACT_CONNMARK,
97   TCA_ID_SKBMOD = TCA_ACT_SKBMOD,
98   TCA_ID_CSUM = TCA_ACT_CSUM,
99   TCA_ID_TUNNEL_KEY = TCA_ACT_TUNNEL_KEY,
100   TCA_ID_SIMP = TCA_ACT_SIMP,
101   TCA_ID_IFE = TCA_ACT_IFE,
102   TCA_ID_SAMPLE = TCA_ACT_SAMPLE,
103   TCA_ID_CTINFO,
104   TCA_ID_MPLS,
105   TCA_ID_CT,
106   TCA_ID_GATE,
107   __TCA_ID_MAX = 255
108 };
109 #define TCA_ID_MAX __TCA_ID_MAX
110 struct tc_police {
111   __u32 index;
112   int action;
113 #define TC_POLICE_UNSPEC TC_ACT_UNSPEC
114 #define TC_POLICE_OK TC_ACT_OK
115 #define TC_POLICE_RECLASSIFY TC_ACT_RECLASSIFY
116 #define TC_POLICE_SHOT TC_ACT_SHOT
117 #define TC_POLICE_PIPE TC_ACT_PIPE
118   __u32 limit;
119   __u32 burst;
120   __u32 mtu;
121   struct tc_ratespec rate;
122   struct tc_ratespec peakrate;
123   int refcnt;
124   int bindcnt;
125   __u32 capab;
126 };
127 struct tcf_t {
128   __u64 install;
129   __u64 lastuse;
130   __u64 expires;
131   __u64 firstuse;
132 };
133 struct tc_cnt {
134   int refcnt;
135   int bindcnt;
136 };
137 #define tc_gen __u32 index; __u32 capab; int action; int refcnt; int bindcnt
138 enum {
139   TCA_POLICE_UNSPEC,
140   TCA_POLICE_TBF,
141   TCA_POLICE_RATE,
142   TCA_POLICE_PEAKRATE,
143   TCA_POLICE_AVRATE,
144   TCA_POLICE_RESULT,
145   TCA_POLICE_TM,
146   TCA_POLICE_PAD,
147   TCA_POLICE_RATE64,
148   TCA_POLICE_PEAKRATE64,
149   __TCA_POLICE_MAX
150 #define TCA_POLICE_RESULT TCA_POLICE_RESULT
151 };
152 #define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1)
153 #define TCA_CLS_FLAGS_SKIP_HW (1 << 0)
154 #define TCA_CLS_FLAGS_SKIP_SW (1 << 1)
155 #define TCA_CLS_FLAGS_IN_HW (1 << 2)
156 #define TCA_CLS_FLAGS_NOT_IN_HW (1 << 3)
157 #define TCA_CLS_FLAGS_VERBOSE (1 << 4)
158 #define TC_U32_HTID(h) ((h) & 0xFFF00000)
159 #define TC_U32_USERHTID(h) (TC_U32_HTID(h) >> 20)
160 #define TC_U32_HASH(h) (((h) >> 12) & 0xFF)
161 #define TC_U32_NODE(h) ((h) & 0xFFF)
162 #define TC_U32_KEY(h) ((h) & 0xFFFFF)
163 #define TC_U32_UNSPEC 0
164 #define TC_U32_ROOT (0xFFF00000)
165 enum {
166   TCA_U32_UNSPEC,
167   TCA_U32_CLASSID,
168   TCA_U32_HASH,
169   TCA_U32_LINK,
170   TCA_U32_DIVISOR,
171   TCA_U32_SEL,
172   TCA_U32_POLICE,
173   TCA_U32_ACT,
174   TCA_U32_INDEV,
175   TCA_U32_PCNT,
176   TCA_U32_MARK,
177   TCA_U32_FLAGS,
178   TCA_U32_PAD,
179   __TCA_U32_MAX
180 };
181 #define TCA_U32_MAX (__TCA_U32_MAX - 1)
182 struct tc_u32_key {
183   __be32 mask;
184   __be32 val;
185   int off;
186   int offmask;
187 };
188 struct tc_u32_sel {
189   unsigned char flags;
190   unsigned char offshift;
191   unsigned char nkeys;
192   __be16 offmask;
193   __u16 off;
194   short offoff;
195   short hoff;
196   __be32 hmask;
197   struct tc_u32_key keys[0];
198 };
199 struct tc_u32_mark {
200   __u32 val;
201   __u32 mask;
202   __u32 success;
203 };
204 struct tc_u32_pcnt {
205   __u64 rcnt;
206   __u64 rhit;
207   __u64 kcnts[0];
208 };
209 #define TC_U32_TERMINAL 1
210 #define TC_U32_OFFSET 2
211 #define TC_U32_VAROFFSET 4
212 #define TC_U32_EAT 8
213 #define TC_U32_MAXDEPTH 8
214 enum {
215   TCA_RSVP_UNSPEC,
216   TCA_RSVP_CLASSID,
217   TCA_RSVP_DST,
218   TCA_RSVP_SRC,
219   TCA_RSVP_PINFO,
220   TCA_RSVP_POLICE,
221   TCA_RSVP_ACT,
222   __TCA_RSVP_MAX
223 };
224 #define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1)
225 struct tc_rsvp_gpi {
226   __u32 key;
227   __u32 mask;
228   int offset;
229 };
230 struct tc_rsvp_pinfo {
231   struct tc_rsvp_gpi dpi;
232   struct tc_rsvp_gpi spi;
233   __u8 protocol;
234   __u8 tunnelid;
235   __u8 tunnelhdr;
236   __u8 pad;
237 };
238 enum {
239   TCA_ROUTE4_UNSPEC,
240   TCA_ROUTE4_CLASSID,
241   TCA_ROUTE4_TO,
242   TCA_ROUTE4_FROM,
243   TCA_ROUTE4_IIF,
244   TCA_ROUTE4_POLICE,
245   TCA_ROUTE4_ACT,
246   __TCA_ROUTE4_MAX
247 };
248 #define TCA_ROUTE4_MAX (__TCA_ROUTE4_MAX - 1)
249 enum {
250   TCA_FW_UNSPEC,
251   TCA_FW_CLASSID,
252   TCA_FW_POLICE,
253   TCA_FW_INDEV,
254   TCA_FW_ACT,
255   TCA_FW_MASK,
256   __TCA_FW_MAX
257 };
258 #define TCA_FW_MAX (__TCA_FW_MAX - 1)
259 enum {
260   TCA_TCINDEX_UNSPEC,
261   TCA_TCINDEX_HASH,
262   TCA_TCINDEX_MASK,
263   TCA_TCINDEX_SHIFT,
264   TCA_TCINDEX_FALL_THROUGH,
265   TCA_TCINDEX_CLASSID,
266   TCA_TCINDEX_POLICE,
267   TCA_TCINDEX_ACT,
268   __TCA_TCINDEX_MAX
269 };
270 #define TCA_TCINDEX_MAX (__TCA_TCINDEX_MAX - 1)
271 enum {
272   FLOW_KEY_SRC,
273   FLOW_KEY_DST,
274   FLOW_KEY_PROTO,
275   FLOW_KEY_PROTO_SRC,
276   FLOW_KEY_PROTO_DST,
277   FLOW_KEY_IIF,
278   FLOW_KEY_PRIORITY,
279   FLOW_KEY_MARK,
280   FLOW_KEY_NFCT,
281   FLOW_KEY_NFCT_SRC,
282   FLOW_KEY_NFCT_DST,
283   FLOW_KEY_NFCT_PROTO_SRC,
284   FLOW_KEY_NFCT_PROTO_DST,
285   FLOW_KEY_RTCLASSID,
286   FLOW_KEY_SKUID,
287   FLOW_KEY_SKGID,
288   FLOW_KEY_VLAN_TAG,
289   FLOW_KEY_RXHASH,
290   __FLOW_KEY_MAX,
291 };
292 #define FLOW_KEY_MAX (__FLOW_KEY_MAX - 1)
293 enum {
294   FLOW_MODE_MAP,
295   FLOW_MODE_HASH,
296 };
297 enum {
298   TCA_FLOW_UNSPEC,
299   TCA_FLOW_KEYS,
300   TCA_FLOW_MODE,
301   TCA_FLOW_BASECLASS,
302   TCA_FLOW_RSHIFT,
303   TCA_FLOW_ADDEND,
304   TCA_FLOW_MASK,
305   TCA_FLOW_XOR,
306   TCA_FLOW_DIVISOR,
307   TCA_FLOW_ACT,
308   TCA_FLOW_POLICE,
309   TCA_FLOW_EMATCHES,
310   TCA_FLOW_PERTURB,
311   __TCA_FLOW_MAX
312 };
313 #define TCA_FLOW_MAX (__TCA_FLOW_MAX - 1)
314 struct tc_basic_pcnt {
315   __u64 rcnt;
316   __u64 rhit;
317 };
318 enum {
319   TCA_BASIC_UNSPEC,
320   TCA_BASIC_CLASSID,
321   TCA_BASIC_EMATCHES,
322   TCA_BASIC_ACT,
323   TCA_BASIC_POLICE,
324   TCA_BASIC_PCNT,
325   TCA_BASIC_PAD,
326   __TCA_BASIC_MAX
327 };
328 #define TCA_BASIC_MAX (__TCA_BASIC_MAX - 1)
329 enum {
330   TCA_CGROUP_UNSPEC,
331   TCA_CGROUP_ACT,
332   TCA_CGROUP_POLICE,
333   TCA_CGROUP_EMATCHES,
334   __TCA_CGROUP_MAX,
335 };
336 #define TCA_CGROUP_MAX (__TCA_CGROUP_MAX - 1)
337 #define TCA_BPF_FLAG_ACT_DIRECT (1 << 0)
338 enum {
339   TCA_BPF_UNSPEC,
340   TCA_BPF_ACT,
341   TCA_BPF_POLICE,
342   TCA_BPF_CLASSID,
343   TCA_BPF_OPS_LEN,
344   TCA_BPF_OPS,
345   TCA_BPF_FD,
346   TCA_BPF_NAME,
347   TCA_BPF_FLAGS,
348   TCA_BPF_FLAGS_GEN,
349   TCA_BPF_TAG,
350   TCA_BPF_ID,
351   __TCA_BPF_MAX,
352 };
353 #define TCA_BPF_MAX (__TCA_BPF_MAX - 1)
354 enum {
355   TCA_FLOWER_UNSPEC,
356   TCA_FLOWER_CLASSID,
357   TCA_FLOWER_INDEV,
358   TCA_FLOWER_ACT,
359   TCA_FLOWER_KEY_ETH_DST,
360   TCA_FLOWER_KEY_ETH_DST_MASK,
361   TCA_FLOWER_KEY_ETH_SRC,
362   TCA_FLOWER_KEY_ETH_SRC_MASK,
363   TCA_FLOWER_KEY_ETH_TYPE,
364   TCA_FLOWER_KEY_IP_PROTO,
365   TCA_FLOWER_KEY_IPV4_SRC,
366   TCA_FLOWER_KEY_IPV4_SRC_MASK,
367   TCA_FLOWER_KEY_IPV4_DST,
368   TCA_FLOWER_KEY_IPV4_DST_MASK,
369   TCA_FLOWER_KEY_IPV6_SRC,
370   TCA_FLOWER_KEY_IPV6_SRC_MASK,
371   TCA_FLOWER_KEY_IPV6_DST,
372   TCA_FLOWER_KEY_IPV6_DST_MASK,
373   TCA_FLOWER_KEY_TCP_SRC,
374   TCA_FLOWER_KEY_TCP_DST,
375   TCA_FLOWER_KEY_UDP_SRC,
376   TCA_FLOWER_KEY_UDP_DST,
377   TCA_FLOWER_FLAGS,
378   TCA_FLOWER_KEY_VLAN_ID,
379   TCA_FLOWER_KEY_VLAN_PRIO,
380   TCA_FLOWER_KEY_VLAN_ETH_TYPE,
381   TCA_FLOWER_KEY_ENC_KEY_ID,
382   TCA_FLOWER_KEY_ENC_IPV4_SRC,
383   TCA_FLOWER_KEY_ENC_IPV4_SRC_MASK,
384   TCA_FLOWER_KEY_ENC_IPV4_DST,
385   TCA_FLOWER_KEY_ENC_IPV4_DST_MASK,
386   TCA_FLOWER_KEY_ENC_IPV6_SRC,
387   TCA_FLOWER_KEY_ENC_IPV6_SRC_MASK,
388   TCA_FLOWER_KEY_ENC_IPV6_DST,
389   TCA_FLOWER_KEY_ENC_IPV6_DST_MASK,
390   TCA_FLOWER_KEY_TCP_SRC_MASK,
391   TCA_FLOWER_KEY_TCP_DST_MASK,
392   TCA_FLOWER_KEY_UDP_SRC_MASK,
393   TCA_FLOWER_KEY_UDP_DST_MASK,
394   TCA_FLOWER_KEY_SCTP_SRC_MASK,
395   TCA_FLOWER_KEY_SCTP_DST_MASK,
396   TCA_FLOWER_KEY_SCTP_SRC,
397   TCA_FLOWER_KEY_SCTP_DST,
398   TCA_FLOWER_KEY_ENC_UDP_SRC_PORT,
399   TCA_FLOWER_KEY_ENC_UDP_SRC_PORT_MASK,
400   TCA_FLOWER_KEY_ENC_UDP_DST_PORT,
401   TCA_FLOWER_KEY_ENC_UDP_DST_PORT_MASK,
402   TCA_FLOWER_KEY_FLAGS,
403   TCA_FLOWER_KEY_FLAGS_MASK,
404   TCA_FLOWER_KEY_ICMPV4_CODE,
405   TCA_FLOWER_KEY_ICMPV4_CODE_MASK,
406   TCA_FLOWER_KEY_ICMPV4_TYPE,
407   TCA_FLOWER_KEY_ICMPV4_TYPE_MASK,
408   TCA_FLOWER_KEY_ICMPV6_CODE,
409   TCA_FLOWER_KEY_ICMPV6_CODE_MASK,
410   TCA_FLOWER_KEY_ICMPV6_TYPE,
411   TCA_FLOWER_KEY_ICMPV6_TYPE_MASK,
412   TCA_FLOWER_KEY_ARP_SIP,
413   TCA_FLOWER_KEY_ARP_SIP_MASK,
414   TCA_FLOWER_KEY_ARP_TIP,
415   TCA_FLOWER_KEY_ARP_TIP_MASK,
416   TCA_FLOWER_KEY_ARP_OP,
417   TCA_FLOWER_KEY_ARP_OP_MASK,
418   TCA_FLOWER_KEY_ARP_SHA,
419   TCA_FLOWER_KEY_ARP_SHA_MASK,
420   TCA_FLOWER_KEY_ARP_THA,
421   TCA_FLOWER_KEY_ARP_THA_MASK,
422   TCA_FLOWER_KEY_MPLS_TTL,
423   TCA_FLOWER_KEY_MPLS_BOS,
424   TCA_FLOWER_KEY_MPLS_TC,
425   TCA_FLOWER_KEY_MPLS_LABEL,
426   TCA_FLOWER_KEY_TCP_FLAGS,
427   TCA_FLOWER_KEY_TCP_FLAGS_MASK,
428   TCA_FLOWER_KEY_IP_TOS,
429   TCA_FLOWER_KEY_IP_TOS_MASK,
430   TCA_FLOWER_KEY_IP_TTL,
431   TCA_FLOWER_KEY_IP_TTL_MASK,
432   TCA_FLOWER_KEY_CVLAN_ID,
433   TCA_FLOWER_KEY_CVLAN_PRIO,
434   TCA_FLOWER_KEY_CVLAN_ETH_TYPE,
435   TCA_FLOWER_KEY_ENC_IP_TOS,
436   TCA_FLOWER_KEY_ENC_IP_TOS_MASK,
437   TCA_FLOWER_KEY_ENC_IP_TTL,
438   TCA_FLOWER_KEY_ENC_IP_TTL_MASK,
439   TCA_FLOWER_KEY_ENC_OPTS,
440   TCA_FLOWER_KEY_ENC_OPTS_MASK,
441   TCA_FLOWER_IN_HW_COUNT,
442   TCA_FLOWER_KEY_PORT_SRC_MIN,
443   TCA_FLOWER_KEY_PORT_SRC_MAX,
444   TCA_FLOWER_KEY_PORT_DST_MIN,
445   TCA_FLOWER_KEY_PORT_DST_MAX,
446   TCA_FLOWER_KEY_CT_STATE,
447   TCA_FLOWER_KEY_CT_STATE_MASK,
448   TCA_FLOWER_KEY_CT_ZONE,
449   TCA_FLOWER_KEY_CT_ZONE_MASK,
450   TCA_FLOWER_KEY_CT_MARK,
451   TCA_FLOWER_KEY_CT_MARK_MASK,
452   TCA_FLOWER_KEY_CT_LABELS,
453   TCA_FLOWER_KEY_CT_LABELS_MASK,
454   TCA_FLOWER_KEY_MPLS_OPTS,
455   TCA_FLOWER_KEY_HASH,
456   TCA_FLOWER_KEY_HASH_MASK,
457   __TCA_FLOWER_MAX,
458 };
459 #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1)
460 enum {
461   TCA_FLOWER_KEY_CT_FLAGS_NEW = 1 << 0,
462   TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 1 << 1,
463   TCA_FLOWER_KEY_CT_FLAGS_RELATED = 1 << 2,
464   TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 1 << 3,
465   TCA_FLOWER_KEY_CT_FLAGS_INVALID = 1 << 4,
466   TCA_FLOWER_KEY_CT_FLAGS_REPLY = 1 << 5,
467   __TCA_FLOWER_KEY_CT_FLAGS_MAX,
468 };
469 enum {
470   TCA_FLOWER_KEY_ENC_OPTS_UNSPEC,
471   TCA_FLOWER_KEY_ENC_OPTS_GENEVE,
472   TCA_FLOWER_KEY_ENC_OPTS_VXLAN,
473   TCA_FLOWER_KEY_ENC_OPTS_ERSPAN,
474   __TCA_FLOWER_KEY_ENC_OPTS_MAX,
475 };
476 #define TCA_FLOWER_KEY_ENC_OPTS_MAX (__TCA_FLOWER_KEY_ENC_OPTS_MAX - 1)
477 enum {
478   TCA_FLOWER_KEY_ENC_OPT_GENEVE_UNSPEC,
479   TCA_FLOWER_KEY_ENC_OPT_GENEVE_CLASS,
480   TCA_FLOWER_KEY_ENC_OPT_GENEVE_TYPE,
481   TCA_FLOWER_KEY_ENC_OPT_GENEVE_DATA,
482   __TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX,
483 };
484 #define TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX (__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1)
485 enum {
486   TCA_FLOWER_KEY_ENC_OPT_VXLAN_UNSPEC,
487   TCA_FLOWER_KEY_ENC_OPT_VXLAN_GBP,
488   __TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX,
489 };
490 #define TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX (__TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX - 1)
491 enum {
492   TCA_FLOWER_KEY_ENC_OPT_ERSPAN_UNSPEC,
493   TCA_FLOWER_KEY_ENC_OPT_ERSPAN_VER,
494   TCA_FLOWER_KEY_ENC_OPT_ERSPAN_INDEX,
495   TCA_FLOWER_KEY_ENC_OPT_ERSPAN_DIR,
496   TCA_FLOWER_KEY_ENC_OPT_ERSPAN_HWID,
497   __TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX,
498 };
499 #define TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX (__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX - 1)
500 enum {
501   TCA_FLOWER_KEY_MPLS_OPTS_UNSPEC,
502   TCA_FLOWER_KEY_MPLS_OPTS_LSE,
503   __TCA_FLOWER_KEY_MPLS_OPTS_MAX,
504 };
505 #define TCA_FLOWER_KEY_MPLS_OPTS_MAX (__TCA_FLOWER_KEY_MPLS_OPTS_MAX - 1)
506 enum {
507   TCA_FLOWER_KEY_MPLS_OPT_LSE_UNSPEC,
508   TCA_FLOWER_KEY_MPLS_OPT_LSE_DEPTH,
509   TCA_FLOWER_KEY_MPLS_OPT_LSE_TTL,
510   TCA_FLOWER_KEY_MPLS_OPT_LSE_BOS,
511   TCA_FLOWER_KEY_MPLS_OPT_LSE_TC,
512   TCA_FLOWER_KEY_MPLS_OPT_LSE_LABEL,
513   __TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX,
514 };
515 #define TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX (__TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX - 1)
516 enum {
517   TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
518   TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),
519 };
520 #define TCA_FLOWER_MASK_FLAGS_RANGE (1 << 0)
521 struct tc_matchall_pcnt {
522   __u64 rhit;
523 };
524 enum {
525   TCA_MATCHALL_UNSPEC,
526   TCA_MATCHALL_CLASSID,
527   TCA_MATCHALL_ACT,
528   TCA_MATCHALL_FLAGS,
529   TCA_MATCHALL_PCNT,
530   TCA_MATCHALL_PAD,
531   __TCA_MATCHALL_MAX,
532 };
533 #define TCA_MATCHALL_MAX (__TCA_MATCHALL_MAX - 1)
534 struct tcf_ematch_tree_hdr {
535   __u16 nmatches;
536   __u16 progid;
537 };
538 enum {
539   TCA_EMATCH_TREE_UNSPEC,
540   TCA_EMATCH_TREE_HDR,
541   TCA_EMATCH_TREE_LIST,
542   __TCA_EMATCH_TREE_MAX
543 };
544 #define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1)
545 struct tcf_ematch_hdr {
546   __u16 matchid;
547   __u16 kind;
548   __u16 flags;
549   __u16 pad;
550 };
551 #define TCF_EM_REL_END 0
552 #define TCF_EM_REL_AND (1 << 0)
553 #define TCF_EM_REL_OR (1 << 1)
554 #define TCF_EM_INVERT (1 << 2)
555 #define TCF_EM_SIMPLE (1 << 3)
556 #define TCF_EM_REL_MASK 3
557 #define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK)
558 enum {
559   TCF_LAYER_LINK,
560   TCF_LAYER_NETWORK,
561   TCF_LAYER_TRANSPORT,
562   __TCF_LAYER_MAX
563 };
564 #define TCF_LAYER_MAX (__TCF_LAYER_MAX - 1)
565 #define TCF_EM_CONTAINER 0
566 #define TCF_EM_CMP 1
567 #define TCF_EM_NBYTE 2
568 #define TCF_EM_U32 3
569 #define TCF_EM_META 4
570 #define TCF_EM_TEXT 5
571 #define TCF_EM_VLAN 6
572 #define TCF_EM_CANID 7
573 #define TCF_EM_IPSET 8
574 #define TCF_EM_IPT 9
575 #define TCF_EM_MAX 9
576 enum {
577   TCF_EM_PROG_TC
578 };
579 enum {
580   TCF_EM_OPND_EQ,
581   TCF_EM_OPND_GT,
582   TCF_EM_OPND_LT
583 };
584 #endif
585