2025-02-16 11:09:01 +01:00
'\" t
. \" Title: nvme-connect
. \" Author: [see the "AUTHORS" section]
. \" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
2025-02-16 12:28:03 +01:00
. \" Date: 08/05/2024
2025-02-16 11:09:01 +01:00
. \" Manual: NVMe Manual
. \" Source: NVMe
. \" Language: English
. \"
2025-02-16 12:28:03 +01:00
.TH "NVME\-CONNECT" "1" "08/05/2024" "NVMe" "NVMe Manual"
2025-02-16 11:09:01 +01:00
. \" -----------------------------------------------------------------
. \" * Define some portability stuff
. \" -----------------------------------------------------------------
. \" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
. \" http://bugs.debian.org/507673
. \" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
. \" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n (.g .ds Aq \(aq
.el .ds Aq '
. \" -----------------------------------------------------------------
. \" * set default formatting
. \" -----------------------------------------------------------------
. \" disable hyphenation
.nh
. \" disable justification (adjust text to left margin only)
.ad l
. \" -----------------------------------------------------------------
. \" * MAIN CONTENT STARTS HERE *
. \" -----------------------------------------------------------------
.SH "NAME"
nvme-connect \- Connect to a Fabrics controller\& .
.SH "SYNOPSIS"
.sp
.nf
2025-02-16 12:25:41 +01:00
\fI nvme connect\fR [\- \- transport=<trtype> | \- t <trtype>]
[\- \- nqn=<subnqn> | \- n <subnqn>]
[\- \- traddr=<traddr> | \- a <traddr>]
[\- \- trsvcid=<trsvcid> | \- s <trsvcid>]
[\- \- host\- traddr=<traddr> | \- w <traddr>]
[\- \- host\- iface=<iface> | \- f <iface>]
[\- \- hostnqn=<hostnqn> | \- q <hostnqn>]
[\- \- hostid=<hostid> | \- I <hostid>]
2025-02-16 12:26:13 +01:00
[\- \- config=<filename> | \- J <filename>]
2025-02-16 12:25:41 +01:00
[\- \- dhchap\- secret=<secret> | \- S <secret>]
[\- \- dhchap\- ctrl\- secret=<secret> | \- C <secret>]
[\- \- nr\- io\- queues=<#> | \- i <#>]
[\- \- nr\- write\- queues=<#> | \- W <#>]
[\- \- nr\- poll\- queues=<#> | \- P <#>]
[\- \- queue\- size=<#> | \- Q <#>]
[\- \- keep\- alive\- tmo=<#> | \- k <#>]
[\- \- reconnect\- delay=<#> | \- c <#>]
[\- \- ctrl\- loss\- tmo=<#> | \- l <#>] [\- \- tos=<#> | \- T <#>]
[\- \- keyring=<#>] [\- \- tls_key=<#>]
2025-02-16 12:27:38 +01:00
[\- \- duplicate\- connect | \- D] [\- \- disable\- sqflow ]
2025-02-16 12:25:41 +01:00
[\- \- hdr\- digest | \- g] [\- \- data\- digest | \- G] [\- \- tls]
2025-02-16 12:26:13 +01:00
[\- \- concat] [\- \- dump\- config | \- O] [\- \- application=<id>]
2025-02-16 12:25:41 +01:00
[\- \- output\- format=<fmt> | \- o <fmt>] [\- \- verbose | \- v]
2025-02-16 11:09:01 +01:00
.fi
.SH "DESCRIPTION"
.sp
Create a transport connection to a remote system (specified by \- \- traddr and \- \- trsvcid) and create a NVMe over Fabrics controller for the NVMe subsystem specified by the \- \- nqn option\& .
.SH "OPTIONS"
.PP
\- t <trtype>, \- \- transport=<trtype>
.RS 4
This field specifies the network fabric being used for a NVMe\- over\- Fabrics network\& . Current string values include:
.TS
allbox tab(:);
lt lt
lt lt
lt lt
2025-02-16 11:31:10 +01:00
lt lt
2025-02-16 11:09:01 +01:00
lt lt.
T{
Value
T}:T{
Definition
T}
T{
rdma
T}:T{
The network fabric is an rdma network (RoCE, iWARP, Infiniband, basic rdma, etc)
T}
T{
fc
T}:T{
\fB WIP\fR
The network fabric is a Fibre Channel network\& .
T}
T{
2025-02-16 11:31:10 +01:00
tcp
T}:T{
The network fabric is a TCP/IP network\& .
T}
T{
2025-02-16 11:09:01 +01:00
loop
T}:T{
Connect to a NVMe over Fabrics target on the local host
T}
.TE
.sp 1
.RE
.PP
\- n <subnqn>, \- \- nqn <subnqn>
.RS 4
This field specifies the name for the NVMe subsystem to connect to\& .
.RE
.PP
\- a <traddr>, \- \- traddr=<traddr>
.RS 4
This field specifies the network address of the Controller\& . For transports using IP addressing (e\& .g\& . rdma) this should be an IP\- based address (ex\& . IPv4)\& .
.RE
.PP
\- s <trsvcid>, \- \- trsvcid=<trsvcid>
.RS 4
This field specifies the transport service id\& . For transports using IP addressing (e\& .g\& . rdma) this field is the port number\& . By default, the IP port number for the RDMA transport is 4420\& .
.RE
.PP
\- w <traddr>, \- \- host\- traddr=<traddr>
.RS 4
2025-02-16 12:13:48 +01:00
This field specifies the network address used on the host to connect to the Controller\& . For TCP, this sets the source address on the socket\& .
.RE
.PP
\- f <iface>, \- \- host\- iface=<iface>
.RS 4
This field specifies the network interface used on the host to connect to the Controller (e\& .g\& . IP eth1, enp2s0, enx78e7d1ea46da)\& . This forces the connection to be made on a specific interface instead of letting the system decide\& .
2025-02-16 11:09:01 +01:00
.RE
.PP
\- q <hostnqn>, \- \- hostnqn=<hostnqn>
.RS 4
2025-02-16 12:20:48 +01:00
Overrides the default Host NQN that identifies the NVMe Host\& . If this option is not specified, the default is read from /usr/local/etc/nvme/hostnqn first\& . If that does not exist, the autogenerated NQN value from the NVMe Host kernel module is used next\& . The Host NQN uniquely identifies the NVMe Host\& .
2025-02-16 11:09:01 +01:00
.RE
.PP
\- I <hostid>, \- \- hostid=<hostid>
.RS 4
UUID(Universally Unique Identifier) to be discovered which should be formatted\& .
.RE
.PP
2025-02-16 12:26:13 +01:00
\- J <filename>, \- \- config=<filename>
2025-02-16 12:15:45 +01:00
.RS 4
2025-02-16 12:20:48 +01:00
Use the specified JSON configuration file instead of the default /usr/local/etc/nvme/config\& .json file or
2025-02-16 12:15:45 +01:00
\fI none\fR
to not read in an existing configuration file\& . The JSON configuration file format is documented in
2025-02-16 12:26:13 +01:00
\m[blue]\fBhttps://github\&.com/linux\-nvme/libnvme/blob/master/doc/config\-schema\&.json\fR\m[]
2025-02-16 12:15:45 +01:00
.RE
.PP
\- S <secret>, \- \- dhchap\- secret=<secret>
.RS 4
NVMe In\- band authentication secret; needs to be in ASCII format as specified in NVMe 2\& .0 section 8\& .13\& .5\& .8
2025-02-16 12:25:41 +01:00
\fI Secret representation\fR \& .
2025-02-16 12:15:45 +01:00
.RE
.PP
\- C <secret>, \- \- dhchap\- ctrl\- secret=<secret>
.RS 4
NVMe In\- band authentication controller secret for bi\- directional authentication; needs to be in ASCII format as specified in NVMe 2\& .0 section 8\& .13\& .5\& .8
\fI Secret representation\fR \& . If not present bi\- directional authentication is not attempted\& .
.RE
.PP
2025-02-16 11:09:01 +01:00
\- i <#>, \- \- nr\- io\- queues=<#>
.RS 4
Overrides the default number of I/O queues create by the driver\& .
.RE
.PP
\- W <#>, \- \- nr\- write\- queues=<#>
.RS 4
Adds additional queues that will be used for write I/O\& .
.RE
.PP
\- P <#>, \- \- nr\- poll\- queues=<#>
.RS 4
Adds additional queues that will be used for polling latency sensitive I/O\& .
.RE
.PP
\- Q <#>, \- \- queue\- size=<#>
.RS 4
Overrides the default number of elements in the I/O queues created by the driver\& .
.RE
.PP
\- k <#>, \- \- keep\- alive\- tmo=<#>
.RS 4
Overrides the default keep alive timeout (in seconds)\& .
.RE
.PP
\- c <#>, \- \- reconnect\- delay=<#>
.RS 4
Overrides the default delay (in seconds) before reconnect is attempted after a connect loss\& .
.RE
.PP
\- l <#>, \- \- ctrl\- loss\- tmo=<#>
.RS 4
2025-02-16 12:27:38 +01:00
Overrides the default controller loss timeout period (in seconds)\& . This is the maximum time the kernel will retry a connection, where each retry will be issued after
\fI reconnect\- delay\fR
seconds\& .
2025-02-16 11:09:01 +01:00
.RE
.PP
2025-02-16 12:23:16 +01:00
\- T <#>, \- \- tos=<#>
.RS 4
Type of service for the connection (TCP)
.RE
.PP
\- \- keyring=<#>
.RS 4
Keyring for TLS key lookup\& .
.RE
.PP
\- \- tls_key=<#>
.RS 4
TLS key for the connection (TCP)\& .
.RE
.PP
2025-02-16 11:09:01 +01:00
\- D, \- \- duplicate\- connect
.RS 4
2025-02-16 12:15:45 +01:00
Allows duplicated connections between same transport host and subsystem port\& .
2025-02-16 11:09:01 +01:00
.RE
.PP
2025-02-16 12:27:38 +01:00
\- \- disable\- sqflow
2025-02-16 11:09:01 +01:00
.RS 4
Disables SQ flow control to omit head doorbell update for submission queues when sending nvme completions\& .
.RE
.PP
\- g, \- \- hdr\- digest
.RS 4
Generates/verifies header digest (TCP)\& .
.RE
.PP
\- G, \- \- data\- digest
.RS 4
Generates/verifies data digest (TCP)\& .
.RE
2025-02-16 12:13:48 +01:00
.PP
2025-02-16 12:23:16 +01:00
\- \- tls
.RS 4
Enable TLS encryption (TCP)\& .
.RE
.PP
2025-02-16 12:26:13 +01:00
\- \- concat
.RS 4
Enable secure concatenation (TCP)\& .
.RE
.PP
2025-02-16 12:15:45 +01:00
\- O, \- \- dump\- config
.RS 4
Print out resulting JSON configuration file to stdout\& .
.RE
.PP
2025-02-16 12:25:41 +01:00
\- \- context <STR>
.RS 4
Set the execution context to <STR>\& . This allows to coordinate the management of the global resources\& .
.RE
.PP
\- o <fmt>, \- \- output\- format=<fmt>
2025-02-16 12:13:48 +01:00
.RS 4
Set the reporting format to
2025-02-16 12:25:41 +01:00
\fI normal\fR ,
\fI json\fR
2025-02-16 12:13:48 +01:00
or
2025-02-16 12:25:41 +01:00
\fI binary\fR \& . Only one output format can be used at a time\& .
2025-02-16 12:13:48 +01:00
.RE
2025-02-16 12:24:13 +01:00
.PP
2025-02-16 12:25:41 +01:00
\- v, \- \- verbose
2025-02-16 12:24:13 +01:00
.RS 4
2025-02-16 12:25:41 +01:00
Increase the information detail in the output\& .
2025-02-16 12:24:13 +01:00
.RE
2025-02-16 11:09:01 +01:00
.SH "EXAMPLES"
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
Connect to a subsystem named nqn\& .2014\- 08\& .com\& .example:nvme:nvm\- subsystem\- sn\- d78432 on the IP4 address 192\& .168\& .1\& .3\& . Port 4420 is used by default:
.sp
.if n \{ \
.RS 4
. \}
.nf
# nvme connect \- \- transport=rdma \- \- traddr=192\& .168\& .1\& .3 \e
\- \- nqn=nqn\& .2014\- 08\& .com\& .example:nvme:nvm\- subsystem\- sn\- d78432
.fi
.if n \{ \
.RE
. \}
.RE
.SH "SEE ALSO"
.sp
nvme\- discover(1) nvme\- connect\- all(1)
.SH "AUTHORS"
.sp
This was co\- written by \m[blue]\fBJay Freyensee\fR\m[]\&\s-2\u[1]\d\s+2 and \m[blue]\fBChristoph Hellwig\fR\m[]\&\s-2\u[2] \d \s +2
.SH "NVME"
.sp
Part of the nvme\- user suite
.SH "NOTES"
.IP " 1." 4
Jay Freyensee
.RS 4
\% mailto:james.p.freyensee@intel.com
.RE
.IP " 2." 4
Christoph Hellwig
.RS 4
\% mailto:hch@lst.de
.RE