---
name: "sctp_bindx"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/sctp_bindx"
---

# sctp\_bindx(3)

bind or unbind an SCTP socket to a list of addresses

## NAME

**sctp\_bindx** – bind or unbind an SCTP socket to a list of addresses

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<sys/types.h\>**

**#include \<sys/socket.h\>**

**#include \<netinet/sctp.h\>**

*int*\

**sctp\_bindx**(*int s*, *struct sockaddr \*addrs*, *int num*, *int type*);

## DESCRIPTION

The **sctp\_bindx**() call binds or unbinds a address or a list of addresses to an SCTP endpoint. This allows a user to bind a subset of addresses. The **sctp\_bindx**() call operates similarly to **bind**() but allows a list of addresses and also allows a bind or an unbind. The argument *s* must be a valid SCTP socket descriptor. The argument *addrs* is a list of addresses (where the list may be only 1 in length) that the user wishes to bind or unbind to the socket. The argument *type* must be one of the following values.

SCTP\_BINDX\_ADD\_ADDR This value indicates that the listed address(es) need to be added to the endpoint.

SCTP\_BINDX\_REM\_ADDR This value indicates that the listed address(es) need to be removed from the endpoint.

Note that when a user adds or deletes an address to an association if the dynamic address flag *net.inet.sctp.auto\_asconf* is enabled any associations in the endpoint will attempt to have the address(es) added dynamically to the existing association.

## RETURN VALUES

The call returns 0 on success and -1 upon failure.

## ERRORS

The **sctp\_bindx**() function can return the following errors:

- \[EINVAL\]

  This value is returned if the *type* field is not one of the allowed values (see above).

- \[ENOMEM\]

  This value is returned if the number of addresses being added causes a memory allocation failure in the call.

- \[EBADF\]

  The argument *s* is not a valid descriptor.

- \[ENOTSOCK\]

  The argument *s* is not a socket.

## SEE ALSO

[bind(2)](/bind/2.md), [sctp(4)](/sctp/4.md) R. Stewart, M. Tuexen, K. Poon, P. Lei, and V. Yasevich, *Sockets API Extensions for the Stream Control Transmission Protocol (SCTP)*, RFC 6458, December 2011.

## STANDARDS

The **sctp\_bindx**() function conforms to RFC 6458.
