public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: Stefano Brivio <sbrivio@redhat.com>, passt-dev@passt.top
Cc: David Gibson <david@gibson.dropbear.id.au>
Subject: [PATCH v2 00/15] RFC: Read-only dynamic update implementation
Date: Thu, 19 Mar 2026 17:11:42 +1100	[thread overview]
Message-ID: <20260319061157.1983818-1-david@gibson.dropbear.id.au> (raw)

I've taken Stefano's draft implementation of dynamic updates, and
polished it up to have a read-only implementation of the dynamic
update protocol.  So far it retrieves the pif names and ruleset from
passt/pasta and displays it.  Sending a new ruleset back comes next.

Patches 1..6/15 are preliminary reworks that make moderate sense even
without pesto - feel free to apply if you're happy with them.

Changes in v2:
 * Removed already applied cleanups
 * Reworked assert() patch to handle -DNDEBUG properly
 * Numerous extra patches:
   * Factored out serialisation helpers and use them for migration as
     well
   * Reworked to allow ip.[ch] and inany.[ch] to be shared with pesto
   * Reworks to share some forwarding rule datatypes with pesto
   * Implemented sending pif names and current ruleset to pesto

David Gibson (15):
  treewide: Spell ASSERT() as assert()
  serialise: Split functions user for serialisation from util.c
  serialise: Add helpers for serialising unsigned integers
  fwd: Move selecting correct scan bitmap into fwd_sync_one()
  fwd: Look up rule index in fwd_sync_one()
  fwd: Store forwarding tables indexed by (origin) pif
  pesto: Introduce stub configuration interface and tool
  pesto: Add command line option parsing and debug messages
  pesto: Expose list of pifs to pesto
  ip: Prepare ip.[ch] for sharing with pesto tool
  inany: Prepare inany.[ch] for sharing with pesto tool
  fwd: Split forwading rule specification from its implementation state
  ip: Define a bound for the string returned by ipproto_name()
  fwd_rule: Move forwarding rule text formatting to common code
  pesto: Read current ruleset from passt/pasta and display it

 .gitignore   |   2 +
 Makefile     |  43 ++++---
 common.h     |  79 ++++++++++++
 conf.c       | 294 ++++++++++++++++++++++++++++++++++++++++----
 conf.h       |   2 +
 epoll_type.h |   4 +
 flow.c       | 117 +++++++++---------
 flow_table.h |   2 +-
 fwd.c        | 218 +++++++++++++++-----------------
 fwd.h        |  35 ++----
 fwd_rule.c   | 113 +++++++++++++++++
 fwd_rule.h   |  59 +++++++++
 icmp.c       |  14 +--
 inany.c      |  16 ++-
 inany.h      |  20 +--
 iov.c        |   4 +-
 ip.c         |  74 +++--------
 ip.h         |   4 +-
 isolation.c  |   2 +-
 lineread.c   |   5 +-
 log.c        |   1 +
 migrate.c    |   9 +-
 netlink.c    |   2 +-
 packet.c     |   4 +-
 passt.1      |   5 +
 passt.c      |  11 +-
 passt.h      |   9 +-
 pcap.c       |   3 +-
 pesto.1      |  46 +++++++
 pesto.c      | 341 +++++++++++++++++++++++++++++++++++++++++++++++++++
 pesto.h      |  34 +++++
 pif.c        |   4 +-
 serialise.c  | 147 ++++++++++++++++++++++
 serialise.h  |  27 ++++
 siphash.h    |  13 ++
 tap.c        |  58 ++++++++-
 tcp.c        |  43 +++----
 tcp_splice.c |  10 +-
 tcp_vu.c     |   8 +-
 udp.c        |  22 ++--
 udp_flow.c   |   4 +-
 udp_vu.c     |   4 +-
 util.c       |  82 ++-----------
 util.h       |  84 ++-----------
 vhost_user.c |   8 +-
 virtio.c     |   6 +-
 vu_common.c  |   4 +-
 47 files changed, 1535 insertions(+), 561 deletions(-)
 create mode 100644 common.h
 create mode 100644 fwd_rule.c
 create mode 100644 fwd_rule.h
 create mode 100644 pesto.1
 create mode 100644 pesto.c
 create mode 100644 pesto.h
 create mode 100644 serialise.c
 create mode 100644 serialise.h

-- 
2.53.0


             reply	other threads:[~2026-03-19  6:12 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-19  6:11 David Gibson [this message]
2026-03-19  6:11 ` [PATCH v2 01/15] treewide: Spell ASSERT() as assert() David Gibson
2026-03-19  6:11 ` [PATCH v2 02/15] serialise: Split functions user for serialisation from util.c David Gibson
2026-03-19  6:11 ` [PATCH v2 03/15] serialise: Add helpers for serialising unsigned integers David Gibson
2026-03-19  6:11 ` [PATCH v2 04/15] fwd: Move selecting correct scan bitmap into fwd_sync_one() David Gibson
2026-03-19  6:11 ` [PATCH v2 05/15] fwd: Look up rule index in fwd_sync_one() David Gibson
2026-03-19  6:11 ` [PATCH v2 06/15] fwd: Store forwarding tables indexed by (origin) pif David Gibson
2026-03-19  6:11 ` [PATCH v2 07/15] pesto: Introduce stub configuration interface and tool David Gibson
2026-03-19  6:11 ` [PATCH v2 08/15] pesto: Add command line option parsing and debug messages David Gibson
2026-03-19  6:11 ` [PATCH v2 09/15] pesto: Expose list of pifs to pesto David Gibson
2026-03-19  6:11 ` [PATCH v2 10/15] ip: Prepare ip.[ch] for sharing with pesto tool David Gibson
2026-03-19  6:11 ` [PATCH v2 11/15] inany: Prepare inany.[ch] " David Gibson
2026-03-19  6:11 ` [PATCH v2 12/15] fwd: Split forwading rule specification from its implementation state David Gibson
2026-03-19  6:11 ` [PATCH v2 13/15] ip: Define a bound for the string returned by ipproto_name() David Gibson
2026-03-19  6:11 ` [PATCH v2 14/15] fwd_rule: Move forwarding rule text formatting to common code David Gibson
2026-03-19  6:11 ` [PATCH v2 15/15] pesto: Read current ruleset from passt/pasta and display it David Gibson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260319061157.1983818-1-david@gibson.dropbear.id.au \
    --to=david@gibson.dropbear.id.au \
    --cc=passt-dev@passt.top \
    --cc=sbrivio@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).