| Submitter | Eric Dumazet |
|---|---|
| Date | Nov. 8, 2012, 7:59 p.m. |
| Message ID | <1352404792.19779.88.camel@edumazet-glaptop> |
| Download | mbox | patch |
| Permalink | /patch/197874/ |
| State | Accepted |
| Delegated to: | David Miller |
| Headers | show |
Comments
From: Eric Dumazet <eric.dumazet@gmail.com> Date: Thu, 08 Nov 2012 11:59:52 -0800 > From: Eric Dumazet <edumazet@google.com> > > In commit 6b78f16e4b (gre: add GSO support) we added GSO support to GRE > tunnels. > > This patch does the same for IPIP tunnels. > > Performance of single TCP flow over an IPIP tunnel is increased by 40% > > Signed-off-by: Eric Dumazet <edumazet@google.com> Applied, thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Patch
diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c index e15b452..cc49cc1 100644 --- a/net/ipv4/ipip.c +++ b/net/ipv4/ipip.c @@ -479,6 +479,10 @@ static netdev_tx_t ipip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev) if (skb->protocol != htons(ETH_P_IP)) goto tx_error; + if (skb->ip_summed == CHECKSUM_PARTIAL && + skb_checksum_help(skb)) + goto tx_error; + if (tos & 1) tos = old_iph->tos; @@ -773,6 +777,11 @@ static void ipip_dev_free(struct net_device *dev) free_netdev(dev); } +#define IPIP_FEATURES (NETIF_F_SG | \ + NETIF_F_FRAGLIST | \ + NETIF_F_HIGHDMA | \ + NETIF_F_HW_CSUM) + static void ipip_tunnel_setup(struct net_device *dev) { dev->netdev_ops = &ipip_netdev_ops; @@ -787,6 +796,9 @@ static void ipip_tunnel_setup(struct net_device *dev) dev->features |= NETIF_F_NETNS_LOCAL; dev->features |= NETIF_F_LLTX; dev->priv_flags &= ~IFF_XMIT_DST_RELEASE; + + dev->features |= IPIP_FEATURES; + dev->hw_features |= IPIP_FEATURES; } static int ipip_tunnel_init(struct net_device *dev)