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
Ben Cheng4b29af02012-03-07 16:14:53 -080014
San Mehat91638722010-04-06 18:49:49 -070015#include <linux/types.h>
Ben Cheng4b29af02012-03-07 16:14:53 -080016
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
Ben Cheng4b29af02012-03-07 16:14:53 -080023
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080024#define TC_PRIO_MAX 15
Ben Cheng4b29af02012-03-07 16:14:53 -080025
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080026struct 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};
Ben Cheng4b29af02012-03-07 16:14:53 -080037
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080038struct tc_estimator
39{
40 signed char interval;
41 unsigned char ewma_log;
42};
Ben Cheng4b29af02012-03-07 16:14:53 -080043
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080044#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))
Ben Cheng4b29af02012-03-07 16:14:53 -080049
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080050#define TC_H_UNSPEC (0U)
51#define TC_H_ROOT (0xFFFFFFFFU)
52#define TC_H_INGRESS (0xFFFFFFF1U)
Ben Cheng4b29af02012-03-07 16:14:53 -080053
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080054struct 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};
Ben Cheng4b29af02012-03-07 16:14:53 -080063
San Mehat91638722010-04-06 18:49:49 -070064#define TC_RTAB_SIZE 1024
Ben Cheng4b29af02012-03-07 16:14:53 -080065
San Mehat91638722010-04-06 18:49:49 -070066struct 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};
Ben Cheng4b29af02012-03-07 16:14:53 -080076
San Mehat91638722010-04-06 18:49:49 -070077enum {
78 TCA_STAB_UNSPEC,
79 TCA_STAB_BASE,
80 TCA_STAB_DATA,
81 __TCA_STAB_MAX
82};
Ben Cheng4b29af02012-03-07 16:14:53 -080083
San Mehat91638722010-04-06 18:49:49 -070084#define TCA_STAB_MAX (__TCA_STAB_MAX - 1)
Ben Cheng4b29af02012-03-07 16:14:53 -080085
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080086struct tc_fifo_qopt
87{
88 __u32 limit;
89};
Ben Cheng4b29af02012-03-07 16:14:53 -080090
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080091#define TCQ_PRIO_BANDS 16
92#define TCQ_MIN_PRIO_BANDS 2
Ben Cheng4b29af02012-03-07 16:14:53 -080093
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080094struct tc_prio_qopt
95{
96 int bands;
97 __u8 priomap[TC_PRIO_MAX+1];
98};
Ben Cheng4b29af02012-03-07 16:14:53 -080099
San Mehat91638722010-04-06 18:49:49 -0700100struct tc_multiq_qopt {
101 __u16 bands;
102 __u16 max_bands;
103};
Ben Cheng4b29af02012-03-07 16:14:53 -0800104
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};
Ben Cheng4b29af02012-03-07 16:14:53 -0800113
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800114enum
115{
116 TCA_TBF_UNSPEC,
117 TCA_TBF_PARMS,
118 TCA_TBF_RTAB,
119 TCA_TBF_PTAB,
120 __TCA_TBF_MAX,
121};
Ben Cheng4b29af02012-03-07 16:14:53 -0800122
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800123#define TCA_TBF_MAX (__TCA_TBF_MAX - 1)
Ben Cheng4b29af02012-03-07 16:14:53 -0800124
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800125struct tc_sfq_qopt
126{
127 unsigned quantum;
128 int perturb_period;
129 __u32 limit;
130 unsigned divisor;
131 unsigned flows;
132};
Ben Cheng4b29af02012-03-07 16:14:53 -0800133
San Mehat91638722010-04-06 18:49:49 -0700134struct tc_sfq_xstats
135{
136 __s32 allot;
137};
Ben Cheng4b29af02012-03-07 16:14:53 -0800138
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};
Ben Cheng4b29af02012-03-07 16:14:53 -0800146
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800147#define TCA_RED_MAX (__TCA_RED_MAX - 1)
Ben Cheng4b29af02012-03-07 16:14:53 -0800148
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800149struct 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};
Ben Cheng4b29af02012-03-07 16:14:53 -0800161
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800162struct tc_red_xstats
163{
164 __u32 early;
165 __u32 pdrop;
166 __u32 other;
167 __u32 marked;
168};
Ben Cheng4b29af02012-03-07 16:14:53 -0800169
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800170#define MAX_DPs 16
Ben Cheng4b29af02012-03-07 16:14:53 -0800171
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800172enum
173{
174 TCA_GRED_UNSPEC,
175 TCA_GRED_PARMS,
176 TCA_GRED_STAB,
177 TCA_GRED_DPS,
178 __TCA_GRED_MAX,
179};
Ben Cheng4b29af02012-03-07 16:14:53 -0800180
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800181#define TCA_GRED_MAX (__TCA_GRED_MAX - 1)
Ben Cheng4b29af02012-03-07 16:14:53 -0800182
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800183struct 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};
Ben Cheng4b29af02012-03-07 16:14:53 -0800202
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800203struct tc_gred_sopt
204{
205 __u32 DPs;
206 __u32 def_DP;
207 __u8 grio;
208 __u8 flags;
209 __u16 pad1;
210};
Ben Cheng4b29af02012-03-07 16:14:53 -0800211
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800212#define TC_HTB_NUMPRIO 8
213#define TC_HTB_MAXDEPTH 8
214#define TC_HTB_PROTOVER 3
Ben Cheng4b29af02012-03-07 16:14:53 -0800215
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800216struct 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;
Ben Cheng4b29af02012-03-07 16:14:53 -0800232
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800233 __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};
Ben Cheng4b29af02012-03-07 16:14:53 -0800244
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800245#define TCA_HTB_MAX (__TCA_HTB_MAX - 1)
Ben Cheng4b29af02012-03-07 16:14:53 -0800246
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800247struct tc_htb_xstats
248{
249 __u32 lends;
250 __u32 borrows;
251 __u32 giants;
252 __u32 tokens;
253 __u32 ctokens;
254};
Ben Cheng4b29af02012-03-07 16:14:53 -0800255
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800256struct tc_hfsc_qopt
257{
258 __u16 defcls;
259};
Ben Cheng4b29af02012-03-07 16:14:53 -0800260
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800261struct tc_service_curve
262{
263 __u32 m1;
264 __u32 d;
265 __u32 m2;
266};
Ben Cheng4b29af02012-03-07 16:14:53 -0800267
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800268struct tc_hfsc_stats
269{
270 __u64 work;
271 __u64 rtwork;
272 __u32 period;
273 __u32 level;
274};
Ben Cheng4b29af02012-03-07 16:14:53 -0800275
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800276enum
277{
278 TCA_HFSC_UNSPEC,
279 TCA_HFSC_RSC,
280 TCA_HFSC_FSC,
281 TCA_HFSC_USC,
282 __TCA_HFSC_MAX,
283};
Ben Cheng4b29af02012-03-07 16:14:53 -0800284
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800285#define TCA_HFSC_MAX (__TCA_HFSC_MAX - 1)
Ben Cheng4b29af02012-03-07 16:14:53 -0800286
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800287#define TC_CBQ_MAXPRIO 8
288#define TC_CBQ_MAXLEVEL 8
289#define TC_CBQ_DEF_EWMA 5
Ben Cheng4b29af02012-03-07 16:14:53 -0800290
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800291struct 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};
Ben Cheng4b29af02012-03-07 16:14:53 -0800310
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800311struct 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};
Ben Cheng4b29af02012-03-07 16:14:53 -0800320
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800321struct 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};
Ben Cheng4b29af02012-03-07 16:14:53 -0800333
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800334struct tc_cbq_police
335{
336 unsigned char police;
337 unsigned char __res1;
338 unsigned short __res2;
339};
Ben Cheng4b29af02012-03-07 16:14:53 -0800340
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800341struct tc_cbq_fopt
342{
343 __u32 split;
344 __u32 defmap;
345 __u32 defchange;
346};
Ben Cheng4b29af02012-03-07 16:14:53 -0800347
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800348struct tc_cbq_xstats
349{
350 __u32 borrows;
351 __u32 overactions;
352 __s32 avgidle;
353 __s32 undertime;
354};
Ben Cheng4b29af02012-03-07 16:14:53 -0800355
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800356enum
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};
Ben Cheng4b29af02012-03-07 16:14:53 -0800368
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800369#define TCA_CBQ_MAX (__TCA_CBQ_MAX - 1)
Ben Cheng4b29af02012-03-07 16:14:53 -0800370
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800371enum {
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};
Ben Cheng4b29af02012-03-07 16:14:53 -0800380
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800381#define TCA_DSMARK_MAX (__TCA_DSMARK_MAX - 1)
Ben Cheng4b29af02012-03-07 16:14:53 -0800382
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800383enum {
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};
Ben Cheng4b29af02012-03-07 16:14:53 -0800393
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800394#define TCA_ATM_MAX (__TCA_ATM_MAX - 1)
Ben Cheng4b29af02012-03-07 16:14:53 -0800395
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800396enum
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};
Ben Cheng4b29af02012-03-07 16:14:53 -0800405
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800406#define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1)
Ben Cheng4b29af02012-03-07 16:14:53 -0800407
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800408struct tc_netem_qopt
409{
410 __u32 latency;
411 __u32 limit;
412 __u32 loss;
413 __u32 gap;
414 __u32 duplicate;
415 __u32 jitter;
416};
Ben Cheng4b29af02012-03-07 16:14:53 -0800417
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800418struct tc_netem_corr
419{
420 __u32 delay_corr;
421 __u32 loss_corr;
422 __u32 dup_corr;
423};
Ben Cheng4b29af02012-03-07 16:14:53 -0800424
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800425struct tc_netem_reorder
426{
427 __u32 probability;
428 __u32 correlation;
429};
Ben Cheng4b29af02012-03-07 16:14:53 -0800430
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800431struct tc_netem_corrupt
432{
433 __u32 probability;
434 __u32 correlation;
435};
Ben Cheng4b29af02012-03-07 16:14:53 -0800436
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800437#define NETEM_DIST_SCALE 8192
Ben Cheng4b29af02012-03-07 16:14:53 -0800438
San Mehat91638722010-04-06 18:49:49 -0700439enum
440{
441 TCA_DRR_UNSPEC,
442 TCA_DRR_QUANTUM,
443 __TCA_DRR_MAX
444};
Ben Cheng4b29af02012-03-07 16:14:53 -0800445
San Mehat91638722010-04-06 18:49:49 -0700446#define TCA_DRR_MAX (__TCA_DRR_MAX - 1)
Ben Cheng4b29af02012-03-07 16:14:53 -0800447
San Mehat91638722010-04-06 18:49:49 -0700448struct tc_drr_stats
449{
450 __u32 deficit;
451};
Ben Cheng4b29af02012-03-07 16:14:53 -0800452
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800453#endif