OS Manuals

nvme-dir-send(1)

nvme-dir-send - Issue a directive send command, returns applicable results

NVME-DIR-SEND(1) NVMe Manual NVME-DIR-SEND(1)

nvme-dir-send - Issue a directive send command, returns applicable results

nvme [<global-options>] dir send <device>

[--namespace-id=<nsid> | -n <nsid>]
[--data-len=<data-len> | -l <data-len>]
[--dir-type=<dtype> | -D <dtype>]
[--dir-spec=<dspec> | -S <dspec>]
[--dir-oper=<doper> | -O <doper>]
[--endir=<endir> | -e <endir>]
[--target-dir=<tdir> | -T <tdir>] [--raw-binary | -b]

Submits an NVMe Directive Send admin command and returns the applicable results. This may be the combination of directive type, and operation, as well as target directive and its enable/disable status of the operation, if specific operation needs it.

The <device> parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

On success, the returned directive’s parameter structure (if applicable) is returned in one of several ways depending on the option flags; the structure may parsed by the program and displayed in hex, or the raw buffer may be printed to stdout for another program to parse.

The bare nvme dir-send form (without a space) still works as a deprecated alias and will be removed in a future major version. New scripts should use nvme dir send instead.

-n <nsid>, --namespace-id=<nsid>

Retrieve the feature for the given nsid. This is optional and most features do not use this value.

-D <dtype>, --dir-type=<dtype>

Directive type

-S <dspec>, --dir-spec=<dspec>

Directive specific

-O <doper>, --dir-oper=<doper>

Directive operation

-T <tdir>, --target-dir=<nsr>

Target directive of the operation

-e <endir>, --endir=<endir>

Target directive enable(1) or disable (0) operation
Select Description
0 Current
1 Default
2 Saved
3 Supported capabilities
4–7 Reserved

-l <data-len>, --data-len=<data-len>

The data length for the buffer returned for this feature. Most known features do not use this value. The exception is LBA Range Type

-b, --raw-binary

Print the raw receive buffer to stdout if the command returns a structure.

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 <fmt>, --output-format=<fmt>

Set the reporting format to normal, tabular, 'json, or binary. Only one output format may be used at a time.

--output-format-version=<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=<ms>

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.

•Enable streams directive :

# nvme dir send /dev/nvme0n1 --dir-type 0 --dir-oper 1 --target-dir 1 --endir 1

•Disable streams directive :

# nvme dir send /dev/nvme0n1 --dir-type 0 --dir-oper 1 --target-dir 1 --endir 0

•Release all allocated streams resource :

# nvme dir send /dev/nvme0n1 --dir-type 1 --dir-oper 2

•Release stream ID 3 :

# nvme dir send /dev/nvme0 --dir-type 1 --dir-oper 1 --dir-spec 3

It is probably a bad idea to not redirect stdout when using this mode.

Part of the nvme-user suite

09/18/2026 NVMe

nvme-cli 3.1-r1 · os · ingested 2026-10-08