From nobody Tue Feb 10 22:33:18 2026 X-Original-To: freebsd-net@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4f9btm35hHz6SBS6 for ; Tue, 10 Feb 2026 22:33:20 +0000 (UTC) (envelope-from markj@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9btm22PTz3Y4c for ; Tue, 10 Feb 2026 22:33:20 +0000 (UTC) (envelope-from markj@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770762800; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=Qgh/Gkb9dvslI4EXk5U44lUu0leJvJTd8pKLerJ3qEM=; b=HmbhPQSmef2PSzPsMa8xQSZGqpnYbhmIOoZEwsZBuUNtmiYVDCr96zCd623KfhYN/GMgfk sf4da9pfQeObhnWEObbWVmuotMa+mFH80PUK72TLFO+TCZa2lB0Fw1EsvUHSNo4svt/A4m hPIBuNmIjijDnnQ0H0eDKXVElQrNS8gVR0+PYtZb/X43ojMT5xUwJSdqf/qkKbNlMJwCsn R/Ruzda0iR7607jRVrUNv/ejXEhSuoKfRt4QcrLELH7leRfLhxz1LmwkVRJfOdk/pH4atp CRVfhPDlUKYDTlW6hBkwpTxySI8g/6SFZYIbyPAeaqMcQ/ico/2gUIZch8SgzA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770762800; a=rsa-sha256; cv=none; b=I8xFBGg74mq7RZ4/wHhdn6PVue/EGjB90eGQkB0DlglZ1vr684FHOMXOHga6sx4NyKNdlI 0cXm11PdYpWBeDThaSfinT3Q7msU66r1ZuNQRAZIOJI9uYkeTG5vm/EtpBrwjZPaU8/TZv gwN5WoICp5dQO61t5+/5iEsOv/uT8w5mRUf5ClTHaP9l6v0p8k11vQmBwNK7qgc+aAmn8d Jcda/HwLqql2ERCrF9GVHAm11yZN83xLpk9O8ukiRVQvd0dPqXxCeee77f0LLeR9F4/16x upIr5WHzqfASZiZxStL9QMT5ZYkn/wKBmOGPcyJglMWJrYdxfwVb5q5T+WutlA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770762800; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=Qgh/Gkb9dvslI4EXk5U44lUu0leJvJTd8pKLerJ3qEM=; b=nohuufoajmAfkOdX7t/I+8KP+1GO6hY4yr1WpZba5yhE1CaeCLNVM17r8UOMepDSJNs8Ws z47WReu3JSDrf+oEr4qUgzXP3JLOQg6SNkz3MjejEmU4YWXgejOyoq/fjOSSuHmvFkjddY tqZ1ovBklR39I0Jvai5tb74Guot8J6aOJiRP0Bp6hME4jKVdPkGvR/h7xAMWFwVrRzQNG8 2dvnAbkXFQftbhScVLMt9sLfrQbVn8GvEV/lBLwk7EjawWy65X5YEPtlRBg5lbcu08M5r3 4XNYekzuddZPQ8L8qJCLnCsayybF4F5LGYJxshbVVDbx+4n/I1iiMT8CJFhNfg== Received: from nuc (192-0-220-237.cpe.teksavvy.com [192.0.220.237]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: markj) by smtp.freebsd.org (Postfix) with ESMTPSA id 4f9btm0jg4zvyR for ; Tue, 10 Feb 2026 22:33:19 +0000 (UTC) (envelope-from markj@freebsd.org) Date: Tue, 10 Feb 2026 17:33:18 -0500 From: Mark Johnston To: freebsd-net@freebsd.org Subject: FIB-aware multicast routing Message-ID: List-Id: Networking and TCP/IP with FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-net List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-net@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline There is some code in the ip_mroute and ip6_mroute kernel modules to support running PIM-based multicast routing daemons. Currently, the implementation is unaware of FIBs and maintains a global routing table. I've posted a set of patches to phabricator which introduce per-FIB multicast routing tables for both IPv4 and IPv6; the first patch in the series is here, and the rest are linked from the "stack" tab: https://reviews.freebsd.org/D55236 The patches are somewhat large but are mostly just moving various objects into a per-FIB structure rather than having a bunch of global (per-VNET) state scattered around. The end result is that one can run an independent multicast routing daemon in each FIB on a system; the routing tables and multicast interface indices managed by each daemon are completely separate. I'd appreciate any review or testing. If anyone is interested in this project, please let me know. Thanks to Stormshield and Klara for sponsoring this work.