diff options
Diffstat (limited to 'cddl/usr.sbin')
-rw-r--r-- | cddl/usr.sbin/dtrace/tests/common/ip/Makefile | 4 | ||||
-rwxr-xr-x | cddl/usr.sbin/dtrace/tests/tools/exclude.sh | 1 | ||||
-rw-r--r-- | cddl/usr.sbin/dwatch/libexec/Makefile | 3 | ||||
-rw-r--r-- | cddl/usr.sbin/dwatch/libexec/udplite | 89 |
4 files changed, 97 insertions, 0 deletions
diff --git a/cddl/usr.sbin/dtrace/tests/common/ip/Makefile b/cddl/usr.sbin/dtrace/tests/common/ip/Makefile index 805c31f6cde4..c47aac901cb4 100644 --- a/cddl/usr.sbin/dtrace/tests/common/ip/Makefile +++ b/cddl/usr.sbin/dtrace/tests/common/ip/Makefile @@ -13,12 +13,16 @@ ${PACKAGE}FILES= \ tst.ipv4localtcp.ksh.out \ tst.ipv4localudp.ksh \ tst.ipv4localudp.ksh.out \ + tst.ipv4localudplite.ksh \ + tst.ipv4localudplite.ksh.out \ tst.ipv4remoteicmp.ksh \ tst.ipv4remoteicmp.ksh.out \ tst.ipv4remotetcp.ksh \ tst.ipv4remotetcp.ksh.out \ tst.ipv4remoteudp.ksh \ tst.ipv4remoteudp.ksh.out \ + tst.ipv4remoteudplite.ksh \ + tst.ipv4remoteudplite.ksh.out \ tst.ipv6localicmp.ksh \ tst.ipv6localicmp.ksh.out \ tst.ipv6remoteicmp.ksh \ diff --git a/cddl/usr.sbin/dtrace/tests/tools/exclude.sh b/cddl/usr.sbin/dtrace/tests/tools/exclude.sh index f7d856940d17..1a4d8bd7cdb9 100755 --- a/cddl/usr.sbin/dtrace/tests/tools/exclude.sh +++ b/cddl/usr.sbin/dtrace/tests/tools/exclude.sh @@ -119,6 +119,7 @@ exclude SKIP common/builtinvar/tst.ipl1.d # These tests rely on being able to find a host via broadcast pings. exclude EXFAIL common/ip/tst.ipv4remotetcp.ksh exclude EXFAIL common/ip/tst.ipv4remoteudp.ksh +exclude EXFAIL common/ip/tst.ipv4remoteudplite.ksh exclude EXFAIL common/ip/tst.ipv6remoteicmp.ksh exclude EXFAIL common/ip/tst.ipv4remoteicmp.ksh exclude EXFAIL common/ip/tst.remotetcpstate.ksh diff --git a/cddl/usr.sbin/dwatch/libexec/Makefile b/cddl/usr.sbin/dwatch/libexec/Makefile index b0d3940914e0..eeba83eef3da 100644 --- a/cddl/usr.sbin/dwatch/libexec/Makefile +++ b/cddl/usr.sbin/dwatch/libexec/Makefile @@ -14,6 +14,7 @@ FILES= chmod \ sendrecv \ tcp \ udp \ + udplite \ vop_create \ vop_readdir \ vop_rename \ @@ -78,6 +79,8 @@ LINKS+= ${LIBEXECDIR}/dwatch/tcp ${LIBEXECDIR}/dwatch/tcp-state-change LINKS+= ${LIBEXECDIR}/dwatch/tcp ${LIBEXECDIR}/dwatch/tcp-status LINKS+= ${LIBEXECDIR}/dwatch/udp ${LIBEXECDIR}/dwatch/udp-receive LINKS+= ${LIBEXECDIR}/dwatch/udp ${LIBEXECDIR}/dwatch/udp-send +LINKS+= ${LIBEXECDIR}/dwatch/udplite ${LIBEXECDIR}/dwatch/udplite-receive +LINKS+= ${LIBEXECDIR}/dwatch/udplite ${LIBEXECDIR}/dwatch/udplite-send LINKS+= ${LIBEXECDIR}/dwatch/vop_create ${LIBEXECDIR}/dwatch/vop_lookup LINKS+= ${LIBEXECDIR}/dwatch/vop_create ${LIBEXECDIR}/dwatch/vop_mkdir LINKS+= ${LIBEXECDIR}/dwatch/vop_create ${LIBEXECDIR}/dwatch/vop_mknod diff --git a/cddl/usr.sbin/dwatch/libexec/udplite b/cddl/usr.sbin/dwatch/libexec/udplite new file mode 100644 index 000000000000..093c0857f865 --- /dev/null +++ b/cddl/usr.sbin/dwatch/libexec/udplite @@ -0,0 +1,89 @@ +# -*- tab-width: 4 -*- ;; Emacs +# vi: set filetype=sh tabstop=8 shiftwidth=8 noexpandtab :: Vi/ViM +############################################################ IDENT(1) +# +# $Title: dwatch(8) module for dtrace_udplite(4) $ +# $Copyright: 2014-2018 Devin Teske. All rights reserved. $ +# $FreeBSD$ +# +############################################################ DESCRIPTION +# +# Display local/remote UDP addresses/ports and bytes sent/received for UDP I/O +# +############################################################ PROBE + +case "$PROFILE" in +udplite) : ${PROBE:=udplite:::send, udplite:::receive} ;; + *) : ${PROBE:=udplite:::${PROFILE#udplite-}} +esac + +############################################################ ACTIONS + +exec 9<<EOF +this string flow; +this string local; +this string remote; +this u_char local6; +this u_char recv; +this u_char remote6; +this uint16_t coverage; +this uint16_t lport; +this uint16_t rport; + +$PROBE /* probe ID $ID */ +{${TRACE:+ + printf("<$ID>"); +} + /* + * dtrace_udplite(4) + */ + this->recv = probename == "receive" ? 1 : 0; + this->flow = this->recv ? "<-" : "->"; + + /* + * ipinfo_t * + */ + this->local = this->recv ? args[2]->ip_daddr : args[2]->ip_saddr; + this->remote = this->recv ? args[2]->ip_saddr : args[2]->ip_daddr; + + /* + * udpliteinfo_t * + */ + this->coverage = (uint16_t)args[4]->udplite_coverage; + this->lport = this->recv ? args[4]->udplite_dport : args[4]->udplite_sport; + this->rport = this->recv ? args[4]->udplite_sport : args[4]->udplite_dport; + + /* + * IPv6 support + */ + this->local6 = strstr(this->local, ":") != NULL ? 1 : 0; + this->remote6 = strstr(this->remote, ":") != NULL ? 1 : 0; + this->local = strjoin(strjoin(this->local6 ? "[" : "", + this->local), this->local6 ? "]" : ""); + this->remote = strjoin(strjoin(this->remote6 ? "[" : "", + this->remote), this->remote6 ? "]" : ""); +} +EOF +ACTIONS=$( cat <&9 ) +ID=$(( $ID + 1 )) + +############################################################ EVENT DETAILS + +if [ ! "$CUSTOM_DETAILS" ]; then +exec 9<<EOF + /* + * Print network I/O details + */ + printf("%s:%u %s %s:%u %d byte%s", + this->local, this->lport, + this->flow, + this->remote, this->rport, + this->coverage, + this->coverage == 1 ? "" : "s"); +EOF +EVENT_DETAILS=$( cat <&9 ) +fi + +################################################################################ +# END +################################################################################ |