.\" .\" SPDX-License-Identifier: BSD-2-Clause .\" .\" Copyright (c) 2024 Chelsio Communications, Inc. .\" .Dd May 2, 2024 .Dt NVMFD 8 .Os .Sh NAME .Nm nvmfd .Nd "NVMeoF controller daemon" .Sh SYNOPSIS .Nm .Fl K .Op Fl dFGg .Op Fl P Ar port .Op Fl p Ar port .Op Fl t Ar transport .Op Fl n Ar subnqn .Nm .Op Fl dFGg .Op Fl P Ar port .Op Fl p Ar port .Op Fl t Ar transport .Op Fl n Ar subnqn .Ar device .Op Ar device ... .Sh DESCRIPTION .Nm accepts incoming NVMeoF connections for both I/O and discovery controllers. .Nm can either implement a single dynamic I/O controller in user mode or hand off incoming I/O controller connections to .Xr nvmft 4 . A dynamic discovery controller service is always provided in user mode. .Pp The following options are available: .Bl -tag -width "-t transport" .It Fl F Permit remote hosts to disable SQ flow control. .It Fl G Permit remote hosts to enable PDU data digests for the TCP transport. .It Fl g Permit remote hosts to enable PDU header digests for the TCP transport. .It Fl K Enable kernel mode which hands off incoming I/O controller connections to .Xr nvmft 4 . .It Fl P Ar port Use .Ar port as the listen TCP port for the discovery controller service. The default value is 8009. .It Fl d Enable debug mode. The daemon sends any errors to standard output and does not place itself in the background. .It Fl p Ar port Use .Ar port as the listen TCP port for the I/O controller service. By default an unused ephemeral port will be chosen. .It Fl n Ar subnqn The Subsystem NVMe Qualified Name for the I/O controller. If an explicit NQN is not given, a default value is generated from the current host's UUID obtained from the .Vt kern.hostuuid sysctl. .It Fl t Ar transport The transport type to use. The default transport is .Dq tcp . .It Ar device When implementing a user mode I/O controller, one or more .Ar device arguments must be specified. Each .Ar device describes the backing store for a namespace exported to remote hosts. Devices can be specified using one of the following syntaxes: .Bl -tag -width "ramdisk:size" .It Pa pathname File or disk device .It ramdisk : Ns Ar size Allocate a memory disk with the given .Ar size . .Ar size may use any of the suffixes supported by .Xr expand_number 3 . .El .El .Sh FILES .Bl -tag -width "/var/run/nvmfd.pid" -compact .It Pa /var/run/nvmfd.pid The default location of the .Nm PID file. .El .Sh EXIT STATUS .Ex -std .Sh SEE ALSO .Xr ctl 4 , .Xr nvmft 4 , .Xr ctladm 8 , .Xr ctld 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. .Sh BUGS The discovery controller and kernel mode functionality of .Nm should be merged into .Xr ctld 8 . .Pp Additional paramters such as .Va MAXR2T , .Va MAXH2CDATA , and queue sizes should be configurable.