summaryrefslogtreecommitdiffstats
path: root/completions
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2023-06-30 22:38:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2023-06-30 22:38:48 +0000
commit01c4d3d32c5044d3d17055c2d94d40fee9d130e1 (patch)
tree2c213cd5436bff644fa7023b94674a9c12d2e1af /completions
parentAdding upstream version 2.4+really2.4. (diff)
downloadnvme-cli-upstream/2.5.tar.xz
nvme-cli-upstream/2.5.zip
Adding upstream version 2.5.upstream/2.5
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--completions/_nvme1070
-rw-r--r--completions/bash-nvme-completion.sh114
2 files changed, 1141 insertions, 43 deletions
diff --git a/completions/_nvme b/completions/_nvme
index 7702fcc..49736f5 100644
--- a/completions/_nvme
+++ b/completions/_nvme
@@ -8,8 +8,11 @@
_nvme () {
local -a _cmds
_cmds=(
+ 'list:identify basic information for all NVMe namespaces'
+ 'list-subsys:identify information for subsystems'
'id-ctrl:display information about the controller'
'id-ns:display information about the namespace'
+ 'id-ns-granularity:display namespace granularity list'
'id-ns-lba-format:display information about the namespace capability fields for specific LBA format'
'list-ns:identify all namespace(s) attached'
'cmdset-ind-id-ns:display I/O Command Set Independent information about the namespace'
@@ -22,48 +25,87 @@ _nvme () {
'list-ctrl:identify all controller(s) attached'
'nvm-id-ctrl:display information about the nvm command set'
'nvm-id-ns:display information about the namespace of nvm command set'
- 'id-ns-lba-format:display information about the namespace of nvm command set capability fields for specific LBA format'
+ 'nvm-id-ns-lba-format:display information about the namespace of nvm command set capability fields for specific LBA format'
+ 'primary-ctrl-caps:display primary controller capabilities'
+ 'list-secondary:identify secondary controller list associated with the primary controller'
+ 'ns-descs:display namespace identification descriptors'
+ 'id-nvmset:display entries for NVM Set identifiers'
+ 'id-uuid:display list of supported Vendor Specific UUIDs'
'list-endgrp:display information about nvme endurance group list'
'get-ns-id:get namespace id of opened block device'
'get-log:retrieve any log in raw format'
'predictable-lat-log:retrieve predictable latency per nvmset log'
'pred-lat-event-agg-log:retrieve predictable latency event aggregate log'
'persistent-event-log:retrieve presistent event log'
+ 'telemetry-log:retrieve telemetry log'
'fw-log:retrieve fw log'
+ 'changed-ns-list-log:retrieve changed namespaces log'
'smart-log:retrieve SMART log'
'smart-log-add:retrieve additional SMART log'
+ 'ana-log:retrieve ANA log'
'error-log:retrieve error log'
+ 'effects-log:retrieve command effects log page and print the table'
+ 'endurance-log:retrieves endurance groups log page and prints the log'
'endurance-event-agg-log:retrieve endurance group event aggregate log'
'lba-status-log:retrieve lba status log'
- 'resv-notif-log: retrieve reservation notification log'
+ 'resv-notif-log:retrieve reservation notification log'
'get-feature:display a controller feature'
+ 'device-self-test:implementing the device self-test feature'
+ 'self-test-log:retrieve the self-test log'
'set-feature:set a controller feature and show results'
+ '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-download:download a firmware to the device'
- 'admin-passthru:submit a passthrough IOCTL'
- 'io-passthru:submit a passthrough IOCTL'
+ 'admin-passthru:submit a passthrough admin command IOCTL'
+ 'io-passthru:submit a passthrough io command IOCTL'
'security-send:send security/secure data to controller'
'security-recv:ask for security/secure data from controller'
+ 'get-lba-status:display information about potentially unrecoverable LBAs'
'resv-acquire:acquire reservation on a namespace'
'resv-register:register reservation on a namespace'
'resv-release:release reservation on a namespace'
'resv-report:report reservation on a namespace'
+ 'dsm:submit a Data Set Management command'
'copy:submit a simple copy command'
'flush:submit a flush'
'compare:compare data on device to data elsewhere'
'read:submit a read command'
'write:submit a write command'
- 'capacity-mgmt: submit capacity management command'
- 'show-regs:shows the controller registers; requires admin character device'
- 'boot-part-log: retrieve boot partition log'
+ 'capacity-mgmt:submit capacity management command'
+ 'write-zeroes:submit an NVMe write zeroes command'
+ 'write-uncor:submit an NVMe write uncorrectable command'
+ 'verify:submit an NVMe Verify command'
+ 'sanitize:submit a sanitize command'
+ 'sanitize-log:retrieve sanitize log and show it'
+ 'reset:reset the NVMe controller'
+ 'subsystem-reset:reset the NVMe subsystem'
+ 'ns-rescan:rescan the NVMe namespaces'
+ 'show-regs:show the controller registers; require admin character device'
+ 'boot-part-log:retrieve boot partition log'
'fid-support-effects-log:retrieve fid support and effects log'
- 'supported-log-pages: retrieve support log pages details'
+ 'supported-log-pages:retrieve support log pages details'
'lockdown:submit a lockdown command'
- 'media-unit-stat-log: retrieve media unit status log pages details'
- 'supported-cap-config-log: retrieve support log pages details'
- 'show-topology: show subystem topology'
+ 'media-unit-stat-log:retrieve media unit status log pages details'
+ 'supported-cap-config-log:retrieve the list of Supported Capacity Configuration Descriptors'
+ 'discover:send Get Log Page request to Discovery Controller'
+ 'connect-all:discover NVMeoF subsystems and connect to them'
+ 'connect:connect to NVMeoF subsystem'
+ 'dim:send Discovery Information Management command to a Discovery Controller (DC)'
+ 'disconnect:disconnect from NVMeoF subsystem'
+ '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'
+ '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'
+ 'rpmb:submit an NVMe RPMB command'
+ 'show-topology:show subsystem topology'
+ 'version:show the program version'
+ 'ocp:OCP cloud SSD extensions'
'help:print brief descriptions of all nvme commands'
+ 'json:dump output in json format'
)
local expl
@@ -73,8 +115,172 @@ _nvme () {
if (( CURRENT == 1 )); then
_describe -t commands "nvme subcommands" _cmds
return
+ elif (( CURRENT > 2 )); then
+ case ${words[1]} in
+ (ocp)
+ case ${words[2]} in
+ (smart-add-log)
+ local _smart_add_log
+ _smart_add_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 smart-add-log options" _smart_add_log
+ ;;
+ (latency-monitor-log)
+ local _latency_monitor_log
+ _latency_monitor_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 latency-monitor-log options" _latency_monitor_log
+ ;;
+ (set-latency-monitor-feature)
+ local _set_latency_monitor_feature
+ _set_latency_monitor_feature=(
+ /dev/nvme':supply a device to use (required)'
+ --active_bucket_timer_threshold=':Active Bucket Timer Threshold'
+ -t':alias for --active_bucket_timer_threshold'
+ --active_threshold_a=':Active Threshold A'
+ -a':alias for --active_threshold_a'
+ --active_threshold_a=':Active Threshold B'
+ -b':alias for --active_threshold_b'
+ --active_threshold_c=':Active Threshold C'
+ -c':alias for --active_threshold_c'
+ --active_threshold_d=':Active Threshold D'
+ -d':alias for --active_threshold_d'
+ --active_latency_config=':Active Latency Configuration'
+ -f':alias for --active_latency_config'
+ --active_latency_minimum_window=':Active Latency Minimum Window'
+ -w':alias for --active_latency_minimum_window'
+ --debug_log_trigger_enable='Debug Log Trigger Enable'
+ -r':alias for --debug_log_trigger_enable'
+ --discard_debug_log='Discard Debug Log'
+ -l':alias for --discard_debug_log'
+ --latency_monitor_feature_enable='Latency Monitor Feature Enable'
+ -e':alias for --latency_monitor_feature_enable'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme ocp set-latency-monitor-feature options" _set_latency_monitor_feature
+ ;;
+ (internal-log)
+ 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'
+ --output-file=':Output file name with path'
+ -o':alias for --output-file'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme ocp internal-log options" _internal_log
+ ;;
+ (clear-fw-activate-history)
+ local _clear_fw_activate_history
+ _clear_fw_activate_history=(
+ /dev/nvme':supply a device to use (required)'
+ --no-uuid':Skip UUID index search'
+ -n':alias for --no-uuid'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme ocp clear-fw-activate-history options" _clear_fw_activate_history
+ ;;
+ (eol-plp-failure-mode)
+ local _eol_plp_failure_mode
+ _eol_plp_failure_mode=(
+ /dev/nvme':supply a device to use (required)'
+ --mode=':0-3: default/rom/wtm/normal'
+ -m':alias for --mode'
+ --save':Specifies that the controller shall save the attribute'
+ -s':alias for --save'
+ --sel=':0-3,8: 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 eol-plp-failure-mode options" _eol_plp_failure_mode
+ ;;
+ (clear-pcie-correctable-error-counters)
+ local _clear_pcie_correctable_error_counters
+ _clear_pcie_correctable_error_counters=(
+ /dev/nvme':supply a device to use (required)'
+ --no-uuid':Skip UUID index search'
+ -n':alias for --no-uuid'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme ocp clear-pcie-correctable-error-counters options" _clear_pcie_correctable_error_counters
+ ;;
+ (vs-fw-activate-history)
+ local _vs_fw_activate_history
+ _vs_fw_activate_history=(
+ /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 vs-fw-activate-history options" _vs_fw_activate_history
+ ;;
+ (device-capability-log)
+ local _device_capability_log
+ _device_capability_log=(
+ /dev/nvme':supply a device to use (required)'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme ocp device-capability-log options" _device_capability_log
+ ;;
+ (*)
+ _files
+ ;;
+ esac
+ ;;
+ (sanitize)
+ case ${words[CURRENT-1]} in
+ (--sanact=|-a)
+ _values '' 'exit-failure' 'start-block-erase' 'start-overwrite' 'start-crypto-erase'
+ ;;
+ (*)
+ _files
+ ;;
+ esac
+ ;;
+ (*)
+ _files
+ ;;
+ esac
+ return
else
case ${words[CURRENT-1]} in
+ (list)
+ local _list
+ _list=(
+ --output-format=':Output format: normal|json'
+ -o':alias for --output-format'
+ --verbose':show infos verbosely'
+ -v':alias of --verbose'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme list options" _list
+ ;;
+ (list-subsys)
+ local _listsubsys
+ _listsubsys=(
+ --output-format=':Output format: normal|json'
+ -o':alias for --output-format'
+ --verbose':show infos verbosely'
+ -v':alias of --verbose'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme list-subsys options" _listsubsys
+ ;;
(id-ctrl)
local _idctrl
_idctrl=(
@@ -86,7 +292,6 @@ _nvme () {
--vendor-specific':also dump binary vendor infos'
-v':alias of --vendor-specific'
)
-
_arguments '*:: :->subcmds'
_describe -t commands "nvme id-ctrl options" _idctrl
;;
@@ -106,6 +311,16 @@ _nvme () {
_arguments '*:: :->subcmds'
_describe -t commands "nvme id-ns options" _idns
;;
+ (id-ns-granularity)
+ local _idns_granularity
+ _idns_granularity=(
+ /dev/nvme':supply a device to use (required)'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme id-ns-granularity options" _idns_granularity
+ ;;
(id-ns-lba-format)
local _idns_lba_format
_idns_lba_format=(
@@ -130,6 +345,10 @@ _nvme () {
-n':alias of --namespace-id'
--csi=':command set identifier'
-y':alias of --csi'
+ --all':show all namespaces in the subsystem, whether attached or inactive'
+ -a':alias of --all'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
)
_arguments '*:: :->subcmds'
_describe -t commands "nvme list-ns options" _listns
@@ -192,7 +411,7 @@ _nvme () {
_arguments '*:: :->subcmds'
_describe -t commands "nvme nvm-id-ns options" _nvmidns
;;
- (id-ns-lba-format)
+ (nvm-id-ns-lba-format)
local _nvm_idns_lba_format
_nvm_idns_lba_format=(
/dev/nvme':supply a device to use (required)'
@@ -208,6 +427,76 @@ _nvme () {
_arguments '*:: :->subcmds'
_describe -t commands "nvme nvm-id-ns-lba-format options" _nvm_idns_lba_format
;;
+ (primary-ctrl-caps)
+ local _primary_ctrl_caps
+ _primary_ctrl_caps=(
+ /dev/nvme':supply a device to use (required)'
+ --cntlid=':show infos for controller <cntid>'
+ -c':alias of --cntlid'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
+ --human-readable':show infos in readable format'
+ -H':alias of --human-readable'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme primary-ctrl-caps options" _primary_ctrl_caps
+ ;;
+ (list-secondary)
+ local _listsecondary
+ _listsecondary=(
+ /dev/nvme':supply a device to use (required)'
+ --cntid=':show infos for lowest controller <cntid>'
+ -c':alias of --cntid'
+ --namespace-id=':show infos for namespace <nsid>'
+ -n':alias of --namespace-id'
+ --num-entries=':number of entries to retrieve'
+ -e':alias of --num-entries'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme list-secondary options" _listsecondary
+ ;;
+ (ns-descs)
+ local _ns_descs
+ _ns_descs=(
+ /dev/nvme':supply a device to use (required)'
+ --namespace-id=':show infos for namespace <nsid>'
+ -n':alias of --namespace-id'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
+ --raw-binary':dump infos in binary format'
+ -b':alias of --raw-binary'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme ns-descs options" _ns_descs
+ ;;
+ (id-nvmset)
+ local _id_nvmset
+ _id_nvmset=(
+ /dev/nvme':supply a device to use (required)'
+ --nvmset_id=':NVM Set Identify value'
+ -i':alias of --nvmset_id'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme id-nvmset options" _id_nvmset
+ ;;
+ (id-uuid)
+ local _id_uuid
+ _id_uuid=(
+ /dev/nvme':supply a device to use (required)'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
+ --raw-binary':dump infos in binary format'
+ -b':alias of --raw-binary'
+ --human-readable':show infos in readable format'
+ -H':alias of --human-readable'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme id-uuid options" _id_uuid
+ ;;
(list-endgrp)
local _listendgrp
_listendgrp=(
@@ -216,7 +505,7 @@ _nvme () {
-i':alias of --endgrp-id'
)
_arguments '*:: :->subcmds'
- _describe -t commands "nvme list-ns options" _listendgrp
+ _describe -t commands "nvme list-endgrp options" _listendgrp
;;
(create-ns)
local _createns
@@ -320,6 +609,22 @@ _nvme () {
-n':alias of --namespace-id'
--raw-binary':dump infos in binary format'
-b':alias of --raw-binary'
+ --aen=':result of the aen, use to override log id'
+ -a':alias of --aen'
+ --lpo=':log page offset specifies the location within a log page from where to start returning data'
+ -o':alias of --lpo'
+ --lsi=':log specific identifier specifies an identifier that is required for a particular log page'
+ -S':alias of --lsi'
+ --rae':Retain an Asynchronous Event'
+ -r':alias of --rae'
+ --uuid-index=':uuid index'
+ -U':alias for --uuid-index'
+ --csi=':command set identifier'
+ -y':alias of --csi'
+ --ot':offset type'
+ -O':alias of --ot'
+ --xfer-len=':read chunk size (default 4k)'
+ -x':alias of --xfer-len'
)
_arguments '*:: :->subcmds'
_describe -t commands "nvme get-log options" _getlog
@@ -328,7 +633,7 @@ _nvme () {
local _persistenteventlog
_persistenteventlog=(
/dev/nvme':supply a device to use (required)'
- --action=': action the controller shall take for this log page'
+ --action=':action the controller shall take for this log page'
-a':alias to --action'
--log-len=':number of bytes to show for requested log'
-l':alias of --log-len'
@@ -336,15 +641,35 @@ _nvme () {
-b':alias of --raw-binary'
)
_arguments '*:: :->subcmds'
- _describe -t commands "persistent-event-log options" _persistenteventlog
+ _describe -t commands "nvme persistent-event-log options" _persistenteventlog
+ ;;
+ (telemetry-log)
+ local _telemetry_log
+ _telemetry_log=(
+ /dev/nvme':supply a device to use (required)'
+ --output-file=':telemetry data output write'
+ -o':alias for --output-file'
+ --host-generate=':Have the host tell the controller to generate the report'
+ -g':alias to --host-generate'
+ --controller-init':Gather report generated by the controller'
+ -c':alias of --controller-init'
+ --data-area':Pick which telemetry data area to report'
+ -d':alias of --data-area'
+ --data-area':Pick which telemetry data area to report'
+ -d':alias of --data-area'
+ --rae':Retain an Asynchronous Event'
+ -r':alias to --rae'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme telemetry-log options" _telemetry_log
;;
(pred-lat-event-agg-log)
local _predlateventagglog
_predlateventagglog=(
/dev/nvme':supply a device to use (required)'
- --log-entries=': Number of pending NVM Set Entries log list'
+ --log-entries=':Number of pending NVM Set Entries log list'
-e':alias to --log-entries'
- --rae': Retain an Asynchronous Event'
+ --rae':Retain an Asynchronous Event'
-r':alias to --rae'
--raw-binary':dump infos in binary format'
-b':alias of --raw-binary'
@@ -356,7 +681,7 @@ _nvme () {
local _predictablelatlog
_predictablelatlog=(
/dev/nvme':supply a device to use (required)'
- --nvmset-id=': NVM Set Identifier on which log page retrieve info'
+ --nvmset-id=':NVM Set Identifier on which log page retrieve info'
-i':alias to --nvmset-id'
--raw-binary':dump infos in binary format'
-b':alias of --raw-binary'
@@ -374,6 +699,18 @@ _nvme () {
_arguments '*:: :->subcmds'
_describe -t commands "nvme fw-log options" _fwlog
;;
+ (changed-ns-list-log)
+ local _changed_ns_list_log
+ _changed_ns_list_log=(
+ /dev/nvme':supply a device to use (required)'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
+ --raw-binary':dump infos in binary format'
+ -b':alias of --raw-binary'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme changed-ns-list-log options" _changed_ns_list_log
+ ;;
(smart-log)
local _smartlog
_smartlog=(
@@ -398,6 +735,18 @@ _nvme () {
_arguments '*:: :->subcmds'
_describe -t commands "nvme smart-log-add options" _add
;;
+ (ana-log)
+ local _ana_log
+ _ana_log=(
+ /dev/nvme':supply a device to use (required)'
+ --groups':Return ANA groups only'
+ -g':alias to --groups'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme ana-log options" _ana_log
+ ;;
(error-log)
local _errlog
_errlog=(
@@ -412,13 +761,41 @@ _nvme () {
_arguments '*:: :->subcmds'
_describe -t commands "nvme error-log options" _errlog
;;
+ (effects-log)
+ local _effects_log
+ _effects_log=(
+ /dev/nvme':supply a device to use (required)'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
+ --human-readable':show infos in readable format'
+ -H':alias of --human-readable'
+ --raw-binary':dump infos in binary format'
+ -b':alias to --raw-binary'
+ --csi=':command set identifier'
+ -c':alias of --csi'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme effects-log options" _effects_log
+ ;;
+ (endurance-log)
+ local _endurance_log
+ _endurance_log=(
+ /dev/nvme':supply a device to use (required)'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
+ --group-id=':The endurance group identifier'
+ -g':alias of --group-id'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme endurance-log options" _endurance_log
+ ;;
(endurance-event-agg-log)
local _enduranceeventagglog
_enduranceeventagglog=(
/dev/nvme':supply a device to use (required)'
- --log-entries=': Number of Endurance Group Event Agg Entries log list'
+ --log-entries=':Number of Endurance Group Event Agg Entries log list'
-e':alias to --log-entries'
- --rae': Retain an Asynchronous Event'
+ --rae':Retain an Asynchronous Event'
-r':alias to --rae'
--raw-binary':dump infos in binary format'
-b':alias of --raw-binary'
@@ -430,7 +807,7 @@ _nvme () {
local _lbastatuslog
_lbastatuslog=(
/dev/nvme':supply a device to use (required)'
- --rae': Retain an Asynchronous Event'
+ --rae':Retain an Asynchronous Event'
-r':alias to --rae'
)
_arguments '*:: :->subcmds'
@@ -448,9 +825,9 @@ _nvme () {
local _bootpartlog
_bootpartlog=(
/dev/nvme':supply a device to use (required)'
- --lsp=': log specific field'
+ --lsp=':log specific field'
-s':alias to --lsp'
- --output-file=': boot partition data output write'
+ --output-file=':boot partition data output write'
-f':alias for --output-file'
)
_arguments '*:: :->subcmds'
@@ -477,11 +854,39 @@ _nvme () {
_arguments '*:: :->subcmds'
_describe -t commands "nvme get-feature options" _getf
;;
+ (device-self-test)
+ local _device_self_test
+ _device_self_test=(
+ /dev/nvme':supply a device to use (required)'
+ --namespace-id=':Indicate the namespace in which the device self-test has to be carried out'
+ -n':alias to --namespace-id'
+ --self-test-code=':This field specifies the action taken by the device self-test command'
+ -s':alias for --self-test-code'
+ --wait':Wait for the test to finish'
+ -w':alias to --wait'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme device-self-test options" _device_self_test
+ ;;
+ (self-test-log)
+ local _self_test_log
+ _self_test_log=(
+ /dev/nvme':supply a device to use (required)'
+ --dst-entries=':Indicate how many DST log entries to be retrieved'
+ -e':alias to --dst-entries'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
+ --verbose':show infos verbosely'
+ -v':alias of --verbose'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme self-test-log options" _self_test_log
+ ;;
(lockdown)
local _lockdown
_lockdown=(
/dev/nvme':supply a device to use (required)'
- --ofi=': Opcode or Feature Identifier(OFI) (required)'
+ --ofi=':Opcode or Feature Identifier(OFI) (required)'
-o':alias of --ofi'
--ifc=':Interface (INF) field Information (required)'
-f':alias of --ifc'
@@ -515,6 +920,30 @@ _nvme () {
_arguments '*:: :->subcmds'
_describe -t commands "nvme set-feature options" _setf
;;
+ (set-property)
+ local _set_property
+ _set_property=(
+ /dev/nvme':supply a device to use (required)'
+ --offset=':the offset of the property'
+ -o':alias to --offset'
+ --value=':the value of the property to be set'
+ -v':alias to --value'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme set-property options" _set_property
+ ;;
+ (get-property)
+ local _get_property
+ _get_property=(
+ /dev/nvme':supply a device to use (required)'
+ --offset=':the offset of the property'
+ -o':alias to --offset'
+ --human-readable':show infos in readable format'
+ -H':alias of --human-readable'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme get-property options" _get_property
+ ;;
(format)
local _format
_format=(
@@ -579,6 +1008,150 @@ _nvme () {
_arguments '*:: :->subcmds'
_describe -t commands "nvme capacity-mgmt options" _fwd
;;
+ (write-zeroes)
+ local _write_zeroes
+ _write_zeroes=(
+ /dev/nvme':supply a device to use (required)'
+ --namespace-id=':value for nsid'
+ -n':alias of --namespace-id'
+ --start-block=':64-bit address of the first logical block to be written'
+ -s':alias of --start-block'
+ --block-count=':number of logical blocks on device to write'
+ -c':alias of --block-count'
+ --dir-type=':directive type'
+ -T':alias of --dir-type'
+ --deac':Set DEAC bit, requesting controller to deallocate specified logical blocks'
+ -d':alias of --deac'
+ --limited-retry':if included, controller should try less hard to send data to media (if not included, all available data-recovery means used)'
+ -l':alias of --limited-retry'
+ --force-unit-access':data shall be written to nonvolatile media before command completion is indicated'
+ -f':alias of --force-unit-access'
+ --prinfo=':protection information and check field'
+ -p':alias of --prinfo'
+ --ref-tag=':reference tag (for end to end PI)'
+ -r':alias of --ref-tag'
+ --app-tag-mask=':application tag mask (for end to end PI)'
+ -m':alias of --app-tag-mask'
+ --app-tag=':application tag (for end to end PI)'
+ -a':alias of --app-tag'
+ --storage-tag=':storage tag for end-to-end PI'
+ -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'
+ --dir-spec=':directive specific'
+ -D':alias of --dir-spec'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme write-zeroes options" _write_zeroes
+ ;;
+ (write-uncor)
+ local _write_uncor
+ _write_uncor=(
+ /dev/nvme':supply a device to use (required)'
+ --namespace-id=':value for nsid'
+ -n':alias of --namespace-id'
+ --start-block=':64-bit address of the first logical block to be written'
+ -s':alias of --start-block'
+ --block-count=':number of logical blocks on device to write'
+ -c':alias of --block-count'
+ --dir-type=':directive type'
+ -T':alias of --dir-type'
+ --dir-spec':directive specific'
+ -S':alias of --dir-spec'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme write-uncor options" _write_uncor
+ ;;
+ (verify)
+ local _verify
+ _verify=(
+ /dev/nvme':supply a device to use (required)'
+ --namespace-id=':value for nsid'
+ -n':alias of --namespace-id'
+ --start-block=':64-bit address of the first logical block to be verified'
+ -s':alias of --start-block'
+ --block-count=':number of logical blocks on device to verify'
+ -c':alias of --block-count'
+ --limited-retry':if included, controller should try less hard to send data to media (if not included, all available data-recovery means used)'
+ -l':alias of --limited-retry'
+ --force-unit-access':data shall be verified from nonvolatile media before command completion is indicated'
+ -f':alias of --force-unit-access'
+ --prinfo=':protection information and check field'
+ -p':alias of --prinfo'
+ --ref-tag=':reference tag (for end to end PI)'
+ -r':alias of --ref-tag'
+ --app-tag=':application tag (for end to end PI)'
+ -a':alias of --app-tag'
+ --app-tag-mask=':application tag mask (for end to end PI)'
+ -m':alias of --app-tag-mask'
+ --storage-tag=':storage tag for end-to-end PI'
+ -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'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme verify options" _verify
+ ;;
+ (sanitize)
+ local _sanitize
+ _sanitize=(
+ /dev/nvme':supply a device to use (required)'
+ --no-dealloc':No deallocate after sanitize'
+ -d':alias of --no-dealloc'
+ --oipbp':Overwrite invert pattern between passes'
+ -i':alias of --oipbp'
+ --owpass=':Overwrite pass count'
+ -n':alias of --owpass'
+ --ause':Allow unrestricted sanitize exit'
+ -u':alias of --ause'
+ --sanact=':Sanitize action: 1 = Exit failure mode, 2 = Start block erase, 3 = Start overwrite, 4 = Start crypto erase'
+ -a':alias of --sanact'
+ --ovrpat=':Overwrite pattern'
+ -p':alias of --ovrpat'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme sanitize options" _sanitize
+ ;;
+ (sanitize-log)
+ local _sanitize_log
+ _sanitize_log=(
+ /dev/nvme':supply a device to use (required)'
+ --rae':Retain an Asynchronous Event'
+ -r':alias of --rae'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
+ --human-readable':show infos in readable format'
+ -H':alias of --human-readable'
+ --raw-binary':dump infos in binary format'
+ -b':alias of --raw-binary'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme sanitize-log options" _sanitize_log
+ ;;
+ (reset)
+ local _reset
+ _reset=(
+ /dev/nvme':supply a device to use (required)'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme reset options" _reset
+ ;;
+ (subsystem-reset)
+ local _subsystem_reset
+ _subsystem_reset=(
+ /dev/nvme':supply a device to use (required)'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme subsystem-reset options" _subsystem_reset
+ ;;
+ (ns-rescan)
+ local _ns_rescan
+ _ns_rescan=(
+ /dev/nvme':supply a device to use (required)'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme ns-rescan options" _ns_rescan
+ ;;
(supported-log-pages)
local _support
_support=(
@@ -747,6 +1320,28 @@ _nvme () {
_arguments '*:: :->subcmds'
_describe -t commands "nvme security-recv options" _srecv
;;
+ (get-lba-status)
+ local _get_lba_status
+ _get_lba_status=(
+ /dev/nvme':supply a device to use (required)'
+ --namespace-id=':show infos for namespace <nsid>'
+ -n':alias of --namespace-id'
+ --start-lba=':Starting LBA(SLBA) in 64-bit address of the first logical block'
+ -s':alias for --start-lba'
+ --max-dw=':Maximum Number of Dwords(MNDW) specifies maximum number of dwords to return'
+ -m':alias for --max-dw'
+ --action=':Action Type(ATYPE) specifies the mechanism'
+ -a':alias for --action'
+ --range-len=':Range Length(RL) specifies the length of the range of contiguous LBAs beginning at SLBA'
+ -l':alias for --range-len'
+ --timeout':value for timeout'
+ -t':alias for --timeout'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme get-lba-status options" _get_lba_status
+ ;;
(resv-acquire)
local _acq
_acq=(
@@ -819,6 +1414,30 @@ _nvme () {
_arguments '*:: :->subcmds'
_describe -t commands "nvme resv-register options" _reg
;;
+ (dsm)
+ local _dsm
+ _dsm=(
+ /dev/nvme':supply a device to use (required)'
+ --namespace-id=':value for nsid'
+ -n':alias of --namespace-id'
+ --ctx-attrs=':Comma separated list of the context attributes in each range'
+ -a':alias of --ctx-attrs'
+ --blocks':Comma separated list of the number of blocks in each range'
+ -b':alias of --blocks'
+ --slbs':Comma separated list of the starting block in each range'
+ -s':alias of --slbs'
+ --ad':Attribute Deallocate'
+ -d':alias of --ad'
+ --idw':Attribute Integral Dataset for Write'
+ -w':alias of --idw'
+ --idr':Attribute Integral Dataset for Read'
+ -r':alias of --idr'
+ --cdw11=':value for command dword 11'
+ -c':alias for --cdw11'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme dsm options" _dsm
+ ;;
(copy)
local _copy
_copy=(
@@ -849,11 +1468,11 @@ _nvme () {
-m':alias of --app-tag-mask'
--expected-app-tag-masks=':expected lba application tag masks (read part, comma-separated list)'
-M':alias of --expected-app-tag-masks'
- --dir-type':directive type (write part)'
+ --dir-type=':directive type (write part)'
-T':alias of --dir-type'
- --dir-spec':directive specific (write part)'
+ --dir-spec=':directive specific (write part)'
-S':alias of --dir-spec'
- --format':source range entry format'
+ --format=':source range entry format'
-F':alias of --format'
)
_arguments '*:: :->subcmds'
@@ -923,7 +1542,7 @@ _nvme () {
-m':alias of --app-tag-mask'
--app-tag=':application tag (for end to end PI)'
-a':alias of --app-tag'
- --limited-retry=':if included, controller should try less hard to retrieve data from media (if not included, all available data-recovery means used)'
+ --limited-retry':if included, controller should try less hard to retrieve data from media (if not included, all available data-recovery means used)'
-l':alias of --limited-retry'
--latency':latency statistics will be output following read'
-t':alias of --latency'
@@ -959,7 +1578,7 @@ _nvme () {
-m':alias of --app-tag-mask'
--app-tag=':application tag (for end to end PI)'
-a':alias of --app-tag'
- --limited-retry=':if included, controller should try less hard to send data to media (if not included, all available data-recovery means used)'
+ --limited-retry':if included, controller should try less hard to send data to media (if not included, all available data-recovery means used)'
-l':alias of --limited-retry'
--latency':latency statistics will be output following write'
-t':alias of --latency'
@@ -989,6 +1608,357 @@ _nvme () {
_arguments '*:: :->subcmds'
_describe -t commands "nvme fid-support-effects-log options" _fidsupporteffectslog
;;
+ (discover)
+ local _discover
+ _discover=(
+ --device=':use existing discovery controller device'
+ -d':alias for --device'
+ --transport=':transport type'
+ -t':alias for --transport'
+ --nqn=':subsystem nqn'
+ -n':alias for --nqn'
+ --traddr=':transport address'
+ -a':alias for --traddr'
+ --trsvcid=':transport service id (e.g. IP port)'
+ -s':alias for --trsvcid'
+ --host-traddr=':host traddr (e.g. FC WWN's)'
+ -w':alias for --host-traddr'
+ --host-iface=':host interface (for tcp transport)'
+ -f':alias for --host-iface'
+ --hostnqn=':user-defined hostnqn'
+ -q':alias for --hostnqn'
+ --hostid=':user-defined hostid (if default not used)'
+ -I':alias for --hostid'
+ --dhchap-secret=':user-defined dhchap key (if default not used)'
+ -S':alias for --dhchap-secret'
+ --nr-io-queues=':number of io queues to use (default is core count)'
+ -i':alias for --nr-io-queues'
+ --nr-write-queues=':number of write queues to use (default 0)'
+ -W':alias for --nr-write-queues'
+ --nr-poll-queues=':number of poll queues to use (default 0)'
+ -P':alias for --nr-poll-queues'
+ --queue-size=':number of io queue elements to use (default 128)'
+ -Q':alias for --queue-size'
+ --keep-alive-tmo=':keep alive timeout period in seconds'
+ -k':alias for --keep-alive-tmo'
+ --reconnect-delay=':reconnect timeout period in seconds'
+ -c':alias for --reconnect-delay'
+ --ctrl-loss-tmo=':controller loss timeout period in seconds'
+ -l':alias for --ctrl-loss-tmo'
+ --tos=':type of service'
+ -T':alias for --tos'
+ --keyring=':Keyring for TLS key lookup'
+ --tls_key=':TLS key to use'
+ --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)'
+ -G':alias for --data-digest'
+ --tls':enable TLS'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
+ --raw':save raw output to file'
+ -r':alias of --raw'
+ --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'
+ -v':alias for --verbose'
+ --dump-config':Dump configuration file to stdout'
+ -O':alias for --dump-config'
+ --force':Force persistent discovery controller creation'
+ --nbft':Only look at NBFT tables'
+ --no-nbft':Do not look at NBFT tables'
+ --nbft-patch=':user-defined path for NBFT tables'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme discover options" _discover
+ ;;
+ (connect-all)
+ local _connect_all
+ _connect_all=(
+ --device=':use existing discovery controller device'
+ -d':alias for --device'
+ --transport=':transport type'
+ -t':alias for --transport'
+ --nqn=':subsystem nqn'
+ -n':alias for --nqn'
+ --traddr=':transport address'
+ -a':alias for --traddr'
+ --trsvcid=':transport service id (e.g. IP port)'
+ -s':alias for --trsvcid'
+ --host-traddr=':host traddr (e.g. FC WWN's)'
+ -w':alias for --host-traddr'
+ --host-iface=':host interface (for tcp transport)'
+ -f':alias for --host-iface'
+ --hostnqn=':user-defined hostnqn'
+ -q':alias for --hostnqn'
+ --hostid=':user-defined hostid (if default not used)'
+ -I':alias for --hostid'
+ --dhchap-secret=':user-defined dhchap key (if default not used)'
+ -S':alias for --dhchap-secret'
+ --nr-io-queues=':number of io queues to use (default is core count)'
+ -i':alias for --nr-io-queues'
+ --nr-write-queues=':number of write queues to use (default 0)'
+ -W':alias for --nr-write-queues'
+ --nr-poll-queues=':number of poll queues to use (default 0)'
+ -P':alias for --nr-poll-queues'
+ --queue-size=':number of io queue elements to use (default 128)'
+ -Q':alias for --queue-size'
+ --keep-alive-tmo=':keep alive timeout period in seconds'
+ -k':alias for --keep-alive-tmo'
+ --reconnect-delay=':reconnect timeout period in seconds'
+ -c':alias for --reconnect-delay'
+ --ctrl-loss-tmo=':controller loss timeout period in seconds'
+ -l':alias for --ctrl-loss-tmo'
+ --tos=':type of service'
+ -T':alias for --tos'
+ --keyring=':Keyring for TLS key lookup'
+ --tls_key=':TLS key to use'
+ --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)'
+ -G':alias for --data-digest'
+ --tls':enable TLS'
+ --output-format=':Output format: normal|json|binary'
+ -o':alias for --output-format'
+ --raw':save raw output to file'
+ -r':alias of --raw'
+ --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'
+ -v':alias for --verbose'
+ --dump-config':Dump configuration file to stdout'
+ -O':alias for --dump-config'
+ --force':Force persistent discovery controller creation'
+ --nbft':Only look at NBFT tables'
+ --no-nbft':Do not look at NBFT tables'
+ --nbft-patch=':user-defined path for NBFT tables'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme connect-all options" _connect_all
+ ;;
+ (connect)
+ local _connect
+ _connect=(
+ --transport=':transport type'
+ -t':alias for --transport'
+ --nqn=':subsystem nqn'
+ -n':alias for --nqn'
+ --traddr=':transport address'
+ -a':alias for --traddr'
+ --trsvcid=':transport service id (e.g. IP port)'
+ -s':alias for --trsvcid'
+ --host-traddr=':host transport address'
+ -w':alias for --host-traddr'
+ --host-iface=':host interface (for tcp transport)'
+ -f':alias for --host-iface'
+ --hostnqn=':user-defined hostnqn'
+ -q':alias for --hostnqn'
+ --hostid=':user-defined hostid (if default not used)'
+ -I':alias for --hostid'
+ --dhchap-secret=':user-defined dhchap key (if default not used)'
+ -S':alias for --dhchap-secret'
+ --nr-io-queues=':number of io queues to use (default is core count)'
+ -i':alias for --nr-io-queues'
+ --nr-write-queues=':number of write queues to use (default 0)'
+ -W':alias for --nr-write-queues'
+ --nr-poll-queues=':number of poll queues to use (default 0)'
+ -P':alias for --nr-poll-queues'
+ --queue-size=':number of io queue elements to use (default 128)'
+ -Q':alias for --queue-size'
+ --keep-alive-tmo=':keep alive timeout period in seconds'
+ -k':alias for --keep-alive-tmo'
+ --reconnect-delay=':reconnect timeout period in seconds'
+ -c':alias for --reconnect-delay'
+ --ctrl-loss-tmo=':controller loss timeout period in seconds'
+ -l':alias for --ctrl-loss-tmo'
+ --tos=':type of service'
+ -T':alias for --tos'
+ --keyring=':Keyring for TLS key lookup'
+ --tls_key=':TLS key to use'
+ --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)'
+ -G':alias for --data-digest'
+ --tls':enable TLS'
+ --dhchap-ctrl-secret=':user-defined dhchap controller key (for bi-directional authentication)'
+ -C':alias for --dhchap-ctrl-secret'
+ --config=':Use specified JSON configuration file or none to disable'
+ -J':alias for --config'
+ --verbose':Increase logging verbosity'
+ -v':alias for --verbose'
+ --dump-config':Dump configuration file to stdout'
+ -O':alias for --dump-config'
+ --output-format=':Output format: normal|json'
+ -o':alias for --output-format'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme connect options" _connect
+ ;;
+ (dim)
+ local _dim
+ _dim=(
+ --nqn=':Comma-separated list of DC nqn'
+ -n':alias for --nqn'
+ --device=':Comma-separated list of DC nvme device handle'
+ -d':alias for --device'
+ --task=':The task to perform: register|deregister'
+ -t':alias for --task'
+ --verbose':Increase logging verbosity'
+ -v':alias for --verbose'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme dim options" _dim
+ ;;
+ (disconnect)
+ local _disconnect
+ _disconnect=(
+ --nqn=':subsystem nqn'
+ -n':alias for --nqn'
+ --device=':nvme device handle'
+ -d':alias for --device'
+ --verbose':Increase logging verbosity'
+ -v':alias for --verbose'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme disconnect options" _disconnect
+ ;;
+ (disconnect-all)
+ local _disconnect_all
+ _disconnect_all=(
+ --transport=':transport type'
+ -r':alias for --transport'
+ --verbose':Increase logging verbosity'
+ -v':alias for --verbose'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme disconnect-all options" _disconnect_all
+ ;;
+ (gen-hostnqn)
+ local _gen_hostnqn
+ _gen_hostnqn=(
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme gen-hostnqn options" _gen_hostnqn
+ ;;
+ (show-hostnqn)
+ local _show_hostnqn
+ _show_hostnqn=(
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme show-hostnqn options" _show_hostnqn
+ ;;
+ (dir-receive)
+ local _dir_receive
+ _dir_receive=(
+ /dev/nvme':supply a device to use (required)'
+ --namespace-id=':value for nsid'
+ -n':alias of --namespace-id'
+ --data-len=':length for data buffer'
+ -l':alias of --data-len'
+ --raw-binary':dump output in binary format'
+ -b':alias for --raw-binary'
+ --dir-type=':directive type'
+ -D':alias of --dir-type'
+ --dir-spec=':directive specific'
+ -S':alias of --dir-spec'
+ --dir-oper=':directive operation'
+ -O':alias of --dir-oper'
+ --req-resource=':namespace stream requested'
+ -r':alias of --req-resource'
+ --human-readable':show infos in readable format'
+ -H':alias of --human-readable'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme dir-receive options" _dir_receive
+ ;;
+ (dir-send)
+ local _dir_send
+ _dir_send=(
+ /dev/nvme':supply a device to use (required)'
+ --namespace-id=':value for nsid'
+ -n':alias of --namespace-id'
+ --data-len=':length for data buffer'
+ -l':alias of --data-len'
+ --dir-type=':directive type'
+ -D':alias of --dir-type'
+ --target-dir=':target directive type to be enabled/disabled'
+ -T':alias of --target-dir'
+ --dir-spec=':directive specific'
+ -S':alias of --dir-spec'
+ --dir-oper=':directive operation'
+ -O':alias of --dir-oper'
+ --endir=':directive enable'
+ -e':alias of --endir'
+ --human-readable':show infos in readable format'
+ -H':alias of --human-readable'
+ --raw-binary':dump output in binary format'
+ -b':alias for --raw-binary'
+ --input-file=':write/send file (default stdin)'
+ -i':alias of --input-file'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme dir-send options" _dir_send
+ ;;
+ (virt-mgmt)
+ local _virt_mgmt
+ _virt_mgmt=(
+ /dev/nvme':supply a device to use (required)'
+ --cntlid=':Controller Identifier(CNTLID)'
+ -c':alias of --cntlid'
+ --rt=':Resource Type(RT): 0|1'
+ -r':alias of --rt'
+ --act=':Action(ACT): 1|7|8|9'
+ -a':alias of --act'
+ --nr=':Number of Controller Resources(NR)'
+ -n':alias of --nr'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme virt-mgmt options" _virt_mgmt
+ ;;
+ (rpmb)
+ local _rpmb
+ _rpmb=(
+ /dev/nvme':supply a device to use (required)'
+ --cmd=':RPMB action: info|program-key|read-counter|write-data|read-data|write-config|read-config'
+ -c':alias of --cmd'
+ --msgfile=':data file for read/write-data, read/write-config options'
+ -f':alias of --msgfile'
+ --keyfile=':key file that has authentication key to be used'
+ -g':alias of --keyfile'
+ --key=':key to be used for authentication'
+ -k':alias of --key'
+ --msg=':data to be written on write-data or write-config commands'
+ -d':alias of --msg'
+ --address=':Sector offset to read from or write to for an RPMB target, default 0'
+ -o':alias of --address'
+ --blocks=':Number of 512 blocks to read or write'
+ -b':alias of --blocks'
+ --target=':RPMB target - numerical value of 0 to 6, default 0'
+ -t':alias of --target'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme rpmb options" _rpmb
+ ;;
(show-topology)
local _showtopology
_showtopology=(
@@ -1002,6 +1972,29 @@ _nvme () {
_arguments '*:: :->subcmds'
_describe -t commands "nvme show-topology options" _showtopology
;;
+ (version)
+ local _version
+ _version=(
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme version options" _version
+ ;;
+ (ocp)
+ local _ocp
+ _ocp=(
+ smart-add-log':Retrieve extended SMART Information'
+ latency-monitor-log':Get Latency Monitor Log Page'
+ set-latency-monitor-feature':Set Latency Monitor feature'
+ internal-log':Retrieve and save internal device telemetry log'
+ clear-fw-activate-history':Clear firmware update history log"'
+ eol-plp-failure-mode':Define EOL or PLP circuitry failure mode'
+ clear-pcie-correctable-error-counters':Clear PCIe correctable error counters'
+ vs-fw-activate-history':Get firmware activation history log'
+ device-capability-log':Get Device capability log'
+ )
+ _arguments '*:: :->subcmds'
+ _describe -t commands "nvme ocp options" _ocp
+ ;;
(help)
local _h
_h=( id-ctrl id-ns list-ns id-iocs create-ns delete-ns attach-ns detach-ns
@@ -1009,11 +2002,18 @@ _nvme () {
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
- )
+ 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
+ )
_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 fae3ab4..8f451ff 100644
--- a/completions/bash-nvme-completion.sh
+++ b/completions/bash-nvme-completion.sh
@@ -5,8 +5,11 @@
# Kelly Kaoudis kelly.n.kaoudis at intel.com, Aug. 2015
nvme_list_opts () {
- local opts=""
+ local opts=""
local compargs=""
+ local vals=""
+ local opt=""
+ local val=""
local nonopt_args=0
for (( i=0; i < ${#words[@]}-1; i++ )); do
@@ -20,6 +23,19 @@ nvme_list_opts () {
fi
opts+=" "
+ vals+=" "
+
+ if [[ $cur != -* ]] && [[ $cur != "" ]] && [[ $prev == "=" ]] && [[ ${words[$cword-2]} == --* ]]; then
+ opt+="${words[$cword-2]}"
+ val+="$cur"
+ elif [[ $cur == "" ]] && [[ $prev != "=" ]] || [[ $cur == "=" ]] && [[ $prev == --* ]]; then
+ opt+="$prev"
+ elif [[ $cur != "=" ]] && [[ $prev != --* ]] && [[ $prev != "=" ]]; then
+ opt+="$prev"
+ val+="$cur"
+ else
+ opt+="$cur"
+ fi
# Listed here in the same order as in nvme-builtin.h
case "$1" in
@@ -88,13 +104,17 @@ nvme_list_opts () {
opts+=" --endgrp-id= -i --output-format= -o"
;;
"id-iocs")
- opts+=" --controller-id= -c --output-format= -o --human-readable -H"
+ opts+=" --controller-id= -c"
+ ;;
+ "id-domain")
+ opts+=" --domain-id= -c --output-format= -o"
;;
"create-ns")
opts+=" --nsze= -s --ncap= -c --flbas= -f \
--dps= -d --nmic= -m --anagrp-id= -a --nvmset-id= -i \
--block-size= -b --timeout= -t --csi= -y --lbstm= -l \
- --nsze-si= -S --ncap-si= -C"
+ --nphndls= -n --nsze-si= -S --ncap-si= -C --azr -z --rar= -r \
+ --ror= -o --rnumzrwa= -u --phndls= -p"
;;
"delete-ns")
opts+=" -namespace-id= -n --timeout= -t"
@@ -318,11 +338,12 @@ nvme_list_opts () {
--block-count= -c --deac -d --limited-retry -l \
--force-unit-access -f --prinfo= -p --ref-tag= -r \
--app-tag-mask= -m --app-tag= -a \
- --storage-tag= -S --storage-tag-check -C"
+ --storage-tag= -S --storage-tag-check -C \
+ --dir-type= -T --dir-spec= -S"
;;
"write-uncor")
opts+=" --namespace-id= -n --start-block= -s \
- --block-count= -c"
+ --block-count= -c --dir-type= -T --dir-spec= -S"
;;
"verify")
opts+=" --namespace-id= -n --start-block= -s \
@@ -334,6 +355,11 @@ nvme_list_opts () {
"sanitize")
opts+=" --no-dealloc -d --oipbp -i --owpass= -n \
--ause -u --sanact= -a --ovrpat= -p"
+ case $opt in
+ --sanact|-a)
+ vals+=" exit-failure start-block-erase start-overwrite start-crypto-erase"
+ ;;
+ esac
;;
"sanitize-log")
opts+=" --rae -r --output-format= -o --human-readable -H \
@@ -428,9 +454,13 @@ nvme_list_opts () {
;;
esac
- opts+=" -h --help"
+ opts+=" -h --help -j --json"
- COMPREPLY+=( $( compgen $compargs -W "$opts" -- $cur ) )
+ if [[ $vals == " " ]]; then
+ COMPREPLY+=( $( compgen $compargs -W "$opts" -- $cur ) )
+ else
+ COMPREPLY+=( $( compgen $compargs -W "$vals" -- $val ) )
+ fi
return 0
}
@@ -1266,6 +1296,68 @@ plugin_inspur_opts () {
return 0
}
+plugin_ocp_opts () {
+ local opts=""
+ local compargs=""
+
+ local nonopt_args=0
+ for (( i=0; i < ${#words[@]}-1; i++ )); do
+ if [[ ${words[i]} != -* ]]; then
+ let nonopt_args+=1
+ fi
+ done
+
+ if [ $nonopt_args -eq 3 ]; then
+ opts="/dev/nvme* "
+ fi
+
+ opts+=" "
+
+ case "$1" in
+ "smart-add-log")
+ opts+=" --output-format= -o"
+ ;;
+ "latency-monitor-log")
+ opts+=" --output-format= -o"
+ ;;
+ "set-latency-monitor-feature")
+ opts+=" --active_bucket_timer_threshold= -t \
+ --active_threshold_a= -a --active_threshold_b= -b \
+ --active_threshold_c= -c --active_threshold_d= -d \
+ --active_latency_config= -f \
+ --active_latency_minimum_window= -w \
+ --debug_log_trigger_enable -r --discard_debug_log= -l \
+ --latency_monitor_feature_enable= -e"
+ ;;
+ "internal-log")
+ opts+=" --telemetry_type= -t --telemetry_data_area= -a \
+ --output-file= -o"
+ ;;
+ "clear-fw-activate-history")
+ opts+=" --no-uuid -n"
+ ;;
+ "eol-plp-failure-mode")
+ opts+=" --mode= -m --save -s --sel= -S --no-uuid -n"
+ ;;
+ "clear-pcie-correctable-error-counters")
+ opts+=" --no-uuid -n"
+ ;;
+ "vs-fw-activate-history")
+ opts+=" --output-format= -o"
+ ;;
+ "device-capability-log")
+ opts+=" --output-format= -o"
+ ;;
+ "help")
+ opts+=$NO_OPTS
+ ;;
+ esac
+
+ COMPREPLY+=( $( compgen $compargs -W "$opts" -- $cur ) )
+
+ return 0
+}
+
_nvme_subcmds () {
local cur prev words cword
_init_completion || return
@@ -1320,6 +1412,11 @@ _nvme_subcmds () {
[nvidia]="id-ctrl"
[ymtc]="smart-log-add"
[inspur]="nvme-vendor-log"
+ [ocp]="smart-add-log latency-monitor-log \
+ set-latency-monitor-feature internal-log \
+ clear-fw-activate-history eol-plp-failure-mode \
+ clear-pcie-correctable-error-counters \
+ vs-fw-activate-history device-capability-log"
)
# Associative array mapping plugins to coresponding option completions
@@ -1341,6 +1438,7 @@ _nvme_subcmds () {
[nvidia]="plugin_nvidia_opts"
[ymtc]="plugin_ymtc_opts"
[inspur]="plugin_inspur_opts"
+ [ocp]="plugin_ocp_opts"
)
# Top level commands
@@ -1348,7 +1446,7 @@ _nvme_subcmds () {
id-ns-granularity list-ns list-ctrl \
id-ns-lba-format nvm-id-ns nvm-id-ns-lba-format \
nvm-id-ctrl primary-ctrl-caps list-secondary \
- ns-descs id-nvmset id-uuid id-iocs create-ns \
+ ns-descs id-nvmset id-uuid id-iocs id-domain create-ns \
delete-ns get-ns-id get-log telemetry-log \
fw-log changed-ns-list-log smart-log ana-log \
error-log effects-log endurance-log \