git: 77df0240307e - main - ip6_mroute: VNETify counters
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 08 Apr 2026 14:04:39 UTC
The branch main has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=77df0240307ebbc606e17c9b83c0d940d33c2649
commit 77df0240307ebbc606e17c9b83c0d940d33c2649
Author: Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2026-04-08 04:20:04 +0000
Commit: Mark Johnston <markj@FreeBSD.org>
CommitDate: 2026-04-08 14:04:29 +0000
ip6_mroute: VNETify counters
Commit a223d6c489c7 made most of the ip6_mroute state per-VNET, but
failed to do this for a couple of counter structures. Make them
per-VNET too.
Reported by: zlei
Reviewed by: pouria, zlei
Fixes: a223d6c489c7 ("ip6_mroute: Start putting global variables into a structure")
Differential Revision: https://reviews.freebsd.org/D56253
---
sys/netinet6/ip6_mroute.c | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c
index 69eff75596e8..9ae0d699ca31 100644
--- a/sys/netinet6/ip6_mroute.c
+++ b/sys/netinet6/ip6_mroute.c
@@ -159,12 +159,13 @@ static SYSCTL_NODE(_net_inet6, IPPROTO_PIM, pim,
CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
"PIM");
-static struct mrt6stat mrt6stat;
-SYSCTL_STRUCT(_net_inet6_ip6, OID_AUTO, mrt6stat, CTLFLAG_RW,
- &mrt6stat, mrt6stat,
+VNET_DEFINE_STATIC(struct mrt6stat, mrt6stat);
+#define V_mrt6stat VNET(mrt6stat)
+SYSCTL_STRUCT(_net_inet6_ip6, OID_AUTO, mrt6stat, CTLFLAG_VNET | CTLFLAG_RW,
+ &VNET_NAME(mrt6stat), mrt6stat,
"Multicast Routing Statistics (struct mrt6stat, netinet6/ip6_mroute.h)");
-#define MRT6STAT_INC(name) mrt6stat.name += 1
+#define MRT6STAT_INC(name) V_mrt6stat.name += 1
#define NO_RTE_FOUND 0x1
#define RTE_FOUND 0x2
@@ -298,12 +299,13 @@ static void expire_upcalls_all(void *);
#define EXPIRE_TIMEOUT (hz / 4) /* 4x / second */
#define UPCALL_EXPIRE 6 /* number of timeouts */
-static struct pim6stat pim6stat;
-SYSCTL_STRUCT(_net_inet6_pim, PIM6CTL_STATS, stats, CTLFLAG_RW,
- &pim6stat, pim6stat,
+VNET_DEFINE_STATIC(struct pim6stat, pim6stat);
+#define V_pim6stat VNET(pim6stat)
+SYSCTL_STRUCT(_net_inet6_pim, PIM6CTL_STATS, stats, CTLFLAG_VNET | CTLFLAG_RW,
+ &VNET_NAME(pim6stat), pim6stat,
"PIM Statistics (struct pim6stat, netinet6/pim6_var.h)");
-#define PIM6STAT_INC(name) pim6stat.name += 1
+#define PIM6STAT_INC(name) V_pim6stat.name += 1
VNET_DEFINE_STATIC(int, pim6);
#define V_pim6 VNET(pim6)