-Index: iproute2-2.6.25/include/linux/pkt_sched.h
-===================================================================
---- iproute2-2.6.25.orig/include/linux/pkt_sched.h 2008-05-01 00:37:45.000000000 +0100
-+++ iproute2-2.6.25/include/linux/pkt_sched.h 2008-05-01 20:30:49.000000000 +0100
-@@ -174,8 +174,38 @@ struct tc_sfq_qopt
- *
- * The only reason for this is efficiency, it is possible
- * to change these parameters in compile time.
-+ *
-+ * If you need to play with these values use esfq instead.
- */
-
-+/* ESFQ section */
-+
-+enum
-+{
-+ /* traditional */
-+ TCA_SFQ_HASH_CLASSIC,
-+ TCA_SFQ_HASH_DST,
-+ TCA_SFQ_HASH_SRC,
-+ /* conntrack */
-+ TCA_SFQ_HASH_CTORIGDST,
-+ TCA_SFQ_HASH_CTORIGSRC,
-+ TCA_SFQ_HASH_CTREPLDST,
-+ TCA_SFQ_HASH_CTREPLSRC,
-+ TCA_SFQ_HASH_CTNATCHG,
-+};
-+
-+struct tc_esfq_qopt
-+{
-+ unsigned quantum; /* Bytes per round allocated to flow */
-+ int perturb_period; /* Period of hash perturbation */
-+ __u32 limit; /* Maximal packets in queue */
-+ unsigned divisor; /* Hash divisor */
-+ unsigned flows; /* Maximal number of flows */
-+ unsigned hash_kind; /* Hash function to use for flow identification */
-+};
-+
-+
-+
- /* RED section */
-
- enum
-@@ -568,8 +598,37 @@ struct tc_sfq_xstats
- *
- * The only reason for this is efficiency, it is possible
- * to change these parameters in compile time.
-+ *
-+ * If you need to play with these values use esfq instead.
- */
-
-+/* ESFQ section */
-+
-+enum
-+{
-+ /* traditional */
-+ TCA_SFQ_HASH_CLASSIC,
-+ TCA_SFQ_HASH_DST,
-+ TCA_SFQ_HASH_SRC,
-+ /* conntrack */
-+ TCA_SFQ_HASH_CTORIGDST,
-+ TCA_SFQ_HASH_CTORIGSRC,
-+ TCA_SFQ_HASH_CTREPLDST,
-+ TCA_SFQ_HASH_CTREPLSRC,
-+ TCA_SFQ_HASH_CTNATCHG,
-+};
-+
-+struct tc_esfq_qopt
-+{
-+ unsigned quantum; /* Bytes per round allocated to flow */
-+ int perturb_period; /* Period of hash perturbation */
-+ __u32 limit; /* Maximal packets in queue */
-+ unsigned divisor; /* Hash divisor */
-+ unsigned flows; /* Maximal number of flows */
-+ unsigned hash_kind; /* Hash function to use for flow identification */
-+};
-+
-+
- /* RED section */
-
- enum
-Index: iproute2-2.6.25/tc/Makefile
-===================================================================
---- iproute2-2.6.25.orig/tc/Makefile 2008-05-01 00:30:13.000000000 +0100
-+++ iproute2-2.6.25/tc/Makefile 2008-05-01 20:30:49.000000000 +0100
-@@ -7,6 +7,7 @@ include ../Config
+---
+ include/linux/pkt_sched.h | 59 +++++++++++++
+ tc/Makefile | 1
+ tc/q_esfq.c | 200 ++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 260 insertions(+)
+
+--- a/tc/Makefile
++++ b/tc/Makefile
+@@ -8,6 +8,7 @@ SHARED_LIBS ?= y
TCMODULES :=
TCMODULES += q_fifo.o
TCMODULES += q_sfq.o
TCMODULES += q_red.o
TCMODULES += q_prio.o
TCMODULES += q_tbf.o
-Index: iproute2-2.6.25/tc/q_esfq.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ iproute2-2.6.25/tc/q_esfq.c 2008-05-01 20:31:09.000000000 +0100
+--- /dev/null
++++ b/tc/q_esfq.c
@@ -0,0 +1,200 @@
+/*
+ * q_esfq.c ESFQ.