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 met:
8 * 1. Redistributions of source code must retain the above copyright
9 *    notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 *    notice, this list of conditions and the following disclaimer in the
12 *    documentation and/or other materials provided with the
13 *    distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 */
27
28#ifndef _SYS_IN_KDTRACE_H_
29#define	_SYS_IN_KDTRACE_H_
30
31#include <sys/sdt.h>
32
33#define	IP_PROBE(probe, arg0, arg1, arg2, arg3, arg4, arg5)		\
34	SDT_PROBE6(ip, , , probe, arg0, arg1, arg2, arg3, arg4, arg5)
35#define	UDP_PROBE(probe, arg0, arg1, arg2, arg3, arg4)			\
36	SDT_PROBE5(udp, , , probe, arg0, arg1, arg2, arg3, arg4)
37#define	UDPLITE_PROBE(probe, arg0, arg1, arg2, arg3, arg4)		\
38	SDT_PROBE5(udplite, , , probe, arg0, arg1, arg2, arg3, arg4)
39#define	TCP_PROBE1(probe, arg0)						\
40	SDT_PROBE1(tcp, , , probe, arg0)
41#define	TCP_PROBE2(probe, arg0, arg1)					\
42	SDT_PROBE2(tcp, , , probe, arg0, arg1)
43#define	TCP_PROBE3(probe, arg0, arg1, arg2)				\
44	SDT_PROBE3(tcp, , , probe, arg0, arg1, arg2)
45#define	TCP_PROBE4(probe, arg0, arg1, arg2, arg3)			\
46	SDT_PROBE4(tcp, , , probe, arg0, arg1, arg2, arg3)
47#define	TCP_PROBE5(probe, arg0, arg1, arg2, arg3, arg4)			\
48	SDT_PROBE5(tcp, , , probe, arg0, arg1, arg2, arg3, arg4)
49#define	TCP_PROBE6(probe, arg0, arg1, arg2, arg3, arg4, arg5)		\
50	SDT_PROBE6(tcp, , , probe, arg0, arg1, arg2, arg3, arg4, arg5)
51
52SDT_PROVIDER_DECLARE(ip);
53SDT_PROVIDER_DECLARE(tcp);
54SDT_PROVIDER_DECLARE(udp);
55SDT_PROVIDER_DECLARE(udplite);
56
57#ifndef KDTRACE_NO_MIB_SDT
58SDT_PROVIDER_DECLARE(mib);
59
60SDT_PROBE_DECLARE(mib, ip, count, ips_total);
61SDT_PROBE_DECLARE(mib, ip, count, ips_badsum);
62SDT_PROBE_DECLARE(mib, ip, count, ips_tooshort);
63SDT_PROBE_DECLARE(mib, ip, count, ips_toosmall);
64SDT_PROBE_DECLARE(mib, ip, count, ips_badhlen);
65SDT_PROBE_DECLARE(mib, ip, count, ips_badlen);
66SDT_PROBE_DECLARE(mib, ip, count, ips_fragments);
67SDT_PROBE_DECLARE(mib, ip, count, ips_fragdropped);
68SDT_PROBE_DECLARE(mib, ip, count, ips_fragtimeout);
69SDT_PROBE_DECLARE(mib, ip, count, ips_forward);
70SDT_PROBE_DECLARE(mib, ip, count, ips_fastforward);
71SDT_PROBE_DECLARE(mib, ip, count, ips_cantforward);
72SDT_PROBE_DECLARE(mib, ip, count, ips_redirectsent);
73SDT_PROBE_DECLARE(mib, ip, count, ips_noproto);
74SDT_PROBE_DECLARE(mib, ip, count, ips_delivered);
75SDT_PROBE_DECLARE(mib, ip, count, ips_localout);
76SDT_PROBE_DECLARE(mib, ip, count, ips_odropped);
77SDT_PROBE_DECLARE(mib, ip, count, ips_reassembled);
78SDT_PROBE_DECLARE(mib, ip, count, ips_fragmented);
79SDT_PROBE_DECLARE(mib, ip, count, ips_ofragments);
80SDT_PROBE_DECLARE(mib, ip, count, ips_cantfrag);
81SDT_PROBE_DECLARE(mib, ip, count, ips_badoptions);
82SDT_PROBE_DECLARE(mib, ip, count, ips_noroute);
83SDT_PROBE_DECLARE(mib, ip, count, ips_badvers);
84SDT_PROBE_DECLARE(mib, ip, count, ips_rawout);
85SDT_PROBE_DECLARE(mib, ip, count, ips_toolong);
86SDT_PROBE_DECLARE(mib, ip, count, ips_notmember);
87SDT_PROBE_DECLARE(mib, ip, count, ips_nogif);
88SDT_PROBE_DECLARE(mib, ip, count, ips_badaddr);
89
90SDT_PROBE_DECLARE(mib, ip6, count, ip6s_total);
91SDT_PROBE_DECLARE(mib, ip6, count, ip6s_tooshort);
92SDT_PROBE_DECLARE(mib, ip6, count, ip6s_toosmall);
93SDT_PROBE_DECLARE(mib, ip6, count, ip6s_fragments);
94SDT_PROBE_DECLARE(mib, ip6, count, ip6s_fragdropped);
95SDT_PROBE_DECLARE(mib, ip6, count, ip6s_fragtimeout);
96SDT_PROBE_DECLARE(mib, ip6, count, ip6s_fragoverflow);
97SDT_PROBE_DECLARE(mib, ip6, count, ip6s_forward);
98SDT_PROBE_DECLARE(mib, ip6, count, ip6s_cantforward);
99SDT_PROBE_DECLARE(mib, ip6, count, ip6s_redirectsent);
100SDT_PROBE_DECLARE(mib, ip6, count, ip6s_delivered);
101SDT_PROBE_DECLARE(mib, ip6, count, ip6s_localout);
102SDT_PROBE_DECLARE(mib, ip6, count, ip6s_odropped);
103SDT_PROBE_DECLARE(mib, ip6, count, ip6s_reassembled);
104SDT_PROBE_DECLARE(mib, ip6, count, ip6s_atomicfrags);
105SDT_PROBE_DECLARE(mib, ip6, count, ip6s_fragmented);
106SDT_PROBE_DECLARE(mib, ip6, count, ip6s_ofragments);
107SDT_PROBE_DECLARE(mib, ip6, count, ip6s_cantfrag);
108SDT_PROBE_DECLARE(mib, ip6, count, ip6s_badoptions);
109SDT_PROBE_DECLARE(mib, ip6, count, ip6s_noroute);
110SDT_PROBE_DECLARE(mib, ip6, count, ip6s_badvers);
111SDT_PROBE_DECLARE(mib, ip6, count, ip6s_rawout);
112SDT_PROBE_DECLARE(mib, ip6, count, ip6s_badscope);
113SDT_PROBE_DECLARE(mib, ip6, count, ip6s_notmember);
114SDT_PROBE_DECLARE(mib, ip6, count, ip6s_nxthist);
115SDT_PROBE_DECLARE(mib, ip6, count, ip6s_m1);
116SDT_PROBE_DECLARE(mib, ip6, count, ip6s_m2m);
117SDT_PROBE_DECLARE(mib, ip6, count, ip6s_mext1);
118SDT_PROBE_DECLARE(mib, ip6, count, ip6s_mext2m);
119SDT_PROBE_DECLARE(mib, ip6, count, ip6s_exthdrtoolong);
120SDT_PROBE_DECLARE(mib, ip6, count, ip6s_nogif);
121SDT_PROBE_DECLARE(mib, ip6, count, ip6s_toomanyhdr);
122SDT_PROBE_DECLARE(mib, ip6, count, ip6s_sources_none);
123SDT_PROBE_DECLARE(mib, ip6, count, ip6s_sources_sameif);
124SDT_PROBE_DECLARE(mib, ip6, count, ip6s_sources_otherif);
125SDT_PROBE_DECLARE(mib, ip6, count, ip6s_sources_samescope);
126SDT_PROBE_DECLARE(mib, ip6, count, ip6s_sources_otherscope);
127SDT_PROBE_DECLARE(mib, ip6, count, ip6s_sources_deprecated);
128SDT_PROBE_DECLARE(mib, ip6, count, ip6s_sources_rule);
129
130SDT_PROBE_DECLARE(mib, icmp, count, icps_error);
131SDT_PROBE_DECLARE(mib, icmp, count, icps_oldshort);
132SDT_PROBE_DECLARE(mib, icmp, count, icps_oldicmp);
133SDT_PROBE_DECLARE(mib, icmp, count, icps_outhist);
134SDT_PROBE_DECLARE(mib, icmp, count, icps_badcode);
135SDT_PROBE_DECLARE(mib, icmp, count, icps_tooshort);
136SDT_PROBE_DECLARE(mib, icmp, count, icps_checksum);
137SDT_PROBE_DECLARE(mib, icmp, count, icps_badlen);
138SDT_PROBE_DECLARE(mib, icmp, count, icps_reflect);
139SDT_PROBE_DECLARE(mib, icmp, count, icps_inhist);
140SDT_PROBE_DECLARE(mib, icmp, count, icps_bmcastecho);
141SDT_PROBE_DECLARE(mib, icmp, count, icps_bmcasttstamp);
142SDT_PROBE_DECLARE(mib, icmp, count, icps_badaddr);
143SDT_PROBE_DECLARE(mib, icmp, count, icps_noroute);
144
145SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_error);
146SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_canterror);
147SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_toofreq);
148SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_outhist);
149SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_badcode);
150SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_tooshort);
151SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_checksum);
152SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_badlen);
153SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_dropped);
154SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_reflect);
155SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_inhist);
156SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_nd_toomanyopt);
157SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_odst_unreach_noroute);
158SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_odst_unreach_admin);
159SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_odst_unreach_beyondscope);
160SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_odst_unreach_addr);
161SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_odst_unreach_noport);
162SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_opacket_too_big);
163SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_otime_exceed_transit);
164SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_otime_exceed_reassembly);
165SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_oparamprob_header);
166SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_oparamprob_nextheader);
167SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_oparamprob_option);
168SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_oredirect);
169SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_ounknown);
170SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_pmtuchg);
171SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_nd_badopt);
172SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_badns);
173SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_badna);
174SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_badrs);
175SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_badra);
176SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_badredirect);
177SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_overflowdefrtr);
178SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_overflowprfx);
179SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_overflownndp);
180SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_overflowredirect);
181SDT_PROBE_DECLARE(mib, icmp6, count, icp6s_invlhlim);
182
183SDT_PROBE_DECLARE(mib, udp, count, udps_ipackets);
184SDT_PROBE_DECLARE(mib, udp, count, udps_hdrops);
185SDT_PROBE_DECLARE(mib, udp, count, udps_badsum);
186SDT_PROBE_DECLARE(mib, udp, count, udps_nosum);
187SDT_PROBE_DECLARE(mib, udp, count, udps_badlen);
188SDT_PROBE_DECLARE(mib, udp, count, udps_noport);
189SDT_PROBE_DECLARE(mib, udp, count, udps_noportbcast);
190SDT_PROBE_DECLARE(mib, udp, count, udps_fullsock);
191SDT_PROBE_DECLARE(mib, udp, count, udps_pcbcachemiss);
192SDT_PROBE_DECLARE(mib, udp, count, udps_pcbhashmiss);
193SDT_PROBE_DECLARE(mib, udp, count, udps_opackets);
194SDT_PROBE_DECLARE(mib, udp, count, udps_fastout);
195SDT_PROBE_DECLARE(mib, udp, count, udps_noportmcast);
196SDT_PROBE_DECLARE(mib, udp, count, udps_filtermcast);
197
198SDT_PROBE_DECLARE(mib, tcp, count, tcps_connattempt);
199SDT_PROBE_DECLARE(mib, tcp, count, tcps_accepts);
200SDT_PROBE_DECLARE(mib, tcp, count, tcps_connects);
201SDT_PROBE_DECLARE(mib, tcp, count, tcps_drops);
202SDT_PROBE_DECLARE(mib, tcp, count, tcps_conndrops);
203SDT_PROBE_DECLARE(mib, tcp, count, tcps_minmssdrops);
204SDT_PROBE_DECLARE(mib, tcp, count, tcps_closed);
205SDT_PROBE_DECLARE(mib, tcp, count, tcps_segstimed);
206SDT_PROBE_DECLARE(mib, tcp, count, tcps_rttupdated);
207SDT_PROBE_DECLARE(mib, tcp, count, tcps_delack);
208SDT_PROBE_DECLARE(mib, tcp, count, tcps_timeoutdrop);
209SDT_PROBE_DECLARE(mib, tcp, count, tcps_rexmttimeo);
210SDT_PROBE_DECLARE(mib, tcp, count, tcps_persisttimeo);
211SDT_PROBE_DECLARE(mib, tcp, count, tcps_keeptimeo);
212SDT_PROBE_DECLARE(mib, tcp, count, tcps_keepprobe);
213SDT_PROBE_DECLARE(mib, tcp, count, tcps_keepdrops);
214SDT_PROBE_DECLARE(mib, tcp, count, tcps_progdrops);
215
216SDT_PROBE_DECLARE(mib, tcp, count, tcps_sndtotal);
217SDT_PROBE_DECLARE(mib, tcp, count, tcps_sndpack);
218SDT_PROBE_DECLARE(mib, tcp, count, tcps_sndbyte);
219SDT_PROBE_DECLARE(mib, tcp, count, tcps_sndrexmitpack);
220SDT_PROBE_DECLARE(mib, tcp, count, tcps_sndrexmitbyte);
221SDT_PROBE_DECLARE(mib, tcp, count, tcps_sndrexmitbad);
222SDT_PROBE_DECLARE(mib, tcp, count, tcps_sndacks);
223SDT_PROBE_DECLARE(mib, tcp, count, tcps_sndprobe);
224SDT_PROBE_DECLARE(mib, tcp, count, tcps_sndurg);
225SDT_PROBE_DECLARE(mib, tcp, count, tcps_sndwinup);
226SDT_PROBE_DECLARE(mib, tcp, count, tcps_sndctrl);
227
228SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvtotal);
229SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvpack);
230SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvbyte);
231SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvbadsum);
232SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvbadoff);
233SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvreassfull);
234SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvshort);
235SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvduppack);
236SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvdupbyte);
237SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvpartduppack);
238SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvpartdupbyte);
239SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvoopack);
240SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvoobyte);
241SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvpackafterwin);
242SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvbyteafterwin);
243SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvafterclose);
244SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvwinprobe);
245SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvdupack);
246SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvacktoomuch);
247SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvackpack);
248SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvackbyte);
249SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvwinupd);
250SDT_PROBE_DECLARE(mib, tcp, count, tcps_pawsdrop);
251SDT_PROBE_DECLARE(mib, tcp, count, tcps_predack);
252SDT_PROBE_DECLARE(mib, tcp, count, tcps_preddat);
253SDT_PROBE_DECLARE(mib, tcp, count, tcps_pcbcachemiss);
254SDT_PROBE_DECLARE(mib, tcp, count, tcps_cachedrtt);
255SDT_PROBE_DECLARE(mib, tcp, count, tcps_cachedrttvar);
256SDT_PROBE_DECLARE(mib, tcp, count, tcps_cachedssthresh);
257SDT_PROBE_DECLARE(mib, tcp, count, tcps_usedrtt);
258SDT_PROBE_DECLARE(mib, tcp, count, tcps_usedrttvar);
259SDT_PROBE_DECLARE(mib, tcp, count, tcps_usedssthresh);
260SDT_PROBE_DECLARE(mib, tcp, count, tcps_persistdrop);
261SDT_PROBE_DECLARE(mib, tcp, count, tcps_badsyn);
262SDT_PROBE_DECLARE(mib, tcp, count, tcps_mturesent);
263SDT_PROBE_DECLARE(mib, tcp, count, tcps_listendrop);
264SDT_PROBE_DECLARE(mib, tcp, count, tcps_badrst);
265
266SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_added);
267SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_retransmitted);
268SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_dupsyn);
269SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_dropped);
270SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_completed);
271SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_bucketoverflow);
272SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_cacheoverflow);
273SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_reset);
274SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_stale);
275SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_aborted);
276SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_badack);
277SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_unreach);
278SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_zonefail);
279SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_sendcookie);
280SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_recvcookie);
281
282SDT_PROBE_DECLARE(mib, tcp, count, tcps_hc_added);
283SDT_PROBE_DECLARE(mib, tcp, count, tcps_hc_bucketoverflow);
284
285SDT_PROBE_DECLARE(mib, tcp, count, tcps_finwait2_drops);
286
287SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_recovery_episode);
288SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_rexmits);
289SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_rexmits_tso);
290SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_rexmit_bytes);
291SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_rcv_blocks);
292SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_send_blocks);
293SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_lostrexmt);
294SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_sboverflow);
295
296SDT_PROBE_DECLARE(mib, tcp, count, tcps_ecn_rcvce);
297SDT_PROBE_DECLARE(mib, tcp, count, tcps_ecn_rcvect0);
298SDT_PROBE_DECLARE(mib, tcp, count, tcps_ecn_rcvect1);
299SDT_PROBE_DECLARE(mib, tcp, count, tcps_ecn_shs);
300SDT_PROBE_DECLARE(mib, tcp, count, tcps_ecn_rcwnd);
301
302SDT_PROBE_DECLARE(mib, tcp, count, tcps_sig_rcvgoodsig);
303SDT_PROBE_DECLARE(mib, tcp, count, tcps_sig_rcvbadsig);
304SDT_PROBE_DECLARE(mib, tcp, count, tcps_sig_err_buildsig);
305SDT_PROBE_DECLARE(mib, tcp, count, tcps_sig_err_sigopt);
306SDT_PROBE_DECLARE(mib, tcp, count, tcps_sig_err_nosigopt);
307
308SDT_PROBE_DECLARE(mib, tcp, count, tcps_pmtud_blackhole_activated);
309SDT_PROBE_DECLARE(mib, tcp, count, tcps_pmtud_blackhole_activated_min_mss);
310SDT_PROBE_DECLARE(mib, tcp, count, tcps_pmtud_blackhole_failed);
311
312SDT_PROBE_DECLARE(mib, tcp, count, tcps_tunneled_pkts);
313SDT_PROBE_DECLARE(mib, tcp, count, tcps_tunneled_errs);
314
315SDT_PROBE_DECLARE(mib, tcp, count, tcps_dsack_count);
316SDT_PROBE_DECLARE(mib, tcp, count, tcps_dsack_bytes);
317SDT_PROBE_DECLARE(mib, tcp, count, tcps_dsack_tlp_bytes);
318
319SDT_PROBE_DECLARE(mib, tcp, count, tcps_tw_recycles);
320SDT_PROBE_DECLARE(mib, tcp, count, tcps_tw_resets);
321SDT_PROBE_DECLARE(mib, tcp, count, tcps_tw_responds);
322
323SDT_PROBE_DECLARE(mib, tcp, count, tcps_ace_nect);
324SDT_PROBE_DECLARE(mib, tcp, count, tcps_ace_ect1);
325SDT_PROBE_DECLARE(mib, tcp, count, tcps_ace_ect0);
326SDT_PROBE_DECLARE(mib, tcp, count, tcps_ace_ce);
327
328SDT_PROBE_DECLARE(mib, tcp, count, tcps_ecn_sndect0);
329SDT_PROBE_DECLARE(mib, tcp, count, tcps_ecn_sndect1);
330
331SDT_PROBE_DECLARE(mib, tcp, count, tcps_tlpresends);
332SDT_PROBE_DECLARE(mib, tcp, count, tcps_tlpresend_bytes);
333#endif
334
335SDT_PROBE_DECLARE(ip, , , receive);
336SDT_PROBE_DECLARE(ip, , , send);
337
338SDT_PROBE_DECLARE(tcp, , , accept__established);
339SDT_PROBE_DECLARE(tcp, , , accept__refused);
340SDT_PROBE_DECLARE(tcp, , , connect__established);
341SDT_PROBE_DECLARE(tcp, , , connect__refused);
342SDT_PROBE_DECLARE(tcp, , , connect__request);
343SDT_PROBE_DECLARE(tcp, , , receive);
344SDT_PROBE_DECLARE(tcp, , , send);
345SDT_PROBE_DECLARE(tcp, , , siftr);
346SDT_PROBE_DECLARE(tcp, , , state__change);
347SDT_PROBE_DECLARE(tcp, , , debug__input);
348SDT_PROBE_DECLARE(tcp, , , debug__output);
349SDT_PROBE_DECLARE(tcp, , , debug__user);
350SDT_PROBE_DECLARE(tcp, , , debug__drop);
351SDT_PROBE_DECLARE(tcp, , , receive__autoresize);
352
353SDT_PROBE_DECLARE(udp, , , receive);
354SDT_PROBE_DECLARE(udp, , , send);
355
356SDT_PROBE_DECLARE(udplite, , , receive);
357SDT_PROBE_DECLARE(udplite, , , send);
358
359/*
360 * These constants originate from the 4.4BSD sys/protosw.h.  They lost
361 * their initial purpose in 2c37256e5a59, when single pr_usrreq method
362 * was split into multiple methods.  However, they were used by TCPDEBUG,
363 * a feature barely used, but it kept them in the tree for many years.
364 * In 5d06879adb95 DTrace probes started to use them.  Note that they
365 * are not documented in dtrace_tcp(4), so they are likely to be
366 * eventually renamed to something better and extended/trimmed.
367 */
368#define	PRU_ATTACH		0	/* attach protocol to up */
369#define	PRU_DETACH		1	/* detach protocol from up */
370#define	PRU_BIND		2	/* bind socket to address */
371#define	PRU_LISTEN		3	/* listen for connection */
372#define	PRU_CONNECT		4	/* establish connection to peer */
373#define	PRU_ACCEPT		5	/* accept connection from peer */
374#define	PRU_DISCONNECT		6	/* disconnect from peer */
375#define	PRU_SHUTDOWN		7	/* won't send any more data */
376#define	PRU_RCVD		8	/* have taken data; more room now */
377#define	PRU_SEND		9	/* send this data */
378#define	PRU_ABORT		10	/* abort (fast DISCONNECT, DETATCH) */
379#define	PRU_CONTROL		11	/* control operations on protocol */
380#define	PRU_SENSE		12	/* return status into m */
381#define	PRU_RCVOOB		13	/* retrieve out of band data */
382#define	PRU_SENDOOB		14	/* send out of band data */
383#define	PRU_SOCKADDR		15	/* fetch socket's address */
384#define	PRU_PEERADDR		16	/* fetch peer's address */
385#define	PRU_CONNECT2		17	/* connect two sockets */
386/* begin for protocols internal use */
387#define	PRU_FASTTIMO		18	/* 200ms timeout */
388#define	PRU_SLOWTIMO		19	/* 500ms timeout */
389#define	PRU_PROTORCV		20	/* receive from below */
390#define	PRU_PROTOSEND		21	/* send to below */
391/* end for protocol's internal use */
392#define PRU_SEND_EOF		22	/* send and close */
393#define	PRU_SOSETLABEL		23	/* MAC label change */
394#define	PRU_CLOSE		24	/* socket close */
395#define	PRU_FLUSH		25	/* flush the socket */
396#define	PRU_NREQ		25
397
398#ifdef PRUREQUESTS
399const char *prurequests[] = {
400	"ATTACH",	"DETACH",	"BIND",		"LISTEN",
401	"CONNECT",	"ACCEPT",	"DISCONNECT",	"SHUTDOWN",
402	"RCVD",		"SEND",		"ABORT",	"CONTROL",
403	"SENSE",	"RCVOOB",	"SENDOOB",	"SOCKADDR",
404	"PEERADDR",	"CONNECT2",	"FASTTIMO",	"SLOWTIMO",
405	"PROTORCV",	"PROTOSEND",	"SEND_EOF",	"SOSETLABEL",
406	"CLOSE",	"FLUSH",
407};
408#endif
409
410#endif
411