1.\" 2.\" SPDX-License-Identifier: BSD-2-Clause 3.\" 4.\" Copyright (c) 2024 Chelsio Communications, Inc. 5.\" 6.Dd June 5, 2024 7.Dt NVMF 4 8.Os 9.Sh NAME 10.Nm nvmf 11.Nd "NVM Express over Fabrics host driver" 12.Sh SYNOPSIS 13To compile the driver into the kernel, 14place the following line in the 15kernel configuration file: 16.Bd -ragged -offset indent 17.Cd "device nvmf" 18.Ed 19.Pp 20Alternatively, to load the driver as a 21module at boot time, place the following line in 22.Xr loader.conf 5 : 23.Bd -literal -offset indent 24nvmf_load="YES" 25.Ed 26.Sh DESCRIPTION 27The 28.Nm 29driver provides the kernel component of an NVM Express over Fabrics 30host. 31The NVMeoF host is the client which provides local access to 32namespaces exported by a remote controller. 33.Pp 34Associations between the local host and remote controllers are managed 35using 36.Xr nvmecontrol 8 . 37New associations are created via the 38.Cm connect 39command and destroyed via the 40.Cm disconnect 41command. 42If an association's connection is interrupted, 43the 44.Cm reconnect 45command creates a new association to replace the interrupted association. 46.Pp 47Similar to 48.Xr nvme 4 , 49.Nm 50creates controller device nodes using the format 51.Pa /dev/nvmeX 52and namespace device nodes using the format 53.Pa /dev/nvmeXnsY . 54.Nm 55also exports remote namespaces via the CAM 56.Xr nda 4 57peripheral driver. 58Unlike 59.Xr nvme 4 , 60.Nm 61does not support the 62.Xr nvd 4 63disk driver. 64.Pp 65Associations require a supported transport such as 66.Xr nvmf_tcp 4 67for associations using TCP/IP. 68.Sh SYSCTL VARIABLES 69The following variables are available as both 70.Xr sysctl 8 71variables and 72.Xr loader 8 73tunables: 74.Bl -tag -width indent 75.It Va kern.nvmf.fail_on_disconnection 76Determines the behavior when an association's connection is interrupted. 77By default, input/output operations are suspended while a host is disconnected. 78This includes operations pending at the time the association's connection was 79interrupted as well as new requests submitted while the host is disconnected. 80Once a new association is established, suspended I/O requests are retried. 81When set to 1, input/output operations fail with 82.Er EIO 83while a host is disconnected and 84.Xr nda 4 85peripherals are destroyed after the first failed I/O request. 86Note that any destroyed 87.Xr nda 4 88peripherals will be recreated after a new association is established. 89.El 90.Sh SEE ALSO 91.Xr nda 4 , 92.Xr nvme 4 , 93.Xr nvmf_tcp 4 , 94.Xr nvmft 4 , 95.Xr nvmecontrol 8 96.Sh HISTORY 97The 98.Nm 99module first appeared in 100.Fx 15.0 . 101.Sh AUTHORS 102The 103.Nm 104driver was developed by 105.An John Baldwin Aq Mt jhb@FreeBSD.org 106under sponsorship from Chelsio Communications, Inc. 107.Sh BUGS 108.Nm 109only supports a single I/O queue pair per association. 110