NVME-GET-FEATURE(1)

NAME
nvme-get-feature - Gets an NVMe feature, returns applicable results

SYNOPSIS

nvme get-feature <device> [--namespace-id=<nsid> | -n <nsid>]
                        [--feature-id=<fid> | -f <fid>]
                        [--uuid-index=<uuid-index> | -U <uuid_index>]
                        [--data-len=<data-len> | -l <data-len>]
                        [--sel=<select> | -s <select>]
                        [--raw-binary | -b] [--cdw11=<cdw11> | -c <cdw11>]
                        [--human-readable | -H] [--changed | -C]
                        [--output-format=<fmt> | -o <fmt>] [--verbose | -v]
                        [--timeout=<timeout> | -t <timeout>]

DESCRIPTION

Submits an NVMe Get Feature admin command and returns the applicable results. This may be the feature’s value, or may also include a feature structure if the feature requires it (ex: LBA Range Type).

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 feature’s structure (if applicable) may be returned in one of several ways depending on the option flags; the structure may parsed by the program and printed in a readable format if it is a known structure, displayed in hex, or the raw buffer may be printed to stdout for another program to parse.

OPTIONS

-n <nsid>, --namespace-id=<nsid>
    Retrieve the feature for the given nsid. This is optional and most features do not use this value.

-f <fid>, --feature-id=<fid>
    The feature id to send with the command. Value provided should be in hex.

-s <select>, --sel=<select>
    Select (SEL): This field specifies which value of the attributes to return in the provided data:
    Select | Description
    0 | Current
    1 | Default
    2 | Saved
    3 | Supported capabilities
    4-7 | Reserved

-U <uuid-index>, --uuid-index=<uuid-index>
    UUID Index of the feature

-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

-c <cdw11>, --cdw11=<cdw11>
    The value for command dword 11, if applicable.

-b, --raw-binary
    Print the raw feature buffer to stdout if the feature returns a structure.

-H, --human-readable
    This option will parse and format many of the bit fields into human-readable formats.

-C, --changed
    This option will show feature changed.

-o <fmt>, --output-format=<fmt>
    Set the reporting format to normal, json or binary. Only one output format can be used at a time.

-v, --verbose
    Increase the information detail in the output.

-t <timeout>, --timeout=<timeout>
    Override default timeout value. In milliseconds.

EXAMPLES

    • Retrieves the feature for Number of Queues, or feature id 7:

        # nvme get-feature /dev/nvme0 -f 7

    • The following retrieves the feature for the LBA Range Type, which implicitly requires a buffer and will be printed to the screen in human readable format:

        # nvme get-feature /dev/nvme0 -f 3

    • Retrieves the feature for the some vendor specific feature and specifically requesting a buffer be allocate for this feature, which will be displayed to the user in as a hex dump:

        # nvme get-feature /dev/nvme0 -f 0xc0 -l 512

    Get feature with UUID index

    # nvme get-feature /dev/nvme0 -f 0xc0 -l 512 -U 0x1

    • The following retrieves the feature for the LBA Range Type, which implicitly requires a buffer and will be saved to a file in its raw format:

        # nvme get-feature /dev/nvme0 -f 3 --raw-binary > lba_range.raw

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

NVME

Part of the nvme-user suite