Hello!

> After a migration, to avoid network outage, the guest must announce its new 
> location to the L2 layer, typically with a GARP. Otherwise requests sent to
> the guest arrive to the old host until a ARP request is sent (after 30 
> seconds) or the guest sends some data.
> QEMU implementation of self announce after a migration with a vhost backend 
> is the following:
> - If the VIRTIO_GUEST_ANNOUNCE feature has been negotiated the guest sends 
> automatically a GARP.
> - Else if the vhost backend implements VHOST_USER_SEND_RARP this request is 
> sent to the vhost backend. When this message is received the vhost backend
> must act as it receives a RARP from the guest (purpose of this RARP is to 
> update switches' MAC->port maaping as a GARP). This RARP is a false one,
> created by the vhost backend,
> - Else nothing is done and we have a network outage until a ARP is sent or 
> the guest sends some data.

 But what is qemu_announce_self() then? It's just unconditionally triggered 
after migration, but indeed sends some strange thing.

> VIRTIO_GUEST_ANNOUNCE feature is negotiated if:
>  - the vhost backend announces the support of this feature. Maybe QEMU can be 
> updated to support unconditionnaly this feature

 Wrong. I tried to unconditionally enforce it in qemu (my guest does support 
it), and the link stopped working at all. I don't understand why.

Kind regards,
Pavel Fedin
Expert Engineer
Samsung Electronics Research center Russia


Reply via email to