Home | History | Annotate | Download | only in linux
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef __LINUX_PKT_SCHED_H
     20 #define __LINUX_PKT_SCHED_H
     21 #include <linux/types.h>
     22 #define TC_PRIO_BESTEFFORT 0
     23 #define TC_PRIO_FILLER 1
     24 #define TC_PRIO_BULK 2
     25 #define TC_PRIO_INTERACTIVE_BULK 4
     26 #define TC_PRIO_INTERACTIVE 6
     27 #define TC_PRIO_CONTROL 7
     28 #define TC_PRIO_MAX 15
     29 struct tc_stats {
     30   __u64 bytes;
     31   __u32 packets;
     32   __u32 drops;
     33   __u32 overlimits;
     34   __u32 bps;
     35   __u32 pps;
     36   __u32 qlen;
     37   __u32 backlog;
     38 };
     39 struct tc_estimator {
     40   signed char interval;
     41   unsigned char ewma_log;
     42 };
     43 #define TC_H_MAJ_MASK (0xFFFF0000U)
     44 #define TC_H_MIN_MASK (0x0000FFFFU)
     45 #define TC_H_MAJ(h) ((h) & TC_H_MAJ_MASK)
     46 #define TC_H_MIN(h) ((h) & TC_H_MIN_MASK)
     47 #define TC_H_MAKE(maj,min) (((maj) & TC_H_MAJ_MASK) | ((min) & TC_H_MIN_MASK))
     48 #define TC_H_UNSPEC (0U)
     49 #define TC_H_ROOT (0xFFFFFFFFU)
     50 #define TC_H_INGRESS (0xFFFFFFF1U)
     51 #define TC_H_CLSACT TC_H_INGRESS
     52 #define TC_H_MIN_PRIORITY 0xFFE0U
     53 #define TC_H_MIN_INGRESS 0xFFF2U
     54 #define TC_H_MIN_EGRESS 0xFFF3U
     55 enum tc_link_layer {
     56   TC_LINKLAYER_UNAWARE,
     57   TC_LINKLAYER_ETHERNET,
     58   TC_LINKLAYER_ATM,
     59 };
     60 #define TC_LINKLAYER_MASK 0x0F
     61 struct tc_ratespec {
     62   unsigned char cell_log;
     63   __u8 linklayer;
     64   unsigned short overhead;
     65   short cell_align;
     66   unsigned short mpu;
     67   __u32 rate;
     68 };
     69 #define TC_RTAB_SIZE 1024
     70 struct tc_sizespec {
     71   unsigned char cell_log;
     72   unsigned char size_log;
     73   short cell_align;
     74   int overhead;
     75   unsigned int linklayer;
     76   unsigned int mpu;
     77   unsigned int mtu;
     78   unsigned int tsize;
     79 };
     80 enum {
     81   TCA_STAB_UNSPEC,
     82   TCA_STAB_BASE,
     83   TCA_STAB_DATA,
     84   __TCA_STAB_MAX
     85 };
     86 #define TCA_STAB_MAX (__TCA_STAB_MAX - 1)
     87 struct tc_fifo_qopt {
     88   __u32 limit;
     89 };
     90 #define TCQ_PRIO_BANDS 16
     91 #define TCQ_MIN_PRIO_BANDS 2
     92 struct tc_prio_qopt {
     93   int bands;
     94   __u8 priomap[TC_PRIO_MAX + 1];
     95 };
     96 struct tc_multiq_qopt {
     97   __u16 bands;
     98   __u16 max_bands;
     99 };
    100 #define TCQ_PLUG_BUFFER 0
    101 #define TCQ_PLUG_RELEASE_ONE 1
    102 #define TCQ_PLUG_RELEASE_INDEFINITE 2
    103 #define TCQ_PLUG_LIMIT 3
    104 struct tc_plug_qopt {
    105   int action;
    106   __u32 limit;
    107 };
    108 struct tc_tbf_qopt {
    109   struct tc_ratespec rate;
    110   struct tc_ratespec peakrate;
    111   __u32 limit;
    112   __u32 buffer;
    113   __u32 mtu;
    114 };
    115 enum {
    116   TCA_TBF_UNSPEC,
    117   TCA_TBF_PARMS,
    118   TCA_TBF_RTAB,
    119   TCA_TBF_PTAB,
    120   TCA_TBF_RATE64,
    121   TCA_TBF_PRATE64,
    122   TCA_TBF_BURST,
    123   TCA_TBF_PBURST,
    124   TCA_TBF_PAD,
    125   __TCA_TBF_MAX,
    126 };
    127 #define TCA_TBF_MAX (__TCA_TBF_MAX - 1)
    128 struct tc_sfq_qopt {
    129   unsigned quantum;
    130   int perturb_period;
    131   __u32 limit;
    132   unsigned divisor;
    133   unsigned flows;
    134 };
    135 struct tc_sfqred_stats {
    136   __u32 prob_drop;
    137   __u32 forced_drop;
    138   __u32 prob_mark;
    139   __u32 forced_mark;
    140   __u32 prob_mark_head;
    141   __u32 forced_mark_head;
    142 };
    143 struct tc_sfq_qopt_v1 {
    144   struct tc_sfq_qopt v0;
    145   unsigned int depth;
    146   unsigned int headdrop;
    147   __u32 limit;
    148   __u32 qth_min;
    149   __u32 qth_max;
    150   unsigned char Wlog;
    151   unsigned char Plog;
    152   unsigned char Scell_log;
    153   unsigned char flags;
    154   __u32 max_P;
    155   struct tc_sfqred_stats stats;
    156 };
    157 struct tc_sfq_xstats {
    158   __s32 allot;
    159 };
    160 enum {
    161   TCA_RED_UNSPEC,
    162   TCA_RED_PARMS,
    163   TCA_RED_STAB,
    164   TCA_RED_MAX_P,
    165   __TCA_RED_MAX,
    166 };
    167 #define TCA_RED_MAX (__TCA_RED_MAX - 1)
    168 struct tc_red_qopt {
    169   __u32 limit;
    170   __u32 qth_min;
    171   __u32 qth_max;
    172   unsigned char Wlog;
    173   unsigned char Plog;
    174   unsigned char Scell_log;
    175   unsigned char flags;
    176 #define TC_RED_ECN 1
    177 #define TC_RED_HARDDROP 2
    178 #define TC_RED_ADAPTATIVE 4
    179 };
    180 struct tc_red_xstats {
    181   __u32 early;
    182   __u32 pdrop;
    183   __u32 other;
    184   __u32 marked;
    185 };
    186 #define MAX_DPs 16
    187 enum {
    188   TCA_GRED_UNSPEC,
    189   TCA_GRED_PARMS,
    190   TCA_GRED_STAB,
    191   TCA_GRED_DPS,
    192   TCA_GRED_MAX_P,
    193   TCA_GRED_LIMIT,
    194   __TCA_GRED_MAX,
    195 };
    196 #define TCA_GRED_MAX (__TCA_GRED_MAX - 1)
    197 struct tc_gred_qopt {
    198   __u32 limit;
    199   __u32 qth_min;
    200   __u32 qth_max;
    201   __u32 DP;
    202   __u32 backlog;
    203   __u32 qave;
    204   __u32 forced;
    205   __u32 early;
    206   __u32 other;
    207   __u32 pdrop;
    208   __u8 Wlog;
    209   __u8 Plog;
    210   __u8 Scell_log;
    211   __u8 prio;
    212   __u32 packets;
    213   __u32 bytesin;
    214 };
    215 struct tc_gred_sopt {
    216   __u32 DPs;
    217   __u32 def_DP;
    218   __u8 grio;
    219   __u8 flags;
    220   __u16 pad1;
    221 };
    222 enum {
    223   TCA_CHOKE_UNSPEC,
    224   TCA_CHOKE_PARMS,
    225   TCA_CHOKE_STAB,
    226   TCA_CHOKE_MAX_P,
    227   __TCA_CHOKE_MAX,
    228 };
    229 #define TCA_CHOKE_MAX (__TCA_CHOKE_MAX - 1)
    230 struct tc_choke_qopt {
    231   __u32 limit;
    232   __u32 qth_min;
    233   __u32 qth_max;
    234   unsigned char Wlog;
    235   unsigned char Plog;
    236   unsigned char Scell_log;
    237   unsigned char flags;
    238 };
    239 struct tc_choke_xstats {
    240   __u32 early;
    241   __u32 pdrop;
    242   __u32 other;
    243   __u32 marked;
    244   __u32 matched;
    245 };
    246 #define TC_HTB_NUMPRIO 8
    247 #define TC_HTB_MAXDEPTH 8
    248 #define TC_HTB_PROTOVER 3
    249 struct tc_htb_opt {
    250   struct tc_ratespec rate;
    251   struct tc_ratespec ceil;
    252   __u32 buffer;
    253   __u32 cbuffer;
    254   __u32 quantum;
    255   __u32 level;
    256   __u32 prio;
    257 };
    258 struct tc_htb_glob {
    259   __u32 version;
    260   __u32 rate2quantum;
    261   __u32 defcls;
    262   __u32 debug;
    263   __u32 direct_pkts;
    264 };
    265 enum {
    266   TCA_HTB_UNSPEC,
    267   TCA_HTB_PARMS,
    268   TCA_HTB_INIT,
    269   TCA_HTB_CTAB,
    270   TCA_HTB_RTAB,
    271   TCA_HTB_DIRECT_QLEN,
    272   TCA_HTB_RATE64,
    273   TCA_HTB_CEIL64,
    274   TCA_HTB_PAD,
    275   __TCA_HTB_MAX,
    276 };
    277 #define TCA_HTB_MAX (__TCA_HTB_MAX - 1)
    278 struct tc_htb_xstats {
    279   __u32 lends;
    280   __u32 borrows;
    281   __u32 giants;
    282   __u32 tokens;
    283   __u32 ctokens;
    284 };
    285 struct tc_hfsc_qopt {
    286   __u16 defcls;
    287 };
    288 struct tc_service_curve {
    289   __u32 m1;
    290   __u32 d;
    291   __u32 m2;
    292 };
    293 struct tc_hfsc_stats {
    294   __u64 work;
    295   __u64 rtwork;
    296   __u32 period;
    297   __u32 level;
    298 };
    299 enum {
    300   TCA_HFSC_UNSPEC,
    301   TCA_HFSC_RSC,
    302   TCA_HFSC_FSC,
    303   TCA_HFSC_USC,
    304   __TCA_HFSC_MAX,
    305 };
    306 #define TCA_HFSC_MAX (__TCA_HFSC_MAX - 1)
    307 #define TC_CBQ_MAXPRIO 8
    308 #define TC_CBQ_MAXLEVEL 8
    309 #define TC_CBQ_DEF_EWMA 5
    310 struct tc_cbq_lssopt {
    311   unsigned char change;
    312   unsigned char flags;
    313 #define TCF_CBQ_LSS_BOUNDED 1
    314 #define TCF_CBQ_LSS_ISOLATED 2
    315   unsigned char ewma_log;
    316   unsigned char level;
    317 #define TCF_CBQ_LSS_FLAGS 1
    318 #define TCF_CBQ_LSS_EWMA 2
    319 #define TCF_CBQ_LSS_MAXIDLE 4
    320 #define TCF_CBQ_LSS_MINIDLE 8
    321 #define TCF_CBQ_LSS_OFFTIME 0x10
    322 #define TCF_CBQ_LSS_AVPKT 0x20
    323   __u32 maxidle;
    324   __u32 minidle;
    325   __u32 offtime;
    326   __u32 avpkt;
    327 };
    328 struct tc_cbq_wrropt {
    329   unsigned char flags;
    330   unsigned char priority;
    331   unsigned char cpriority;
    332   unsigned char __reserved;
    333   __u32 allot;
    334   __u32 weight;
    335 };
    336 struct tc_cbq_ovl {
    337   unsigned char strategy;
    338 #define TC_CBQ_OVL_CLASSIC 0
    339 #define TC_CBQ_OVL_DELAY 1
    340 #define TC_CBQ_OVL_LOWPRIO 2
    341 #define TC_CBQ_OVL_DROP 3
    342 #define TC_CBQ_OVL_RCLASSIC 4
    343   unsigned char priority2;
    344   __u16 pad;
    345   __u32 penalty;
    346 };
    347 struct tc_cbq_police {
    348   unsigned char police;
    349   unsigned char __res1;
    350   unsigned short __res2;
    351 };
    352 struct tc_cbq_fopt {
    353   __u32 split;
    354   __u32 defmap;
    355   __u32 defchange;
    356 };
    357 struct tc_cbq_xstats {
    358   __u32 borrows;
    359   __u32 overactions;
    360   __s32 avgidle;
    361   __s32 undertime;
    362 };
    363 enum {
    364   TCA_CBQ_UNSPEC,
    365   TCA_CBQ_LSSOPT,
    366   TCA_CBQ_WRROPT,
    367   TCA_CBQ_FOPT,
    368   TCA_CBQ_OVL_STRATEGY,
    369   TCA_CBQ_RATE,
    370   TCA_CBQ_RTAB,
    371   TCA_CBQ_POLICE,
    372   __TCA_CBQ_MAX,
    373 };
    374 #define TCA_CBQ_MAX (__TCA_CBQ_MAX - 1)
    375 enum {
    376   TCA_DSMARK_UNSPEC,
    377   TCA_DSMARK_INDICES,
    378   TCA_DSMARK_DEFAULT_INDEX,
    379   TCA_DSMARK_SET_TC_INDEX,
    380   TCA_DSMARK_MASK,
    381   TCA_DSMARK_VALUE,
    382   __TCA_DSMARK_MAX,
    383 };
    384 #define TCA_DSMARK_MAX (__TCA_DSMARK_MAX - 1)
    385 enum {
    386   TCA_ATM_UNSPEC,
    387   TCA_ATM_FD,
    388   TCA_ATM_PTR,
    389   TCA_ATM_HDR,
    390   TCA_ATM_EXCESS,
    391   TCA_ATM_ADDR,
    392   TCA_ATM_STATE,
    393   __TCA_ATM_MAX,
    394 };
    395 #define TCA_ATM_MAX (__TCA_ATM_MAX - 1)
    396 enum {
    397   TCA_NETEM_UNSPEC,
    398   TCA_NETEM_CORR,
    399   TCA_NETEM_DELAY_DIST,
    400   TCA_NETEM_REORDER,
    401   TCA_NETEM_CORRUPT,
    402   TCA_NETEM_LOSS,
    403   TCA_NETEM_RATE,
    404   TCA_NETEM_ECN,
    405   TCA_NETEM_RATE64,
    406   TCA_NETEM_PAD,
    407   TCA_NETEM_LATENCY64,
    408   TCA_NETEM_JITTER64,
    409   TCA_NETEM_SLOT,
    410   __TCA_NETEM_MAX,
    411 };
    412 #define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1)
    413 struct tc_netem_qopt {
    414   __u32 latency;
    415   __u32 limit;
    416   __u32 loss;
    417   __u32 gap;
    418   __u32 duplicate;
    419   __u32 jitter;
    420 };
    421 struct tc_netem_corr {
    422   __u32 delay_corr;
    423   __u32 loss_corr;
    424   __u32 dup_corr;
    425 };
    426 struct tc_netem_reorder {
    427   __u32 probability;
    428   __u32 correlation;
    429 };
    430 struct tc_netem_corrupt {
    431   __u32 probability;
    432   __u32 correlation;
    433 };
    434 struct tc_netem_rate {
    435   __u32 rate;
    436   __s32 packet_overhead;
    437   __u32 cell_size;
    438   __s32 cell_overhead;
    439 };
    440 struct tc_netem_slot {
    441   __s64 min_delay;
    442   __s64 max_delay;
    443   __s32 max_packets;
    444   __s32 max_bytes;
    445 };
    446 enum {
    447   NETEM_LOSS_UNSPEC,
    448   NETEM_LOSS_GI,
    449   NETEM_LOSS_GE,
    450   __NETEM_LOSS_MAX
    451 };
    452 #define NETEM_LOSS_MAX (__NETEM_LOSS_MAX - 1)
    453 struct tc_netem_gimodel {
    454   __u32 p13;
    455   __u32 p31;
    456   __u32 p32;
    457   __u32 p14;
    458   __u32 p23;
    459 };
    460 struct tc_netem_gemodel {
    461   __u32 p;
    462   __u32 r;
    463   __u32 h;
    464   __u32 k1;
    465 };
    466 #define NETEM_DIST_SCALE 8192
    467 #define NETEM_DIST_MAX 16384
    468 enum {
    469   TCA_DRR_UNSPEC,
    470   TCA_DRR_QUANTUM,
    471   __TCA_DRR_MAX
    472 };
    473 #define TCA_DRR_MAX (__TCA_DRR_MAX - 1)
    474 struct tc_drr_stats {
    475   __u32 deficit;
    476 };
    477 #define TC_QOPT_BITMASK 15
    478 #define TC_QOPT_MAX_QUEUE 16
    479 enum {
    480   TC_MQPRIO_HW_OFFLOAD_NONE,
    481   TC_MQPRIO_HW_OFFLOAD_TCS,
    482   __TC_MQPRIO_HW_OFFLOAD_MAX
    483 };
    484 #define TC_MQPRIO_HW_OFFLOAD_MAX (__TC_MQPRIO_HW_OFFLOAD_MAX - 1)
    485 enum {
    486   TC_MQPRIO_MODE_DCB,
    487   TC_MQPRIO_MODE_CHANNEL,
    488   __TC_MQPRIO_MODE_MAX
    489 };
    490 #define __TC_MQPRIO_MODE_MAX (__TC_MQPRIO_MODE_MAX - 1)
    491 enum {
    492   TC_MQPRIO_SHAPER_DCB,
    493   TC_MQPRIO_SHAPER_BW_RATE,
    494   __TC_MQPRIO_SHAPER_MAX
    495 };
    496 #define __TC_MQPRIO_SHAPER_MAX (__TC_MQPRIO_SHAPER_MAX - 1)
    497 struct tc_mqprio_qopt {
    498   __u8 num_tc;
    499   __u8 prio_tc_map[TC_QOPT_BITMASK + 1];
    500   __u8 hw;
    501   __u16 count[TC_QOPT_MAX_QUEUE];
    502   __u16 offset[TC_QOPT_MAX_QUEUE];
    503 };
    504 #define TC_MQPRIO_F_MODE 0x1
    505 #define TC_MQPRIO_F_SHAPER 0x2
    506 #define TC_MQPRIO_F_MIN_RATE 0x4
    507 #define TC_MQPRIO_F_MAX_RATE 0x8
    508 enum {
    509   TCA_MQPRIO_UNSPEC,
    510   TCA_MQPRIO_MODE,
    511   TCA_MQPRIO_SHAPER,
    512   TCA_MQPRIO_MIN_RATE64,
    513   TCA_MQPRIO_MAX_RATE64,
    514   __TCA_MQPRIO_MAX,
    515 };
    516 #define TCA_MQPRIO_MAX (__TCA_MQPRIO_MAX - 1)
    517 enum {
    518   TCA_SFB_UNSPEC,
    519   TCA_SFB_PARMS,
    520   __TCA_SFB_MAX,
    521 };
    522 #define TCA_SFB_MAX (__TCA_SFB_MAX - 1)
    523 struct tc_sfb_qopt {
    524   __u32 rehash_interval;
    525   __u32 warmup_time;
    526   __u32 max;
    527   __u32 bin_size;
    528   __u32 increment;
    529   __u32 decrement;
    530   __u32 limit;
    531   __u32 penalty_rate;
    532   __u32 penalty_burst;
    533 };
    534 struct tc_sfb_xstats {
    535   __u32 earlydrop;
    536   __u32 penaltydrop;
    537   __u32 bucketdrop;
    538   __u32 queuedrop;
    539   __u32 childdrop;
    540   __u32 marked;
    541   __u32 maxqlen;
    542   __u32 maxprob;
    543   __u32 avgprob;
    544 };
    545 #define SFB_MAX_PROB 0xFFFF
    546 enum {
    547   TCA_QFQ_UNSPEC,
    548   TCA_QFQ_WEIGHT,
    549   TCA_QFQ_LMAX,
    550   __TCA_QFQ_MAX
    551 };
    552 #define TCA_QFQ_MAX (__TCA_QFQ_MAX - 1)
    553 struct tc_qfq_stats {
    554   __u32 weight;
    555   __u32 lmax;
    556 };
    557 enum {
    558   TCA_CODEL_UNSPEC,
    559   TCA_CODEL_TARGET,
    560   TCA_CODEL_LIMIT,
    561   TCA_CODEL_INTERVAL,
    562   TCA_CODEL_ECN,
    563   TCA_CODEL_CE_THRESHOLD,
    564   __TCA_CODEL_MAX
    565 };
    566 #define TCA_CODEL_MAX (__TCA_CODEL_MAX - 1)
    567 struct tc_codel_xstats {
    568   __u32 maxpacket;
    569   __u32 count;
    570   __u32 lastcount;
    571   __u32 ldelay;
    572   __s32 drop_next;
    573   __u32 drop_overlimit;
    574   __u32 ecn_mark;
    575   __u32 dropping;
    576   __u32 ce_mark;
    577 };
    578 enum {
    579   TCA_FQ_CODEL_UNSPEC,
    580   TCA_FQ_CODEL_TARGET,
    581   TCA_FQ_CODEL_LIMIT,
    582   TCA_FQ_CODEL_INTERVAL,
    583   TCA_FQ_CODEL_ECN,
    584   TCA_FQ_CODEL_FLOWS,
    585   TCA_FQ_CODEL_QUANTUM,
    586   TCA_FQ_CODEL_CE_THRESHOLD,
    587   TCA_FQ_CODEL_DROP_BATCH_SIZE,
    588   TCA_FQ_CODEL_MEMORY_LIMIT,
    589   __TCA_FQ_CODEL_MAX
    590 };
    591 #define TCA_FQ_CODEL_MAX (__TCA_FQ_CODEL_MAX - 1)
    592 enum {
    593   TCA_FQ_CODEL_XSTATS_QDISC,
    594   TCA_FQ_CODEL_XSTATS_CLASS,
    595 };
    596 struct tc_fq_codel_qd_stats {
    597   __u32 maxpacket;
    598   __u32 drop_overlimit;
    599   __u32 ecn_mark;
    600   __u32 new_flow_count;
    601   __u32 new_flows_len;
    602   __u32 old_flows_len;
    603   __u32 ce_mark;
    604   __u32 memory_usage;
    605   __u32 drop_overmemory;
    606 };
    607 struct tc_fq_codel_cl_stats {
    608   __s32 deficit;
    609   __u32 ldelay;
    610   __u32 count;
    611   __u32 lastcount;
    612   __u32 dropping;
    613   __s32 drop_next;
    614 };
    615 struct tc_fq_codel_xstats {
    616   __u32 type;
    617   union {
    618     struct tc_fq_codel_qd_stats qdisc_stats;
    619     struct tc_fq_codel_cl_stats class_stats;
    620   };
    621 };
    622 enum {
    623   TCA_FQ_UNSPEC,
    624   TCA_FQ_PLIMIT,
    625   TCA_FQ_FLOW_PLIMIT,
    626   TCA_FQ_QUANTUM,
    627   TCA_FQ_INITIAL_QUANTUM,
    628   TCA_FQ_RATE_ENABLE,
    629   TCA_FQ_FLOW_DEFAULT_RATE,
    630   TCA_FQ_FLOW_MAX_RATE,
    631   TCA_FQ_BUCKETS_LOG,
    632   TCA_FQ_FLOW_REFILL_DELAY,
    633   TCA_FQ_ORPHAN_MASK,
    634   TCA_FQ_LOW_RATE_THRESHOLD,
    635   __TCA_FQ_MAX
    636 };
    637 #define TCA_FQ_MAX (__TCA_FQ_MAX - 1)
    638 struct tc_fq_qd_stats {
    639   __u64 gc_flows;
    640   __u64 highprio_packets;
    641   __u64 tcp_retrans;
    642   __u64 throttled;
    643   __u64 flows_plimit;
    644   __u64 pkts_too_long;
    645   __u64 allocation_errors;
    646   __s64 time_next_delayed_flow;
    647   __u32 flows;
    648   __u32 inactive_flows;
    649   __u32 throttled_flows;
    650   __u32 unthrottle_latency_ns;
    651 };
    652 enum {
    653   TCA_HHF_UNSPEC,
    654   TCA_HHF_BACKLOG_LIMIT,
    655   TCA_HHF_QUANTUM,
    656   TCA_HHF_HH_FLOWS_LIMIT,
    657   TCA_HHF_RESET_TIMEOUT,
    658   TCA_HHF_ADMIT_BYTES,
    659   TCA_HHF_EVICT_TIMEOUT,
    660   TCA_HHF_NON_HH_WEIGHT,
    661   __TCA_HHF_MAX
    662 };
    663 #define TCA_HHF_MAX (__TCA_HHF_MAX - 1)
    664 struct tc_hhf_xstats {
    665   __u32 drop_overlimit;
    666   __u32 hh_overlimit;
    667   __u32 hh_tot_count;
    668   __u32 hh_cur_count;
    669 };
    670 enum {
    671   TCA_PIE_UNSPEC,
    672   TCA_PIE_TARGET,
    673   TCA_PIE_LIMIT,
    674   TCA_PIE_TUPDATE,
    675   TCA_PIE_ALPHA,
    676   TCA_PIE_BETA,
    677   TCA_PIE_ECN,
    678   TCA_PIE_BYTEMODE,
    679   __TCA_PIE_MAX
    680 };
    681 #define TCA_PIE_MAX (__TCA_PIE_MAX - 1)
    682 struct tc_pie_xstats {
    683   __u32 prob;
    684   __u32 delay;
    685   __u32 avg_dq_rate;
    686   __u32 packets_in;
    687   __u32 dropped;
    688   __u32 overlimit;
    689   __u32 maxq;
    690   __u32 ecn_mark;
    691 };
    692 struct tc_cbs_qopt {
    693   __u8 offload;
    694   __u8 _pad[3];
    695   __s32 hicredit;
    696   __s32 locredit;
    697   __s32 idleslope;
    698   __s32 sendslope;
    699 };
    700 enum {
    701   TCA_CBS_UNSPEC,
    702   TCA_CBS_PARMS,
    703   __TCA_CBS_MAX,
    704 };
    705 #define TCA_CBS_MAX (__TCA_CBS_MAX - 1)
    706 #endif
    707