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