numam-dpdk/drivers/net/virtio
Xiao Wang 7365504f77 net/virtio: support guest announce
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>
2018-01-21 15:51:52 +01:00
..
virtio_user drivers: use SPDX tag for Intel copyright files 2018-01-04 22:41:39 +01:00
Makefile drivers: use SPDX tag for Intel copyright files 2018-01-04 22:41:39 +01:00
rte_pmd_virtio_version.map virtio: move to drivers/net/ 2015-05-22 16:06:23 +02:00
virtio_ethdev.c net/virtio: support guest announce 2018-01-21 15:51:52 +01:00
virtio_ethdev.h net/virtio: support guest announce 2018-01-21 15:51:52 +01:00
virtio_logs.h net/virtio: implement dynamic logging 2018-01-16 18:47:49 +01:00
virtio_pci.c drivers: use SPDX tag for Intel copyright files 2018-01-04 22:41:39 +01:00
virtio_pci.h net/virtio: add packet injection method 2018-01-16 18:47:49 +01:00
virtio_ring.h drivers: use SPDX tag for Intel copyright files 2018-01-04 22:41:39 +01:00
virtio_rxtx_simple_neon.c net/virtio: remove redundant macro definitions for vector Rx 2018-01-16 18:47:49 +01:00
virtio_rxtx_simple_sse.c net/virtio: remove redundant macro definitions for vector Rx 2018-01-16 18:47:49 +01:00
virtio_rxtx_simple.c net/virtio: add packet injection method 2018-01-16 18:47:49 +01:00
virtio_rxtx_simple.h drivers: use SPDX tag for Intel copyright files 2018-01-04 22:41:39 +01:00
virtio_rxtx.c net/virtio: add packet injection method 2018-01-16 18:47:49 +01:00
virtio_rxtx.h net/virtio: make control queue thread-safe 2018-01-16 18:47:49 +01:00
virtio_user_ethdev.c drivers: use SPDX tag for Intel copyright files 2018-01-04 22:41:39 +01:00
virtqueue.c net/virtio: fix vector Rx flushing 2018-01-16 18:47:49 +01:00
virtqueue.h net/virtio: support guest announce 2018-01-21 15:51:52 +01:00