NVME-CONFIG-CREATE(1) NVMe Manual NVME-CONFIG-CREATE(1) NAME nvme-config-create - Add an NVMe-oF connection entry to the INI configuration SYNOPSIS nvme [] config create [--discovery] [--persistent[=] ] [--host-symname=] [--output=] [] DESCRIPTION Build one NVMe-oF connection entry from command-line options and add it to the INI configuration used by nvme connect, nvme discover, and nvme connect-all. The format is documented at https://github.com/linux-nvme/nvme-cli/blob/master/libnvme/design/CONFIG.md If the target file exists, its connections are kept and the new entry is merged in alongside them. Running the same command again is a no-op. Unlike nvme config convert, this is not a one-shot migration; it is the ongoing way to build an INI configuration from the command line. The entry is an I/O controller (subsystem) entry by default, and --nqn is required. Use --discovery for a discovery controller entry instead; --nqn is then optional. A connection with an explicit --hostnqn or --hostid is written to a drop-in under .d/. One without either goes into the main file. OPTIONS --discovery Create a discovery controller entry instead of an I/O controller entry. Without this, --nqn is required. --persistent[=] Record this discovery controller's persistence mode. Requires --discovery. Because the value is optional, it must be attached directly to the option (--persistent=force). A value given as a separate argument (--persistent force) is silently NOT applied -- it's dropped, and --persistent is treated as if given bare (mode "auto"), with no error. o auto (the default when --persistent is given with no value): persist the connection only where the target's own EPCSD (Explicit Persistent Connection Support for Discovery) flag reports support for it. o force: persist regardless of what EPCSD reports, for a target whose self-reported EPCSD cannot be trusted. o no: explicitly record that this discovery controller is not persistent, overriding any default that would otherwise apply. --host-symname= Name this host persona. Puts it in its own configuration drop-in. --output= Write to this file instead of the default /etc/nvme/nvme-fabrics.conf. FABRICS OPTIONS The following options are common to NVMe over Fabrics commands such as nvme connect: -a , --traddr= Specify the network address of the controller. For transports using IP addressing (e.g. rdma, tcp), this should be an IP address. --concat Enable secure concatenation (TCP). -c <#>, --reconnect-delay=<#> Set the delay in seconds before reconnect is attempted after a connection loss. -C , --kxchap-ctrl-secret= Controller authentication secret for bi-directional authentication. If not specified, bi-directional authentication is not attempted. -S , --kxchap-secret= Host authentication secret (KX-HMAC-CHAP). Must be provided in ASCII format as defined in the NVMe specification. -C , --dhchap-ctrl-secret= Controller authentication secret for bi-directional authentication. If not specified, bi-directional authentication is not attempted. (deprecated, see --kxchap-ctrl-secret) -S , --dhchap-secret= Host authentication secret (DH-HMAC-CHAP). Must be provided in ASCII format as defined in the NVMe specification. (deprecated, see --kxchap-secret) --disable-sqflow Disable submission queue flow control. -G, --data-digest Enable data digest generation/verification (TCP). -D, --duplicate-connect Allow duplicate connections to the same subsystem. -g, --hdr-digest Enable header digest generation/verification (TCP). -f , --host-iface= Specify the network interface to use for the connection. -I , --hostid= Specify the host UUID. -q , --hostnqn= Override the default host NQN. -w , --host-traddr= Specify the source address on the host side of the connection. -k <#>, --keep-alive-tmo=<#> Set the keep-alive timeout in seconds. --keyring= Keyring to use for TLS key lookup. -n , --nqn= Specify the NVMe subsystem NQN to connect to. -i <#>, --nr-io-queues=<#> Number of I/O queues to create. -P <#>, --nr-poll-queues=<#> Number of polling queues to create. -W <#>, --nr-write-queues=<#> Number of write queues to create. -Q <#>, --queue-size=<#> Queue depth for I/O queues. -l <#>, --ctrl-loss-tmo=<#> Maximum time in seconds to retry reconnect attempts after controller loss. -s , --trsvcid= Transport service identifier (e.g. TCP/rdma port). Default is 4420 for RDMA. -T <#>, --tos=<#> Type of service value for the connection (TCP). -t , --transport= Specify the transport type. Supported values include: + +------+--------------------------+ |Value | Description | +------+--------------------------+ |rdma | RDMA (RoCE, iWARP, | | | InfiniBand) | +------+--------------------------+ |tcp | TCP/IP | +------+--------------------------+ |fc | Fibre Channel | | | (experimental) | +------+--------------------------+ |loop | Local loopback transport | +------+--------------------------+ --tls Enable TLS encryption (TCP). --tls-key= TLS key for the connection. It is recommended to preload keys into the system keyring instead of passing them via the command line. --tls-key-identity= Identity associated with the TLS key. GLOBAL OPTIONS The following options are defined at the top-level nvme command and are available to this subcommand: --dry-run Print the command that would be executed, but do not actually execute it. --no-ioctl-probing Disable probing for 64-bit IOCTL support. --no-retries Disable retry logic on transient errors. -o , --output-format= Set the reporting format to normal, tabular, 'json, or binary. Only one output format may be used at a time. --output-format-version= Select the output format version. Version 1 uses the original field naming, while version 2 (default) provides more consistent and script-friendly field names. --timeout= Set the timeout for the command in milliseconds. -v, --verbose Increase the level of detail in the output. May be specified multiple times to further increase verbosity. These options can also be set as machine-wide defaults in nvme-cli.conf(5). A command-line flag always overrides the file. EXAMPLES o Add a discovery controller entry for an FC discovery controller: # nvme config create --transport fc \ --traddr=nn-0x58ccf090c92006da:pn-0x58ccf091492806da \ --host-traddr=nn-0x20000024ff7fa448:pn-0x21000024ff7fa448 \ --hostnqn=nqn.2014-08.org.nvmexpress:uuid:62a4ab74-1e18-11f1-8bb7-6c1ff71ba506 \ --discovery o Add an I/O controller entry to a test configuration file: # nvme config create --transport tcp --traddr=192.168.1.20 --trsvcid=4420 \ --nqn=nqn.2024-01.com.example:data.vol1 \ --output=/tmp/nvme-fabrics.conf SEE ALSO nvme-config-convert(1) nvme-config-validate(1) nvme-config-show(1) nvme-connect-all(1) nvme-discover(1) NVME Part of the nvme-user suite NVMe 09/07/2026 NVME-CONFIG-CREATE(1)