|
|
@@ -635,7 +635,7 @@
|
|
|
+
|
|
|
--- a/drivers/net/Kconfig
|
|
|
+++ b/drivers/net/Kconfig
|
|
|
-@@ -109,6 +109,129 @@ config EQUALIZER
|
|
|
+@@ -121,6 +121,129 @@ config EQUALIZER
|
|
|
To compile this driver as a module, choose M here: the module
|
|
|
will be called eql. If unsure, say N.
|
|
|
|
|
|
@@ -767,14 +767,14 @@
|
|
|
select CRC32
|
|
|
--- a/drivers/net/Makefile
|
|
|
+++ b/drivers/net/Makefile
|
|
|
-@@ -165,6 +165,7 @@ obj-$(CONFIG_SLHC) += slhc.o
|
|
|
+@@ -169,6 +169,7 @@ obj-$(CONFIG_SLHC) += slhc.o
|
|
|
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
|
|
|
+ obj-$(CONFIG_MACVTAP) += macvtap.o
|
|
|
--- /dev/null
|
|
|
+++ b/include/linux/imq.h
|
|
|
@@ -0,0 +1,13 @@
|
|
|
@@ -793,7 +793,7 @@
|
|
|
+
|
|
|
--- a/include/linux/netdevice.h
|
|
|
+++ b/include/linux/netdevice.h
|
|
|
-@@ -1168,6 +1168,7 @@ extern int dev_alloc_name(struct net_de
|
|
|
+@@ -1203,6 +1203,7 @@ extern int dev_alloc_name(struct net_de
|
|
|
extern int dev_open(struct net_device *dev);
|
|
|
extern int dev_close(struct net_device *dev);
|
|
|
extern void dev_disable_lro(struct net_device *dev);
|
|
|
@@ -851,7 +851,7 @@
|
|
|
|
|
|
/* Don't change this without changing skb_csum_unnecessary! */
|
|
|
#define CHECKSUM_NONE 0
|
|
|
-@@ -327,6 +330,9 @@
|
|
|
+@@ -321,6 +324,9 @@ struct sk_buff {
|
|
|
* first. This is owned by whoever has the skb queued ATM.
|
|
|
*/
|
|
|
char cb[48] __aligned(8);
|
|
|
@@ -861,7 +861,7 @@
|
|
|
|
|
|
unsigned long _skb_dst;
|
|
|
#ifdef CONFIG_XFRM
|
|
|
-@@ -363,6 +369,9 @@
|
|
|
+@@ -357,6 +363,9 @@ struct sk_buff {
|
|
|
struct nf_conntrack *nfct;
|
|
|
struct sk_buff *nfct_reasm;
|
|
|
#endif
|
|
|
@@ -871,7 +871,7 @@
|
|
|
#ifdef CONFIG_BRIDGE_NETFILTER
|
|
|
struct nf_bridge_info *nf_bridge;
|
|
|
#endif
|
|
|
-@@ -384,6 +393,10 @@
|
|
|
+@@ -378,6 +387,10 @@ struct sk_buff {
|
|
|
|
|
|
/* 0/14 bit hole */
|
|
|
|
|
|
@@ -882,7 +882,7 @@
|
|
|
#ifdef CONFIG_NET_DMA
|
|
|
dma_cookie_t dma_cookie;
|
|
|
#endif
|
|
|
-@@ -432,6 +445,12 @@
|
|
|
+@@ -426,6 +439,12 @@ static inline struct rtable *skb_rtable(
|
|
|
return (struct rtable *)skb_dst(skb);
|
|
|
}
|
|
|
|
|
|
@@ -895,7 +895,7 @@
|
|
|
extern void kfree_skb(struct sk_buff *skb);
|
|
|
extern void consume_skb(struct sk_buff *skb);
|
|
|
extern void __kfree_skb(struct sk_buff *skb);
|
|
|
-@@ -1976,6 +1995,10 @@
|
|
|
+@@ -1970,6 +1989,10 @@ static inline void __nf_copy(struct sk_b
|
|
|
dst->nfct_reasm = src->nfct_reasm;
|
|
|
nf_conntrack_get_reasm(src->nfct_reasm);
|
|
|
#endif
|
|
|
@@ -935,7 +935,7 @@
|
|
|
#endif /* _NF_QUEUE_H */
|
|
|
--- a/net/core/dev.c
|
|
|
+++ b/net/core/dev.c
|
|
|
-@@ -97,6 +97,9 @@
|
|
|
+@@ -98,6 +98,9 @@
|
|
|
#include <net/net_namespace.h>
|
|
|
#include <net/sock.h>
|
|
|
#include <linux/rtnetlink.h>
|
|
|
@@ -945,7 +945,7 @@
|
|
|
#include <linux/proc_fs.h>
|
|
|
#include <linux/seq_file.h>
|
|
|
#include <linux/stat.h>
|
|
|
-@@ -1810,7 +1813,11 @@ int dev_hard_start_xmit(struct sk_buff *
|
|
|
+@@ -1860,7 +1863,11 @@ int dev_hard_start_xmit(struct sk_buff *
|
|
|
int rc = NETDEV_TX_OK;
|
|
|
|
|
|
if (likely(!skb->next)) {
|
|
|
@@ -958,7 +958,7 @@
|
|
|
dev_queue_xmit_nit(skb, dev);
|
|
|
|
|
|
if (netif_needs_gso(dev, skb)) {
|
|
|
-@@ -1912,8 +1919,7 @@ static inline u16 dev_cap_txqueue(struct
|
|
|
+@@ -1970,8 +1977,7 @@ static inline u16 dev_cap_txqueue(struct
|
|
|
return queue_index;
|
|
|
}
|
|
|
|
|
|
@@ -968,7 +968,7 @@
|
|
|
{
|
|
|
u16 queue_index;
|
|
|
struct sock *sk = skb->sk;
|
|
|
-@@ -1939,6 +1945,7 @@ static struct netdev_queue *dev_pick_tx(
|
|
|
+@@ -1997,6 +2003,7 @@ static struct netdev_queue *dev_pick_tx(
|
|
|
skb_set_queue_mapping(skb, queue_index);
|
|
|
return netdev_get_tx_queue(dev, queue_index);
|
|
|
}
|
|
|
@@ -1125,7 +1125,7 @@
|
|
|
/**
|
|
|
--- a/net/netfilter/Kconfig
|
|
|
+++ b/net/netfilter/Kconfig
|
|
|
-@@ -396,6 +396,18 @@ config NETFILTER_XT_TARGET_LED
|
|
|
+@@ -421,6 +421,18 @@ config NETFILTER_XT_TARGET_LED
|
|
|
For more information on the LEDs available on your system, see
|
|
|
Documentation/leds-class.txt
|
|
|
|
|
|
@@ -1146,8 +1146,8 @@
|
|
|
default m if NETFILTER_ADVANCED=n
|
|
|
--- a/net/netfilter/Makefile
|
|
|
+++ b/net/netfilter/Makefile
|
|
|
-@@ -46,6 +46,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_CONNMAR
|
|
|
- obj-$(CONFIG_NETFILTER_XT_TARGET_CONNSECMARK) += xt_CONNSECMARK.o
|
|
|
+@@ -47,6 +47,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_CONNSEC
|
|
|
+ obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += xt_CT.o
|
|
|
obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o
|
|
|
obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o
|
|
|
+obj-$(CONFIG_NETFILTER_XT_TARGET_IMQ) += xt_IMQ.o
|
|
|
@@ -1156,7 +1156,7 @@
|
|
|
obj-$(CONFIG_NETFILTER_XT_TARGET_NFLOG) += xt_NFLOG.o
|
|
|
--- a/net/netfilter/nf_queue.c
|
|
|
+++ b/net/netfilter/nf_queue.c
|
|
|
-@@ -20,6 +20,26 @@ static const struct nf_queue_handler *qu
|
|
|
+@@ -21,6 +21,26 @@ static const struct nf_queue_handler *qu
|
|
|
|
|
|
static DEFINE_MUTEX(queue_handler_mutex);
|
|
|
|
|
|
@@ -1183,7 +1183,7 @@
|
|
|
/* return EBUSY when somebody else is registered, return EEXIST if the
|
|
|
* same handler is registered, return 0 in case of success. */
|
|
|
int nf_register_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh)
|
|
|
-@@ -80,7 +100,7 @@ void nf_unregister_queue_handlers(const
|
|
|
+@@ -81,7 +101,7 @@ void nf_unregister_queue_handlers(const
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers);
|
|
|
|
|
|
@@ -1192,7 +1192,7 @@
|
|
|
{
|
|
|
/* Release those devices we held, or Alexey will kill me. */
|
|
|
if (entry->indev)
|
|
|
-@@ -100,6 +120,7 @@ static void nf_queue_entry_release_refs(
|
|
|
+@@ -101,6 +121,7 @@ static void nf_queue_entry_release_refs(
|
|
|
/* Drop reference to owner of hook which queued us. */
|
|
|
module_put(entry->elem->owner);
|
|
|
}
|
|
|
@@ -1200,7 +1200,7 @@
|
|
|
|
|
|
/*
|
|
|
* Any packet that leaves via this function must come back
|
|
|
-@@ -121,12 +142,26 @@ static int __nf_queue(struct sk_buff *sk
|
|
|
+@@ -122,12 +143,26 @@ static int __nf_queue(struct sk_buff *sk
|
|
|
#endif
|
|
|
const struct nf_afinfo *afinfo;
|
|
|
const struct nf_queue_handler *qh;
|
|
|
@@ -1227,7 +1227,7 @@
|
|
|
goto err_unlock;
|
|
|
|
|
|
afinfo = nf_get_afinfo(pf);
|
|
|
-@@ -145,6 +180,10 @@ static int __nf_queue(struct sk_buff *sk
|
|
|
+@@ -146,6 +181,10 @@ static int __nf_queue(struct sk_buff *sk
|
|
|
.indev = indev,
|
|
|
.outdev = outdev,
|
|
|
.okfn = okfn,
|
|
|
@@ -1238,7 +1238,7 @@
|
|
|
};
|
|
|
|
|
|
/* If it's going away, ignore hook. */
|
|
|
-@@ -170,8 +209,19 @@ static int __nf_queue(struct sk_buff *sk
|
|
|
+@@ -171,8 +210,19 @@ static int __nf_queue(struct sk_buff *sk
|
|
|
}
|
|
|
#endif
|
|
|
afinfo->saveroute(skb, entry);
|