tc/q_esfq.c | 200 ++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 260 insertions(+)
---- iproute2-2.6.35.orig/include/linux/pkt_sched.h
-+++ iproute2-2.6.35/include/linux/pkt_sched.h
-@@ -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
-@@ -579,8 +609,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 {
---- iproute2-2.6.35.orig/tc/Makefile
-+++ iproute2-2.6.35/tc/Makefile
+--- a/tc/Makefile
++++ b/tc/Makefile
@@ -8,6 +8,7 @@ SHARED_LIBS ?= y
TCMODULES :=
TCMODULES += q_fifo.o
TCMODULES += q_prio.o
TCMODULES += q_tbf.o
--- /dev/null
-+++ iproute2-2.6.35/tc/q_esfq.c
++++ b/tc/q_esfq.c
@@ -0,0 +1,200 @@
+/*
+ * q_esfq.c ESFQ.