X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/f0aedfb2945f9fabb3efde3df0a790509f91f157..2c38903c12860750cdd677a28113afdd8a9590b3:/target/linux/generic-2.6/patches/106-netfilter_imq.patch diff --git a/target/linux/generic-2.6/patches/106-netfilter_imq.patch b/target/linux/generic-2.6/patches/106-netfilter_imq.patch index 71d6ac0fe..8114db621 100644 --- a/target/linux/generic-2.6/patches/106-netfilter_imq.patch +++ b/target/linux/generic-2.6/patches/106-netfilter_imq.patch @@ -1,150 +1,6 @@ -diff -Nrub linux-2.6.14/drivers/net/Kconfig linux-2.6.14-imq/drivers/net/Kconfig ---- linux-2.6.14/drivers/net/Kconfig 2005-10-28 00:02:08.000000000 +0000 -+++ linux-2.6.14-imq/drivers/net/Kconfig 2005-12-16 16:28:05.000000000 +0000 -@@ -82,6 +82,129 @@ - To compile this driver as a module, choose M here: the module - will be called eql. If unsure, say N. - -+config IMQ -+ tristate "IMQ (intermediate queueing device) support" -+ depends on NETDEVICES && NETFILTER -+ ---help--- -+ The IMQ device(s) is used as placeholder for QoS queueing disciplines. -+ Every packet entering/leaving the IP stack can be directed through -+ the IMQ device where it's enqueued/dequeued to the attached qdisc. -+ This allows you to treat network devices as classes and distribute -+ bandwidth among them. Iptables is used to specify through which IMQ -+ device, if any, packets travel. -+ -+ More information at: http://www.linuximq.net/ -+ -+ To compile this driver as a module, choose M here: the module -+ will be called imq. If unsure, say N. -+ -+choice -+ prompt "IMQ behavior (PRE/POSTROUTING)" -+ depends on IMQ -+ default IMQ_BEHAVIOR_BA -+ help -+ -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ IMQ can work in any of the following ways: -+ -+ PREROUTING | POSTROUTING -+ -----------------|------------------- -+ #1 After NAT | After NAT -+ #2 After NAT | Before NAT -+ #3 Before NAT | After NAT -+ #4 Before NAT | Before NAT -+ -+ The default behavior is to hook before NAT on PREROUTING -+ and after NAT on POSTROUTING (#3). -+ -+ This settings are specially usefull when trying to use IMQ -+ to shape NATed clients. -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+config IMQ_BEHAVIOR_AA -+ bool "IMQ AA" -+ help -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ Choosing this option will make IMQ hook like this: -+ -+ PREROUTING: After NAT -+ POSTROUTING: After NAT -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+config IMQ_BEHAVIOR_AB -+ bool "IMQ AB" -+ help -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ Choosing this option will make IMQ hook like this: -+ -+ PREROUTING: After NAT -+ POSTROUTING: Before NAT -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+config IMQ_BEHAVIOR_BA -+ bool "IMQ BA" -+ help -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ Choosing this option will make IMQ hook like this: -+ -+ PREROUTING: Before NAT -+ POSTROUTING: After NAT -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+config IMQ_BEHAVIOR_BB -+ bool "IMQ BB" -+ help -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ Choosing this option will make IMQ hook like this: -+ -+ PREROUTING: Before NAT -+ POSTROUTING: Before NAT -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+endchoice -+ -+config IMQ_NUM_DEVS -+ -+ int "Number of IMQ devices" -+ range 2 8 -+ depends on IMQ -+ default "2" -+ help -+ -+ This settings defines how many IMQ devices will be -+ created. -+ -+ The default value is 2. -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ - config TUN - tristate "Universal TUN/TAP device driver support" - select CRC32 -diff -Nrub linux-2.6.14/drivers/net/Makefile linux-2.6.14-imq/drivers/net/Makefile ---- linux-2.6.14/drivers/net/Makefile 2005-10-28 00:02:08.000000000 +0000 -+++ linux-2.6.14-imq/drivers/net/Makefile 2005-12-16 16:28:05.000000000 +0000 -@@ -119,6 +119,7 @@ - endif - - obj-$(CONFIG_DUMMY) += dummy.o -+obj-$(CONFIG_IMQ) += imq.o - obj-$(CONFIG_DE600) += de600.o - obj-$(CONFIG_DE620) += de620.o - obj-$(CONFIG_LANCE) += lance.o -diff -Nrub linux-2.6.14/drivers/net/imq.c linux-2.6.14-imq/drivers/net/imq.c ---- linux-2.6.14/drivers/net/imq.c 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.14-imq/drivers/net/imq.c 2005-12-16 16:49:02.000000000 +0000 +diff -Nur linux-2.6.16/drivers/net/imq.c linux-2.6.16-owrt/drivers/net/imq.c +--- linux-2.6.16/drivers/net/imq.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.16-owrt/drivers/net/imq.c 2006-03-20 12:59:23.000000000 +0100 @@ -0,0 +1,403 @@ +/* + * Pseudo-driver for the intermediate queue device. @@ -549,9 +405,153 @@ diff -Nrub linux-2.6.14/drivers/net/imq.c linux-2.6.14-imq/drivers/net/imq.c +MODULE_AUTHOR("http://www.linuximq.net"); +MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); +MODULE_LICENSE("GPL"); -diff -Nrub linux-2.6.14/include/linux/imq.h linux-2.6.14-imq/include/linux/imq.h ---- linux-2.6.14/include/linux/imq.h 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.14-imq/include/linux/imq.h 2005-12-16 16:28:05.000000000 +0000 +diff -Nur linux-2.6.16/drivers/net/Kconfig linux-2.6.16-owrt/drivers/net/Kconfig +--- linux-2.6.16/drivers/net/Kconfig 2006-03-20 06:53:29.000000000 +0100 ++++ linux-2.6.16-owrt/drivers/net/Kconfig 2006-03-20 12:59:23.000000000 +0100 +@@ -93,6 +93,129 @@ + To compile this driver as a module, choose M here: the module + will be called eql. If unsure, say N. + ++config IMQ ++ tristate "IMQ (intermediate queueing device) support" ++ depends on NETDEVICES && NETFILTER ++ ---help--- ++ The IMQ device(s) is used as placeholder for QoS queueing disciplines. ++ Every packet entering/leaving the IP stack can be directed through ++ the IMQ device where it's enqueued/dequeued to the attached qdisc. ++ This allows you to treat network devices as classes and distribute ++ bandwidth among them. Iptables is used to specify through which IMQ ++ device, if any, packets travel. ++ ++ More information at: http://www.linuximq.net/ ++ ++ To compile this driver as a module, choose M here: the module ++ will be called imq. If unsure, say N. ++ ++choice ++ prompt "IMQ behavior (PRE/POSTROUTING)" ++ depends on IMQ ++ default IMQ_BEHAVIOR_BA ++ help ++ ++ This settings defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ IMQ can work in any of the following ways: ++ ++ PREROUTING | POSTROUTING ++ -----------------|------------------- ++ #1 After NAT | After NAT ++ #2 After NAT | Before NAT ++ #3 Before NAT | After NAT ++ #4 Before NAT | Before NAT ++ ++ The default behavior is to hook before NAT on PREROUTING ++ and after NAT on POSTROUTING (#3). ++ ++ This settings are specially usefull when trying to use IMQ ++ to shape NATed clients. ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_AA ++ bool "IMQ AA" ++ help ++ This settings defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: After NAT ++ POSTROUTING: After NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_AB ++ bool "IMQ AB" ++ help ++ This settings defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: After NAT ++ POSTROUTING: Before NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_BA ++ bool "IMQ BA" ++ help ++ This settings defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: Before NAT ++ POSTROUTING: After NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_BB ++ bool "IMQ BB" ++ help ++ This settings defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: Before NAT ++ POSTROUTING: Before NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++endchoice ++ ++config IMQ_NUM_DEVS ++ ++ int "Number of IMQ devices" ++ range 2 8 ++ depends on IMQ ++ default "2" ++ help ++ ++ This settings defines how many IMQ devices will be ++ created. ++ ++ The default value is 2. ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ + config TUN + tristate "Universal TUN/TAP device driver support" + select CRC32 +diff -Nur linux-2.6.16/drivers/net/Makefile linux-2.6.16-owrt/drivers/net/Makefile +--- linux-2.6.16/drivers/net/Makefile 2006-03-20 06:53:29.000000000 +0100 ++++ linux-2.6.16-owrt/drivers/net/Makefile 2006-03-20 13:00:13.000000000 +0100 +@@ -125,6 +125,7 @@ + endif + + obj-$(CONFIG_DUMMY) += dummy.o ++obj-$(CONFIG_IMQ) += imq.o + obj-$(CONFIG_IFB) += ifb.o + obj-$(CONFIG_DE600) += de600.o + obj-$(CONFIG_DE620) += de620.o +diff -Nur linux-2.6.16/include/linux/imq.h linux-2.6.16-owrt/include/linux/imq.h +--- linux-2.6.16/include/linux/imq.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.16-owrt/include/linux/imq.h 2006-03-20 12:59:23.000000000 +0100 @@ -0,0 +1,9 @@ +#ifndef _IMQ_H +#define _IMQ_H @@ -562,9 +562,9 @@ diff -Nrub linux-2.6.14/include/linux/imq.h linux-2.6.14-imq/include/linux/imq.h +#define IMQ_F_ENQUEUE 0x80 + +#endif /* _IMQ_H */ -diff -Nrub linux-2.6.14/include/linux/netfilter_ipv4/ipt_IMQ.h linux-2.6.14-imq/include/linux/netfilter_ipv4/ipt_IMQ.h ---- linux-2.6.14/include/linux/netfilter_ipv4/ipt_IMQ.h 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.14-imq/include/linux/netfilter_ipv4/ipt_IMQ.h 2005-12-16 16:28:05.000000000 +0000 +diff -Nur linux-2.6.16/include/linux/netfilter_ipv4/ipt_IMQ.h linux-2.6.16-owrt/include/linux/netfilter_ipv4/ipt_IMQ.h +--- linux-2.6.16/include/linux/netfilter_ipv4/ipt_IMQ.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.16-owrt/include/linux/netfilter_ipv4/ipt_IMQ.h 2006-03-20 12:59:23.000000000 +0100 @@ -0,0 +1,8 @@ +#ifndef _IPT_IMQ_H +#define _IPT_IMQ_H @@ -574,9 +574,9 @@ diff -Nrub linux-2.6.14/include/linux/netfilter_ipv4/ipt_IMQ.h linux-2.6.14-imq/ +}; + +#endif /* _IPT_IMQ_H */ -diff -Nrub linux-2.6.14/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-2.6.14-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h ---- linux-2.6.14/include/linux/netfilter_ipv6/ip6t_IMQ.h 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.14-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h 2005-12-16 16:28:05.000000000 +0000 +diff -Nur linux-2.6.16/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-2.6.16-owrt/include/linux/netfilter_ipv6/ip6t_IMQ.h +--- linux-2.6.16/include/linux/netfilter_ipv6/ip6t_IMQ.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.16-owrt/include/linux/netfilter_ipv6/ip6t_IMQ.h 2006-03-20 12:59:23.000000000 +0100 @@ -0,0 +1,8 @@ +#ifndef _IP6T_IMQ_H +#define _IP6T_IMQ_H @@ -586,12 +586,12 @@ diff -Nrub linux-2.6.14/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-2.6.14-imq +}; + +#endif /* _IP6T_IMQ_H */ -diff -Nrub linux-2.6.14/include/linux/skbuff.h linux-2.6.14-imq/include/linux/skbuff.h ---- linux-2.6.14/include/linux/skbuff.h 2005-10-28 00:02:08.000000000 +0000 -+++ linux-2.6.14-imq/include/linux/skbuff.h 2005-12-16 16:28:05.000000000 +0000 -@@ -271,6 +271,10 @@ - #if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE) - __u8 ipvs_property:1; +diff -Nur linux-2.6.16/include/linux/skbuff.h linux-2.6.16-owrt/include/linux/skbuff.h +--- linux-2.6.16/include/linux/skbuff.h 2006-03-20 06:53:29.000000000 +0100 ++++ linux-2.6.16-owrt/include/linux/skbuff.h 2006-03-20 12:59:23.000000000 +0100 +@@ -275,6 +275,10 @@ + #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) + struct sk_buff *nfct_reasm; #endif +#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) + unsigned char imq_flags; @@ -600,12 +600,12 @@ diff -Nrub linux-2.6.14/include/linux/skbuff.h linux-2.6.14-imq/include/linux/sk #ifdef CONFIG_BRIDGE_NETFILTER struct nf_bridge_info *nf_bridge; #endif -diff -Nrub linux-2.6.14/net/core/skbuff.c linux-2.6.14-imq/net/core/skbuff.c ---- linux-2.6.14/net/core/skbuff.c 2005-10-28 00:02:08.000000000 +0000 -+++ linux-2.6.14-imq/net/core/skbuff.c 2005-12-16 16:28:05.000000000 +0000 -@@ -413,6 +413,10 @@ - #if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE) - C(ipvs_property); +diff -Nur linux-2.6.16/net/core/skbuff.c linux-2.6.16-owrt/net/core/skbuff.c +--- linux-2.6.16/net/core/skbuff.c 2006-03-20 06:53:29.000000000 +0100 ++++ linux-2.6.16-owrt/net/core/skbuff.c 2006-03-20 12:59:23.000000000 +0100 +@@ -425,6 +425,10 @@ + C(nfct_reasm); + nf_conntrack_get_reasm(skb->nfct_reasm); #endif +#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) + C(imq_flags); @@ -614,7 +614,7 @@ diff -Nrub linux-2.6.14/net/core/skbuff.c linux-2.6.14-imq/net/core/skbuff.c #ifdef CONFIG_BRIDGE_NETFILTER C(nf_bridge); nf_bridge_get(skb->nf_bridge); -@@ -473,6 +477,10 @@ +@@ -489,6 +493,10 @@ #if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE) new->ipvs_property = old->ipvs_property; #endif @@ -625,41 +625,9 @@ diff -Nrub linux-2.6.14/net/core/skbuff.c linux-2.6.14-imq/net/core/skbuff.c #ifdef CONFIG_BRIDGE_NETFILTER new->nf_bridge = old->nf_bridge; nf_bridge_get(old->nf_bridge); -diff -Nrub linux-2.6.14/net/ipv4/netfilter/Kconfig linux-2.6.14-imq/net/ipv4/netfilter/Kconfig ---- linux-2.6.14/net/ipv4/netfilter/Kconfig 2005-10-28 00:02:08.000000000 +0000 -+++ linux-2.6.14-imq/net/ipv4/netfilter/Kconfig 2005-12-16 16:28:05.000000000 +0000 -@@ -489,6 +489,17 @@ - - To compile it as a module, choose M here. If unsure, say N. - -+config IP_NF_TARGET_IMQ -+ tristate "IMQ target support" -+ depends on IP_NF_MANGLE -+ help -+ This option adds a `IMQ' target which is used to specify if and -+ to which IMQ device packets should get enqueued/dequeued. -+ -+ For more information visit: http://www.linuximq.net/ -+ -+ To compile it as a module, choose M here. If unsure, say N. -+ - config IP_NF_TARGET_LOG - tristate "LOG target support" - depends on IP_NF_IPTABLES -diff -Nrub linux-2.6.14/net/ipv4/netfilter/Makefile linux-2.6.14-imq/net/ipv4/netfilter/Makefile ---- linux-2.6.14/net/ipv4/netfilter/Makefile 2005-10-28 00:02:08.000000000 +0000 -+++ linux-2.6.14-imq/net/ipv4/netfilter/Makefile 2005-12-16 16:28:05.000000000 +0000 -@@ -80,6 +80,7 @@ - obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o - obj-$(CONFIG_IP_NF_TARGET_DSCP) += ipt_DSCP.o - obj-$(CONFIG_IP_NF_TARGET_MARK) += ipt_MARK.o -+obj-$(CONFIG_IP_NF_TARGET_IMQ) += ipt_IMQ.o - obj-$(CONFIG_IP_NF_TARGET_MASQUERADE) += ipt_MASQUERADE.o - obj-$(CONFIG_IP_NF_TARGET_REDIRECT) += ipt_REDIRECT.o - obj-$(CONFIG_IP_NF_TARGET_NETMAP) += ipt_NETMAP.o -diff -Nrub linux-2.6.14/net/ipv4/netfilter/ipt_IMQ.c linux-2.6.14-imq/net/ipv4/netfilter/ipt_IMQ.c ---- linux-2.6.14/net/ipv4/netfilter/ipt_IMQ.c 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.14-imq/net/ipv4/netfilter/ipt_IMQ.c 2005-12-16 16:28:05.000000000 +0000 +diff -Nur linux-2.6.16/net/ipv4/netfilter/ipt_IMQ.c linux-2.6.16-owrt/net/ipv4/netfilter/ipt_IMQ.c +--- linux-2.6.16/net/ipv4/netfilter/ipt_IMQ.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.16-owrt/net/ipv4/netfilter/ipt_IMQ.c 2006-03-20 12:59:23.000000000 +0100 @@ -0,0 +1,80 @@ +/* + * This target marks packets to be enqueued to an imq device @@ -741,39 +709,41 @@ diff -Nrub linux-2.6.14/net/ipv4/netfilter/ipt_IMQ.c linux-2.6.14-imq/net/ipv4/n +MODULE_AUTHOR("http://www.linuximq.net"); +MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); +MODULE_LICENSE("GPL"); -diff -Nrub linux-2.6.14/net/ipv6/netfilter/Kconfig linux-2.6.14-imq/net/ipv6/netfilter/Kconfig ---- linux-2.6.14/net/ipv6/netfilter/Kconfig 2005-10-28 00:02:08.000000000 +0000 -+++ linux-2.6.14-imq/net/ipv6/netfilter/Kconfig 2005-12-16 16:28:05.000000000 +0000 -@@ -190,6 +190,15 @@ +diff -Nur linux-2.6.16/net/ipv4/netfilter/Kconfig linux-2.6.16-owrt/net/ipv4/netfilter/Kconfig +--- linux-2.6.16/net/ipv4/netfilter/Kconfig 2006-03-20 12:58:53.000000000 +0100 ++++ linux-2.6.16-owrt/net/ipv4/netfilter/Kconfig 2006-03-20 12:59:23.000000000 +0100 +@@ -351,6 +351,17 @@ To compile it as a module, choose M here. If unsure, say N. -+config IP6_NF_TARGET_IMQ -+ tristate "IMQ target support" -+ depends on IP6_NF_MANGLE -+ help -+ This option adds a `IMQ' target which is used to specify if and -+ to which imq device packets should get enqueued/dequeued. ++config IP_NF_TARGET_IMQ ++ tristate "IMQ target support" ++ depends on IP_NF_MANGLE ++ help ++ This option adds a `IMQ' target which is used to specify if and ++ to which IMQ device packets should get enqueued/dequeued. + -+ To compile it as a module, choose M here. If unsure, say N. ++ For more information visit: http://www.linuximq.net/ + - config IP6_NF_TARGET_LOG ++ To compile it as a module, choose M here. If unsure, say N. ++ + config IP_NF_TARGET_LOG tristate "LOG target support" - depends on IP6_NF_FILTER -diff -Nrub linux-2.6.14/net/ipv6/netfilter/Makefile linux-2.6.14-imq/net/ipv6/netfilter/Makefile ---- linux-2.6.14/net/ipv6/netfilter/Makefile 2005-10-28 00:02:08.000000000 +0000 -+++ linux-2.6.14-imq/net/ipv6/netfilter/Makefile 2005-12-16 16:28:05.000000000 +0000 -@@ -6,6 +6,7 @@ - obj-$(CONFIG_IP6_NF_IPTABLES) += ip6_tables.o - obj-$(CONFIG_IP6_NF_MATCH_LIMIT) += ip6t_limit.o - obj-$(CONFIG_IP6_NF_MATCH_MARK) += ip6t_mark.o -+obj-$(CONFIG_IP6_NF_TARGET_IMQ) += ip6t_IMQ.o - obj-$(CONFIG_IP6_NF_MATCH_LENGTH) += ip6t_length.o - obj-$(CONFIG_IP6_NF_MATCH_MAC) += ip6t_mac.o - obj-$(CONFIG_IP6_NF_MATCH_RT) += ip6t_rt.o -diff -Nrub linux-2.6.14/net/ipv6/netfilter/ip6t_IMQ.c linux-2.6.14-imq/net/ipv6/netfilter/ip6t_IMQ.c ---- linux-2.6.14/net/ipv6/netfilter/ip6t_IMQ.c 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.14-imq/net/ipv6/netfilter/ip6t_IMQ.c 2005-12-16 16:28:05.000000000 +0000 + depends on IP_NF_IPTABLES +diff -Nur linux-2.6.16/net/ipv4/netfilter/Makefile linux-2.6.16-owrt/net/ipv4/netfilter/Makefile +--- linux-2.6.16/net/ipv4/netfilter/Makefile 2006-03-20 12:58:53.000000000 +0100 ++++ linux-2.6.16-owrt/net/ipv4/netfilter/Makefile 2006-03-20 13:01:12.000000000 +0100 +@@ -67,6 +67,7 @@ + obj-$(CONFIG_IP_NF_TARGET_TOS) += ipt_TOS.o + obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o + obj-$(CONFIG_IP_NF_TARGET_DSCP) += ipt_DSCP.o ++obj-$(CONFIG_IP_NF_TARGET_IMQ) += ipt_IMQ.o + obj-$(CONFIG_IP_NF_TARGET_MASQUERADE) += ipt_MASQUERADE.o + obj-$(CONFIG_IP_NF_TARGET_REDIRECT) += ipt_REDIRECT.o + obj-$(CONFIG_IP_NF_TARGET_NETMAP) += ipt_NETMAP.o +diff -Nur linux-2.6.16/net/ipv6/netfilter/ip6t_IMQ.c linux-2.6.16-owrt/net/ipv6/netfilter/ip6t_IMQ.c +--- linux-2.6.16/net/ipv6/netfilter/ip6t_IMQ.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.16-owrt/net/ipv6/netfilter/ip6t_IMQ.c 2006-03-20 12:59:23.000000000 +0100 @@ -0,0 +1,80 @@ +/* + * This target marks packets to be enqueued to an imq device @@ -855,9 +825,39 @@ diff -Nrub linux-2.6.14/net/ipv6/netfilter/ip6t_IMQ.c linux-2.6.14-imq/net/ipv6/ +MODULE_AUTHOR("http://www.linuximq.net"); +MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); +MODULE_LICENSE("GPL"); -diff -Nrub linux-2.6.14/net/sched/sch_generic.c linux-2.6.14-imq/net/sched/sch_generic.c ---- linux-2.6.14/net/sched/sch_generic.c 2005-10-28 00:02:08.000000000 +0000 -+++ linux-2.6.14-imq/net/sched/sch_generic.c 2005-12-16 16:28:05.000000000 +0000 +diff -Nur linux-2.6.16/net/ipv6/netfilter/Kconfig linux-2.6.16-owrt/net/ipv6/netfilter/Kconfig +--- linux-2.6.16/net/ipv6/netfilter/Kconfig 2006-03-20 06:53:29.000000000 +0100 ++++ linux-2.6.16-owrt/net/ipv6/netfilter/Kconfig 2006-03-20 12:59:23.000000000 +0100 +@@ -154,6 +154,15 @@ + + To compile it as a module, choose M here. If unsure, say N. + ++config IP6_NF_TARGET_IMQ ++ tristate "IMQ target support" ++ depends on IP6_NF_MANGLE ++ help ++ This option adds a `IMQ' target which is used to specify if and ++ to which imq device packets should get enqueued/dequeued. ++ ++ To compile it as a module, choose M here. If unsure, say N. ++ + config IP6_NF_TARGET_LOG + tristate "LOG target support" + depends on IP6_NF_FILTER +diff -Nur linux-2.6.16/net/ipv6/netfilter/Makefile linux-2.6.16-owrt/net/ipv6/netfilter/Makefile +--- linux-2.6.16/net/ipv6/netfilter/Makefile 2006-03-20 06:53:29.000000000 +0100 ++++ linux-2.6.16-owrt/net/ipv6/netfilter/Makefile 2006-03-20 13:02:14.000000000 +0100 +@@ -4,6 +4,7 @@ + + # Link order matters here. + obj-$(CONFIG_IP6_NF_IPTABLES) += ip6_tables.o ++obj-$(CONFIG_IP6_NF_TARGET_IMQ) += ip6t_IMQ.o + obj-$(CONFIG_IP6_NF_MATCH_RT) += ip6t_rt.o + obj-$(CONFIG_IP6_NF_MATCH_OPTS) += ip6t_hbh.o ip6t_dst.o + obj-$(CONFIG_IP6_NF_MATCH_IPV6HEADER) += ip6t_ipv6header.o +diff -Nur linux-2.6.16/net/sched/sch_generic.c linux-2.6.16-owrt/net/sched/sch_generic.c +--- linux-2.6.16/net/sched/sch_generic.c 2006-03-20 06:53:29.000000000 +0100 ++++ linux-2.6.16-owrt/net/sched/sch_generic.c 2006-03-20 12:59:23.000000000 +0100 @@ -29,6 +29,9 @@ #include #include