Author: zbyniu                       Date: Tue Feb 26 02:30:20 2008 GMT
Module: SOURCES                       Tag: LINUX_2_6
---- Log message:
- up to linux-2.6.24-imq.diff

---- Files affected:
SOURCES:
   kernel-imq.patch (1.1.2.1.2.5 -> 1.1.2.1.2.6) 

---- Diffs:

================================================================
Index: SOURCES/kernel-imq.patch
diff -u SOURCES/kernel-imq.patch:1.1.2.1.2.5 
SOURCES/kernel-imq.patch:1.1.2.1.2.6
--- SOURCES/kernel-imq.patch:1.1.2.1.2.5        Mon Jan 28 00:55:53 2008
+++ SOURCES/kernel-imq.patch    Tue Feb 26 03:30:14 2008
@@ -1,145 +1,7 @@
-diff -Nru linux-2.6.21.1-orig/drivers/net/Kconfig 
linux-2.6.21.1/drivers/net/Kconfig
---- linux-2.6.21.1-orig/drivers/net/Kconfig    2007-04-27 21:49:26.000000000 
+0000
-+++ linux-2.6.21.1/drivers/net/Kconfig 2007-06-02 21:43:55.000000000 +0000
-@@ -96,6 +96,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 -Nru linux-2.6.21.1-orig/drivers/net/Makefile 
linux-2.6.21.1/drivers/net/Makefile
---- linux-2.6.21.1-orig/drivers/net/Makefile   2007-04-27 21:49:26.000000000 
+0000
-+++ linux-2.6.21.1/drivers/net/Makefile        2007-06-02 21:43:55.000000000 
+0000
-@@ -0,0 +0,1 @@
-+obj-$(CONFIG_IMQ) += imq.o
-diff -Nru linux-2.6.21.1-orig/drivers/net/imq.c 
linux-2.6.21.1/drivers/net/imq.c
---- linux-2.6.21.1-orig/drivers/net/imq.c      1970-01-01 00:00:00.000000000 
+0000
-+++ linux-2.6.21.1/drivers/net/imq.c   2007-06-02 21:43:55.000000000 +0000
-@@ -0,0 +1,402 @@
+diff -Naurw 2.6.24/drivers/net/imq.c 2.6.24.imq/drivers/net/imq.c
+--- 2.6.24/drivers/net/imq.c   1969-12-31 21:00:00.000000000 -0300
++++ 2.6.24.imq/drivers/net/imq.c       2008-01-26 14:52:43.000000000 -0300
+@@ -0,0 +1,409 @@
 +/*
 + *             Pseudo-driver for the intermediate queue device.
 + *
@@ -208,7 +70,7 @@
 +
 +extern int qdisc_restart1(struct net_device *dev);
 +
-+static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff **pskb, 
const struct net_device *indev, const struct net_device *outdev, int 
(*okfn)(struct sk_buff *));
++static nf_hookfn imq_nf_hook;
 +
 +static struct nf_hook_ops imq_ingress_ipv4 = {
 +      .hook           = imq_nf_hook,
@@ -263,7 +125,7 @@
 +#if defined(CONFIG_IMQ_NUM_DEVS)
 +static unsigned int numdevs = CONFIG_IMQ_NUM_DEVS;
 +#else
-+static unsigned int numdevs = 2;
++static unsigned int numdevs = 16;
 +#endif
 +
 +static struct net_device *imq_devs;
@@ -363,12 +225,12 @@
 +      .outfn = imq_nf_queue,
 +};
 +
-+static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff **pskb,
++static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb,
 +                              const struct net_device *indev,
 +                              const struct net_device *outdev,
 +                              int (*okfn)(struct sk_buff *))
 +{
-+      if ((*pskb)->imq_flags & IMQ_F_ENQUEUE)
++      if (pskb->imq_flags & IMQ_F_ENQUEUE)
 +              return NF_QUEUE;
 +
 +      return NF_ACCEPT;
@@ -403,7 +265,7 @@
 +err5:
 +      nf_unregister_queue_handler(PF_INET6, &nfqh);
 +err4:
-+      nf_unregister_hook(&imq_egress_ipv6);
++      nf_unregister_hook(&imq_egress_ipv4);
 +#endif
 +err3:
 +      nf_unregister_hook(&imq_ingress_ipv4);
@@ -415,27 +277,26 @@
 +
 +static void __exit imq_unhook(void)
 +{
-+      nf_unregister_hook(&imq_ingress_ipv4);
-+      nf_unregister_hook(&imq_egress_ipv4);
-+      nf_unregister_queue_handler(PF_INET, &nfqh);
 +#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
 +      nf_unregister_hook(&imq_ingress_ipv6);
 +      nf_unregister_hook(&imq_egress_ipv6);
 +      nf_unregister_queue_handler(PF_INET6, &nfqh);
 +#endif
++      nf_unregister_hook(&imq_ingress_ipv4);
++      nf_unregister_hook(&imq_egress_ipv4);
++      nf_unregister_queue_handler(PF_INET, &nfqh);
 +}
 +
 +static int __init imq_dev_init(struct net_device *dev)
 +{
 +      dev->hard_start_xmit    = imq_dev_xmit;
 +      dev->type               = ARPHRD_VOID;
-+      dev->mtu                = 1500;
-+      dev->tx_queue_len       = 30;
++      dev->mtu                = 16000;
++      dev->tx_queue_len       = 11000;
 +      dev->flags              = IFF_NOARP;
-+      dev->priv = kmalloc(sizeof(struct net_device_stats), GFP_KERNEL);
++      dev->priv = kzalloc(sizeof(struct net_device_stats), GFP_KERNEL);
 +      if (dev->priv == NULL)
 +              return -ENOMEM;
-+      memset(dev->priv, 0, sizeof(struct net_device_stats));
 +      dev->get_stats          = imq_get_stats;
 +
 +      return 0;
@@ -446,7 +307,7 @@
 +      kfree(dev->priv);
 +}
 +
-+static int __init imq_init_devs(void)
++static int __init imq_init_devs(struct net *net)
 +{
 +      struct net_device *dev;
 +      int i,j;
@@ -458,19 +319,18 @@
 +              return -EINVAL;
 +      }
 +
-+      imq_devs = kmalloc(sizeof(struct net_device) * numdevs, GFP_KERNEL);
++      imq_devs = kzalloc(sizeof(struct net_device) * numdevs, GFP_KERNEL);
 +      if (!imq_devs)
 +              return -ENOMEM;
-+      memset(imq_devs, 0, sizeof(struct net_device) * numdevs);
 +
 +      /* we start counting at zero */
 +      numdevs--;
 +
 +      for (i = 0, dev = imq_devs; i <= numdevs; i++, dev++) {
-+              
 +              strcpy(dev->name, "imq%d");
 +              dev->init   = imq_dev_init;
 +              dev->uninit = imq_dev_uninit;
++              dev->nd_net = net;
 +
 +              if (register_netdev(dev) < 0)
 +                      goto err_register;
@@ -496,12 +356,12 @@
 +      kfree(imq_devs);
 +}
 +
