Onload TCP 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_ACCEPTCONN
|
Determines whether the socket can accept incoming connections - true for
listening sockets. (Only valid as a getsockopt() ). |
SO_BINDTODEVICE
|
Bind this socket to a particular network interface. See SO_BINDTODEVICE. |
SO_CONNECT_TIME
|
Number of seconds a connection has been established. (Only valid as a getsockopt() ). |
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_KEEPALIVE
|
Enable sending of keep-alive messages on connection oriented sockets. |
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 close() or shutdown()
returns immediately and sockets are closed in the background. |
SO_OOBINLINE
|
Indicates that out-of-band data should be returned in-line with regular data. This option is only valid for connection-oriented protocols that support out-of-band data. |
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_TCP_RCVBUF overrides this value, and EF_TCP_RCVBUF_ESTABLISHED_DEFAULT can also override 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_RCVTIMEO
|
Sets the timeout for input function to complete. |
SO_RECVTIMEO
|
Sets the timeout in milliseconds for blocking receive calls. |
SO_REUSEADDR
|
Can reuse local port numbers (another socket can bind to the same port) except when there is an active listening socket bound to the port. |
SO_RESUSEPORT
|
Allows 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 This value can be overridden by EF_TCP_SNDBUF, EF_TCP_SNDBUF_MODE and EF_TCP_SNDBUF_ESTABLISHED_DEFAULT. When the EF_TCP_SNDBUF_MODE is set to 2, the SNDBUF size is automatically adjusted for each TCP socket to match the window advertised by the peer. |
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
|
Report timestamps from system clock in struct timeval. |
SO_TIMESTAMPNS
|
Report timestamps from system clock in struct timespec. |
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. |
SOF_TIMESTAMPING_OPT_CMSG
|
Deliver timestamps using the cmsg
API. |
ONLOAD_SOF_TIMESTAMPING_STREAM
|
Onload extension to the standard SO_TIMESTAMPING API to support hardware timestamps on TCP sockets. |
SO_TYPE
|
Returns the socket type (SOCK_STREAM or
SOCK_DGRAM ). (Only valid as a
getsockopt() ). |
IP_TRANSPARENT
|
This socket option allows the calling application to bind the socket to a nonlocal IP address. |