nvme-set-feature(1)
===================

NAME
----
nvme-set-feature - Sets an NVMe feature, returns applicable results

SYNOPSIS
--------
[verse]
'nvme set-feature' <device> [--namespace-id=<nsid> | -n <nsid>]
			  [--feature-id=<fid> | -f <fid>] [--value=<value>]
			  [--data-len=<data-len> | -l <data-len>]
			  [--data=<data-file> | -d <data-file>]
			  [--raw-binary | -b]

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.

-l <data-len>::
--data-len=<data-len>::
	The data length for the buffer submitted for this feature. Most
	known features do not use this value. The exceptions are LBA
	Range Type and host identifier.

-d <data-file>::
--data=<data-file>::
	The data file for the buffer submitted for this feature. Most
	known features do not use this value. The exceptions is LBA
	Range Type and host identifier. This defaults to STDIN so files
	and echo can be piped.

--value=<value>::
	The value for command dword 11, the value you want to set the
	feature to.


EXAMPLES
--------
* Retrieves the feature for Number of Queues, or feature id 7:
+
------------
# nvme set-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 set-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 set-feature /dev/nvme0 -f 0xc0 -l 512
------------
+

* Sets the host id to the ascii string.
+
------------
# echo "abcdefgh" | nvme set-feature /dev/nvme0 -f 0x81 -l 8
------------
+

* 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 set-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
