7365504f77
When live migration is done, for the backup VM, either the virtio frontend or the vhost backend needs to send out gratuitous RARP packet to announce its new network location. This patch enables VIRTIO_NET_F_GUEST_ANNOUNCE feature to support live migration scenario where the vhost backend doesn't have the ability to generate RARP packet. Brief introduction of the work flow: 1. QEMU finishes live migration, pokes the backup VM with an interrupt. 2. Virtio interrupt handler reads out the interrupt status value, and realizes it needs to send out RARP packet to announce its location. 3. Pause device to stop worker thread touching the queues. 4. Inject a RARP packet into a Tx Queue. 5. Ack the interrupt via control queue. 6. Resume device to continue packet processing. Signed-off-by: Xiao Wang <xiao.w.wang@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Yuanhan Liu <yliu@fridaylinux.org> |
||
---|---|---|
.. | ||
virtio_user | ||
Makefile | ||
rte_pmd_virtio_version.map | ||
virtio_ethdev.c | ||
virtio_ethdev.h | ||
virtio_logs.h | ||
virtio_pci.c | ||
virtio_pci.h | ||
virtio_ring.h | ||
virtio_rxtx_simple_neon.c | ||
virtio_rxtx_simple_sse.c | ||
virtio_rxtx_simple.c | ||
virtio_rxtx_simple.h | ||
virtio_rxtx.c | ||
virtio_rxtx.h | ||
virtio_user_ethdev.c | ||
virtqueue.c | ||
virtqueue.h |