From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from atuin.qyliss.net (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id CB69C1236C; Wed, 24 Sep 2025 11:43:29 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 993) id 8523E1227F; Wed, 24 Sep 2025 11:43:21 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=-0.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_PASS,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 Received: from mail.cyberchaos.dev (mail.cyberchaos.dev [IPv6:2a0f:4ac0::3a11]) by atuin.qyliss.net (Postfix) with ESMTPS id 7BA3A12278 for ; Wed, 24 Sep 2025 11:43:18 +0000 (UTC) From: Yureka Lilian DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cyberchaos.dev; s=mail; t=1758714192; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=bvY5T13SzjLWwO3KOWaqfxVt7y+O9DpoXeaOc2UO3e0=; b=f0v3T+qe8xRpHHkQzjhDUeI9kTBkXgt467l3LfkQ2VDgSwIrzQvyPCVcy3aHA4EuulPTzM gj67h3cIhhKQ/xt8s4ebyWPRZQmH99h+8HMiaBwq9Q9wYvvJmNvUd/VP4r6M0bdKmjHlqo wJs/RDdoQzZ1Aka4fmlJnWaZyjNGgpE= To: devel@spectrum-os.org Subject: [PATCH v6 0/4] xdp-forwarder Date: Wed, 24 Sep 2025 13:42:50 +0200 Message-ID: <20250924114300.100541-1-yureka@cyberchaos.dev> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: UWL7I5K2S5ICIJQLPAI7CU4JKZCHFXUN X-Message-ID-Hash: UWL7I5K2S5ICIJQLPAI7CU4JKZCHFXUN X-MailFrom: yureka@cyberchaos.dev X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-devel.spectrum-os.org-0; header-match-devel.spectrum-os.org-1; header-match-devel.spectrum-os.org-2; header-match-devel.spectrum-os.org-3; header-match-devel.spectrum-os.org-4; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Yureka Lilian X-Mailman-Version: 3.3.9 Precedence: list List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: The patches up to and including "vm/sys/net: build against pkgsMusl" can be applied right away, while the last commit ("vm/sys/net: integrate xdp-forwarder") does not make sense without the router. Changes since v5: - fix pkg-tests clang-tidy - re-add hardeningDisable which was accidentally removed in v5 Changes since v4: - Ensure all patches have my Signed-off-by - add native: true to the find_prog(clang) - Remove merge conflicts artifacts in the integration commit Changes since v3: - Apply suggestions from Demi in meson recipe, prog_*.c - Split out the appSupport -> guestSupport rename into a seperate commit - Split out the switch to pkgsMusl into a separate commit with reasoning - rename set_router_iface to set-router-iface Changes since v2: - Switch xdp-forwarder build to meson - Add guest build variant of spectrum-tools Changes since v1: - rebased - apply new uncrustify config - moved xdp-forwarder to tools/ - split integration into separate commit - use linuxHeaders instead of vmlinux.h - use original xdp-tutorial {parsing,rewrite}_helpers.h - inlined the load scripts into /etc/iface/mdev, using /usr/lib/xdp as fixed prefix for finding the XDP progs - removed the README, added a paragraph to architecture doc instead Yureka Lilian (4): tools: add xdp-forwarder docs/architecture: add paragraph about networking vm/sys/net: build against pkgsMusl vm/sys/net: integrate xdp-forwarder Documentation/about/architecture.adoc | 20 ++ pkgs/default.nix | 4 + release/checks/pkg-tests.nix | 1 + tools/default.nix | 21 +- tools/meson.build | 4 + tools/meson_options.txt | 3 + tools/xdp-forwarder/meson.build | 48 +++ tools/xdp-forwarder/parsing_helpers.h | 274 ++++++++++++++++++ tools/xdp-forwarder/prog_physical.c | 39 +++ tools/xdp-forwarder/prog_router.c | 42 +++ tools/xdp-forwarder/rewrite_helpers.h | 146 ++++++++++ tools/xdp-forwarder/set_router_iface.c | 30 ++ vm/sys/net/Makefile | 8 +- vm/sys/net/default.nix | 23 +- vm/sys/net/image/etc/fstab | 2 + vm/sys/net/image/etc/mdev/iface | 27 +- vm/sys/net/image/etc/nftables.conf | 8 - vm/sys/net/image/etc/s6-rc/connman/type | 1 - .../net/image/etc/s6-rc/connman/type.license | 2 - .../net/image/etc/s6-rc/mdevd-coldplug/type | 1 - .../net/image/etc/s6-rc/nftables/type.license | 2 - vm/sys/net/image/etc/s6-rc/nftables/up | 6 - 22 files changed, 652 insertions(+), 60 deletions(-) create mode 100644 tools/xdp-forwarder/meson.build create mode 100644 tools/xdp-forwarder/parsing_helpers.h create mode 100644 tools/xdp-forwarder/prog_physical.c create mode 100644 tools/xdp-forwarder/prog_router.c create mode 100644 tools/xdp-forwarder/rewrite_helpers.h create mode 100644 tools/xdp-forwarder/set_router_iface.c delete mode 100644 vm/sys/net/image/etc/nftables.conf delete mode 100644 vm/sys/net/image/etc/s6-rc/connman/type delete mode 100644 vm/sys/net/image/etc/s6-rc/connman/type.license delete mode 100644 vm/sys/net/image/etc/s6-rc/mdevd-coldplug/type delete mode 100644 vm/sys/net/image/etc/s6-rc/nftables/type.license delete mode 100644 vm/sys/net/image/etc/s6-rc/nftables/up -- 2.51.0