.. SPDX-License-Identifier: GPL-2.0

==========
SMC Sysctl
==========

/proc/sys/net/smc/* Variables
=============================

autocorking_size - INTEGER
	Setting SMC auto corking size:
	SMC auto corking is like TCP auto corking from the application's
	perspective of view. When applications do consecutive small
	write()/sendmsg() system calls, we try to coalesce these small writes
	as much as possible, to lower total amount of CDC and RDMA Write been
	sent.
	autocorking_size limits the maximum corked bytes that can be sent to
	the under device in 1 single sending. If set to 0, the SMC auto corking
	is disabled.
	Applications can still use TCP_CORK for optimal behavior when they
	know how/when to uncork their sockets.

	Default: 64K

smcr_buf_type - INTEGER
	Controls which type of sndbufs and RMBs to use in later newly created
	SMC-R link group. Only for SMC-R.

	Default: 0 (physically contiguous sndbufs and RMBs)

	Possible values:

	- 0 - Use physically contiguous buffers
	- 1 - Use virtually contiguous buffers
	- 2 - Mixed use of the two types. Try physically contiguous buffers first.
	  If not available, use virtually contiguous buffers then.

smcr_testlink_time - INTEGER
	How frequently SMC-R link sends out TEST_LINK LLC messages to confirm
	viability, after the last activity of connections on it. Value 0 means
	disabling TEST_LINK.

	Default: 30 seconds.

wmem - INTEGER
	Initial size of send buffer used by SMC sockets.

	The minimum value is 16KiB and there is no hard limit for max value, but
	only allowed 512KiB for SMC-R and 1MiB for SMC-D.

	Default: 64KiB

rmem - INTEGER
	Initial size of receive buffer (RMB) used by SMC sockets.

	The minimum value is 16KiB and there is no hard limit for max value, but
	only allowed 512KiB for SMC-R and 1MiB for SMC-D.

	Default: 64KiB

smcr_max_links_per_lgr - INTEGER
	Controls the max number of links can be added to a SMC-R link group. Notice that
	the actual number of the links added to a SMC-R link group depends on the number
	of RDMA devices exist in the system. The acceptable value ranges from 1 to 2. Only
	for SMC-R v2.1 and later.

	Default: 2

smcr_max_conns_per_lgr - INTEGER
	Controls the max number of connections can be added to a SMC-R link group. The
	acceptable value ranges from 16 to 255. Only for SMC-R v2.1 and later.

	Default: 255

smcr_max_send_wr - INTEGER
	So-called work request buffers are SMCR link (and RDMA queue pair) level
	resources necessary for performing RDMA operations. Since up to 255
	connections can share a link group and thus also a link and the number
	of the work request buffers is decided when the link is allocated,
	depending on the workload it can be a bottleneck in a sense that threads
	have to wait for work request buffers to become available. Before the
	introduction of this control the maximal number of work request buffers
	available on the send path used to be hard coded to 16. With this control
	it becomes configurable. The acceptable range is between 2 and 2048.

	Please be aware that all the buffers need to be allocated as a physically
	continuous array in which each element is a single buffer and has the size
	of SMC_WR_BUF_SIZE (48) bytes. If the allocation fails, we keep retrying
	with half of the buffer count until it is either successful or (unlikely)
	we dip below the old hard coded value which is 16 where we give up much
	like before having this control.

	Default: 16

smcr_max_recv_wr - INTEGER
	So-called work request buffers are SMCR link (and RDMA queue pair) level
	resources necessary for performing RDMA operations. Since up to 255
	connections can share a link group and thus also a link and the number
	of the work request buffers is decided when the link is allocated,
	depending on the workload it can be a bottleneck in a sense that threads
	have to wait for work request buffers to become available. Before the
	introduction of this control the maximal number of work request buffers
	available on the receive path used to be hard coded to 48. With this control
	it becomes configurable. The acceptable range is between 2 and 2048.

	Please be aware that all the buffers need to be allocated as a physically
	continuous array in which each element is a single buffer and has the size
	of SMC_WR_BUF_SIZE (48) bytes. If the allocation fails, we keep retrying
	with half of the buffer count until it is either successful or (unlikely)
	we dip below the old hard coded value which is 48 where we give up much
	like before having this control.

	Default: 48

limit_smc_hs - INTEGER
	Whether to limit SMC handshake for newly created sockets.

	When enabled, SMC listen path applies handshake limitation based on
	handshake worker congestion and queued SMC handshake load.

	Possible values:

	- 0 - Disable handshake limitation
	- 1 - Enable handshake limitation

	Default: 0 (disable)

hs_ctrl - STRING
	Select the SMC handshake control profile by name.

	This string refers to the name of a user-implemented
	BPF struct_ops instance of type smc_hs_ctrl.

	The selected profile controls whether SMC options are advertised
	during TCP SYN/SYN-ACK handshake.

	Only available when CONFIG_SMC_HS_CTRL_BPF is enabled.
	Write an empty string to clear the current profile.

	Default: empty string
