--- old/usr/src/lib/libdtrace/common/ip.d.in Fri Aug 29 10:35:05 2008 +++ new/usr/src/lib/libdtrace/common/ip.d.in Fri Aug 29 10:35:04 2008 @@ -19,7 +19,7 @@ * 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. */ @@ -183,6 +183,13 @@ */ 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; @@ -226,6 +233,18 @@ inet_ntoa6(&((ip6_t *)I)->ip6_dst) : "") : ""; }; +#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) : "";