multithtreaded datagram sockets No buffer space available

Sorry for double posting ! I didn’t realize i was on the wrong lane.

Hi all,

When sending data from different threads on different datagram sockets i get an ENOBUFS 255 /* No buffer space available */
after some time. Using a single thread on a single socket works ok.
The application is videostreaming, the datarate is high, 90 Mbit / 500Mbit per sec on FastE / GigE Hardware.
I’m running QNX6.4.1 and Intel Pro100 / Pro1000 Cards.
I increased the net.inet.udp.sendspace as much as i could with sysctl to 188000.
Anybody came across this or has any idea?

The error pretty much says it all, you are filling the buffers faster than they can be transmitted. Upon detecting the error you could simply try to retransmit the data. Try increasing buffer size of each socket with setsockopt and SO_SNDBUF

Or you could look at using jumbo frame to reduce overhead.

Thanks for your answer.
I’ll try your retry-Approach tomorrow.
I tried the setsockopt SO_SNDBUF already.
As of now i’m sending messages of 47290 bytes.
They get fragmented to some 1400 bytes frames anyway.
You are you sayin i can increase this to say 9000 bytes frames ?
I couldn’t find jumbo frames support in qnx!?

qnx.com/developers/docs/6.4. … html#Jumbo

Videostreaming is currently running thanks to your helpful comments.
6 Videostreams in parallel.
Intel Pro1000 GigE.
Jumbo Frames of 8200 bytes.

Approaches to run it on a Realtek Gigabit chip were unsuccessful.
No Jumbo Frame support.
ENOBUFS errors which couldn’t be recovered from, even not with retries or restarts,
it needed a restart of io-pkt.

Thanks again!