xref: /freebsd/lib/libc/net/sctp_bindx.3 (revision 5ca8e32633c4ffbbcd6762e5888b6a4ba0708c6c)
1.\" Copyright (c) 1983, 1991, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\" 3. Neither the name of the University nor the names of its contributors
13.\"    may be used to endorse or promote products derived from this software
14.\"    without specific prior written permission.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.Dd February 2, 2024
29.Dt SCTP_BINDX 3
30.Os
31.Sh NAME
32.Nm sctp_bindx
33.Nd bind or unbind an SCTP socket to a list of addresses
34.Sh LIBRARY
35.Lb libc
36.Sh SYNOPSIS
37.In sys/types.h
38.In sys/socket.h
39.In netinet/sctp.h
40.Ft int
41.Fn sctp_bindx "int s" "struct sockaddr *addrs" "int num" "int type"
42.Sh DESCRIPTION
43The
44.Fn sctp_bindx
45call binds or unbinds a address or a list of addresses to an
46SCTP endpoint.
47This allows a user to bind a subset of
48addresses.
49The
50.Fn sctp_bindx
51call operates similarly to
52.Fn bind
53but allows a list of addresses and also allows a bind or an
54unbind.
55The argument
56.Fa s
57must be a valid SCTP socket descriptor.
58The argument
59.Fa addrs
60is a list of addresses (where the list may be only 1 in
61length) that the user wishes to bind or unbind to the
62socket.
63The argument
64.Fa type
65must be one of the following values.
66.Pp
67.Dv SCTP_BINDX_ADD_ADDR
68This value indicates that the listed address(es) need to
69be added to the endpoint.
70.Pp
71.Dv SCTP_BINDX_REM_ADDR
72This value indicates that the listed address(es) need to
73be removed from the endpoint.
74.Pp
75Note that when a user adds or deletes an address to an
76association if the dynamic address flag
77.Va net.inet.sctp.auto_asconf
78is enabled any associations in the endpoint will attempt to
79have the address(es) added dynamically to the existing
80association.
81.Sh RETURN VALUES
82The call returns 0 on success and -1 upon failure.
83.Sh ERRORS
84The
85.Fn sctp_bindx
86function can return the following errors:
87.Bl -tag -width Er
88.It Bq Er EINVAL
89This value is returned if the
90.Fa type
91field is not one of the allowed values (see above).
92.It Bq Er ENOMEM
93This value is returned if the number of addresses
94being added causes a memory allocation failure in
95the call.
96.It Bq Er EBADF
97The argument
98.Fa s
99is not a valid descriptor.
100.It Bq Er ENOTSOCK
101The argument
102.Fa s
103is not a socket.
104.El
105.Sh SEE ALSO
106.Xr bind 2 ,
107.Xr sctp 4
108.Rs
109.%A R. Stewart
110.%A M. Tuexen
111.%A K. Poon
112.%A P. Lei
113.%A V. Yasevich
114.%T Sockets API Extensions for the Stream Control Transmission Protocol (SCTP)
115.%R RFC 6458
116.%D December 2011
117.Re
118.Sh STANDARDS
119The
120.Fn sctp_bindx
121function conforms to RFC 6458.
122