1 /*- 2 * Copyright (c) 2013 Mark Johnston <markj@FreeBSD.org> 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are 6 * met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in 11 * the documentation and/or other materials provided with the 12 * distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * 26 * $FreeBSD$ 27 */ 28 29 #include <sys/cdefs.h> 30 __FBSDID("$FreeBSD$"); 31 32 #include "opt_kdtrace.h" 33 34 #include <sys/param.h> 35 #include <sys/systm.h> 36 #include <sys/sdt.h> 37 38 SDT_PROVIDER_DEFINE(ip); 39 SDT_PROVIDER_DEFINE(tcp); 40 SDT_PROVIDER_DEFINE(udp); 41 42 SDT_PROBE_DEFINE6_XLATE(ip, , , receive, receive, 43 "void *", "pktinfo_t *", 44 "void *", "csinfo_t *", 45 "uint8_t *", "ipinfo_t *", 46 "struct ifnet *", "ifinfo_t *", 47 "struct ip *", "ipv4info_t *", 48 "struct ip6_hdr *", "ipv6info_t *"); 49 50 SDT_PROBE_DEFINE6_XLATE(ip, , , send, send, 51 "void *", "pktinfo_t *", 52 "void *", "csinfo_t *", 53 "uint8_t *", "ipinfo_t *", 54 "struct ifnet *", "ifinfo_t *", 55 "struct ip *", "ipv4info_t *", 56 "struct ip6_hdr *", "ipv6info_t *"); 57 58 SDT_PROBE_DEFINE5_XLATE(tcp, , , accept_established, accept-established, 59 "void *", "pktinfo_t *", 60 "struct tcpcb *", "csinfo_t *", 61 "uint8_t *", "ipinfo_t *", 62 "struct tcpcb *", "tcpsinfo_t *" , 63 "struct tcphdr *", "tcpinfoh_t *"); 64 65 SDT_PROBE_DEFINE5_XLATE(tcp, , , accept_refused, accept-refused, 66 "void *", "pktinfo_t *", 67 "struct tcpcb *", "csinfo_t *", 68 "uint8_t *", "ipinfo_t *", 69 "struct tcpcb *", "tcpsinfo_t *" , 70 "struct tcphdr *", "tcpinfo_t *"); 71 72 SDT_PROBE_DEFINE5_XLATE(tcp, , , connect_established, connect-established, 73 "void *", "pktinfo_t *", 74 "struct tcpcb *", "csinfo_t *", 75 "uint8_t *", "ipinfo_t *", 76 "struct tcpcb *", "tcpsinfo_t *" , 77 "struct tcphdr *", "tcpinfoh_t *"); 78 79 SDT_PROBE_DEFINE5_XLATE(tcp, , , connect_refused, connect-refused, 80 "void *", "pktinfo_t *", 81 "struct tcpcb *", "csinfo_t *", 82 "uint8_t *", "ipinfo_t *", 83 "struct tcpcb *", "tcpsinfo_t *" , 84 "struct tcphdr *", "tcpinfoh_t *"); 85 86 SDT_PROBE_DEFINE5_XLATE(tcp, , , connect_request, connect-request, 87 "void *", "pktinfo_t *", 88 "struct tcpcb *", "csinfo_t *", 89 "uint8_t *", "ipinfo_t *", 90 "struct tcpcb *", "tcpsinfo_t *" , 91 "struct tcphdr *", "tcpinfo_t *"); 92 93 SDT_PROBE_DEFINE5_XLATE(tcp, , , receive, receive, 94 "void *", "pktinfo_t *", 95 "struct tcpcb *", "csinfo_t *", 96 "uint8_t *", "ipinfo_t *", 97 "struct tcpcb *", "tcpsinfo_t *" , 98 "struct tcphdr *", "tcpinfoh_t *"); 99 100 SDT_PROBE_DEFINE5_XLATE(tcp, , , send, send, 101 "void *", "pktinfo_t *", 102 "struct tcpcb *", "csinfo_t *", 103 "uint8_t *", "ipinfo_t *", 104 "struct tcpcb *", "tcpsinfo_t *" , 105 "struct tcphdr *", "tcpinfo_t *"); 106 107 SDT_PROBE_DEFINE6_XLATE(tcp, , , state_change, state-change, 108 "void *", "void *", 109 "struct tcpcb *", "csinfo_t *", 110 "void *", "void *", 111 "struct tcpcb *", "tcpsinfo_t *", 112 "void *", "void *", 113 "int", "tcplsinfo_t *"); 114 115 SDT_PROBE_DEFINE5_XLATE(udp, , , receive, receive, 116 "void *", "pktinfo_t *", 117 "struct inpcb *", "csinfo_t *", 118 "uint8_t *", "ipinfo_t *", 119 "struct inpcb *", "udpsinfo_t *", 120 "struct udphdr *", "udpinfo_t *"); 121 122 SDT_PROBE_DEFINE5_XLATE(udp, , , send, send, 123 "void *", "pktinfo_t *", 124 "struct inpcb *", "csinfo_t *", 125 "uint8_t *", "ipinfo_t *", 126 "struct inpcb *", "udpsinfo_t *", 127 "struct udphdr *", "udpinfo_t *"); 128