aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2026-04-08 04:20:04 +0000
committerMark Johnston <markj@FreeBSD.org>2026-04-08 14:04:29 +0000
commit77df0240307ebbc606e17c9b83c0d940d33c2649 (patch)
tree6fa2e35d370786fc543e1c98975fe71693614b06
parent8a68c2509c00ae0dbeab64064bb600cfac787a73 (diff)
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
-rw-r--r--sys/netinet6/ip6_mroute.c18
1 files 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)