First of all, thanks for reading my question. I sincerely apologizes if this question is out of topic.

We made a simple experiment, with disconcerting outcome:
- We establishe a one-to-one style SCTP association, with output and input buffer set at 20MB (it is just a test).
- Then we send a burst of 400KB: 100 messages of 4096 bytes each.

Our surprise was that some of these send reported that the socket was not writable.

If we do not test the socket with select() to know if it is writable previous to call sendmsg(), the behaviour is as expected: EWOULDBLOCK is returned only after sending sufficient messages to fill the send buffer.