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