summaryrefslogtreecommitdiffstats
path: root/Documentation/nvme-get-feature.txt
blob: a055b93f1fb52b6a519869a80a4b7a197d390ce2 (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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
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>]
			[--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]
			[--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.

-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