• 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   /**
183    ** ANDROID FIX: Comment out TAG value to avoid C++ error about using
184    ** a type declared in an anonymous union. This is being fixed upstream
185    ** and should be corrected by the next kernel import.
186    */
187   __struct_group(/*tc_u32_sel_hdr*/, hdr,, unsigned char flags;
188   unsigned char offshift;
189   unsigned char nkeys;
190   __be16 offmask;
191   __u16 off;
192   short offoff;
193   short hoff;
194   __be32 hmask;
195  );
196   struct tc_u32_key keys[];
197 };
198 struct tc_u32_mark {
199   __u32 val;
200   __u32 mask;
201   __u32 success;
202 };
203 struct tc_u32_pcnt {
204   __u64 rcnt;
205   __u64 rhit;
206   __u64 kcnts[];
207 };
208 #define TC_U32_TERMINAL 1
209 #define TC_U32_OFFSET 2
210 #define TC_U32_VAROFFSET 4
211 #define TC_U32_EAT 8
212 #define TC_U32_MAXDEPTH 8
213 enum {
214   TCA_ROUTE4_UNSPEC,
215   TCA_ROUTE4_CLASSID,
216   TCA_ROUTE4_TO,
217   TCA_ROUTE4_FROM,
218   TCA_ROUTE4_IIF,
219   TCA_ROUTE4_POLICE,
220   TCA_ROUTE4_ACT,
221   __TCA_ROUTE4_MAX
222 };
223 #define TCA_ROUTE4_MAX (__TCA_ROUTE4_MAX - 1)
224 enum {
225   TCA_FW_UNSPEC,
226   TCA_FW_CLASSID,
227   TCA_FW_POLICE,
228   TCA_FW_INDEV,
229   TCA_FW_ACT,
230   TCA_FW_MASK,
231   __TCA_FW_MAX
232 };
233 #define TCA_FW_MAX (__TCA_FW_MAX - 1)
234 enum {
235   FLOW_KEY_SRC,
236   FLOW_KEY_DST,
237   FLOW_KEY_PROTO,
238   FLOW_KEY_PROTO_SRC,
239   FLOW_KEY_PROTO_DST,
240   FLOW_KEY_IIF,
241   FLOW_KEY_PRIORITY,
242   FLOW_KEY_MARK,
243   FLOW_KEY_NFCT,
244   FLOW_KEY_NFCT_SRC,
245   FLOW_KEY_NFCT_DST,
246   FLOW_KEY_NFCT_PROTO_SRC,
247   FLOW_KEY_NFCT_PROTO_DST,
248   FLOW_KEY_RTCLASSID,
249   FLOW_KEY_SKUID,
250   FLOW_KEY_SKGID,
251   FLOW_KEY_VLAN_TAG,
252   FLOW_KEY_RXHASH,
253   __FLOW_KEY_MAX,
254 };
255 #define FLOW_KEY_MAX (__FLOW_KEY_MAX - 1)
256 enum {
257   FLOW_MODE_MAP,
258   FLOW_MODE_HASH,
259 };
260 enum {
261   TCA_FLOW_UNSPEC,
262   TCA_FLOW_KEYS,
263   TCA_FLOW_MODE,
264   TCA_FLOW_BASECLASS,
265   TCA_FLOW_RSHIFT,
266   TCA_FLOW_ADDEND,
267   TCA_FLOW_MASK,
268   TCA_FLOW_XOR,
269   TCA_FLOW_DIVISOR,
270   TCA_FLOW_ACT,
271   TCA_FLOW_POLICE,
272   TCA_FLOW_EMATCHES,
273   TCA_FLOW_PERTURB,
274   __TCA_FLOW_MAX
275 };
276 #define TCA_FLOW_MAX (__TCA_FLOW_MAX - 1)
277 struct tc_basic_pcnt {
278   __u64 rcnt;
279   __u64 rhit;
280 };
281 enum {
282   TCA_BASIC_UNSPEC,
283   TCA_BASIC_CLASSID,
284   TCA_BASIC_EMATCHES,
285   TCA_BASIC_ACT,
286   TCA_BASIC_POLICE,
287   TCA_BASIC_PCNT,
288   TCA_BASIC_PAD,
289   __TCA_BASIC_MAX
290 };
291 #define TCA_BASIC_MAX (__TCA_BASIC_MAX - 1)
292 enum {
293   TCA_CGROUP_UNSPEC,
294   TCA_CGROUP_ACT,
295   TCA_CGROUP_POLICE,
296   TCA_CGROUP_EMATCHES,
297   __TCA_CGROUP_MAX,
298 };
299 #define TCA_CGROUP_MAX (__TCA_CGROUP_MAX - 1)
300 #define TCA_BPF_FLAG_ACT_DIRECT (1 << 0)
301 enum {
302   TCA_BPF_UNSPEC,
303   TCA_BPF_ACT,
304   TCA_BPF_POLICE,
305   TCA_BPF_CLASSID,
306   TCA_BPF_OPS_LEN,
307   TCA_BPF_OPS,
308   TCA_BPF_FD,
309   TCA_BPF_NAME,
310   TCA_BPF_FLAGS,
311   TCA_BPF_FLAGS_GEN,
312   TCA_BPF_TAG,
313   TCA_BPF_ID,
314   __TCA_BPF_MAX,
315 };
316 #define TCA_BPF_MAX (__TCA_BPF_MAX - 1)
317 enum {
318   TCA_FLOWER_UNSPEC,
319   TCA_FLOWER_CLASSID,
320   TCA_FLOWER_INDEV,
321   TCA_FLOWER_ACT,
322   TCA_FLOWER_KEY_ETH_DST,
323   TCA_FLOWER_KEY_ETH_DST_MASK,
324   TCA_FLOWER_KEY_ETH_SRC,
325   TCA_FLOWER_KEY_ETH_SRC_MASK,
326   TCA_FLOWER_KEY_ETH_TYPE,
327   TCA_FLOWER_KEY_IP_PROTO,
328   TCA_FLOWER_KEY_IPV4_SRC,
329   TCA_FLOWER_KEY_IPV4_SRC_MASK,
330   TCA_FLOWER_KEY_IPV4_DST,
331   TCA_FLOWER_KEY_IPV4_DST_MASK,
332   TCA_FLOWER_KEY_IPV6_SRC,
333   TCA_FLOWER_KEY_IPV6_SRC_MASK,
334   TCA_FLOWER_KEY_IPV6_DST,
335   TCA_FLOWER_KEY_IPV6_DST_MASK,
336   TCA_FLOWER_KEY_TCP_SRC,
337   TCA_FLOWER_KEY_TCP_DST,
338   TCA_FLOWER_KEY_UDP_SRC,
339   TCA_FLOWER_KEY_UDP_DST,
340   TCA_FLOWER_FLAGS,
341   TCA_FLOWER_KEY_VLAN_ID,
342   TCA_FLOWER_KEY_VLAN_PRIO,
343   TCA_FLOWER_KEY_VLAN_ETH_TYPE,
344   TCA_FLOWER_KEY_ENC_KEY_ID,
345   TCA_FLOWER_KEY_ENC_IPV4_SRC,
346   TCA_FLOWER_KEY_ENC_IPV4_SRC_MASK,
347   TCA_FLOWER_KEY_ENC_IPV4_DST,
348   TCA_FLOWER_KEY_ENC_IPV4_DST_MASK,
349   TCA_FLOWER_KEY_ENC_IPV6_SRC,
350   TCA_FLOWER_KEY_ENC_IPV6_SRC_MASK,
351   TCA_FLOWER_KEY_ENC_IPV6_DST,
352   TCA_FLOWER_KEY_ENC_IPV6_DST_MASK,
353   TCA_FLOWER_KEY_TCP_SRC_MASK,
354   TCA_FLOWER_KEY_TCP_DST_MASK,
355   TCA_FLOWER_KEY_UDP_SRC_MASK,
356   TCA_FLOWER_KEY_UDP_DST_MASK,
357   TCA_FLOWER_KEY_SCTP_SRC_MASK,
358   TCA_FLOWER_KEY_SCTP_DST_MASK,
359   TCA_FLOWER_KEY_SCTP_SRC,
360   TCA_FLOWER_KEY_SCTP_DST,
361   TCA_FLOWER_KEY_ENC_UDP_SRC_PORT,
362   TCA_FLOWER_KEY_ENC_UDP_SRC_PORT_MASK,
363   TCA_FLOWER_KEY_ENC_UDP_DST_PORT,
364   TCA_FLOWER_KEY_ENC_UDP_DST_PORT_MASK,
365   TCA_FLOWER_KEY_FLAGS,
366   TCA_FLOWER_KEY_FLAGS_MASK,
367   TCA_FLOWER_KEY_ICMPV4_CODE,
368   TCA_FLOWER_KEY_ICMPV4_CODE_MASK,
369   TCA_FLOWER_KEY_ICMPV4_TYPE,
370   TCA_FLOWER_KEY_ICMPV4_TYPE_MASK,
371   TCA_FLOWER_KEY_ICMPV6_CODE,
372   TCA_FLOWER_KEY_ICMPV6_CODE_MASK,
373   TCA_FLOWER_KEY_ICMPV6_TYPE,
374   TCA_FLOWER_KEY_ICMPV6_TYPE_MASK,
375   TCA_FLOWER_KEY_ARP_SIP,
376   TCA_FLOWER_KEY_ARP_SIP_MASK,
377   TCA_FLOWER_KEY_ARP_TIP,
378   TCA_FLOWER_KEY_ARP_TIP_MASK,
379   TCA_FLOWER_KEY_ARP_OP,
380   TCA_FLOWER_KEY_ARP_OP_MASK,
381   TCA_FLOWER_KEY_ARP_SHA,
382   TCA_FLOWER_KEY_ARP_SHA_MASK,
383   TCA_FLOWER_KEY_ARP_THA,
384   TCA_FLOWER_KEY_ARP_THA_MASK,
385   TCA_FLOWER_KEY_MPLS_TTL,
386   TCA_FLOWER_KEY_MPLS_BOS,
387   TCA_FLOWER_KEY_MPLS_TC,
388   TCA_FLOWER_KEY_MPLS_LABEL,
389   TCA_FLOWER_KEY_TCP_FLAGS,
390   TCA_FLOWER_KEY_TCP_FLAGS_MASK,
391   TCA_FLOWER_KEY_IP_TOS,
392   TCA_FLOWER_KEY_IP_TOS_MASK,
393   TCA_FLOWER_KEY_IP_TTL,
394   TCA_FLOWER_KEY_IP_TTL_MASK,
395   TCA_FLOWER_KEY_CVLAN_ID,
396   TCA_FLOWER_KEY_CVLAN_PRIO,
397   TCA_FLOWER_KEY_CVLAN_ETH_TYPE,
398   TCA_FLOWER_KEY_ENC_IP_TOS,
399   TCA_FLOWER_KEY_ENC_IP_TOS_MASK,
400   TCA_FLOWER_KEY_ENC_IP_TTL,
401   TCA_FLOWER_KEY_ENC_IP_TTL_MASK,
402   TCA_FLOWER_KEY_ENC_OPTS,
403   TCA_FLOWER_KEY_ENC_OPTS_MASK,
404   TCA_FLOWER_IN_HW_COUNT,
405   TCA_FLOWER_KEY_PORT_SRC_MIN,
406   TCA_FLOWER_KEY_PORT_SRC_MAX,
407   TCA_FLOWER_KEY_PORT_DST_MIN,
408   TCA_FLOWER_KEY_PORT_DST_MAX,
409   TCA_FLOWER_KEY_CT_STATE,
410   TCA_FLOWER_KEY_CT_STATE_MASK,
411   TCA_FLOWER_KEY_CT_ZONE,
412   TCA_FLOWER_KEY_CT_ZONE_MASK,
413   TCA_FLOWER_KEY_CT_MARK,
414   TCA_FLOWER_KEY_CT_MARK_MASK,
415   TCA_FLOWER_KEY_CT_LABELS,
416   TCA_FLOWER_KEY_CT_LABELS_MASK,
417   TCA_FLOWER_KEY_MPLS_OPTS,
418   TCA_FLOWER_KEY_HASH,
419   TCA_FLOWER_KEY_HASH_MASK,
420   TCA_FLOWER_KEY_NUM_OF_VLANS,
421   TCA_FLOWER_KEY_PPPOE_SID,
422   TCA_FLOWER_KEY_PPP_PROTO,
423   TCA_FLOWER_KEY_L2TPV3_SID,
424   TCA_FLOWER_L2_MISS,
425   TCA_FLOWER_KEY_CFM,
426   TCA_FLOWER_KEY_SPI,
427   TCA_FLOWER_KEY_SPI_MASK,
428   TCA_FLOWER_KEY_ENC_FLAGS,
429   TCA_FLOWER_KEY_ENC_FLAGS_MASK,
430   __TCA_FLOWER_MAX,
431 };
432 #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1)
433 enum {
434   TCA_FLOWER_KEY_CT_FLAGS_NEW = 1 << 0,
435   TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 1 << 1,
436   TCA_FLOWER_KEY_CT_FLAGS_RELATED = 1 << 2,
437   TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 1 << 3,
438   TCA_FLOWER_KEY_CT_FLAGS_INVALID = 1 << 4,
439   TCA_FLOWER_KEY_CT_FLAGS_REPLY = 1 << 5,
440   __TCA_FLOWER_KEY_CT_FLAGS_MAX,
441 };
442 enum {
443   TCA_FLOWER_KEY_ENC_OPTS_UNSPEC,
444   TCA_FLOWER_KEY_ENC_OPTS_GENEVE,
445   TCA_FLOWER_KEY_ENC_OPTS_VXLAN,
446   TCA_FLOWER_KEY_ENC_OPTS_ERSPAN,
447   TCA_FLOWER_KEY_ENC_OPTS_GTP,
448   TCA_FLOWER_KEY_ENC_OPTS_PFCP,
449   __TCA_FLOWER_KEY_ENC_OPTS_MAX,
450 };
451 #define TCA_FLOWER_KEY_ENC_OPTS_MAX (__TCA_FLOWER_KEY_ENC_OPTS_MAX - 1)
452 enum {
453   TCA_FLOWER_KEY_ENC_OPT_GENEVE_UNSPEC,
454   TCA_FLOWER_KEY_ENC_OPT_GENEVE_CLASS,
455   TCA_FLOWER_KEY_ENC_OPT_GENEVE_TYPE,
456   TCA_FLOWER_KEY_ENC_OPT_GENEVE_DATA,
457   __TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX,
458 };
459 #define TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX (__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1)
460 enum {
461   TCA_FLOWER_KEY_ENC_OPT_VXLAN_UNSPEC,
462   TCA_FLOWER_KEY_ENC_OPT_VXLAN_GBP,
463   __TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX,
464 };
465 #define TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX (__TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX - 1)
466 enum {
467   TCA_FLOWER_KEY_ENC_OPT_ERSPAN_UNSPEC,
468   TCA_FLOWER_KEY_ENC_OPT_ERSPAN_VER,
469   TCA_FLOWER_KEY_ENC_OPT_ERSPAN_INDEX,
470   TCA_FLOWER_KEY_ENC_OPT_ERSPAN_DIR,
471   TCA_FLOWER_KEY_ENC_OPT_ERSPAN_HWID,
472   __TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX,
473 };
474 #define TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX (__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX - 1)
475 enum {
476   TCA_FLOWER_KEY_ENC_OPT_GTP_UNSPEC,
477   TCA_FLOWER_KEY_ENC_OPT_GTP_PDU_TYPE,
478   TCA_FLOWER_KEY_ENC_OPT_GTP_QFI,
479   __TCA_FLOWER_KEY_ENC_OPT_GTP_MAX,
480 };
481 #define TCA_FLOWER_KEY_ENC_OPT_GTP_MAX (__TCA_FLOWER_KEY_ENC_OPT_GTP_MAX - 1)
482 enum {
483   TCA_FLOWER_KEY_ENC_OPT_PFCP_UNSPEC,
484   TCA_FLOWER_KEY_ENC_OPT_PFCP_TYPE,
485   TCA_FLOWER_KEY_ENC_OPT_PFCP_SEID,
486   __TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX,
487 };
488 #define TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX (__TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX - 1)
489 enum {
490   TCA_FLOWER_KEY_MPLS_OPTS_UNSPEC,
491   TCA_FLOWER_KEY_MPLS_OPTS_LSE,
492   __TCA_FLOWER_KEY_MPLS_OPTS_MAX,
493 };
494 #define TCA_FLOWER_KEY_MPLS_OPTS_MAX (__TCA_FLOWER_KEY_MPLS_OPTS_MAX - 1)
495 enum {
496   TCA_FLOWER_KEY_MPLS_OPT_LSE_UNSPEC,
497   TCA_FLOWER_KEY_MPLS_OPT_LSE_DEPTH,
498   TCA_FLOWER_KEY_MPLS_OPT_LSE_TTL,
499   TCA_FLOWER_KEY_MPLS_OPT_LSE_BOS,
500   TCA_FLOWER_KEY_MPLS_OPT_LSE_TC,
501   TCA_FLOWER_KEY_MPLS_OPT_LSE_LABEL,
502   __TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX,
503 };
504 #define TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX (__TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX - 1)
505 enum {
506   TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
507   TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),
508   TCA_FLOWER_KEY_FLAGS_TUNNEL_CSUM = (1 << 2),
509   TCA_FLOWER_KEY_FLAGS_TUNNEL_DONT_FRAGMENT = (1 << 3),
510   TCA_FLOWER_KEY_FLAGS_TUNNEL_OAM = (1 << 4),
511   TCA_FLOWER_KEY_FLAGS_TUNNEL_CRIT_OPT = (1 << 5),
512   __TCA_FLOWER_KEY_FLAGS_MAX,
513 };
514 #define TCA_FLOWER_KEY_FLAGS_MAX (__TCA_FLOWER_KEY_FLAGS_MAX - 1)
515 enum {
516   TCA_FLOWER_KEY_CFM_OPT_UNSPEC,
517   TCA_FLOWER_KEY_CFM_MD_LEVEL,
518   TCA_FLOWER_KEY_CFM_OPCODE,
519   __TCA_FLOWER_KEY_CFM_OPT_MAX,
520 };
521 #define TCA_FLOWER_KEY_CFM_OPT_MAX (__TCA_FLOWER_KEY_CFM_OPT_MAX - 1)
522 #define TCA_FLOWER_MASK_FLAGS_RANGE (1 << 0)
523 struct tc_matchall_pcnt {
524   __u64 rhit;
525 };
526 enum {
527   TCA_MATCHALL_UNSPEC,
528   TCA_MATCHALL_CLASSID,
529   TCA_MATCHALL_ACT,
530   TCA_MATCHALL_FLAGS,
531   TCA_MATCHALL_PCNT,
532   TCA_MATCHALL_PAD,
533   __TCA_MATCHALL_MAX,
534 };
535 #define TCA_MATCHALL_MAX (__TCA_MATCHALL_MAX - 1)
536 struct tcf_ematch_tree_hdr {
537   __u16 nmatches;
538   __u16 progid;
539 };
540 enum {
541   TCA_EMATCH_TREE_UNSPEC,
542   TCA_EMATCH_TREE_HDR,
543   TCA_EMATCH_TREE_LIST,
544   __TCA_EMATCH_TREE_MAX
545 };
546 #define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1)
547 struct tcf_ematch_hdr {
548   __u16 matchid;
549   __u16 kind;
550   __u16 flags;
551   __u16 pad;
552 };
553 #define TCF_EM_REL_END 0
554 #define TCF_EM_REL_AND (1 << 0)
555 #define TCF_EM_REL_OR (1 << 1)
556 #define TCF_EM_INVERT (1 << 2)
557 #define TCF_EM_SIMPLE (1 << 3)
558 #define TCF_EM_REL_MASK 3
559 #define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK)
560 enum {
561   TCF_LAYER_LINK,
562   TCF_LAYER_NETWORK,
563   TCF_LAYER_TRANSPORT,
564   __TCF_LAYER_MAX
565 };
566 #define TCF_LAYER_MAX (__TCF_LAYER_MAX - 1)
567 #define TCF_EM_CONTAINER 0
568 #define TCF_EM_CMP 1
569 #define TCF_EM_NBYTE 2
570 #define TCF_EM_U32 3
571 #define TCF_EM_META 4
572 #define TCF_EM_TEXT 5
573 #define TCF_EM_VLAN 6
574 #define TCF_EM_CANID 7
575 #define TCF_EM_IPSET 8
576 #define TCF_EM_IPT 9
577 #define TCF_EM_MAX 9
578 enum {
579   TCF_EM_PROG_TC
580 };
581 enum {
582   TCF_EM_OPND_EQ,
583   TCF_EM_OPND_GT,
584   TCF_EM_OPND_LT
585 };
586 #endif
587