111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/**************************************************************************** 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** This header was automatically generated from a Linux kernel header 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** of the same name, to make information necessary for userspace to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** call into the kernel available to libc. It contains only constants, 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** structures, and macros generated from the original header, and thus, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** contains no copyrightable information. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __LINUX_PKT_SCHED_H 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __LINUX_PKT_SCHED_H 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_PRIO_BESTEFFORT 0 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_PRIO_FILLER 1 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_PRIO_BULK 2 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_PRIO_INTERACTIVE_BULK 4 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_PRIO_INTERACTIVE 6 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_PRIO_CONTROL 7 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_PRIO_MAX 15 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_stats 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 bytes; 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 packets; 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 drops; 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 overlimits; 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 bps; 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 pps; 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 qlen; 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 backlog; 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_estimator 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert signed char interval; 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char ewma_log; 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_H_MAJ_MASK (0xFFFF0000U) 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_H_MIN_MASK (0x0000FFFFU) 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_H_MAJ(h) ((h)&TC_H_MAJ_MASK) 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_H_MIN(h) ((h)&TC_H_MIN_MASK) 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_H_MAKE(maj,min) (((maj)&TC_H_MAJ_MASK)|((min)&TC_H_MIN_MASK)) 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_H_UNSPEC (0U) 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_H_ROOT (0xFFFFFFFFU) 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_H_INGRESS (0xFFFFFFF1U) 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_ratespec 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char cell_log; 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char __reserved; 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short feature; 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short addend; 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short mpu; 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rate; 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_fifo_qopt 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 limit; 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCQ_PRIO_BANDS 16 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCQ_MIN_PRIO_BANDS 2 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_prio_qopt 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int bands; 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 priomap[TC_PRIO_MAX+1]; 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_tbf_qopt 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct tc_ratespec rate; 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct tc_ratespec peakrate; 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 limit; 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 buffer; 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 mtu; 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_TBF_UNSPEC, 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_TBF_PARMS, 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_TBF_RTAB, 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_TBF_PTAB, 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_TBF_MAX, 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_TBF_MAX (__TCA_TBF_MAX - 1) 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_sfq_qopt 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned quantum; 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int perturb_period; 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 limit; 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned divisor; 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned flows; 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_RED_UNSPEC, 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_RED_PARMS, 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_RED_STAB, 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_RED_MAX, 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_RED_MAX (__TCA_RED_MAX - 1) 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_red_qopt 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 limit; 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 qth_min; 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 qth_max; 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char Wlog; 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char Plog; 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char Scell_log; 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char flags; 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_RED_ECN 1 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_RED_HARDDROP 2 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_red_xstats 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 early; 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 pdrop; 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 other; 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 marked; 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MAX_DPs 16 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_GRED_UNSPEC, 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_GRED_PARMS, 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_GRED_STAB, 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_GRED_DPS, 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_GRED_MAX, 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_GRED_MAX (__TCA_GRED_MAX - 1) 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_gred_qopt 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 limit; 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 qth_min; 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 qth_max; 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 DP; 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 backlog; 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 qave; 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 forced; 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 early; 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 other; 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 pdrop; 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 Wlog; 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 Plog; 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 Scell_log; 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 prio; 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 packets; 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 bytesin; 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_gred_sopt 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 DPs; 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 def_DP; 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 grio; 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 flags; 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 pad1; 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_HTB_NUMPRIO 8 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_HTB_MAXDEPTH 8 18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_HTB_PROTOVER 3 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_htb_opt 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct tc_ratespec rate; 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct tc_ratespec ceil; 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 buffer; 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 cbuffer; 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 quantum; 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 level; 19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 prio; 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_htb_glob 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 version; 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rate2quantum; 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 defcls; 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 debug; 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 direct_pkts; 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_HTB_UNSPEC, 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_HTB_PARMS, 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_HTB_INIT, 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_HTB_CTAB, 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_HTB_RTAB, 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_HTB_MAX, 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_HTB_MAX (__TCA_HTB_MAX - 1) 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_htb_xstats 21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 lends; 21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 borrows; 21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 giants; 21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tokens; 21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ctokens; 22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_hfsc_qopt 22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 defcls; 22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_service_curve 22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 m1; 23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 d; 23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 m2; 23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_hfsc_stats 23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 work; 23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 rtwork; 23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 period; 23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 level; 24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_HFSC_UNSPEC, 24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_HFSC_RSC, 24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_HFSC_FSC, 24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_HFSC_USC, 24811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_HFSC_MAX, 24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_HFSC_MAX (__TCA_HFSC_MAX - 1) 25211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_CBQ_MAXPRIO 8 25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_CBQ_MAXLEVEL 8 25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_CBQ_DEF_EWMA 5 25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_cbq_lssopt 25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 25911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char change; 26011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char flags; 26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCF_CBQ_LSS_BOUNDED 1 26211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCF_CBQ_LSS_ISOLATED 2 26311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char ewma_log; 26411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char level; 26511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCF_CBQ_LSS_FLAGS 1 26611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCF_CBQ_LSS_EWMA 2 26711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCF_CBQ_LSS_MAXIDLE 4 26811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCF_CBQ_LSS_MINIDLE 8 26911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCF_CBQ_LSS_OFFTIME 0x10 27011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCF_CBQ_LSS_AVPKT 0x20 27111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 maxidle; 27211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 minidle; 27311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 offtime; 27411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 avpkt; 27511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 27611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 27711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_cbq_wrropt 27811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 27911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char flags; 28011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char priority; 28111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char cpriority; 28211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char __reserved; 28311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 allot; 28411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 weight; 28511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 28611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 28711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_cbq_ovl 28811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 28911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char strategy; 29011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_CBQ_OVL_CLASSIC 0 29111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_CBQ_OVL_DELAY 1 29211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_CBQ_OVL_LOWPRIO 2 29311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_CBQ_OVL_DROP 3 29411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_CBQ_OVL_RCLASSIC 4 29511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char priority2; 29611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 pad; 29711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 penalty; 29811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 29911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 30011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_cbq_police 30111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 30211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char police; 30311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char __res1; 30411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short __res2; 30511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 30611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 30711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_cbq_fopt 30811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 30911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 split; 31011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 defmap; 31111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 defchange; 31211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 31311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 31411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_cbq_xstats 31511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 31611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 borrows; 31711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 overactions; 31811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 avgidle; 31911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 undertime; 32011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 32111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 32211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 32311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 32411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_CBQ_UNSPEC, 32511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_CBQ_LSSOPT, 32611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_CBQ_WRROPT, 32711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_CBQ_FOPT, 32811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_CBQ_OVL_STRATEGY, 32911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_CBQ_RATE, 33011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_CBQ_RTAB, 33111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_CBQ_POLICE, 33211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_CBQ_MAX, 33311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 33411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 33511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_CBQ_MAX (__TCA_CBQ_MAX - 1) 33611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 33711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum { 33811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_DSMARK_UNSPEC, 33911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_DSMARK_INDICES, 34011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_DSMARK_DEFAULT_INDEX, 34111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_DSMARK_SET_TC_INDEX, 34211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_DSMARK_MASK, 34311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_DSMARK_VALUE, 34411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_DSMARK_MAX, 34511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 34611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 34711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_DSMARK_MAX (__TCA_DSMARK_MAX - 1) 34811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 34911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum { 35011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ATM_UNSPEC, 35111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ATM_FD, 35211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ATM_PTR, 35311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ATM_HDR, 35411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ATM_EXCESS, 35511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ATM_ADDR, 35611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ATM_STATE, 35711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_ATM_MAX, 35811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 35911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 36011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_ATM_MAX (__TCA_ATM_MAX - 1) 36111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 36211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 36311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 36411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_NETEM_UNSPEC, 36511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_NETEM_CORR, 36611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_NETEM_DELAY_DIST, 36711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_NETEM_REORDER, 36811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_NETEM_CORRUPT, 36911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_NETEM_MAX, 37011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 37111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1) 37311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_netem_qopt 37511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 37611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 latency; 37711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 limit; 37811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 loss; 37911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 gap; 38011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 duplicate; 38111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 jitter; 38211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 38311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 38411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_netem_corr 38511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 38611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 delay_corr; 38711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 loss_corr; 38811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 dup_corr; 38911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 39011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 39111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_netem_reorder 39211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 39311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 probability; 39411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 correlation; 39511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 39611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 39711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_netem_corrupt 39811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 39911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 probability; 40011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 correlation; 40111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 40211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 40311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NETEM_DIST_SCALE 8192 40411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 40511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 406