A gratuitous ARP is recommended after a live migration to reduce the amount of time needed by the network links to be aware of the new location. A hypervisor may not have the knowledge of the guest network configuration, and this is especially true on passthrough devices, so its simpler to ask the guest to do it.
However, the device control part of this feature can be totally emulated by qemu and shadow virtqueue, not needing any special feature from the actual vdpa device. VIRTIO_NET_F_STATUS is also needed for the guest to access the status of virtio net config where announcement status bit is set. Emulating it as always active in case backend does not support it. v2: * Add VIRTIO_NET_F_STATUS emulation. Eugenio Pérez (8): vdpa: Delete duplicated vdpa_feature_bits entry vdpa: Save emulated features list in vhost_vdpa vhost_net: Emulate link state up if backend doesn't expose it vdpa: Expose VIRTIO_NET_F_STATUS unconditionally vdpa: Remove shadow CVQ command check vdpa: handle VIRTIO_NET_CTRL_ANNOUNCE in vhost_vdpa_net_handle_ctrl_avail vhost_net: return VIRTIO_NET_S_ANNOUNCE is device model has it set vdpa: Offer VIRTIO_NET_F_GUEST_ANNOUNCE feature if SVQ is enabled include/hw/virtio/vhost-vdpa.h | 2 + hw/net/vhost_net.c | 35 +++++++++++++++- hw/virtio/vhost-vdpa.c | 8 ++-- net/vhost-vdpa.c | 74 ++++++++++------------------------ 4 files changed, 62 insertions(+), 57 deletions(-) -- 2.31.1