sctp_recvv(3) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | SEE ALSO | COLOPHON

SCTP_RECVV(3)                     Linux                    SCTP_RECVV(3)

NAME         top

       sctp_recvv - Receive a message from a SCTP socket with an
       extensible way.

SYNOPSIS         top

       #include <sys/types.h>
       #include <sys/socket.h>
       #include <netinet/sctp.h>

       int sctp_recvv(int sd, const struct iovec * iov, int iovlen,
                      struct sockaddr * from, socklen_t * fromlen, void * info,
                      socklen_t * infolen, unsigned int * infotype, int * flags);

DESCRIPTION         top

       sctp_recvv provides an extensible way for the SCTP stack to pass
       up different SCTP attributes associated with a received message
       to an application.  There are two types of attributes that can be
       returned by this call: the attribute of the received message and
       the attribute of the next message in the receive buffer.  The
       caller enables the SCTP_RECVRCVINFO and SCTP_RECVNXTINFO socket
       options, respectively, to receive these attributes.  Attributes
       of the received message are returned in struct sctp_rcvinfo, and
       attributes of the next message are returned in struct
       sctp_nxtinfo.  If both options are enabled, both attributes are
       returned using the following structure.

          struct sctp_recvv_rn {
            struct sctp_rcvinfo recvv_rcvinfo;
            struct sctp_nxtinfo recvv_nxtinfo;
          };

       sd is the socket descriptor.  iov is the scatter buffer, and only
       one user message is returned in this buffer.  iovlen is the
       number of elements in iov.  from is a pointer to a buffer to be
       filled with the sender of the received message's address.
       fromlen is an in/out parameter describing the from length.  info
       is a pointer to the buffer to hold the attributes of the received
       message, the structure type of info is determined by the
       info_type parameter.  infolen is an in/out parameter describing
       the size of the info buffer.  On return, infotype is set to the
       type of the info buffer, and the current defined values are as
       follows:

       SCTP_RECVV_NOINFO
              If neither SCTP_RECVRCVINFO nor SCTP_RECVNXTINFO options
              are enabled, no attribute will be returned.  If only the
              SCTP_RECVNXTINFO option is enabled but there is no next
              message in the buffer, no attribute will be returned.  In
              these cases, *info_type will be set to SCTP_RECVV_NOINFO.

       SCTP_RECVV_RCVINFO
              The type of info is struct sctp_rcvinfo, and the attribute
              relates to the received message.

       SCTP_RECVV_NXTINFO
              The type of info is struct sctp_nxtinfo, and the attribute
              relates to the next message in the receive buffer.  This
              is the case when only the SCTP_RECVNXTINFO option is
              enabled and there is a next message in the buffer.

       SCTP_RECVV_RN
              The type of info is struct sctp_recvv_rn.  The
              recvv_rcvinfo field is the attribute of the received
              message, and the recvv_nxtinfo field is the attribute of
              the next message in the buffer.  This is the case when
              both SCTP_RECVRCVINFO and SCTP_RECVNXTINFO options are
              enabled and there is a next message in the receive buffer.

       flags is pointer to an integer to be filled with any message
       flags (e.g., MSG_NOTIFICATION).

RETURN VALUE         top

       On success, sctp_recvv returns the number of bytes received or -1
       if an error occurred.

SEE ALSO         top

       sctp(7) sctp_bindx(3), sctp_connectx(3), sctp_sendmsg(3),
       sctp_sendv(3), sctp_send(3), sctp_peeloff(3), sctp_getpaddrs(3),
       sctp_getladdrs(3), sctp_opt_info(3)

COLOPHON         top

       This page is part of the lksctp-tools (Linux kernel SCTP tools)
       project.  Information about the project can be found at [unknown
       -- if you know, please contact man-pages@man7.org] If you have a
       bug report for this manual page, send it to sctp@vger.kernel.org.
       This page was obtained from the project's upstream Git repository
       ⟨https://github.com/sctp/lksctp-tools.git⟩ on 2023-12-22.  (At
       that time, the date of the most recent commit that was found in
       the repository was 2023-04-04.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there
       is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to
       man-pages@man7.org

Linux 4.16                     2018-04-29                  SCTP_RECVV(3)

Pages that refer to this page: sctp_bindx(3)sctp_connectx(3)sctp_getladdrs(3)sctp_getpaddrs(3)sctp_opt_info(3)sctp_peeloff(3)sctp_send(3)sctp_sendmsg(3)sctp_sendv(3)sctp(7)