| Main index | Section 4 | Options |
| 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 headers. | |
| string ip_saddr | |
| IP source address. | |
| string ip_daddr | |
| IP destination address. | |
The udplitesinfo_t argument contains the state of the UDP-Lite connection 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. | |
| /usr/lib/dtrace/udplite.d | |
| DTrace type and translator definitions for the udplite provider. | |
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=10Hzdtrace:::BEGIN { printf(" %10s %36s %-36s %6s , "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 , 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 , this->elapsed, args[2]->ip_daddr, args[4]->udplite_dport, self->dest, args[4]->udplite_coverage); last = timestamp; }
| DTRACE_UDPLITE (4) | August 1, 2018 |
| Main index | Section 4 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
| “ | What will happen when the 32-bit Unix date goes negative in mid-January 2038 does not bear thinking about. | ” |
| — Henry Spencer | ||