FreeBSD Manual Pages
DTRACE_UDPLITE(4) Kernel Interfaces Manual DTRACE_UDPLITE(4) NAME dtrace_udplite -- a DTrace provider for tracing events related to the UDP-Lite protocol SYNOPSIS udplite:::receive(pktinfo_t *, csinfo_t *, ipinfo_t *, udplitesinfo_t *, udpliteinfo_t *); udplite:::send(pktinfo_t *, csinfo_t *, ipinfo_t *, udplitesinfo_t *, udpliteinfo_t *); DESCRIPTION The DTrace udplite 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 argu- ments to these probes can be used to obtain detailed information about the IP and UDP-Lite headers of the corresponding packet. ARGUMENTS The pktinfo_t argument is currently unimplemented and is included for compatibility with other implementations of this provider. Its fields are: uintptr_t pkt_addr Always set to 0. The csinfo_t argument is currently unimplemented and is included for compatibility with other implementations of this provider. Its fields are: uintptr_t cs_addr Always set to 0. uint64_t cs_cid A pointer to the struct inpcb for this packet, or NULL. pid_t cs_pid Always set to 0. The ipinfo_t argument contains IP fields common to both IPv4 and IPv6 packets. Its fields are: uint8_t ip_ver IP version of the packet, 4 for IPv4 packets and 6 for IPv6 packets. uint32_t ip_plength IP payload size. This does not include the size of the IP header or IPv6 option head- ers. string ip_saddr IP source address. string ip_daddr IP destination address. The udplitesinfo_t argument contains the state of the UDP-Lite connec- tion associated with the packet. Its fields are: uintptr_t udplites_addr Pointer to the struct inpcb containing the IP state for the associated socket. uint16_t udplites_lport Local UDP-Lite port. uint16_t udplites_rport Remote UDP-Lite port. string udplites_laddr Local IPv4 or IPv6 address. string udplites_raddr Remote IPv4 or IPv6 address. The udpliteinfo_t argument is the raw UDP-Lite header of the packet, with all fields in host order. Its fields are: uint16_t udplite_sport Source UDP-Lite port. uint16_t udplite_dport Destination UDP-Lite port. uint16_t udplite_coverage Checksum coverage of the UDP-Lite header, in bytes, or 0 for full coverage. uint16_t udplite_checksum A checksum of the UDP-Lite header and payload, or 0 if no checksum was calculated. struct udplitehdr *udplite_hdr A pointer to the raw UDP-Lite header. FILES /usr/lib/dtrace/udplite.d DTrace type and translator definitions for the udplite provider. EXAMPLES The 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 ALSO dtrace(1), dtrace_ip(4), dtrace_sctp(4), dtrace_tcp(4), dtrace_udp(4), udplite(4), SDT(9) HISTORY The udplite provider first appeared in FreeBSD 12.0. AUTHORS This manual page was written by Mark Johnston <markj@FreeBSD.org> and Michael Tuexen <tuexen@FreeBSD.org>. FreeBSD 14.3 August 1, 2018 DTRACE_UDPLITE(4)
NAME | SYNOPSIS | DESCRIPTION | ARGUMENTS | FILES | EXAMPLES | SEE ALSO | HISTORY | AUTHORS
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=dtrace_udplite&sektion=4&manpath=FreeBSD+14.3-RELEASE+and+Ports>