Skip to content
  • Stratos Psomdakis's avatar
    Add hvparam to disable VNET_HDR on tap devices · 8a534fbe
    Stratos Psomdakis authored
    
    
    IFF_VNET_HDR allows tap devices to extract a VIRTIO_NET_HDR from pkts
    going through the tap iface, enabling segmentation offload for the
    virtio nics.
    
    Current (Debian) kernels (3.2 for Debian Squeeze backrports / Wheezy)
    don't seem able to handle well VMs with 'broken' virtio ifaces (e.g.
    FreeBSD virtio-net driver), using GSO. Broken or malicious virtio-net
    drivers can cause the host kernel to flood the logs with WARNs(),
    effectively live-locking the system and affecting its overall stabitlity
    (eg DRBD disconnects).
    
    The WARN() flooding has been fixed / ratelimited in Linus' tree, but it
    hasn't been backported to -stable.
    
    This patch adds the vnet_hdr hvparam for KVM, to select whether the tap
    devices used for KVM virtio ifaces will get created with VNET_HDR
    support (IFF_VNET_HDR), even when the underlying kernel supports it, in
    order to avoid this issue.
    
    Signed-off-by: default avatarStratos Psomadakis <psomas@grnet.gr>
    Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
    8a534fbe