Return values in sendto() manpage says:

     [ENOBUFS]          The system was unable to allocate an internal buffer.
                        The operation may succeed when buffers become avail-
                        able.

     [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 con-
                        gestion.

If I hit the first condition, it should reflect as failures in
"netstat -m". Is that a correct assumption?

I want to understand what happens when/if we hit the second condition.
And how to prevent that from happening.
Is it just application's job to rate-limit data it sends to the n/w
interface card so that it doesn't saturate?
Does kernel do any sort of queuing in the case of ENOBUFS? OR does the
message just gets dropped?

For an application sending a lot of UDP data and returning ENOBUFS,
what all udp and other tunables I should tweak? I can only think of:
- number of tx ring descriptors - increasing this will get us more txds.
- kern.ipc.maxsockbuf:  Increasing this will increase buffer size
allocated for sockets.

what else?

Any comments/suggestions/corrections?

cheers,
Hiren
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to