Hi Robert,

Thanks for your explanation, i don't have ideas about with send() work on freebsd and linux,
reading the man in linux and search per ENOBUFS,
FYI

---------
ENOBUFS
The output queue for a network interface was full. This generally indicates that the interface has stopped sending, but may be caused by transient congestion. (Normally, this does not occur in Linux. Packets are just
             silently dropped when a device queue overflows.)
---------


For measure network throughput you recommend netperf or iperf ? Or any other option ?


Thanks

Ricardo A. Reis
UNIFESP
Unix and Network Admin

write2 failed: No buffer space available

ENOBUFS is the error returned when a process is sending packets faster than the transmitting interface can actually transmit them. It occurs when the interface send queue fills, and the packet is dropped. As UDP is a lossy datagram protocol without flow control, your process doesn't block, but it does get back an error telling it that the packet could not be transmitted. I'm not sure how Linux behaves under the same conditions -- it could be there is silent drop (send returns 0, but the packet is dropped). If the application has been written without knowing that send() can fail for UDP, it might not know how to take that into account, and might exit/error out improperly.

Robert N M Watson

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to