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#ifdef KDTRACE_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);
281SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_spurcookie);
282SDT_PROBE_DECLARE(mib, tcp, count, tcps_sc_failcookie);
283
284SDT_PROBE_DECLARE(mib, tcp, count, tcps_hc_added);
285SDT_PROBE_DECLARE(mib, tcp, count, tcps_hc_bucketoverflow);
286
287SDT_PROBE_DECLARE(mib, tcp, count, tcps_finwait2_drops);
288
289SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_recovery_episode);
290SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_rexmits);
291SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_rexmits_tso);
292SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_rexmit_bytes);
293SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_rcv_blocks);
294SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_send_blocks);
295SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_lostrexmt);
296SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_sboverflow);
297
298SDT_PROBE_DECLARE(mib, tcp, count, tcps_ecn_rcvce);
299SDT_PROBE_DECLARE(mib, tcp, count, tcps_ecn_rcvect0);
300SDT_PROBE_DECLARE(mib, tcp, count, tcps_ecn_rcvect1);
301SDT_PROBE_DECLARE(mib, tcp, count, tcps_ecn_shs);
302SDT_PROBE_DECLARE(mib, tcp, count, tcps_ecn_rcwnd);
303
304SDT_PROBE_DECLARE(mib, tcp, count, tcps_sig_rcvgoodsig);
305SDT_PROBE_DECLARE(mib, tcp, count, tcps_sig_rcvbadsig);
306SDT_PROBE_DECLARE(mib, tcp, count, tcps_sig_err_buildsig);
307SDT_PROBE_DECLARE(mib, tcp, count, tcps_sig_err_sigopt);
308SDT_PROBE_DECLARE(mib, tcp, count, tcps_sig_err_nosigopt);
309
310SDT_PROBE_DECLARE(mib, tcp, count, tcps_pmtud_blackhole_activated);
311SDT_PROBE_DECLARE(mib, tcp, count, tcps_pmtud_blackhole_activated_min_mss);
312SDT_PROBE_DECLARE(mib, tcp, count, tcps_pmtud_blackhole_failed);
313
314SDT_PROBE_DECLARE(mib, tcp, count, tcps_tunneled_pkts);
315SDT_PROBE_DECLARE(mib, tcp, count, tcps_tunneled_errs);
316
317SDT_PROBE_DECLARE(mib, tcp, count, tcps_dsack_count);
318SDT_PROBE_DECLARE(mib, tcp, count, tcps_dsack_bytes);
319SDT_PROBE_DECLARE(mib, tcp, count, tcps_dsack_tlp_bytes);
320
321SDT_PROBE_DECLARE(mib, tcp, count, tcps_tw_recycles);
322SDT_PROBE_DECLARE(mib, tcp, count, tcps_tw_resets);
323SDT_PROBE_DECLARE(mib, tcp, count, tcps_tw_responds);
324
325SDT_PROBE_DECLARE(mib, tcp, count, tcps_ace_nect);
326SDT_PROBE_DECLARE(mib, tcp, count, tcps_ace_ect1);
327SDT_PROBE_DECLARE(mib, tcp, count, tcps_ace_ect0);
328SDT_PROBE_DECLARE(mib, tcp, count, tcps_ace_ce);
329
330SDT_PROBE_DECLARE(mib, tcp, count, tcps_ecn_sndect0);
331SDT_PROBE_DECLARE(mib, tcp, count, tcps_ecn_sndect1);
332
333SDT_PROBE_DECLARE(mib, tcp, count, tcps_tlpresends);
334SDT_PROBE_DECLARE(mib, tcp, count, tcps_tlpresend_bytes);
335
336SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvghostack);
337SDT_PROBE_DECLARE(mib, tcp, count, tcps_rcvacktooold);
338
339SDT_PROBE_DECLARE(mib, ipsec, count, ips_in_polvio);
340SDT_PROBE_DECLARE(mib, ipsec, count, ips_in_nomem);
341SDT_PROBE_DECLARE(mib, ipsec, count, ips_in_inval);
342SDT_PROBE_DECLARE(mib, ipsec, count, ips_out_polvio);
343SDT_PROBE_DECLARE(mib, ipsec, count, ips_out_nosa);
344SDT_PROBE_DECLARE(mib, ipsec, count, ips_out_nomem);
345SDT_PROBE_DECLARE(mib, ipsec, count, ips_out_noroute);
346SDT_PROBE_DECLARE(mib, ipsec, count, ips_out_inval);
347SDT_PROBE_DECLARE(mib, ipsec, count, ips_out_bundlesa);
348
349SDT_PROBE_DECLARE(mib, ipsec, count, ips_spdcache_hits);
350SDT_PROBE_DECLARE(mib, ipsec, count, ips_spdcache_misses);
351
352SDT_PROBE_DECLARE(mib, ipsec, count, ips_clcopied);
353SDT_PROBE_DECLARE(mib, ipsec, count, ips_mbinserted);
354SDT_PROBE_DECLARE(mib, ipsec, count, ips_input_front);
355SDT_PROBE_DECLARE(mib, ipsec, count, ips_input_middle);
356SDT_PROBE_DECLARE(mib, ipsec, count, ips_input_end);
357
358SDT_PROBE_DECLARE(mib, esp, count, esps_hdrops);
359SDT_PROBE_DECLARE(mib, esp, count, esps_nopf);
360SDT_PROBE_DECLARE(mib, esp, count, esps_notdb);
361SDT_PROBE_DECLARE(mib, esp, count, esps_badkcr);
362SDT_PROBE_DECLARE(mib, esp, count, esps_qfull);
363SDT_PROBE_DECLARE(mib, esp, count, esps_noxform);
364SDT_PROBE_DECLARE(mib, esp, count, esps_badilen);
365SDT_PROBE_DECLARE(mib, esp, count, esps_wrap);
366SDT_PROBE_DECLARE(mib, esp, count, esps_badenc);
367SDT_PROBE_DECLARE(mib, esp, count, esps_badauth);
368SDT_PROBE_DECLARE(mib, esp, count, esps_replay);
369SDT_PROBE_DECLARE(mib, esp, count, esps_input);
370SDT_PROBE_DECLARE(mib, esp, count, esps_output);
371SDT_PROBE_DECLARE(mib, esp, count, esps_invalid);
372SDT_PROBE_DECLARE(mib, esp, count, esps_ibytes);
373SDT_PROBE_DECLARE(mib, esp, count, esps_obytes);
374SDT_PROBE_DECLARE(mib, esp, count, esps_toobig);
375SDT_PROBE_DECLARE(mib, esp, count, esps_pdrops);
376SDT_PROBE_DECLARE(mib, esp, count, esps_crypto);
377SDT_PROBE_DECLARE(mib, esp, count, esps_tunnel);
378SDT_PROBE_DECLARE(mib, esp, count, esps_hist);
379
380SDT_PROBE_DECLARE(mib, ah, count, ahs_hdrops);
381SDT_PROBE_DECLARE(mib, ah, count, ahs_nopf);
382SDT_PROBE_DECLARE(mib, ah, count, ahs_notdb);
383SDT_PROBE_DECLARE(mib, ah, count, ahs_badkcr);
384SDT_PROBE_DECLARE(mib, ah, count, ahs_badauth);
385SDT_PROBE_DECLARE(mib, ah, count, ahs_noxform);
386SDT_PROBE_DECLARE(mib, ah, count, ahs_qfull);
387SDT_PROBE_DECLARE(mib, ah, count, ahs_wrap);
388SDT_PROBE_DECLARE(mib, ah, count, ahs_replay);
389SDT_PROBE_DECLARE(mib, ah, count, ahs_badauthl);
390SDT_PROBE_DECLARE(mib, ah, count, ahs_input);
391SDT_PROBE_DECLARE(mib, ah, count, ahs_output);
392SDT_PROBE_DECLARE(mib, ah, count, ahs_invalid);
393SDT_PROBE_DECLARE(mib, ah, count, ahs_ibytes);
394SDT_PROBE_DECLARE(mib, ah, count, ahs_obytes);
395SDT_PROBE_DECLARE(mib, ah, count, ahs_toobig);
396SDT_PROBE_DECLARE(mib, ah, count, ahs_pdrops);
397SDT_PROBE_DECLARE(mib, ah, count, ahs_crypto);
398SDT_PROBE_DECLARE(mib, ah, count, ahs_tunnel);
399SDT_PROBE_DECLARE(mib, ah, count, ahs_hist);
400
401SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_hdrops);
402SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_nopf);
403SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_notdb);
404SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_badkcr);
405SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_qfull);
406SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_noxform);
407SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_wrap);
408SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_input);
409SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_output);
410SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_invalid);
411SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_ibytes);
412SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_obytes);
413SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_toobig);
414SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_pdrops);
415SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_crypto);
416SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_hist);
417SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_threshold);
418SDT_PROBE_DECLARE(mib, ipcomp, count, ipcomps_uncompr);
419
420#endif
421
422SDT_PROBE_DECLARE(ip, , , receive);
423SDT_PROBE_DECLARE(ip, , , send);
424
425SDT_PROBE_DECLARE(tcp, , , accept__established);
426SDT_PROBE_DECLARE(tcp, , , accept__refused);
427SDT_PROBE_DECLARE(tcp, , , connect__established);
428SDT_PROBE_DECLARE(tcp, , , connect__refused);
429SDT_PROBE_DECLARE(tcp, , , connect__request);
430SDT_PROBE_DECLARE(tcp, , , receive);
431SDT_PROBE_DECLARE(tcp, , , send);
432SDT_PROBE_DECLARE(tcp, , , siftr);
433SDT_PROBE_DECLARE(tcp, , , state__change);
434SDT_PROBE_DECLARE(tcp, , , debug__input);
435SDT_PROBE_DECLARE(tcp, , , debug__output);
436SDT_PROBE_DECLARE(tcp, , , debug__user);
437SDT_PROBE_DECLARE(tcp, , , debug__drop);
438SDT_PROBE_DECLARE(tcp, , , receive__autoresize);
439
440SDT_PROBE_DECLARE(udp, , , receive);
441SDT_PROBE_DECLARE(udp, , , send);
442
443SDT_PROBE_DECLARE(udplite, , , receive);
444SDT_PROBE_DECLARE(udplite, , , send);
445
446/*
447 * These constants originate from the 4.4BSD sys/protosw.h. They lost
448 * their initial purpose in 2c37256e5a59, when single pr_usrreq method
449 * was split into multiple methods. However, they were used by TCPDEBUG,
450 * a feature barely used, but it kept them in the tree for many years.
451 * In 5d06879adb95 DTrace probes started to use them. Note that they
452 * are not documented in dtrace_tcp(4), so they are likely to be
453 * eventually renamed to something better and extended/trimmed.
454 */
455#define PRU_ATTACH 0 /* attach protocol to up */
456#define PRU_DETACH 1 /* detach protocol from up */
457#define PRU_BIND 2 /* bind socket to address */
458#define PRU_LISTEN 3 /* listen for connection */
459#define PRU_CONNECT 4 /* establish connection to peer */
460#define PRU_ACCEPT 5 /* accept connection from peer */
461#define PRU_DISCONNECT 6 /* disconnect from peer */
462#define PRU_SHUTDOWN 7 /* won't send any more data */
463#define PRU_RCVD 8 /* have taken data; more room now */
464#define PRU_SEND 9 /* send this data */
465#define PRU_ABORT 10 /* abort (fast DISCONNECT, DETATCH) */
466#define PRU_CONTROL 11 /* control operations on protocol */
467#define PRU_SENSE 12 /* return status into m */
468#define PRU_RCVOOB 13 /* retrieve out of band data */
469#define PRU_SENDOOB 14 /* send out of band data */
470#define PRU_SOCKADDR 15 /* fetch socket's address */
471#define PRU_PEERADDR 16 /* fetch peer's address */
472#define PRU_CONNECT2 17 /* connect two sockets */
473/* begin for protocols internal use */
474#define PRU_FASTTIMO 18 /* 200ms timeout */
475#define PRU_SLOWTIMO 19 /* 500ms timeout */
476#define PRU_PROTORCV 20 /* receive from below */
477#define PRU_PROTOSEND 21 /* send to below */
478/* end for protocol's internal use */
479#define PRU_SEND_EOF 22 /* send and close */
480#define PRU_SOSETLABEL 23 /* MAC label change */
481#define PRU_CLOSE 24 /* socket close */
482#define PRU_FLUSH 25 /* flush the socket */
483#define PRU_NREQ 25
484
485#ifdef PRUREQUESTS
486const char *prurequests[] = {
487 "ATTACH", "DETACH", "BIND", "LISTEN",
488 "CONNECT", "ACCEPT", "DISCONNECT", "SHUTDOWN",
489 "RCVD", "SEND", "ABORT", "CONTROL",
490 "SENSE", "RCVOOB", "SENDOOB", "SOCKADDR",
491 "PEERADDR", "CONNECT2", "FASTTIMO", "SLOWTIMO",
492 "PROTORCV", "PROTOSEND", "SEND_EOF", "SOSETLABEL",
493 "CLOSE", "FLUSH",
494};
495#endif
496
497#endif