datapath: Don't drop oversize GSO frames, since GSO will break them up.
authorBen Pfaff <blp@nicira.com>
Fri, 9 Jan 2009 19:46:06 +0000 (11:46 -0800)
committerBen Pfaff <blp@nicira.com>
Fri, 9 Jan 2009 19:46:06 +0000 (11:46 -0800)
Fixes TCP performance problems on Xen.

All credit to Justin for diagnosis.

datapath/datapath.c

index c3a107e0598da8148321939501a332646fa30d9c..a6c54c906f0dad002dc33059af51cc86205415c3 100644 (file)
@@ -659,7 +659,7 @@ int
 dp_xmit_skb(struct sk_buff *skb)
 {
        int len = skb->len;
-       if (packet_length(skb) > skb->dev->mtu) {
+       if (packet_length(skb) > skb->dev->mtu && !skb_is_gso(skb)) {
                printk("dropped over-mtu packet: %d > %d\n",
                           packet_length(skb), skb->dev->mtu);
                kfree_skb(skb);