nvme-get-feature(1)

# nvme-get-feature(1) Manual Page

## NAME

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

## SYNOPSIS

    nvme [<global-options>] 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>] [--changed | -C]

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

  Value | Definition
  0x01 | arbitration | Arbitration
  0x02 | power-mgmt | Power Management
  0x03 | lba-range | LBA Range Type
  0x04 | temp-thresh | Temperature Threshold
  0x05 | err-recovery | Error Recovery
  0x06 | volatile-wc | Volatile Write Cache
  0x07 | num-queues | Number of Queues
  0x08 | irq-coalesce | Interrupt Coalescing
  0x09 | irq-config | Interrupt Vector Configuration
  0x0a | write-atomic | Write Atomicity Normal
  0x0b | async-event | Asynchronous Event Configuration
  0x0c | auto-pst | Autonomous Power State Transition
  0x0d | host-mem-buf | Host Memory Buffer
  0x0e | timestamp | Timestamp
  0x0f | kato | Keep Alive Timer
  0x10 | hctm | Host Controlled Thermal Management
  0x11 | nopsc | Non-Operational Power State Config
  0x12 | rrl | Read Recovery Level Config
  0x13 | plm-config | Predictable Latency Mode Config
  0x14 | plm-window | Predictable Latency Mode Window
  0x15 | lba-sts-interval | LBA Status Information Report Interval
  0x16 | host-behavior | Host Behavior Support
  0x17 | sanitize | Sanitize Config
  0x18 | endurance-evt-cfg | Endurance Group Event Configuration
  0x19 | iocs-profile | I/O Command Set Profile
  0x1a | spinup-control | Spinup Control
  0x1b | power-loss-signal | Power Loss Signaling Config
  0x1c | perf-characteristics | Performance Characteristics
  0x1d | fdp | Flexible Data Placement
  0x1e | fdp-events | FDP Events
  0x1f | ns-admin-label | Namespace Admin Label
  0x20 | key-value | Key Value Configuration
  0x21 | ctrl-data-queue | Controller Data Queue
  0x78 | emb-mgmt-ctrl-addr | Embedded Management Controller Address
  0x79 | host-mgmt-agent-addr | Host Management Agent Address
  0x7d | enh-ctrl-metadata | Enhanced Controller Metadata
  0x7e | ctrl-metadata | Controller Metadata
  0x7f | ns-metadata | Namespace Metadata
  0x80 | sw-progress | Software Progress Marker
  0x81 | host-id | Host Identifier
  0x82 | resv-mask | Reservation Notification Mask
  0x83 | resv-persist | Reservation Persistence
  0x84 | write-protect | Namespace Write Protection Config
  0x85 | bp-write-protect | Boot Partition Write Protection Config

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

-C
--changed

  This option will show feature changed.

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

- 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