* ifb and gso problem
@ 2009-08-14 9:50 Dmitry Labutcky
2009-08-14 10:28 ` Herbert Xu
0 siblings, 1 reply; 2+ messages in thread
From: Dmitry Labutcky @ 2009-08-14 9:50 UTC (permalink / raw)
To: netdev
Hello,
I found the problem when redirect egress traffic from ethernet device to ifb when gso is enabled
on ethernet device.
Scenario like this:
eth0: 192.168.1.1/24
# modprobe ifb
# ifconfig ifb0 up
# tc qdisc del dev eth0 root 2>/dev/null
# tc qdisc add dev eth0 root handle 1: htb
# tc qdisc add dev ifb0 root handle 1: prio
# tc filter add dev eth0 parent 1: protocol ip u32 match ip src 192.168.1.1/32 action mirred egress redirect dev ifb0
# ethtool -k eth0
Offload parameters for eth0:
Cannot get device flags: Operation not supported
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: off
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: off
large-receive-offload: off
When downloading from 192.168.1.1, speed not exceeds 256-300kbit/s on 100mbit link.
After disabling gso - speed becomes 100mbit/s.
Patch below fixed this problem.
# diff -u work/linux-source-2.6.30/net/core/skbuff.c linux-source-2.6.30/net/core/skbuff.c
--- work/linux-source-2.6.30/net/core/skbuff.c 2009-06-10 06:05:27.000000000 +0300
+++ linux-source-2.6.30/net/core/skbuff.c 2009-08-14 08:54:21.000000000 +0300
@@ -518,6 +518,7 @@
{
new->tstamp = old->tstamp;
new->dev = old->dev;
+ new->iif = old->iif;
new->transport_header = old->transport_header;
new->network_header = old->network_header;
new->mac_header = old->mac_header;
@@ -569,7 +570,6 @@
n->cloned = 1;
n->nohdr = 0;
n->destructor = NULL;
- C(iif);
C(tail);
C(end);
C(head);
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-08-14 10:28 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-14 9:50 ifb and gso problem Dmitry Labutcky
2009-08-14 10:28 ` Herbert Xu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox