xref: /freebsd/sys/netinet/in_kdtrace.c (revision 2d300d376d5b974999d6a2471eef7565877e7508)
1 /*-
2  * SPDX-License-Identifier: BSD-2-Clause
3  *
4  * Copyright (c) 2013 Mark Johnston <markj@FreeBSD.org>
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are
8  * met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in
13  *    the documentation and/or other materials provided with the
14  *    distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26  * SUCH DAMAGE.
27  */
28 
29 #include <sys/param.h>
30 #include <sys/systm.h>
31 #include <sys/sdt.h>
32 
33 SDT_PROVIDER_DEFINE(mib);
34 SDT_PROVIDER_DEFINE(ip);
35 SDT_PROVIDER_DEFINE(tcp);
36 SDT_PROVIDER_DEFINE(udp);
37 SDT_PROVIDER_DEFINE(udplite);
38 
39 #ifdef KDTRACE_MIB_SDT
40 #define MIB_PROBE_IP(name) \
41     SDT_PROBE_DEFINE1(mib, ip, count, name, \
42         "int")
43 
44 MIB_PROBE_IP(ips_total);
45 MIB_PROBE_IP(ips_badsum);
46 MIB_PROBE_IP(ips_tooshort);
47 MIB_PROBE_IP(ips_toosmall);
48 MIB_PROBE_IP(ips_badhlen);
49 MIB_PROBE_IP(ips_badlen);
50 MIB_PROBE_IP(ips_fragments);
51 MIB_PROBE_IP(ips_fragdropped);
52 MIB_PROBE_IP(ips_fragtimeout);
53 MIB_PROBE_IP(ips_forward);
54 MIB_PROBE_IP(ips_fastforward);
55 MIB_PROBE_IP(ips_cantforward);
56 MIB_PROBE_IP(ips_redirectsent);
57 MIB_PROBE_IP(ips_noproto);
58 MIB_PROBE_IP(ips_delivered);
59 MIB_PROBE_IP(ips_localout);
60 MIB_PROBE_IP(ips_odropped);
61 MIB_PROBE_IP(ips_reassembled);
62 MIB_PROBE_IP(ips_fragmented);
63 MIB_PROBE_IP(ips_ofragments);
64 MIB_PROBE_IP(ips_cantfrag);
65 MIB_PROBE_IP(ips_badoptions);
66 MIB_PROBE_IP(ips_noroute);
67 MIB_PROBE_IP(ips_badvers);
68 MIB_PROBE_IP(ips_rawout);
69 MIB_PROBE_IP(ips_toolong);
70 MIB_PROBE_IP(ips_notmember);
71 MIB_PROBE_IP(ips_nogif);
72 MIB_PROBE_IP(ips_badaddr);
73 
74 #define MIB_PROBE_IP6(name) \
75     SDT_PROBE_DEFINE1(mib, ip6, count, name, \
76         "int")
77 #define MIB_PROBE2_IP6(name) \
78     SDT_PROBE_DEFINE2(mib, ip6, count, name, \
79         "int", "int")
80 
81 MIB_PROBE_IP6(ip6s_total);
82 MIB_PROBE_IP6(ip6s_tooshort);
83 MIB_PROBE_IP6(ip6s_toosmall);
84 MIB_PROBE_IP6(ip6s_fragments);
85 MIB_PROBE_IP6(ip6s_fragdropped);
86 MIB_PROBE_IP6(ip6s_fragtimeout);
87 MIB_PROBE_IP6(ip6s_fragoverflow);
88 MIB_PROBE_IP6(ip6s_forward);
89 MIB_PROBE_IP6(ip6s_cantforward);
90 MIB_PROBE_IP6(ip6s_redirectsent);
91 MIB_PROBE_IP6(ip6s_delivered);
92 MIB_PROBE_IP6(ip6s_localout);
93 MIB_PROBE_IP6(ip6s_odropped);
94 MIB_PROBE_IP6(ip6s_reassembled);
95 MIB_PROBE_IP6(ip6s_atomicfrags);
96 MIB_PROBE_IP6(ip6s_fragmented);
97 MIB_PROBE_IP6(ip6s_ofragments);
98 MIB_PROBE_IP6(ip6s_cantfrag);
99 MIB_PROBE_IP6(ip6s_badoptions);
100 MIB_PROBE_IP6(ip6s_noroute);
101 MIB_PROBE_IP6(ip6s_badvers);
102 MIB_PROBE_IP6(ip6s_rawout);
103 MIB_PROBE_IP6(ip6s_badscope);
104 MIB_PROBE_IP6(ip6s_notmember);
105 MIB_PROBE2_IP6(ip6s_nxthist);
106 MIB_PROBE_IP6(ip6s_m1);
107 MIB_PROBE2_IP6(ip6s_m2m);
108 MIB_PROBE_IP6(ip6s_mext1);
109 MIB_PROBE_IP6(ip6s_mext2m);
110 MIB_PROBE_IP6(ip6s_exthdrtoolong);
111 MIB_PROBE_IP6(ip6s_nogif);
112 MIB_PROBE_IP6(ip6s_toomanyhdr);
113 MIB_PROBE_IP6(ip6s_sources_none);
114 MIB_PROBE2_IP6(ip6s_sources_sameif);
115 MIB_PROBE2_IP6(ip6s_sources_otherif);
116 MIB_PROBE2_IP6(ip6s_sources_samescope);
117 MIB_PROBE2_IP6(ip6s_sources_otherscope);
118 MIB_PROBE2_IP6(ip6s_sources_deprecated);
119 MIB_PROBE2_IP6(ip6s_sources_rule);
120 
121 #define MIB_PROBE_ICMP(name) \
122     SDT_PROBE_DEFINE1(mib, icmp, count, name, \
123         "int")
124 #define MIB_PROBE2_ICMP(name) \
125     SDT_PROBE_DEFINE2(mib, icmp, count, name, \
126         "int", "int")
127 
128 MIB_PROBE_ICMP(icps_error);
129 MIB_PROBE_ICMP(icps_oldshort);
130 MIB_PROBE_ICMP(icps_oldicmp);
131 MIB_PROBE2_ICMP(icps_outhist);
132 MIB_PROBE_ICMP(icps_badcode);
133 MIB_PROBE_ICMP(icps_tooshort);
134 MIB_PROBE_ICMP(icps_checksum);
135 MIB_PROBE_ICMP(icps_badlen);
136 MIB_PROBE_ICMP(icps_reflect);
137 MIB_PROBE2_ICMP(icps_inhist);
138 MIB_PROBE_ICMP(icps_bmcastecho);
139 MIB_PROBE_ICMP(icps_bmcasttstamp);
140 MIB_PROBE_ICMP(icps_badaddr);
141 MIB_PROBE_ICMP(icps_noroute);
142 
143 #define MIB_PROBE_ICMP6(name) \
144     SDT_PROBE_DEFINE1(mib, icmp6, count, name, \
145         "int")
146 #define MIB_PROBE2_ICMP6(name) \
147     SDT_PROBE_DEFINE2(mib, icmp6, count, name, \
148         "int", "int")
149 
150 MIB_PROBE_ICMP6(icp6s_error);
151 MIB_PROBE_ICMP6(icp6s_canterror);
152 MIB_PROBE_ICMP6(icp6s_toofreq);
153 MIB_PROBE2_ICMP6(icp6s_outhist);
154 MIB_PROBE_ICMP6(icp6s_badcode);
155 MIB_PROBE_ICMP6(icp6s_tooshort);
156 MIB_PROBE_ICMP6(icp6s_checksum);
157 MIB_PROBE_ICMP6(icp6s_badlen);
158 MIB_PROBE_ICMP6(icp6s_dropped);
159 MIB_PROBE_ICMP6(icp6s_reflect);
160 MIB_PROBE2_ICMP6(icp6s_inhist);
161 MIB_PROBE_ICMP6(icp6s_nd_toomanyopt);
162 MIB_PROBE_ICMP6(icp6s_odst_unreach_noroute);
163 MIB_PROBE_ICMP6(icp6s_odst_unreach_admin);
164 MIB_PROBE_ICMP6(icp6s_odst_unreach_beyondscope);
165 MIB_PROBE_ICMP6(icp6s_odst_unreach_addr);
166 MIB_PROBE_ICMP6(icp6s_odst_unreach_noport);
167 MIB_PROBE_ICMP6(icp6s_opacket_too_big);
168 MIB_PROBE_ICMP6(icp6s_otime_exceed_transit);
169 MIB_PROBE_ICMP6(icp6s_otime_exceed_reassembly);
170 MIB_PROBE_ICMP6(icp6s_oparamprob_header);
171 MIB_PROBE_ICMP6(icp6s_oparamprob_nextheader);
172 MIB_PROBE_ICMP6(icp6s_oparamprob_option);
173 MIB_PROBE_ICMP6(icp6s_oredirect);
174 MIB_PROBE_ICMP6(icp6s_ounknown);
175 MIB_PROBE_ICMP6(icp6s_pmtuchg);
176 MIB_PROBE_ICMP6(icp6s_nd_badopt);
177 MIB_PROBE_ICMP6(icp6s_badns);
178 MIB_PROBE_ICMP6(icp6s_badna);
179 MIB_PROBE_ICMP6(icp6s_badrs);
180 MIB_PROBE_ICMP6(icp6s_badra);
181 MIB_PROBE_ICMP6(icp6s_badredirect);
182 MIB_PROBE_ICMP6(icp6s_overflowdefrtr);
183 MIB_PROBE_ICMP6(icp6s_overflowprfx);
184 MIB_PROBE_ICMP6(icp6s_overflownndp);
185 MIB_PROBE_ICMP6(icp6s_overflowredirect);
186 MIB_PROBE_ICMP6(icp6s_invlhlim);
187 
188 #define	MIB_PROBE_UDP(name)	SDT_PROBE_DEFINE1(mib, udp, count, name, "int")
189 MIB_PROBE_UDP(udps_ipackets);
190 MIB_PROBE_UDP(udps_hdrops);
191 MIB_PROBE_UDP(udps_badsum);
192 MIB_PROBE_UDP(udps_nosum);
193 MIB_PROBE_UDP(udps_badlen);
194 MIB_PROBE_UDP(udps_noport);
195 MIB_PROBE_UDP(udps_noportbcast);
196 MIB_PROBE_UDP(udps_fullsock);
197 MIB_PROBE_UDP(udps_pcbcachemiss);
198 MIB_PROBE_UDP(udps_pcbhashmiss);
199 MIB_PROBE_UDP(udps_opackets);
200 MIB_PROBE_UDP(udps_fastout);
201 MIB_PROBE_UDP(udps_noportmcast);
202 MIB_PROBE_UDP(udps_filtermcast);
203 
204 #define	MIB_PROBE_TCP(name)	SDT_PROBE_DEFINE1(mib, tcp, count, name, "int")
205 
206 MIB_PROBE_TCP(tcps_connattempt);
207 MIB_PROBE_TCP(tcps_accepts);
208 MIB_PROBE_TCP(tcps_connects);
209 MIB_PROBE_TCP(tcps_drops);
210 MIB_PROBE_TCP(tcps_conndrops);
211 MIB_PROBE_TCP(tcps_minmmsdrops);
212 MIB_PROBE_TCP(tcps_closed);
213 MIB_PROBE_TCP(tcps_segstimed);
214 MIB_PROBE_TCP(tcps_rttupdated);
215 MIB_PROBE_TCP(tcps_delack);
216 MIB_PROBE_TCP(tcps_timeoutdrop);
217 MIB_PROBE_TCP(tcps_rexmttimeo);
218 MIB_PROBE_TCP(tcps_persisttimeo);
219 MIB_PROBE_TCP(tcps_keeptimeo);
220 MIB_PROBE_TCP(tcps_keepprobe);
221 MIB_PROBE_TCP(tcps_keepdrops);
222 MIB_PROBE_TCP(tcps_progdrops);
223 
224 MIB_PROBE_TCP(tcps_sndtotal);
225 MIB_PROBE_TCP(tcps_sndpack);
226 MIB_PROBE_TCP(tcps_sndbyte);
227 MIB_PROBE_TCP(tcps_sndrexmitpack);
228 MIB_PROBE_TCP(tcps_sndrexmitbyte);
229 MIB_PROBE_TCP(tcps_sndrexmitbad);
230 MIB_PROBE_TCP(tcps_sndacks);
231 MIB_PROBE_TCP(tcps_sndprobe);
232 MIB_PROBE_TCP(tcps_sndurg);
233 MIB_PROBE_TCP(tcps_sndwinup);
234 MIB_PROBE_TCP(tcps_sndctrl);
235 
236 MIB_PROBE_TCP(tcps_rcvtotal);
237 MIB_PROBE_TCP(tcps_rcvpack);
238 MIB_PROBE_TCP(tcps_rcvbyte);
239 MIB_PROBE_TCP(tcps_rcvbadsum);
240 MIB_PROBE_TCP(tcps_rcvbadoff);
241 MIB_PROBE_TCP(tcps_rcvreassfull);
242 MIB_PROBE_TCP(tcps_rcvshort);
243 MIB_PROBE_TCP(tcps_rcvduppack);
244 MIB_PROBE_TCP(tcps_rcvdupbyte);
245 MIB_PROBE_TCP(tcps_rcvpartduppack);
246 MIB_PROBE_TCP(tcps_rcvpartdupbyte);
247 MIB_PROBE_TCP(tcps_rcvoopack);
248 MIB_PROBE_TCP(tcps_rcvoobyte);
249 MIB_PROBE_TCP(tcps_rcvpackafterwin);
250 MIB_PROBE_TCP(tcps_rcvbyteafterwin);
251 MIB_PROBE_TCP(tcps_rcvafterclose);
252 MIB_PROBE_TCP(tcps_rcvwinprobe);
253 MIB_PROBE_TCP(tcps_rcvdupack);
254 MIB_PROBE_TCP(tcps_rcvacktoomuch);
255 MIB_PROBE_TCP(tcps_rcvackpack);
256 MIB_PROBE_TCP(tcps_rcvackbyte);
257 MIB_PROBE_TCP(tcps_rcvwinupd);
258 MIB_PROBE_TCP(tcps_pawsdrop);
259 MIB_PROBE_TCP(tcps_predack);
260 MIB_PROBE_TCP(tcps_preddat);
261 MIB_PROBE_TCP(tcps_pcbackemiss);
262 MIB_PROBE_TCP(tcps_cachedrtt);
263 MIB_PROBE_TCP(tcps_cachedrttvar);
264 MIB_PROBE_TCP(tcps_cachedssthresh);
265 MIB_PROBE_TCP(tcps_usedrtt);
266 MIB_PROBE_TCP(tcps_usedrttvar);
267 MIB_PROBE_TCP(tcps_usedssthresh);
268 MIB_PROBE_TCP(tcps_persistdrop);
269 MIB_PROBE_TCP(tcps_badsyn);
270 MIB_PROBE_TCP(tcps_mturesent);
271 MIB_PROBE_TCP(tcps_listendrop);
272 MIB_PROBE_TCP(tcps_badrst);
273 
274 MIB_PROBE_TCP(tcps_sc_added);
275 MIB_PROBE_TCP(tcps_sc_retransmitted);
276 MIB_PROBE_TCP(tcps_sc_dupsyn);
277 MIB_PROBE_TCP(tcps_sc_dropped);
278 MIB_PROBE_TCP(tcps_sc_completed);
279 MIB_PROBE_TCP(tcps_sc_bucketoverflow);
280 MIB_PROBE_TCP(tcps_sc_cacheoverflow);
281 MIB_PROBE_TCP(tcps_sc_reset);
282 MIB_PROBE_TCP(tcps_sc_stale);
283 MIB_PROBE_TCP(tcps_sc_aborted);
284 MIB_PROBE_TCP(tcps_sc_badack);
285 MIB_PROBE_TCP(tcps_sc_unreach);
286 MIB_PROBE_TCP(tcps_sc_zonefail);
287 MIB_PROBE_TCP(tcps_sc_sendcookie);
288 MIB_PROBE_TCP(tcps_sc_recvcookie);
289 MIB_PROBE_TCP(tcps_sc_spurcookie);
290 MIB_PROBE_TCP(tcps_sc_failcookie);
291 
292 MIB_PROBE_TCP(tcps_hc_added);
293 MIB_PROBE_TCP(tcps_hc_bucketoverflow);
294 
295 MIB_PROBE_TCP(tcps_finwait2_drops);
296 
297 MIB_PROBE_TCP(tcps_sack_recovery_episode);
298 MIB_PROBE_TCP(tcps_sack_rexmits);
299 MIB_PROBE_TCP(tcps_sack_rexmits_tso);
300 MIB_PROBE_TCP(tcps_sack_rexmit_bytes);
301 MIB_PROBE_TCP(tcps_sack_rcv_blocks);
302 MIB_PROBE_TCP(tcps_sack_send_blocks);
303 MIB_PROBE_TCP(tcps_sack_lostrexmt);
304 MIB_PROBE_TCP(tcps_sack_sboverflow);
305 
306 MIB_PROBE_TCP(tcps_ecn_rcvce);
307 MIB_PROBE_TCP(tcps_ecn_rcvect0);
308 MIB_PROBE_TCP(tcps_ecn_rcvect1);
309 MIB_PROBE_TCP(tcps_ecn_shs);
310 MIB_PROBE_TCP(tcps_ecn_rcwnd);
311 
312 MIB_PROBE_TCP(tcps_sig_rcvgoodsig);
313 MIB_PROBE_TCP(tcps_sig_rcvbadsig);
314 MIB_PROBE_TCP(tcps_sig_err_buildsig);
315 MIB_PROBE_TCP(tcps_sig_err_sigopt);
316 MIB_PROBE_TCP(tcps_sig_err_nosigopt);
317 
318 MIB_PROBE_TCP(tcps_pmtud_blackhole_activated);
319 MIB_PROBE_TCP(tcps_pmtud_blackhole_activated_min_mss);
320 MIB_PROBE_TCP(tcps_pmtud_blackhole_failed);
321 
322 MIB_PROBE_TCP(tcps_tunneled_pkts);
323 MIB_PROBE_TCP(tcps_tunneled_errs);
324 
325 MIB_PROBE_TCP(tcps_dsack_count);
326 MIB_PROBE_TCP(tcps_dsack_bytes);
327 MIB_PROBE_TCP(tcps_dsack_tlp_bytes);
328 
329 MIB_PROBE_TCP(tcps_tw_recycles);
330 MIB_PROBE_TCP(tcps_tw_resets);
331 MIB_PROBE_TCP(tcps_tw_responds);
332 
333 MIB_PROBE_TCP(tcps_ace_nect);
334 MIB_PROBE_TCP(tcps_ace_ect1);
335 MIB_PROBE_TCP(tcps_ace_ect0);
336 MIB_PROBE_TCP(tcps_ace_ce);
337 
338 MIB_PROBE_TCP(tcps_ecn_sndect0);
339 MIB_PROBE_TCP(tcps_ecn_sndect1);
340 
341 MIB_PROBE_TCP(tcps_tlpresends);
342 MIB_PROBE_TCP(tcps_tlpresend_bytes);
343 
344 MIB_PROBE_TCP(tcps_rcvghostack);
345 MIB_PROBE_TCP(tcps_rcvacktooold);
346 
347 #define	MIB_PROBE_IPSEC(name)	SDT_PROBE_DEFINE1(mib, ipsec, count, name, "int")
348 
349 MIB_PROBE_IPSEC(ips_in_polvio);
350 MIB_PROBE_IPSEC(ips_in_nomem);
351 MIB_PROBE_IPSEC(ips_in_inval);
352 MIB_PROBE_IPSEC(ips_out_polvio);
353 MIB_PROBE_IPSEC(ips_out_nosa);
354 MIB_PROBE_IPSEC(ips_out_nomem);
355 MIB_PROBE_IPSEC(ips_out_noroute);
356 MIB_PROBE_IPSEC(ips_out_inval);
357 MIB_PROBE_IPSEC(ips_out_bundlesa);
358 
359 MIB_PROBE_IPSEC(ips_spdcache_hits);
360 MIB_PROBE_IPSEC(ips_spdcache_misses);
361 
362 MIB_PROBE_IPSEC(ips_clcopied);
363 MIB_PROBE_IPSEC(ips_mbinserted);
364 MIB_PROBE_IPSEC(ips_input_front);
365 MIB_PROBE_IPSEC(ips_input_middle);
366 MIB_PROBE_IPSEC(ips_input_end);
367 
368 #define	MIB_PROBE_ESP(name)	SDT_PROBE_DEFINE1(mib, esp, count, name, "int")
369 #define	MIB_PROBE2_ESP(name)	SDT_PROBE_DEFINE2(mib, esp, count, name, "int", "int")
370 
371 MIB_PROBE_ESP(esps_hdrops);
372 MIB_PROBE_ESP(esps_nopf);
373 MIB_PROBE_ESP(esps_notdb);
374 MIB_PROBE_ESP(esps_badkcr);
375 MIB_PROBE_ESP(esps_qfull);
376 MIB_PROBE_ESP(esps_noxform);
377 MIB_PROBE_ESP(esps_badilen);
378 MIB_PROBE_ESP(esps_wrap);
379 MIB_PROBE_ESP(esps_badenc);
380 MIB_PROBE_ESP(esps_badauth);
381 MIB_PROBE_ESP(esps_replay);
382 MIB_PROBE_ESP(esps_input);
383 MIB_PROBE_ESP(esps_output);
384 MIB_PROBE_ESP(esps_invalid);
385 MIB_PROBE_ESP(esps_ibytes);
386 MIB_PROBE_ESP(esps_obytes);
387 MIB_PROBE_ESP(esps_toobig);
388 MIB_PROBE_ESP(esps_pdrops);
389 MIB_PROBE_ESP(esps_crypto);
390 MIB_PROBE_ESP(esps_tunnel);
391 MIB_PROBE2_ESP(esps_hist);
392 
393 #define	MIB_PROBE_AH(name)	SDT_PROBE_DEFINE1(mib, ah, count, name, "int")
394 #define	MIB_PROBE_AH2(name)	SDT_PROBE_DEFINE2(mib, ah, count, name, "int", "int")
395 
396 MIB_PROBE_AH(ahs_hdrops);
397 MIB_PROBE_AH(ahs_nopf);
398 MIB_PROBE_AH(ahs_notdb);
399 MIB_PROBE_AH(ahs_badkcr);
400 MIB_PROBE_AH(ahs_badauth);
401 MIB_PROBE_AH(ahs_noxform);
402 MIB_PROBE_AH(ahs_qfull);
403 MIB_PROBE_AH(ahs_wrap);
404 MIB_PROBE_AH(ahs_replay);
405 MIB_PROBE_AH(ahs_badauthl);
406 MIB_PROBE_AH(ahs_input);
407 MIB_PROBE_AH(ahs_output);
408 MIB_PROBE_AH(ahs_invalid);
409 MIB_PROBE_AH(ahs_ibytes);
410 MIB_PROBE_AH(ahs_obytes);
411 MIB_PROBE_AH(ahs_toobig);
412 MIB_PROBE_AH(ahs_pdrops);
413 MIB_PROBE_AH(ahs_crypto);
414 MIB_PROBE_AH(ahs_tunnel);
415 MIB_PROBE_AH2(ahs_hist);
416 
417 #define	MIB_PROBE_IPCOMP(name)	SDT_PROBE_DEFINE1(mib, ipcomp, count, name, "int")
418 #define	MIB_PROBE_IPCOMP2(name)	SDT_PROBE_DEFINE2(mib, ipcomp, count, name, "int", "int")
419 
420 MIB_PROBE_IPCOMP(ipcomps_hdrops);
421 MIB_PROBE_IPCOMP(ipcomps_nopf);
422 MIB_PROBE_IPCOMP(ipcomps_notdb);
423 MIB_PROBE_IPCOMP(ipcomps_badkcr);
424 MIB_PROBE_IPCOMP(ipcomps_qfull);
425 MIB_PROBE_IPCOMP(ipcomps_noxform);
426 MIB_PROBE_IPCOMP(ipcomps_wrap);
427 MIB_PROBE_IPCOMP(ipcomps_input);
428 MIB_PROBE_IPCOMP(ipcomps_output);
429 MIB_PROBE_IPCOMP(ipcomps_invalid);
430 MIB_PROBE_IPCOMP(ipcomps_ibytes);
431 MIB_PROBE_IPCOMP(ipcomps_obytes);
432 MIB_PROBE_IPCOMP(ipcomps_toobig);
433 MIB_PROBE_IPCOMP(ipcomps_pdrops);
434 MIB_PROBE_IPCOMP(ipcomps_crypto);
435 MIB_PROBE_IPCOMP2(ipcomps_hist);
436 MIB_PROBE_IPCOMP(ipcomps_threshold);
437 MIB_PROBE_IPCOMP(ipcomps_uncompr);
438 
439 #endif
440 
441 SDT_PROBE_DEFINE6_XLATE(ip, , , receive,
442     "void *", "pktinfo_t *",
443     "void *", "csinfo_t *",
444     "uint8_t *", "ipinfo_t *",
445     "struct ifnet *", "ifinfo_t *",
446     "struct ip *", "ipv4info_t *",
447     "struct ip6_hdr *", "ipv6info_t *");
448 
449 SDT_PROBE_DEFINE6_XLATE(ip, , , send,
450     "void *", "pktinfo_t *",
451     "void *", "csinfo_t *",
452     "uint8_t *", "ipinfo_t *",
453     "struct ifnet *", "ifinfo_t *",
454     "struct ip *", "ipv4info_t *",
455     "struct ip6_hdr *", "ipv6info_t *");
456 
457 SDT_PROBE_DEFINE5_XLATE(tcp, , , accept__established,
458     "void *", "pktinfo_t *",
459     "struct tcpcb *", "csinfo_t *",
460     "struct mbuf *", "ipinfo_t *",
461     "struct tcpcb *", "tcpsinfo_t *" ,
462     "struct tcphdr *", "tcpinfoh_t *");
463 
464 SDT_PROBE_DEFINE5_XLATE(tcp, , , accept__refused,
465     "void *", "pktinfo_t *",
466     "struct tcpcb *", "csinfo_t *",
467     "struct mbuf *", "ipinfo_t *",
468     "struct tcpcb *", "tcpsinfo_t *" ,
469     "struct tcphdr *", "tcpinfo_t *");
470 
471 SDT_PROBE_DEFINE5_XLATE(tcp, , , connect__established,
472     "void *", "pktinfo_t *",
473     "struct tcpcb *", "csinfo_t *",
474     "struct mbuf *", "ipinfo_t *",
475     "struct tcpcb *", "tcpsinfo_t *" ,
476     "struct tcphdr *", "tcpinfoh_t *");
477 
478 SDT_PROBE_DEFINE5_XLATE(tcp, , , connect__refused,
479     "void *", "pktinfo_t *",
480     "struct tcpcb *", "csinfo_t *",
481     "struct mbuf *", "ipinfo_t *",
482     "struct tcpcb *", "tcpsinfo_t *" ,
483     "struct tcphdr *", "tcpinfoh_t *");
484 
485 SDT_PROBE_DEFINE5_XLATE(tcp, , , connect__request,
486     "void *", "pktinfo_t *",
487     "struct tcpcb *", "csinfo_t *",
488     "uint8_t *", "ipinfo_t *",
489     "struct tcpcb *", "tcpsinfo_t *" ,
490     "struct tcphdr *", "tcpinfo_t *");
491 
492 SDT_PROBE_DEFINE5_XLATE(tcp, , , receive,
493     "void *", "pktinfo_t *",
494     "struct tcpcb *", "csinfo_t *",
495     "struct mbuf *", "ipinfo_t *",
496     "struct tcpcb *", "tcpsinfo_t *" ,
497     "struct tcphdr *", "tcpinfoh_t *");
498 
499 SDT_PROBE_DEFINE5_XLATE(tcp, , , send,
500     "void *", "pktinfo_t *",
501     "struct tcpcb *", "csinfo_t *",
502     "uint8_t *", "ipinfo_t *",
503     "struct tcpcb *", "tcpsinfo_t *" ,
504     "struct tcphdr *", "tcpinfo_t *");
505 
506 SDT_PROBE_DEFINE1_XLATE(tcp, , , siftr,
507     "struct pkt_node *", "siftrinfo_t *");
508 
509 SDT_PROBE_DEFINE3_XLATE(tcp, , , debug__input,
510     "struct tcpcb *", "tcpsinfo_t *" ,
511     "struct tcphdr *", "tcpinfoh_t *",
512     "struct mbuf *", "ipinfo_t *");
513 
514 SDT_PROBE_DEFINE3_XLATE(tcp, , , debug__output,
515     "struct tcpcb *", "tcpsinfo_t *" ,
516     "struct tcphdr *", "tcpinfo_t *",
517     "struct mbuf *", "ipinfo_t *");
518 
519 SDT_PROBE_DEFINE2_XLATE(tcp, , , debug__user,
520     "struct tcpcb *", "tcpsinfo_t *" ,
521     "int", "int");
522 
523 SDT_PROBE_DEFINE3_XLATE(tcp, , , debug__drop,
524     "struct tcpcb *", "tcpsinfo_t *" ,
525     "struct tcphdr *", "tcpinfoh_t *",
526     "struct mbuf *", "ipinfo_t *");
527 
528 SDT_PROBE_DEFINE6_XLATE(tcp, , , state__change,
529     "void *", "void *",
530     "struct tcpcb *", "csinfo_t *",
531     "void *", "void *",
532     "struct tcpcb *", "tcpsinfo_t *",
533     "void *", "void *",
534     "int", "tcplsinfo_t *");
535 
536 SDT_PROBE_DEFINE6_XLATE(tcp, , , receive__autoresize,
537     "void *", "void *",
538     "struct tcpcb *", "csinfo_t *",
539     "struct mbuf *", "ipinfo_t *",
540     "struct tcpcb *", "tcpsinfo_t *" ,
541     "struct tcphdr *", "tcpinfoh_t *",
542     "int", "int");
543 
544 SDT_PROBE_DEFINE5_XLATE(udp, , , receive,
545     "void *", "pktinfo_t *",
546     "struct inpcb *", "csinfo_t *",
547     "uint8_t *", "ipinfo_t *",
548     "struct inpcb *", "udpsinfo_t *",
549     "struct udphdr *", "udpinfo_t *");
550 
551 SDT_PROBE_DEFINE5_XLATE(udp, , , send,
552     "void *", "pktinfo_t *",
553     "struct inpcb *", "csinfo_t *",
554     "uint8_t *", "ipinfo_t *",
555     "struct inpcb *", "udpsinfo_t *",
556     "struct udphdr *", "udpinfo_t *");
557 
558 SDT_PROBE_DEFINE5_XLATE(udplite, , , receive,
559     "void *", "pktinfo_t *",
560     "struct inpcb *", "csinfo_t *",
561     "uint8_t *", "ipinfo_t *",
562     "struct inpcb *", "udplitesinfo_t *",
563     "struct udphdr *", "udpliteinfo_t *");
564 
565 SDT_PROBE_DEFINE5_XLATE(udplite, , , send,
566     "void *", "pktinfo_t *",
567     "struct inpcb *", "csinfo_t *",
568     "uint8_t *", "ipinfo_t *",
569     "struct inpcb *", "udplitesinfo_t *",
570     "struct udphdr *", "udpliteinfo_t *");
571