xref: /freebsd/share/man/man4/nvmf_che.4 (revision e2b8be511e9064de29a847e7c1cfc9200e69394b)
1.\"
2.\" SPDX-License-Identifier: BSD-2-Clause
3.\"
4.\" Copyright (c) 2025 Chelsio Communications, Inc.
5.\"
6.Dd November 14, 2025
7.Dt NVMF_CHE 4
8.Os
9.Sh NAME
10.Nm nvmf_che
11.Nd TCP transport for NVM Express over Fabrics on Chelsio NICs
12.Sh SYNOPSIS
13In
14.Xr loader.conf 5 :
15.Bd -literal -offset indent
16nvmf_che_load="YES"
17.Ed
18.Sh DESCRIPTION
19The
20.Nm
21module implements the a TCP/IP transport for NVM Express over Fabrics
22using PDU offload on Chelsio T7 adapters.
23It can be used by either the in-kernel NVMeoF host driver or controller.
24In order to use PDU offload,
25the initial socket connection must be using the TCP offload engine (TOE)
26on a supported network interface.
27In addition,
28controller connections must negotiate a suitable
29.Dv MAXH2CDATA
30limit to ensure that received PDUs do not exceeed the maximum size
31supported by the adapter.
32.Sh SYSCTL VARIABLES
33The following variables are available as both
34.Xr sysctl 8
35variables and
36.Xr loader 8
37tunables:
38.Bl -tag -width indent
39.It Va kern.nvmf.che.max_transmit_pdu
40The maximum size of a transmitted PDU including all headers, payload,
41and checksums.
42This is an upper limit enforced when queues are created.
43Individual adapters may empose a smaller limit.
44The default size is 32 kilobytes.
45.It Va kern.nvmf.che.max_receive_pdu
46As above, but for received PDUs.
47.It Va kern.nvmf.che.use_dsgl
48Enable the use of a S/G list for large writes into adapter memory when
49writing control structures for DDP (not used for PDU payload data).
50S/G lists are enabled by default.
51.It Va kern.nvmf.che.inline_threshold
52Writes of control structures into adapter memory use a S/G list instead
53of immediate data placed in work requests.
54The default threshold is 256 bytes.
55.It Va kern.nvmf.che.ddp_tags_per_qp
56The number of STAGs reserved for use by DDP buffers for each queue pair.
57Each command sent on a queue that requests data from the remote peer can
58use DDP to place received data directly into the associated data buffer.
59Each buffer requires a STAG to enable DDP.
60If an STAG is not available when command requesting remote data is sent,
61the data will be received in free list buffers and copied into the data
62buffer by the driver instead.
63The default size is 256 kilobytes.
64.El
65.Sh SEE ALSO
66.Xr cxgbe 4 ,
67.Xr nvmf 4 ,
68.Xr nvmf_tcp 4 ,
69.Xr nvmft 4
70.Sh HISTORY
71The
72.Nm
73module first appeared in
74.Fx 16.0 .
75.Sh AUTHORS
76The
77.Nm
78module was developed by
79.An John Baldwin Aq Mt jhb@FreeBSD.org
80under sponsorship from Chelsio Communications, Inc.
81