xref: /freebsd/share/man/man4/sctp.4 (revision 2cacf8cffb4cca6da358411ca9bf9e02bd21131f)
1d8b5fd91SRandall Stewart.\" Copyright (c) 2006, Randall Stewart.
2d8b5fd91SRandall Stewart.\"
3d8b5fd91SRandall Stewart.\" Redistribution and use in source and binary forms, with or without
4d8b5fd91SRandall Stewart.\" modification, are permitted provided that the following conditions
5d8b5fd91SRandall Stewart.\" are met:
6d8b5fd91SRandall Stewart.\" 1. Redistributions of source code must retain the above copyright
7d8b5fd91SRandall Stewart.\"    notice, this list of conditions and the following disclaimer.
8d8b5fd91SRandall Stewart.\" 2. Redistributions in binary form must reproduce the above copyright
9d8b5fd91SRandall Stewart.\"    notice, this list of conditions and the following disclaimer in the
10d8b5fd91SRandall Stewart.\"    documentation and/or other materials provided with the distribution.
11d8b5fd91SRandall Stewart.\" 3. All advertising materials mentioning features or use of this software
12d8b5fd91SRandall Stewart.\"    must display the following acknowledgement:
13d8b5fd91SRandall Stewart.\"	This product includes software developed by the University of
14d8b5fd91SRandall Stewart.\"	California, Berkeley and its contributors.
15d8b5fd91SRandall Stewart.\" 4. Neither the name of the University nor the names of its contributors
16d8b5fd91SRandall Stewart.\"    may be used to endorse or promote products derived from this software
17d8b5fd91SRandall Stewart.\"    without specific prior written permission.
18d8b5fd91SRandall Stewart.\"
19d8b5fd91SRandall Stewart.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20d8b5fd91SRandall Stewart.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21d8b5fd91SRandall Stewart.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22d8b5fd91SRandall Stewart.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23d8b5fd91SRandall Stewart.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24d8b5fd91SRandall Stewart.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25d8b5fd91SRandall Stewart.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26d8b5fd91SRandall Stewart.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27d8b5fd91SRandall Stewart.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28d8b5fd91SRandall Stewart.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29d8b5fd91SRandall Stewart.\" SUCH DAMAGE.
30d8b5fd91SRandall Stewart.\"
31d8b5fd91SRandall Stewart.\" $FreeBSD$
32d8b5fd91SRandall Stewart.\"
33d8b5fd91SRandall Stewart.Dd December 15, 2006
34d8b5fd91SRandall Stewart.Dt SCTP 4
35d8b5fd91SRandall Stewart.Os
36d8b5fd91SRandall Stewart.Sh NAME
37d8b5fd91SRandall Stewart.Nm sctp
38ab0274e4SChristian Brueffer.Nd Internet Stream Control Transmission Protocol
39d8b5fd91SRandall Stewart.Sh SYNOPSIS
40d8b5fd91SRandall Stewart.In sys/types.h
41d8b5fd91SRandall Stewart.In sys/socket.h
427c376800SRandall Stewart.In netinet/sctp.h
43d8b5fd91SRandall Stewart.Ft int
44d8b5fd91SRandall Stewart.Fn socket AF_INET SOCK_STREAM IPPROTO_SCTP
45d8b5fd91SRandall Stewart.Ft int
46d8b5fd91SRandall Stewart.Fn socket AF_INET SOCK_SEQPACKET IPPROTO_SCTP
47d8b5fd91SRandall Stewart.Sh DESCRIPTION
48d8b5fd91SRandall StewartThe
49d8b5fd91SRandall Stewart.Tn SCTP
50d8b5fd91SRandall Stewartprotocol provides reliable, flow-controlled, two-way
51d8b5fd91SRandall Stewarttransmission of data.
52d8b5fd91SRandall StewartIt is a message oriented protocol and can
53d8b5fd91SRandall Stewartsupport the
54d8b5fd91SRandall Stewart.Dv SOCK_STREAM
55d8b5fd91SRandall Stewartand
56d8b5fd91SRandall Stewart.Dv SOCK_SEQPACKET
57d8b5fd91SRandall Stewartabstractions.
58d8b5fd91SRandall Stewart.Tn SCTP
59d8b5fd91SRandall Stewartuses the standard
60d8b5fd91SRandall StewartInternet address format and, in addition, provides a per-host
61d8b5fd91SRandall Stewartcollection of
62d8b5fd91SRandall Stewart.Dq "port addresses" .
63d8b5fd91SRandall StewartThus, each address is composed of an Internet address specifying
64d8b5fd91SRandall Stewartthe host and network, with a specific
65d8b5fd91SRandall Stewart.Tn SCTP
66d8b5fd91SRandall Stewartport on the host identifying the peer entity.
67d8b5fd91SRandall Stewart.Pp
68d8b5fd91SRandall StewartThere are two models of programming in SCTP.
69d8b5fd91SRandall StewartThe first uses the
70d8b5fd91SRandall Stewart.Dv SOCK_STREAM
71d8b5fd91SRandall Stewartabstraction.
72d8b5fd91SRandall StewartIn this abstraction sockets utilizing the
73d8b5fd91SRandall Stewart.Tn SCTP
74d8b5fd91SRandall Stewartprotocol are either
75d8b5fd91SRandall Stewart.Dq active
76d8b5fd91SRandall Stewartor
77d8b5fd91SRandall Stewart.Dq passive .
78d8b5fd91SRandall StewartActive sockets initiate connections to passive
79d8b5fd91SRandall Stewartsockets.
80d8b5fd91SRandall StewartBy default,
81d8b5fd91SRandall Stewart.Tn SCTP
82d8b5fd91SRandall Stewartsockets are created active; to create a
83d8b5fd91SRandall Stewartpassive socket, the
84d8b5fd91SRandall Stewart.Xr listen 2
85d8b5fd91SRandall Stewartsystem call must be used after binding the socket with the
86d8b5fd91SRandall Stewart.Xr bind 2
87d8b5fd91SRandall Stewartor
88d8b5fd91SRandall Stewart.Xr sctp_bindx 3
89d8b5fd91SRandall Stewartsystem calls.
90d8b5fd91SRandall StewartOnly passive sockets may use the
91d8b5fd91SRandall Stewart.Xr accept 2
92d8b5fd91SRandall Stewartcall to accept incoming connections.
93d8b5fd91SRandall StewartOnly active sockets may use the
94d8b5fd91SRandall Stewart.Xr connect 2
95d8b5fd91SRandall Stewartcall to initiate connections.
96d8b5fd91SRandall Stewart.Pp
97d8b5fd91SRandall StewartThe other abstraction
98d8b5fd91SRandall Stewart.Dv SOCK_SEQPACKET
99d8b5fd91SRandall Stewartprovides a
100d8b5fd91SRandall Stewart.Dq connectionless
101d8b5fd91SRandall Stewartmode of operation in that the user may send to an address
102d8b5fd91SRandall Stewart(using any of the valid send calls that carry a
103d8b5fd91SRandall Stewartsocket address) and an association will be setup
104d8b5fd91SRandall Stewartimplicitly by the underlying
105d8b5fd91SRandall Stewart.Tn SCTP
106d8b5fd91SRandall Stewarttransport stack.
107d8b5fd91SRandall StewartThis abstraction is the only one capable of sending data on the
108d8b5fd91SRandall Stewartthird leg of the four-way handshake.
109d8b5fd91SRandall StewartA user must still call
110d8b5fd91SRandall Stewart.Xr listen 2
111d8b5fd91SRandall Stewartto allow the socket to accept connections.
112d8b5fd91SRandall StewartCalling
113d8b5fd91SRandall Stewart.Xr listen 2
114d8b5fd91SRandall Stewarthowever does not restrict the user from still initiating
115d8b5fd91SRandall Stewartimplicit connections to other peers.
116d8b5fd91SRandall Stewart.Pp
117d8b5fd91SRandall StewartThe
118d8b5fd91SRandall Stewart.Tn SCTP
119d8b5fd91SRandall Stewartprotocol directly supports multi-homing.
120d8b5fd91SRandall StewartSo when binding a socket with the
121d8b5fd91SRandall Stewart.Dq wildcard
122d8b5fd91SRandall Stewartaddress
123d8b5fd91SRandall Stewart.Dv INADDR_ANY ,
124d8b5fd91SRandall Stewartthe
125d8b5fd91SRandall Stewart.Tn SCTP
126d8b5fd91SRandall Stewartstack will inform the peer about all of the local addresses
127d8b5fd91SRandall Stewartthat are deemed in scope of the peer.
128d8b5fd91SRandall StewartThe peer will then possibly have multiple paths to reach the local host.
129d8b5fd91SRandall Stewart.Pp
130d8b5fd91SRandall StewartThe
131d8b5fd91SRandall Stewart.Tn SCTP
132d8b5fd91SRandall Stewarttransport protocol is also multi-streamed.
133d8b5fd91SRandall StewartMulti-streaming refers to the ability to send sub-ordered flows of
134d8b5fd91SRandall Stewartmessages.
135d8b5fd91SRandall StewartA user performs this by specifying a specific stream in one of the
136d8b5fd91SRandall Stewartextended send calls such as the
137d8b5fd91SRandall Stewart.Xr sctp_send 3
138d8b5fd91SRandall Stewartfunction call.
139d8b5fd91SRandall StewartSending messages on different streams will allow parallel delivery
140d8b5fd91SRandall Stewartof data i.e., a message loss in stream 1 will not block the delivery
141d8b5fd91SRandall Stewartof messages sent in stream 2.
142d8b5fd91SRandall Stewart.Pp
143d8b5fd91SRandall StewartThe
144d8b5fd91SRandall Stewart.Tn SCTP
145d8b5fd91SRandall Stewarttransport protocol also provides a unordered service as well.
146d8b5fd91SRandall StewartThe unordered service allows a message to be sent and delivered
147d8b5fd91SRandall Stewartwith no regard to the ordering of any other message.
148d8b5fd91SRandall Stewart.Ss Extensions
149d8b5fd91SRandall StewartThe FreeBSD implementation of
150d8b5fd91SRandall Stewart.Tn SCTP
151d8b5fd91SRandall Stewartalso supports the following extensions:
152d8b5fd91SRandall Stewart.Bl -hang -width indent
153d8b5fd91SRandall Stewart.It "sctp partial reliability"
154d8b5fd91SRandall StewartThis extension allows one to have message be skipped and
155d8b5fd91SRandall Stewartnot delivered based on some user specified parameters.
156d8b5fd91SRandall Stewart.It "sctp dynamic addressing"
157d8b5fd91SRandall Stewart This extension allows addresses to be added and deleted
158d8b5fd91SRandall Stewartdynammically from an existing association.
159d8b5fd91SRandall Stewart.It "sctp authentication"
160d8b5fd91SRandall StewartThis extension allows the user to authenticate specific
161d8b5fd91SRandall Stewartpeer chunks (including data) to validate that the peer
162d8b5fd91SRandall Stewartwho sent the message is in fact the peer who setup the
163d8b5fd91SRandall Stewartassociation.
164d8b5fd91SRandall StewartA shared key option is also provided for
165d8b5fd91SRandall Stewartso that two stacks can pre-share keys.
166d8b5fd91SRandall Stewart.It "packet drop"
167d8b5fd91SRandall Stewart Some routers support a special satellite protocol that
168d8b5fd91SRandall Stewartwill report losses due to corruption.
169d8b5fd91SRandall StewartThis allows retransmissions without subsequent loss in bandwidth
170d8b5fd91SRandall Stewartutilization.
171d8b5fd91SRandall Stewart.It "stream reset"
172d8b5fd91SRandall StewartThis extension allows a user on either side to reset the
173d8b5fd91SRandall Stewartstream sequence numbers used by any or all streams.
174d8b5fd91SRandall Stewart.El
175d8b5fd91SRandall Stewart.Pp
176d8b5fd91SRandall Stewart.Tn SCTP
177d8b5fd91SRandall Stewartsupports a number of socket options which can be set with
178d8b5fd91SRandall Stewart.Xr setsockopt 2
179d8b5fd91SRandall Stewartand tested with
180d8b5fd91SRandall Stewart.Xr getsockopt 2
181d8b5fd91SRandall Stewartor
1822cacf8cfSPeter Pentchev.Xr sctp_opt_info 3 :
183d8b5fd91SRandall Stewart.Bl -tag -width ".Dv SCTP_SET_PEER_PRIMARY_ADDR"
184d8b5fd91SRandall Stewart.It Dv SCTP_NODELAY
185d8b5fd91SRandall StewartUnder most circumstances,
186d8b5fd91SRandall Stewart.Tn SCTP
187d8b5fd91SRandall Stewartsends data when it is presented; when outstanding data has not
188d8b5fd91SRandall Stewartyet been acknowledged, it gathers small amounts of output to be
189d8b5fd91SRandall Stewartsent in a single packet once an acknowledgement is received.
190d8b5fd91SRandall StewartFor some clients, such as window systems that send a stream of
191d8b5fd91SRandall Stewartmouse events which receive no replies, this packetization may
192d8b5fd91SRandall Stewartcause significant delays.
193d8b5fd91SRandall StewartThe boolean option
194d8b5fd91SRandall Stewart.Dv SCTP_NODELAY
195d8b5fd91SRandall Stewartdefeats this algorithm.
196d8b5fd91SRandall Stewart.It Dv SCTP_RTOINFO
197d8b5fd91SRandall StewartThis option returns specific information about an associations
198d8b5fd91SRandall Stewart.Dq "Retransmission Time Out" .
199d8b5fd91SRandall StewartIt can also be used to change the default values.
200d8b5fd91SRandall Stewart.It Dv SCTP_ASSOCINFO
201d8b5fd91SRandall StewartThis option returns specific information about the requested
202d8b5fd91SRandall Stewartassociation.
203d8b5fd91SRandall Stewart.It Dv SCTP_INITMSG
204d8b5fd91SRandall StewartThis option allows you to get or set the default sending
205d8b5fd91SRandall Stewartparameters when an association is implicitly setup.
206d8b5fd91SRandall StewartIt allows you to change such things as the maxium number of
207d8b5fd91SRandall Stewartstreams allowed inbound and the number of streams requested
208d8b5fd91SRandall Stewartof the peer.
209d8b5fd91SRandall Stewart.It Dv SCTP_AUTOCLOSE
210d8b5fd91SRandall StewartFor the one-to-many model
211d8b5fd91SRandall Stewart.Dv ( SOCK_SEQPACKET )
212d8b5fd91SRandall Stewartassociations are setup implicitly.
213d8b5fd91SRandall StewartThis option allows the user to specify a default number of idle
214d8b5fd91SRandall Stewartseconds to allow the association be maintained.
215d8b5fd91SRandall StewartAfter the idle timer (where no user message have been sent or have
216d8b5fd91SRandall Stewartbeen received from the peer) the association will be gracefully
217d8b5fd91SRandall Stewartclosed.
218d8b5fd91SRandall StewartThe default for this value is 0, or unlimited (i.e., no automatic
219d8b5fd91SRandall Stewartclose).
220d8b5fd91SRandall Stewart.It Dv SCTP_SET_PEER_PRIMARY_ADDR
221d8b5fd91SRandall StewartThe dynamic address extension allows a peer to also request a
222d8b5fd91SRandall Stewartparticular address of its be made into the primary address.
223d8b5fd91SRandall StewartThis option allows the caller to make such a request to a peer.
224d8b5fd91SRandall StewartNote that if the peer does not also support the dynamic address
225d8b5fd91SRandall Stewartextension, this call will fail.
226d8b5fd91SRandall StewartNote the caller must provide a valid local address that the peer has
227d8b5fd91SRandall Stewartbeen told about during association setup or dynamically.
228d8b5fd91SRandall Stewart.It Dv SCTP_PRIMARY_ADDR
229d8b5fd91SRandall StewartThis option allows the setting of the primary address
230d8b5fd91SRandall Stewartthat the caller wishes to send to.
231d8b5fd91SRandall StewartThe caller provides the address of a peer that is to be made primary.
232d8b5fd91SRandall Stewart.It Dv SCTP_ADAPTATION_LAYER
233d8b5fd91SRandall StewartThe dynamic address extension also allows a user to
234d8b5fd91SRandall Stewartpass a 32 bit opaque value upon association setup.
235d8b5fd91SRandall StewartThis option allows a user to set or get this value.
236d8b5fd91SRandall Stewart.It Dv SCTP_DISABLE_FRAGMENTS
237d8b5fd91SRandall StewartBy default
238d8b5fd91SRandall Stewart.Tn SCTP
239d8b5fd91SRandall Stewartwill fragment user messages into multiple pieces that
240d8b5fd91SRandall Stewartwill fit on the network and then later, upon reception, reassemble
241d8b5fd91SRandall Stewartthe pieces into a single user message.
242d8b5fd91SRandall StewartIf this option is enabled instead, any send that exceeds the path
243d8b5fd91SRandall Stewartmaximum transfer unit (P-MTU) will fail and the message will NOT be
244d8b5fd91SRandall Stewartsent.
245d8b5fd91SRandall Stewart.It Dv SCTP_PEER_ADDR_PARAMS
246d8b5fd91SRandall StewartThis option will allow a user to set or get specific
247d8b5fd91SRandall Stewartpeer address parameters.
248d8b5fd91SRandall Stewart.It Dv SCTP_DEFAULT_SEND_PARAM
249d8b5fd91SRandall StewartWhen a user does not use one of the extended send
250d8b5fd91SRandall Stewartcalls (e.g.,
251d8b5fd91SRandall Stewart.Xr sctp_sendmsg 3 )
252d8b5fd91SRandall Stewarta set of default values apply to each send.
253d8b5fd91SRandall StewartThese values include things like the stream number to send
254d8b5fd91SRandall Stewartto as well as the per-protocol id.
255d8b5fd91SRandall StewartThis option lets a caller both get and set these values.
256d8b5fd91SRandall StewartIf the user changes these default values, then these new values will
257d8b5fd91SRandall Stewartbe used as the default whenever no information is provided by the
258d8b5fd91SRandall Stewartsender (i.e., the non-extended API is used).
259d8b5fd91SRandall Stewart.It Dv SCTP_EVENTS
260d8b5fd91SRandall Stewart.Tn SCTP
261d8b5fd91SRandall Stewarthas non-data events that it can communicate
262d8b5fd91SRandall Stewartto its application.
263d8b5fd91SRandall StewartBy default these are all disabled since they arrive in the data path
264d8b5fd91SRandall Stewartwith a special flag
265d8b5fd91SRandall Stewart.Dv MSG_NOTIFICATION
266d8b5fd91SRandall Stewartset upon the received message.
267d8b5fd91SRandall StewartThis option lets a caller
268d8b5fd91SRandall Stewartboth get what events are current being received
269d8b5fd91SRandall Stewartas well as set different events that they may be interested
270d8b5fd91SRandall Stewartin receiving.
271d8b5fd91SRandall Stewart.It Dv SCTP_I_WANT_MAPPED_V4_ADDR
272d8b5fd91SRandall Stewart.Tn SCTP
273d8b5fd91SRandall Stewartsupports both IPV4 and IPV6.
274d8b5fd91SRandall StewartAn association may span both IPV4 and IPV6 addresses since
275d8b5fd91SRandall Stewart.Tn SCTP
276d8b5fd91SRandall Stewartis multi-homed.
277d8b5fd91SRandall StewartBy default, when opening an IPV6 socket, when
278d8b5fd91SRandall Stewartdata arrives on the socket from a peer's
279d8b5fd91SRandall StewartV4 address the V4 address  will be presented with an address family
280d8b5fd91SRandall Stewartof AF_INET.
281d8b5fd91SRandall StewartIf this is undesireable, then this option
282d8b5fd91SRandall Stewartcan be enabled which will then convert all V4 addresses
283d8b5fd91SRandall Stewartinto mapped V6 representations.
284d8b5fd91SRandall Stewart.It Dv SCTP_MAXSEG
285d8b5fd91SRandall StewartBy default
286d8b5fd91SRandall Stewart.Tn SCTP
287d8b5fd91SRandall Stewartchooses its message fragmentation point
288d8b5fd91SRandall Stewartbased upon the smallest P-MTU of the peer.
289d8b5fd91SRandall StewartThis option lets the caller set it to a smaller value.
290d8b5fd91SRandall StewartNote that while the user can change this value, if the P-MTU
291d8b5fd91SRandall Stewartis smaller than the value set by the user, then the P-MTU
292d8b5fd91SRandall Stewartvalue will override any user setting.
293d8b5fd91SRandall Stewart.It Dv SCTP_DELAYED_ACK_TIME
294d8b5fd91SRandall StewartThis option lets the user both set and get the
295d8b5fd91SRandall Stewartdelayed ack time (in milliseconds) that
296d8b5fd91SRandall Stewart.Tn SCTP
297d8b5fd91SRandall Stewartis using.
298d8b5fd91SRandall StewartThe default is 200 milliseconds.
299d8b5fd91SRandall Stewart.It Dv SCTP_PARTIAL_DELIVERY_POINT
300d8b5fd91SRandall Stewart.Tn SCTP
301d8b5fd91SRandall Stewartat times may need to start delivery of a
302d8b5fd91SRandall Stewartvery large message before the entire message has
303d8b5fd91SRandall Stewartarrived.
304d8b5fd91SRandall StewartBy default SCTP waits until the incoming
305d8b5fd91SRandall Stewartmessage is larger than one fourth of the receive
306d8b5fd91SRandall Stewartbuffer.
307d8b5fd91SRandall StewartThis option allows the stacks value
308d8b5fd91SRandall Stewartto be overridden with a smaller value.
309d8b5fd91SRandall Stewart.It Dv SCTP_FRAGMENT_INTERLEAVE
310d8b5fd91SRandall Stewart.Tn SCTP
311d8b5fd91SRandall Stewartat times will start partial delivery (as mentioned above).
312d8b5fd91SRandall StewartIn the normal case successive reads will continue to return
313d8b5fd91SRandall Stewartthe rest of the message, blocking if needed, until all of
314d8b5fd91SRandall Stewartthat message is read.
315d8b5fd91SRandall StewartHowever this means other messages may have arrived and be ready
316d8b5fd91SRandall Stewartfor delivery and be blocked behind the message being partially
317d8b5fd91SRandall Stewartdelivered.
318d8b5fd91SRandall StewartIf this option is enabled, when a partial delivery
319d8b5fd91SRandall Stewartmessage has no more data to be received, then a subsequent
320d8b5fd91SRandall Stewartread may return a different message that is ready for delivery.
321d8b5fd91SRandall StewartBy default this option is off since the user must be using the
322d8b5fd91SRandall Stewartextended API's to be able to tell the difference between
323d8b5fd91SRandall Stewartmessages (via the stream and stream sequence number).
324d8b5fd91SRandall Stewart.It Dv SCTP_AUTH_CHUNK
325d8b5fd91SRandall StewartBy default only the dynamic addressing chunks are
326d8b5fd91SRandall Stewartauthenticated.
327d8b5fd91SRandall StewartThis option lets a user request an
328d8b5fd91SRandall Stewartadditional chunk be authenticated as well.
329d8b5fd91SRandall StewartNote that successive calls to this option will work and continue
330d8b5fd91SRandall Stewartto add more chunks that require authentication.
331d8b5fd91SRandall StewartNote that this option only effects future associations and
332d8b5fd91SRandall Stewartnot existing ones.
333d8b5fd91SRandall Stewart.It Dv SCTP_AUTH_KEY
334d8b5fd91SRandall StewartThis option allows a user to specify a shared
335d8b5fd91SRandall Stewartkey that can be later used to authenticate
336d8b5fd91SRandall Stewarta peer.
337d8b5fd91SRandall Stewart.It Dv SCTP_HMAC_IDENT
338d8b5fd91SRandall StewartThis option will let you get or set the list of
339d8b5fd91SRandall StewartHMAC algorithms used to authenticate peers.
340d8b5fd91SRandall StewartNote that the HMAC values are in priority order where
341d8b5fd91SRandall Stewartthe first HMAC identifier is the most prefered
342d8b5fd91SRandall Stewartand the last is the least prefered.
343d8b5fd91SRandall Stewart.It Dv SCTP_AUTH_ACTIVE_KEY
344d8b5fd91SRandall StewartThis option allows you to make a key active for
345d8b5fd91SRandall Stewartthe generation of authentication information.
346d8b5fd91SRandall StewartNote that the peer must have the same key or else the
347d8b5fd91SRandall Stewartdata will be discarded.
348d8b5fd91SRandall Stewart.It Dv SCTP_AUTH_DELETE_KEY
349d8b5fd91SRandall StewartThis option allows you to delete an old key.
350d8b5fd91SRandall Stewart.It Dv SCTP_USE_EXT_RECVINFO
351d8b5fd91SRandall StewartThe sockets api document allows an extended
352d8b5fd91SRandall Stewartsend/receive information structure to be used.
353d8b5fd91SRandall StewartThe extended structure includes additional fields
354d8b5fd91SRandall Stewartrelated to the next message to be received (after the
355d8b5fd91SRandall Stewartcurrent receive completes) if such information is known.
356d8b5fd91SRandall StewartBy default the system will not pass this information.
357d8b5fd91SRandall StewartThis option allows the user to request this information.
358d8b5fd91SRandall Stewart.It Dv SCTP_AUTO_ASCONF
359d8b5fd91SRandall StewartBy default when bound to all address and the system administrator has
360d8b5fd91SRandall Stewartenables automatic dynamic addresses, the
361d8b5fd91SRandall Stewart.Tn SCTP
362d8b5fd91SRandall Stewartstack will automatically generate address changes into add and
363d8b5fd91SRandall Stewartdelete requests to any peers by setting this option to
364d8b5fd91SRandall Stewarttrue.
365d8b5fd91SRandall StewartThis option allows an endpoint to disable that behavior.
366d8b5fd91SRandall Stewart.It Dv SCTP_MAXBURST
367d8b5fd91SRandall StewartBy default
368d8b5fd91SRandall Stewart.Tn SCTP
369d8b5fd91SRandall Stewartimplements micro-burst control so that as the congestion window
370d8b5fd91SRandall Stewartopens up no large burst of packets can be generated.
371d8b5fd91SRandall StewartThe default burst limit is four.
372d8b5fd91SRandall StewartThis option lets the user change this value.
373d8b5fd91SRandall Stewart.It Dv SCTP_CONTEXT
374d8b5fd91SRandall StewartMany sctp extended calls have a context field.
375d8b5fd91SRandall StewartThe context field is a 32 bit opaque value that will be returned in
376d8b5fd91SRandall Stewartsend failures.
377d8b5fd91SRandall StewartThis option lets the caller set the default
378d8b5fd91SRandall Stewartcontext value to use when none is provided by the user.
379d8b5fd91SRandall Stewart.It Dv SCTP_EXPLICIT_EOR
380d8b5fd91SRandall StewartBy default, a single send is a complete message.
381d8b5fd91SRandall Stewart.Tn SCTP
382d8b5fd91SRandall Stewartgenerates an implied record boundary.
383d8b5fd91SRandall StewartIf this option is enabled, then all sends are part of the same message
384d8b5fd91SRandall Stewartuntil the user indicates an end of record with the
385d8b5fd91SRandall Stewartspecial flag
386d8b5fd91SRandall Stewart.Dv SCTP_EOR
387d8b5fd91SRandall Stewartpassed in the sctp_sndrcvinfo flags field.
388d8b5fd91SRandall StewartThis effectively makes all sends part of the same message
389d8b5fd91SRandall Stewartuntil the user specifices differently.
390d8b5fd91SRandall StewartThis means that a caller must NOT change the stream number until
391d8b5fd91SRandall Stewartafter the
392d8b5fd91SRandall Stewart.Dv SCTP_EOR
393d8b5fd91SRandall Stewartis passed to
394d8b5fd91SRandall Stewart.Tn SCTP
395d8b5fd91SRandall Stewartelse an error will be returned.
396d8b5fd91SRandall Stewart.It Dv SCTP_STATUS
397d8b5fd91SRandall StewartThis option is a read only option that returns
398d8b5fd91SRandall Stewartvarious status information about the specified association.
399d8b5fd91SRandall Stewart.It Dv SCTP_GET_PEER_ADDR_INFO
400d8b5fd91SRandall StewartThis read only option returns information about a peer
401d8b5fd91SRandall Stewartaddress.
402d8b5fd91SRandall Stewart.It Dv SCTP_PEER_AUTH_CHUNKS
403d8b5fd91SRandall StewartThis read only option returns a list of the chunks
404d8b5fd91SRandall Stewartthe peer requires to be authenticated.
405d8b5fd91SRandall Stewart.It Dv SCTP_LOCAL_AUTH_CHUNKS
406d8b5fd91SRandall StewartThis read only option returns a list of the locally
407d8b5fd91SRandall Stewartrequired chunks that must be authenticated.
408d8b5fd91SRandall Stewart.It Dv SCTP_RESET_STREAMS
409d8b5fd91SRandall StewartThis socket option is used to cause a stream sequence
410d8b5fd91SRandall Stewartnumber or all stream sequence numbers to be reset.
411d8b5fd91SRandall StewartNote that the peer
412d8b5fd91SRandall Stewart.Tn SCTP
413d8b5fd91SRandall Stewartendpoint must also support the stream reset extension
414d8b5fd91SRandall Stewartas well.
415d8b5fd91SRandall Stewart.El
416d8b5fd91SRandall Stewart.Sh SEE ALSO
417d8b5fd91SRandall Stewart.Xr accept 2 ,
418d8b5fd91SRandall Stewart.Xr bind 2 ,
419d8b5fd91SRandall Stewart.Xr connect 2 ,
420d8b5fd91SRandall Stewart.Xr listen 2 ,
421d8b5fd91SRandall Stewart.Xr sctp_bindx 3 ,
422d8b5fd91SRandall Stewart.Xr sctp_connectx 3 ,
423d8b5fd91SRandall Stewart.Xr sctp_opt_info 3 ,
424d8b5fd91SRandall Stewart.Xr sctp_recvmsg 3 ,
425d8b5fd91SRandall Stewart.Xr sctp_sendmsg 3
426