xref: /freebsd/share/man/man4/dtrace_sctp.4 (revision 78b9f0095b4af3aca6c931b2c7b009ddb8a05125)
1.\" Copyright (c) 2018 Devin Teske <dteske@FreeBSD.org>
2.\"
3.\" Redistribution and use in source and binary forms, with or without
4.\" modification, are permitted provided that the following conditions
5.\" are met:
6.\" 1. Redistributions of source code must retain the above copyright
7.\"    notice, this list of conditions and the following disclaimer.
8.\" 2. Redistributions in binary form must reproduce the above copyright
9.\"    notice, this list of conditions and the following disclaimer in the
10.\"    documentation and/or other materials provided with the distribution.
11.\"
12.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22.\" SUCH DAMAGE.
23.\"
24.\" $FreeBSD$
25.\"
26.Dd August 1, 2018
27.Dt DTRACE_SCTP 4
28.Os
29.Sh NAME
30.Nm dtrace_sctp
31.Nd a DTrace provider for tracing events related to the
32.Xr sctp 4
33protocol
34.Sh SYNOPSIS
35.Fn sctp:cwnd::init uint32_t uint32_t uintptr_t int int
36.Fn sctp:cwnd::ack uint32_t uint32_t uintptr_t int int
37.Fn sctp:cwnd::rttvar uint64_t uint64_t uint64_t uint64_t uint64_t
38.Fn sctp:cwnd::rttstep uint64_t uint64_t uint64_t uint64_t uint64_t
39.Fn sctp:cwnd::fr uint32_t uint32_t uintptr_t int int
40.Fn sctp:cwnd::to uint32_t uint32_t uintptr_t int int
41.Fn sctp:cwnd::bl uint32_t uint32_t uintptr_t int int
42.Fn sctp:cwnd::ecn uint32_t uint32_t uintptr_t int int
43.Fn sctp:cwnd::pd uint32_t uint32_t uintptr_t int int
44.Fn sctp:rwnd:assoc:val uint32_t uint32_t int int
45.Fn sctp:flightsize:net:val uint32_t uint32_t uintptr_t int int
46.Fn sctp:flightsize:assoc:val uint32_t uint32_t int int
47.Sh DESCRIPTION
48The DTrace
49.Nm sctp
50provider allows users to trace events in the
51.Xr sctp 4
52protocol implementation.
53This provider is similar to the
54.Xr dtrace_ip 4
55and
56.Xr dtrace_udp 4
57providers,
58but additionally contains probes corresponding to protocol events at a level
59higher than packet reception and transmission.
60.Pp
61The
62.Fn sctp:cwnd::
63probes track changes in the congestion window on a netp.
64The
65.Fn sctp:rwnd::
66probes track changes in the receiver window for an assoc.
67The
68.Fn sctp:flightsize:net:val
69probe tracks changes in the flight size on a net or assoc and the
70.Fn sctp:flightsize:assoc:val
71probe provides the total flight version.
72.Pp
73The arguments of all
74.Nm sctp
75probes except for
76.Fn sctp:cwnd::rtt*
77and
78.Fn sctp::assoc:val
79are the Vtag for this end,
80the port number of the local side,
81the pointer to
82.Dv struct sctp_nets *changing ,
83the old value of the cwnd,
84and the new value of the cwnd.
85.Pp
86The arguments of
87.Fn sctp:::val
88are similar to the above except the fourth argument is the up/down amount.
89.Pp
90The
91.Fn sctp:cwnd::rtt*
92probe arguments are a bitmap of
93.Dv Vtag << 32 | localport << 16 | remoteport ,
94a bitmap of
95.Dv obw | nbw ,
96a bitmap of
97.Dv bwrtt | newrtt ,
98.Dv flight ,
99and a bitmap of
100.Dv (cwnd << 32) | point << 16 | retval(0/1) .
101.Pp
102The
103.Fn sctp:cwnd::init
104probe fires when a remotely-initiated active SCTP open succeeds.
105At this point the new connection is in the ESTABLISHED state, and the probe
106arguments expose the headers associated with the final ACK of the four-way
107handshake.
108.\" .Sh ARGUMENTS
109.\" .Sh FILES
110.\" .Sh EXAMPLES
111.\" .Sh COMPATIBILITY
112.\" This provider has not been tested for compatiblity with the
113.\" .Nm sctp
114.\" provider in Solaris
115.\" .Pq if one exists .
116.Sh SEE ALSO
117.Xr dtrace 1 ,
118.Xr dtrace_ip 4 ,
119.Xr dtrace_udp 4 ,
120.Xr dtrace_udplite 4 ,
121.Xr sctp 4 ,
122.Xr SDT 9
123.\" .Sh HISTORY
124.\" The
125.\" .Nm sctp
126.\" provider first appeared in
127.\" .Fx
128.\" UNKNOWN.
129.Sh AUTHORS
130This manual page was written by
131.An Devin Teske Aq Mt dteske@FreeBSD.org .
132