linux/include/linux/pkt_sched.h
<<
>>
Prefs
   1#ifndef __LINUX_PKT_SCHED_H
   2#define __LINUX_PKT_SCHED_H
   3
   4#include <linux/types.h>
   5
   6/* Logical priority bands not depending on specific packet scheduler.
   7   Every scheduler will map them to real traffic classes, if it has
   8   no more precise mechanism to classify packets.
   9
  10   These numbers have no special meaning, though their coincidence
  11   with obsolete IPv6 values is not occasional :-). New IPv6 drafts
  12   preferred full anarchy inspired by diffserv group.
  13
  14   Note: TC_PRIO_BESTEFFORT does not mean that it is the most unhappy
  15   class, actually, as rule it will be handled with more care than
  16   filler or even bulk.
  17 */
  18
  19#define TC_PRIO_BESTEFFORT              0
  20#define TC_PRIO_FILLER                  1
  21#define TC_PRIO_BULK                    2
  22#define TC_PRIO_INTERACTIVE_BULK        4
  23#define TC_PRIO_INTERACTIVE             6
  24#define TC_PRIO_CONTROL                 7
  25
  26#define TC_PRIO_MAX                     15
  27
  28/* Generic queue statistics, available for all the elements.
  29   Particular schedulers may have also their private records.
  30 */
  31
  32struct tc_stats {
  33        __u64   bytes;                  /* Number of enqueued bytes */
  34        __u32   packets;                /* Number of enqueued packets   */
  35        __u32   drops;                  /* Packets dropped because of lack of resources */
  36        __u32   overlimits;             /* Number of throttle events when this
  37                                         * flow goes out of allocated bandwidth */
  38        __u32   bps;                    /* Current flow byte rate */
  39        __u32   pps;                    /* Current flow packet rate */
  40        __u32   qlen;
  41        __u32   backlog;
  42};
  43
  44struct tc_estimator {
  45        signed char     interval;
  46        unsigned char   ewma_log;
  47};
  48
  49/* "Handles"
  50   ---------
  51
  52    All the traffic control objects have 32bit identifiers, or "handles".
  53
  54    They can be considered as opaque numbers from user API viewpoint,
  55    but actually they always consist of two fields: major and
  56    minor numbers, which are interpreted by kernel specially,
  57    that may be used by applications, though not recommended.
  58
  59    F.e. qdisc handles always have minor number equal to zero,
  60    classes (or flows) have major equal to parent qdisc major, and
  61    minor uniquely identifying class inside qdisc.
  62
  63    Macros to manipulate handles:
  64 */
  65
  66#define TC_H_MAJ_MASK (0xFFFF0000U)
  67#define TC_H_MIN_MASK (0x0000FFFFU)
  68#define TC_H_MAJ(h) ((h)&TC_H_MAJ_MASK)
  69#define TC_H_MIN(h) ((h)&TC_H_MIN_MASK)
  70#define TC_H_MAKE(maj,min) (((maj)&TC_H_MAJ_MASK)|((min)&TC_H_MIN_MASK))
  71
  72#define TC_H_UNSPEC     (0U)
  73#define TC_H_ROOT       (0xFFFFFFFFU)
  74#define TC_H_INGRESS    (0xFFFFFFF1U)
  75
  76struct tc_ratespec {
  77        unsigned char   cell_log;
  78        unsigned char   __reserved;
  79        unsigned short  overhead;
  80        short           cell_align;
  81        unsigned short  mpu;
  82        __u32           rate;
  83};
  84
  85#define TC_RTAB_SIZE    1024
  86
  87struct tc_sizespec {
  88        unsigned char   cell_log;
  89        unsigned char   size_log;
  90        short           cell_align;
  91        int             overhead;
  92        unsigned int    linklayer;
  93        unsigned int    mpu;
  94        unsigned int    mtu;
  95        unsigned int    tsize;
  96};
  97
  98enum {
  99        TCA_STAB_UNSPEC,
 100        TCA_STAB_BASE,
 101        TCA_STAB_DATA,
 102        __TCA_STAB_MAX
 103};
 104
 105#define TCA_STAB_MAX (__TCA_STAB_MAX - 1)
 106
 107/* FIFO section */
 108
 109struct tc_fifo_qopt {
 110        __u32   limit;  /* Queue length: bytes for bfifo, packets for pfifo */
 111};
 112
 113/* PRIO section */
 114
 115#define TCQ_PRIO_BANDS  16
 116#define TCQ_MIN_PRIO_BANDS 2
 117
 118struct tc_prio_qopt {
 119        int     bands;                  /* Number of bands */
 120        __u8    priomap[TC_PRIO_MAX+1]; /* Map: logical priority -> PRIO band */
 121};
 122
 123/* MULTIQ section */
 124
 125struct tc_multiq_qopt {
 126        __u16   bands;                  /* Number of bands */
 127        __u16   max_bands;              /* Maximum number of queues */
 128};
 129
 130/* PLUG section */
 131
 132#define TCQ_PLUG_BUFFER                0
 133#define TCQ_PLUG_RELEASE_ONE           1
 134#define TCQ_PLUG_RELEASE_INDEFINITE    2
 135#define TCQ_PLUG_LIMIT                 3
 136
 137struct tc_plug_qopt {
 138        /* TCQ_PLUG_BUFFER: Inset a plug into the queue and
 139         *  buffer any incoming packets
 140         * TCQ_PLUG_RELEASE_ONE: Dequeue packets from queue head
 141         *   to beginning of the next plug.
 142         * TCQ_PLUG_RELEASE_INDEFINITE: Dequeue all packets from queue.
 143         *   Stop buffering packets until the next TCQ_PLUG_BUFFER
 144         *   command is received (just act as a pass-thru queue).
 145         * TCQ_PLUG_LIMIT: Increase/decrease queue size
 146         */
 147        int             action;
 148        __u32           limit;
 149};
 150
 151/* TBF section */
 152
 153struct tc_tbf_qopt {
 154        struct tc_ratespec rate;
 155        struct tc_ratespec peakrate;
 156        __u32           limit;
 157        __u32           buffer;
 158        __u32           mtu;
 159};
 160
 161enum {
 162        TCA_TBF_UNSPEC,
 163        TCA_TBF_PARMS,
 164        TCA_TBF_RTAB,
 165        TCA_TBF_PTAB,
 166        __TCA_TBF_MAX,
 167};
 168
 169#define TCA_TBF_MAX (__TCA_TBF_MAX - 1)
 170
 171
 172/* TEQL section */
 173
 174/* TEQL does not require any parameters */
 175
 176/* SFQ section */
 177
 178struct tc_sfq_qopt {
 179        unsigned        quantum;        /* Bytes per round allocated to flow */
 180        int             perturb_period; /* Period of hash perturbation */
 181        __u32           limit;          /* Maximal packets in queue */
 182        unsigned        divisor;        /* Hash divisor  */
 183        unsigned        flows;          /* Maximal number of flows  */
 184};
 185
 186struct tc_sfqred_stats {
 187        __u32           prob_drop;      /* Early drops, below max threshold */
 188        __u32           forced_drop;    /* Early drops, after max threshold */
 189        __u32           prob_mark;      /* Marked packets, below max threshold */
 190        __u32           forced_mark;    /* Marked packets, after max threshold */
 191        __u32           prob_mark_head; /* Marked packets, below max threshold */
 192        __u32           forced_mark_head;/* Marked packets, after max threshold */
 193};
 194
 195struct tc_sfq_qopt_v1 {
 196        struct tc_sfq_qopt v0;
 197        unsigned int    depth;          /* max number of packets per flow */
 198        unsigned int    headdrop;
 199/* SFQRED parameters */
 200        __u32           limit;          /* HARD maximal flow queue length (bytes) */
 201        __u32           qth_min;        /* Min average length threshold (bytes) */
 202        __u32           qth_max;        /* Max average length threshold (bytes) */
 203        unsigned char   Wlog;           /* log(W)               */
 204        unsigned char   Plog;           /* log(P_max/(qth_max-qth_min)) */
 205        unsigned char   Scell_log;      /* cell size for idle damping */
 206        unsigned char   flags;
 207        __u32           max_P;          /* probability, high resolution */
 208/* SFQRED stats */
 209        struct tc_sfqred_stats stats;
 210};
 211
 212
 213struct tc_sfq_xstats {
 214        __s32           allot;
 215};
 216
 217/* RED section */
 218
 219enum {
 220        TCA_RED_UNSPEC,
 221        TCA_RED_PARMS,
 222        TCA_RED_STAB,
 223        TCA_RED_MAX_P,
 224        __TCA_RED_MAX,
 225};
 226
 227#define TCA_RED_MAX (__TCA_RED_MAX - 1)
 228
 229struct tc_red_qopt {
 230        __u32           limit;          /* HARD maximal queue length (bytes)    */
 231        __u32           qth_min;        /* Min average length threshold (bytes) */
 232        __u32           qth_max;        /* Max average length threshold (bytes) */
 233        unsigned char   Wlog;           /* log(W)               */
 234        unsigned char   Plog;           /* log(P_max/(qth_max-qth_min)) */
 235        unsigned char   Scell_log;      /* cell size for idle damping */
 236        unsigned char   flags;
 237#define TC_RED_ECN              1
 238#define TC_RED_HARDDROP         2
 239#define TC_RED_ADAPTATIVE       4
 240};
 241
 242struct tc_red_xstats {
 243        __u32           early;          /* Early drops */
 244        __u32           pdrop;          /* Drops due to queue limits */
 245        __u32           other;          /* Drops due to drop() calls */
 246        __u32           marked;         /* Marked packets */
 247};
 248
 249/* GRED section */
 250
 251#define MAX_DPs 16
 252
 253enum {
 254       TCA_GRED_UNSPEC,
 255       TCA_GRED_PARMS,
 256       TCA_GRED_STAB,
 257       TCA_GRED_DPS,
 258       TCA_GRED_MAX_P,
 259           __TCA_GRED_MAX,
 260};
 261
 262#define TCA_GRED_MAX (__TCA_GRED_MAX - 1)
 263
 264struct tc_gred_qopt {
 265        __u32           limit;        /* HARD maximal queue length (bytes)    */
 266        __u32           qth_min;      /* Min average length threshold (bytes) */
 267        __u32           qth_max;      /* Max average length threshold (bytes) */
 268        __u32           DP;           /* up to 2^32 DPs */
 269        __u32           backlog;
 270        __u32           qave;
 271        __u32           forced;
 272        __u32           early;
 273        __u32           other;
 274        __u32           pdrop;
 275        __u8            Wlog;         /* log(W)               */
 276        __u8            Plog;         /* log(P_max/(qth_max-qth_min)) */
 277        __u8            Scell_log;    /* cell size for idle damping */
 278        __u8            prio;         /* prio of this VQ */
 279        __u32           packets;
 280        __u32           bytesin;
 281};
 282
 283/* gred setup */
 284struct tc_gred_sopt {
 285        __u32           DPs;
 286        __u32           def_DP;
 287        __u8            grio;
 288        __u8            flags;
 289        __u16           pad1;
 290};
 291
 292/* CHOKe section */
 293
 294enum {
 295        TCA_CHOKE_UNSPEC,
 296        TCA_CHOKE_PARMS,
 297        TCA_CHOKE_STAB,
 298        TCA_CHOKE_MAX_P,
 299        __TCA_CHOKE_MAX,
 300};
 301
 302#define TCA_CHOKE_MAX (__TCA_CHOKE_MAX - 1)
 303
 304struct tc_choke_qopt {
 305        __u32           limit;          /* Hard queue length (packets)  */
 306        __u32           qth_min;        /* Min average threshold (packets) */
 307        __u32           qth_max;        /* Max average threshold (packets) */
 308        unsigned char   Wlog;           /* log(W)               */
 309        unsigned char   Plog;           /* log(P_max/(qth_max-qth_min)) */
 310        unsigned char   Scell_log;      /* cell size for idle damping */
 311        unsigned char   flags;          /* see RED flags */
 312};
 313
 314struct tc_choke_xstats {
 315        __u32           early;          /* Early drops */
 316        __u32           pdrop;          /* Drops due to queue limits */
 317        __u32           other;          /* Drops due to drop() calls */
 318        __u32           marked;         /* Marked packets */
 319        __u32           matched;        /* Drops due to flow match */
 320};
 321
 322/* HTB section */
 323#define TC_HTB_NUMPRIO          8
 324#define TC_HTB_MAXDEPTH         8
 325#define TC_HTB_PROTOVER         3 /* the same as HTB and TC's major */
 326
 327struct tc_htb_opt {
 328        struct tc_ratespec      rate;
 329        struct tc_ratespec      ceil;
 330        __u32   buffer;
 331        __u32   cbuffer;
 332        __u32   quantum;
 333        __u32   level;          /* out only */
 334        __u32   prio;
 335};
 336struct tc_htb_glob {
 337        __u32 version;          /* to match HTB/TC */
 338        __u32 rate2quantum;     /* bps->quantum divisor */
 339        __u32 defcls;           /* default class number */
 340        __u32 debug;            /* debug flags */
 341
 342        /* stats */
 343        __u32 direct_pkts; /* count of non shaped packets */
 344};
 345enum {
 346        TCA_HTB_UNSPEC,
 347        TCA_HTB_PARMS,
 348        TCA_HTB_INIT,
 349        TCA_HTB_CTAB,
 350        TCA_HTB_RTAB,
 351        __TCA_HTB_MAX,
 352};
 353
 354#define TCA_HTB_MAX (__TCA_HTB_MAX - 1)
 355
 356struct tc_htb_xstats {
 357        __u32 lends;
 358        __u32 borrows;
 359        __u32 giants;   /* too big packets (rate will not be accurate) */
 360        __u32 tokens;
 361        __u32 ctokens;
 362};
 363
 364/* HFSC section */
 365
 366struct tc_hfsc_qopt {
 367        __u16   defcls;         /* default class */
 368};
 369
 370struct tc_service_curve {
 371        __u32   m1;             /* slope of the first segment in bps */
 372        __u32   d;              /* x-projection of the first segment in us */
 373        __u32   m2;             /* slope of the second segment in bps */
 374};
 375
 376struct tc_hfsc_stats {
 377        __u64   work;           /* total work done */
 378        __u64   rtwork;         /* work done by real-time criteria */
 379        __u32   period;         /* current period */
 380        __u32   level;          /* class level in hierarchy */
 381};
 382
 383enum {
 384        TCA_HFSC_UNSPEC,
 385        TCA_HFSC_RSC,
 386        TCA_HFSC_FSC,
 387        TCA_HFSC_USC,
 388        __TCA_HFSC_MAX,
 389};
 390
 391#define TCA_HFSC_MAX (__TCA_HFSC_MAX - 1)
 392
 393
 394/* CBQ section */
 395
 396#define TC_CBQ_MAXPRIO          8
 397#define TC_CBQ_MAXLEVEL         8
 398#define TC_CBQ_DEF_EWMA         5
 399
 400struct tc_cbq_lssopt {
 401        unsigned char   change;
 402        unsigned char   flags;
 403#define TCF_CBQ_LSS_BOUNDED     1
 404#define TCF_CBQ_LSS_ISOLATED    2
 405        unsigned char   ewma_log;
 406        unsigned char   level;
 407#define TCF_CBQ_LSS_FLAGS       1
 408#define TCF_CBQ_LSS_EWMA        2
 409#define TCF_CBQ_LSS_MAXIDLE     4
 410#define TCF_CBQ_LSS_MINIDLE     8
 411#define TCF_CBQ_LSS_OFFTIME     0x10
 412#define TCF_CBQ_LSS_AVPKT       0x20
 413        __u32           maxidle;
 414        __u32           minidle;
 415        __u32           offtime;
 416        __u32           avpkt;
 417};
 418
 419struct tc_cbq_wrropt {
 420        unsigned char   flags;
 421        unsigned char   priority;
 422        unsigned char   cpriority;
 423        unsigned char   __reserved;
 424        __u32           allot;
 425        __u32           weight;
 426};
 427
 428struct tc_cbq_ovl {
 429        unsigned char   strategy;
 430#define TC_CBQ_OVL_CLASSIC      0
 431#define TC_CBQ_OVL_DELAY        1
 432#define TC_CBQ_OVL_LOWPRIO      2
 433#define TC_CBQ_OVL_DROP         3
 434#define TC_CBQ_OVL_RCLASSIC     4
 435        unsigned char   priority2;
 436        __u16           pad;
 437        __u32           penalty;
 438};
 439
 440struct tc_cbq_police {
 441        unsigned char   police;
 442        unsigned char   __res1;
 443        unsigned short  __res2;
 444};
 445
 446struct tc_cbq_fopt {
 447        __u32           split;
 448        __u32           defmap;
 449        __u32           defchange;
 450};
 451
 452struct tc_cbq_xstats {
 453        __u32           borrows;
 454        __u32           overactions;
 455        __s32           avgidle;
 456        __s32           undertime;
 457};
 458
 459enum {
 460        TCA_CBQ_UNSPEC,
 461        TCA_CBQ_LSSOPT,
 462        TCA_CBQ_WRROPT,
 463        TCA_CBQ_FOPT,
 464        TCA_CBQ_OVL_STRATEGY,
 465        TCA_CBQ_RATE,
 466        TCA_CBQ_RTAB,
 467        TCA_CBQ_POLICE,
 468        __TCA_CBQ_MAX,
 469};
 470
 471#define TCA_CBQ_MAX     (__TCA_CBQ_MAX - 1)
 472
 473/* dsmark section */
 474
 475enum {
 476        TCA_DSMARK_UNSPEC,
 477        TCA_DSMARK_INDICES,
 478        TCA_DSMARK_DEFAULT_INDEX,
 479        TCA_DSMARK_SET_TC_INDEX,
 480        TCA_DSMARK_MASK,
 481        TCA_DSMARK_VALUE,
 482        __TCA_DSMARK_MAX,
 483};
 484
 485#define TCA_DSMARK_MAX (__TCA_DSMARK_MAX - 1)
 486
 487/* ATM  section */
 488
 489enum {
 490        TCA_ATM_UNSPEC,
 491        TCA_ATM_FD,             /* file/socket descriptor */
 492        TCA_ATM_PTR,            /* pointer to descriptor - later */
 493        TCA_ATM_HDR,            /* LL header */
 494        TCA_ATM_EXCESS,         /* excess traffic class (0 for CLP)  */
 495        TCA_ATM_ADDR,           /* PVC address (for output only) */
 496        TCA_ATM_STATE,          /* VC state (ATM_VS_*; for output only) */
 497        __TCA_ATM_MAX,
 498};
 499
 500#define TCA_ATM_MAX     (__TCA_ATM_MAX - 1)
 501
 502/* Network emulator */
 503
 504enum {
 505        TCA_NETEM_UNSPEC,
 506        TCA_NETEM_CORR,
 507        TCA_NETEM_DELAY_DIST,
 508        TCA_NETEM_REORDER,
 509        TCA_NETEM_CORRUPT,
 510        TCA_NETEM_LOSS,
 511        TCA_NETEM_RATE,
 512        TCA_NETEM_ECN,
 513        __TCA_NETEM_MAX,
 514};
 515
 516#define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1)
 517
 518struct tc_netem_qopt {
 519        __u32   latency;        /* added delay (us) */
 520        __u32   limit;          /* fifo limit (packets) */
 521        __u32   loss;           /* random packet loss (0=none ~0=100%) */
 522        __u32   gap;            /* re-ordering gap (0 for none) */
 523        __u32   duplicate;      /* random packet dup  (0=none ~0=100%) */
 524        __u32   jitter;         /* random jittern cllatencyf="include/linux/pkt_sched.h#L409" id="L409" class="lis="line" name="L523"> 523        <7"> 444};
gap;        7ulssopt" class="sref">tc_cbsreclassame="4pkt_sched.h#L441" id="L44        duplicate;      TCA_DSMARK_IN"+c;    lass="sref">TCA_DSMARK_IN"+c;    lAassame="46ux/pkt_sched.h#L524" id=d="L422"4kt_scme="L518"> 5186nt">/* random packet dup  (0=none" name="sopt<0g9   jitta>;          519        __u32   duplicate;      /* random   />/* ATM  section */
 330        __u32   jittera>;         />/* AATM  section */
; #define u519   recomme TCA_DSMARK_IN"+c;    lass="sref">TCA_DSMARK/pkt_sche5.h#L434" id="L434" class5"line5 name="L334"> 334        __u32   TCA_DSMARK/L409" cla.h#L435" id="L435" class5"line53name="L425"> 425        /> TCA_DSMARK/    7ulss.h#L436" id="L436" class5"line53name="L426"> 426};
 517
 518struct TCA_DSMARK/p5t_sched.h#L439" id="L439" class5"line5 name="L339"> 339        __u32   TCA_DSMARK/pkt_sche5.h#L440" id="L440" class5"line5 name="L340"> 340        /> TCA_DSMARK/pkt_sche5.h#L441" id="L441" class5"line54353tput only) */TCAsref">__r5s2;
 334        /* slope of the second segmen5"L444"> 454};
 455         CA_A32" class="sref"m   <_/a> CA_A   re   />ef="+code=__u32re   /> 
 340        />  42t {
 455         CA_A32" class="sref=ell_/a> CA_A   re   />ef="+code=__u32re   />  it;
def5ap;
defcha5ge;
 450};
 505__Te="L451">5451
 505/* slope of the second segmen5_cbq_xsta5s {
 511<       /* slope of the second segmen5ref">borr5ws;
TCA_NETEM_M        45ns;
 523  ref">avgi5le;
TCA_NETEM       TCA_NETEM_M       __TCA_Nf">undert5me;
 457};
__u32/* slope of the second segmen5_ref">def5458
 459enum {
 360        ,
 523  A_CBQ_UNS5EC,
 361         442     p3signed char   ,
 361                u3signed short  ,
 360        borr5PT,
 360        ,
 523  AL444"> 45GY,
 523  TCA_CBQ_R5TE,
tc_cbsreclassame=TCA_CBQ_R5AB,
/* slope of the second segmen5A_CBQ_POL5CE,
def5AX,
 339,
 523  "L469"> 459};
 360        ; #rt_sclass="lis="line" name="L523"> 523  "_CBQ_UNS5470
 371 523  "_CBQ_LSS5a> - 1)
 372 442     ksigned char   5472

5474
 410#d TC_CBQ_OVL_55"> 475enum {
TCA_NETEM      eIST_s="t_sched.h#L3  1638OVL_RCLASSIC" class="sref">TC_CBQ_OVL_5SMARK_UNS5EC,
,
/* slope of the second segmen5EFAULT_IN5EX,
,
 476     RR" name=ef="+code=__TCA_NETEM_MAX" class="sref">__TDSMARK_VA5UE,
 476     RR"QUANTUMef="+code=__TCA_NETEM_MAX" class="sref">__TD="L472">5AX,
TCA_DSMARK_MAXRR""srt_sched.h#L499" id="L499" class="line" namSection *53};
5484
 - 1)
TCA_DSMARK_XRR""srt_sc.h#L5"+code=TCA_DSMARK_MAX" RR""sref">TCA_DSMARK_MAXRR""srt_sc+code=__TCA_NETEM_MAX" class="sref">__TCA_Ne="L486">5486

 3765488
 339         489enum {
,

/* slope of the second segmen5- later *5
 480sQOPT_BIT nam339TC_CBQ_DEF_5 header *5
 481 sQOPT_"sr"QUEme339TC_CBQ_DEF_5 ="L484">5

 518,
 480sQOPT_BIT nam33958};
6499
 436         51="un "+c;[33" id="L433" clasQOPT_"sr"QUEme="L481"> 481 sQOPT_"sr"QUEme339<]d char    - 1)
 436         51offse "+c;[33" id="L433" clasQOPT_"sr"QUEme="L481"> 481 sQOPT_"sr"QUEme339<]d char   

6503
/* slope of the second segmen64"> 504enum {
,
 476    SFB" name=ef="+code=__TCA_NETEM_MAX" class="sref">__6M_DELAY_D6ST,
 510 SFB"PARMaef="+code=__TCA_NETEM_MAX" class="sref">__6M9DELAY_D6S};
TCA_DSMARK_MAX__6ETEM_CORR6PT,
,
,
TCA_DSMARK_XTCA_DSMARK_MAX__TCA_6CA_NETEM_6CN,
,
/* slope of the second segmen6"L514"> 564};
TCA values.lass="comment">/* slope of the second segmen6"ETEM_UNS6515
/* slope of the second segmen6ETEM_MAX<6a> - 1)
 5186517
        ; #rehash_TCA_Avalignedt<0g9   /* slope of the second segmen6_netem_qo6t {
 519__s3warmup_" clignedtgawarmup " clter/* random jittern cllate6ay (us) *6
 520;      /* random   />/* ATM 6ackets) *6
 521;      /* random   />/* ATM 6a_NETEM_R6
 522__u32  slreL394, (d1ter/* random jittern cllate6aA_NETEM_6
 523__u32 edlreL394, (d2ter/* random jittern cllate6aA_NETEM_6
 524__u32   L52g9   /* random jittern cllate6aL514"> 56de/linux/pkt_sched.h#L406" id=6pkt_sched.h#L425" id="L425" class="line" name="L425"> 425d   __u32" class="sru32d   _f">__u32edTM_P'   _' ppan class="comment">/* slope of the second segmen6      <7"6 444};
gap;   62kt_sched.h#L346" id="L346" class5"line5 name="L340"> 340dbursode=__u32" classu32dbursoigned char   TCA_6SMARK62kt_sched.h#L488" id="L488" class="line" na6section *6
 452 330
 521dro+code=__u32" clau32dro+igned char    522 523TCA_6SMARK6pkt_sche5.h#L434" id="L434" class5"line5 name="L334"> 334__u1g9   /* slope of the second segmen6srSMARK_I6"+c;    lass="sref">TCA_6SMARK6L409" cla.h#L435" id="L435" class5"line53name="L425"> 425TCA_6SMARK6pkt_sched.h#L436" id="L436" class="line" name="L520"> 520};
 437__"line" name="L5maxo>__igned char   
        __"line" name="L5avgo>__igned char   TCA_6SMARK63kt_sched.h#L469" id="L469" class="line" name6srSMARK_I6"+c;    lass="sref">TCA_6SMARK64kt_sched.h#L470" id="L470" class="line" na6srSMARK_I6"+c;    lass="sref">TCA_6SMARK64kt_sched.h#L471" id="L471" cSFB""sr_PRO name="L466"> 46SFB""sr_PRO 4kt_s0xFFFFhed.h#L470" id="L470" class="line" na6s_NETEM_R6//* slope of the second segmen6sref">__r6s2;
 464};
 476    QFQ" name=ef="+code=__TCA_NETEM_MAX" class="sref">__6srSMARK_I6445
 509    QFQ"WEIGH=ef="+code=__TCA_NETEM_MAX" class="sref">__6s4pkt_sch6t {
TCA_DSMARK_X__6sDSMARK_I6it;
TCA_DSMARK_MAX;
defcha6ge;
 460};
TCA_DSMARK_XTCA_DSMARK_MAX__TCA_6e="L451">6451
 {
 376borr6ws;
 454 46ns;
 524;
undert6me;
 467};
/* slope of the second segmen6_ref">def6458
 459enum {
 460  ODELine" naef="+code=__TCA_NETEM_MAX" class="sref">__6A_CBQ_LSS6PT,
 463ODELiTARGE ef="+code=__TCA_NETEM_MAX" class="sref">__6Acbq_xsta6PT,
 463ODELiLIMI ef="+code=__TCA_NETEM_MAX" class="sref">__6Aef">borr6PT,
 463ODELiINTERVALef="+code=__TCA_NETEM_MAX" class="sref">__6AL444"> 46GY,
 512=ODELi" nef="+code=__TCA_NETEM_MAX" class="sref">__6ArSMARK_I6TE,
 ODELis="sref">TCA_CBQ_MAX ODELis="t_sched.h#L499" id="L499" class="line" na69">undert6AB,
,
def6AX,
TCA_CBQ_M ODELis="t_sc#L4"+code=TCA_DSMARK_MAX" ODELis="sref">TCA_CBQ_MAX ODELis="t_sc+code=__TCA_NETEM_MAX" class="sref">__TCA_6"L469"> 469};

 452TC6"_CBQ_LSS6a> - 1)
 372__u1g9    502/* Network 6e="L472">6472
 360         51="un "+c;_u32 502/* Network 6eef">borr6
gaCA_AT2"> 502/* Network 6eL444"> 46474
 502/* Network 6erSMARK_I6>enum {
 519         51="st="un f">__u1g9   gaCA_AT *02"> 502/* Network 6e">undert6EC,
 519         51=0g9  "+c;_u32<2g9    502/* Network 6e_CBQ_POL6ES,
 455        __u1g9    502/* Network 6eref">def6EX,
 339         ="+code=__u32" classero+_/a> ="+cof">__u1g9   lwas hi 502/* Network 6SET_TC_IN6EX,
 339         502/* Network 6S_CBQ_UNS6SK,
 339        gde=__u32" classero+p">g"+c;_u31g9   gaCA_AT ?<*02"> 502/* Network 6S_CBQ_LSS6UE,
6AX,
};
/* slope of the second segmen6e="L484">6484
 - 1)
6486
 460 FQ_CODELine" naef="+code=__TCA_NETEM_MAX" class="sref">__6section *6
 463__6sref">def6488
 463__69"> 489enum {
 463__69_CBQ_UNS6EC,
 512FQ_CODELi" nef="+code=__TCA_NETEM_MAX" class="sref">__69_CBQ_LSS6
 510 FQ_CODELiFLOWaef="+code=__TCA_NETEM_MAX" class="sref">__69="L472">6
 476    FQ_CODELiQUANTUMef="+code=__TCA_NETEM_MAX" class="sref">__69ection *6
FQ_CODELis="sref">TCA_CBQ_MAXFQ_CODELis="t_sched.h#L515" id="L515" class="line" na6 ="L484">6
 523 6t only) *6
tc_cbsreclassame6t only) *6
TCA_CBQ_MFQ_CODELis="t_sched.h#L4"+code=TCA_DSMARK_MAX"FQ_CODELis="sref">TCA_CBQ_MAXFQ_CODELis="t_sc+code=__TCA_NETEM_MAX" class="sref">__TCA_69ection *6AX,
68};
7499
FQ_CODELiX    S_QDISame="L460"> 460 FQ_CODELiX    S_QDISaef="+code=__TCA_NETEM_MAX" class="sref">__7_ATM_MAX<7a> - 1)
 FQ_CODELiX    S_CLAname="L510"> 510 FQ_CODELiX    S_CLAnaef="+code=__TCA_NETEM_MAX" class="sref">__7_2TM_MAX<7a/span>

7503
 376 504enum {
 372__u u32<2g9    502/* Network 7NETEM_UNS7EC,
 339         ="+code=__u32" classero+_/a> ="+cof">__u1g9    502/* Network 7N7TEM_UNS7E/span>
lwas hi<2"> 502/* Network 7N8TEM_UNS7EX,
 502/* Network 7N9TEM_UNS7E};
 339         502/* Network 7ETEM_CORR7PT,
gaTro+peA2"> 502/* Network 7EATM_MAX<7SS,
 502/* Network 7A_NETEM_R7TE,
 339         51new_flow_="un f">__u1g9   2"> 502/* Network 7Aulator *7CN,
edTaP'new flow'2"> 502/* Network 7A="L503">7AX,
 502/* Network 7A"> 504};
 372 502/* Network 7"ETEM_UNS7515
 339         502/* Network 7"7TEM_UNS7a> - 1)
7517
 {
 376 455        
 521         51=0g9  "+c;_u32<.h#L52g9    502/* Network 7a_NETEM_R7
 502/* Network 7aulator *7
 502/* Network 7aA_NETEM_7
 524         51="un "+c;_/* Network 7a"> 504 425         51="st="un f">__/* Network 7aETEM_UNS7 444};
gap;   72kt_sched.h#L346" id="L346" class5"line5 name="L340"> 340        gde=__u32" classero+p">g"+c;_/* Network 7a7TEM_UNS7d.h#L441" id="L44   7    <72kt_sched.h#L447" id="L447" class="line" name="L455"> 455        __/* Network 7a="L517">7"+c;    lass="sref">TCA_7SMARK72kt_sched.h#L498" id="L498" class="line" name7section *7

 452 521__/* Network 7s_NETEM_R7/;  uode=tc_netem_qopt" class="re  uod>TC7sulator *7ref= 8VL_CLLAY_DIST" cla7s="L373kt_sched.h#L555555555hef="      376 37qdiscline" f">__/* Network 7sA_NETEM_7"+c;    lass="sref">TCA_7SMARK7pkt_sche5.h#L455555555hef="      376 37=e="Lline" f">__/* Network 7s"> 504TCA_7SMARK7L409" cla.h#L4hed.h#L498" id="L498" class="line" name7s     <7"7"+c;    lass="sref">TCA_7SMARK7    7ulss.h#L436" id="L436" class5"line53name7s4pkt_sch76};

TCA_7SMARK73kt_sc


The original LXR software by the e5.h#L437http://sourceforge.net/projects/lxr">LXR d="Lunaa> <, this experiL473al versa>; by e5.h#L437mailto:lxr@37" c.no51=xr@37" c.no <.
=xr.37" c.no kindly hohteddby e5.h#L437http://www.redpill-37"pro.no51Redpill L7"pro Aaef="+do>_vider of L7" c d=nsult">gaand oper s services sclae 1995.