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