diff --git a/sbin/sysctl/sysctl.8 b/sbin/sysctl/sysctl.8 --- a/sbin/sysctl/sysctl.8 +++ b/sbin/sysctl/sysctl.8 @@ -28,7 +28,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd January 31, 2025 +.Dd November 13, 2025 .Dt SYSCTL 8 .Os .Sh NAME @@ -336,6 +336,7 @@ option has been deprecated and is silently ignored. .Sh SEE ALSO .Xr sysctl 3 , +.Xr dtrace_mib 4 , .Xr loader.conf 5 , .Xr sysctl.conf 5 , .Xr security 7 , diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -1011,6 +1011,7 @@ dtrace_ip.4 \ dtrace_kinst.4 \ dtrace_lockstat.4 \ + dtrace_mib.4 \ dtrace_pid.4 \ dtrace_priv.4 \ dtrace_proc.4 \ diff --git a/share/man/man4/dtrace_ip.4 b/share/man/man4/dtrace_ip.4 --- a/share/man/man4/dtrace_ip.4 +++ b/share/man/man4/dtrace_ip.4 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 14, 2015 +.Dd November 13, 2025 .Dt DTRACE_IP 4 .Os .Sh NAME @@ -266,6 +266,7 @@ providers found in Solaris and Darwin. .Sh SEE ALSO .Xr dtrace 1 , +.Xr dtrace_mib 4 , .Xr dtrace_tcp 4 , .Xr dtrace_udp 4 , .Xr ip 4 , diff --git a/share/man/man4/dtrace_mib.4 b/share/man/man4/dtrace_mib.4 new file mode 100644 --- /dev/null +++ b/share/man/man4/dtrace_mib.4 @@ -0,0 +1,133 @@ +.\" +.\" Copyright (c) 2025 Mateusz Piotrowski <0mp@FreeBSD.org> +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd November 13, 2025 +.Dt DTRACE_MIB 4 +.Os +.Sh NAME +.Nm dtrace_mib +.Nd a DTrace provider for Management Information Base +.Sh SYNOPSIS +.Cm mib: Ns Ar module Ns Cm \&:count: Ns Ar name +.Pp +In +.Xr config 5 : +.Cd "options KDTRACE_MIB_SDT" +.Sh DESCRIPTION +The +.Nm mib +provider allows tracing of Management Information Base stats counters. +.Pp +The list of instrumented +.Ar module Ns s +includes: +.Bl -tag -offset indent -width ipcomp -compact +.It Cm ah +IP Authentication Header (RFC 2402), +.Xr ipsec 4 +.It Cm esp +IP Encapsulating Security Payload (RFC 1827, RFC 2406), +.Xr ipsec 4 +.It Cm icmp +.Xr icmp 4 +.It Cm icmp6 +.Xr icmp6 4 +.It Cm ip +.Xr ip 4 +.It Cm ip6 +.Xr ip6 4 +.It Cm ipcomp +IP Payload Compression Protocol, +.Xr ipsec 4 +.It Cm ipsec +.Xr ipsec 4 +.It Cm tcp +.Xr tcp 4 +.It Cm udp +.Xr udp 4 +.El +.Pp +The +.Cm mib: Ns Ar module Ns Cm \&:count: Ns Ar name +probes fire when the +.Ar name +counter in +.Ar modules +increases. +.Pp +The first probe argument, +.Vt uint64_t Va arg0 , +represents the value that the +.Ar name +counter will increase by. +.Pp +Note that some probes like +.Cm mib:esp:count:esps_hist +or +.Cm mib:icmp6:count:icp6s_outhist +provide other arguments as well. +.Sh EXAMPLES +.Ss Example 1 : Tracing IP Stats Counters +When debugging network issues one common clue is an unexpectedly +incrementing error counter. +This is helpful, in that it gives us an +idea of what might be going wrong, but often these counters may be +incremented in different functions. +.Pp +Trace all +.Nm mib +probes in the +.Xr ip 4 +module and print the current count and a stack trace: +.Pp +.Bd -literal -offset 2n +# dtrace -n 'mib:ip:count: { printf("%d", arg0); stack(); }' +dtrace: description 'mib:ip:count: ' matched 29 probes +CPU ID FUNCTION:NAME + 7 98784 count:ips_localout 1 + kernel`ip_output+0x17a2 + kernel`udp_send+0xaca + kernel`sosend_dgram+0x315 + kernel`sousrsend+0x79 + kernel`kern_sendit+0x1be + kernel`sendit+0x1ab + kernel`sys_sendmsg+0x5b + kernel`amd64_syscall+0x169 + kernel`0xffffffff81094b8b +.Ed +.Sh SEE ALSO +.Xr dtrace 1 , +.Xr dtrace_ip 4 , +.Xr dtrace_tcp 4 , +.Xr dtrace_udp 4 , +.Xr tracing 7 , +.Xr sysctl 8 +.Rs +.%B The illumos Dynamic Tracing Guide +.%O Chapter mib Provider +.%D 2008 +.%U https://illumos.org/books/dtrace/chp-mib.html +.Re +.Sh AUTHORS +.An -nosplit +The +.Nm mib +provider was added to +.Fx +by +.An Kristof Provost Aq Mt kp@FreeBSD.org . +.Pp +This manual page was written by +.An Mateusz Piotrowski Aq Mt 0mp@FreeBSD.org . +.Sh CAVEATS +The +.Nm mib +provider probes are not a stable interface. +Use the untyped +.Va arg0 , ... , arg9 +variables to access probe arguments +instead of the +.Va args[] +array. diff --git a/share/man/man4/dtrace_tcp.4 b/share/man/man4/dtrace_tcp.4 --- a/share/man/man4/dtrace_tcp.4 +++ b/share/man/man4/dtrace_tcp.4 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd July 2, 2023 +.Dd November 13, 2025 .Dt DTRACE_TCP 4 .Os .Sh NAME @@ -501,6 +501,7 @@ .Sh SEE ALSO .Xr dtrace 1 , .Xr dtrace_ip 4 , +.Xr dtrace_mib 4 , .Xr dtrace_sctp 4 , .Xr dtrace_udp 4 , .Xr dtrace_udplite 4 , diff --git a/share/man/man4/icmp.4 b/share/man/man4/icmp.4 --- a/share/man/man4/icmp.4 +++ b/share/man/man4/icmp.4 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 11, 2024 +.Dd November 13, 2025 .Dt ICMP 4 .Os .Sh NAME @@ -264,6 +264,7 @@ .Xr recv 2 , .Xr send 2 , .Xr sysctl 3 , +.Xr dtrace_mib 4 , .Xr inet 4 , .Xr intro 4 , .Xr ip 4 , diff --git a/share/man/man4/icmp6.4 b/share/man/man4/icmp6.4 --- a/share/man/man4/icmp6.4 +++ b/share/man/man4/icmp6.4 @@ -28,7 +28,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 1, 2018 +.Dd November 13, 2025 .Dt ICMP6 4 .Os .Sh NAME @@ -243,6 +243,7 @@ .Xr setsockopt 2 , .Xr socket 2 , .Xr getprotobyname 3 , +.Xr dtrace_mib 4 , .Xr inet6 4 , .Xr ip6 4 , .Xr netintro 4 diff --git a/share/man/man4/ifmib.4 b/share/man/man4/ifmib.4 --- a/share/man/man4/ifmib.4 +++ b/share/man/man4/ifmib.4 @@ -25,7 +25,7 @@ .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 26, 2020 +.Dd July 18, 2025 .Dt IFMIB 4 .Os .Sh NAME @@ -165,6 +165,7 @@ MIB for Ethernet-like networks. .Sh SEE ALSO .Xr sysctl 3 , +.Xr dtrace_mib 4 , .Xr intro 4 , .Xr ifnet 9 .\" .Xr ethermib 4 , diff --git a/share/man/man4/ip.4 b/share/man/man4/ip.4 --- a/share/man/man4/ip.4 +++ b/share/man/man4/ip.4 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 9, 2021 +.Dd November 13, 2025 .Dt IP 4 .Os .Sh NAME @@ -907,6 +907,7 @@ .Xr byteorder 3 , .Xr CMSG_DATA 3 , .Xr sourcefilter 3 , +.Xr dtrace_mib 4 , .Xr icmp 4 , .Xr igmp 4 , .Xr inet 4 , diff --git a/share/man/man4/ipsec.4 b/share/man/man4/ipsec.4 --- a/share/man/man4/ipsec.4 +++ b/share/man/man4/ipsec.4 @@ -27,7 +27,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd March 4, 2025 +.Dd November 13, 2025 .Dt IPSEC 4 .Os .Sh NAME @@ -336,6 +336,7 @@ .Xr socket 2 , .Xr ipsec_set_policy 3 , .Xr crypto 4 , +.Xr dtrace_mib 4 , .Xr enc 4 , .Xr icmp6 4 , .Xr if_ipsec 4 , diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4 --- a/share/man/man4/tcp.4 +++ b/share/man/man4/tcp.4 @@ -31,7 +31,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 5, 2025 +.Dd November 13, 2025 .Dt TCP 4 .Os .Sh NAME @@ -1098,6 +1098,7 @@ .Xr stats 3 , .Xr sysctl 3 , .Xr blackhole 4 , +.Xr dtrace_mib 4 , .Xr inet 4 , .Xr intro 4 , .Xr ip 4 , diff --git a/share/man/man4/udp.4 b/share/man/man4/udp.4 --- a/share/man/man4/udp.4 +++ b/share/man/man4/udp.4 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd January 20, 2025 +.Dd November 13, 2025 .Dt UDP 4 .Os .Sh NAME @@ -175,6 +175,7 @@ .Xr send 2 , .Xr socket 2 , .Xr blackhole 4 , +.Xr dtrace_mib 4 , .Xr inet 4 , .Xr intro 4 , .Xr ip 4 , diff --git a/share/man/man7/stats.7 b/share/man/man7/stats.7 --- a/share/man/man7/stats.7 +++ b/share/man/man7/stats.7 @@ -24,7 +24,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd October 28, 2025 +.Dd November 13, 2025 .Dt STATS 7 .Os .Sh NAME @@ -44,6 +44,8 @@ Show Bluetooth socket information .It Nm ctlstat CAM Target Layer statistics utility +.It Nm dtrace_mib +Access the MIB stats counters with DTrace .It Nm dwatch Watch processes as they trigger a particular DTrace probe .It Nm fstat @@ -99,6 +101,7 @@ .Xr sockstat 1 , .Xr stat 1 , .Xr systat 1 , +.Xr dtrace_mib 4 , .Xr intro 7 , .Xr tuning 7 , .Xr ctlstat 8 ,