summaryrefslogtreecommitdiffstats
path: root/Documentation/nvme-get-feature.txt
blob: a6f57a7aee60b3f8622a5b3a0fda36817e5df363 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
nvme-get-feature(1)
===================

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

SYNOPSIS
--------
[verse]
'nvme get-feature' <device> [--namespace-id=<nsid> | -n <nsid>]
			  [--feature-id=<fid> | -f <fid>] [--cdw11=<cdw11>]
			  [--uuid-index=<uuid-index> | -U <uuid_index>]
			  [--data-len=<data-len> | -l <data-len>]
			  [--sel=<select> | -s <select>]
			  [--raw-binary | -b]
			  [--human-readable | -H]

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

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

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