blob: 0b2966a34999ae148e4b535aa3df7a560b21c049 [file] [log] [blame]
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08001/****************************************************************************
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
San Mehat91638722010-04-06 18:49:49 -070015#include <linux/types.h>
16
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080017#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
26struct 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
38struct 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
54struct tc_ratespec
55{
56 unsigned char cell_log;
57 unsigned char __reserved;
San Mehat91638722010-04-06 18:49:49 -070058 unsigned short overhead;
59 short cell_align;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080060 unsigned short mpu;
61 __u32 rate;
62};
63
San Mehat91638722010-04-06 18:49:49 -070064#define TC_RTAB_SIZE 1024
65
66struct 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
77enum {
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
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080086struct tc_fifo_qopt
87{
88 __u32 limit;
89};
90
91#define TCQ_PRIO_BANDS 16
92#define TCQ_MIN_PRIO_BANDS 2
93
94struct tc_prio_qopt
95{
96 int bands;
97 __u8 priomap[TC_PRIO_MAX+1];
98};
99
San Mehat91638722010-04-06 18:49:49 -0700100struct tc_multiq_qopt {
101 __u16 bands;
102 __u16 max_bands;
103};
104
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800105struct 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
114enum
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
125struct tc_sfq_qopt
126{
127 unsigned quantum;
128 int perturb_period;
129 __u32 limit;
130 unsigned divisor;
131 unsigned flows;
132};
133
San Mehat91638722010-04-06 18:49:49 -0700134struct tc_sfq_xstats
135{
136 __s32 allot;
137};
138
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800139enum
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
149struct 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
162struct tc_red_xstats
163{
164 __u32 early;
165 __u32 pdrop;
166 __u32 other;
167 __u32 marked;
168};
169
170#define MAX_DPs 16
171
172enum
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
183struct 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
203struct 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
216struct 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};
226struct tc_htb_glob
227{
228 __u32 version;
229 __u32 rate2quantum;
230 __u32 defcls;
231 __u32 debug;
232
233 __u32 direct_pkts;
234};
235enum
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
247struct tc_htb_xstats
248{
249 __u32 lends;
250 __u32 borrows;
251 __u32 giants;
252 __u32 tokens;
253 __u32 ctokens;
254};
255
256struct tc_hfsc_qopt
257{
258 __u16 defcls;
259};
260
261struct tc_service_curve
262{
263 __u32 m1;
264 __u32 d;
265 __u32 m2;
266};
267
268struct tc_hfsc_stats
269{
270 __u64 work;
271 __u64 rtwork;
272 __u32 period;
273 __u32 level;
274};
275
276enum
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
291struct 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
311struct 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
321struct 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
334struct tc_cbq_police
335{
336 unsigned char police;
337 unsigned char __res1;
338 unsigned short __res2;
339};
340
341struct tc_cbq_fopt
342{
343 __u32 split;
344 __u32 defmap;
345 __u32 defchange;
346};
347
348struct tc_cbq_xstats
349{
350 __u32 borrows;
351 __u32 overactions;
352 __s32 avgidle;
353 __s32 undertime;
354};
355
356enum
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
371enum {
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
383enum {
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
396enum
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
408struct tc_netem_qopt
409{
410 __u32 latency;
411 __u32 limit;
412 __u32 loss;
413 __u32 gap;
414 __u32 duplicate;
415 __u32 jitter;
416};
417
418struct tc_netem_corr
419{
420 __u32 delay_corr;
421 __u32 loss_corr;
422 __u32 dup_corr;
423};
424
425struct tc_netem_reorder
426{
427 __u32 probability;
428 __u32 correlation;
429};
430
431struct tc_netem_corrupt
432{
433 __u32 probability;
434 __u32 correlation;
435};
436
437#define NETEM_DIST_SCALE 8192
438
San Mehat91638722010-04-06 18:49:49 -0700439enum
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
448struct tc_drr_stats
449{
450 __u32 deficit;
451};
452
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800453#endif