I think you want 'man 3 sctp_sendmsg' [1] and one of the flags supported there... namely SCTP_UNORDERED. SCTP_ADDR_OVER, SCTP_ABORT, SCTP_EOF See also [2] which I'm guessing is relevant to what you're /trying/ to achieve. Cheers, malc. [1] https://linux.die.net/man/3/sctp_sendmsg [2] https://sourceforge.net/p/lksctp/mailman/message/11557899/ On Sun, Jun 16, 2019 at 2:40 PM Elmar Stellnberger <estellnb@xxxxxxxxxx> wrote: > > While sctp_send works well at me, sctp_sendmsg gives me an EINVAL as > soon as I pass in some flags. Nonetheless it still sends the message in > spite of returning the EINVAL. That looks like an error to me. Please > investigate the issue. > > while( len > 0 && ( ( ret = sctp_sendmsg( sid, bufp, len, NULL, 0, 0, > MSG_NOSIGNAL, (0), 1000, 0 ) ) >= 0 || ( ret==-1 && ( errno == EINTR || > errno == ENOBUFS ) ) ) ) { // returns EINVAL if flags are passed > if( ret >= 0 ) { bufp += ret; len -= ret; } else if( errno == > ENOBUFS ) { struct timespec ts; ts.tv_sec=0; ts.tv_nsec=10000; > nanosleep(&ts,NULL); } } > if( ret == -1 ) perror ("error sending request to stream #(0)"); > > If you should be interested I can send the whole sctp test client > program. > > > > > >