NVME-DIR-SEND(1)

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

SYNOPSIS

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]

DESCRIPTION

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.

OPTIONS

-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.

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 <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.

EXAMPLES

    • 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.

NVME

Part of the nvme-user suite