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 
       ⟨http://lksctp.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
       ⟨git://github.com/sctp/lksctp-tools.git⟩ on 2019-07-28.  (At that
       time, the date of the most recent commit that was found in the repos‐
       itory was 2019-05-02.)  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)