summaryrefslogtreecommitdiffstats
path: root/sys/netinet/icmp6.h
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2009-08-02 19:43:32 +0000
committerrwatson <rwatson@FreeBSD.org>2009-08-02 19:43:32 +0000
commit5c6699ad3da677119a855665cf574faa86b982fc (patch)
treea40bf95a151eb088ca45c32ee899b724ba74dcea /sys/netinet/icmp6.h
parentb08de52c2d9909520082a33aafe53c6ee39df7d7 (diff)
downloadFreeBSD-src-5c6699ad3da677119a855665cf574faa86b982fc.zip
FreeBSD-src-5c6699ad3da677119a855665cf574faa86b982fc.tar.gz
Many network stack subsystems use a single global data structure to hold
all pertinent statatistics for the subsystem. These structures are sometimes "borrowed" by kernel modules that require a place to store statistics for similar events. Add KPI accessor functions for statistics structures referenced by kernel modules so that they no longer encode certain specifics of how the data structures are named and stored. This change is intended to make it easier to move to per-CPU network stats following 8.0-RELEASE. The following modules are affected by this change: if_bridge if_cxgb if_gif ip_mroute ipdivert pf In practice, most of these statistics consumers should, in fact, maintain their own statistics data structures rather than borrowing structures from the base network stack. However, that change is too agressive for this point in the release cycle. Reviewed by: bz Approved by: re (kib)
Diffstat (limited to 'sys/netinet/icmp6.h')
-rw-r--r--sys/netinet/icmp6.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/netinet/icmp6.h b/sys/netinet/icmp6.h
index 7dc22e5..c3a8ac7 100644
--- a/sys/netinet/icmp6.h
+++ b/sys/netinet/icmp6.h
@@ -600,8 +600,19 @@ struct icmp6stat {
};
#ifdef _KERNEL
+/*
+ * In-kernel consumers can use these accessor macros directly to update
+ * stats.
+ */
#define ICMP6STAT_ADD(name, val) V_icmp6stat.name += (val)
#define ICMP6STAT_INC(name) ICMP6STAT_ADD(name, 1)
+
+/*
+ * Kernel module consumers must use this accessor macro.
+ */
+void kmod_icmp6stat_inc(int statnum);
+#define KMOD_ICMP6STAT_INC(name) \
+ kmod_icmp6stat_inc(offsetof(struct icmp6stat, name) / sizeof(u_quad_t))
#endif
/*
OpenPOWER on IntegriCloud