| /**************************************************************************** |
| **************************************************************************** |
| *** |
| *** This header was automatically generated from a Linux kernel header |
| *** of the same name, to make information necessary for userspace to |
| *** call into the kernel available to libc. It contains only constants, |
| *** structures, and macros generated from the original header, and thus, |
| *** contains no copyrightable information. |
| *** |
| **************************************************************************** |
| ****************************************************************************/ |
| #ifndef __LINUX_PKT_SCHED_H |
| #define __LINUX_PKT_SCHED_H |
| |
| #define TC_PRIO_BESTEFFORT 0 |
| #define TC_PRIO_FILLER 1 |
| #define TC_PRIO_BULK 2 |
| #define TC_PRIO_INTERACTIVE_BULK 4 |
| #define TC_PRIO_INTERACTIVE 6 |
| #define TC_PRIO_CONTROL 7 |
| |
| #define TC_PRIO_MAX 15 |
| |
| struct tc_stats |
| { |
| __u64 bytes; |
| __u32 packets; |
| __u32 drops; |
| __u32 overlimits; |
| __u32 bps; |
| __u32 pps; |
| __u32 qlen; |
| __u32 backlog; |
| }; |
| |
| struct tc_estimator |
| { |
| signed char interval; |
| unsigned char ewma_log; |
| }; |
| |
| #define TC_H_MAJ_MASK (0xFFFF0000U) |
| #define TC_H_MIN_MASK (0x0000FFFFU) |
| #define TC_H_MAJ(h) ((h)&TC_H_MAJ_MASK) |
| #define TC_H_MIN(h) ((h)&TC_H_MIN_MASK) |
| #define TC_H_MAKE(maj,min) (((maj)&TC_H_MAJ_MASK)|((min)&TC_H_MIN_MASK)) |
| |
| #define TC_H_UNSPEC (0U) |
| #define TC_H_ROOT (0xFFFFFFFFU) |
| #define TC_H_INGRESS (0xFFFFFFF1U) |
| |
| struct tc_ratespec |
| { |
| unsigned char cell_log; |
| unsigned char __reserved; |
| unsigned short feature; |
| short addend; |
| unsigned short mpu; |
| __u32 rate; |
| }; |
| |
| struct tc_fifo_qopt |
| { |
| __u32 limit; |
| }; |
| |
| #define TCQ_PRIO_BANDS 16 |
| #define TCQ_MIN_PRIO_BANDS 2 |
| |
| struct tc_prio_qopt |
| { |
| int bands; |
| __u8 priomap[TC_PRIO_MAX+1]; |
| }; |
| |
| struct tc_tbf_qopt |
| { |
| struct tc_ratespec rate; |
| struct tc_ratespec peakrate; |
| __u32 limit; |
| __u32 buffer; |
| __u32 mtu; |
| }; |
| |
| enum |
| { |
| TCA_TBF_UNSPEC, |
| TCA_TBF_PARMS, |
| TCA_TBF_RTAB, |
| TCA_TBF_PTAB, |
| __TCA_TBF_MAX, |
| }; |
| |
| #define TCA_TBF_MAX (__TCA_TBF_MAX - 1) |
| |
| struct tc_sfq_qopt |
| { |
| unsigned quantum; |
| int perturb_period; |
| __u32 limit; |
| unsigned divisor; |
| unsigned flows; |
| }; |
| |
| enum |
| { |
| TCA_RED_UNSPEC, |
| TCA_RED_PARMS, |
| TCA_RED_STAB, |
| __TCA_RED_MAX, |
| }; |
| |
| #define TCA_RED_MAX (__TCA_RED_MAX - 1) |
| |
| struct tc_red_qopt |
| { |
| __u32 limit; |
| __u32 qth_min; |
| __u32 qth_max; |
| unsigned char Wlog; |
| unsigned char Plog; |
| unsigned char Scell_log; |
| unsigned char flags; |
| #define TC_RED_ECN 1 |
| #define TC_RED_HARDDROP 2 |
| }; |
| |
| struct tc_red_xstats |
| { |
| __u32 early; |
| __u32 pdrop; |
| __u32 other; |
| __u32 marked; |
| }; |
| |
| #define MAX_DPs 16 |
| |
| enum |
| { |
| TCA_GRED_UNSPEC, |
| TCA_GRED_PARMS, |
| TCA_GRED_STAB, |
| TCA_GRED_DPS, |
| __TCA_GRED_MAX, |
| }; |
| |
| #define TCA_GRED_MAX (__TCA_GRED_MAX - 1) |
| |
| struct tc_gred_qopt |
| { |
| __u32 limit; |
| __u32 qth_min; |
| __u32 qth_max; |
| __u32 DP; |
| __u32 backlog; |
| __u32 qave; |
| __u32 forced; |
| __u32 early; |
| __u32 other; |
| __u32 pdrop; |
| __u8 Wlog; |
| __u8 Plog; |
| __u8 Scell_log; |
| __u8 prio; |
| __u32 packets; |
| __u32 bytesin; |
| }; |
| |
| struct tc_gred_sopt |
| { |
| __u32 DPs; |
| __u32 def_DP; |
| __u8 grio; |
| __u8 flags; |
| __u16 pad1; |
| }; |
| |
| #define TC_HTB_NUMPRIO 8 |
| #define TC_HTB_MAXDEPTH 8 |
| #define TC_HTB_PROTOVER 3 |
| |
| struct tc_htb_opt |
| { |
| struct tc_ratespec rate; |
| struct tc_ratespec ceil; |
| __u32 buffer; |
| __u32 cbuffer; |
| __u32 quantum; |
| __u32 level; |
| __u32 prio; |
| }; |
| struct tc_htb_glob |
| { |
| __u32 version; |
| __u32 rate2quantum; |
| __u32 defcls; |
| __u32 debug; |
| |
| __u32 direct_pkts; |
| }; |
| enum |
| { |
| TCA_HTB_UNSPEC, |
| TCA_HTB_PARMS, |
| TCA_HTB_INIT, |
| TCA_HTB_CTAB, |
| TCA_HTB_RTAB, |
| __TCA_HTB_MAX, |
| }; |
| |
| #define TCA_HTB_MAX (__TCA_HTB_MAX - 1) |
| |
| struct tc_htb_xstats |
| { |
| __u32 lends; |
| __u32 borrows; |
| __u32 giants; |
| __u32 tokens; |
| __u32 ctokens; |
| }; |
| |
| struct tc_hfsc_qopt |
| { |
| __u16 defcls; |
| }; |
| |
| struct tc_service_curve |
| { |
| __u32 m1; |
| __u32 d; |
| __u32 m2; |
| }; |
| |
| struct tc_hfsc_stats |
| { |
| __u64 work; |
| __u64 rtwork; |
| __u32 period; |
| __u32 level; |
| }; |
| |
| enum |
| { |
| TCA_HFSC_UNSPEC, |
| TCA_HFSC_RSC, |
| TCA_HFSC_FSC, |
| TCA_HFSC_USC, |
| __TCA_HFSC_MAX, |
| }; |
| |
| #define TCA_HFSC_MAX (__TCA_HFSC_MAX - 1) |
| |
| #define TC_CBQ_MAXPRIO 8 |
| #define TC_CBQ_MAXLEVEL 8 |
| #define TC_CBQ_DEF_EWMA 5 |
| |
| struct tc_cbq_lssopt |
| { |
| unsigned char change; |
| unsigned char flags; |
| #define TCF_CBQ_LSS_BOUNDED 1 |
| #define TCF_CBQ_LSS_ISOLATED 2 |
| unsigned char ewma_log; |
| unsigned char level; |
| #define TCF_CBQ_LSS_FLAGS 1 |
| #define TCF_CBQ_LSS_EWMA 2 |
| #define TCF_CBQ_LSS_MAXIDLE 4 |
| #define TCF_CBQ_LSS_MINIDLE 8 |
| #define TCF_CBQ_LSS_OFFTIME 0x10 |
| #define TCF_CBQ_LSS_AVPKT 0x20 |
| __u32 maxidle; |
| __u32 minidle; |
| __u32 offtime; |
| __u32 avpkt; |
| }; |
| |
| struct tc_cbq_wrropt |
| { |
| unsigned char flags; |
| unsigned char priority; |
| unsigned char cpriority; |
| unsigned char __reserved; |
| __u32 allot; |
| __u32 weight; |
| }; |
| |
| struct tc_cbq_ovl |
| { |
| unsigned char strategy; |
| #define TC_CBQ_OVL_CLASSIC 0 |
| #define TC_CBQ_OVL_DELAY 1 |
| #define TC_CBQ_OVL_LOWPRIO 2 |
| #define TC_CBQ_OVL_DROP 3 |
| #define TC_CBQ_OVL_RCLASSIC 4 |
| unsigned char priority2; |
| __u16 pad; |
| __u32 penalty; |
| }; |
| |
| struct tc_cbq_police |
| { |
| unsigned char police; |
| unsigned char __res1; |
| unsigned short __res2; |
| }; |
| |
| struct tc_cbq_fopt |
| { |
| __u32 split; |
| __u32 defmap; |
| __u32 defchange; |
| }; |
| |
| struct tc_cbq_xstats |
| { |
| __u32 borrows; |
| __u32 overactions; |
| __s32 avgidle; |
| __s32 undertime; |
| }; |
| |
| enum |
| { |
| TCA_CBQ_UNSPEC, |
| TCA_CBQ_LSSOPT, |
| TCA_CBQ_WRROPT, |
| TCA_CBQ_FOPT, |
| TCA_CBQ_OVL_STRATEGY, |
| TCA_CBQ_RATE, |
| TCA_CBQ_RTAB, |
| TCA_CBQ_POLICE, |
| __TCA_CBQ_MAX, |
| }; |
| |
| #define TCA_CBQ_MAX (__TCA_CBQ_MAX - 1) |
| |
| enum { |
| TCA_DSMARK_UNSPEC, |
| TCA_DSMARK_INDICES, |
| TCA_DSMARK_DEFAULT_INDEX, |
| TCA_DSMARK_SET_TC_INDEX, |
| TCA_DSMARK_MASK, |
| TCA_DSMARK_VALUE, |
| __TCA_DSMARK_MAX, |
| }; |
| |
| #define TCA_DSMARK_MAX (__TCA_DSMARK_MAX - 1) |
| |
| enum { |
| TCA_ATM_UNSPEC, |
| TCA_ATM_FD, |
| TCA_ATM_PTR, |
| TCA_ATM_HDR, |
| TCA_ATM_EXCESS, |
| TCA_ATM_ADDR, |
| TCA_ATM_STATE, |
| __TCA_ATM_MAX, |
| }; |
| |
| #define TCA_ATM_MAX (__TCA_ATM_MAX - 1) |
| |
| enum |
| { |
| TCA_NETEM_UNSPEC, |
| TCA_NETEM_CORR, |
| TCA_NETEM_DELAY_DIST, |
| TCA_NETEM_REORDER, |
| TCA_NETEM_CORRUPT, |
| __TCA_NETEM_MAX, |
| }; |
| |
| #define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1) |
| |
| struct tc_netem_qopt |
| { |
| __u32 latency; |
| __u32 limit; |
| __u32 loss; |
| __u32 gap; |
| __u32 duplicate; |
| __u32 jitter; |
| }; |
| |
| struct tc_netem_corr |
| { |
| __u32 delay_corr; |
| __u32 loss_corr; |
| __u32 dup_corr; |
| }; |
| |
| struct tc_netem_reorder |
| { |
| __u32 probability; |
| __u32 correlation; |
| }; |
| |
| struct tc_netem_corrupt |
| { |
| __u32 probability; |
| __u32 correlation; |
| }; |
| |
| #define NETEM_DIST_SCALE 8192 |
| |
| #endif |