diff options
Diffstat (limited to 'completions')
-rw-r--r-- | completions/_nvme | 332 | ||||
-rw-r--r-- | completions/bash-nvme-completion.sh | 161 |
2 files changed, 371 insertions, 122 deletions
diff --git a/completions/_nvme b/completions/_nvme index 159a4ab..47fdd9d 100644 --- a/completions/_nvme +++ b/completions/_nvme @@ -56,7 +56,7 @@ _nvme () { 'set-property:writes and shows the defined NVMe controller property for NVMe over Fabric' 'get-property:Reads and shows the defined NVMe controller property for NVMe over Fabric' 'format:apply new block format to namespace' - 'fw-activate:activate a firmware on the device' + 'fw-commit:verify and commit firmware to a specific slot (fw-activate in old version < 1.2)' 'fw-download:download a firmware to the device' 'admin-passthru:submit a passthrough admin command IOCTL' 'io-passthru:submit a passthrough io command IOCTL' @@ -97,6 +97,7 @@ _nvme () { 'disconnect-all:disconnect from all connected NVMeoF subsystems' 'gen-hostnqn:generate a host NVMe Qualified Name' 'show-hostnqn:show the host NQN configured for the system' + 'tls-key:manipulate NVMeoF TLS PSK' 'dir-receive:read directive parameters of the specified directive type' 'dir-send:set directive parameters of the specified directive type' 'virt-mgmt:submit a Virtualization Management command' @@ -105,10 +106,13 @@ _nvme () { 'nvme-mi-recv:send a NVMe-MI receive command' 'nvme-mi-send:send a NVMe-MI send command' 'get-reg:read and show the defined NVMe controller register' - 'set-seg:write and show the defined NVMe controller register' + 'set-reg:write and show the defined NVMe controller register' + 'io-mgmt-recv:send an I/O management receive command' + 'io-mgmt-send:send an I/O management send command' 'version:show the program version' 'ocp:OCP cloud SSD extensions' 'solidigm:Solidigm plug-in extensions' + 'micron:Micron plug-in extensions' 'help:print brief descriptions of all nvme commands' 'json:dump output in json format' ) @@ -176,12 +180,18 @@ _nvme () { local _internal_log _internal_log=( /dev/nvme':supply a device to use (required)' - --telemetry_type=':Telemetry Type; host (Create bit) or controller' - -t':alias for --telemetry_type' - --telemetry_data_area=':Telemetry Data Area; 1 or 3' - -a':alias for --telemetry_data_area' + --telemetry-type=':Telemetry Type; host or controller generated' + -t':alias for --telemetry-type' + --data-area=':Telemetry Data Area; 1 or 2' + -a':alias for --data-area' --output-file=':Output file name with path' -o':alias for --output-file' + --telemetry-log=':Telemetry log binary' + -l':alias for --telemetry-log' + --string-log=':String log binary' + -s':alias for --string-log' + --output-format':Output format: normal|json' + -f':alias for --output-format' ) _arguments '*:: :->subcmds' _describe -t commands "nvme ocp internal-log options" _internal_log @@ -256,6 +266,20 @@ _nvme () { _arguments '*:: :->subcmds' _describe -t commands "nvme ocp set-dssd-power-state-feature options" _set_dssd_power_state_feature ;; + (get-dssd-power-state-feature) + local _get_dssd_power_state_feature + _get_dssd_power_state_feature=( + /dev/nvme':supply a device to use (required)' + --sel=':select from 0 - current, 1 - default, 2 - saved, 3 - supported' + -S':alias to --sel' + --all=':Print out all 3 values at once - current, default, and saved' + -a':alias to --all' + --no-uuid':Skip UUID index search' + -n':alias for --no-uuid' + ) + _arguments '*:: :->subcmds' + _describe -t commands "nvme ocp get-dssd-power-state-feature options" _get_dssd_power_state_feature + ;; (telemetry-string-log) local _telemetry_string_log _telemetry_string_log=( @@ -289,6 +313,51 @@ _nvme () { _arguments '*:: :->subcmds' _describe -t commands "nvme ocp get-dssd-async-event-config options" _get_dssd_async_event_config ;; + (tcg-configuration-log) + local _ocp_tcg_configuration_log + _ocp_tcg_configuration_log=( + /dev/nvme':supply a device to use (required)' + --output-format=':Output format: normal|json' + -o':alias for --output-format' + ) + _arguments '*:: :->subcmds' + _describe -t commands "nvme ocp tcg-configuration-log options" _ocp_tcg_configuration_log + ;; + (get-error-injection) + local _get_error_injection + _get_error_injection=( + /dev/nvme':supply a device to use (required)' + --sel=':0-3: current/default/saved/supported/changed:' + -s':alias for --sel' + --no-uuid':Skip UUID index search' + -n':alias for --no-uuid' + ) + _arguments '*:: :->subcmds' + _describe -t commands "nvme ocp get-error-injection options" _get_error_injection + ;; + (set-error-injection) + local _set_error_injection + _set_error_injection=( + /dev/nvme':supply a device to use (required)' + --data=':Error injection data structure entries' + -d':alias for --data' + --number=':Number of valid error injection data entries' + -n':alias for --number' + --no-uuid':Skip UUID index search' + -N':alias for --no-uuid' + --type=':Error injection type' + -t':alias for --type' + --nrtdp=':Number of reads to trigger device panic' + -r':alias for --nrtdp' + --verbose':Increase the information detail in the output.' + -v':alias for --verbose' + --output-format=':Output format: normal|json|binary' + -o ':alias for --output-format' + --timeout=':value for timeout' + ) + _arguments '*:: :->subcmds' + _describe -t commands "nvme ocp set-error-injection options" _set_error_injection + ;; (*) _files ;; @@ -336,16 +405,10 @@ _nvme () { (vs-internal-log) local _vs_internal_log _vs_internal_log=( - --type':Log type: ALL, - CONTROLLERINITTELEMETRY, - HOSTINITTELEMETRY, - HOSTINITTELEMETRYNOGEN, NLOG, - ASSERT, EVENT. Defaults to ALL.' + --type':Log type: ALL, CIT, HIT, NLOG, ASSERT, EVENT. Defaults to ALL.' -t':alias for --type' - --namespace-id':Namespace to get logs from.' - -n':alias for --namespace-id' - --dir-prefix':Output dir prefix; defaults to device serial number.' - -p':alias for --dir-prefix' + --dir-name':Output directory; defaults to current working directory.' + -d':alias for --dir-name' --verbose':To print out verbose info.' -v':alias for --verbose' ) @@ -393,24 +456,24 @@ _nvme () { local _parse_telemetry_log _parse_telemetry_log=( --host-generate':Controls when to generate new - host initiated report. Default - value '1' generates new host - initiated report, value '0' - causes retrieval of existing - log.' + host initiated report. Default + value '1' generates new host + initiated report, value '0' + causes retrieval of existing + log.' -g':alias for --host-generate' --controller-init':Gather report generated by the controller.' -c':alias for --controller-init' --data-area':Pick which telemetry data area to - report. Default is 3 to fetch - areas 1-3. Valid options are 1, - 2, 3, 4.' + report. Default is 3 to fetch + areas 1-3. Valid options are 1, + 2, 3, 4.' -d':alias for --data-area' --config-file':JSON configuration file' -j':alias for --config-file' --source-file':data source <device> is binary - file containing log dump instead - of block or character device' + file containing log dump instead + of block or character device' -s':alias for --source-file' ) _arguments '*:: :->subcmds' @@ -592,6 +655,8 @@ _nvme () { -a':alias of --all' --output-format=':Output format: normal|json|binary' -o':alias for --output-format' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme list-ns options" _listns @@ -974,6 +1039,8 @@ _nvme () { -n':alias to --namespace-id' --raw-binary':dump infos in binary format' -b':alias to --raw-binary' + --verbose':show infos verbosely' + -v':alias to --verbose' ) _arguments '*:: :->subcmds' _describe -t commands "nvme smart-log options" _smartlog @@ -1028,6 +1095,8 @@ _nvme () { -b':alias to --raw-binary' --csi=':command set identifier' -c':alias of --csi' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme effects-log options" _effects_log @@ -1105,6 +1174,8 @@ _nvme () { --cdw11=':dword 11 value, used for interrupt vector configuration only' --raw-binary':dump infos in binary format' -b':alias to --raw-binary' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme get-feature options" _getf @@ -1119,6 +1190,8 @@ _nvme () { -s':alias for --self-test-code' --wait':Wait for the test to finish' -w':alias to --wait' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme device-self-test options" _device_self_test @@ -1151,6 +1224,8 @@ _nvme () { -s':alias of --scp' --uuid=':UUID Index field required aligned with Scope' -U':alias of --uuid' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme lockdown options" _lockdown @@ -1171,6 +1246,8 @@ _nvme () { -V'alias to --value' --uuid-index=':uuid index' -U':alias for --uuid-index' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme set-feature options" _setf @@ -1183,6 +1260,8 @@ _nvme () { -O':alias to --offset' --value=':the value of the property to be set' -V':alias to --value' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme set-property options" _set_property @@ -1195,6 +1274,8 @@ _nvme () { -O':alias to --offset' --human-readable':show infos in readable format' -H':alias of --human-readable' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme get-property options" _get_property @@ -1221,17 +1302,19 @@ _nvme () { _arguments '*:: :->subcmds' _describe -t commands "nvme format options" _format ;; - (fw-activate) - local _fwact - _fwact=( + (fw-commit) + local _fw_commit + _fw_commit=( /dev/nvme':supply a device to use (required)' --action=':activation action (required)? 0 - replace fw without activating, 1 - replace with activation, 2 - replace with activation at next reset' -a':alias of --action' --slot=':firmware slot to activate' -s':alias of --slot' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' - _describe -t commands "nvme fw-activate options" _fwact + _describe -t commands "nvme fw-commit options" _fw_commit ;; (fw-download) local _fwd @@ -1243,13 +1326,15 @@ _nvme () { -x':alias of --xfer' --offset=':starting offset, in dwords (defaults to 0, only useful if download is split across multiple files)' -O':alias of --offset' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme fw-download options" _fwd ;; (capacity-mgmt) - local _fwd - _fwd=( + local _capacity_mgmt + _capacity_mgmt=( /dev/nvme':supply a device to use (required)' --operation=':Operation to be performed by the controller' -O':alias of --operation' @@ -1259,9 +1344,11 @@ _nvme () { -l':alias of --cap-lower' --cap-upper=':Most significant 32 bits of the capacity in bytes' -u':alias of --cap-upper' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' - _describe -t commands "nvme capacity-mgmt options" _fwd + _describe -t commands "nvme capacity-mgmt options" _capacity_mgmt ;; (write-zeroes) local _write_zeroes @@ -1295,6 +1382,8 @@ _nvme () { -C':alias of --storage-tag-check' --dir-spec=':directive specific' -D':alias of --dir-spec' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme write-zeroes options" _write_zeroes @@ -1313,6 +1402,8 @@ _nvme () { -T':alias of --dir-type' --dir-spec':directive specific' -S':alias of --dir-spec' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme write-uncor options" _write_uncor @@ -1343,6 +1434,8 @@ _nvme () { -S':alias of --storage-tag' --storage-tag-check':Storage Tag field shall be checked as part of end-to-end data protection processing' -C':alias of --storage-tag-check' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme verify options" _verify @@ -1553,6 +1646,7 @@ _nvme () { -s':alias for --spsp' --tl=':transfer length as defined in SPC-4' -t':alias for --tl' + --timeout=':value for timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme security-send options" _ssend @@ -1571,6 +1665,8 @@ _nvme () { -a':alias for --al' --raw-binary':dump output in binary format' -b':alias for --raw-binary' + --timeout=':value for timeout' + -t':alias for --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme security-recv options" _srecv @@ -1613,6 +1709,7 @@ _nvme () { -i':alias for --iekey' --crkey':current reservation key' -c':alias for --crkey' + --timeout=':value for timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme resv-acquire options" _acq @@ -1629,6 +1726,7 @@ _nvme () { -a':alias of --rrela' --iekey':ignore existing reservation key' -i':alias of --iekey' + --timeout=':value for timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme resv-release options" _rel @@ -1645,6 +1743,8 @@ _nvme () { -e':alias of --eds' --raw-binary':dump output in binary format' -b':alias of --raw-binary' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme resv-report options" _rep @@ -1665,6 +1765,8 @@ _nvme () { -r':alias for --rrega' --iekey':ignore existing reservation key' -i':alias for --iekey' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme resv-register options" _reg @@ -1689,6 +1791,8 @@ _nvme () { -r':alias of --idr' --cdw11=':value for command dword 11' -c':alias for --cdw11' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme dsm options" _dsm @@ -1729,10 +1833,12 @@ _nvme () { -S':alias of --dir-spec' --format=':source range entry format' -F':alias of --format' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' - _describe -t commands "nvme copy options" _copy - ;; + _describe -t commands "nvme copy options" _copy + ;; (flush) local _flush _flush=( @@ -1771,6 +1877,9 @@ _nvme () { -V':alias of --show-command' --dry-run':show command instead of sending to device' -w':alias of --show-command' + --latency':latency statistics will be output following compare' + -t':alias of --latency' + --timeout=':value for timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme compare options" _comp @@ -1807,6 +1916,7 @@ _nvme () { -V':alias of --show-command' --dry-run':show command instead of sending to device' -w':alias of --show-command' + --timeout=':value for timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme read options" _read @@ -1843,6 +1953,7 @@ _nvme () { -V':alias of --show-command' --dry-run':show command instead of sending to device' -w':alias of --show-command' + --timeout=':value for timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme write options" _wr @@ -1851,6 +1962,8 @@ _nvme () { local _shor _shor=( /dev/nvme':supply a device to use (required)' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme show-regs options" _shor @@ -1907,7 +2020,6 @@ _nvme () { --duplicate-connect':allow duplicate connections between same transport host and subsystem port' -D':alias for --duplicate-connect' --disable-sqflow':disable controller sq flow control (default false)' - -d':alias for --disable-sqflow' --hdr-digest':enable transport protocol header digest (TCP transport)' -g':alias for --hdr-digest' --data-digest':enable transport protocol data digest (TCP transport)' @@ -1920,7 +2032,6 @@ _nvme () { --persistent':' -p':alias for --' --quiet':' - -S':alias for --' --config=':Use specified JSON configuration file or none to disable' -J':alias for --config' --verbose':Increase logging verbosity' @@ -1979,7 +2090,6 @@ _nvme () { --duplicate-connect':allow duplicate connections between same transport host and subsystem port' -D':alias for --duplicate-connect' --disable-sqflow':disable controller sq flow control (default false)' - -d':alias for --disable-sqflow' --hdr-digest':enable transport protocol header digest (TCP transport)' -g':alias for --hdr-digest' --data-digest':enable transport protocol data digest (TCP transport)' @@ -1992,7 +2102,6 @@ _nvme () { --persistent':' -p':alias for --' --quiet':' - -S':alias for --' --config=':Use specified JSON configuration file or none to disable' -J':alias for --config' --verbose':Increase logging verbosity' @@ -2049,7 +2158,6 @@ _nvme () { --duplicate-connect':allow duplicate connections between same transport host and subsystem port' -D':alias for --duplicate-connect' --disable-sqflow':disable controller sq flow control (default false)' - -d':alias for --disable-sqflow' --hdr-digest':enable transport protocol header digest (TCP transport)' -g':alias for --hdr-digest' --data-digest':enable transport protocol data digest (TCP transport)' @@ -2122,6 +2230,28 @@ _nvme () { _arguments '*:: :->subcmds' _describe -t commands "nvme show-hostnqn options" _show_hostnqn ;; + (tls-key) + local _tls_key + _tls_key=( + --verbose':show infos verbosely' + -v':alias of --verbose' + --output-format=':Output format: normal|json|binary' + -o':alias for --output-format' + --keyring=':name for keyring' + -r':alias for --keyring' + --keytype=':type for the key' + -t':alias for --keytype' + --keyfile='filename for reading/writing keys from' + -f':alias for --keyfile' + --import'import all keys into keyring' + -i':alias for --import' + --export'export all keys from keyring' + -e':alias for --export' + --revoke='revoke key from keyring' + -r':alias for --revoke' + ) + _arguments '*:: :->subcmds' + _describe -t commands "nvme tls-key options" _tls_key (dir-receive) local _dir_receive _dir_receive=( @@ -2142,6 +2272,8 @@ _nvme () { -r':alias of --req-resource' --human-readable':show infos in readable format' -H':alias of --human-readable' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme dir-receive options" _dir_receive @@ -2170,6 +2302,8 @@ _nvme () { -b':alias for --raw-binary' --input-file=':write/send file (default stdin)' -i':alias of --input-file' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme dir-send options" _dir_send @@ -2186,6 +2320,8 @@ _nvme () { -a':alias of --act' --nr=':Number of Controller Resources(NR)' -n':alias of --nr' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme virt-mgmt options" _virt_mgmt @@ -2230,6 +2366,7 @@ _nvme () { (nvme-mi-recv) local _nvme_mi_recv _nvme_mi_recv=( + /dev/nvme':supply a device to use (required)' --opcode=':NVMe-MI opcode to send' -O':alias of --opcode' --namespace-id=':value for nsid' @@ -2251,6 +2388,7 @@ _nvme () { (nvme-mi-send) local _nvme_mi_send _nvme_mi_send=( + /dev/nvme':supply a device to use (required)' --opcode=':NVMe-MI opcode to send' -O':alias of --opcode' --namespace-id=':value for nsid' @@ -2272,6 +2410,7 @@ _nvme () { (get-reg) local _get_reg _get_reg=( + /dev/nvme':supply a device to use (required)' --offset=':offset of the requested register' -O':alias for --offset' --human-readable':show register in readable format' @@ -2308,6 +2447,8 @@ _nvme () { -o ':alias for --output-format' --verbose':Increase the information detail in the output.' -v':alias for --verbose' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme get-reg options" _get_reg @@ -2315,6 +2456,7 @@ _nvme () { (set-reg) local _set_reg _set_reg=( + /dev/nvme':supply a device to use (required)' --offset=':offset of the requested register' -O':alias for --offset' --value=':the value of the register to be set' @@ -2340,10 +2482,60 @@ _nvme () { -o ':alias for --output-format' --verbose':Increase the information detail in the output.' -v':alias for --verbose' + --timeout=':value for timeout' + -t':alias of --timeout' ) _arguments '*:: :->subcmds' _describe -t commands "nvme set-reg options" _set_reg ;; + (io-mgmt-recv) + local _io_mgmt_recv + _io_mgmt_recv=( + /dev/nvme':supply a device to use (required)' + --namespace-id=':identifier of desired namespace' + -n':alias for --namespace-id' + --mos=':management operation specific' + -s':alias for --mos' + --mo=':management operation' + -m':alias for --mo' + --data=':optional file for data (default stdout)' + -d':alias for --data' + --data-len=':buffer len (if) data is received' + -l':alias for --data-len' + --output-format=':Output format: normal|json|binary' + -o ':alias for --output-format' + --verbose':Increase the information detail in the output.' + -v':alias for --verbose' + --timeout=':value for timeout' + -t':alias of --timeout' + ) + _arguments '*:: :->subcmds' + _describe -t commands "nvme set-reg options" _io_mgmt_recv + ;; + (io-mgmt-send) + local _io_mgmt_send + _io_mgmt_send=( + /dev/nvme':supply a device to use (required)' + --namespace-id=':identifier of desired namespace' + -n':alias for --namespace-id' + --mos=':management operation specific' + -s':alias for --mos' + --mo=':management operation' + -m':alias for --mo' + --data=':optional file for data (default stdin)' + -d':alias for --data' + --data-len=':buffer len (if) data is sent' + -l':alias for --data-len' + --output-format=':Output format: normal|json|binary' + -o ':alias for --output-format' + --verbose':Increase the information detail in the output.' + -v':alias for --verbose' + --timeout=':value for timeout' + -t':alias of --timeout' + ) + _arguments '*:: :->subcmds' + _describe -t commands "nvme set-reg options" _io_mgmt_send + ;; (version) local _version _version=( @@ -2364,8 +2556,12 @@ _nvme () { vs-fw-activate-history':Get firmware activation history log' device-capability-log':Get Device capability log' set-dssd-power-state-feature':Set DSSD Power State' + get-dssd-power-state-feature':Get DSSD Power State' telemetry-string-log':Retrieve Telemetry string Log Page' set-telemetry-profile':Set Telemetry Profile' + tcg-configuration-log':tcg configuration log' + get-error-injection':get error injection' + set-error-injection':set error injection' ) _arguments '*:: :->subcmds' _describe -t commands "nvme ocp options" _ocp @@ -2394,24 +2590,52 @@ _nvme () { _arguments '*:: :->subcmds' _describe -t commands "nvme solidigm options" _solidigm ;; + (micron) + local micron + _micron=( + select-download':Selective Firmware Download' + vs-temperature-stats':Retrieve Micron temperature statistics' + vs-pcie-stats':Retrieve Micron PCIe error stats' + clear-pcie-correctable-errors':Clear correctable PCIe errors' + vs-internal-log':Retrieve Micron logs' + vs-telemetry-controller-option':Enable/Disable controller telemetry log generation' + vs-nand-stats':Retrieve NAND Stats' + vs-smart-ext-log':Retrieve extended SMART logs' + vs-drive-info':Retrieve Drive information' + plugin-version':Display plugin version info' + cloud-SSD-plugin-version':Display plugin version info' + log-page-directory':Retrieve log page directory' + vs-fw-activate-history':Display FW activation history' + latency-tracking':Latency monitoring feature control' + latency-stats':Latency information for tracked commands' + latency-logs':Latency log details tracked by drive' + vs-smart-add-log':Retrieve extended SMART data' + clear-fw-activate-history':Clear FW activation history' + vs-smbus-option':Enable/Disable SMBUS on the drive' + ocp-telemetry-log-parse':Parse OCP Telemetry DA1 and DA2 logs' + help':Display this help' + ) + _arguments '*:: :->subcmds' + _describe -t commands "nvme micron options" _micron + ;; (help) local _h _h=( id-ctrl id-ns list-ns id-iocs create-ns delete-ns attach-ns detach-ns - list-ctrl get-ns-id get-log fw-log smart-log error-log get-feature - set-feature format fw-activate fw-download admin-passthru io-passthru - security-send security-recv resv-acquire resv-register resv-release - resv-report flush compare read write copy show-regs persistent-event-log - pred-lat-event-agg-log nvm-id-ctrl endurance-event-agg-log lba-status-log - resv-notif-log capacity-mgmt id-domain boot-part-log fid-support-effects-log - supported-log-pages lockdown media-unit-stat-log id-ns-lba-format nvm-id-ns - nvm-id-ns-lba-format supported-cap-config-log show-topology - list list-subsys id-ns-granularity primary-ctrl-caps list-secondary ns-descs - id-nvmset id-uuid list-endgrp telemetry-log changed-ns-list-log ana-log - effects-log endurance-log device-self-test self-test-log set-property - get-property write-zeroes write-uncor verify sanitize sanitize-log reset - subsystem-reset ns-rescan get-lba-status dsm discover connect-all connect - dim disconnect disconnect-all gen-hostnqn show-hostnqn dir-receive dir-send - virt-mgmt rpmb version ocp solidigm + list-ctrl get-ns-id get-log fw-log smart-log error-log get-feature + set-feature format fw-activate fw-download admin-passthru io-passthru + security-send security-recv resv-acquire resv-register resv-release + resv-report flush compare read write copy show-regs persistent-event-log + pred-lat-event-agg-log nvm-id-ctrl endurance-event-agg-log lba-status-log + resv-notif-log capacity-mgmt id-domain boot-part-log fid-support-effects-log + supported-log-pages lockdown media-unit-stat-log id-ns-lba-format nvm-id-ns + nvm-id-ns-lba-format supported-cap-config-log show-topology + list list-subsys id-ns-granularity primary-ctrl-caps list-secondary ns-descs + id-nvmset id-uuid list-endgrp telemetry-log changed-ns-list-log ana-log + effects-log endurance-log device-self-test self-test-log set-property + get-property write-zeroes write-uncor verify sanitize sanitize-log reset + subsystem-reset ns-rescan get-lba-status dsm discover connect-all connect + dim disconnect disconnect-all gen-hostnqn show-hostnqn tls-key dir-receive + dir-send virt-mgmt rpmb version ocp solidigm ) _arguments '*:: :->subcmds' _describe -t commands "help: infos on a specific nvme command, or provide no option to see a synopsis of all nvme commands" _h diff --git a/completions/bash-nvme-completion.sh b/completions/bash-nvme-completion.sh index f5cdb43..9e2e277 100644 --- a/completions/bash-nvme-completion.sh +++ b/completions/bash-nvme-completion.sh @@ -63,7 +63,7 @@ nvme_list_opts () { ;; "list-ns") opts+=" --namespace-id= -n --al -a --csi= -y \ - --outputformat= -o" + --outputformat= -o --timeout= -t" ;; "list-ctrl") opts+=" --namespace-id= -n --cntid= -c \ @@ -149,7 +149,7 @@ nvme_list_opts () { ;; "smart-log") opts+=" --namespace-id= -n --raw-binary -b \ - --output-format= -o" + --output-format= -o --verbose -v" ;; "ana-log") opts+=" --output-format -o" @@ -163,7 +163,7 @@ nvme_list_opts () { ;; "effects-log") opts+=" --output-format= -o --human-readable -H \ - --raw-binary -b" + --raw-binary -b --timeout= -t" ;; "endurance-log") opts+=" --output-format= -o --group-id -g" @@ -173,7 +173,7 @@ nvme_list_opts () { --output-format= -o" ;; "pred-lat-event-agg-log") - opts+=" --log-entries= -e --rae -r \ + opts+=" --log-entries= -e --rae -r \ --raw-binary -b --output-format= -o" ;; "persistent-event-log") @@ -181,7 +181,7 @@ nvme_list_opts () { --raw-binary -b --output-format= -o" ;; "endurance-event-agg-log") - opts+=" --log-entries= -e --rae -r \ + opts+=" --log-entries= -e --rae -r \ --raw-binary -b --output-format= -o" ;; "lba-status-log") @@ -205,10 +205,10 @@ nvme_list_opts () { "get-feature") opts+=" --namespace-id= -n --feature-id= -f --sel= -s \ --data-len= -l --cdw11= --c -uuid-index= -U --raw-binary -b \ - --human-readable -H" + --human-readable -H --timeout= -t" ;; "device-self-test") - opts+=" --namespace-id= -n --self-test-code= -s" + opts+=" --namespace-id= -n --self-test-code= -s --timeout= -t" ;; "self-test-log") opts+=" --dst-entries= -e --output-format= -o \ @@ -217,30 +217,31 @@ nvme_list_opts () { "set-feature") opts+=" --namespace-id= -n --feature-id= -f --value= -v \ --data-len= -l -data= -d --value= -v --save -s --uuid-index= -U \ - --cdw12= -c" + --cdw12= -c --timeout= -t" ;; "set-property") - opts+=" --offset= -O --value= -V" + opts+=" --offset= -O --value= -V --timeout= -t" ;; "get-property") - opts=+" --offset= -O --human-readable -H" + opts=+" --offset= -O --human-readable -H --timeout= -t" ;; "format") opts+=" --namespace-id= -n --timeout= -t --lbaf= -l \ --ses= -s --pil= -p -pi= -i --ms= -m --reset -r" ;; "fw-commit") - opts+=" --slot= -s --action= -a --bpid= -b" + opts+=" --slot= -s --action= -a --bpid= -b --timeout= -t" ;; "fw-download") - opts+=" --fw= -f --xfer= -x --offset= -O" + opts+=" --fw= -f --xfer= -x --offset= -O --timeout= -t" ;; "capacity-mgmt") opts+=" --operation= -O --element-id= -i --cap-lower= -l \ - --cap-upper= -u" + --cap-upper= -u --timeout= -t" ;; "lockdown") - opts+=" --ofi= -O --ifc= -f --prhbt= -p --scp= -s --uuid -U" + opts+=" --ofi= -O --ifc= -f --prhbt= -p --scp= -s --uuid -U \ + --timeout= -t" ;; "admin-passthru") opts+=" --opcode= -O --flags= -f --prefil= -p --rsvd= -R \ @@ -262,11 +263,11 @@ nvme_list_opts () { ;; "security-send") opts+=" --namespace-id= -n --file= -f --nssf= -N --secp= -p \ - --spsp= -s --tl= -t" + --spsp= -s --tl= -t --timeout=" ;; "security-recv") opts+=" --namespace-id= -n --size= -x --secp= -p --spsp= -s \ - --al= -t --raw-binary -b" + --al= -t --raw-binary -b --timeout=" ;; "get-lba-status") opts+=" --namespace-id= -n --start-lba= -s --max-dw= -m \ @@ -275,23 +276,24 @@ nvme_list_opts () { ;; "resv-acquire") opts+=" --namespace-id= -n --crkey= -c --prkey= -p \ - --rtype= -t --racqa= -a --iekey= -i" + --rtype= -t --racqa= -a --iekey= -i --timeout=" ;; "resv-register") opts+=" --namespace-id= -n --crkey= -c --nrkey= -k \ - --rrega= -r --cptpl= -p --iekey -i" + --rrega= -r --cptpl= -p --iekey -i --timeout= -t" ;; "resv-release") opts+=" --namespace-id= -n --crkey -c --rtype= -t \ - --rrela= -a --iekey -i" + --rrela= -a --iekey -i --timeout=" ;; "resv-report") opts+=" --namespace-id= -n --numd= -d --eds -e \ - --raw-binary= -b --output-format= -o" + --raw-binary= -b --output-format= -o --timeout= -t" ;; "dsm") - opts+=" --namespace-id= -n --ctx-attrs= -a --blocks= -b\ - --slbs= -s --ad -d --idw -w --idr -r --cdw11= -c" + opts+=" --namespace-id= -n --ctx-attrs= -a --blocks= -b \ + --slbs= -s --ad -d --idw -w --idr -r --cdw11= -c \ + --timeout= -t" ;; "copy") opts+=" --namespace-id= -n --sdlba= -d --blocks= -b --slbs= -s \ @@ -300,7 +302,7 @@ nvme_list_opts () { --ref-tag= -r --expected-ref-tag= -R \ --app-tag= -a --expected-app-tag= -A \ --app-tag-mask= -m --expected-app-tag-mask= -M \ - --dir-type= -T --dir-spec= -S --format= -F" + --dir-type= -T --dir-spec= -S --format= -F --timeout= -t" ;; "flush") opts+=" --namespace-id= -n" @@ -312,7 +314,7 @@ nvme_list_opts () { --app-tag= -a --limited-retry -l \ --force-unit-access -f --storage-tag-check -C \ --dir-type= -T --dir-spec= -S --dsm= -D --show-command -V \ - --dry-run -w --latency -t" + --dry-run -w --latency -t --timeout=" ;; "read") opts+=" --start-block= -s --block-count= -c --data-size= -z \ @@ -321,7 +323,7 @@ nvme_list_opts () { --app-tag= -a --limited-retry -l \ --force-unit-access -f --storage-tag-check -C \ --dir-type= -T --dir-spec= -S --dsm= -D --show-command -V \ - --dry-run -w --latency -t" + --dry-run -w --latency -t --timeout=" ;; "write") opts+=" --start-block= -s --block-count= -c --data-size= -z \ @@ -330,7 +332,7 @@ nvme_list_opts () { --app-tag= -a --limited-retry -l \ --force-unit-access -f --storage-tag-check -C \ --dir-type= -T --dir-spec= -S --dsm= -D --show-command -V \ - --dry-run -w --latency -t" + --dry-run -w --latency -t --timeout=" ;; "write-zeroes") opts+=" --namespace-id= -n --start-block= -s \ @@ -338,18 +340,19 @@ nvme_list_opts () { --force-unit-access -f --prinfo= -p --ref-tag= -r \ --app-tag-mask= -m --app-tag= -a \ --storage-tag= -S --storage-tag-check -C \ - --dir-type= -T --dir-spec= -S" + --dir-type= -T --dir-spec= -S --timeout= -t" ;; "write-uncor") opts+=" --namespace-id= -n --start-block= -s \ - --block-count= -c --dir-type= -T --dir-spec= -S" + --block-count= -c --dir-type= -T --dir-spec= -S \ + --timeout= -t" ;; "verify") opts+=" --namespace-id= -n --start-block= -s \ --block-count= -c --limited-retry -l \ --force-unit-access -f --prinfo= -p --ref-tag= -r \ --app-tag= -a --app-tag-mask= -m \ - --storage-tag= -S --storage-tag-check -C" + --storage-tag= -S --storage-tag-check -C --timeout= -t" ;; "sanitize") opts+=" --no-dealloc -d --oipbp -i --owpass= -n \ @@ -374,7 +377,7 @@ nvme_list_opts () { opts+=$NO_OPTS ;; "show-regs") - opts+=" --output-format= -o --human-readable -H" + opts+=" --output-format= -o --human-readable -H --timeout= -t" ;; "discover") opts+=" --transport= -t -traddr= -a -trsvcid= -s \ @@ -385,7 +388,7 @@ nvme_list_opts () { --tos= -T --hdr-digest= -g --data-digest -G \ --nr-io-queues= -i --nr-write-queues= -W \ --nr-poll-queues= -P --queue-size= -Q \ - --persistent -p --quiet -S \ + --persistent -p --quiet \ --output-format= -o" ;; "connect-all") @@ -397,7 +400,7 @@ nvme_list_opts () { --tos= -T --hdr-digest= -g --data-digest -G \ --nr-io-queues= -i --nr-write-queues= -W \ --nr-poll-queues= -P --queue-size= -Q \ - --persistent -p --quiet -S \ + --persistent -p --quiet \ --output-format= -o" ;; "connect") @@ -406,7 +409,7 @@ nvme_list_opts () { --nr-poll-queues= -P --queue-size= -Q \ --keep-alive-tmo= -k --reconnect-delay= -r \ --ctrl-loss-tmo= -l --fast-io-fail-tmo= -f \ - --tos= -T --duplicate-connect -D --disable-sqflow -d\ + --tos= -T --duplicate-connect -D --disable-sqflow \ --hdr-digest -g --data-digest -G --output-format= -o" ;; "dim") @@ -424,18 +427,24 @@ nvme_list_opts () { "show-hostnqn") opts+=$NO_OPTS ;; + "tls-key") + opts+=" --output-format= -o --verbose -v --keyring= -k \ + --keytype= -k --keyfile= -f --import -i \ + --export -e --revoke= -r" + ;; "dir-receive") opts+=" --namespace-id= -n --data-len= -l --raw-binary -b \ --dir-type= -D --dir-spec= -S --dir-oper= -O \ - --req-resource= -r --human-readable -H" + --req-resource= -r --human-readable -H --timeout= -t" ;; "dir-send") opts+=" --namespace-id= -n --data-len= -l --dir-type= -D \ --target-dir= -T --dir-spec= -S --dir-oper= -O \ - --endir= -e --human-readable -H --raw-binary -b" + --endir= -e --human-readable -H --raw-binary -b \ + --timeout= -t" ;; "virt-mgmt") - opts+=" --cntlid= -c --rt= -r --act= -a --nr= -n" + opts+=" --cntlid= -c --rt= -r --act= -a --nr= -n --timeout= -t" ;; "rpmb") opts+=" --cmd= -c --msgfile= -f --keyfile= -g \ @@ -459,13 +468,14 @@ nvme_list_opts () { --pmrcap --pmrsts --pmrebs --pmrswtp --intms --intmc \ --cc --csts --nssr --aqa --asq --acq --bprsel --bpmbl \ --cmbmsc --nssd --pmrctl --pmrmscl --pmrmscu \ - --output-format -o --verbose -v" + --output-format -o --verbose -v --timeout= -t" ;; "set-reg") opts+=" --offset, -O --value= -V --mmio32 -m --intms= --intmc= \ --cc= --csts= --nssr= --aqa= --asq= --acq= --bprsel= \ --bpmbl= --cmbmsc= --nssd= --pmrctl= --pmrmscl= \ - --pmrmscu= --output-format= -o --verbose= -v" + --pmrmscu= --output-format= -o --verbose= -v \ + --timeout= -t" ;; "version") opts+=$NO_OPTS @@ -487,7 +497,7 @@ nvme_list_opts () { } plugin_intel_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -543,7 +553,7 @@ plugin_intel_opts () { } plugin_amzn_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -575,7 +585,7 @@ plugin_amzn_opts () { } plugin_memblaze_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -630,7 +640,7 @@ plugin_memblaze_opts () { } plugin_wdc_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -742,7 +752,7 @@ plugin_wdc_opts () { } plugin_huawei_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -777,7 +787,7 @@ plugin_huawei_opts () { } plugin_toshiba_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -814,7 +824,7 @@ plugin_toshiba_opts () { } plugin_micron_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -890,7 +900,7 @@ plugin_micron_opts () { } plugin_seagate_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -945,7 +955,7 @@ plugin_seagate_opts () { } plugin_virtium_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -979,7 +989,7 @@ plugin_virtium_opts () { } plugin_shannon_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -1022,7 +1032,7 @@ plugin_shannon_opts () { } plugin_dera_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -1053,7 +1063,7 @@ plugin_dera_opts () { } plugin_sfx_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -1102,7 +1112,7 @@ plugin_sfx_opts () { } plugin_solidigm_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -1185,7 +1195,7 @@ plugin_solidigm_opts () { } plugin_transcend_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -1219,7 +1229,7 @@ plugin_transcend_opts () { } plugin_zns_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -1281,7 +1291,7 @@ plugin_zns_opts () { ;; "set-zone-desc") opts+=" --namespace-id= -n --start-lba= -s \ - --data= -d --timeout= -t --zrwa -r" + --data= -d --timeout= -t --zrwa -r" ;; "flush-zone") opts+=" --namespace-id= -n --last-lba= -l --timeout= -t" @@ -1307,7 +1317,7 @@ plugin_zns_opts () { } plugin_nvidia_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -1339,7 +1349,7 @@ plugin_nvidia_opts () { } plugin_ymtc_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -1370,7 +1380,7 @@ plugin_ymtc_opts () { } plugin_inspur_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -1401,7 +1411,7 @@ plugin_inspur_opts () { } plugin_ocp_opts () { - local opts="" + local opts="" local compargs="" local nonopt_args=0 @@ -1434,8 +1444,9 @@ plugin_ocp_opts () { --latency_monitor_feature_enable= -e" ;; "internal-log") - opts+=" --telemetry_type= -t --telemetry_data_area= -a \ - --output-file= -o" + opts+=" --telemetry-log= -l --string-log= -s \ + --output-file= -o --output-format= -f \ + --data-area= -a --telemetry-type= -t" ;; "clear-fw-activate-history") opts+=" --no-uuid -n" @@ -1455,6 +1466,9 @@ plugin_ocp_opts () { "set-dssd-power-state-feature") opts+=" --power-state= -p --no-uuid -n --save -s" ;; + "get-dssd-power-state-feature") + opts+=" --sel= -S --all -a --no-uuid -n" + ;; "telemetry-string-log") opts+=" --output-file= -o" ;; @@ -1464,9 +1478,19 @@ plugin_ocp_opts () { "set-dssd-async-event-config") opts+=" --enable-panic-notices -e --save -s" ;; - "get-dssd-power-state-feature") + "get-dssd-async-event-config") opts+=" --sel= -S" ;; + "tcg-configuration-log") + opts+=" --output-file= -o" + ;; + "get-error-injection") + opts+=" --sel= -s --no-uuid -n" + ;; + "set-error-injection") + opts+=" --data= -d --number= -n --no-uuid -N --type= -t \ + --nrtdp= -r --verbose -v --output-format -o --timeout=" + ;; "help") opts+=$NO_OPTS ;; @@ -1513,7 +1537,7 @@ _nvme_subcmds () { vs-drive-info plugin-version cloud-SSD-plugin-version \ log-page-directory vs-fw-activate-history \ vs-error-reason-identifier vs-smart-add-log \ - clear-fw-activate-history vs-smbus-option" + clear-fw-activate-history vs-smbus-option ocp-telemetry-log-parse" [seagate]="vs-temperature-stats vs-log-page-sup \ vs-smart-add-log vs-pcie-stats clear-pcie-correctable-errors \ get-host-tele get-ctrl-tele vs-internal-log \ @@ -1523,7 +1547,7 @@ _nvme_subcmds () { [dera]="smart-log-add" [sfx]="smart-log-add lat-stats get-bad-block query-cap \ change-cap set-feature get-feature" - [solidigm]="id-ctrl vs-smart-add-log garbage-collect-log \ + [solidigm]="id-ctrl vs-smart-add-log garbage-collect-log \ vs-internal-log latency-tracking-log \ clear-pcie-correctable-errors parse-telemetry-log \ clear-fw-activate-history vs-fw-activate-history log-page-directory \ @@ -1542,9 +1566,10 @@ _nvme_subcmds () { clear-fw-activate-history eol-plp-failure-mode \ clear-pcie-correctable-error-counters \ vs-fw-activate-history device-capability-log \ - set-dssd-power-state-feature telemetry-string-log \ - set-telemetry-profile set-dssd-async-event-config \ - get-dssd-async-event-config" + set-dssd-power-state-feature get-dssd-power-state-feature \ + telemetry-string-log set-telemetry-profile \ + set-dssd-async-event-config get-dssd-async-event-config \ + get-error-injection set-error-injection" ) # Associative array mapping plugins to corresponding option completions @@ -1561,7 +1586,7 @@ _nvme_subcmds () { [shannon]="plugin_shannon_opts" [dera]="plugin_dera_opts" [sfx]="plugin_sfx_opts" - [solidigm]="plugin_solidigm_opts" + [solidigm]="plugin_solidigm_opts" [transcend]="plugin_transcend_opts" [zns]="plugin_zns_opts" [nvidia]="plugin_nvidia_opts" @@ -1592,7 +1617,7 @@ _nvme_subcmds () { sanitize sanitize-log reset subsystem-reset \ ns-rescan show-regs discover connect-all \ connect disconnect disconnect-all gen-hostnqn \ - show-hostnqn dir-receive dir-send virt-mgmt \ + show-hostnqn tls-key dir-receive dir-send virt-mgmt \ rpmb boot-part-log fid-support-effects-log \ supported-log-pages lockdown media-unit-stat-log \ supported-cap-config-log dim show-topology list-endgrp \ |