-+static int __init imq_init_module(void)
++static __net_init int imq_init_module(struct net *net)
 +{
 +      int err;
 +
-+      if ((err = imq_init_devs())) {
-+              printk(KERN_ERR "IMQ: Error trying imq_init_devs()\n");
++      if ((err = imq_init_devs(net))) {
++              printk(KERN_ERR "IMQ: Error trying imq_init_devs(net)\n");
 +              return err;
 +      }
 +      if ((err = imq_init_hooks())) {
@@ -526,25 +386,178 @@
 +      return 0;
 +}
 +
-+static void __exit imq_cleanup_module(void)
++static __net_exit void imq_exit_module(struct net *net)
 +{
 +      imq_unhook();
 +      imq_cleanup_devs();
 +      printk(KERN_INFO "IMQ driver unloaded successfully.\n");
 +}
 +
++static struct pernet_operations __net_initdata imq_net_ops = {
++    .init = imq_init_module,
++    .exit = imq_exit_module,
++};
++ 
++static int __init imq_init(void)
++{
++    return register_pernet_device(&imq_net_ops);
++}
 +
-+module_init(imq_init_module);
-+module_exit(imq_cleanup_module);
++module_init(imq_init);
++//module_exit(imq_cleanup_module);
 +
 +module_param(numdevs, int, 0);
 +MODULE_PARM_DESC(numdevs, "number of IMQ devices (how many imq* devices will 
be created)");
 +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 -Nru linux-2.6.21.1-orig/include/linux/imq.h 
linux-2.6.21.1/include/linux/imq.h
---- linux-2.6.21.1-orig/include/linux/imq.h    1970-01-01 00:00:00.000000000 
+0000
-+++ linux-2.6.21.1/include/linux/imq.h 2007-06-02 21:43:55.000000000 +0000
+diff -Naurw 2.6.24/drivers/net/Kconfig 2.6.24.imq/drivers/net/Kconfig
+--- 2.6.24/drivers/net/Kconfig 2008-01-24 19:58:37.000000000 -0300
++++ 2.6.24.imq/drivers/net/Kconfig     2008-01-26 15:00:11.000000000 -0300
+@@ -112,6 +112,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_BB
++      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 16
++      depends on IMQ
++      default "16"
++      help
++
++              This settings defines how many IMQ devices will be
++              created.
++
++              The default value is 16.
++
++              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 -Naurw 2.6.24/drivers/net/Makefile 2.6.24.imq/drivers/net/Makefile
+--- 2.6.24/drivers/net/Makefile        2008-01-24 19:58:37.000000000 -0300
++++ 2.6.24.imq/drivers/net/Makefile    2008-01-26 15:00:11.000000000 -0300
+@@ -139,6 +139,7 @@
+ obj-$(CONFIG_XEN_NETDEV_FRONTEND) += xen-netfront.o
+ 
+ obj-$(CONFIG_DUMMY) += dummy.o
++obj-$(CONFIG_IMQ) += imq.o
+ obj-$(CONFIG_IFB) += ifb.o
+ obj-$(CONFIG_MACVLAN) += macvlan.o
+ obj-$(CONFIG_DE600) += de600.o
+diff -Naurw 2.6.24/include/linux/imq.h 2.6.24.imq/include/linux/imq.h
+--- 2.6.24/include/linux/imq.h 1969-12-31 21:00:00.000000000 -0300
++++ 2.6.24.imq/include/linux/imq.h     2008-01-26 15:00:11.000000000 -0300
 @@ -0,0 +1,9 @@
 +#ifndef _IMQ_H
 +#define _IMQ_H
@@ -555,9 +568,9 @@
 +#define IMQ_F_ENQUEUE  0x80
 +
 +#endif /* _IMQ_H */
-diff -Nru linux-2.6.21.1-orig/include/linux/netfilter_ipv4/ipt_IMQ.h 
linux-2.6.21.1/include/linux/netfilter_ipv4/ipt_IMQ.h
---- linux-2.6.21.1-orig/include/linux/netfilter_ipv4/ipt_IMQ.h 1970-01-01 
00:00:00.000000000 +0000
-+++ linux-2.6.21.1/include/linux/netfilter_ipv4/ipt_IMQ.h      2007-06-02 
21:43:55.000000000 +0000
+diff -Naurw 2.6.24/include/linux/netfilter_ipv4/ipt_IMQ.h 
2.6.24.imq/include/linux/netfilter_ipv4/ipt_IMQ.h
+--- 2.6.24/include/linux/netfilter_ipv4/ipt_IMQ.h      1969-12-31 
21:00:00.000000000 -0300
++++ 2.6.24.imq/include/linux/netfilter_ipv4/ipt_IMQ.h  2008-01-26 
15:00:11.000000000 -0300
 @@ -0,0 +1,8 @@
 +#ifndef _IPT_IMQ_H
 +#define _IPT_IMQ_H
@@ -567,9 +580,9 @@
 +};
 +
 +#endif /* _IPT_IMQ_H */
-diff -Nru linux-2.6.21.1-orig/include/linux/netfilter_ipv6/ip6t_IMQ.h 
linux-2.6.21.1/include/linux/netfilter_ipv6/ip6t_IMQ.h
---- linux-2.6.21.1-orig/include/linux/netfilter_ipv6/ip6t_IMQ.h        
1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21.1/include/linux/netfilter_ipv6/ip6t_IMQ.h     2007-06-02 
21:43:55.000000000 +0000
+diff -Naurw 2.6.24/include/linux/netfilter_ipv6/ip6t_IMQ.h 
2.6.24.imq/include/linux/netfilter_ipv6/ip6t_IMQ.h
+--- 2.6.24/include/linux/netfilter_ipv6/ip6t_IMQ.h     1969-12-31 
21:00:00.000000000 -0300
++++ 2.6.24.imq/include/linux/netfilter_ipv6/ip6t_IMQ.h 2008-01-26 
15:00:11.000000000 -0300
 @@ -0,0 +1,8 @@
 +#ifndef _IP6T_IMQ_H
 +#define _IP6T_IMQ_H
@@ -579,11 +592,11 @@
 +};
 +
 +#endif /* _IP6T_IMQ_H */
