Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / include / linux / pkt_sched.h
index d98d8cf..d10f353 100644 (file)
@@ -93,6 +93,7 @@ struct tc_fifo_qopt
 /* PRIO section */
 
 #define TCQ_PRIO_BANDS 16
+#define TCQ_MIN_PRIO_BANDS 2
 
 struct tc_prio_qopt
 {
@@ -117,8 +118,11 @@ enum
        TCA_TBF_PARMS,
        TCA_TBF_RTAB,
        TCA_TBF_PTAB,
+       __TCA_TBF_MAX,
 };
 
+#define TCA_TBF_MAX (__TCA_TBF_MAX - 1)
+
 
 /* TEQL section */
 
@@ -151,8 +155,11 @@ 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;          /* HARD maximal queue length (bytes)    */
@@ -163,6 +170,7 @@ struct tc_red_qopt
        unsigned char   Scell_log;      /* cell size for idle damping */
        unsigned char   flags;
 #define TC_RED_ECN     1
+#define TC_RED_HARDDROP        2
 };
 
 struct tc_red_xstats
@@ -183,38 +191,39 @@ enum
        TCA_GRED_PARMS,
        TCA_GRED_STAB,
        TCA_GRED_DPS,
+          __TCA_GRED_MAX,
 };
 
-#define TCA_SET_OFF TCA_GRED_PARMS
+#define TCA_GRED_MAX (__TCA_GRED_MAX - 1)
+
 struct tc_gred_qopt
 {
-       __u32           limit;          /* HARD maximal queue length (bytes)    
-*/
-       __u32           qth_min;        /* Min average length threshold (bytes) 
-*/
-       __u32           qth_max;        /* Max average length threshold (bytes) 
-*/
-       __u32           DP;             /* upto 2^32 DPs */
-       __u32           backlog;        
-       __u32           qave;   
-       __u32           forced; 
-       __u32           early;  
-       __u32           other;  
-       __u32           pdrop;  
-
-       unsigned char   Wlog;           /* log(W)               */
-       unsigned char   Plog;           /* log(P_max/(qth_max-qth_min)) */
-       unsigned char   Scell_log;      /* cell size for idle damping */
-       __u8            prio;           /* prio of this VQ */
-       __u32   packets;
-       __u32   bytesin;
+       __u32           limit;        /* HARD maximal queue length (bytes)    */
+       __u32           qth_min;      /* Min average length threshold (bytes) */
+       __u32           qth_max;      /* Max average length threshold (bytes) */
+       __u32           DP;           /* upto 2^32 DPs */
+       __u32           backlog;
+       __u32           qave;
+       __u32           forced;
+       __u32           early;
+       __u32           other;
+       __u32           pdrop;
+       __u8            Wlog;         /* log(W)               */
+       __u8            Plog;         /* log(P_max/(qth_max-qth_min)) */
+       __u8            Scell_log;    /* cell size for idle damping */
+       __u8            prio;         /* prio of this VQ */
+       __u32           packets;
+       __u32           bytesin;
 };
+
 /* gred setup */
 struct tc_gred_sopt
 {
-       __u32           DPs;
-       __u32           def_DP;
-       __u8            grio;
+       __u32           DPs;
+       __u32           def_DP;
+       __u8            grio;
+       __u8            flags;
+       __u16           pad1;
 };
 
 /* HTB section */
@@ -249,7 +258,11 @@ enum
        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;
@@ -287,9 +300,12 @@ enum
        TCA_HFSC_RSC,
        TCA_HFSC_FSC,
        TCA_HFSC_USC,
-       TCA_HFSC_MAX = TCA_HFSC_USC
+       __TCA_HFSC_MAX,
 };
 
+#define TCA_HFSC_MAX (__TCA_HFSC_MAX - 1)
+
+
 /* CBQ section */
 
 #define TC_CBQ_MAXPRIO         8
@@ -335,6 +351,7 @@ struct tc_cbq_ovl
 #define        TC_CBQ_OVL_DROP         3
 #define        TC_CBQ_OVL_RCLASSIC     4
        unsigned char   priority2;
+       __u16           pad;
        __u32           penalty;
 };
 
@@ -370,9 +387,10 @@ enum
        TCA_CBQ_RATE,
        TCA_CBQ_RTAB,
        TCA_CBQ_POLICE,
+       __TCA_CBQ_MAX,
 };
 
-#define TCA_CBQ_MAX    TCA_CBQ_POLICE
+#define TCA_CBQ_MAX    (__TCA_CBQ_MAX - 1)
 
 /* dsmark section */
 
@@ -382,10 +400,11 @@ enum {
        TCA_DSMARK_DEFAULT_INDEX,
        TCA_DSMARK_SET_TC_INDEX,
        TCA_DSMARK_MASK,
-       TCA_DSMARK_VALUE
+       TCA_DSMARK_VALUE,
+       __TCA_DSMARK_MAX,
 };
 
-#define TCA_DSMARK_MAX TCA_DSMARK_VALUE
+#define TCA_DSMARK_MAX (__TCA_DSMARK_MAX - 1)
 
 /* ATM  section */
 
@@ -396,19 +415,55 @@ enum {
        TCA_ATM_HDR,            /* LL header */
        TCA_ATM_EXCESS,         /* excess traffic class (0 for CLP)  */
        TCA_ATM_ADDR,           /* PVC address (for output only) */
-       TCA_ATM_STATE           /* VC state (ATM_VS_*; for output only) */
+       TCA_ATM_STATE,          /* VC state (ATM_VS_*; for output only) */
+       __TCA_ATM_MAX,
 };
 
-#define TCA_ATM_MAX    TCA_ATM_STATE
+#define TCA_ATM_MAX    (__TCA_ATM_MAX - 1)
 
 /* Network emulator */
+
+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;        /* added delay (us) */
        __u32   limit;          /* fifo limit (packets) */
        __u32   loss;           /* random packet loss (0=none ~0=100%) */
-       __u32   gap;            /* re-ordering gap (0 for delay all) */
+       __u32   gap;            /* re-ordering gap (0 for none) */
        __u32   duplicate;      /* random packet dup  (0=none ~0=100%) */
        __u32   jitter;         /* random jitter in latency (us) */
 };
+
+struct tc_netem_corr
+{
+       __u32   delay_corr;     /* delay correlation */
+       __u32   loss_corr;      /* packet loss correlation */
+       __u32   dup_corr;       /* duplicate correlation  */
+};
+
+struct tc_netem_reorder
+{
+       __u32   probability;
+       __u32   correlation;
+};
+
+struct tc_netem_corrupt
+{
+       __u32   probability;
+       __u32   correlation;
+};
+
+#define NETEM_DIST_SCALE       8192
+
 #endif