diff options
author | rwatson <rwatson@FreeBSD.org> | 2009-08-02 19:43:32 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2009-08-02 19:43:32 +0000 |
commit | 5c6699ad3da677119a855665cf574faa86b982fc (patch) | |
tree | a40bf95a151eb088ca45c32ee899b724ba74dcea /sys/netinet/udp_var.h | |
parent | b08de52c2d9909520082a33aafe53c6ee39df7d7 (diff) | |
download | FreeBSD-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/udp_var.h')
-rw-r--r-- | sys/netinet/udp_var.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/netinet/udp_var.h b/sys/netinet/udp_var.h index 8031670..b8d994c 100644 --- a/sys/netinet/udp_var.h +++ b/sys/netinet/udp_var.h @@ -91,8 +91,19 @@ struct udpstat { }; #ifdef _KERNEL +/* + * In-kernel consumers can use these accessor macros directly to update + * stats. + */ #define UDPSTAT_ADD(name, val) V_udpstat.name += (val) #define UDPSTAT_INC(name) UDPSTAT_ADD(name, 1) + +/* + * Kernel module consumers must use this accessor macro. + */ +void kmod_udpstat_inc(int statnum); +#define KMOD_UDPSTAT_INC(name) \ + kmod_udpstat_inc(offsetof(struct udpstat, name) / sizeof(u_long)) #endif /* |