Re: [PATCH 01/10] core: Split out UFO6 support
From: Vlad Yasevich <hidden>
Date: 2014-12-17 20:43:50
Also in:
virtualization
On 12/17/2014 03:10 PM, Ben Hutchings wrote:
On Wed, 2014-12-17 at 13:20 -0500, Vladislav Yasevich wrote:quoted
Split IPv6 support for UFO into its own feature similiar to TSO. This will later allow us to re-enable UFO support for virtio-net devices.[...]quoted
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 6c8b6f6..8538b67 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h@@ -372,6 +372,7 @@ enum { SKB_GSO_MPLS = 1 << 12, + SKB_GSO_UDP6 = 1 << 13It seems like it would be cleaner to use the names SKB_GSO_UDPV{4,6}, similarly to SKB_GSO_TCPV{4,6}.
I wanted to try to avoid touched ipv4 paths if I could. I could use GSO_UDPV6 though.
quoted
}; #if BITS_PER_LONG > 32diff --git a/net/core/dev.c b/net/core/dev.c index 945bbd0..fa4d2ee 100644 --- a/net/core/dev.c +++ b/net/core/dev.c[...]quoted
@@ -5952,24 +5958,21 @@ static netdev_features_t netdev_fix_features(struct net_device *dev,[...]quoted
+ /* UFO also needs checksumming */ + if ((features & NETIF_F_UFO) && !(features & NETIF_F_GEN_CSUM) && + !(features & NETIF_F_IP_CSUM)) {You can use !(features & NETIF_F_V4_CSUM) instead of the last two terms.quoted
+ netdev_dbg(dev, + "Dropping NETIF_F_UFO since no checksum offload features.\n"); + features &= ~NETIF_F_UFO; + } + if ((features & NETIF_F_UFO6) && !(features & NETIF_F_GEN_CSUM) && + !(features & NETIF_F_IPV6_CSUM)) {[...] Similarly you can use !(features & NETIF_F_V6_CSUM) instead of the last two terms.
I made those to look the same as the TSO checks for consistency, but I can change these to be shorter like above. -vlad
Aside from those minor points, this looks fine. Ben.