From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by passt.top (Postfix, from userid 1000) id DBC5B5A026F; Wed, 29 Jan 2025 00:39:40 +0100 (CET) From: Stefano Brivio To: passt-dev@passt.top Subject: [PATCH v2 0/8] Draft, incomplete series introducing state migration Date: Wed, 29 Jan 2025 00:39:32 +0100 Message-ID: <20250128233940.1235855-1-sbrivio@redhat.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: NJY4XS3HCZTSYYNAYUGR7LL53S5SARQS X-Message-ID-Hash: NJY4XS3HCZTSYYNAYUGR7LL53S5SARQS X-MailFrom: sbrivio@passt.top X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Laurent Vivier , David Gibson X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: A bit more complete than the previous iteration: this adds fixes, interfaces for the TCP_REPAIR helper, and the first (working) basic source pre-migration handler, dumping (socket-side) sequence numbers into the flow table. v2: - drop 3/7, (7-bit hole in tcp_splice_conn), not really relevant - handle EOF (ENODATA) in read_remainder() and read_all_buf() - fix definition of reverse-endianness magic, and version match in migrate_target_read_header() - pass context to the handlers, not an arbitrary data pointer, as that's kind of useless - change passt-repair protocol to single-byte command, exit on EOF instead of special command - add interface and infrastructure for passt-repair - add basic pre-migration source handler dumping sequence numbers once sockets are switched to repair mode by helper Stefano Brivio (8): icmp, udp: Pad time_t timestamp to 64-bit to ease state migration flow, flow_table: Pad flow table entries to 128 bytes, hash entries to 32 bits flow_table: Use size in extern declaration for flowtab util: Add read_remainder() and read_all_buf() Introduce facilities for guest migration on top of vhost-user infrastructure Introduce passt-repair Add interfaces and configuration bits for passt-repair flow, tcp: Basic pre-migration source handler to dump sequence numbers Makefile | 24 +++-- conf.c | 46 ++++++++- epoll_type.h | 4 + flow.c | 43 ++++++++ flow.h | 19 ++-- flow_table.h | 15 ++- icmp_flow.h | 6 +- migrate.c | 265 +++++++++++++++++++++++++++++++++++++++++++++++++ migrate.h | 88 ++++++++++++++++ passt-repair.c | 117 ++++++++++++++++++++++ passt.1 | 11 ++ passt.c | 11 +- passt.h | 7 ++ repair.c | 192 +++++++++++++++++++++++++++++++++++ repair.h | 16 +++ tap.c | 65 +----------- tcp.c | 56 +++++++++++ tcp_conn.h | 5 + udp_flow.h | 6 +- util.c | 142 ++++++++++++++++++++++++++ util.h | 3 + vu_common.c | 124 +++++++++++++++-------- vu_common.h | 2 +- 23 files changed, 1136 insertions(+), 131 deletions(-) create mode 100644 migrate.c create mode 100644 migrate.h create mode 100644 passt-repair.c create mode 100644 repair.c create mode 100644 repair.h -- 2.43.0