te
Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
SCTP_SENDMSG 3SOCKET "Aug 22, 2007"
NAME
sctp_sendmsg - send message from an SCTP socket
SYNOPSIS

cc [ flag... ] file... -lsocket  -lnsl   -lsctp  [ library... ]
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/sctp.h>

ssize_t sctp_sendmsg(int s, const void *msg, size_t len,
 const struct sockaddr *to, socklen_t tolen, uint32_t ppid,
 uint32_t flags, uint16_t stream_no, uint32_t timetolive,
 uint32_t context);
DESCRIPTION

The sctp_sendmsg() function sends a message from the SCTP endpoint s.

In addition to specifying msg as the message buffer and len as the length of the buffer, the following parameters can be set: to

Destination address

tolen

Length of the destination address

ppid

Application-specified payload protocol identifier

stream_no

Target stream for the message

timetolive

Time period in milliseconds after which the message expires if transmission for the message has not been started. A value of 0 indicates that the message does not expire. When the MSG_PR_SCTP flag is set the message expires, even if transmission has started, unless the entire message is transmitted within the timetolive period.

context

Value returned when an error occurs in sending a message

The flags parameter is formed from the bitwise OR of zero or more of the following flags: MSG_UNORDERED

This flag requests un-ordered delivery of the message. If this flag is clear the message is considered an ordered send.

MSG_ABORT

When set, this flag causes the specified association to abort by sending an ABORT to the peer. The flag is used only for one-to-many style SCTP socket associations.

MSG_EOF

When set, this flag invokes a graceful shutdown on a specified association. The flag is used only for one-to-many style SCTP socket associations.

MSG_PR_SCTP

This flag indicates that the message is treated as partially reliable. The message expires unless the entire message is successfully transmitted within the time period specified in the timetolive parameter. MSG_PR_SCTP implements timed reliability service for SCTP messages. As yet, no common standard has been defined for the service and the interface is considered unstable.

The initial call to sctp_sendmsg() can be used to create an association, but it cannot be used subsequently on an existing association. Since sctp_sendmsg() always uses 0 internally as the association ID, it is not suitable for use on one-to-many sockets.

RETURN VALUES

Upon successful completion, the sctp_sendmsg() function returns the number of bytes sent. The function returns -1 if an error occurs.

ERRORS

The sctp_sendmsg() function will fail if: EBADF

The s argument is an invalid file descriptor.

ENOTSOCK

The s argument is not a socket.

EOPNOTSUPP

MSG_OOB is set as a flag.

EOPNOTSUPP

MSG_ABORT or MSG_EOF is set on a one-to-one style SCTP socket.

EPIPE

The socket is shutting down and no more writes are allowed.

EAGAIN

The socket is non-blocking and the transmit queue is full.

ENOTCONN

There is no established association.

EINVAL

Control message length is incorrect.

EINVAL

Specified destination address does not belong to the association.

EAFNOSUPPORT

Address family of the specified destination address is other than AF_INET or AF_INET6.

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Committed
MT-Level Safe
SEE ALSO

accept(3SOCKET), bind(3SOCKET), connect(3SOCKET), in.h(3HEAD), libsctp(3LIB), listen(3SOCKET), sendmsg(3SOCKET), sockaddr(3SOCKET), socket(3SOCKET), socket.h(3HEAD), attributes(5), sctp(7P)