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
33SDT_PROVIDER_DEFINE(mib);
34SDT_PROVIDER_DEFINE(ip);
35SDT_PROVIDER_DEFINE(tcp);
36SDT_PROVIDER_DEFINE(udp);
37SDT_PROVIDER_DEFINE(udplite);
38
39#ifndef KDTRACE_NO_MIB_SDT
40#define MIB_PROBE_IP(name) \
41    SDT_PROBE_DEFINE1(mib, ip, count, name, \
42        "int")
43
44MIB_PROBE_IP(ips_total);
45MIB_PROBE_IP(ips_badsum);
46MIB_PROBE_IP(ips_tooshort);
47MIB_PROBE_IP(ips_toosmall);
48MIB_PROBE_IP(ips_badhlen);
49MIB_PROBE_IP(ips_badlen);
50MIB_PROBE_IP(ips_fragments);
51MIB_PROBE_IP(ips_fragdropped);
52MIB_PROBE_IP(ips_fragtimeout);
53MIB_PROBE_IP(ips_forward);
54MIB_PROBE_IP(ips_fastforward);
55MIB_PROBE_IP(ips_cantforward);
56MIB_PROBE_IP(ips_redirectsent);
57MIB_PROBE_IP(ips_noproto);
58MIB_PROBE_IP(ips_delivered);
59MIB_PROBE_IP(ips_localout);
60MIB_PROBE_IP(ips_odropped);
61MIB_PROBE_IP(ips_reassembled);
62MIB_PROBE_IP(ips_fragmented);
63MIB_PROBE_IP(ips_ofragments);
64MIB_PROBE_IP(ips_cantfrag);
65MIB_PROBE_IP(ips_badoptions);
66MIB_PROBE_IP(ips_noroute);
67MIB_PROBE_IP(ips_badvers);
68MIB_PROBE_IP(ips_rawout);
69MIB_PROBE_IP(ips_toolong);
70MIB_PROBE_IP(ips_notmember);
71MIB_PROBE_IP(ips_nogif);
72MIB_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
81MIB_PROBE_IP6(ip6s_total);
82MIB_PROBE_IP6(ip6s_tooshort);
83MIB_PROBE_IP6(ip6s_toosmall);
84MIB_PROBE_IP6(ip6s_fragments);
85MIB_PROBE_IP6(ip6s_fragdropped);
86MIB_PROBE_IP6(ip6s_fragtimeout);
87MIB_PROBE_IP6(ip6s_fragoverflow);
88MIB_PROBE_IP6(ip6s_forward);
89MIB_PROBE_IP6(ip6s_cantforward);
90MIB_PROBE_IP6(ip6s_redirectsent);
91MIB_PROBE_IP6(ip6s_delivered);
92MIB_PROBE_IP6(ip6s_localout);
93MIB_PROBE_IP6(ip6s_odropped);
94MIB_PROBE_IP6(ip6s_reassembled);
95MIB_PROBE_IP6(ip6s_atomicfrags);
96MIB_PROBE_IP6(ip6s_fragmented);
97MIB_PROBE_IP6(ip6s_ofragments);
98MIB_PROBE_IP6(ip6s_cantfrag);
99MIB_PROBE_IP6(ip6s_badoptions);
100MIB_PROBE_IP6(ip6s_noroute);
101MIB_PROBE_IP6(ip6s_badvers);
102MIB_PROBE_IP6(ip6s_rawout);
103MIB_PROBE_IP6(ip6s_badscope);
104MIB_PROBE_IP6(ip6s_notmember);
105MIB_PROBE2_IP6(ip6s_nxthist);
106MIB_PROBE_IP6(ip6s_m1);
107MIB_PROBE2_IP6(ip6s_m2m);
108MIB_PROBE_IP6(ip6s_mext1);
109MIB_PROBE_IP6(ip6s_mext2m);
110MIB_PROBE_IP6(ip6s_exthdrtoolong);
111MIB_PROBE_IP6(ip6s_nogif);
112MIB_PROBE_IP6(ip6s_toomanyhdr);
113MIB_PROBE_IP6(ip6s_sources_none);
114MIB_PROBE2_IP6(ip6s_sources_sameif);
115MIB_PROBE2_IP6(ip6s_sources_otherif);
116MIB_PROBE2_IP6(ip6s_sources_samescope);
117MIB_PROBE2_IP6(ip6s_sources_otherscope);
118MIB_PROBE2_IP6(ip6s_sources_deprecated);
119MIB_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
128MIB_PROBE_ICMP(icps_error);
129MIB_PROBE_ICMP(icps_oldshort);
130MIB_PROBE_ICMP(icps_oldicmp);
131MIB_PROBE2_ICMP(icps_outhist);
132MIB_PROBE_ICMP(icps_badcode);
133MIB_PROBE_ICMP(icps_tooshort);
134MIB_PROBE_ICMP(icps_checksum);
135MIB_PROBE_ICMP(icps_badlen);
136MIB_PROBE_ICMP(icps_reflect);
137MIB_PROBE2_ICMP(icps_inhist);
138MIB_PROBE_ICMP(icps_bmcastecho);
139MIB_PROBE_ICMP(icps_bmcasttstamp);
140MIB_PROBE_ICMP(icps_badaddr);
141MIB_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
150MIB_PROBE_ICMP6(icp6s_error);
151MIB_PROBE_ICMP6(icp6s_canterror);
152MIB_PROBE_ICMP6(icp6s_toofreq);
153MIB_PROBE2_ICMP6(icp6s_outhist);
154MIB_PROBE_ICMP6(icp6s_badcode);
155MIB_PROBE_ICMP6(icp6s_tooshort);
156MIB_PROBE_ICMP6(icp6s_checksum);
157MIB_PROBE_ICMP6(icp6s_badlen);
158MIB_PROBE_ICMP6(icp6s_dropped);
159MIB_PROBE_ICMP6(icp6s_reflect);
160MIB_PROBE2_ICMP6(icp6s_inhist);
161MIB_PROBE_ICMP6(icp6s_nd_toomanyopt);
162MIB_PROBE_ICMP6(icp6s_odst_unreach_noroute);
163MIB_PROBE_ICMP6(icp6s_odst_unreach_admin);
164MIB_PROBE_ICMP6(icp6s_odst_unreach_beyondscope);
165MIB_PROBE_ICMP6(icp6s_odst_unreach_addr);
166MIB_PROBE_ICMP6(icp6s_odst_unreach_noport);
167MIB_PROBE_ICMP6(icp6s_opacket_too_big);
168MIB_PROBE_ICMP6(icp6s_otime_exceed_transit);
169MIB_PROBE_ICMP6(icp6s_otime_exceed_reassembly);
170MIB_PROBE_ICMP6(icp6s_oparamprob_header);
171MIB_PROBE_ICMP6(icp6s_oparamprob_nextheader);
172MIB_PROBE_ICMP6(icp6s_oparamprob_option);
173MIB_PROBE_ICMP6(icp6s_oredirect);
174MIB_PROBE_ICMP6(icp6s_ounknown);
175MIB_PROBE_ICMP6(icp6s_pmtuchg);
176MIB_PROBE_ICMP6(icp6s_nd_badopt);
177MIB_PROBE_ICMP6(icp6s_badns);
178MIB_PROBE_ICMP6(icp6s_badna);
179MIB_PROBE_ICMP6(icp6s_badrs);
180MIB_PROBE_ICMP6(icp6s_badra);
181MIB_PROBE_ICMP6(icp6s_badredirect);
182MIB_PROBE_ICMP6(icp6s_overflowdefrtr);
183MIB_PROBE_ICMP6(icp6s_overflowprfx);
184MIB_PROBE_ICMP6(icp6s_overflownndp);
185MIB_PROBE_ICMP6(icp6s_overflowredirect);
186MIB_PROBE_ICMP6(icp6s_invlhlim);
187
188#define	MIB_PROBE_UDP(name)	SDT_PROBE_DEFINE1(mib, udp, count, name, "int")
189MIB_PROBE_UDP(udps_ipackets);
190MIB_PROBE_UDP(udps_hdrops);
191MIB_PROBE_UDP(udps_badsum);
192MIB_PROBE_UDP(udps_nosum);
193MIB_PROBE_UDP(udps_badlen);
194MIB_PROBE_UDP(udps_noport);
195MIB_PROBE_UDP(udps_noportbcast);
196MIB_PROBE_UDP(udps_fullsock);
197MIB_PROBE_UDP(udps_pcbcachemiss);
198MIB_PROBE_UDP(udps_pcbhashmiss);
199MIB_PROBE_UDP(udps_opackets);
200MIB_PROBE_UDP(udps_fastout);
201MIB_PROBE_UDP(udps_noportmcast);
202MIB_PROBE_UDP(udps_filtermcast);
203
204#define	MIB_PROBE_TCP(name)	SDT_PROBE_DEFINE1(mib, tcp, count, name, "int")
205
206MIB_PROBE_TCP(tcps_connattempt);
207MIB_PROBE_TCP(tcps_accepts);
208MIB_PROBE_TCP(tcps_connects);
209MIB_PROBE_TCP(tcps_drops);
210MIB_PROBE_TCP(tcps_conndrops);
211MIB_PROBE_TCP(tcps_minmmsdrops);
212MIB_PROBE_TCP(tcps_closed);
213MIB_PROBE_TCP(tcps_segstimed);
214MIB_PROBE_TCP(tcps_rttupdated);
215MIB_PROBE_TCP(tcps_delack);
216MIB_PROBE_TCP(tcps_timeoutdrop);
217MIB_PROBE_TCP(tcps_rexmttimeo);
218MIB_PROBE_TCP(tcps_persisttimeo);
219MIB_PROBE_TCP(tcps_keeptimeo);
220MIB_PROBE_TCP(tcps_keepprobe);
221MIB_PROBE_TCP(tcps_keepdrops);
222MIB_PROBE_TCP(tcps_progdrops);
223
224MIB_PROBE_TCP(tcps_sndtotal);
225MIB_PROBE_TCP(tcps_sndpack);
226MIB_PROBE_TCP(tcps_sndbyte);
227MIB_PROBE_TCP(tcps_sndrexmitpack);
228MIB_PROBE_TCP(tcps_sndrexmitbyte);
229MIB_PROBE_TCP(tcps_sndrexmitbad);
230MIB_PROBE_TCP(tcps_sndacks);
231MIB_PROBE_TCP(tcps_sndprobe);
232MIB_PROBE_TCP(tcps_sndurg);
233MIB_PROBE_TCP(tcps_sndwinup);
234MIB_PROBE_TCP(tcps_sndctrl);
235
236MIB_PROBE_TCP(tcps_rcvtotal);
237MIB_PROBE_TCP(tcps_rcvpack);
238MIB_PROBE_TCP(tcps_rcvbyte);
239MIB_PROBE_TCP(tcps_rcvbadsum);
240MIB_PROBE_TCP(tcps_rcvbadoff);
241MIB_PROBE_TCP(tcps_rcvreassfull);
242MIB_PROBE_TCP(tcps_rcvshort);
243MIB_PROBE_TCP(tcps_rcvduppack);
244MIB_PROBE_TCP(tcps_rcvdupbyte);
245MIB_PROBE_TCP(tcps_rcvpartduppack);
246MIB_PROBE_TCP(tcps_rcvpartdupbyte);
247MIB_PROBE_TCP(tcps_rcvoopack);
248MIB_PROBE_TCP(tcps_rcvoobyte);
249MIB_PROBE_TCP(tcps_rcvpackafterwin);
250MIB_PROBE_TCP(tcps_rcvbyteafterwin);
251MIB_PROBE_TCP(tcps_rcvafterclose);
252MIB_PROBE_TCP(tcps_rcvwinprobe);
253MIB_PROBE_TCP(tcps_rcvdupack);
254MIB_PROBE_TCP(tcps_rcvacktoomuch);
255MIB_PROBE_TCP(tcps_rcvackpack);
256MIB_PROBE_TCP(tcps_rcvackbyte);
257MIB_PROBE_TCP(tcps_rcvwinupd);
258MIB_PROBE_TCP(tcps_pawsdrop);
259MIB_PROBE_TCP(tcps_predack);
260MIB_PROBE_TCP(tcps_preddat);
261MIB_PROBE_TCP(tcps_pcbackemiss);
262MIB_PROBE_TCP(tcps_cachedrtt);
263MIB_PROBE_TCP(tcps_cachedrttvar);
264MIB_PROBE_TCP(tcps_cachedssthresh);
265MIB_PROBE_TCP(tcps_usedrtt);
266MIB_PROBE_TCP(tcps_usedrttvar);
267MIB_PROBE_TCP(tcps_usedssthresh);
268MIB_PROBE_TCP(tcps_persistdrop);
269MIB_PROBE_TCP(tcps_badsyn);
270MIB_PROBE_TCP(tcps_mturesent);
271MIB_PROBE_TCP(tcps_listendrop);
272MIB_PROBE_TCP(tcps_badrst);
273
274MIB_PROBE_TCP(tcps_sc_added);
275MIB_PROBE_TCP(tcps_sc_retransmitted);
276MIB_PROBE_TCP(tcps_sc_dupsyn);
277MIB_PROBE_TCP(tcps_sc_dropped);
278MIB_PROBE_TCP(tcps_sc_completed);
279MIB_PROBE_TCP(tcps_sc_bucketoverflow);
280MIB_PROBE_TCP(tcps_sc_cacheoverflow);
281MIB_PROBE_TCP(tcps_sc_reset);
282MIB_PROBE_TCP(tcps_sc_stale);
283MIB_PROBE_TCP(tcps_sc_aborted);
284MIB_PROBE_TCP(tcps_sc_badack);
285MIB_PROBE_TCP(tcps_sc_unreach);
286MIB_PROBE_TCP(tcps_sc_zonefail);
287MIB_PROBE_TCP(tcps_sc_sendcookie);
288MIB_PROBE_TCP(tcps_sc_recvcookie);
289
290MIB_PROBE_TCP(tcps_hc_added);
291MIB_PROBE_TCP(tcps_hc_bucketoverflow);
292
293MIB_PROBE_TCP(tcps_finwait2_drops);
294
295MIB_PROBE_TCP(tcps_sack_recovery_episode);
296MIB_PROBE_TCP(tcps_sack_rexmits);
297MIB_PROBE_TCP(tcps_sack_rexmits_tso);
298MIB_PROBE_TCP(tcps_sack_rexmit_bytes);
299MIB_PROBE_TCP(tcps_sack_rcv_blocks);
300MIB_PROBE_TCP(tcps_sack_send_blocks);
301MIB_PROBE_TCP(tcps_sack_lostrexmt);
302MIB_PROBE_TCP(tcps_sack_sboverflow);
303
304MIB_PROBE_TCP(tcps_ecn_rcvce);
305MIB_PROBE_TCP(tcps_ecn_rcvect0);
306MIB_PROBE_TCP(tcps_ecn_rcvect1);
307MIB_PROBE_TCP(tcps_ecn_shs);
308MIB_PROBE_TCP(tcps_ecn_rcwnd);
309
310MIB_PROBE_TCP(tcps_sig_rcvgoodsig);
311MIB_PROBE_TCP(tcps_sig_rcvbadsig);
312MIB_PROBE_TCP(tcps_sig_err_buildsig);
313MIB_PROBE_TCP(tcps_sig_err_sigopt);
314MIB_PROBE_TCP(tcps_sig_err_nosigopt);
315
316MIB_PROBE_TCP(tcps_pmtud_blackhole_activated);
317MIB_PROBE_TCP(tcps_pmtud_blackhole_activated_min_mss);
318MIB_PROBE_TCP(tcps_pmtud_blackhole_failed);
319
320MIB_PROBE_TCP(tcps_tunneled_pkts);
321MIB_PROBE_TCP(tcps_tunneled_errs);
322
323MIB_PROBE_TCP(tcps_dsack_count);
324MIB_PROBE_TCP(tcps_dsack_bytes);
325MIB_PROBE_TCP(tcps_dsack_tlp_bytes);
326
327MIB_PROBE_TCP(tcps_tw_recycles);
328MIB_PROBE_TCP(tcps_tw_resets);
329MIB_PROBE_TCP(tcps_tw_responds);
330
331MIB_PROBE_TCP(tcps_ace_nect);
332MIB_PROBE_TCP(tcps_ace_ect1);
333MIB_PROBE_TCP(tcps_ace_ect0);
334MIB_PROBE_TCP(tcps_ace_ce);
335
336MIB_PROBE_TCP(tcps_ecn_sndect0);
337MIB_PROBE_TCP(tcps_ecn_sndect1);
338
339MIB_PROBE_TCP(tcps_tlpresends);
340MIB_PROBE_TCP(tcps_tlpresend_bytes);
341
342#endif
343
344SDT_PROBE_DEFINE6_XLATE(ip, , , receive,
345    "void *", "pktinfo_t *",
346    "void *", "csinfo_t *",
347    "uint8_t *", "ipinfo_t *",
348    "struct ifnet *", "ifinfo_t *",
349    "struct ip *", "ipv4info_t *",
350    "struct ip6_hdr *", "ipv6info_t *");
351
352SDT_PROBE_DEFINE6_XLATE(ip, , , send,
353    "void *", "pktinfo_t *",
354    "void *", "csinfo_t *",
355    "uint8_t *", "ipinfo_t *",
356    "struct ifnet *", "ifinfo_t *",
357    "struct ip *", "ipv4info_t *",
358    "struct ip6_hdr *", "ipv6info_t *");
359
360SDT_PROBE_DEFINE5_XLATE(tcp, , , accept__established,
361    "void *", "pktinfo_t *",
362    "struct tcpcb *", "csinfo_t *",
363    "struct mbuf *", "ipinfo_t *",
364    "struct tcpcb *", "tcpsinfo_t *" ,
365    "struct tcphdr *", "tcpinfoh_t *");
366
367SDT_PROBE_DEFINE5_XLATE(tcp, , , accept__refused,
368    "void *", "pktinfo_t *",
369    "struct tcpcb *", "csinfo_t *",
370    "struct mbuf *", "ipinfo_t *",
371    "struct tcpcb *", "tcpsinfo_t *" ,
372    "struct tcphdr *", "tcpinfo_t *");
373
374SDT_PROBE_DEFINE5_XLATE(tcp, , , connect__established,
375    "void *", "pktinfo_t *",
376    "struct tcpcb *", "csinfo_t *",
377    "struct mbuf *", "ipinfo_t *",
378    "struct tcpcb *", "tcpsinfo_t *" ,
379    "struct tcphdr *", "tcpinfoh_t *");
380
381SDT_PROBE_DEFINE5_XLATE(tcp, , , connect__refused,
382    "void *", "pktinfo_t *",
383    "struct tcpcb *", "csinfo_t *",
384    "struct mbuf *", "ipinfo_t *",
385    "struct tcpcb *", "tcpsinfo_t *" ,
386    "struct tcphdr *", "tcpinfoh_t *");
387
388SDT_PROBE_DEFINE5_XLATE(tcp, , , connect__request,
389    "void *", "pktinfo_t *",
390    "struct tcpcb *", "csinfo_t *",
391    "uint8_t *", "ipinfo_t *",
392    "struct tcpcb *", "tcpsinfo_t *" ,
393    "struct tcphdr *", "tcpinfo_t *");
394
395SDT_PROBE_DEFINE5_XLATE(tcp, , , receive,
396    "void *", "pktinfo_t *",
397    "struct tcpcb *", "csinfo_t *",
398    "struct mbuf *", "ipinfo_t *",
399    "struct tcpcb *", "tcpsinfo_t *" ,
400    "struct tcphdr *", "tcpinfoh_t *");
401
402SDT_PROBE_DEFINE5_XLATE(tcp, , , send,
403    "void *", "pktinfo_t *",
404    "struct tcpcb *", "csinfo_t *",
405    "uint8_t *", "ipinfo_t *",
406    "struct tcpcb *", "tcpsinfo_t *" ,
407    "struct tcphdr *", "tcpinfo_t *");
408
409SDT_PROBE_DEFINE1_XLATE(tcp, , , siftr,
410    "struct pkt_node *", "siftrinfo_t *");
411
412SDT_PROBE_DEFINE3_XLATE(tcp, , , debug__input,
413    "struct tcpcb *", "tcpsinfo_t *" ,
414    "struct tcphdr *", "tcpinfoh_t *",
415    "struct mbuf *", "ipinfo_t *");
416
417SDT_PROBE_DEFINE3_XLATE(tcp, , , debug__output,
418    "struct tcpcb *", "tcpsinfo_t *" ,
419    "struct tcphdr *", "tcpinfo_t *",
420    "struct mbuf *", "ipinfo_t *");
421
422SDT_PROBE_DEFINE2_XLATE(tcp, , , debug__user,
423    "struct tcpcb *", "tcpsinfo_t *" ,
424    "int", "int");
425
426SDT_PROBE_DEFINE3_XLATE(tcp, , , debug__drop,
427    "struct tcpcb *", "tcpsinfo_t *" ,
428    "struct tcphdr *", "tcpinfoh_t *",
429    "struct mbuf *", "ipinfo_t *");
430
431SDT_PROBE_DEFINE6_XLATE(tcp, , , state__change,
432    "void *", "void *",
433    "struct tcpcb *", "csinfo_t *",
434    "void *", "void *",
435    "struct tcpcb *", "tcpsinfo_t *",
436    "void *", "void *",
437    "int", "tcplsinfo_t *");
438
439SDT_PROBE_DEFINE6_XLATE(tcp, , , receive__autoresize,
440    "void *", "void *",
441    "struct tcpcb *", "csinfo_t *",
442    "struct mbuf *", "ipinfo_t *",
443    "struct tcpcb *", "tcpsinfo_t *" ,
444    "struct tcphdr *", "tcpinfoh_t *",
445    "int", "int");
446
447SDT_PROBE_DEFINE5_XLATE(udp, , , receive,
448    "void *", "pktinfo_t *",
449    "struct inpcb *", "csinfo_t *",
450    "uint8_t *", "ipinfo_t *",
451    "struct inpcb *", "udpsinfo_t *",
452    "struct udphdr *", "udpinfo_t *");
453
454SDT_PROBE_DEFINE5_XLATE(udp, , , send,
455    "void *", "pktinfo_t *",
456    "struct inpcb *", "csinfo_t *",
457    "uint8_t *", "ipinfo_t *",
458    "struct inpcb *", "udpsinfo_t *",
459    "struct udphdr *", "udpinfo_t *");
460
461SDT_PROBE_DEFINE5_XLATE(udplite, , , receive,
462    "void *", "pktinfo_t *",
463    "struct inpcb *", "csinfo_t *",
464    "uint8_t *", "ipinfo_t *",
465    "struct inpcb *", "udplitesinfo_t *",
466    "struct udphdr *", "udpliteinfo_t *");
467
468SDT_PROBE_DEFINE5_XLATE(udplite, , , send,
469    "void *", "pktinfo_t *",
470    "struct inpcb *", "csinfo_t *",
471    "uint8_t *", "ipinfo_t *",
472    "struct inpcb *", "udplitesinfo_t *",
473    "struct udphdr *", "udpliteinfo_t *");
474