---
name: "nvmf_che"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/nvmf_che"
---

# nvmf\_che(4)

TCP transport for NVM Express over Fabrics on Chelsio NICs

## NAME

**nvmf\_che** – TCP transport for NVM Express over Fabrics on Chelsio NICs

## SYNOPSIS

In [loader.conf(5)](/loader.conf/5.md):

```
nvmf_che_load="YES"
```

## DESCRIPTION

The **nvmf\_che** module implements the a TCP/IP transport for NVM Express over Fabrics using PDU offload on Chelsio T7 adapters. It can be used by either the in-kernel NVMeoF host driver or controller. In order to use PDU offload, the initial socket connection must be using the TCP offload engine (TOE) on a supported network interface. In addition, controller connections must negotiate a suitable MAXH2CDATA limit to ensure that received PDUs do not exceeed the maximum size supported by the adapter.

## SYSCTL VARIABLES

The following variables are available as both [sysctl(8)](/sysctl/8.md) variables and [loader(8)](/loader/8.md) tunables:

- *kern.nvmf.che.max\_transmit\_pdu*

  The maximum size of a transmitted PDU including all headers, payload, and checksums. This is an upper limit enforced when queues are created. Individual adapters may empose a smaller limit. The default size is 32 kilobytes.

- *kern.nvmf.che.max\_receive\_pdu*

  As above, but for received PDUs.

- *kern.nvmf.che.use\_dsgl*

  Enable the use of a S/G list for large writes into adapter memory when writing control structures for DDP (not used for PDU payload data). S/G lists are enabled by default.

- *kern.nvmf.che.inline\_threshold*

  Writes of control structures into adapter memory use a S/G list instead of immediate data placed in work requests. The default threshold is 256 bytes.

- *kern.nvmf.che.ddp\_tags\_per\_qp*

  The number of STAGs reserved for use by DDP buffers for each queue pair. Each command sent on a queue that requests data from the remote peer can use DDP to place received data directly into the associated data buffer. Each buffer requires a STAG to enable DDP. If an STAG is not available when command requesting remote data is sent, the data will be received in free list buffers and copied into the data buffer by the driver instead. The default size is 256 kilobytes.

## SEE ALSO

[cxgbe(4)](/cxgbe/4.md), [nvmf(4)](/nvmf/4.md), [nvmf\_tcp(4)](/nvmf_tcp/4.md), [nvmft(4)](/nvmft/4.md)

## HISTORY

The **nvmf\_che** module first appeared in FreeBSD 16.0.

## AUTHORS

The **nvmf\_che** module was developed by John Baldwin ⟨*jhb@FreeBSD.org*⟩ under sponsorship from Chelsio Communications, Inc.
