|
NAMEdtrace_udplite —
a DTrace provider for tracing events related to the UDP-Lite
protocol
SYNOPSISudplite:::receive (pktinfo_t
*, csinfo_t *,
ipinfo_t *,
udplitesinfo_t *,
udpliteinfo_t *);
DESCRIPTIONThe DTraceudplite provider allows users to trace events
in the
udplite(4)
protocol implementation. The udplite:::send () probe
fires whenever the kernel prepares to transmit a UDP-Lite packet, and the
udplite:::receive () probe fires whenever the kernel
receives a UDP-Lite packet, unless the UDP-Lite header is incomplete, the
destination port is 0, the length field is invalid, or the checksum is wrong.
The arguments to these probes can be used to obtain detailed information about
the IP and UDP-Lite headers of the corresponding packet.
ARGUMENTSThe pktinfo_t argument is currently unimplemented and is included for compatibility with other implementations of this provider. Its fields are:
The csinfo_t argument is currently unimplemented and is included for compatibility with other implementations of this provider. Its fields are:
The ipinfo_t argument contains IP fields common to both IPv4 and IPv6 packets. Its fields are:
The udplitesinfo_t argument contains the state of the UDP-Lite connection associated with the packet. Its fields are:
The udpliteinfo_t argument is the raw UDP-Lite header of the packet, with all fields in host order. Its fields are:
FILES
EXAMPLESThe following script counts transmitted packets by destination port.udplite:::send { @num[args[4]->udplite_dport] = count(); } This script will print some details of each UDP-Lite packet as it is sent or received by the kernel: #pragma D option quiet #pragma D option switchrate=10Hz dtrace:::BEGIN { printf(" %10s %36s %-36s %6s\n", "DELTA(us)", "SOURCE", "DEST", "COV"); last = timestamp; } udplite:::send { this->elapsed = (timestamp - last) / 1000; self->dest = strjoin(strjoin(args[2]->ip_daddr, ":"), lltostr(args[4]->udplite_dport)); printf(" %10d %30s:%-5d -> %-36s %6d\n", this->elapsed, args[2]->ip_saddr, args[4]->udplite_sport, self->dest, args[4]->udplite_coverage); last = timestamp; } udplite:::receive { this->elapsed = (timestamp - last) / 1000; self->dest = strjoin(strjoin(args[2]->ip_saddr, ":"), lltostr(args[4]->udplite_sport)); printf(" %10d %30s:%-5d <- %-36s %6d\n", this->elapsed, args[2]->ip_daddr, args[4]->udplite_dport, self->dest, args[4]->udplite_coverage); last = timestamp; } SEE ALSOdtrace(1), dtrace_ip(4), dtrace_sctp(4), dtrace_tcp(4), dtrace_udp(4), udplite(4), SDT(9)HISTORYTheudplite provider first appeared in
FreeBSD 12.0.
AUTHORSThis manual page was written by Mark Johnston <markj@FreeBSD.org> andMichael Tuexen <tuexen@FreeBSD.org>.
Visit the GSP FreeBSD Man Page Interface. |