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