]> git.proxmox.com Git - mirror_iproute2.git/blobdiff - include/uapi/linux/pkt_sched.h
Update kernel headers
[mirror_iproute2.git] / include / uapi / linux / pkt_sched.h
index bbe791b241682fafddfac2d40aaad2bc789eebe8..7307a29a103e5191acd829c745860b637721be30 100644 (file)
@@ -256,6 +256,7 @@ enum {
        TCA_RED_PARMS,
        TCA_RED_STAB,
        TCA_RED_MAX_P,
+       TCA_RED_FLAGS,          /* bitfield32 */
        __TCA_RED_MAX,
 };
 
@@ -268,12 +269,28 @@ struct tc_red_qopt {
        unsigned char   Wlog;           /* log(W)               */
        unsigned char   Plog;           /* log(P_max/(qth_max-qth_min)) */
        unsigned char   Scell_log;      /* cell size for idle damping */
+
+       /* This field can be used for flags that a RED-like qdisc has
+        * historically supported. E.g. when configuring RED, it can be used for
+        * ECN, HARDDROP and ADAPTATIVE. For SFQ it can be used for ECN,
+        * HARDDROP. Etc. Because this field has not been validated, and is
+        * copied back on dump, any bits besides those to which a given qdisc
+        * has assigned a historical meaning need to be considered for free use
+        * by userspace tools.
+        *
+        * Any further flags need to be passed differently, e.g. through an
+        * attribute (such as TCA_RED_FLAGS above). Such attribute should allow
+        * passing both recent and historic flags in one value.
+        */
        unsigned char   flags;
 #define TC_RED_ECN             1
 #define TC_RED_HARDDROP                2
 #define TC_RED_ADAPTATIVE      4
+#define TC_RED_NODROP          8
 };
 
+#define TC_RED_HISTORIC_FLAGS (TC_RED_ECN | TC_RED_HARDDROP | TC_RED_ADAPTATIVE)
+
 struct tc_red_xstats {
        __u32           early;          /* Early drops */
        __u32           pdrop;          /* Drops due to queue limits */
@@ -894,6 +911,8 @@ enum {
 
        TCA_FQ_CE_THRESHOLD,    /* DCTCP-like CE-marking threshold */
 
+       TCA_FQ_TIMER_SLACK,     /* timer slack */
+
        __TCA_FQ_MAX
 };