virtio-net: Set RXCSUM feature if GUEST_CSUM is available
authorThomas Huth <thuth@linux.vnet.ibm.com>
Tue, 27 Aug 2013 15:09:02 +0000 (17:09 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 Sep 2013 01:36:41 +0000 (21:36 -0400)
If the VIRTIO_NET_F_GUEST_CSUM virtio feature is available, the guest
does not have to calculate the checksums on all received packets. This
is pretty much the same feature as RX checksum offloading on real
network cards, so the virtio-net driver should report this by setting
the NETIF_F_RXCSUM flag. When the user now runs "ethtool -k", he or she
can see whether the virtio-net interface has to calculate RX checksums
or not.

Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
Acked-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/virtio_net.c

index f21600277583fac0b9e1a78065ccf588d8bc2f6d..defec2b3c5a408ff035889d015d717f040e2864c 100644 (file)
@@ -1538,6 +1538,8 @@ static int virtnet_probe(struct virtio_device *vdev)
                        dev->features |= dev->hw_features & (NETIF_F_ALL_TSO|NETIF_F_UFO);
                /* (!csum && gso) case will be fixed by register_netdev() */
        }
+       if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_CSUM))
+               dev->features |= NETIF_F_RXCSUM;
 
        dev->vlan_features = dev->features;