xref: /freebsd/usr.sbin/nvmfd/nvmfd.8 (revision a0ca4af9455b844c5e094fc1b09b1390ffa979fc)
1.\"
2.\" SPDX-License-Identifier: BSD-2-Clause
3.\"
4.\" Copyright (c) 2024 Chelsio Communications, Inc.
5.\"
6.Dd May 2, 2024
7.Dt NVMFD 8
8.Os
9.Sh NAME
10.Nm nvmfd
11.Nd "NVMeoF controller daemon"
12.Sh SYNOPSIS
13.Nm
14.Fl K
15.Op Fl dFGg
16.Op Fl P Ar port
17.Op Fl p Ar port
18.Op Fl t Ar transport
19.Op Fl n Ar subnqn
20.Nm
21.Op Fl dFGg
22.Op Fl P Ar port
23.Op Fl p Ar port
24.Op Fl t Ar transport
25.Op Fl n Ar subnqn
26.Ar device
27.Op Ar device ...
28.Sh DESCRIPTION
29.Nm
30accepts incoming NVMeoF connections for both I/O and discovery controllers.
31.Nm
32can either implement a single dynamic I/O controller in user mode or hand
33off incoming I/O controller connections to
34.Xr nvmft 4 .
35A dynamic discovery controller service is always provided in user mode.
36.Pp
37The following options are available:
38.Bl -tag -width "-t transport"
39.It Fl F
40Permit remote hosts to disable SQ flow control.
41.It Fl G
42Permit remote hosts to enable PDU data digests for the TCP transport.
43.It Fl g
44Permit remote hosts to enable PDU header digests for the TCP transport.
45.It Fl K
46Enable kernel mode which hands off incoming I/O controller connections to
47.Xr nvmft 4 .
48.It Fl P Ar port
49Use
50.Ar port
51as the listen TCP port for the discovery controller service.
52The default value is 8009.
53.It Fl d
54Enable debug mode.
55The daemon sends any errors to standard output and does not place
56itself in the background.
57.It Fl p Ar port
58Use
59.Ar port
60as the listen TCP port for the I/O controller service.
61By default an unused ephemeral port will be chosen.
62.It Fl n Ar subnqn
63The Subsystem NVMe Qualified Name for the I/O controller.
64If an explicit NQN is not given, a default value is generated from the
65current host's UUID obtained from the
66.Vt kern.hostuuid
67sysctl.
68.It Fl t Ar transport
69The transport type to use.
70The default transport is
71.Dq tcp .
72.It Ar device
73When implementing a user mode I/O controller,
74one or more
75.Ar device
76arguments must be specified.
77Each
78.Ar device
79describes the backing store for a namespace exported to remote hosts.
80Devices can be specified using one of the following syntaxes:
81.Bl -tag -width "ramdisk:size"
82.It Pa pathname
83File or disk device
84.It ramdisk : Ns Ar size
85Allocate a memory disk with the given
86.Ar size .
87.Ar size
88may use any of the suffixes supported by
89.Xr expand_number 3 .
90.El
91.El
92.Sh FILES
93.Bl -tag -width "/var/run/nvmfd.pid" -compact
94.It Pa /var/run/nvmfd.pid
95The default location of the
96.Nm
97PID file.
98.El
99.Sh EXIT STATUS
100.Ex -std
101.Sh SEE ALSO
102.Xr ctl 4 ,
103.Xr nvmft 4 ,
104.Xr ctladm 8 ,
105.Xr ctld 8
106.Sh HISTORY
107The
108.Nm
109module first appeared in
110.Fx 15.0 .
111.Sh AUTHORS
112The
113.Nm
114subsystem was developed by
115.An John Baldwin Aq Mt jhb@FreeBSD.org
116under sponsorship from Chelsio Communications, Inc.
117.Sh BUGS
118The discovery controller and kernel mode functionality of
119.Nm
120should be merged into
121.Xr ctld 8 .
122.Pp
123Additional paramters such as
124.Va MAXR2T ,
125.Va MAXH2CDATA ,
126and queue sizes should be configurable.
127