xref: /freebsd/share/man/man4/nvmf.4 (revision e0649a35a670c4b625d1de289b3886d9b3c9654f)
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