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