'\" t .\" Title: nvme-connect .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 10/31/2024 .\" Manual: NVMe Manual .\" Source: NVMe .\" Language: English .\" .TH "NVME\-CONNECT" "1" "10/31/2024" "NVMe" "NVMe Manual" .\" ----------------------------------------------------------------- .\" * 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 \fInvme connect\fR [\-\-transport= | \-t ] [\-\-nqn= | \-n ] [\-\-traddr= | \-a ] [\-\-trsvcid= | \-s ] [\-\-host\-traddr= | \-w ] [\-\-host\-iface= | \-f ] [\-\-hostnqn= | \-q ] [\-\-hostid= | \-I ] [\-\-config= | \-J ] [\-\-dhchap\-secret= | \-S ] [\-\-dhchap\-ctrl\-secret= | \-C ] [\-\-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=] [\-\-tls\-key\-identity=] [\-\-duplicate\-connect | \-D] [\-\-disable\-sqflow ] [\-\-hdr\-digest | \-g] [\-\-data\-digest | \-G] [\-\-tls] [\-\-concat] [\-\-dump\-config | \-O] [\-\-application=] [\-\-output\-format= | \-o ] [\-\-verbose | \-v] .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 , \-\-transport= .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 lt lt 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{ \fBWIP\fR The network fabric is a Fibre Channel network\&. T} T{ tcp T}:T{ The network fabric is a TCP/IP network\&. T} T{ loop T}:T{ Connect to a NVMe over Fabrics target on the local host T} .TE .sp 1 .RE .PP \-n , \-\-nqn .RS 4 This field specifies the name for the NVMe subsystem to connect to\&. .RE .PP \-a , \-\-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= .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 , \-\-host\-traddr= .RS 4 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 , \-\-host\-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\&. .RE .PP \-q , \-\-hostnqn= .RS 4 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\&. .RE .PP \-I , \-\-hostid= .RS 4 UUID(Universally Unique Identifier) to be discovered which should be formatted\&. .RE .PP \-J , \-\-config= .RS 4 Use the specified JSON configuration file instead of the default /usr/local/etc/nvme/config\&.json file or \fInone\fR to not read in an existing configuration file\&. The JSON configuration file format is documented in \m[blue]\fBhttps://github\&.com/linux\-nvme/libnvme/blob/master/doc/config\-schema\&.json\fR\m[] .RE .PP \-S , \-\-dhchap\-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 \fISecret representation\fR\&. .RE .PP \-C , \-\-dhchap\-ctrl\-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 \fISecret representation\fR\&. If not present bi\-directional authentication is not attempted\&. .RE .PP \-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 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 \fIreconnect\-delay\fR seconds\&. .RE .PP \-T <#>, \-\-tos=<#> .RS 4 Type of service for the connection (TCP) .RE .PP \-\-keyring= .RS 4 Keyring for TLS key lookup, either the key id or the keyring name\&. .RE .PP \-\-tls\-key= .RS 4 TLS key for the connection (TCP), either the TLS key in interchange format or the key id\&. It\(cqs strongly recommended not to provide the TLS key via the comamnd line due to security concerns\&. Instead in production situation, the key should be loaded into the keystore with \fInvme tls \-\-import\fR and only the \fI\-\-tls\fR options used\&. The kernel will select the matching key\&. .RE .PP \-\-tls\-key\-identity= .RS 4 The identity used for the tls\-key\&. If none is provided the tls\-key provided via the comamnd line is considered a configuration key and a derive key will be loaded into the keyring\&. .RE .PP \-D, \-\-duplicate\-connect .RS 4 Allows duplicated connections between same transport host and subsystem port\&. .RE .PP \-\-disable\-sqflow .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 .PP \-\-tls .RS 4 Enable TLS encryption (TCP)\&. .RE .PP \-\-concat .RS 4 Enable secure concatenation (TCP)\&. .RE .PP \-O, \-\-dump\-config .RS 4 Print out resulting JSON configuration file to stdout\&. .RE .PP \-\-context .RS 4 Set the execution context to \&. This allows to coordinate the management of the global resources\&. .RE .PP \-o , \-\-output\-format= .RS 4 Set the reporting format to \fInormal\fR, \fIjson\fR or \fIbinary\fR\&. Only one output format can be used at a time\&. .RE .PP \-v, \-\-verbose .RS 4 Increase the information detail in the output\&. .RE .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