The tcp provider may be configured using several environment variables. A subset of supported variables
is defined below. For a full list, use the fi_info utility application. For example, `fi_info -g tcp'
will show all environment variables defined for the tcp provider.
FI_TCP_IFACE
A specific network interface can be requested with this variable
FI_TCP_PORT_LOW_RANGE/FI_TCP_PORT_HIGH_RANGE
These variables are used to set the range of ports to be used by the tcp provider for its passive
endpoint creation. This is useful where only a range of ports are allowed by firewall for tcp
connections.
FI_TCP_TX_SIZE
Transmit context size. This is the number of transmit requests that an application may post to
the provider before receiving -FI_EAGAIN. Default: 256 for msg endpoints, 64k for rdm.
FI_TCP_RX_SIZE
Receive context size. This is the number of receive buffers that the application may post to the
provider. Default: 256 for msg endpoints, 64k for rdm.
FI_TCP_MAX_INJECT
Maximum size of inject messages and the maximum size of an unexpected message that may be buffered
at the receiver. Default 128 bytes.
FI_TCP_STAGING_SBUF_SIZE
Size of buffer used to coalesce iovec’s or send requests before posting to the kernel. The stag‐
ing buffer is used when the socket is busy and cannot accept new data. In that case, the data can
be queued in the staging buffer until the socket resumes sending. This optimizes transfering a
series of back-to-back small messages to the same target. Default: 9000 bytes. Set to 0 to dis‐
able.
FI_TCP_PREFETCH_RBUF_SIZE
Size of the buffer used to prefetch received data from the kernel. When starting to receive a new
message, the provider will request that the kernel fill the prefetch buffer and process received
data from there. This reduces the number of kernel calls needed to receive a series of small mes‐
sages. Default: 9000 bytes. Set to 0 to disable.
FI_TCP_ZEROCOPY_SIZE
Lower threshold where zero copy transfers will be used, if supported by the platform, set to -1 to
disable. Default: disabled.
FI_TCP_TRACE_MSG
If enabled, will log transport message information on all sent and received messages. Must be
paired with FI_LOG_LEVEL=trace to print the message details.
FI_TCP_IO_URING
Uses io_uring for socket operations if available, rather than going through the standard socket
APIs (i.e. connect, accept, send, recv). Default: disabled.