1*a15f7c96SJohn Baldwin.\" 2*a15f7c96SJohn Baldwin.\" SPDX-License-Identifier: BSD-2-Clause 3*a15f7c96SJohn Baldwin.\" 4*a15f7c96SJohn Baldwin.\" Copyright (c) 2024 Chelsio Communications, Inc. 5*a15f7c96SJohn Baldwin.\" 6*a15f7c96SJohn Baldwin.Dd May 2, 2024 7*a15f7c96SJohn Baldwin.Dt NVMFT 4 8*a15f7c96SJohn Baldwin.Os 9*a15f7c96SJohn Baldwin.Sh NAME 10*a15f7c96SJohn Baldwin.Nm nvmft 11*a15f7c96SJohn Baldwin.Nd "NVM Express over Fabrics CAM Target Layer frontend" 12*a15f7c96SJohn Baldwin.Sh SYNOPSIS 13*a15f7c96SJohn BaldwinTo compile the subsystem into the kernel, 14*a15f7c96SJohn Baldwinplace the following lines in the 15*a15f7c96SJohn Baldwinkernel configuration file: 16*a15f7c96SJohn Baldwin.Bd -ragged -offset indent 17*a15f7c96SJohn Baldwin.Cd "device nvmft" 18*a15f7c96SJohn Baldwin.Cd "device ctl" 19*a15f7c96SJohn Baldwin.Ed 20*a15f7c96SJohn Baldwin.Pp 21*a15f7c96SJohn BaldwinAlternatively, to load the subsystem as a 22*a15f7c96SJohn Baldwinmodule at boot time, place the following line in 23*a15f7c96SJohn Baldwin.Xr loader.conf 5 : 24*a15f7c96SJohn Baldwin.Bd -literal -offset indent 25*a15f7c96SJohn Baldwinnvmft_load="YES" 26*a15f7c96SJohn Baldwin.Ed 27*a15f7c96SJohn Baldwin.Sh DESCRIPTION 28*a15f7c96SJohn BaldwinThe 29*a15f7c96SJohn Baldwin.Nm 30*a15f7c96SJohn Baldwindriver provides the kernel component of an NVM Express over Fabrics 31*a15f7c96SJohn Baldwincontroller. 32*a15f7c96SJohn BaldwinThe NVMeoF controller is the server exporting namespaces backed by 33*a15f7c96SJohn Baldwinlocal files and volumes to remote hosts. 34*a15f7c96SJohn Baldwin.Nm 35*a15f7c96SJohn Baldwinfollows the dynamic controller model and creates a new dynamic controller 36*a15f7c96SJohn Baldwinfor each association. 37*a15f7c96SJohn Baldwin.Pp 38*a15f7c96SJohn Baldwin.Nm 39*a15f7c96SJohn Baldwinis implemented as a 40*a15f7c96SJohn Baldwin.Xr ctl 4 41*a15f7c96SJohn Baldwinfrontend and exports CAM Target Layer LUNs as namespaces to remote hosts. 42*a15f7c96SJohn BaldwinLUNs can be configured via 43*a15f7c96SJohn Baldwin.Xr ctladm 8 . 44*a15f7c96SJohn Baldwin.Pp 45*a15f7c96SJohn BaldwinAssociations between the local controller and remote hosts are managed 46*a15f7c96SJohn Baldwinusing both the 47*a15f7c96SJohn Baldwin.Xr nvmfd 8 48*a15f7c96SJohn Baldwindaemon and the 49*a15f7c96SJohn Baldwin.Xr ctladm 8 50*a15f7c96SJohn Baldwinutility. 51*a15f7c96SJohn BaldwinThe 52*a15f7c96SJohn Baldwin.Xr nvmfd 8 53*a15f7c96SJohn Baldwindaemon listens for new associations and handles transport-specific 54*a15f7c96SJohn Baldwinnegotiation before handing off connected queue pairs to 55*a15f7c96SJohn Baldwin.Nm 56*a15f7c96SJohn Baldwinwhich associates queue pairs with a suitable controller instance. 57*a15f7c96SJohn BaldwinThe 58*a15f7c96SJohn Baldwin.Cm nvlist 59*a15f7c96SJohn Baldwin.Xr ctladm 8 60*a15f7c96SJohn Baldwincommand lists active controllers. 61*a15f7c96SJohn BaldwinThe 62*a15f7c96SJohn Baldwin.Cm nvterminate 63*a15f7c96SJohn Baldwincommand terminates one or more associations between a local controller 64*a15f7c96SJohn Baldwinand a remote host. 65*a15f7c96SJohn Baldwin.Pp 66*a15f7c96SJohn BaldwinAssociations require a supported transport such as 67*a15f7c96SJohn Baldwin.Xr nvmf_tcp 4 68*a15f7c96SJohn Baldwinfor associations using TCP/IP. 69*a15f7c96SJohn Baldwin.Sh SEE ALSO 70*a15f7c96SJohn Baldwin.Xr ctl 4 , 71*a15f7c96SJohn Baldwin.Xr nvmf 4 , 72*a15f7c96SJohn Baldwin.Xr nvmf_tcp 4 , 73*a15f7c96SJohn Baldwin.Xr ctladm 8 , 74*a15f7c96SJohn Baldwin.Xr nvmfd 8 75*a15f7c96SJohn Baldwin.Sh HISTORY 76*a15f7c96SJohn BaldwinThe 77*a15f7c96SJohn Baldwin.Nm 78*a15f7c96SJohn Baldwinmodule first appeared in 79*a15f7c96SJohn Baldwin.Fx 15.0 . 80*a15f7c96SJohn Baldwin.Sh AUTHORS 81*a15f7c96SJohn BaldwinThe 82*a15f7c96SJohn Baldwin.Nm 83*a15f7c96SJohn Baldwinsubsystem was developed by 84*a15f7c96SJohn Baldwin.An John Baldwin Aq Mt jhb@FreeBSD.org 85*a15f7c96SJohn Baldwinunder sponsorship from Chelsio Communications, Inc. 86