On 1/27/26 19:21, Stefano Brivio wrote:
[Cc'ing Laurent and David]

On Tue, 27 Jan 2026 15:03:06 +0100
Juraj Marcin <[email protected]> wrote:

During switchover there is a period during which both source and
destination side VMs are paused. During this period, all network packets
are still routed to the source side, but it will never process them.
Once the destination resumes, it is not aware of these packets and they
are lost. This can cause packet loss in unreliable protocols and
extended delays due to retransmission in reliable protocols.

This series resolves this problem by caching packets received once the
source VM pauses and then passing and injecting them on the destination
side. This feature is implemented in the last patch. The caching and
injecting is implemented using network filter interface and should work
with any backend with vhost=off, but only TAP network backend was
explicitly tested.

I haven't had a chance to try this change with passt(1) yet (the
backend can be enabled using "-net passt" or by starting it
separately).

Given that passt implements migration on its own (in deeper detail in
some sense, as TCP connections are preserved if IP addresses match), I
wonder if it this might affect or break it somehow.


passt implements migration only with the vhost-user backend ("-netdev vhost-user") that is not supported by netpass. All the vhost-* cannot be supported because netpass cannot catch packets on the virtio queues.

passt with "-netdev stream" doesn't implement migration, but QEMU can be migrated with it and all the connections are lost. So netpass will forward packets for connections that will be broken.

"-netdev passt" is only some kind of wrapper on top of "-netdev stream" and "-netdev vhost-user" that starts the passt backend by itself (rather than expecting it has been started by the user).

Thanks,
Laurent


Reply via email to