|
From: | Thibaut Collet |
Subject: | Re: [Qemu-devel] [PATCH v2] net: Add support of VIRTIO_NET_F_GUEST_ANNOUNCE for vhost-net/vhost-user |
Date: | Mon, 8 Jun 2015 16:05:23 +0200 |
I think Jason is pointing out that your patch lacks support for guestsOn Mon, Jun 08, 2015 at 10:21:38AM +0200, Thibaut Collet wrote:
> Hi,
>
> My understanding of gratuitous packet with virtio for any backend (vhost
> user or other):
> - When the VM is loaded (first start or migration) the virtio net
> interfaces are loaded ( virtio_net_load_device function in
> hw/net/virtio-net.c)
> - If the guest has the VIRTIO_NET_F_GUEST_ANNOUNCE capability, request to
> send gratuitous packet is done.
>
> 1. To enable gratuitous packet through this mechanism I have added
> VIRTIO_NET_F_GUEST_ANNOUNCE
> capability to hw/net/vhost_net.c. So host and guest can negotiate this
> feature when vhost-user is used.
>
> 2. self announce occurs in case of live migration. During a live migration
> a GARP is sent to all net backend through a queue dedicated to the net
> backend.
> But for vhost-user:
> - this operation is not possible (vhost-user has no queue)
> - it is already done with the previous mechanism.
> Rather to define a queue to vhost user and notify twice the guest to
> send gratuitous packet I have disable GARP from self announce and use only
> the first mechanism for that.
>
> I have tested my modifications with guest that supports
> VIRTIO_NET_F_GUEST_ANNOUNCE and vhost-user on the host. After a live
> migration I have the GARP from the guest.
that do not negotiate VIRTIO_NET_F_GUEST_ANNOUNCE.
If the guest does not set the feature bit then packets might continue to
get forwarded to the old host.
Perhaps the correct place to implement this is in the virtio-net.c
device instead of in vhost-user.c. The non-vhost-user case should also
skip sending two ARP packets.
BUT before we go any further:
I've asked several times whether vhost-user support live migration?
You didn't answer that question. Fixing this issue only makes sense if
vhost-user live migration is supported.
Stefan
[Prev in Thread] | Current Thread | [Next in Thread] |