• 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  ****************************************************************************
11  ****************************************************************************/
12 #ifndef __LINUX_PKT_SCHED_H
13 #define __LINUX_PKT_SCHED_H
14 
15 #include <linux/types.h>
16 
17 #define TC_PRIO_BESTEFFORT 0
18 #define TC_PRIO_FILLER 1
19 #define TC_PRIO_BULK 2
20 #define TC_PRIO_INTERACTIVE_BULK 4
21 #define TC_PRIO_INTERACTIVE 6
22 #define TC_PRIO_CONTROL 7
23 
24 #define TC_PRIO_MAX 15
25 
26 struct tc_stats
27 {
28  __u64 bytes;
29  __u32 packets;
30  __u32 drops;
31  __u32 overlimits;
32  __u32 bps;
33  __u32 pps;
34  __u32 qlen;
35  __u32 backlog;
36 };
37 
38 struct tc_estimator
39 {
40  signed char interval;
41  unsigned char ewma_log;
42 };
43 
44 #define TC_H_MAJ_MASK (0xFFFF0000U)
45 #define TC_H_MIN_MASK (0x0000FFFFU)
46 #define TC_H_MAJ(h) ((h)&TC_H_MAJ_MASK)
47 #define TC_H_MIN(h) ((h)&TC_H_MIN_MASK)
48 #define TC_H_MAKE(maj,min) (((maj)&TC_H_MAJ_MASK)|((min)&TC_H_MIN_MASK))
49 
50 #define TC_H_UNSPEC (0U)
51 #define TC_H_ROOT (0xFFFFFFFFU)
52 #define TC_H_INGRESS (0xFFFFFFF1U)
53 
54 struct tc_ratespec
55 {
56  unsigned char cell_log;
57  unsigned char __reserved;
58  unsigned short overhead;
59  short cell_align;
60  unsigned short mpu;
61  __u32 rate;
62 };
63 
64 #define TC_RTAB_SIZE 1024
65 
66 struct tc_sizespec {
67  unsigned char cell_log;
68  unsigned char size_log;
69  short cell_align;
70  int overhead;
71  unsigned int linklayer;
72  unsigned int mpu;
73  unsigned int mtu;
74  unsigned int tsize;
75 };
76 
77 enum {
78  TCA_STAB_UNSPEC,
79  TCA_STAB_BASE,
80  TCA_STAB_DATA,
81  __TCA_STAB_MAX
82 };
83 
84 #define TCA_STAB_MAX (__TCA_STAB_MAX - 1)
85 
86 struct tc_fifo_qopt
87 {
88  __u32 limit;
89 };
90 
91 #define TCQ_PRIO_BANDS 16
92 #define TCQ_MIN_PRIO_BANDS 2
93 
94 struct tc_prio_qopt
95 {
96  int bands;
97  __u8 priomap[TC_PRIO_MAX+1];
98 };
99 
100 struct tc_multiq_qopt {
101  __u16 bands;
102  __u16 max_bands;
103 };
104 
105 struct tc_tbf_qopt
106 {
107  struct tc_ratespec rate;
108  struct tc_ratespec peakrate;
109  __u32 limit;
110  __u32 buffer;
111  __u32 mtu;
112 };
113 
114 enum
115 {
116  TCA_TBF_UNSPEC,
117  TCA_TBF_PARMS,
118  TCA_TBF_RTAB,
119  TCA_TBF_PTAB,
120  __TCA_TBF_MAX,
121 };
122 
123 #define TCA_TBF_MAX (__TCA_TBF_MAX - 1)
124 
125 struct tc_sfq_qopt
126 {
127  unsigned quantum;
128  int perturb_period;
129  __u32 limit;
130  unsigned divisor;
131  unsigned flows;
132 };
133 
134 struct tc_sfq_xstats
135 {
136  __s32 allot;
137 };
138 
139 enum
140 {
141  TCA_RED_UNSPEC,
142  TCA_RED_PARMS,
143  TCA_RED_STAB,
144  __TCA_RED_MAX,
145 };
146 
147 #define TCA_RED_MAX (__TCA_RED_MAX - 1)
148 
149 struct tc_red_qopt
150 {
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 #define TC_RED_ECN 1
159 #define TC_RED_HARDDROP 2
160 };
161 
162 struct tc_red_xstats
163 {
164  __u32 early;
165  __u32 pdrop;
166  __u32 other;
167  __u32 marked;
168 };
169 
170 #define MAX_DPs 16
171 
172 enum
173 {
174  TCA_GRED_UNSPEC,
175  TCA_GRED_PARMS,
176  TCA_GRED_STAB,
177  TCA_GRED_DPS,
178  __TCA_GRED_MAX,
179 };
180 
181 #define TCA_GRED_MAX (__TCA_GRED_MAX - 1)
182 
183 struct tc_gred_qopt
184 {
185  __u32 limit;
186  __u32 qth_min;
187  __u32 qth_max;
188  __u32 DP;
189  __u32 backlog;
190  __u32 qave;
191  __u32 forced;
192  __u32 early;
193  __u32 other;
194  __u32 pdrop;
195  __u8 Wlog;
196  __u8 Plog;
197  __u8 Scell_log;
198  __u8 prio;
199  __u32 packets;
200  __u32 bytesin;
201 };
202 
203 struct tc_gred_sopt
204 {
205  __u32 DPs;
206  __u32 def_DP;
207  __u8 grio;
208  __u8 flags;
209  __u16 pad1;
210 };
211 
212 #define TC_HTB_NUMPRIO 8
213 #define TC_HTB_MAXDEPTH 8
214 #define TC_HTB_PROTOVER 3
215 
216 struct tc_htb_opt
217 {
218  struct tc_ratespec rate;
219  struct tc_ratespec ceil;
220  __u32 buffer;
221  __u32 cbuffer;
222  __u32 quantum;
223  __u32 level;
224  __u32 prio;
225 };
226 struct tc_htb_glob
227 {
228  __u32 version;
229  __u32 rate2quantum;
230  __u32 defcls;
231  __u32 debug;
232 
233  __u32 direct_pkts;
234 };
235 enum
236 {
237  TCA_HTB_UNSPEC,
238  TCA_HTB_PARMS,
239  TCA_HTB_INIT,
240  TCA_HTB_CTAB,
241  TCA_HTB_RTAB,
242  __TCA_HTB_MAX,
243 };
244 
245 #define TCA_HTB_MAX (__TCA_HTB_MAX - 1)
246 
247 struct tc_htb_xstats
248 {
249  __u32 lends;
250  __u32 borrows;
251  __u32 giants;
252  __u32 tokens;
253  __u32 ctokens;
254 };
255 
256 struct tc_hfsc_qopt
257 {
258  __u16 defcls;
259 };
260 
261 struct tc_service_curve
262 {
263  __u32 m1;
264  __u32 d;
265  __u32 m2;
266 };
267 
268 struct tc_hfsc_stats
269 {
270  __u64 work;
271  __u64 rtwork;
272  __u32 period;
273  __u32 level;
274 };
275 
276 enum
277 {
278  TCA_HFSC_UNSPEC,
279  TCA_HFSC_RSC,
280  TCA_HFSC_FSC,
281  TCA_HFSC_USC,
282  __TCA_HFSC_MAX,
283 };
284 
285 #define TCA_HFSC_MAX (__TCA_HFSC_MAX - 1)
286 
287 #define TC_CBQ_MAXPRIO 8
288 #define TC_CBQ_MAXLEVEL 8
289 #define TC_CBQ_DEF_EWMA 5
290 
291 struct tc_cbq_lssopt
292 {
293  unsigned char change;
294  unsigned char flags;
295 #define TCF_CBQ_LSS_BOUNDED 1
296 #define TCF_CBQ_LSS_ISOLATED 2
297  unsigned char ewma_log;
298  unsigned char level;
299 #define TCF_CBQ_LSS_FLAGS 1
300 #define TCF_CBQ_LSS_EWMA 2
301 #define TCF_CBQ_LSS_MAXIDLE 4
302 #define TCF_CBQ_LSS_MINIDLE 8
303 #define TCF_CBQ_LSS_OFFTIME 0x10
304 #define TCF_CBQ_LSS_AVPKT 0x20
305  __u32 maxidle;
306  __u32 minidle;
307  __u32 offtime;
308  __u32 avpkt;
309 };
310 
311 struct tc_cbq_wrropt
312 {
313  unsigned char flags;
314  unsigned char priority;
315  unsigned char cpriority;
316  unsigned char __reserved;
317  __u32 allot;
318  __u32 weight;
319 };
320 
321 struct tc_cbq_ovl
322 {
323  unsigned char strategy;
324 #define TC_CBQ_OVL_CLASSIC 0
325 #define TC_CBQ_OVL_DELAY 1
326 #define TC_CBQ_OVL_LOWPRIO 2
327 #define TC_CBQ_OVL_DROP 3
328 #define TC_CBQ_OVL_RCLASSIC 4
329  unsigned char priority2;
330  __u16 pad;
331  __u32 penalty;
332 };
333 
334 struct tc_cbq_police
335 {
336  unsigned char police;
337  unsigned char __res1;
338  unsigned short __res2;
339 };
340 
341 struct tc_cbq_fopt
342 {
343  __u32 split;
344  __u32 defmap;
345  __u32 defchange;
346 };
347 
348 struct tc_cbq_xstats
349 {
350  __u32 borrows;
351  __u32 overactions;
352  __s32 avgidle;
353  __s32 undertime;
354 };
355 
356 enum
357 {
358  TCA_CBQ_UNSPEC,
359  TCA_CBQ_LSSOPT,
360  TCA_CBQ_WRROPT,
361  TCA_CBQ_FOPT,
362  TCA_CBQ_OVL_STRATEGY,
363  TCA_CBQ_RATE,
364  TCA_CBQ_RTAB,
365  TCA_CBQ_POLICE,
366  __TCA_CBQ_MAX,
367 };
368 
369 #define TCA_CBQ_MAX (__TCA_CBQ_MAX - 1)
370 
371 enum {
372  TCA_DSMARK_UNSPEC,
373  TCA_DSMARK_INDICES,
374  TCA_DSMARK_DEFAULT_INDEX,
375  TCA_DSMARK_SET_TC_INDEX,
376  TCA_DSMARK_MASK,
377  TCA_DSMARK_VALUE,
378  __TCA_DSMARK_MAX,
379 };
380 
381 #define TCA_DSMARK_MAX (__TCA_DSMARK_MAX - 1)
382 
383 enum {
384  TCA_ATM_UNSPEC,
385  TCA_ATM_FD,
386  TCA_ATM_PTR,
387  TCA_ATM_HDR,
388  TCA_ATM_EXCESS,
389  TCA_ATM_ADDR,
390  TCA_ATM_STATE,
391  __TCA_ATM_MAX,
392 };
393 
394 #define TCA_ATM_MAX (__TCA_ATM_MAX - 1)
395 
396 enum
397 {
398  TCA_NETEM_UNSPEC,
399  TCA_NETEM_CORR,
400  TCA_NETEM_DELAY_DIST,
401  TCA_NETEM_REORDER,
402  TCA_NETEM_CORRUPT,
403  __TCA_NETEM_MAX,
404 };
405 
406 #define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1)
407 
408 struct tc_netem_qopt
409 {
410  __u32 latency;
411  __u32 limit;
412  __u32 loss;
413  __u32 gap;
414  __u32 duplicate;
415  __u32 jitter;
416 };
417 
418 struct tc_netem_corr
419 {
420  __u32 delay_corr;
421  __u32 loss_corr;
422  __u32 dup_corr;
423 };
424 
425 struct tc_netem_reorder
426 {
427  __u32 probability;
428  __u32 correlation;
429 };
430 
431 struct tc_netem_corrupt
432 {
433  __u32 probability;
434  __u32 correlation;
435 };
436 
437 #define NETEM_DIST_SCALE 8192
438 
439 enum
440 {
441  TCA_DRR_UNSPEC,
442  TCA_DRR_QUANTUM,
443  __TCA_DRR_MAX
444 };
445 
446 #define TCA_DRR_MAX (__TCA_DRR_MAX - 1)
447 
448 struct tc_drr_stats
449 {
450  __u32 deficit;
451 };
452 
453 #endif
454