• Willem de Bruijn's avatar
    virtio-net: ethtool configurable LRO · a02e8964
    Willem de Bruijn authored
    Virtio-net devices negotiate LRO support with the host.
    Display the initially negotiated state with ethtool -k.
    
    Also allow configuring it with ethtool -K, reusing the existing
    virtnet_set_guest_offloads helper that configures LRO for XDP.
    This is conditional on VIRTIO_NET_F_CTRL_GUEST_OFFLOADS.
    
    Virtio-net negotiates TSO4 and TSO6 separately, but ethtool does not
    distinguish between the two. Display LRO as on only if any offload
    is active.
    
    RTNL is held while calling virtnet_set_features, same as on the path
    from virtnet_xdp_set.
    
    Changes v1 -> v2
      - allow ethtool config (-K) only if VIRTIO_NET_F_CTRL_GUEST_OFFLOADS
      - show LRO as enabled if any LRO variant is enabled
      - do not allow configuration while XDP is active
      - differentiate current features from the capable set, to restore
        on XDP down only those features that were active on XDP up
      - move test out of VIRTIO_NET_F_CSUM/TSO branch, which is tx only
    Signed-off-by: default avatarWillem de Bruijn <willemb@google.com>
    Acked-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a02e8964
virtio_net.c 83.7 KB