aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2015-03-15 20:32:09 +0000
committerFelix Fietkau <nbd@openwrt.org>2015-03-15 20:32:09 +0000
commit0e879af4add196a17998ce75aed6a6938c6c624d (patch)
treead06197586e572a0d7f22b1d739b52f51faa2ff3 /target/linux/generic
parenteff9c0f69606d1f5ad0ed8f71074a940a4f20d6a (diff)
downloadmaster-187ad058-0e879af4add196a17998ce75aed6a6938c6c624d.tar.gz
master-187ad058-0e879af4add196a17998ce75aed6a6938c6c624d.tar.bz2
master-187ad058-0e879af4add196a17998ce75aed6a6938c6c624d.zip
kernel: skip GRO for packets bridged to other hosts
Eliminates excessive skb copying when bridging from LAN to WLAN on ramips. Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44797 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/generic')
-rw-r--r--target/linux/generic/patches-3.18/680-net-skip-gro-for-otherhost-packets.patch12
-rw-r--r--target/linux/generic/patches-3.19/680-net-skip-gro-for-otherhost-packets.patch12
-rw-r--r--target/linux/generic/patches-4.0/680-net-skip-gro-for-otherhost-packets.patch12
3 files changed, 36 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.18/680-net-skip-gro-for-otherhost-packets.patch b/target/linux/generic/patches-3.18/680-net-skip-gro-for-otherhost-packets.patch
new file mode 100644
index 0000000000..3adc4e37bb
--- /dev/null
+++ b/target/linux/generic/patches-3.18/680-net-skip-gro-for-otherhost-packets.patch
@@ -0,0 +1,12 @@
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -4003,6 +4003,9 @@ static enum gro_result dev_gro_receive(s
+ enum gro_result ret;
+ int grow;
+
++ if (skb->pkt_type == PACKET_OTHERHOST)
++ goto normal;
++
+ if (!(skb->dev->features & NETIF_F_GRO))
+ goto normal;
+
diff --git a/target/linux/generic/patches-3.19/680-net-skip-gro-for-otherhost-packets.patch b/target/linux/generic/patches-3.19/680-net-skip-gro-for-otherhost-packets.patch
new file mode 100644
index 0000000000..e3fa9172e2
--- /dev/null
+++ b/target/linux/generic/patches-3.19/680-net-skip-gro-for-otherhost-packets.patch
@@ -0,0 +1,12 @@
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -3967,6 +3967,9 @@ static enum gro_result dev_gro_receive(s
+ enum gro_result ret;
+ int grow;
+
++ if (skb->pkt_type == PACKET_OTHERHOST)
++ goto normal;
++
+ if (!(skb->dev->features & NETIF_F_GRO))
+ goto normal;
+
diff --git a/target/linux/generic/patches-4.0/680-net-skip-gro-for-otherhost-packets.patch b/target/linux/generic/patches-4.0/680-net-skip-gro-for-otherhost-packets.patch
new file mode 100644
index 0000000000..fc3625848b
--- /dev/null
+++ b/target/linux/generic/patches-4.0/680-net-skip-gro-for-otherhost-packets.patch
@@ -0,0 +1,12 @@
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -4005,6 +4005,9 @@ static enum gro_result dev_gro_receive(s
+ enum gro_result ret;
+ int grow;
+
++ if (skb->pkt_type == PACKET_OTHERHOST)
++ goto normal;
++
+ if (!(skb->dev->features & NETIF_F_GRO))
+ goto normal;
+