Print this page
*** NO COMMENTS ***
@@ -17,11 +17,11 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
- * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
@@ -181,10 +181,17 @@
* additional arg6 from the ip:::send and ip:::recieve probes, and translate
* them to an ifinfo_t.
*/
typedef ill_t __dtrace_ipsr_ill_t;
+/*
+ * __dtrace_tcpf_ipinfo_t is used by the translators to construct an
+ * ipinfo_t during tcp fusion, from a tcp_t plus an additional arg4 for
+ * the payload bytes.
+ */
+typedef tcp_t __dtrace_tcpf_ipinfo_t;
+
#pragma D binding "1.0" translator
translator pktinfo_t < mblk_t *M > {
pkt_addr = NULL;
};
@@ -224,10 +231,22 @@
ip_daddr = I != NULL ? (*(uint8_t *)I >> 4 == 4 ?
inet_ntoa(&((ipha_t *)I)->ipha_dst) : *(uint8_t *)I >> 4 == 6 ?
inet_ntoa6(&((ip6_t *)I)->ip6_dst) : "<unknown>") : "<unknown>";
};
+#pragma D binding "1.0" translator
+translator ipinfo_t < __dtrace_tcpf_ipinfo_t *T > {
+ ip_ver = T->tcp_ipversion;
+ ip_plength = arg4; /* probe dependent */
+ ip_saddr = inet_ntoa6(probename == "send" ?
+ &T->tcp_connp->connua_v6addr.connua_laddr :
+ &T->tcp_connp->connua_v6addr.connua_faddr);
+ ip_daddr = inet_ntoa6(probename == "send" ?
+ &T->tcp_connp->connua_v6addr.connua_faddr :
+ &T->tcp_connp->connua_v6addr.connua_laddr);
+};
+
#pragma D binding "1.0" translator
translator ifinfo_t < __dtrace_ipsr_ill_t *I > {
if_name = I != NULL ? stringof(I->ill_name) : "<null>";
if_ipstack = I != NULL ? I->ill_ipst->ips_netstack->netstack_stackid
: 0;