• 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_MAX
33 };
34 #define TCA_ACT_MAX __TCA_ACT_MAX
35 #define TCA_OLD_COMPAT (TCA_ACT_MAX + 1)
36 #define TCA_ACT_MAX_PRIO 32
37 #define TCA_ACT_BIND 1
38 #define TCA_ACT_NOBIND 0
39 #define TCA_ACT_UNBIND 1
40 #define TCA_ACT_NOUNBIND 0
41 #define TCA_ACT_REPLACE 1
42 #define TCA_ACT_NOREPLACE 0
43 #define TC_ACT_UNSPEC (- 1)
44 #define TC_ACT_OK 0
45 #define TC_ACT_RECLASSIFY 1
46 #define TC_ACT_SHOT 2
47 #define TC_ACT_PIPE 3
48 #define TC_ACT_STOLEN 4
49 #define TC_ACT_QUEUED 5
50 #define TC_ACT_REPEAT 6
51 #define TC_ACT_REDIRECT 7
52 #define TC_ACT_TRAP 8
53 #define __TC_ACT_EXT_SHIFT 28
54 #define __TC_ACT_EXT(local) ((local) << __TC_ACT_EXT_SHIFT)
55 #define TC_ACT_EXT_VAL_MASK ((1 << __TC_ACT_EXT_SHIFT) - 1)
56 #define TC_ACT_EXT_CMP(combined,opcode) (((combined) & (~TC_ACT_EXT_VAL_MASK)) == opcode)
57 #define TC_ACT_JUMP __TC_ACT_EXT(1)
58 #define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2)
59 enum {
60   TCA_ID_UNSPEC = 0,
61   TCA_ID_POLICE = 1,
62   __TCA_ID_MAX = 255
63 };
64 #define TCA_ID_MAX __TCA_ID_MAX
65 struct tc_police {
66   __u32 index;
67   int action;
68 #define TC_POLICE_UNSPEC TC_ACT_UNSPEC
69 #define TC_POLICE_OK TC_ACT_OK
70 #define TC_POLICE_RECLASSIFY TC_ACT_RECLASSIFY
71 #define TC_POLICE_SHOT TC_ACT_SHOT
72 #define TC_POLICE_PIPE TC_ACT_PIPE
73   __u32 limit;
74   __u32 burst;
75   __u32 mtu;
76   struct tc_ratespec rate;
77   struct tc_ratespec peakrate;
78   int refcnt;
79   int bindcnt;
80   __u32 capab;
81 };
82 struct tcf_t {
83   __u64 install;
84   __u64 lastuse;
85   __u64 expires;
86   __u64 firstuse;
87 };
88 struct tc_cnt {
89   int refcnt;
90   int bindcnt;
91 };
92 #define tc_gen __u32 index; __u32 capab; int action; int refcnt; int bindcnt
93 enum {
94   TCA_POLICE_UNSPEC,
95   TCA_POLICE_TBF,
96   TCA_POLICE_RATE,
97   TCA_POLICE_PEAKRATE,
98   TCA_POLICE_AVRATE,
99   TCA_POLICE_RESULT,
100   TCA_POLICE_TM,
101   TCA_POLICE_PAD,
102   __TCA_POLICE_MAX
103 #define TCA_POLICE_RESULT TCA_POLICE_RESULT
104 };
105 #define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1)
106 #define TCA_CLS_FLAGS_SKIP_HW (1 << 0)
107 #define TCA_CLS_FLAGS_SKIP_SW (1 << 1)
108 #define TCA_CLS_FLAGS_IN_HW (1 << 2)
109 #define TCA_CLS_FLAGS_NOT_IN_HW (1 << 3)
110 #define TC_U32_HTID(h) ((h) & 0xFFF00000)
111 #define TC_U32_USERHTID(h) (TC_U32_HTID(h) >> 20)
112 #define TC_U32_HASH(h) (((h) >> 12) & 0xFF)
113 #define TC_U32_NODE(h) ((h) & 0xFFF)
114 #define TC_U32_KEY(h) ((h) & 0xFFFFF)
115 #define TC_U32_UNSPEC 0
116 #define TC_U32_ROOT (0xFFF00000)
117 enum {
118   TCA_U32_UNSPEC,
119   TCA_U32_CLASSID,
120   TCA_U32_HASH,
121   TCA_U32_LINK,
122   TCA_U32_DIVISOR,
123   TCA_U32_SEL,
124   TCA_U32_POLICE,
125   TCA_U32_ACT,
126   TCA_U32_INDEV,
127   TCA_U32_PCNT,
128   TCA_U32_MARK,
129   TCA_U32_FLAGS,
130   TCA_U32_PAD,
131   __TCA_U32_MAX
132 };
133 #define TCA_U32_MAX (__TCA_U32_MAX - 1)
134 struct tc_u32_key {
135   __be32 mask;
136   __be32 val;
137   int off;
138   int offmask;
139 };
140 struct tc_u32_sel {
141   unsigned char flags;
142   unsigned char offshift;
143   unsigned char nkeys;
144   __be16 offmask;
145   __u16 off;
146   short offoff;
147   short hoff;
148   __be32 hmask;
149   struct tc_u32_key keys[0];
150 };
151 struct tc_u32_mark {
152   __u32 val;
153   __u32 mask;
154   __u32 success;
155 };
156 struct tc_u32_pcnt {
157   __u64 rcnt;
158   __u64 rhit;
159   __u64 kcnts[0];
160 };
161 #define TC_U32_TERMINAL 1
162 #define TC_U32_OFFSET 2
163 #define TC_U32_VAROFFSET 4
164 #define TC_U32_EAT 8
165 #define TC_U32_MAXDEPTH 8
166 enum {
167   TCA_RSVP_UNSPEC,
168   TCA_RSVP_CLASSID,
169   TCA_RSVP_DST,
170   TCA_RSVP_SRC,
171   TCA_RSVP_PINFO,
172   TCA_RSVP_POLICE,
173   TCA_RSVP_ACT,
174   __TCA_RSVP_MAX
175 };
176 #define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1)
177 struct tc_rsvp_gpi {
178   __u32 key;
179   __u32 mask;
180   int offset;
181 };
182 struct tc_rsvp_pinfo {
183   struct tc_rsvp_gpi dpi;
184   struct tc_rsvp_gpi spi;
185   __u8 protocol;
186   __u8 tunnelid;
187   __u8 tunnelhdr;
188   __u8 pad;
189 };
190 enum {
191   TCA_ROUTE4_UNSPEC,
192   TCA_ROUTE4_CLASSID,
193   TCA_ROUTE4_TO,
194   TCA_ROUTE4_FROM,
195   TCA_ROUTE4_IIF,
196   TCA_ROUTE4_POLICE,
197   TCA_ROUTE4_ACT,
198   __TCA_ROUTE4_MAX
199 };
200 #define TCA_ROUTE4_MAX (__TCA_ROUTE4_MAX - 1)
201 enum {
202   TCA_FW_UNSPEC,
203   TCA_FW_CLASSID,
204   TCA_FW_POLICE,
205   TCA_FW_INDEV,
206   TCA_FW_ACT,
207   TCA_FW_MASK,
208   __TCA_FW_MAX
209 };
210 #define TCA_FW_MAX (__TCA_FW_MAX - 1)
211 enum {
212   TCA_TCINDEX_UNSPEC,
213   TCA_TCINDEX_HASH,
214   TCA_TCINDEX_MASK,
215   TCA_TCINDEX_SHIFT,
216   TCA_TCINDEX_FALL_THROUGH,
217   TCA_TCINDEX_CLASSID,
218   TCA_TCINDEX_POLICE,
219   TCA_TCINDEX_ACT,
220   __TCA_TCINDEX_MAX
221 };
222 #define TCA_TCINDEX_MAX (__TCA_TCINDEX_MAX - 1)
223 enum {
224   FLOW_KEY_SRC,
225   FLOW_KEY_DST,
226   FLOW_KEY_PROTO,
227   FLOW_KEY_PROTO_SRC,
228   FLOW_KEY_PROTO_DST,
229   FLOW_KEY_IIF,
230   FLOW_KEY_PRIORITY,
231   FLOW_KEY_MARK,
232   FLOW_KEY_NFCT,
233   FLOW_KEY_NFCT_SRC,
234   FLOW_KEY_NFCT_DST,
235   FLOW_KEY_NFCT_PROTO_SRC,
236   FLOW_KEY_NFCT_PROTO_DST,
237   FLOW_KEY_RTCLASSID,
238   FLOW_KEY_SKUID,
239   FLOW_KEY_SKGID,
240   FLOW_KEY_VLAN_TAG,
241   FLOW_KEY_RXHASH,
242   __FLOW_KEY_MAX,
243 };
244 #define FLOW_KEY_MAX (__FLOW_KEY_MAX - 1)
245 enum {
246   FLOW_MODE_MAP,
247   FLOW_MODE_HASH,
248 };
249 enum {
250   TCA_FLOW_UNSPEC,
251   TCA_FLOW_KEYS,
252   TCA_FLOW_MODE,
253   TCA_FLOW_BASECLASS,
254   TCA_FLOW_RSHIFT,
255   TCA_FLOW_ADDEND,
256   TCA_FLOW_MASK,
257   TCA_FLOW_XOR,
258   TCA_FLOW_DIVISOR,
259   TCA_FLOW_ACT,
260   TCA_FLOW_POLICE,
261   TCA_FLOW_EMATCHES,
262   TCA_FLOW_PERTURB,
263   __TCA_FLOW_MAX
264 };
265 #define TCA_FLOW_MAX (__TCA_FLOW_MAX - 1)
266 enum {
267   TCA_BASIC_UNSPEC,
268   TCA_BASIC_CLASSID,
269   TCA_BASIC_EMATCHES,
270   TCA_BASIC_ACT,
271   TCA_BASIC_POLICE,
272   __TCA_BASIC_MAX
273 };
274 #define TCA_BASIC_MAX (__TCA_BASIC_MAX - 1)
275 enum {
276   TCA_CGROUP_UNSPEC,
277   TCA_CGROUP_ACT,
278   TCA_CGROUP_POLICE,
279   TCA_CGROUP_EMATCHES,
280   __TCA_CGROUP_MAX,
281 };
282 #define TCA_CGROUP_MAX (__TCA_CGROUP_MAX - 1)
283 #define TCA_BPF_FLAG_ACT_DIRECT (1 << 0)
284 enum {
285   TCA_BPF_UNSPEC,
286   TCA_BPF_ACT,
287   TCA_BPF_POLICE,
288   TCA_BPF_CLASSID,
289   TCA_BPF_OPS_LEN,
290   TCA_BPF_OPS,
291   TCA_BPF_FD,
292   TCA_BPF_NAME,
293   TCA_BPF_FLAGS,
294   TCA_BPF_FLAGS_GEN,
295   TCA_BPF_TAG,
296   TCA_BPF_ID,
297   __TCA_BPF_MAX,
298 };
299 #define TCA_BPF_MAX (__TCA_BPF_MAX - 1)
300 enum {
301   TCA_FLOWER_UNSPEC,
302   TCA_FLOWER_CLASSID,
303   TCA_FLOWER_INDEV,
304   TCA_FLOWER_ACT,
305   TCA_FLOWER_KEY_ETH_DST,
306   TCA_FLOWER_KEY_ETH_DST_MASK,
307   TCA_FLOWER_KEY_ETH_SRC,
308   TCA_FLOWER_KEY_ETH_SRC_MASK,
309   TCA_FLOWER_KEY_ETH_TYPE,
310   TCA_FLOWER_KEY_IP_PROTO,
311   TCA_FLOWER_KEY_IPV4_SRC,
312   TCA_FLOWER_KEY_IPV4_SRC_MASK,
313   TCA_FLOWER_KEY_IPV4_DST,
314   TCA_FLOWER_KEY_IPV4_DST_MASK,
315   TCA_FLOWER_KEY_IPV6_SRC,
316   TCA_FLOWER_KEY_IPV6_SRC_MASK,
317   TCA_FLOWER_KEY_IPV6_DST,
318   TCA_FLOWER_KEY_IPV6_DST_MASK,
319   TCA_FLOWER_KEY_TCP_SRC,
320   TCA_FLOWER_KEY_TCP_DST,
321   TCA_FLOWER_KEY_UDP_SRC,
322   TCA_FLOWER_KEY_UDP_DST,
323   TCA_FLOWER_FLAGS,
324   TCA_FLOWER_KEY_VLAN_ID,
325   TCA_FLOWER_KEY_VLAN_PRIO,
326   TCA_FLOWER_KEY_VLAN_ETH_TYPE,
327   TCA_FLOWER_KEY_ENC_KEY_ID,
328   TCA_FLOWER_KEY_ENC_IPV4_SRC,
329   TCA_FLOWER_KEY_ENC_IPV4_SRC_MASK,
330   TCA_FLOWER_KEY_ENC_IPV4_DST,
331   TCA_FLOWER_KEY_ENC_IPV4_DST_MASK,
332   TCA_FLOWER_KEY_ENC_IPV6_SRC,
333   TCA_FLOWER_KEY_ENC_IPV6_SRC_MASK,
334   TCA_FLOWER_KEY_ENC_IPV6_DST,
335   TCA_FLOWER_KEY_ENC_IPV6_DST_MASK,
336   TCA_FLOWER_KEY_TCP_SRC_MASK,
337   TCA_FLOWER_KEY_TCP_DST_MASK,
338   TCA_FLOWER_KEY_UDP_SRC_MASK,
339   TCA_FLOWER_KEY_UDP_DST_MASK,
340   TCA_FLOWER_KEY_SCTP_SRC_MASK,
341   TCA_FLOWER_KEY_SCTP_DST_MASK,
342   TCA_FLOWER_KEY_SCTP_SRC,
343   TCA_FLOWER_KEY_SCTP_DST,
344   TCA_FLOWER_KEY_ENC_UDP_SRC_PORT,
345   TCA_FLOWER_KEY_ENC_UDP_SRC_PORT_MASK,
346   TCA_FLOWER_KEY_ENC_UDP_DST_PORT,
347   TCA_FLOWER_KEY_ENC_UDP_DST_PORT_MASK,
348   TCA_FLOWER_KEY_FLAGS,
349   TCA_FLOWER_KEY_FLAGS_MASK,
350   TCA_FLOWER_KEY_ICMPV4_CODE,
351   TCA_FLOWER_KEY_ICMPV4_CODE_MASK,
352   TCA_FLOWER_KEY_ICMPV4_TYPE,
353   TCA_FLOWER_KEY_ICMPV4_TYPE_MASK,
354   TCA_FLOWER_KEY_ICMPV6_CODE,
355   TCA_FLOWER_KEY_ICMPV6_CODE_MASK,
356   TCA_FLOWER_KEY_ICMPV6_TYPE,
357   TCA_FLOWER_KEY_ICMPV6_TYPE_MASK,
358   TCA_FLOWER_KEY_ARP_SIP,
359   TCA_FLOWER_KEY_ARP_SIP_MASK,
360   TCA_FLOWER_KEY_ARP_TIP,
361   TCA_FLOWER_KEY_ARP_TIP_MASK,
362   TCA_FLOWER_KEY_ARP_OP,
363   TCA_FLOWER_KEY_ARP_OP_MASK,
364   TCA_FLOWER_KEY_ARP_SHA,
365   TCA_FLOWER_KEY_ARP_SHA_MASK,
366   TCA_FLOWER_KEY_ARP_THA,
367   TCA_FLOWER_KEY_ARP_THA_MASK,
368   TCA_FLOWER_KEY_MPLS_TTL,
369   TCA_FLOWER_KEY_MPLS_BOS,
370   TCA_FLOWER_KEY_MPLS_TC,
371   TCA_FLOWER_KEY_MPLS_LABEL,
372   TCA_FLOWER_KEY_TCP_FLAGS,
373   TCA_FLOWER_KEY_TCP_FLAGS_MASK,
374   TCA_FLOWER_KEY_IP_TOS,
375   TCA_FLOWER_KEY_IP_TOS_MASK,
376   TCA_FLOWER_KEY_IP_TTL,
377   TCA_FLOWER_KEY_IP_TTL_MASK,
378   __TCA_FLOWER_MAX,
379 };
380 #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1)
381 enum {
382   TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
383 };
384 enum {
385   TCA_MATCHALL_UNSPEC,
386   TCA_MATCHALL_CLASSID,
387   TCA_MATCHALL_ACT,
388   TCA_MATCHALL_FLAGS,
389   __TCA_MATCHALL_MAX,
390 };
391 #define TCA_MATCHALL_MAX (__TCA_MATCHALL_MAX - 1)
392 struct tcf_ematch_tree_hdr {
393   __u16 nmatches;
394   __u16 progid;
395 };
396 enum {
397   TCA_EMATCH_TREE_UNSPEC,
398   TCA_EMATCH_TREE_HDR,
399   TCA_EMATCH_TREE_LIST,
400   __TCA_EMATCH_TREE_MAX
401 };
402 #define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1)
403 struct tcf_ematch_hdr {
404   __u16 matchid;
405   __u16 kind;
406   __u16 flags;
407   __u16 pad;
408 };
409 #define TCF_EM_REL_END 0
410 #define TCF_EM_REL_AND (1 << 0)
411 #define TCF_EM_REL_OR (1 << 1)
412 #define TCF_EM_INVERT (1 << 2)
413 #define TCF_EM_SIMPLE (1 << 3)
414 #define TCF_EM_REL_MASK 3
415 #define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK)
416 enum {
417   TCF_LAYER_LINK,
418   TCF_LAYER_NETWORK,
419   TCF_LAYER_TRANSPORT,
420   __TCF_LAYER_MAX
421 };
422 #define TCF_LAYER_MAX (__TCF_LAYER_MAX - 1)
423 #define TCF_EM_CONTAINER 0
424 #define TCF_EM_CMP 1
425 #define TCF_EM_NBYTE 2
426 #define TCF_EM_U32 3
427 #define TCF_EM_META 4
428 #define TCF_EM_TEXT 5
429 #define TCF_EM_VLAN 6
430 #define TCF_EM_CANID 7
431 #define TCF_EM_IPSET 8
432 #define TCF_EM_MAX 8
433 enum {
434   TCF_EM_PROG_TC
435 };
436 enum {
437   TCF_EM_OPND_EQ,
438   TCF_EM_OPND_GT,
439   TCF_EM_OPND_LT
440 };
441 #endif
442