upgrade to Linux 2.6.16, yay
[openwrt.git] / openwrt / target / linux / generic-2.6 / patches / 106-netfilter_imq.patch
index 71d6ac0..8114db6 100644 (file)
@@ -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 <linux/netdevice.h>
  #include <linux/skbuff.h>