Onload UDP supports the following socket options which can be used in the setsockopt()
and getsockopt()
function calls.
Option | Description |
---|---|
SO_PROTOCOL
|
Retrieve the socket protocol as an integer. |
SO_BINDTODEVICE
|
bind this socket to a particular network interface. See SO_BINDTODEVICE. |
SO_BROADCAST
|
When enabled datagram sockets can send and receive packets to/from a broadcast address. |
SO_DEBUG
|
Enable protocol debugging. |
SO_ERROR
|
The errno value of the last error occurring on the socket. (Only valid as a
getsockopt() ). |
SO_EXCLUSIVEADDRUSE
|
Prevents other sockets using the SO_REUSEADDR option to bind to the same address and port. |
SO_LINGER
|
When enabled a close() or shutdown() will not return until all queued
messages for the socket have been successfully sent or the linger
timeout has been reached. Otherwise the call returns immediately and
sockets are closed in the background. |
SO_PRIORITY
|
Set the priority for all packets sent on this socket. Packets with a higher priority might be processed first depending on the selected device queuing discipline. |
SO_RCVBUF
|
Sets or gets the maximum socket receive buffer in bytes. EF_UDP_RCVBUF overrides this value. Setting SO_RCVBUF to a value < MTU can result in poorer performance and is not recommended. |
SO_RCVLOWAT
|
Sets the minimum number of bytes to process for socket input operations. |
SO_RECVTIMEO
|
Sets the timeout for input function to complete. |
SO_REUSEADDR
|
Can reuse local ports (another socket can bind to the same port number) except when there is an active listening socket bound to the port. |
SO_RESUSEPORT
|
Allow multiple sockets to bind to the same port. |
SO_SNDBUF
|
Sets or gets the maximum socket send buffer in bytes. The value set
is doubled by the kernel and by Onload to allow for bookkeeping overhead when it is
set by the EF_UDP_SNDBUF overrides this value. |
SO_SNDLOWAT
|
Sets the minimum number of bytes to process for socket output operations. Always set to 1 byte. |
SO_SNDTIMEO
|
Set the timeout for sending function to send before reporting an error. |
SO_TIMESTAMP
|
Enable or disable receiving the SO_TIMESTAMP
control message (microsecond resolution). See below. |
SO_TIMESTAMPNS
|
Enable or disable receiving the SO_TIMESTAMP
control message (nanosecond resolution). |
SO_TIMESTAMPING
|
Enable/disable hardware timestamps for received packets. |
SOF_TIMESTAMPING_TX_HARDWARE
|
obtain a hardware generated transmit timestamp. |
SOF_TIMESTAMPING_SYS_HARDWARE
|
Obtain a hardware transmit timestamp adjusted to the system time base. |
SO_TYPE
|
Returns the socket type (SOCK_STREAM or
SOCK_DGRAM ). (Only valid as a
getsockopt() ). |