Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Mar 2026 16:15:38 +0000
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 81dbacbb7d71 - main - net/route: Add an eventhandler for rt_numfibs changes
Message-ID:  <69caa1aa.3c02d.318c3993@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=81dbacbb7d71a53eef99ce73f7e589a165c3e1d6

commit 81dbacbb7d71a53eef99ce73f7e589a165c3e1d6
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2026-03-30 13:30:19 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2026-03-30 16:08:20 +0000

    net/route: Add an eventhandler for rt_numfibs changes
    
    The multicast routing code will start implementing per-FIB routing
    tables.  As a part of this, it needs to be notified when the number of
    FIBs changes, so that it can expand its tables.
    
    Add an eventhandler for this purpose.
    
    MFC after:      2 weeks
    Sponsored by:   Stormshield
    Sponsored by:   Klara, Inc.
    Differential Revision:  https://reviews.freebsd.org/D55239
---
 sys/net/route.h              | 6 ++++++
 sys/net/route/route_tables.c | 4 +++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/sys/net/route.h b/sys/net/route.h
index 49bb7abd9726..34df3297d6d4 100644
--- a/sys/net/route.h
+++ b/sys/net/route.h
@@ -32,6 +32,9 @@
 #ifndef _NET_ROUTE_H_
 #define _NET_ROUTE_H_
 
+#ifdef _KERNEL
+#include <sys/_eventhandler.h>
+#endif
 #include <net/vnet.h>
 
 /*
@@ -124,6 +127,9 @@ VNET_DECLARE(u_int, rt_add_addr_allfibs); /* Announce interfaces to all fibs */
 #define	V_fib_hash_outbound	VNET(fib_hash_outbound)
 VNET_DECLARE(u_int, fib_hash_outbound);
 
+typedef void (*rtnumfibs_change_t)(void *, uint32_t);
+EVENTHANDLER_DECLARE(rtnumfibs_change, rtnumfibs_change_t);
+
 /* Outbound flowid generation rules */
 #ifdef RSS
 #define fib4_calc_packet_hash		xps_proto_software_hash_v4
diff --git a/sys/net/route/route_tables.c b/sys/net/route/route_tables.c
index 749ef063e125..571f1db9c40d 100644
--- a/sys/net/route/route_tables.c
+++ b/sys/net/route/route_tables.c
@@ -33,10 +33,10 @@
  * Which is the new name for an in kernel routing (next hop) table.	*
  ***********************************************************************/
 
-#include <sys/cdefs.h>
 #include "opt_route.h"
 
 #include <sys/param.h>
+#include <sys/eventhandler.h>
 #include <sys/socket.h>
 #include <sys/systm.h>
 #include <sys/malloc.h>
@@ -268,6 +268,8 @@ grow_rtables(uint32_t num_tables)
 	old_rt_tables = V_rt_tables;
 	V_rt_tables = new_rt_tables;
 
+	EVENTHANDLER_INVOKE(rtnumfibs_change, num_tables);
+
 	/* Wait till all cpus see new pointers */
 	atomic_thread_fence_rel();
 	NET_EPOCH_WAIT();


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69caa1aa.3c02d.318c3993>