• 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_SCHED_H
20 #define __LINUX_PKT_SCHED_H
21 #include <linux/types.h>
22 #define TC_PRIO_BESTEFFORT 0
23 #define TC_PRIO_FILLER 1
24 #define TC_PRIO_BULK 2
25 #define TC_PRIO_INTERACTIVE_BULK 4
26 #define TC_PRIO_INTERACTIVE 6
27 #define TC_PRIO_CONTROL 7
28 #define TC_PRIO_MAX 15
29 struct tc_stats {
30   __u64 bytes;
31   __u32 packets;
32   __u32 drops;
33   __u32 overlimits;
34   __u32 bps;
35   __u32 pps;
36   __u32 qlen;
37   __u32 backlog;
38 };
39 struct tc_estimator {
40   signed char interval;
41   unsigned char ewma_log;
42 };
43 #define TC_H_MAJ_MASK (0xFFFF0000U)
44 #define TC_H_MIN_MASK (0x0000FFFFU)
45 #define TC_H_MAJ(h) ((h) & TC_H_MAJ_MASK)
46 #define TC_H_MIN(h) ((h) & TC_H_MIN_MASK)
47 #define TC_H_MAKE(maj,min) (((maj) & TC_H_MAJ_MASK) | ((min) & TC_H_MIN_MASK))
48 #define TC_H_UNSPEC (0U)
49 #define TC_H_ROOT (0xFFFFFFFFU)
50 #define TC_H_INGRESS (0xFFFFFFF1U)
51 #define TC_H_CLSACT TC_H_INGRESS
52 #define TC_H_MIN_PRIORITY 0xFFE0U
53 #define TC_H_MIN_INGRESS 0xFFF2U
54 #define TC_H_MIN_EGRESS 0xFFF3U
55 enum tc_link_layer {
56   TC_LINKLAYER_UNAWARE,
57   TC_LINKLAYER_ETHERNET,
58   TC_LINKLAYER_ATM,
59 };
60 #define TC_LINKLAYER_MASK 0x0F
61 struct tc_ratespec {
62   unsigned char cell_log;
63   __u8 linklayer;
64   unsigned short overhead;
65   short cell_align;
66   unsigned short mpu;
67   __u32 rate;
68 };
69 #define TC_RTAB_SIZE 1024
70 struct tc_sizespec {
71   unsigned char cell_log;
72   unsigned char size_log;
73   short cell_align;
74   int overhead;
75   unsigned int linklayer;
76   unsigned int mpu;
77   unsigned int mtu;
78   unsigned int tsize;
79 };
80 enum {
81   TCA_STAB_UNSPEC,
82   TCA_STAB_BASE,
83   TCA_STAB_DATA,
84   __TCA_STAB_MAX
85 };
86 #define TCA_STAB_MAX (__TCA_STAB_MAX - 1)
87 struct tc_fifo_qopt {
88   __u32 limit;
89 };
90 #define SKBPRIO_MAX_PRIORITY 64
91 struct tc_skbprio_qopt {
92   __u32 limit;
93 };
94 #define TCQ_PRIO_BANDS 16
95 #define TCQ_MIN_PRIO_BANDS 2
96 struct tc_prio_qopt {
97   int bands;
98   __u8 priomap[TC_PRIO_MAX + 1];
99 };
100 struct tc_multiq_qopt {
101   __u16 bands;
102   __u16 max_bands;
103 };
104 #define TCQ_PLUG_BUFFER 0
105 #define TCQ_PLUG_RELEASE_ONE 1
106 #define TCQ_PLUG_RELEASE_INDEFINITE 2
107 #define TCQ_PLUG_LIMIT 3
108 struct tc_plug_qopt {
109   int action;
110   __u32 limit;
111 };
112 struct tc_tbf_qopt {
113   struct tc_ratespec rate;
114   struct tc_ratespec peakrate;
115   __u32 limit;
116   __u32 buffer;
117   __u32 mtu;
118 };
119 enum {
120   TCA_TBF_UNSPEC,
121   TCA_TBF_PARMS,
122   TCA_TBF_RTAB,
123   TCA_TBF_PTAB,
124   TCA_TBF_RATE64,
125   TCA_TBF_PRATE64,
126   TCA_TBF_BURST,
127   TCA_TBF_PBURST,
128   TCA_TBF_PAD,
129   __TCA_TBF_MAX,
130 };
131 #define TCA_TBF_MAX (__TCA_TBF_MAX - 1)
132 struct tc_sfq_qopt {
133   unsigned quantum;
134   int perturb_period;
135   __u32 limit;
136   unsigned divisor;
137   unsigned flows;
138 };
139 struct tc_sfqred_stats {
140   __u32 prob_drop;
141   __u32 forced_drop;
142   __u32 prob_mark;
143   __u32 forced_mark;
144   __u32 prob_mark_head;
145   __u32 forced_mark_head;
146 };
147 struct tc_sfq_qopt_v1 {
148   struct tc_sfq_qopt v0;
149   unsigned int depth;
150   unsigned int headdrop;
151   __u32 limit;
152   __u32 qth_min;
153   __u32 qth_max;
154   unsigned char Wlog;
155   unsigned char Plog;
156   unsigned char Scell_log;
157   unsigned char flags;
158   __u32 max_P;
159   struct tc_sfqred_stats stats;
160 };
161 struct tc_sfq_xstats {
162   __s32 allot;
163 };
164 enum {
165   TCA_RED_UNSPEC,
166   TCA_RED_PARMS,
167   TCA_RED_STAB,
168   TCA_RED_MAX_P,
169   __TCA_RED_MAX,
170 };
171 #define TCA_RED_MAX (__TCA_RED_MAX - 1)
172 struct tc_red_qopt {
173   __u32 limit;
174   __u32 qth_min;
175   __u32 qth_max;
176   unsigned char Wlog;
177   unsigned char Plog;
178   unsigned char Scell_log;
179   unsigned char flags;
180 #define TC_RED_ECN 1
181 #define TC_RED_HARDDROP 2
182 #define TC_RED_ADAPTATIVE 4
183 };
184 struct tc_red_xstats {
185   __u32 early;
186   __u32 pdrop;
187   __u32 other;
188   __u32 marked;
189 };
190 #define MAX_DPs 16
191 enum {
192   TCA_GRED_UNSPEC,
193   TCA_GRED_PARMS,
194   TCA_GRED_STAB,
195   TCA_GRED_DPS,
196   TCA_GRED_MAX_P,
197   TCA_GRED_LIMIT,
198   TCA_GRED_VQ_LIST,
199   __TCA_GRED_MAX,
200 };
201 #define TCA_GRED_MAX (__TCA_GRED_MAX - 1)
202 enum {
203   TCA_GRED_VQ_ENTRY_UNSPEC,
204   TCA_GRED_VQ_ENTRY,
205   __TCA_GRED_VQ_ENTRY_MAX,
206 };
207 #define TCA_GRED_VQ_ENTRY_MAX (__TCA_GRED_VQ_ENTRY_MAX - 1)
208 enum {
209   TCA_GRED_VQ_UNSPEC,
210   TCA_GRED_VQ_PAD,
211   TCA_GRED_VQ_DP,
212   TCA_GRED_VQ_STAT_BYTES,
213   TCA_GRED_VQ_STAT_PACKETS,
214   TCA_GRED_VQ_STAT_BACKLOG,
215   TCA_GRED_VQ_STAT_PROB_DROP,
216   TCA_GRED_VQ_STAT_PROB_MARK,
217   TCA_GRED_VQ_STAT_FORCED_DROP,
218   TCA_GRED_VQ_STAT_FORCED_MARK,
219   TCA_GRED_VQ_STAT_PDROP,
220   TCA_GRED_VQ_STAT_OTHER,
221   TCA_GRED_VQ_FLAGS,
222   __TCA_GRED_VQ_MAX
223 };
224 #define TCA_GRED_VQ_MAX (__TCA_GRED_VQ_MAX - 1)
225 struct tc_gred_qopt {
226   __u32 limit;
227   __u32 qth_min;
228   __u32 qth_max;
229   __u32 DP;
230   __u32 backlog;
231   __u32 qave;
232   __u32 forced;
233   __u32 early;
234   __u32 other;
235   __u32 pdrop;
236   __u8 Wlog;
237   __u8 Plog;
238   __u8 Scell_log;
239   __u8 prio;
240   __u32 packets;
241   __u32 bytesin;
242 };
243 struct tc_gred_sopt {
244   __u32 DPs;
245   __u32 def_DP;
246   __u8 grio;
247   __u8 flags;
248   __u16 pad1;
249 };
250 enum {
251   TCA_CHOKE_UNSPEC,
252   TCA_CHOKE_PARMS,
253   TCA_CHOKE_STAB,
254   TCA_CHOKE_MAX_P,
255   __TCA_CHOKE_MAX,
256 };
257 #define TCA_CHOKE_MAX (__TCA_CHOKE_MAX - 1)
258 struct tc_choke_qopt {
259   __u32 limit;
260   __u32 qth_min;
261   __u32 qth_max;
262   unsigned char Wlog;
263   unsigned char Plog;
264   unsigned char Scell_log;
265   unsigned char flags;
266 };
267 struct tc_choke_xstats {
268   __u32 early;
269   __u32 pdrop;
270   __u32 other;
271   __u32 marked;
272   __u32 matched;
273 };
274 #define TC_HTB_NUMPRIO 8
275 #define TC_HTB_MAXDEPTH 8
276 #define TC_HTB_PROTOVER 3
277 struct tc_htb_opt {
278   struct tc_ratespec rate;
279   struct tc_ratespec ceil;
280   __u32 buffer;
281   __u32 cbuffer;
282   __u32 quantum;
283   __u32 level;
284   __u32 prio;
285 };
286 struct tc_htb_glob {
287   __u32 version;
288   __u32 rate2quantum;
289   __u32 defcls;
290   __u32 debug;
291   __u32 direct_pkts;
292 };
293 enum {
294   TCA_HTB_UNSPEC,
295   TCA_HTB_PARMS,
296   TCA_HTB_INIT,
297   TCA_HTB_CTAB,
298   TCA_HTB_RTAB,
299   TCA_HTB_DIRECT_QLEN,
300   TCA_HTB_RATE64,
301   TCA_HTB_CEIL64,
302   TCA_HTB_PAD,
303   __TCA_HTB_MAX,
304 };
305 #define TCA_HTB_MAX (__TCA_HTB_MAX - 1)
306 struct tc_htb_xstats {
307   __u32 lends;
308   __u32 borrows;
309   __u32 giants;
310   __s32 tokens;
311   __s32 ctokens;
312 };
313 struct tc_hfsc_qopt {
314   __u16 defcls;
315 };
316 struct tc_service_curve {
317   __u32 m1;
318   __u32 d;
319   __u32 m2;
320 };
321 struct tc_hfsc_stats {
322   __u64 work;
323   __u64 rtwork;
324   __u32 period;
325   __u32 level;
326 };
327 enum {
328   TCA_HFSC_UNSPEC,
329   TCA_HFSC_RSC,
330   TCA_HFSC_FSC,
331   TCA_HFSC_USC,
332   __TCA_HFSC_MAX,
333 };
334 #define TCA_HFSC_MAX (__TCA_HFSC_MAX - 1)
335 #define TC_CBQ_MAXPRIO 8
336 #define TC_CBQ_MAXLEVEL 8
337 #define TC_CBQ_DEF_EWMA 5
338 struct tc_cbq_lssopt {
339   unsigned char change;
340   unsigned char flags;
341 #define TCF_CBQ_LSS_BOUNDED 1
342 #define TCF_CBQ_LSS_ISOLATED 2
343   unsigned char ewma_log;
344   unsigned char level;
345 #define TCF_CBQ_LSS_FLAGS 1
346 #define TCF_CBQ_LSS_EWMA 2
347 #define TCF_CBQ_LSS_MAXIDLE 4
348 #define TCF_CBQ_LSS_MINIDLE 8
349 #define TCF_CBQ_LSS_OFFTIME 0x10
350 #define TCF_CBQ_LSS_AVPKT 0x20
351   __u32 maxidle;
352   __u32 minidle;
353   __u32 offtime;
354   __u32 avpkt;
355 };
356 struct tc_cbq_wrropt {
357   unsigned char flags;
358   unsigned char priority;
359   unsigned char cpriority;
360   unsigned char __reserved;
361   __u32 allot;
362   __u32 weight;
363 };
364 struct tc_cbq_ovl {
365   unsigned char strategy;
366 #define TC_CBQ_OVL_CLASSIC 0
367 #define TC_CBQ_OVL_DELAY 1
368 #define TC_CBQ_OVL_LOWPRIO 2
369 #define TC_CBQ_OVL_DROP 3
370 #define TC_CBQ_OVL_RCLASSIC 4
371   unsigned char priority2;
372   __u16 pad;
373   __u32 penalty;
374 };
375 struct tc_cbq_police {
376   unsigned char police;
377   unsigned char __res1;
378   unsigned short __res2;
379 };
380 struct tc_cbq_fopt {
381   __u32 split;
382   __u32 defmap;
383   __u32 defchange;
384 };
385 struct tc_cbq_xstats {
386   __u32 borrows;
387   __u32 overactions;
388   __s32 avgidle;
389   __s32 undertime;
390 };
391 enum {
392   TCA_CBQ_UNSPEC,
393   TCA_CBQ_LSSOPT,
394   TCA_CBQ_WRROPT,
395   TCA_CBQ_FOPT,
396   TCA_CBQ_OVL_STRATEGY,
397   TCA_CBQ_RATE,
398   TCA_CBQ_RTAB,
399   TCA_CBQ_POLICE,
400   __TCA_CBQ_MAX,
401 };
402 #define TCA_CBQ_MAX (__TCA_CBQ_MAX - 1)
403 enum {
404   TCA_DSMARK_UNSPEC,
405   TCA_DSMARK_INDICES,
406   TCA_DSMARK_DEFAULT_INDEX,
407   TCA_DSMARK_SET_TC_INDEX,
408   TCA_DSMARK_MASK,
409   TCA_DSMARK_VALUE,
410   __TCA_DSMARK_MAX,
411 };
412 #define TCA_DSMARK_MAX (__TCA_DSMARK_MAX - 1)
413 enum {
414   TCA_ATM_UNSPEC,
415   TCA_ATM_FD,
416   TCA_ATM_PTR,
417   TCA_ATM_HDR,
418   TCA_ATM_EXCESS,
419   TCA_ATM_ADDR,
420   TCA_ATM_STATE,
421   __TCA_ATM_MAX,
422 };
423 #define TCA_ATM_MAX (__TCA_ATM_MAX - 1)
424 enum {
425   TCA_NETEM_UNSPEC,
426   TCA_NETEM_CORR,
427   TCA_NETEM_DELAY_DIST,
428   TCA_NETEM_REORDER,
429   TCA_NETEM_CORRUPT,
430   TCA_NETEM_LOSS,
431   TCA_NETEM_RATE,
432   TCA_NETEM_ECN,
433   TCA_NETEM_RATE64,
434   TCA_NETEM_PAD,
435   TCA_NETEM_LATENCY64,
436   TCA_NETEM_JITTER64,
437   TCA_NETEM_SLOT,
438   TCA_NETEM_SLOT_DIST,
439   __TCA_NETEM_MAX,
440 };
441 #define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1)
442 struct tc_netem_qopt {
443   __u32 latency;
444   __u32 limit;
445   __u32 loss;
446   __u32 gap;
447   __u32 duplicate;
448   __u32 jitter;
449 };
450 struct tc_netem_corr {
451   __u32 delay_corr;
452   __u32 loss_corr;
453   __u32 dup_corr;
454 };
455 struct tc_netem_reorder {
456   __u32 probability;
457   __u32 correlation;
458 };
459 struct tc_netem_corrupt {
460   __u32 probability;
461   __u32 correlation;
462 };
463 struct tc_netem_rate {
464   __u32 rate;
465   __s32 packet_overhead;
466   __u32 cell_size;
467   __s32 cell_overhead;
468 };
469 struct tc_netem_slot {
470   __s64 min_delay;
471   __s64 max_delay;
472   __s32 max_packets;
473   __s32 max_bytes;
474   __s64 dist_delay;
475   __s64 dist_jitter;
476 };
477 enum {
478   NETEM_LOSS_UNSPEC,
479   NETEM_LOSS_GI,
480   NETEM_LOSS_GE,
481   __NETEM_LOSS_MAX
482 };
483 #define NETEM_LOSS_MAX (__NETEM_LOSS_MAX - 1)
484 struct tc_netem_gimodel {
485   __u32 p13;
486   __u32 p31;
487   __u32 p32;
488   __u32 p14;
489   __u32 p23;
490 };
491 struct tc_netem_gemodel {
492   __u32 p;
493   __u32 r;
494   __u32 h;
495   __u32 k1;
496 };
497 #define NETEM_DIST_SCALE 8192
498 #define NETEM_DIST_MAX 16384
499 enum {
500   TCA_DRR_UNSPEC,
501   TCA_DRR_QUANTUM,
502   __TCA_DRR_MAX
503 };
504 #define TCA_DRR_MAX (__TCA_DRR_MAX - 1)
505 struct tc_drr_stats {
506   __u32 deficit;
507 };
508 #define TC_QOPT_BITMASK 15
509 #define TC_QOPT_MAX_QUEUE 16
510 enum {
511   TC_MQPRIO_HW_OFFLOAD_NONE,
512   TC_MQPRIO_HW_OFFLOAD_TCS,
513   __TC_MQPRIO_HW_OFFLOAD_MAX
514 };
515 #define TC_MQPRIO_HW_OFFLOAD_MAX (__TC_MQPRIO_HW_OFFLOAD_MAX - 1)
516 enum {
517   TC_MQPRIO_MODE_DCB,
518   TC_MQPRIO_MODE_CHANNEL,
519   __TC_MQPRIO_MODE_MAX
520 };
521 #define __TC_MQPRIO_MODE_MAX (__TC_MQPRIO_MODE_MAX - 1)
522 enum {
523   TC_MQPRIO_SHAPER_DCB,
524   TC_MQPRIO_SHAPER_BW_RATE,
525   __TC_MQPRIO_SHAPER_MAX
526 };
527 #define __TC_MQPRIO_SHAPER_MAX (__TC_MQPRIO_SHAPER_MAX - 1)
528 struct tc_mqprio_qopt {
529   __u8 num_tc;
530   __u8 prio_tc_map[TC_QOPT_BITMASK + 1];
531   __u8 hw;
532   __u16 count[TC_QOPT_MAX_QUEUE];
533   __u16 offset[TC_QOPT_MAX_QUEUE];
534 };
535 #define TC_MQPRIO_F_MODE 0x1
536 #define TC_MQPRIO_F_SHAPER 0x2
537 #define TC_MQPRIO_F_MIN_RATE 0x4
538 #define TC_MQPRIO_F_MAX_RATE 0x8
539 enum {
540   TCA_MQPRIO_UNSPEC,
541   TCA_MQPRIO_MODE,
542   TCA_MQPRIO_SHAPER,
543   TCA_MQPRIO_MIN_RATE64,
544   TCA_MQPRIO_MAX_RATE64,
545   __TCA_MQPRIO_MAX,
546 };
547 #define TCA_MQPRIO_MAX (__TCA_MQPRIO_MAX - 1)
548 enum {
549   TCA_SFB_UNSPEC,
550   TCA_SFB_PARMS,
551   __TCA_SFB_MAX,
552 };
553 #define TCA_SFB_MAX (__TCA_SFB_MAX - 1)
554 struct tc_sfb_qopt {
555   __u32 rehash_interval;
556   __u32 warmup_time;
557   __u32 max;
558   __u32 bin_size;
559   __u32 increment;
560   __u32 decrement;
561   __u32 limit;
562   __u32 penalty_rate;
563   __u32 penalty_burst;
564 };
565 struct tc_sfb_xstats {
566   __u32 earlydrop;
567   __u32 penaltydrop;
568   __u32 bucketdrop;
569   __u32 queuedrop;
570   __u32 childdrop;
571   __u32 marked;
572   __u32 maxqlen;
573   __u32 maxprob;
574   __u32 avgprob;
575 };
576 #define SFB_MAX_PROB 0xFFFF
577 enum {
578   TCA_QFQ_UNSPEC,
579   TCA_QFQ_WEIGHT,
580   TCA_QFQ_LMAX,
581   __TCA_QFQ_MAX
582 };
583 #define TCA_QFQ_MAX (__TCA_QFQ_MAX - 1)
584 struct tc_qfq_stats {
585   __u32 weight;
586   __u32 lmax;
587 };
588 enum {
589   TCA_CODEL_UNSPEC,
590   TCA_CODEL_TARGET,
591   TCA_CODEL_LIMIT,
592   TCA_CODEL_INTERVAL,
593   TCA_CODEL_ECN,
594   TCA_CODEL_CE_THRESHOLD,
595   __TCA_CODEL_MAX
596 };
597 #define TCA_CODEL_MAX (__TCA_CODEL_MAX - 1)
598 struct tc_codel_xstats {
599   __u32 maxpacket;
600   __u32 count;
601   __u32 lastcount;
602   __u32 ldelay;
603   __s32 drop_next;
604   __u32 drop_overlimit;
605   __u32 ecn_mark;
606   __u32 dropping;
607   __u32 ce_mark;
608 };
609 enum {
610   TCA_FQ_CODEL_UNSPEC,
611   TCA_FQ_CODEL_TARGET,
612   TCA_FQ_CODEL_LIMIT,
613   TCA_FQ_CODEL_INTERVAL,
614   TCA_FQ_CODEL_ECN,
615   TCA_FQ_CODEL_FLOWS,
616   TCA_FQ_CODEL_QUANTUM,
617   TCA_FQ_CODEL_CE_THRESHOLD,
618   TCA_FQ_CODEL_DROP_BATCH_SIZE,
619   TCA_FQ_CODEL_MEMORY_LIMIT,
620   __TCA_FQ_CODEL_MAX
621 };
622 #define TCA_FQ_CODEL_MAX (__TCA_FQ_CODEL_MAX - 1)
623 enum {
624   TCA_FQ_CODEL_XSTATS_QDISC,
625   TCA_FQ_CODEL_XSTATS_CLASS,
626 };
627 struct tc_fq_codel_qd_stats {
628   __u32 maxpacket;
629   __u32 drop_overlimit;
630   __u32 ecn_mark;
631   __u32 new_flow_count;
632   __u32 new_flows_len;
633   __u32 old_flows_len;
634   __u32 ce_mark;
635   __u32 memory_usage;
636   __u32 drop_overmemory;
637 };
638 struct tc_fq_codel_cl_stats {
639   __s32 deficit;
640   __u32 ldelay;
641   __u32 count;
642   __u32 lastcount;
643   __u32 dropping;
644   __s32 drop_next;
645 };
646 struct tc_fq_codel_xstats {
647   __u32 type;
648   union {
649     struct tc_fq_codel_qd_stats qdisc_stats;
650     struct tc_fq_codel_cl_stats class_stats;
651   };
652 };
653 enum {
654   TCA_FQ_UNSPEC,
655   TCA_FQ_PLIMIT,
656   TCA_FQ_FLOW_PLIMIT,
657   TCA_FQ_QUANTUM,
658   TCA_FQ_INITIAL_QUANTUM,
659   TCA_FQ_RATE_ENABLE,
660   TCA_FQ_FLOW_DEFAULT_RATE,
661   TCA_FQ_FLOW_MAX_RATE,
662   TCA_FQ_BUCKETS_LOG,
663   TCA_FQ_FLOW_REFILL_DELAY,
664   TCA_FQ_ORPHAN_MASK,
665   TCA_FQ_LOW_RATE_THRESHOLD,
666   TCA_FQ_CE_THRESHOLD,
667   __TCA_FQ_MAX
668 };
669 #define TCA_FQ_MAX (__TCA_FQ_MAX - 1)
670 struct tc_fq_qd_stats {
671   __u64 gc_flows;
672   __u64 highprio_packets;
673   __u64 tcp_retrans;
674   __u64 throttled;
675   __u64 flows_plimit;
676   __u64 pkts_too_long;
677   __u64 allocation_errors;
678   __s64 time_next_delayed_flow;
679   __u32 flows;
680   __u32 inactive_flows;
681   __u32 throttled_flows;
682   __u32 unthrottle_latency_ns;
683   __u64 ce_mark;
684 };
685 enum {
686   TCA_HHF_UNSPEC,
687   TCA_HHF_BACKLOG_LIMIT,
688   TCA_HHF_QUANTUM,
689   TCA_HHF_HH_FLOWS_LIMIT,
690   TCA_HHF_RESET_TIMEOUT,
691   TCA_HHF_ADMIT_BYTES,
692   TCA_HHF_EVICT_TIMEOUT,
693   TCA_HHF_NON_HH_WEIGHT,
694   __TCA_HHF_MAX
695 };
696 #define TCA_HHF_MAX (__TCA_HHF_MAX - 1)
697 struct tc_hhf_xstats {
698   __u32 drop_overlimit;
699   __u32 hh_overlimit;
700   __u32 hh_tot_count;
701   __u32 hh_cur_count;
702 };
703 enum {
704   TCA_PIE_UNSPEC,
705   TCA_PIE_TARGET,
706   TCA_PIE_LIMIT,
707   TCA_PIE_TUPDATE,
708   TCA_PIE_ALPHA,
709   TCA_PIE_BETA,
710   TCA_PIE_ECN,
711   TCA_PIE_BYTEMODE,
712   __TCA_PIE_MAX
713 };
714 #define TCA_PIE_MAX (__TCA_PIE_MAX - 1)
715 struct tc_pie_xstats {
716   __u32 prob;
717   __u32 delay;
718   __u32 avg_dq_rate;
719   __u32 packets_in;
720   __u32 dropped;
721   __u32 overlimit;
722   __u32 maxq;
723   __u32 ecn_mark;
724 };
725 struct tc_cbs_qopt {
726   __u8 offload;
727   __u8 _pad[3];
728   __s32 hicredit;
729   __s32 locredit;
730   __s32 idleslope;
731   __s32 sendslope;
732 };
733 enum {
734   TCA_CBS_UNSPEC,
735   TCA_CBS_PARMS,
736   __TCA_CBS_MAX,
737 };
738 #define TCA_CBS_MAX (__TCA_CBS_MAX - 1)
739 struct tc_etf_qopt {
740   __s32 delta;
741   __s32 clockid;
742   __u32 flags;
743 #define TC_ETF_DEADLINE_MODE_ON BIT(0)
744 #define TC_ETF_OFFLOAD_ON BIT(1)
745 };
746 enum {
747   TCA_ETF_UNSPEC,
748   TCA_ETF_PARMS,
749   __TCA_ETF_MAX,
750 };
751 #define TCA_ETF_MAX (__TCA_ETF_MAX - 1)
752 enum {
753   TCA_CAKE_UNSPEC,
754   TCA_CAKE_PAD,
755   TCA_CAKE_BASE_RATE64,
756   TCA_CAKE_DIFFSERV_MODE,
757   TCA_CAKE_ATM,
758   TCA_CAKE_FLOW_MODE,
759   TCA_CAKE_OVERHEAD,
760   TCA_CAKE_RTT,
761   TCA_CAKE_TARGET,
762   TCA_CAKE_AUTORATE,
763   TCA_CAKE_MEMORY,
764   TCA_CAKE_NAT,
765   TCA_CAKE_RAW,
766   TCA_CAKE_WASH,
767   TCA_CAKE_MPU,
768   TCA_CAKE_INGRESS,
769   TCA_CAKE_ACK_FILTER,
770   TCA_CAKE_SPLIT_GSO,
771   __TCA_CAKE_MAX
772 };
773 #define TCA_CAKE_MAX (__TCA_CAKE_MAX - 1)
774 enum {
775   __TCA_CAKE_STATS_INVALID,
776   TCA_CAKE_STATS_PAD,
777   TCA_CAKE_STATS_CAPACITY_ESTIMATE64,
778   TCA_CAKE_STATS_MEMORY_LIMIT,
779   TCA_CAKE_STATS_MEMORY_USED,
780   TCA_CAKE_STATS_AVG_NETOFF,
781   TCA_CAKE_STATS_MIN_NETLEN,
782   TCA_CAKE_STATS_MAX_NETLEN,
783   TCA_CAKE_STATS_MIN_ADJLEN,
784   TCA_CAKE_STATS_MAX_ADJLEN,
785   TCA_CAKE_STATS_TIN_STATS,
786   TCA_CAKE_STATS_DEFICIT,
787   TCA_CAKE_STATS_COBALT_COUNT,
788   TCA_CAKE_STATS_DROPPING,
789   TCA_CAKE_STATS_DROP_NEXT_US,
790   TCA_CAKE_STATS_P_DROP,
791   TCA_CAKE_STATS_BLUE_TIMER_US,
792   __TCA_CAKE_STATS_MAX
793 };
794 #define TCA_CAKE_STATS_MAX (__TCA_CAKE_STATS_MAX - 1)
795 enum {
796   __TCA_CAKE_TIN_STATS_INVALID,
797   TCA_CAKE_TIN_STATS_PAD,
798   TCA_CAKE_TIN_STATS_SENT_PACKETS,
799   TCA_CAKE_TIN_STATS_SENT_BYTES64,
800   TCA_CAKE_TIN_STATS_DROPPED_PACKETS,
801   TCA_CAKE_TIN_STATS_DROPPED_BYTES64,
802   TCA_CAKE_TIN_STATS_ACKS_DROPPED_PACKETS,
803   TCA_CAKE_TIN_STATS_ACKS_DROPPED_BYTES64,
804   TCA_CAKE_TIN_STATS_ECN_MARKED_PACKETS,
805   TCA_CAKE_TIN_STATS_ECN_MARKED_BYTES64,
806   TCA_CAKE_TIN_STATS_BACKLOG_PACKETS,
807   TCA_CAKE_TIN_STATS_BACKLOG_BYTES,
808   TCA_CAKE_TIN_STATS_THRESHOLD_RATE64,
809   TCA_CAKE_TIN_STATS_TARGET_US,
810   TCA_CAKE_TIN_STATS_INTERVAL_US,
811   TCA_CAKE_TIN_STATS_WAY_INDIRECT_HITS,
812   TCA_CAKE_TIN_STATS_WAY_MISSES,
813   TCA_CAKE_TIN_STATS_WAY_COLLISIONS,
814   TCA_CAKE_TIN_STATS_PEAK_DELAY_US,
815   TCA_CAKE_TIN_STATS_AVG_DELAY_US,
816   TCA_CAKE_TIN_STATS_BASE_DELAY_US,
817   TCA_CAKE_TIN_STATS_SPARSE_FLOWS,
818   TCA_CAKE_TIN_STATS_BULK_FLOWS,
819   TCA_CAKE_TIN_STATS_UNRESPONSIVE_FLOWS,
820   TCA_CAKE_TIN_STATS_MAX_SKBLEN,
821   TCA_CAKE_TIN_STATS_FLOW_QUANTUM,
822   __TCA_CAKE_TIN_STATS_MAX
823 };
824 #define TCA_CAKE_TIN_STATS_MAX (__TCA_CAKE_TIN_STATS_MAX - 1)
825 #define TC_CAKE_MAX_TINS (8)
826 enum {
827   CAKE_FLOW_NONE = 0,
828   CAKE_FLOW_SRC_IP,
829   CAKE_FLOW_DST_IP,
830   CAKE_FLOW_HOSTS,
831   CAKE_FLOW_FLOWS,
832   CAKE_FLOW_DUAL_SRC,
833   CAKE_FLOW_DUAL_DST,
834   CAKE_FLOW_TRIPLE,
835   CAKE_FLOW_MAX,
836 };
837 enum {
838   CAKE_DIFFSERV_DIFFSERV3 = 0,
839   CAKE_DIFFSERV_DIFFSERV4,
840   CAKE_DIFFSERV_DIFFSERV8,
841   CAKE_DIFFSERV_BESTEFFORT,
842   CAKE_DIFFSERV_PRECEDENCE,
843   CAKE_DIFFSERV_MAX
844 };
845 enum {
846   CAKE_ACK_NONE = 0,
847   CAKE_ACK_FILTER,
848   CAKE_ACK_AGGRESSIVE,
849   CAKE_ACK_MAX
850 };
851 enum {
852   CAKE_ATM_NONE = 0,
853   CAKE_ATM_ATM,
854   CAKE_ATM_PTM,
855   CAKE_ATM_MAX
856 };
857 enum {
858   TC_TAPRIO_CMD_SET_GATES = 0x00,
859   TC_TAPRIO_CMD_SET_AND_HOLD = 0x01,
860   TC_TAPRIO_CMD_SET_AND_RELEASE = 0x02,
861 };
862 enum {
863   TCA_TAPRIO_SCHED_ENTRY_UNSPEC,
864   TCA_TAPRIO_SCHED_ENTRY_INDEX,
865   TCA_TAPRIO_SCHED_ENTRY_CMD,
866   TCA_TAPRIO_SCHED_ENTRY_GATE_MASK,
867   TCA_TAPRIO_SCHED_ENTRY_INTERVAL,
868   __TCA_TAPRIO_SCHED_ENTRY_MAX,
869 };
870 #define TCA_TAPRIO_SCHED_ENTRY_MAX (__TCA_TAPRIO_SCHED_ENTRY_MAX - 1)
871 enum {
872   TCA_TAPRIO_SCHED_UNSPEC,
873   TCA_TAPRIO_SCHED_ENTRY,
874   __TCA_TAPRIO_SCHED_MAX,
875 };
876 #define TCA_TAPRIO_SCHED_MAX (__TCA_TAPRIO_SCHED_MAX - 1)
877 enum {
878   TCA_TAPRIO_ATTR_UNSPEC,
879   TCA_TAPRIO_ATTR_PRIOMAP,
880   TCA_TAPRIO_ATTR_SCHED_ENTRY_LIST,
881   TCA_TAPRIO_ATTR_SCHED_BASE_TIME,
882   TCA_TAPRIO_ATTR_SCHED_SINGLE_ENTRY,
883   TCA_TAPRIO_ATTR_SCHED_CLOCKID,
884   TCA_TAPRIO_PAD,
885   __TCA_TAPRIO_ATTR_MAX,
886 };
887 #define TCA_TAPRIO_ATTR_MAX (__TCA_TAPRIO_ATTR_MAX - 1)
888 #endif
889