---
name: "nvmf"
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"
---

# nvmf(4)

NVM Express over Fabrics host driver

## NAME

**nvmf** – NVM Express over Fabrics host driver

## SYNOPSIS

To compile the driver into the kernel, place the following line in the kernel configuration file:

**device nvmf**

Alternatively, to load the driver as a module at boot time, place the following line in [loader.conf(5)](/loader.conf/5.md):

```
nvmf_load="YES"
```

## DESCRIPTION

The **nvmf** driver provides the kernel component of an NVM Express over Fabrics host. The NVMeoF host is the client which provides local access to namespaces exported by a remote controller.

Associations between the local host and remote controllers are managed using [nvmecontrol(8)](/nvmecontrol/8.md). New associations are created via the **connect** command and destroyed via the **disconnect** command. If an association's connection is interrupted, the **reconnect** command creates a new association to replace the interrupted association.

Similar to [nvme(4)](/nvme/4.md), **nvmf** creates controller device nodes using the format */dev/nvmeX* and namespace device nodes using the format */dev/nvmeXnsY*. **nvmf** also exports remote namespaces via the CAM [nda(4)](/nda/4.md) peripheral driver. Unlike [nvme(4)](/nvme/4.md), **nvmf** does not support the [nvd(4)](/nvd/4.md) disk driver.

Associations require a supported transport such as [nvmf\_tcp(4)](/nvmf_tcp/4.md) for associations using TCP/IP.

## SYSCTL VARIABLES

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

- *kern.nvmf.fail\_on\_disconnection*

  Determines the behavior when an association's connection is interrupted. By default, input/output operations are suspended while a host is disconnected. This includes operations pending at the time the association's connection was interrupted as well as new requests submitted while the host is disconnected. Once a new association is established, suspended I/O requests are retried. When set to 1, input/output operations fail with EIO while a host is disconnected and [nda(4)](/nda/4.md) peripherals are destroyed after the first failed I/O request. Note that any destroyed [nda(4)](/nda/4.md) peripherals will be recreated after a new association is established.

## SEE ALSO

[nda(4)](/nda/4.md), [nvme(4)](/nvme/4.md), [nvmf\_tcp(4)](/nvmf_tcp/4.md), [nvmft(4)](/nvmft/4.md), [nvmecontrol(8)](/nvmecontrol/8.md)

## HISTORY

The **nvmf** module first appeared in FreeBSD 15.0.

## AUTHORS

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