freebsd-src/share/man/man4/nvmft.4
John Baldwin a15f7c96a2 nvmft: The in-kernel NVMe over Fabrics controller
This is the server (target in SCSI terms) for NVMe over Fabrics.
Userland is responsible for accepting a new queue pair and receiving
the initial Connect command before handing the queue pair off via an
ioctl to this CTL frontend.

This frontend exposes CTL LUNs as NVMe namespaces to remote hosts.
Users can ask LUNS to CTL that can be shared via either iSCSI or
NVMeoF.

Reviewed by:	imp
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D44726
2024-05-02 16:38:30 -07:00

86 lines
1.9 KiB
Groff

.\"
.\" SPDX-License-Identifier: BSD-2-Clause
.\"
.\" Copyright (c) 2024 Chelsio Communications, Inc.
.\"
.Dd May 2, 2024
.Dt NVMFT 4
.Os
.Sh NAME
.Nm nvmft
.Nd "NVM Express over Fabrics CAM Target Layer frontend"
.Sh SYNOPSIS
To compile the subsystem into the kernel,
place the following lines in the
kernel configuration file:
.Bd -ragged -offset indent
.Cd "device nvmft"
.Cd "device ctl"
.Ed
.Pp
Alternatively, to load the subsystem as a
module at boot time, place the following line in
.Xr loader.conf 5 :
.Bd -literal -offset indent
nvmft_load="YES"
.Ed
.Sh DESCRIPTION
The
.Nm
driver provides the kernel component of an NVM Express over Fabrics
controller.
The NVMeoF controller is the server exporting namespaces backed by
local files and volumes to remote hosts.
.Nm
follows the dynamic controller model and creates a new dynamic controller
for each association.
.Pp
.Nm
is implemented as a
.Xr ctl 4
frontend and exports CAM Target Layer LUNs as namespaces to remote hosts.
LUNs can be configured via
.Xr ctladm 8 .
.Pp
Associations between the local controller and remote hosts are managed
using both the
.Xr nvmfd 8
daemon and the
.Xr ctladm 8
utility.
The
.Xr nvmfd 8
daemon listens for new associations and handles transport-specific
negotiation before handing off connected queue pairs to
.Nm
which associates queue pairs with a suitable controller instance.
The
.Cm nvlist
.Xr ctladm 8
command lists active controllers.
The
.Cm nvterminate
command terminates one or more associations between a local controller
and a remote host.
.Pp
Associations require a supported transport such as
.Xr nvmf_tcp 4
for associations using TCP/IP.
.Sh SEE ALSO
.Xr ctl 4 ,
.Xr nvmf 4 ,
.Xr nvmf_tcp 4 ,
.Xr ctladm 8 ,
.Xr nvmfd 8
.Sh HISTORY
The
.Nm
module first appeared in
.Fx 15.0 .
.Sh AUTHORS
The
.Nm
subsystem was developed by
.An John Baldwin Aq Mt jhb@FreeBSD.org
under sponsorship from Chelsio Communications, Inc.