SOURCES (LINUX_2_6): esfq-kernel.patch - from tarball http://fatooh.org/esf...
zbyniu
zbyniu at pld-linux.org
Mon May 19 12:16:51 CEST 2008
Author: zbyniu Date: Mon May 19 10:16:51 2008 GMT
Module: SOURCES Tag: LINUX_2_6
---- Log message:
- from tarball http://fatooh.org/esfq-2.6/sfq-2.6.24.1.tar.bz2
---- Files affected:
SOURCES:
esfq-kernel.patch (1.1.2.6 -> 1.1.2.7)
---- Diffs:
================================================================
Index: SOURCES/esfq-kernel.patch
diff -u SOURCES/esfq-kernel.patch:1.1.2.6 SOURCES/esfq-kernel.patch:1.1.2.7
--- SOURCES/esfq-kernel.patch:1.1.2.6 Mon Aug 13 02:18:34 2007
+++ SOURCES/esfq-kernel.patch Mon May 19 12:16:45 2008
@@ -1,12 +1,8 @@
-diff -Naur linux-2.6.21.5.orig/include/linux/pkt_sched.h linux-2.6.21.5/include/linux/pkt_sched.h
---- linux-2.6.21.5.orig/include/linux/pkt_sched.h 2007-06-11 11:37:06.000000000 -0700
-+++ linux-2.6.21.5/include/linux/pkt_sched.h 2007-06-22 22:53:46.000000000 -0700
-@@ -146,8 +146,37 @@
- *
- * The only reason for this is efficiency, it is possible
+diff -Naur linux-2.6.24.orig/include/linux/pkt_sched.h linux-2.6.24/include/linux/pkt_sched.h
+--- linux-2.6.24.orig/include/linux/pkt_sched.h 2008-01-24 14:58:37.000000000 -0800
++++ linux-2.6.24/include/linux/pkt_sched.h 2008-01-28 00:27:12.000000000 -0800
+@@ -157,6 +157,33 @@
* to change these parameters in compile time.
-+ *
-+ * If you need to play with these values, use esfq instead.
*/
+/* ESFQ section */
@@ -14,16 +10,16 @@
+enum
+{
+ /* traditional */
-+ TCA_SFQ_HASH_CLASSIC,
-+ TCA_SFQ_HASH_DST,
-+ TCA_SFQ_HASH_SRC,
-+ TCA_SFQ_HASH_FWMARK,
++ TCA_ESFQ_HASH_CLASSIC,
++ TCA_ESFQ_HASH_DST,
++ TCA_ESFQ_HASH_SRC,
++ TCA_ESFQ_HASH_FWMARK,
+ /* conntrack */
-+ TCA_SFQ_HASH_CTORIGDST,
-+ TCA_SFQ_HASH_CTORIGSRC,
-+ TCA_SFQ_HASH_CTREPLDST,
-+ TCA_SFQ_HASH_CTREPLSRC,
-+ TCA_SFQ_HASH_CTNATCHG,
++ TCA_ESFQ_HASH_CTORIGDST,
++ TCA_ESFQ_HASH_CTORIGSRC,
++ TCA_ESFQ_HASH_CTREPLDST,
++ TCA_ESFQ_HASH_CTREPLSRC,
++ TCA_ESFQ_HASH_CTNATCHG,
+};
+
+struct tc_esfq_qopt
@@ -39,10 +35,10 @@
/* RED section */
enum
-diff -Naur linux-2.6.21.5.orig/net/sched/Kconfig linux-2.6.21.5/net/sched/Kconfig
---- linux-2.6.21.5.orig/net/sched/Kconfig 2007-06-11 11:37:06.000000000 -0700
-+++ linux-2.6.21.5/net/sched/Kconfig 2007-06-23 14:11:02.000000000 -0700
-@@ -189,6 +189,37 @@
+diff -Naur linux-2.6.24.orig/net/sched/Kconfig linux-2.6.24/net/sched/Kconfig
+--- linux-2.6.24.orig/net/sched/Kconfig 2008-01-24 14:58:37.000000000 -0800
++++ linux-2.6.24/net/sched/Kconfig 2008-01-28 00:27:12.000000000 -0800
+@@ -139,6 +139,37 @@
To compile this code as a module, choose M here: the
module will be called sch_sfq.
@@ -68,7 +64,7 @@
+
+config NET_SCH_ESFQ_NFCT
+ bool "Connection Tracking Hash Types"
-+ depends on NET_SCH_ESFQ && NF_CONNTRACK
++ depends on NET_SCH_ESFQ && NF_CONNTRACK_ENABLED
+ ---help---
+ Say Y here to enable support for hashing based on netfilter connection
+ tracking information. This is useful for a router that is also using
@@ -80,9 +76,9 @@
config NET_SCH_TEQL
tristate "True Link Equalizer (TEQL)"
---help---
-diff -Naur linux-2.6.21.5.orig/net/sched/Makefile linux-2.6.21.5/net/sched/Makefile
---- linux-2.6.21.5.orig/net/sched/Makefile 2007-06-11 11:37:06.000000000 -0700
-+++ linux-2.6.21.5/net/sched/Makefile 2007-06-22 22:53:46.000000000 -0700
+diff -Naur linux-2.6.24.orig/net/sched/Makefile linux-2.6.24/net/sched/Makefile
+--- linux-2.6.24.orig/net/sched/Makefile 2008-01-24 14:58:37.000000000 -0800
++++ linux-2.6.24/net/sched/Makefile 2008-01-28 00:27:12.000000000 -0800
@@ -23,6 +23,7 @@
obj-$(CONFIG_NET_SCH_INGRESS) += sch_ingress.o
obj-$(CONFIG_NET_SCH_DSMARK) += sch_dsmark.o
@@ -91,10 +87,10 @@
obj-$(CONFIG_NET_SCH_TBF) += sch_tbf.o
obj-$(CONFIG_NET_SCH_TEQL) += sch_teql.o
obj-$(CONFIG_NET_SCH_PRIO) += sch_prio.o
-diff -Naur linux-2.6.21.5.orig/net/sched/sch_esfq.c linux-2.6.21.5/net/sched/sch_esfq.c
---- linux-2.6.21.5.orig/net/sched/sch_esfq.c 1969-12-31 16:00:00.000000000 -0800
-+++ linux-2.6.21.5/net/sched/sch_esfq.c 2007-06-23 19:18:00.000000000 -0700
-@@ -0,0 +1,702 @@
+diff -Naur linux-2.6.24.orig/net/sched/sch_esfq.c linux-2.6.24/net/sched/sch_esfq.c
+--- linux-2.6.24.orig/net/sched/sch_esfq.c 1969-12-31 16:00:00.000000000 -0800
++++ linux-2.6.24/net/sched/sch_esfq.c 2008-01-28 00:27:22.000000000 -0800
+@@ -0,0 +1,703 @@
+/*
+ * net/sched/sch_esfq.c Extended Stochastic Fairness Queueing discipline.
+ *
@@ -141,6 +137,7 @@
+#include <linux/notifier.h>
+#include <linux/init.h>
+#include <net/ip.h>
++#include <net/netlink.h>
+#include <linux/ipv6.h>
+#include <net/route.h>
+#include <linux/skbuff.h>
@@ -239,7 +236,7 @@
+ switch (skb->protocol) {
+ case __constant_htons(ETH_P_IP):
+ {
-+ struct iphdr *iph = skb->nh.iph;
++ struct iphdr *iph = ip_hdr(skb);
+ info.dst = iph->daddr;
+ info.src = iph->saddr;
+ if (!(iph->frag_off&htons(IP_MF|IP_OFFSET)) &&
@@ -255,7 +252,7 @@
+ }
+ case __constant_htons(ETH_P_IPV6):
+ {
-+ struct ipv6hdr *iph = skb->nh.ipv6h;
++ struct ipv6hdr *iph = ipv6_hdr(skb);
+ /* Hash ipv6 addresses into a u32. This isn't ideal,
+ * but the code is simple. */
+ info.dst = jhash2(iph->daddr.s6_addr32, 4, q->perturbation);
@@ -304,24 +301,24 @@
+#endif
+
+ switch(q->hash_kind) {
-+ case TCA_SFQ_HASH_CLASSIC:
++ case TCA_ESFQ_HASH_CLASSIC:
+ return esfq_jhash_3words(q, info.dst, info.src, info.proto);
-+ case TCA_SFQ_HASH_DST:
++ case TCA_ESFQ_HASH_DST:
+ return esfq_jhash_1word(q, info.dst);
-+ case TCA_SFQ_HASH_SRC:
++ case TCA_ESFQ_HASH_SRC:
+ return esfq_jhash_1word(q, info.src);
-+ case TCA_SFQ_HASH_FWMARK:
++ case TCA_ESFQ_HASH_FWMARK:
+ return esfq_jhash_1word(q, info.mark);
+#ifdef CONFIG_NET_SCH_ESFQ_NFCT
-+ case TCA_SFQ_HASH_CTORIGDST:
++ case TCA_ESFQ_HASH_CTORIGDST:
+ return esfq_jhash_1word(q, info.ctorigdst);
-+ case TCA_SFQ_HASH_CTORIGSRC:
++ case TCA_ESFQ_HASH_CTORIGSRC:
+ return esfq_jhash_1word(q, info.ctorigsrc);
-+ case TCA_SFQ_HASH_CTREPLDST:
++ case TCA_ESFQ_HASH_CTREPLDST:
+ return esfq_jhash_1word(q, info.ctrepldst);
-+ case TCA_SFQ_HASH_CTREPLSRC:
++ case TCA_ESFQ_HASH_CTREPLSRC:
+ return esfq_jhash_1word(q, info.ctreplsrc);
-+ case TCA_SFQ_HASH_CTNATCHG:
++ case TCA_ESFQ_HASH_CTNATCHG:
+ {
+ if (info.ctorigdst == info.ctreplsrc)
+ return esfq_jhash_1word(q, info.ctorigsrc);
@@ -580,28 +577,28 @@
+static unsigned int esfq_check_hash(unsigned int kind)
+{
+ switch (kind) {
-+ case TCA_SFQ_HASH_CTORIGDST:
-+ case TCA_SFQ_HASH_CTORIGSRC:
-+ case TCA_SFQ_HASH_CTREPLDST:
-+ case TCA_SFQ_HASH_CTREPLSRC:
-+ case TCA_SFQ_HASH_CTNATCHG:
++ case TCA_ESFQ_HASH_CTORIGDST:
++ case TCA_ESFQ_HASH_CTORIGSRC:
++ case TCA_ESFQ_HASH_CTREPLDST:
++ case TCA_ESFQ_HASH_CTREPLSRC:
++ case TCA_ESFQ_HASH_CTNATCHG:
+#ifndef CONFIG_NET_SCH_ESFQ_NFCT
+ {
+ if (net_ratelimit())
+ printk(KERN_WARNING "ESFQ: Conntrack hash types disabled in kernel config. Falling back to classic.\n");
-+ return TCA_SFQ_HASH_CLASSIC;
++ return TCA_ESFQ_HASH_CLASSIC;
+ }
+#endif
-+ case TCA_SFQ_HASH_CLASSIC:
-+ case TCA_SFQ_HASH_DST:
-+ case TCA_SFQ_HASH_SRC:
-+ case TCA_SFQ_HASH_FWMARK:
++ case TCA_ESFQ_HASH_CLASSIC:
++ case TCA_ESFQ_HASH_DST:
++ case TCA_ESFQ_HASH_SRC:
++ case TCA_ESFQ_HASH_FWMARK:
+ return kind;
+ default:
+ {
+ if (net_ratelimit())
+ printk(KERN_WARNING "ESFQ: Unknown hash type. Falling back to classic.\n");
-+ return TCA_SFQ_HASH_CLASSIC;
++ return TCA_ESFQ_HASH_CLASSIC;
+ }
+ }
+}
@@ -616,7 +613,7 @@
+ return -EINVAL;
+
+ q->perturbation = 0;
-+ q->hash_kind = TCA_SFQ_HASH_CLASSIC;
++ q->hash_kind = TCA_ESFQ_HASH_CLASSIC;
+ q->max_depth = 0;
+ if (opt == NULL) {
+ q->perturb_period = 0;
@@ -748,7 +745,7 @@
+static int esfq_dump(struct Qdisc *sch, struct sk_buff *skb)
+{
+ struct esfq_sched_data *q = qdisc_priv(sch);
-+ unsigned char *b = skb->tail;
++ unsigned char *b = skb_tail_pointer(skb);
+ struct tc_esfq_qopt opt;
+
+ opt.quantum = q->quantum;
@@ -764,7 +761,7 @@
+ return skb->len;
+
+rtattr_failure:
-+ skb_trim(skb, b - skb->data);
++ nlmsg_trim(skb, b);
+ return -1;
+}
+
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/esfq-kernel.patch?r1=1.1.2.6&r2=1.1.2.7&f=u
More information about the pld-cvs-commit
mailing list