-diff -Nru linux-2.6.21.1-orig/include/linux/skbuff.h 
linux-2.6.21.1/include/linux/skbuff.h
---- linux-2.6.21.1-orig/include/linux/skbuff.h 2007-04-27 21:49:26.000000000 
+0000
-+++ linux-2.6.21.1/include/linux/skbuff.h      2007-06-02 21:43:55.000000000 
+0000
-@@ -294,6 +294,10 @@
- #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
+diff -Naurw 2.6.24/include/linux/skbuff.h 2.6.24.imq/include/linux/skbuff.h
+--- 2.6.24/include/linux/skbuff.h      2008-01-24 19:58:37.000000000 -0300
++++ 2.6.24.imq/include/linux/skbuff.h  2008-01-26 15:00:11.000000000 -0300
+@@ -295,6 +295,10 @@
+       struct nf_conntrack     *nfct;
        struct sk_buff          *nfct_reasm;
  #endif
 +#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
@@ -593,36 +606,47 @@
  #ifdef CONFIG_BRIDGE_NETFILTER
        struct nf_bridge_info   *nf_bridge;
  #endif
-diff -Nru linux-2.6.21.1-orig/net/ipv4/netfilter/Kconfig 
linux-2.6.21.1/net/ipv4/netfilter/Kconfig
---- linux-2.6.21.1-orig/net/ipv4/netfilter/Kconfig     2007-04-27 
21:49:26.000000000 +0000
-+++ linux-2.6.21.1/net/ipv4/netfilter/Kconfig  2007-06-02 21:43:55.000000000 
+0000
-@@ -565,6 +565,17 @@
- 
-         To compile it as a module, choose M here.  If unsure, say N.
+@@ -1728,6 +1732,10 @@
+       dst->nfct_reasm = src->nfct_reasm;
+       nf_conntrack_get_reasm(src->nfct_reasm);
+ #endif
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      dst->imq_flags = src->imq_flags;
++      dst->nf_info = src->nf_info;
++#endif
+ #ifdef CONFIG_BRIDGE_NETFILTER
+       dst->nf_bridge  = src->nf_bridge;
+       nf_bridge_get(src->nf_bridge);
+diff -Naurw 2.6.24/net/core/dev.c 2.6.24.imq/net/core/dev.c
+--- 2.6.24/net/core/dev.c      2008-01-24 19:58:37.000000000 -0300
++++ 2.6.24.imq/net/core/dev.c  2008-01-26 15:00:11.000000000 -0300
+@@ -95,6 +95,9 @@
+ #include <net/net_namespace.h>
+ #include <net/sock.h>
+ #include <linux/rtnetlink.h>
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++#include <linux/imq.h>
++#endif
+ #include <linux/proc_fs.h>
+ #include <linux/seq_file.h>
+ #include <linux/stat.h>
+@@ -1533,7 +1536,11 @@
+ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
+ {
+       if (likely(!skb->next)) {
+-              if (!list_empty(&ptype_all))
++              if (!list_empty(&ptype_all)
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++                  && !(skb->imq_flags & IMQ_F_ENQUEUE)
++#endif
++                  )
+                       dev_queue_xmit_nit(skb, dev);
  
-+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_TOS
-       tristate "TOS target support"
-       depends on IP_NF_MANGLE
-diff -Nru linux-2.6.21.1-orig/net/ipv4/netfilter/Makefile 
linux-2.6.21.1/net/ipv4/netfilter/Makefile
---- linux-2.6.21.1-orig/net/ipv4/netfilter/Makefile    2007-04-27 
21:49:26.000000000 +0000
-+++ linux-2.6.21.1/net/ipv4/netfilter/Makefile 2007-06-02 21:43:55.000000000 
+0000
-@@ -0,0 +0,1 @@
-+obj-$(CONFIG_IP_NF_TARGET_IMQ) += ipt_IMQ.o
-diff -Nru linux-2.6.21.1-orig/net/ipv4/netfilter/ipt_IMQ.c 
linux-2.6.21.1/net/ipv4/netfilter/ipt_IMQ.c
---- linux-2.6.21.1-orig/net/ipv4/netfilter/ipt_IMQ.c   1970-01-01 
00:00:00.000000000 +0000
-+++ linux-2.6.21.1/net/ipv4/netfilter/ipt_IMQ.c        2007-06-02 
21:44:24.000000000 +0000
-@@ -0,0 +1,70 @@
+               if (netif_needs_gso(dev, skb)) {
+diff -Naurw 2.6.24/net/ipv4/netfilter/ipt_IMQ.c 
2.6.24.imq/net/ipv4/netfilter/ipt_IMQ.c
+--- 2.6.24/net/ipv4/netfilter/ipt_IMQ.c        1969-12-31 21:00:00.000000000 
-0300
++++ 2.6.24.imq/net/ipv4/netfilter/ipt_IMQ.c    2008-01-26 15:00:11.000000000 
-0300
+@@ -0,0 +1,69 @@
 +/*
 + * This target marks packets to be enqueued to an imq device
 + */
@@ -632,7 +656,7 @@
 +#include <linux/netfilter_ipv4/ipt_IMQ.h>
 +#include <linux/imq.h>
 +
-+static unsigned int imq_target(struct sk_buff **pskb,
++static unsigned int imq_target(struct sk_buff *pskb,
 +                             const struct net_device *in,
 +                             const struct net_device *out,
 +                             unsigned int hooknum,
@@ -641,12 +665,12 @@
 +{
 +      struct ipt_imq_info *mr = (struct ipt_imq_info*)targinfo;
 +
-+      (*pskb)->imq_flags = mr->todev | IMQ_F_ENQUEUE;
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/kernel-imq.patch?r1=1.1.2.1.2.5&r2=1.1.2.1.2.6&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to