in_kdtrace.c revision 317375
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: stable/10/sys/netinet/in_kdtrace.c 317375 2017-04-24 16:31:28Z smh $
27 */
28
29#include <sys/cdefs.h>
30__FBSDID("$FreeBSD: stable/10/sys/netinet/in_kdtrace.c 317375 2017-04-24 16:31:28Z smh $");
31
32#include "opt_kdtrace.h"
33
34#include <sys/param.h>
35#include <sys/systm.h>
36#include <sys/sdt.h>
37
38SDT_PROVIDER_DEFINE(ip);
39SDT_PROVIDER_DEFINE(tcp);
40SDT_PROVIDER_DEFINE(udp);
41
42SDT_PROBE_DEFINE6_XLATE(ip, , , 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
50SDT_PROBE_DEFINE6_XLATE(ip, , , 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
58SDT_PROBE_DEFINE5_XLATE(tcp, , , accept__established,
59    "void *", "pktinfo_t *",
60    "struct tcpcb *", "csinfo_t *",
61    "struct mbuf *", "ipinfo_t *",
62    "struct tcpcb *", "tcpsinfo_t *" ,
63    "struct tcphdr *", "tcpinfoh_t *");
64
65SDT_PROBE_DEFINE5_XLATE(tcp, , , accept__refused,
66    "void *", "pktinfo_t *",
67    "struct tcpcb *", "csinfo_t *",
68    "struct mbuf *", "ipinfo_t *",
69    "struct tcpcb *", "tcpsinfo_t *" ,
70    "struct tcphdr *", "tcpinfo_t *");
71
72SDT_PROBE_DEFINE5_XLATE(tcp, , , connect__established,
73    "void *", "pktinfo_t *",
74    "struct tcpcb *", "csinfo_t *",
75    "struct mbuf *", "ipinfo_t *",
76    "struct tcpcb *", "tcpsinfo_t *" ,
77    "struct tcphdr *", "tcpinfoh_t *");
78
79SDT_PROBE_DEFINE5_XLATE(tcp, , , connect__refused,
80    "void *", "pktinfo_t *",
81    "struct tcpcb *", "csinfo_t *",
82    "struct mbuf *", "ipinfo_t *",
83    "struct tcpcb *", "tcpsinfo_t *" ,
84    "struct tcphdr *", "tcpinfoh_t *");
85
86SDT_PROBE_DEFINE5_XLATE(tcp, , , 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
93SDT_PROBE_DEFINE5_XLATE(tcp, , , receive,
94    "void *", "pktinfo_t *",
95    "struct tcpcb *", "csinfo_t *",
96    "struct mbuf *", "ipinfo_t *",
97    "struct tcpcb *", "tcpsinfo_t *" ,
98    "struct tcphdr *", "tcpinfoh_t *");
99
100SDT_PROBE_DEFINE5_XLATE(tcp, , , 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
107SDT_PROBE_DEFINE6_XLATE(tcp, , , 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
115SDT_PROBE_DEFINE6_XLATE(tcp, , , receive__autoresize,
116    "void *", "void *",
117    "struct tcpcb *", "csinfo_t *",
118    "struct mbuf *", "ipinfo_t *",
119    "struct tcpcb *", "tcpsinfo_t *" ,
120    "struct tcphdr *", "tcpinfoh_t *",
121    "int", "int");
122
123SDT_PROBE_DEFINE5_XLATE(udp, , , receive,
124    "void *", "pktinfo_t *",
125    "struct inpcb *", "csinfo_t *",
126    "uint8_t *", "ipinfo_t *",
127    "struct inpcb *", "udpsinfo_t *",
128    "struct udphdr *", "udpinfo_t *");
129
130SDT_PROBE_DEFINE5_XLATE(udp, , , send,
131    "void *", "pktinfo_t *",
132    "struct inpcb *", "csinfo_t *",
133    "uint8_t *", "ipinfo_t *",
134    "struct inpcb *", "udpsinfo_t *",
135    "struct udphdr *", "udpinfo_t *");
136