mirror of https://github.com/hak5/openwrt.git
generic-2.6: update IMQ patch to the official version for 2.6.25, refresh patches
SVN-Revision: 11551lede-17.01
parent
cd1be4c352
commit
1d56e2e1d4
|
@ -15,8 +15,6 @@ Date: Wed May 21 14:08:38 2008 -0700
|
||||||
Signed-off-by: Patrick McHardy <kaber@trash.net>
|
Signed-off-by: Patrick McHardy <kaber@trash.net>
|
||||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
|
|
||||||
index e4c6659..0c5eb7e 100644
|
|
||||||
--- a/include/linux/netfilter.h
|
--- a/include/linux/netfilter.h
|
||||||
+++ b/include/linux/netfilter.h
|
+++ b/include/linux/netfilter.h
|
||||||
@@ -3,7 +3,6 @@
|
@@ -3,7 +3,6 @@
|
||||||
|
@ -26,17 +24,15 @@ index e4c6659..0c5eb7e 100644
|
||||||
-#include <linux/types.h>
|
-#include <linux/types.h>
|
||||||
#include <linux/skbuff.h>
|
#include <linux/skbuff.h>
|
||||||
#include <linux/net.h>
|
#include <linux/net.h>
|
||||||
#include <linux/netdevice.h>
|
#include <linux/if.h>
|
||||||
@@ -14,6 +13,7 @@
|
@@ -12,6 +11,7 @@
|
||||||
|
#include <linux/wait.h>
|
||||||
#include <linux/list.h>
|
#include <linux/list.h>
|
||||||
#include <net/net_namespace.h>
|
|
||||||
#endif
|
#endif
|
||||||
+#include <linux/types.h>
|
+#include <linux/types.h>
|
||||||
#include <linux/compiler.h>
|
#include <linux/compiler.h>
|
||||||
|
|
||||||
/* Responses from hook functions. */
|
/* Responses from hook functions. */
|
||||||
diff --git a/include/linux/netfilter_arp/arp_tables.h b/include/linux/netfilter_arp/arp_tables.h
|
|
||||||
index dd9c97f..590ac3d 100644
|
|
||||||
--- a/include/linux/netfilter_arp/arp_tables.h
|
--- a/include/linux/netfilter_arp/arp_tables.h
|
||||||
+++ b/include/linux/netfilter_arp/arp_tables.h
|
+++ b/include/linux/netfilter_arp/arp_tables.h
|
||||||
@@ -11,11 +11,11 @@
|
@@ -11,11 +11,11 @@
|
||||||
|
@ -52,8 +48,6 @@ index dd9c97f..590ac3d 100644
|
||||||
#include <linux/compiler.h>
|
#include <linux/compiler.h>
|
||||||
#include <linux/netfilter_arp.h>
|
#include <linux/netfilter_arp.h>
|
||||||
|
|
||||||
diff --git a/include/linux/netfilter_ipv4/ip_tables.h b/include/linux/netfilter_ipv4/ip_tables.h
|
|
||||||
index bfc889f..092bd50 100644
|
|
||||||
--- a/include/linux/netfilter_ipv4/ip_tables.h
|
--- a/include/linux/netfilter_ipv4/ip_tables.h
|
||||||
+++ b/include/linux/netfilter_ipv4/ip_tables.h
|
+++ b/include/linux/netfilter_ipv4/ip_tables.h
|
||||||
@@ -17,11 +17,11 @@
|
@@ -17,11 +17,11 @@
|
||||||
|
@ -69,8 +63,6 @@ index bfc889f..092bd50 100644
|
||||||
#include <linux/compiler.h>
|
#include <linux/compiler.h>
|
||||||
#include <linux/netfilter_ipv4.h>
|
#include <linux/netfilter_ipv4.h>
|
||||||
|
|
||||||
diff --git a/include/linux/netfilter_ipv6/ip6_tables.h b/include/linux/netfilter_ipv6/ip6_tables.h
|
|
||||||
index f2507dc..1089e33 100644
|
|
||||||
--- a/include/linux/netfilter_ipv6/ip6_tables.h
|
--- a/include/linux/netfilter_ipv6/ip6_tables.h
|
||||||
+++ b/include/linux/netfilter_ipv6/ip6_tables.h
|
+++ b/include/linux/netfilter_ipv6/ip6_tables.h
|
||||||
@@ -17,11 +17,11 @@
|
@@ -17,11 +17,11 @@
|
||||||
|
|
|
@ -1,173 +1,3 @@
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
drivers/net/Kconfig | 123 ++++++++
|
|
||||||
drivers/net/Makefile | 1
|
|
||||||
drivers/net/imq.c | 474 +++++++++++++++++++++++++++++++
|
|
||||||
include/linux/imq.h | 9 +
|
|
||||||
include/linux/netfilter_ipv4/ipt_IMQ.h | 8 +
|
|
||||||
include/linux/netfilter_ipv6/ip6t_IMQ.h | 8 +
|
|
||||||
include/linux/skbuff.h | 8 +
|
|
||||||
net/core/dev.c | 9 +
|
|
||||||
net/ipv4/netfilter/Kconfig | 11 +
|
|
||||||
net/ipv4/netfilter/Makefile | 1
|
|
||||||
net/ipv4/netfilter/ipt_IMQ.c | 69 +++++
|
|
||||||
net/ipv6/netfilter/Kconfig | 9 +
|
|
||||||
net/ipv6/netfilter/Makefile | 1
|
|
||||||
net/ipv6/netfilter/ip6t_IMQ.c | 69 +++++
|
|
||||||
net/sched/sch_generic.c | 1
|
|
||||||
15 files changed, 800 insertions(+), 1 deletions(-)
|
|
||||||
create mode 100644 drivers/net/imq.c
|
|
||||||
create mode 100644 include/linux/imq.h
|
|
||||||
create mode 100644 include/linux/netfilter_ipv4/ipt_IMQ.h
|
|
||||||
create mode 100644 include/linux/netfilter_ipv6/ip6t_IMQ.h
|
|
||||||
create mode 100644 net/ipv4/netfilter/ipt_IMQ.c
|
|
||||||
create mode 100644 net/ipv6/netfilter/ip6t_IMQ.c
|
|
||||||
|
|
||||||
|
|
||||||
--- a/drivers/net/Kconfig
|
|
||||||
+++ b/drivers/net/Kconfig
|
|
||||||
@@ -117,6 +117,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
|
|
||||||
--- a/drivers/net/Makefile
|
|
||||||
+++ b/drivers/net/Makefile
|
|
||||||
@@ -143,6 +143,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
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/net/imq.c
|
+++ b/drivers/net/imq.c
|
||||||
@@ -0,0 +1,474 @@
|
@@ -0,0 +1,474 @@
|
||||||
|
@ -220,13 +50,13 @@
|
||||||
+ * I didn't forget anybody). I apologize again for my lack of time.
|
+ * I didn't forget anybody). I apologize again for my lack of time.
|
||||||
+ *
|
+ *
|
||||||
+ *
|
+ *
|
||||||
+ * 2008/06/07 - Changed imq.c to use qdisc_run() instead of
|
+ * 2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead
|
||||||
+ * qdisc_restart() and moved qdisc_run() to tasklet to avoid
|
+ * of qdisc_restart() and moved qdisc_run() to tasklet to avoid
|
||||||
+ * recursive locking. (Jussi Kivilinna)
|
+ * recursive locking. New initialization routines to fix 'rmmod' not
|
||||||
+ *
|
+ * working anymore. Used code from ifb.c. (Jussi Kivilinna)
|
||||||
+ * 2008/06/14 - New initialization routines to fix 'rmmod' not
|
+ *
|
||||||
+ * working anymore. Used code from ifb.c (Jussi Kivilinna)
|
+ * Also, many thanks to pablo Sebastian Greco for making the initial
|
||||||
+ *
|
+ * patch and to those who helped the testing.
|
||||||
+ *
|
+ *
|
||||||
+ * More info at: http://www.linuximq.net/ (Andre Correa)
|
+ * More info at: http://www.linuximq.net/ (Andre Correa)
|
||||||
+ */
|
+ */
|
||||||
|
@ -645,6 +475,148 @@
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
+MODULE_ALIAS_RTNL_LINK("imq");
|
+MODULE_ALIAS_RTNL_LINK("imq");
|
||||||
+
|
+
|
||||||
|
--- a/drivers/net/Kconfig
|
||||||
|
+++ b/drivers/net/Kconfig
|
||||||
|
@@ -117,6 +117,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_AB
|
||||||
|
+ 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
|
||||||
|
--- a/drivers/net/Makefile
|
||||||
|
+++ b/drivers/net/Makefile
|
||||||
|
@@ -143,6 +143,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
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/include/linux/imq.h
|
+++ b/include/linux/imq.h
|
||||||
@@ -0,0 +1,9 @@
|
@@ -0,0 +1,9 @@
|
||||||
|
@ -728,36 +700,6 @@
|
||||||
dev_queue_xmit_nit(skb, dev);
|
dev_queue_xmit_nit(skb, dev);
|
||||||
|
|
||||||
if (netif_needs_gso(dev, skb)) {
|
if (netif_needs_gso(dev, skb)) {
|
||||||
--- a/net/ipv4/netfilter/Kconfig
|
|
||||||
+++ b/net/ipv4/netfilter/Kconfig
|
|
||||||
@@ -145,6 +145,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_REJECT
|
|
||||||
tristate "REJECT target support"
|
|
||||||
depends on IP_NF_FILTER
|
|
||||||
--- a/net/ipv4/netfilter/Makefile
|
|
||||||
+++ b/net/ipv4/netfilter/Makefile
|
|
||||||
@@ -55,6 +55,7 @@
|
|
||||||
obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o
|
|
||||||
obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o
|
|
||||||
obj-$(CONFIG_IP_NF_TARGET_LOG) += ipt_LOG.o
|
|
||||||
+obj-$(CONFIG_IP_NF_TARGET_IMQ) += ipt_IMQ.o
|
|
||||||
obj-$(CONFIG_IP_NF_TARGET_MASQUERADE) += ipt_MASQUERADE.o
|
|
||||||
obj-$(CONFIG_IP_NF_TARGET_NETMAP) += ipt_NETMAP.o
|
|
||||||
obj-$(CONFIG_IP_NF_TARGET_REDIRECT) += ipt_REDIRECT.o
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/ipv4/netfilter/ipt_IMQ.c
|
+++ b/net/ipv4/netfilter/ipt_IMQ.c
|
||||||
@@ -0,0 +1,69 @@
|
@@ -0,0 +1,69 @@
|
||||||
|
@ -830,34 +772,36 @@
|
||||||
+MODULE_AUTHOR("http://www.linuximq.net");
|
+MODULE_AUTHOR("http://www.linuximq.net");
|
||||||
+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information.");
|
+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information.");
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
--- a/net/ipv6/netfilter/Kconfig
|
--- a/net/ipv4/netfilter/Kconfig
|
||||||
+++ b/net/ipv6/netfilter/Kconfig
|
+++ b/net/ipv4/netfilter/Kconfig
|
||||||
@@ -179,6 +179,15 @@
|
@@ -145,6 +145,17 @@
|
||||||
|
|
||||||
To compile it as a module, choose M here. If unsure, say N.
|
To compile it as a module, choose M here. If unsure, say N.
|
||||||
|
|
||||||
+config IP6_NF_TARGET_IMQ
|
+config IP_NF_TARGET_IMQ
|
||||||
+ tristate "IMQ target support"
|
+ tristate "IMQ target support"
|
||||||
+ depends on IP6_NF_MANGLE
|
+ depends on IP_NF_MANGLE && IMQ
|
||||||
+ help
|
+ help
|
||||||
+ This option adds a `IMQ' target which is used to specify if and
|
+ This option adds a `IMQ' target which is used to specify if and
|
||||||
+ to which imq device packets should get enqueued/dequeued.
|
+ 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_HL
|
+ To compile it as a module, choose M here. If unsure, say N.
|
||||||
tristate 'HL (hoplimit) target support'
|
+
|
||||||
depends on IP6_NF_MANGLE
|
config IP_NF_TARGET_REJECT
|
||||||
--- a/net/ipv6/netfilter/Makefile
|
tristate "REJECT target support"
|
||||||
+++ b/net/ipv6/netfilter/Makefile
|
depends on IP_NF_FILTER
|
||||||
@@ -6,6 +6,7 @@
|
--- a/net/ipv4/netfilter/Makefile
|
||||||
obj-$(CONFIG_IP6_NF_IPTABLES) += ip6_tables.o
|
+++ b/net/ipv4/netfilter/Makefile
|
||||||
obj-$(CONFIG_IP6_NF_FILTER) += ip6table_filter.o
|
@@ -55,6 +55,7 @@
|
||||||
obj-$(CONFIG_IP6_NF_MANGLE) += ip6table_mangle.o
|
obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o
|
||||||
+obj-$(CONFIG_IP6_NF_TARGET_IMQ) += ip6t_IMQ.o
|
obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o
|
||||||
obj-$(CONFIG_IP6_NF_QUEUE) += ip6_queue.o
|
obj-$(CONFIG_IP_NF_TARGET_LOG) += ipt_LOG.o
|
||||||
obj-$(CONFIG_IP6_NF_RAW) += ip6table_raw.o
|
+obj-$(CONFIG_IP_NF_TARGET_IMQ) += ipt_IMQ.o
|
||||||
|
obj-$(CONFIG_IP_NF_TARGET_MASQUERADE) += ipt_MASQUERADE.o
|
||||||
|
obj-$(CONFIG_IP_NF_TARGET_NETMAP) += ipt_NETMAP.o
|
||||||
|
obj-$(CONFIG_IP_NF_TARGET_REDIRECT) += ipt_REDIRECT.o
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/ipv6/netfilter/ip6t_IMQ.c
|
+++ b/net/ipv6/netfilter/ip6t_IMQ.c
|
||||||
@@ -0,0 +1,69 @@
|
@@ -0,0 +1,69 @@
|
||||||
|
@ -930,6 +874,34 @@
|
||||||
+MODULE_AUTHOR("http://www.linuximq.net");
|
+MODULE_AUTHOR("http://www.linuximq.net");
|
||||||
+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information.");
|
+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information.");
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
|
--- a/net/ipv6/netfilter/Kconfig
|
||||||
|
+++ b/net/ipv6/netfilter/Kconfig
|
||||||
|
@@ -179,6 +179,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 && IMQ
|
||||||
|
+ 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_HL
|
||||||
|
tristate 'HL (hoplimit) target support'
|
||||||
|
depends on IP6_NF_MANGLE
|
||||||
|
--- a/net/ipv6/netfilter/Makefile
|
||||||
|
+++ b/net/ipv6/netfilter/Makefile
|
||||||
|
@@ -6,6 +6,7 @@
|
||||||
|
obj-$(CONFIG_IP6_NF_IPTABLES) += ip6_tables.o
|
||||||
|
obj-$(CONFIG_IP6_NF_FILTER) += ip6table_filter.o
|
||||||
|
obj-$(CONFIG_IP6_NF_MANGLE) += ip6table_mangle.o
|
||||||
|
+obj-$(CONFIG_IP6_NF_TARGET_IMQ) += ip6t_IMQ.o
|
||||||
|
obj-$(CONFIG_IP6_NF_QUEUE) += ip6_queue.o
|
||||||
|
obj-$(CONFIG_IP6_NF_RAW) += ip6table_raw.o
|
||||||
|
|
||||||
--- a/net/sched/sch_generic.c
|
--- a/net/sched/sch_generic.c
|
||||||
+++ b/net/sched/sch_generic.c
|
+++ b/net/sched/sch_generic.c
|
||||||
@@ -203,6 +203,7 @@
|
@@ -203,6 +203,7 @@
|
||||||
|
|
|
@ -1,173 +1,3 @@
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
drivers/net/Kconfig | 123 ++++++++
|
|
||||||
drivers/net/Makefile | 1
|
|
||||||
drivers/net/imq.c | 474 +++++++++++++++++++++++++++++++
|
|
||||||
include/linux/imq.h | 9 +
|
|
||||||
include/linux/netfilter_ipv4/ipt_IMQ.h | 8 +
|
|
||||||
include/linux/netfilter_ipv6/ip6t_IMQ.h | 8 +
|
|
||||||
include/linux/skbuff.h | 8 +
|
|
||||||
net/core/dev.c | 9 +
|
|
||||||
net/ipv4/netfilter/Kconfig | 11 +
|
|
||||||
net/ipv4/netfilter/Makefile | 1
|
|
||||||
net/ipv4/netfilter/ipt_IMQ.c | 69 +++++
|
|
||||||
net/ipv6/netfilter/Kconfig | 9 +
|
|
||||||
net/ipv6/netfilter/Makefile | 1
|
|
||||||
net/ipv6/netfilter/ip6t_IMQ.c | 69 +++++
|
|
||||||
net/sched/sch_generic.c | 1
|
|
||||||
15 files changed, 800 insertions(+), 1 deletions(-)
|
|
||||||
create mode 100644 drivers/net/imq.c
|
|
||||||
create mode 100644 include/linux/imq.h
|
|
||||||
create mode 100644 include/linux/netfilter_ipv4/ipt_IMQ.h
|
|
||||||
create mode 100644 include/linux/netfilter_ipv6/ip6t_IMQ.h
|
|
||||||
create mode 100644 net/ipv4/netfilter/ipt_IMQ.c
|
|
||||||
create mode 100644 net/ipv6/netfilter/ip6t_IMQ.c
|
|
||||||
|
|
||||||
|
|
||||||
--- a/drivers/net/Kconfig
|
|
||||||
+++ b/drivers/net/Kconfig
|
|
||||||
@@ -117,6 +117,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
|
|
||||||
--- a/drivers/net/Makefile
|
|
||||||
+++ b/drivers/net/Makefile
|
|
||||||
@@ -142,6 +142,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
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/net/imq.c
|
+++ b/drivers/net/imq.c
|
||||||
@@ -0,0 +1,474 @@
|
@@ -0,0 +1,474 @@
|
||||||
|
@ -220,13 +50,13 @@
|
||||||
+ * I didn't forget anybody). I apologize again for my lack of time.
|
+ * I didn't forget anybody). I apologize again for my lack of time.
|
||||||
+ *
|
+ *
|
||||||
+ *
|
+ *
|
||||||
+ * 2008/06/07 - Changed imq.c to use qdisc_run() instead of
|
+ * 2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead
|
||||||
+ * qdisc_restart() and moved qdisc_run() to tasklet to avoid
|
+ * of qdisc_restart() and moved qdisc_run() to tasklet to avoid
|
||||||
+ * recursive locking. (Jussi Kivilinna)
|
+ * recursive locking. New initialization routines to fix 'rmmod' not
|
||||||
+ *
|
+ * working anymore. Used code from ifb.c. (Jussi Kivilinna)
|
||||||
+ * 2008/06/14 - New initialization routines to fix 'rmmod' not
|
+ *
|
||||||
+ * working anymore. Used code from ifb.c (Jussi Kivilinna)
|
+ * Also, many thanks to pablo Sebastian Greco for making the initial
|
||||||
+ *
|
+ * patch and to those who helped the testing.
|
||||||
+ *
|
+ *
|
||||||
+ * More info at: http://www.linuximq.net/ (Andre Correa)
|
+ * More info at: http://www.linuximq.net/ (Andre Correa)
|
||||||
+ */
|
+ */
|
||||||
|
@ -645,6 +475,148 @@
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
+MODULE_ALIAS_RTNL_LINK("imq");
|
+MODULE_ALIAS_RTNL_LINK("imq");
|
||||||
+
|
+
|
||||||
|
--- a/drivers/net/Kconfig
|
||||||
|
+++ b/drivers/net/Kconfig
|
||||||
|
@@ -117,6 +117,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_AB
|
||||||
|
+ 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
|
||||||
|
--- a/drivers/net/Makefile
|
||||||
|
+++ b/drivers/net/Makefile
|
||||||
|
@@ -142,6 +142,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
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/include/linux/imq.h
|
+++ b/include/linux/imq.h
|
||||||
@@ -0,0 +1,9 @@
|
@@ -0,0 +1,9 @@
|
||||||
|
@ -728,36 +700,6 @@
|
||||||
dev_queue_xmit_nit(skb, dev);
|
dev_queue_xmit_nit(skb, dev);
|
||||||
|
|
||||||
if (netif_needs_gso(dev, skb)) {
|
if (netif_needs_gso(dev, skb)) {
|
||||||
--- a/net/ipv4/netfilter/Kconfig
|
|
||||||
+++ b/net/ipv4/netfilter/Kconfig
|
|
||||||
@@ -145,6 +145,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_REJECT
|
|
||||||
tristate "REJECT target support"
|
|
||||||
depends on IP_NF_FILTER
|
|
||||||
--- a/net/ipv4/netfilter/Makefile
|
|
||||||
+++ b/net/ipv4/netfilter/Makefile
|
|
||||||
@@ -58,6 +58,7 @@
|
|
||||||
obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o
|
|
||||||
obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o
|
|
||||||
obj-$(CONFIG_IP_NF_TARGET_LOG) += ipt_LOG.o
|
|
||||||
+obj-$(CONFIG_IP_NF_TARGET_IMQ) += ipt_IMQ.o
|
|
||||||
obj-$(CONFIG_IP_NF_TARGET_MASQUERADE) += ipt_MASQUERADE.o
|
|
||||||
obj-$(CONFIG_IP_NF_TARGET_NETMAP) += ipt_NETMAP.o
|
|
||||||
obj-$(CONFIG_IP_NF_TARGET_REDIRECT) += ipt_REDIRECT.o
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/ipv4/netfilter/ipt_IMQ.c
|
+++ b/net/ipv4/netfilter/ipt_IMQ.c
|
||||||
@@ -0,0 +1,69 @@
|
@@ -0,0 +1,69 @@
|
||||||
|
@ -830,34 +772,36 @@
|
||||||
+MODULE_AUTHOR("http://www.linuximq.net");
|
+MODULE_AUTHOR("http://www.linuximq.net");
|
||||||
+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information.");
|
+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information.");
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
--- a/net/ipv6/netfilter/Kconfig
|
--- a/net/ipv4/netfilter/Kconfig
|
||||||
+++ b/net/ipv6/netfilter/Kconfig
|
+++ b/net/ipv4/netfilter/Kconfig
|
||||||
@@ -179,6 +179,15 @@
|
@@ -145,6 +145,17 @@
|
||||||
|
|
||||||
To compile it as a module, choose M here. If unsure, say N.
|
To compile it as a module, choose M here. If unsure, say N.
|
||||||
|
|
||||||
+config IP6_NF_TARGET_IMQ
|
+config IP_NF_TARGET_IMQ
|
||||||
+ tristate "IMQ target support"
|
+ tristate "IMQ target support"
|
||||||
+ depends on IP6_NF_MANGLE
|
+ depends on IP_NF_MANGLE && IMQ
|
||||||
+ help
|
+ help
|
||||||
+ This option adds a `IMQ' target which is used to specify if and
|
+ This option adds a `IMQ' target which is used to specify if and
|
||||||
+ to which imq device packets should get enqueued/dequeued.
|
+ 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_HL
|
+ To compile it as a module, choose M here. If unsure, say N.
|
||||||
tristate 'HL (hoplimit) target support'
|
+
|
||||||
depends on IP6_NF_MANGLE
|
config IP_NF_TARGET_REJECT
|
||||||
--- a/net/ipv6/netfilter/Makefile
|
tristate "REJECT target support"
|
||||||
+++ b/net/ipv6/netfilter/Makefile
|
depends on IP_NF_FILTER
|
||||||
@@ -6,6 +6,7 @@
|
--- a/net/ipv4/netfilter/Makefile
|
||||||
obj-$(CONFIG_IP6_NF_IPTABLES) += ip6_tables.o
|
+++ b/net/ipv4/netfilter/Makefile
|
||||||
obj-$(CONFIG_IP6_NF_FILTER) += ip6table_filter.o
|
@@ -58,6 +58,7 @@
|
||||||
obj-$(CONFIG_IP6_NF_MANGLE) += ip6table_mangle.o
|
obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o
|
||||||
+obj-$(CONFIG_IP6_NF_TARGET_IMQ) += ip6t_IMQ.o
|
obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o
|
||||||
obj-$(CONFIG_IP6_NF_QUEUE) += ip6_queue.o
|
obj-$(CONFIG_IP_NF_TARGET_LOG) += ipt_LOG.o
|
||||||
obj-$(CONFIG_IP6_NF_RAW) += ip6table_raw.o
|
+obj-$(CONFIG_IP_NF_TARGET_IMQ) += ipt_IMQ.o
|
||||||
|
obj-$(CONFIG_IP_NF_TARGET_MASQUERADE) += ipt_MASQUERADE.o
|
||||||
|
obj-$(CONFIG_IP_NF_TARGET_NETMAP) += ipt_NETMAP.o
|
||||||
|
obj-$(CONFIG_IP_NF_TARGET_REDIRECT) += ipt_REDIRECT.o
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/ipv6/netfilter/ip6t_IMQ.c
|
+++ b/net/ipv6/netfilter/ip6t_IMQ.c
|
||||||
@@ -0,0 +1,69 @@
|
@@ -0,0 +1,69 @@
|
||||||
|
@ -930,6 +874,34 @@
|
||||||
+MODULE_AUTHOR("http://www.linuximq.net");
|
+MODULE_AUTHOR("http://www.linuximq.net");
|
||||||
+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information.");
|
+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information.");
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
|
--- a/net/ipv6/netfilter/Kconfig
|
||||||
|
+++ b/net/ipv6/netfilter/Kconfig
|
||||||
|
@@ -179,6 +179,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 && IMQ
|
||||||
|
+ 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_HL
|
||||||
|
tristate 'HL (hoplimit) target support'
|
||||||
|
depends on IP6_NF_MANGLE
|
||||||
|
--- a/net/ipv6/netfilter/Makefile
|
||||||
|
+++ b/net/ipv6/netfilter/Makefile
|
||||||
|
@@ -6,6 +6,7 @@
|
||||||
|
obj-$(CONFIG_IP6_NF_IPTABLES) += ip6_tables.o
|
||||||
|
obj-$(CONFIG_IP6_NF_FILTER) += ip6table_filter.o
|
||||||
|
obj-$(CONFIG_IP6_NF_MANGLE) += ip6table_mangle.o
|
||||||
|
+obj-$(CONFIG_IP6_NF_TARGET_IMQ) += ip6t_IMQ.o
|
||||||
|
obj-$(CONFIG_IP6_NF_QUEUE) += ip6_queue.o
|
||||||
|
obj-$(CONFIG_IP6_NF_RAW) += ip6table_raw.o
|
||||||
|
|
||||||
--- a/net/sched/sch_generic.c
|
--- a/net/sched/sch_generic.c
|
||||||
+++ b/net/sched/sch_generic.c
|
+++ b/net/sched/sch_generic.c
|
||||||
@@ -203,6 +203,7 @@
|
@@ -203,6 +203,7 @@
|
||||||
|
|
Loading…
Reference in New Issue