Print this page
3903 DTrace SCTP Provider


 159         uint32_t ipv6_flow;             /* flow label */
 160         uint16_t ipv6_plen;             /* payload length */
 161         uint8_t ipv6_nexthdr;           /* next header protocol */
 162         string ipv6_nextstr;            /* next header protocol, as a string */
 163         uint8_t ipv6_hlim;              /* hop limit */
 164         in6_addr_t *ipv6_src;           /* source address */
 165         in6_addr_t *ipv6_dst;           /* destination address */
 166         string ipv6_saddr;              /* source address, string */
 167         string ipv6_daddr;              /* destination address, string */
 168         ip6_t *ipv6_hdr;                /* pointer to raw header */
 169 } ipv6info_t;
 170 
 171 /*
 172  * void_ip_t is a void pointer to either an IPv4 or IPv6 header.  It has
 173  * its own type name so that a translator can be determined.
 174  */
 175 typedef uintptr_t void_ip_t;
 176 
 177 /*
 178  * __dtrace_ipsr_ill_t is used by the translator to take an ill_t plus an
 179  * additional arg6 from the ip:::send and ip:::recieve probes, and translate
 180  * them to an ifinfo_t.
 181  */
 182 typedef ill_t __dtrace_ipsr_ill_t;
 183 
 184 /*
 185  * __dtrace_tcp_void_ip_t is used by the translator to take either the
 186  * non-NULL void_ip_t * passed in or, if it is NULL, uses arg3 (tcp_t *)
 187  * from the tcp:::send and tcp:::recieve probes to translate to an ipinfo_t.
 188  * When no headers are available in the TCP fusion case for tcp:::send
 189  * and tcp:::receive case, this allows us to present the consumer with header
 190  * data based on the tcp_t * content in order to hide the implementation
 191  * details of TCP fusion.
 192  */
 193 typedef void * __dtrace_tcp_void_ip_t;
 194 
 195 #pragma D binding "1.5" translator
 196 translator pktinfo_t < mblk_t *M > {
 197         pkt_addr = NULL;
 198 };
 199 
 200 #pragma D binding "1.5" translator
 201 translator csinfo_t < conn_t *C > {
 202         cs_addr = NULL;
 203 };
 204 
 205 #pragma D binding "1.6.3" translator
 206 translator csinfo_t < ip_xmit_attr_t *C > {
 207         cs_addr = (uintptr_t)C;




 159         uint32_t ipv6_flow;             /* flow label */
 160         uint16_t ipv6_plen;             /* payload length */
 161         uint8_t ipv6_nexthdr;           /* next header protocol */
 162         string ipv6_nextstr;            /* next header protocol, as a string */
 163         uint8_t ipv6_hlim;              /* hop limit */
 164         in6_addr_t *ipv6_src;           /* source address */
 165         in6_addr_t *ipv6_dst;           /* destination address */
 166         string ipv6_saddr;              /* source address, string */
 167         string ipv6_daddr;              /* destination address, string */
 168         ip6_t *ipv6_hdr;                /* pointer to raw header */
 169 } ipv6info_t;
 170 
 171 /*
 172  * void_ip_t is a void pointer to either an IPv4 or IPv6 header.  It has
 173  * its own type name so that a translator can be determined.
 174  */
 175 typedef uintptr_t void_ip_t;
 176 
 177 /*
 178  * __dtrace_ipsr_ill_t is used by the translator to take an ill_t plus an
 179  * additional arg6 from the ip:::send and ip:::receive probes, and translate
 180  * them to an ifinfo_t.
 181  */
 182 typedef ill_t __dtrace_ipsr_ill_t;
 183 
 184 /*
 185  * __dtrace_tcp_void_ip_t is used by the translator to take either the
 186  * non-NULL void_ip_t * passed in or, if it is NULL, uses arg3 (tcp_t *)
 187  * from the tcp:::send and tcp:::receive probes to translate to an ipinfo_t.
 188  * When no headers are available in the TCP fusion case for tcp:::send
 189  * and tcp:::receive case, this allows us to present the consumer with header
 190  * data based on the tcp_t * content in order to hide the implementation
 191  * details of TCP fusion.
 192  */
 193 typedef void * __dtrace_tcp_void_ip_t;
 194 
 195 #pragma D binding "1.5" translator
 196 translator pktinfo_t < mblk_t *M > {
 197         pkt_addr = NULL;
 198 };
 199 
 200 #pragma D binding "1.5" translator
 201 translator csinfo_t < conn_t *C > {
 202         cs_addr = NULL;
 203 };
 204 
 205 #pragma D binding "1.6.3" translator
 206 translator csinfo_t < ip_xmit_attr_t *C > {
 207         cs_addr = (uintptr_t)C;