# -*- tab-width: 4 -*- ;; Emacs # vi: set filetype=sh tabstop=8 shiftwidth=8 noexpandtab :: Vi/ViM ############################################################ IDENT(1) # # $Title: dwatch(8) module for dtrace_ip(4) $ # $Copyright: 2014-2018 Devin Teske. All rights reserved. $ # ############################################################ DESCRIPTION # # Display interface name and bytes sent/received when IP I/O occurs # ############################################################ PROBE case "$PROFILE" in ip) : ${PROBE:=ip:::send, ip:::receive} ;; *) : ${PROBE:=ip:::${PROFILE#ip-}} esac ############################################################ ACTIONS exec 9<"); } /* * dtrace_ip(4) */ this->recv = probename == "receive" ? 1 : 0; this->flow = this->recv ? "<-" : "->"; /* * ipinfo_t * */ this->length = (uint32_t)args[2]->ip_plength; this->local = this->recv ? args[2]->ip_daddr : args[2]->ip_saddr; this->remote = this->recv ? args[2]->ip_saddr : args[2]->ip_daddr; /* * ifinfo_t * */ this->if_name = args[3]->if_name; } EOF ACTIONS=$( cat <&9 ) ID=$(( $ID + 1 )) ############################################################ EVENT DETAILS if [ ! "$CUSTOM_DETAILS" ]; then exec 9<if_name, this->local, this->flow, this->remote, this->length, this->length == 1 ? "" : "s"); EOF EVENT_DETAILS=$( cat <&9 ) fi ################################################################################ # END ################################################################################