net_sched: Add size table for qdiscs
[linux-2.6.git] / include / linux / pkt_sched.h
index d053add..e5de421 100644 (file)
@@ -77,12 +77,34 @@ struct tc_ratespec
 {
        unsigned char   cell_log;
        unsigned char   __reserved;
-       unsigned short  feature;
-       short           addend;
+       unsigned short  overhead;
+       short           cell_align;
        unsigned short  mpu;
        __u32           rate;
 };
 
+#define TC_RTAB_SIZE   1024
+
+struct tc_sizespec {
+       unsigned char   cell_log;
+       unsigned char   size_log;
+       short           cell_align;
+       int             overhead;
+       unsigned int    linklayer;
+       unsigned int    mpu;
+       unsigned int    mtu;
+       unsigned int    tsize;
+};
+
+enum {
+       TCA_STAB_UNSPEC,
+       TCA_STAB_BASE,
+       TCA_STAB_DATA,
+       __TCA_STAB_MAX
+};
+
+#define TCA_STAB_MAX (__TCA_STAB_MAX - 1)
+
 /* FIFO section */
 
 struct tc_fifo_qopt
@@ -93,6 +115,7 @@ struct tc_fifo_qopt
 /* PRIO section */
 
 #define TCQ_PRIO_BANDS 16
+#define TCQ_MIN_PRIO_BANDS 2
 
 struct tc_prio_qopt
 {
@@ -138,6 +161,11 @@ struct tc_sfq_qopt
        unsigned        flows;          /* Maximal number of flows  */
 };
 
+struct tc_sfq_xstats
+{
+       __s32           allot;
+};
+
 /*
  *  NOTE: limit, divisor and flows are hardwired to code at the moment.
  *
@@ -169,6 +197,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
@@ -220,8 +249,8 @@ struct tc_gred_sopt
        __u32           DPs;
        __u32           def_DP;
        __u8            grio;
-       __u8            pad1;
-       __u16           pad2;
+       __u8            flags;
+       __u16           pad1;
 };
 
 /* HTB section */
@@ -427,6 +456,7 @@ enum
        TCA_NETEM_CORR,
        TCA_NETEM_DELAY_DIST,
        TCA_NETEM_REORDER,
+       TCA_NETEM_CORRUPT,
        __TCA_NETEM_MAX,
 };
 
@@ -455,6 +485,12 @@ struct tc_netem_reorder
        __u32   correlation;
 };
 
+struct tc_netem_corrupt
+{
+       __u32   probability;
+       __u32   correlation;
+};
+
 #define NETEM_DIST_SCALE       8192
 
 #endif