v12: - clean up, add comments, complete error handling - add iperf3 test with 6 concurrent flows and migration under flood This looks reasonably stable and polished to me, probably enough to be merged. The behaviour now looks solid under flood, too. Still to do, I guess: 1. more iperf3 tests, with IPv6, in the other direction, and with mixed flows 2. support for other types of flow (assuming that we care at all... things already work) 3. find a way to close the window socket-side early on, and reopen it in the target, to entirely avoid retransmissions. I can set the socket in repair mode in the source, fetch TCP_REPAIR_WINDOW parameters, just change rcv_wnd to 0, set them back, then disable repair mode. Nothing bad happens and the window probe from TCP_REPAIR_OFF is visible, but the window isn't updated, because it's not actually recalculated using rcv_wnd meanwhile. Dummy send/recv() calls don't really change things, either. But there must be some other way. I haven't tried doing this guest-side but that part should be trivial. David Gibson (1): migrate: Migrate guest observed addresses Stefano Brivio (5): migrate: Skeleton of live migration logic Add interfaces and configuration bits for passt-repair vhost_user: Make source quit after reporting migration state migrate: Migrate TCP flows test: Add migration tests Makefile | 14 +- conf.c | 44 ++- epoll_type.h | 6 +- flow.c | 202 +++++++++++++ flow.h | 6 + migrate.c | 300 +++++++++++++++++++ migrate.h | 54 ++++ passt.1 | 11 + passt.c | 15 +- passt.h | 15 + repair.c | 211 ++++++++++++++ repair.h | 16 + tap.c | 65 +---- tcp.c | 583 +++++++++++++++++++++++++++++++++++++ tcp_conn.h | 87 ++++++ test/lib/layout | 55 +++- test/lib/setup | 128 ++++++++ test/lib/test | 48 +++ test/migrate/basic | 54 ++++ test/migrate/bidirectional | 59 ++++ test/migrate/iperf3_out4 | 42 +++ test/run | 10 + util.c | 62 ++++ util.h | 30 ++ vhost_user.c | 68 ++--- virtio.h | 4 - vu_common.c | 49 +--- vu_common.h | 2 +- 28 files changed, 2060 insertions(+), 180 deletions(-) create mode 100644 migrate.c create mode 100644 migrate.h create mode 100644 repair.c create mode 100644 repair.h create mode 100644 test/migrate/basic create mode 100644 test/migrate/bidirectional create mode 100644 test/migrate/iperf3_out4 -- 2.43.0