diff options
| author | Mark Johnston <markj@FreeBSD.org> | 2026-04-08 04:20:04 +0000 |
|---|---|---|
| committer | Mark Johnston <markj@FreeBSD.org> | 2026-04-08 14:04:29 +0000 |
| commit | 77df0240307ebbc606e17c9b83c0d940d33c2649 (patch) | |
| tree | 6fa2e35d370786fc543e1c98975fe71693614b06 | |
| parent | 8a68c2509c00ae0dbeab64064bb600cfac787a73 (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.c | 18 |
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) |
