The branch main has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=ef19cae25337e7449f338914650bbfab0fbea99f
commit ef19cae25337e7449f338914650bbfab0fbea99f Author: Mateusz Piotrowski <[email protected]> AuthorDate: 2025-07-18 15:46:25 +0000 Commit: Mateusz Piotrowski <[email protected]> CommitDate: 2026-05-07 11:53:50 +0000 dtrace_mib.4: Document the DTrace MIB provider Reviewed by: kp MFC after: 1 week Obtained from: 60d8dbbef075 netinet: add a probe point for IP, IP6, ICMP, ICMP6, UDP and TCP stats counters Differential Revision: https://reviews.freebsd.org/D53709 --- cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 | 1 + sbin/sysctl/sysctl.8 | 3 +- share/man/man4/Makefile | 1 + share/man/man4/dtrace_ip.4 | 3 +- share/man/man4/dtrace_mib.4 | 123 +++++++++++++++++++++++++++ share/man/man4/dtrace_tcp.4 | 3 +- share/man/man4/icmp.4 | 3 +- share/man/man4/icmp6.4 | 3 +- share/man/man4/ifmib.4 | 3 +- share/man/man4/ip.4 | 3 +- share/man/man4/ipsec.4 | 3 +- share/man/man4/tcp.4 | 3 +- share/man/man4/udp.4 | 3 +- share/man/man7/stats.7 | 5 +- 14 files changed, 149 insertions(+), 11 deletions(-) diff --git a/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 b/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 index 45cb8c863f7a..e78b6e1875ae 100644 --- a/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 +++ b/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 @@ -1304,6 +1304,7 @@ in .Xr dtrace_ip 4 , .Xr dtrace_kinst 4 , .Xr dtrace_lockstat 4 , +.Xr dtrace_mib 4 , .Xr dtrace_pid 4 , .Xr dtrace_proc 4 , .Xr dtrace_priv 4 , diff --git a/sbin/sysctl/sysctl.8 b/sbin/sysctl/sysctl.8 index e0e35f075a78..b97bce320898 100644 --- 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 May 7, 2026 .Dt SYSCTL 8 .Os .Sh NAME @@ -336,6 +336,7 @@ The 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 index 44671c564239..b9c441e97597 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -1023,6 +1023,7 @@ _dtrace_provs= dtrace_audit.4 \ 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 index e9fbdfa3cf43..6faeb305ffc5 100644 --- 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 May 7, 2026 .Dt DTRACE_IP 4 .Os .Sh NAME @@ -266,6 +266,7 @@ This provider is compatible with the 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 index 000000000000..e8c2dd3a6f05 --- /dev/null +++ b/share/man/man4/dtrace_mib.4 @@ -0,0 +1,123 @@ +.\" +.\" Copyright (c) 2025-2026 Mateusz Piotrowski <[email protected]> +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd May 7, 2026 +.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 counter +.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 counter +probes fire when the +.Ar counter +in +.Ar module Ns s +increases. +.Pp +The first probe argument, +.Vt uint64_t Va args[0] , +is the increment that the +.Ar counter +will increase by. +.Pp +Note that some probes like +.Cm mib:esp:count:esps_hist +or +.Cm mib:icmp6:count:icp6s_outhist +provide additional probe-specific arguments. +.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 +.Sh STANDARDS +The probe descriptions in +the +.Fx +.Nm mib +provider are not compatible with those in the Solaris/illumos mib provider. +.Sh AUTHORS +.An -nosplit +The +.Nm mib +provider was added to +.Fx +by +.An Kristof Provost Aq Mt [email protected] . +.Pp +This manual page was written by +.An Mateusz Piotrowski Aq Mt [email protected] . diff --git a/share/man/man4/dtrace_tcp.4 b/share/man/man4/dtrace_tcp.4 index af57f6e94a63..5570dd965706 100644 --- 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 May 7, 2026 .Dt DTRACE_TCP 4 .Os .Sh NAME @@ -501,6 +501,7 @@ provider in Solaris. .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 index c8c92a794e24..493d2d218cec 100644 --- 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 May 7, 2026 .Dt ICMP 4 .Os .Sh NAME @@ -264,6 +264,7 @@ exists. .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 index 8730e3fefacb..d9a8bd34a81a 100644 --- 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 May 7, 2026 .Dt ICMP6 4 .Os .Sh NAME @@ -243,6 +243,7 @@ structure as the option value. .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 index 20b5613b6873..48e79c1f9411 100644 --- 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 May 7, 2026 .Dt IFMIB 4 .Os .Sh NAME @@ -165,6 +165,7 @@ and implements a superset of the 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 index fb5ea398c840..140866f6fcf6 100644 --- 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 May 7, 2026 .Dt IP 4 .Os .Sh NAME @@ -907,6 +907,7 @@ field was not equal to the length of the datagram written to the socket. .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 index 9fd6207c2f14..0c60e0e3c121 100644 --- 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 May 7, 2026 .Dt IPSEC 4 .Os .Sh NAME @@ -336,6 +336,7 @@ routines from looking into the IP payload. .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 index 3c9f4ff83f3d..4c01daf4e14e 100644 --- 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 May 7, 2026 .Dt TCP 4 .Os .Sh NAME @@ -1098,6 +1098,7 @@ when trying to use a TCP function block that is not available; .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 index b1dbff56154f..db9d0e0ae2c7 100644 --- 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 May 7, 2026 .Dt UDP 4 .Os .Sh NAME @@ -175,6 +175,7 @@ exists. .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 index 0b57d525522c..f81c2fef0155 100644 --- 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 May 7, 2026 .Dt STATS 7 .Os .Sh NAME @@ -44,6 +44,8 @@ are currently included in the base system, with more appearing periodically. 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 @@ Report ZFS I/O statistics .Xr sockstat 1 , .Xr stat 1 , .Xr systat 1 , +.Xr dtrace_mib 4 , .Xr intro 7 , .Xr tuning 7 , .Xr ctlstat 8 ,
